【黑金云课堂】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系统移植、驱动编写、应用开发
相关推荐
FPGA小迷弟1 小时前
FPGA 应用技术能力的完整闭环(5-8)
fpga开发·dsp开发·fpga·sdr·无线电
狂奔蜗牛(bradley)3 小时前
搞定100ns抖动:ARM+FPGA混合EtherCAT主站实战方案
嵌入式硬件·fpga开发
Eloudy6 小时前
vitis 工程 ping FPGA 丢包(~50% 随机)问题分析
fpga
free-elcmacom7 小时前
FPGA学习笔记<2>Verilog输入
fpga开发·硬件工程
学习FPGA的电气小兴兴10 小时前
基于FPGA的CORDIC向量模式实现arctan运算,Verilog HDL实现
嵌入式硬件·fpga开发·数字信号处理·verilog·fpga·cordic·arctan
FPGA小迷弟1 天前
FPGA 应用技术能力的完整闭环(1-4)
fpga开发·dsp开发·fpga·sdr·无线电
NamoAmitabha1281 天前
vivado时序报红/插入流水线寄存器/降低扇出
fpga·vivado
Eloudy1 天前
FPGA 开发与 IC 数字前端设计
fpga开发
tju新生代魔迷1 天前
Verilog HDL 学习笔记(十八)| 附录C:关键字、系统任务和编译指令
fpga开发
free-elcmacom2 天前
FPGA学习笔记<1>FPGA的开发流程
fpga开发·硬件工程·hdl