半岛官方网站fpga入门的基础知识 FPGA零基础学习IIC协议驱动设计

  新闻资讯     |      2023-07-23 23:59

  半岛官方网站fpga入门的基础知识 FPGA零基础学习IIC协议驱动设计系统性的掌握技术开发以及相关要求,对个人就业以及职业发展都有着潜在的帮助,希望对大家有所帮助。后续会陆续更新 Xilinx 的 Vivo、ISE 及相关操作软件的开发的相关内容,学习FPGA设计方法及设计思想的同时,实操结合各类操作软件,会让你在技术学习道路上无比的顺畅,告别技术学习小BUG卡破脑壳,告别目前忽悠性的培训诱导,真正的去学习去实战应用,这种快乐试试你就会懂的。话不多说,上货。

  本篇实现基于叁芯智能科技的SANXIN -B01 FPGA开发板,以下为配套的教程,如有入手开发板,可以登录官方淘宝店购买,还有配套的学习视频。叁芯智能科技 FPGA开发板,热销中!SANXIN-B01Verilog教程-郝旭帅团队电子版FPGA工程师就业班,线上直播课开启!

  IIC 即 Inter-Integrated Circuit(集成电路总线),这种总线类型是由飞利浦半导体公司在八十年代初设计出来的一种简单、双向、二线制、同步串行总线,主要是用来连接整体电路(ICS) ,IIC是一种多向控制总线,也就是说多个芯片可以连接到同一总线结构下半岛体育官方网站,同时每个芯片都可以作为实时数据传输的控制源。这种方式简化了信号传输总线C

  SDA,另一根是时钟线 SCL,两条线可以挂多个设备。IIC 设备(绝大多数)里有个固化的地址,只有在两条线上传输的值等于 IIC 设备的固化地址时,其才会作出响应。通常我们为了方便把 IIC 设备分为主设备和从设备,基本上谁控制时钟线(即控制SCL的电平高低变换)谁就是主设备。

半岛官方网站fpga入门的基础知识 FPGA零基础学习IIC协议驱动设计(图1)

  C段为结束段(STOP CONDITION),在数据传输结束后,都应该有一个结束段。当SCL为高电平期间,SDA有一个从低到高的变化视为结束段。

  IIC的传输总结为:空闲时,SCL 和 SDA 都是高电平;发送信息前,首先发送起始段(SCL为高时,SDA有一个从高到低的变化);在发送信息时,每一个 SCL 脉冲,发送或者接收1bit,该bit在SCL为低电平时发生改变,在SCL为高电平时,保持稳定;发送信息完成后,发送结束段(SCL 为高时,SDA 有一个从低到高的变化)。

  在控制字节中,1010为EEPROM的标号;A2、A1、A0为主机发送的地址号,接收设备接收到此信息后,会与本身的A2、A1、A0相对比,相同时,视为被选中;最后1bit,0表示写入、1表示读出。

半岛官方网站fpga入门的基础知识 FPGA零基础学习IIC协议驱动设计(图2)

  DATA BYTE 0被写入到指定的地址中,后续的数据写入到指定地址的后续地址中。EEPROM中每32个字节分为一块,写入时不能跨块写入。

  任意地址多字节读就是在任意地址单字节读的时序中,接收到从机发送的数据后,不要发送NO ACK而是发送ACK,此时从机就会继续发送后续地址的数据,直到读取的长度符合设计要求半岛体育官方网站,然后发送NO ACK以及STOP结束传输。

半岛官方网站fpga入门的基础知识 FPGA零基础学习IIC协议驱动设计(图3)

半岛官方网站fpga入门的基础知识 FPGA零基础学习IIC协议驱动设计(图4)

  根据时序参数,决定将IIC的速率定为50KHz。发送时,数据改变在SCL的低电平的正中间;读取时,在SCL高电平的正中间进行读取。

半岛官方网站fpga入门的基础知识 FPGA零基础学习IIC协议驱动设计(图5)

半岛官方网站fpga入门的基础知识 FPGA零基础学习IIC协议驱动设计(图6)

  在IIC协议中,SDA作为数据线使用,每一个SCL的脉冲,传递一bit的数据。在读取时,SDA由24LC64发送,FPGA接收;在写入时,SDA由FPGA发送,24LC64接收。所以IIC协议只能实现半双工通信。

半岛官方网站fpga入门的基础知识 FPGA零基础学习IIC协议驱动设计(图7)

  高阻态,字节理解为阻值特别大,也可以理解为断开。高阻态与任何电平值相连接,所连接的线上的电平值都是和对方保持一致。在此可以延伸一下:所有的端口

  24LC64的寻址范围为8K,地址bit共计13bit,所以需要高5bit和低8bit。在有些兼容IIC协议接口

  SCL的实现采用计数器控制,根据规定好的频率,在合适的地方进行拉高或者拉低。由于SDA的变化都发生在SCL为高或者为低的中间,所以还需要产生对应的脉冲。

半岛官方网站fpga入门的基础知识 FPGA零基础学习IIC协议驱动设计(图8)

半岛官方网站fpga入门的基础知识 FPGA零基础学习IIC协议驱动设计(图9)

  iic_scl采用计数器的方式实现。外部的时钟为50MHz,iic_scl为100KHz,所以计数器需要记录500个时钟周期。

  设计在仿真时,需要外部提供ACK。如果直接仿真的话,由于外部没有提供ACK,导致一直都会重复发送一小段。在仿真中,我们自己给出ACK的难度也比较大。

  sim24LC64_sim_module中,文件名字为24LC64.v。此模型的sda也是双向IO,所以在硬件设计时,会在此IO上加上拉电阻,在仿真时,我们也要模拟上拉电阻。仿真设计如下:

  上述的设计在使用时会有上游进行控制,所以板级测试还需要设计。在中只需要某一个地址写入数据,然后读出即可。测试时,可以多次更换地址和数据,保证设计的正确性。

半岛官方网站fpga入门的基础知识 FPGA零基础学习IIC协议驱动设计(图10)

半岛官方网站fpga入门的基础知识 FPGA零基础学习IIC协议驱动设计(图11)

  test模块负责将test_ctrl和iic_drive模块进行例化连接。将test模块设置为顶层。

  ,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的“傻瓜式”讲解,让电子、信息、通信类专业学生、初入职场小白及打算进阶提升的职业开发者都可以有

  ,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的“傻瓜式”讲解,让电子、信息、通信类专业学生、初入职场小白及打算进阶提升的职业开发者都可以有

  ,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的“傻瓜式”讲解,让电子、信息、通信类专业学生、初入职场小白及打算进阶提升的职业开发者都可以有

  OLED屏幕,并在接下来的几例中,配合模块,进行一些有趣的综合实验。由于使用的OLED屏是

  的设计主要是以时序电路为主,因为组合逻辑电路再怎么复杂也变不出太多花样,理解起来也不没太多困难。

  ,从最基本的数字电路基础开始,最详细操作步骤半岛体育官方网站,最直白的言语描述,手把手的“傻瓜式”讲解,让电子、信息、通信类专业学生、初入职场小白及打算进阶提升的职业开发者都可以有系统性

  技术的发展历史纵观数字集成电路的发展历史,经历了从电子管、晶体管、小规模集成电路到大规模以及超大规模集成

  是现场可编程门阵列(Field Programable Gate Array)的简称,两者的功能基本相