【黑金云课堂】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系统移植、驱动编写、应用开发
相关推荐
明德扬6 小时前
Quartus Prime Pro 26.1 更新了什么?Arria 10 FPGA 工程升级与迁移注意事项
fpga开发
9527华安11 小时前
Xilinx Zynq7000系列FPGA纯verilog图像缩放,串口上位机动态调整缩放分辨率,提供4套工程源码和技术支持
fpga开发·图像缩放·zynq7000
Riwuarua12 小时前
从近似0基础开始FPGA开发 -- part.3 ila与debug
fpga开发
pingping_TEL18 小时前
FIFO_IP核使用说明文档
fpga
松小白song1 天前
FPGA架构解密:为何要用750kHz低频时钟驱动二级缓存?
fpga开发
Riwuarua1 天前
从近似0基础开始FPGA开发 -- part.2 仿真
fpga开发
unicrom_深圳市由你创科技1 天前
国产FPGA的芯片选型应该考虑哪些因素?
fpga开发
明德扬1 天前
高速采集选 Direct RF 还是外置 ADC/FMC?从采样率、JESD204B 和开发周期对比
fpga开发·fpga
明德扬1 天前
机器人为什么需要“感知—控制—计算”一体化?FPGA 多传感器底板设计要点
fpga开发·机器人·fpga
zlinear数据采集卡2 天前
数据采集卡从入门到精通(46):趋势展望——软件定义硬件、AI分析与开源生态
arm开发·stm32·单片机·嵌入式硬件·fpga开发·开源