<font color="#FF8000">作者:ALINX</font>
<span id="profileBt"><a href="https://zhuanlan.zhihu.com/p/344140624">* 本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处。</a></span>
<strong>适用于板卡型号:</strong>
AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E/AXU4EV-P/AXU5EV-E/AXU5EV-P /AXU9EG/AXU15EG
<strong>vivado工程目录为“ps_hello/vivado”</strong>
<strong>vitis工程目录为“ps_i2c/vitis”</strong>
<strong>软件工程师工作内容</strong>
以下为软件工程师负责内容。
从原理图中可以看出,PS端的I2C接了EEPROM。
<center><img src="http://xilinx.eetrend.com/files/2021-01/wen_zhang_/100061313-120737-01…; alt=""></center>
<strong>1. Vitis程序开发</strong>
1.1 EEPROM读写
1) 导入emample工程
<center><img src="http://xilinx.eetrend.com/files/2021-01/wen_zhang_/100061313-120738-02…; alt=""></center>
2) 导入xiicps_eeprom_polled_example工程
<center><img src="http://xilinx.eetrend.com/files/2021-01/wen_zhang_/100061313-120739-03…; alt=""></center>
EEPROM 的程序比较简单,具体代码大家可以自己去看,这里不详细说了。下面只对程序
的功能和一些要点做一下介绍:
EEPROM 的设备地址在程序的前面做了定义,这个地址就是系统访问外部 IIC 外设的设备地址,这里EEPROM地址为 0x54, 相当于 8bit 的 0xA8。
<center><img src="http://xilinx.eetrend.com/files/2021-01/wen_zhang_/100061313-120740-04…; alt=""></center>
EEPROM 的设备地址可以在 24LC04 的芯片手册上找的到,高 4 位是 A,后面 3 位是 Block地址,因为 24LC04 只有 2 个 Block, 所以高 2 位 Block Address 是无效的。
<center><img src="http://xilinx.eetrend.com/files/2021-01/wen_zhang_/100061313-120741-05…; alt=""></center>
由于EEPROM的地址为1个字节,在程序中修改如下,并保存编译
<center><img src="http://xilinx.eetrend.com/files/2021-01/wen_zhang_/100061313-120742-06…; alt=""></center>
3) 程序流程如下:
ReadBuffer清0,WriteBuffer赋FF写16个字节到EEPROM读EEPROM的16个字节到ReadBuffer检验是否正确Readbuffer清0,WriteBuffer赋值10~25写16字节到EEPROM读16字节到ReadBuffer检验是否正确返回
4) 下载程序
<center><img src="http://xilinx.eetrend.com/files/2021-01/wen_zhang_/100061313-120743-07…; alt=""></center>
5) 串口结果
<center><img src="http://xilinx.eetrend.com/files/2021-01/wen_zhang_/100061313-120744-08…; alt=""></center>