【黑金云课堂】FPGA技术教程Vitis开发:PS端IIC通信

Vitis 开发第 8 节 PS IIC ,选自ALINX 黑金云课堂 FPGA 免费直播课。该课程由 ALINX 资深工程师团队倾力打造,从 0 到 1 系统化教学,帮助每位工程师跨过 FPGA 开发门槛。

🔍 ALINX :关注 ALINX,进入视频号即可查看完整黑金云课堂 FPGA 视频教程。配合笔记学习效果更佳。


IIC 通信协议原理

概念

IIC 是一种半双工通信协议,其物理层和协议层的关键特征如下:

  • 空闲状态: SCL(时钟线)和SDA(数据线)均保持高电平。
  • 启动信号: SCL为高电平时,SDA由高电平拉低。
  • 数据传输: 传输8位数据,在SCL高电平期间,SDA必须保持电平不变。
  • 应答信号 (ACK/NACK):

主控器释放SDA,接收端将其拉低表示已收到数据(ACK)。 若为高电平则表示未收到(NACK)。

  • 特殊规则: 若主控器为接收方,收到最后一个字节后需发送NACK信号,通知从机结束发送并释放SDA,以便主控器发送停止信号。
  • 停止信号: SCL为高电平时,SDA由低电平拉高

💻️ 实验一:EEPROM 读写

  • 实验对象: IIC 接口的 EEPROM 存储器
  • 核心特性:
    • 容量: 4Kbit,分为2个Block,每个Block为256×8bit。
    • 速度: 最大频率400KHz。
    • 写操作: 支持16字节页写入模式。
    • 设备地址: 包含B0位用于选择Block,以及R/W位(1为读,0为写)。

关键注意点

  • 页写入环绕问题: 执行Page Write时,若写入数据跨页 ,地址会环绕回本页首地址,导致前面数据被覆盖
  • 读操作地址: 内部地址计数器自动加1,基于上一次读/写操作的地址,当前地址为address+1。ogetgpioinfo 等命令,是推荐的新一代接口

💻️ 实验二:LM75温度传感器控制

  • 实验对象: LM75温度传感器。
  • 设备地址: 7位器件地址为1001_A2A1A0。读取温度寄存器时,典型地址为1001000,即0x48。
  • 温度寄存器与计算: 温度值为2个字节,共11 位有效数据。
  • 标准精度: 0.125℃。
  • 简化方案: 若只取高9位 (D10-D2),精度为 0.125℃ × 4 =0.5℃

💡原理实验讲解可前往 ALINX 视频号进行直播回看。

更多细节欢迎关注我们黑金云课堂全年免费直播课黑金云课堂五月直播日历 我们将在每周二、三、四,同步推进 Verilog开发、Vitis开发、Linux开发三大系列,带你从零开始,稳扎稳打掌握 FPGA 开发全流程!

系列 内容定位
Verilog开发 硬件描述语言基础、逻辑设计、仿真调试
Vitis开发 Zynq软硬件协同、外设驱动、网络协议栈
Linux开发 嵌入式Linux系统移植、驱动编写、应用开发
相关推荐
Terasic友晶科技4 小时前
答疑解惑|Agilex 3 FPGA QSPI时钟设置注意事项
fpga开发·de23-lite·terasic·qspi flash
国科安芯12 小时前
卫星星务计算机数据管理中SEU容错机制的技术实现研究——以AS32S601存储器ECC架构为例
网络·单片机·算法·fpga开发·架构·云计算·risc-v
国科安芯12 小时前
卫星电推进系统阀门驱动控制中的宽温域高可靠MCU应用研究——基于AS32S601电气特性与辐照试验数据的工程分析
单片机·嵌入式硬件·fpga开发·云计算·信息与通信·卫星·抗辐射芯片
Hi2024021715 小时前
Vortex 3.0 + xcvu19p CMD_MEM_WRITE 调试
fpga·rtl·vortex
郝旭帅电子设计团队1 天前
图像处理是什么
图像处理·fpga开发·郝旭帅电子设计团队·郝旭帅
ARM|X86+FPGA工业主板厂家1 天前
基于ARM+FPGA平台在精密测控领域的应用:8路同步IEPE振动采集系统
arm开发·fpga开发
weixin_452600691 天前
D2632大电流低差压可调线性稳压器介绍,D2632可替换MIC29302
fpga开发·机器人·无人机·电动工具·车载摄像头
ARM|X86+FPGA工业主板厂家1 天前
基于ARM+FPGA平台在精密测控领域的应用:ZYNQ千兆以太网高速数据记录仪
arm开发·fpga开发
cmc10282 天前
275.需要双边沿触发时,直接对时钟取反会不会出问题
fpga开发
ARM|X86+FPGA工业主板厂家2 天前
基于ARM+FPGA平台在精密测控领域的应用:ZYNQ FPGA图像预处理加速系统
arm开发·fpga开发