【黑金云课堂】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。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系统移植、驱动编写、应用开发
相关推荐
智感子21 小时前
测控链路:从传感器到上位机
人工智能·嵌入式硬件·fpga开发
szxinmai主板定制专家1 天前
基于Zynq的高精度多通道数据采集卡完整解决方案(工业振动/高速采集/边缘传输)
fpga开发·zynq·数据采集卡
szxinmai主板定制专家2 天前
基于TI AM62x+FPGA的24bit高精度数据采集卡设计(振动/风电/发动机监测)
人工智能·fpga开发·arm+fpga·rk3588+fpga
szxinmai主板定制专家2 天前
基于 ARM+FPGA 雕刻机控制系统的设计
arm开发·人工智能·fpga开发·rk3576·半导体设备
吉他英雄一里3 天前
zynq入门教程
fpga开发·zynq
XMAIPC_Robot3 天前
RK3576/RK3588+FPGA+AI数据采集系统:实时性与边缘AI算力兼顾
人工智能·fpga开发·机器人·数据采集·rk3588+fpga·rk3576+fpga
FPGA小徐3 天前
通信系统核心技术概念解析
fpga
156082072193 天前
JFMRFVU3P5G的bit正常,但烧录mcs程序后加载异常
fpga开发
狂奔蜗牛(bradley)3 天前
把 EtherCAT 初始化从 FPGA 搬到 ARM:命令通道的接口设计与11个坑
arm开发·人工智能·fpga开发·架构
女神下凡4 天前
芯参谋(37):EEPROM_电路设计指南
arm开发·单片机·嵌入式硬件·fpga开发·设计规范