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。
oget、gpioinfo等命令,是推荐的新一代接口
💻️ 实验二: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系统移植、驱动编写、应用开发 |