欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

AXI-IIC官方示例解析

发布时间:2024/10/14 编程问答 20 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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官方示例解析的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。