AXI-IIC官方示例解析
AXI-IIC官方示例解析
说明:本文是作者自己对Xilinx的AXI-IIC的官方示例的解析,如有错误望各位指正。
文章目录
- AXI-IIC官方示例解析
- 前言
- xiic_eeprom_example
- xiic_low_level_tempsensor_example
- XIic_Recv
- XIic_Send
- 总结
前言
在使用Xilinx官方的IP核AXI-IIC时,想参考一下官方的程序示例,可是示例的介绍多为英文,且介绍不太详细。
在此,作者结合自己的实践来尝试分析相关示例,希望对大家有所帮助。
说明:软件为Vivado 2019.2和Vitis 2019.2。
AXI-IIC版本为2.0。
xiic_eeprom_example
该示例基于ML300/ML310/ML410/ML403/ML501/ML507/ML510/ML605/SP601, SP605, KC705 , ZC702 和 ZC706 等Xilinx开发板。
该示例使用中断模式来读写EEPROM。
在Vivado上添加AXI-IIC并将SCL和SDA连接至EEPROM引脚后,编译、新建vitis工程。
之后添加官方示例xiic_eeprom_example。
仔细查看开发者写的注释,根据相关说明来编写。
作者采用的是24LC04A,我根据说明只修改了EEPROM的地址。
xiic_low_level_tempsensor_example
该示例为使用polled模式驱动IIC接口的温度传感器的示例。我使用的是IIC的其他传感器,感觉可以参考这个示例。
经过分析,使用XIic_Recv和XIic_Send两个函数即可实现我需要的功能。它们的声明在xiic_l.c
XIic_Recv
下图为XIic_Recv的介绍,注意红线标出的“to be sent”是开发者的笔误,应该是“to be received”。我当时因为这个还视图想自己编写代码,后来发现原来是说明存在错误。
* 该函数用于向IIC从机发送数据。 * @param BaseAddress 使用的IIC接口对应的baseaddress. * @param Address IIC从机的地址 * @param BufferPtr 向从机发送的数据指针 * @param ByteCount 发送的数据字节数. * @param Option 发送完数据后释放总线还是保持 * XIIC_STOP = 以STOP结束,即释放总线, * XIIC_REPEATED_START = 不以STOP结束,保持总线. * * @return 接收到的字节数.XIic_Send
以下是XIic_Send的介绍。
* 该函数用于从IIC从机接收数据。 * @param BaseAddress 使用的IIC接口对应的baseaddress. * @param Address IIC从机的地址 * @param BufferPtr 接收的缓存指针 * @param ByteCount 接收的数据字节数. * @param Option 接收完数据后释放总线还是保持 * XIIC_STOP = 以STOP结束,即释放总线, * XIIC_REPEATED_START = 不以STOP结束,保持总线. * * @return 发送的字节数.总结
以后如果要使用其他示例或需要补充,作者会更新本文。
总结
以上是生活随笔为你收集整理的AXI-IIC官方示例解析的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: MATLAB数字信号处理函数
- 下一篇: MATLAB浮点数与十六进制(浮点数)转