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官方示例解析相关推荐

  1. ESP32 学习日志(4)——OTA升级(1)-示例解析

    一.OTA简介 1.1 概述 ESP32应用程序可以在运行时通过Wi-Fi或以太网从特定的服务器下载新镜像,然后将其闪存到某些分区中,从而进行升级.在ESP-IDF中本文采用native_ota_ex ...

  2. AI编译器TVM部署示例解析

    AI编译器TVM部署示例解析 AI编译器TVM(一)--一个简单的例子 概述 什么是TVM? TVM可以称为许多工具集的集合,这些工具可以组合起来使用,实现一些神经网络的加速和部署功能.这也是为什么叫 ...

  3. STM32F103通过模拟IIC读取LIS3DH 解析数据获取加速度和角度

    STM32F03通过模拟IIC读取LIS3DH 解析数据获取加速度和角度. 串口1输出电脑串口助手,直接用即可,代码规范,好移植 STM32F03通过模拟IIC读取LIS3DH 解析数据获取加速度和角 ...

  4. java聊天程序步骤解析_java网络之基于UDP的聊天程序示例解析

    基于UDP的Socket通信 UDP协议不是一种基于稳定连接的协议,是一种面向数据报包的通信协议,不需要通信双方建立稳定的连接,也没有所谓服务端和客户的概念,数据报包在传输的时候不保证一定及时到达,也 ...

  5. 实现3d图片移动_ThingJS官方示例(三):3D标记Marker动效定制化

    物联网3D可视化场景中,经常用到标注元素作为线路标绘.业务区域标绘,比如定位物联网设备或危险源位置,进行安全作业或者路径导航规划,远程解决难题. ThingJS的3D标记"Marker&qu ...

  6. 【Netty】入门Netty官方例子解析(二)Time Server

    本文承接上文<[Netty]入门Netty官方例子解析(一)写个 Discard Server> ,接下来讲解官网文档中Netty入门官方例子第二个例子 Time Server 原文这个章 ...

  7. 【Android 插件化】DroidPlugin 编译运行 ( DroidPlugin 简介 | 编译 DroidPlugin 官方示例 | 运行 DroidPlugin 官方示例 )

    文章目录 一.DroidPlugin 简介 二.DroidPlugin 编译运行 1.编译 DroidPlugin 官方示例 2.运行 DroidPlugin 官方示例 一.DroidPlugin 简 ...

  8. 【Android 热修复】运行 Tinker 官方示例 ( 处理 TINKER_ID 问题 | 编译 debug 包 | 修改 Gradle 脚本 | 生成 patch 包 | 热修复 )

    文章目录 一.下载官方示例源码 二.处理 TINKER_ID 问题 三.编译 debug 包 四.安装 APK 并运行 五.修改 Gradle 构建脚本中的文件名称 六.修改程序逻辑代码 七.生成 p ...

  9. Java 中pdf部分内容加边线_Java 在PDF中添加骑缝章示例解析

    骑缝章是用于往来业务合同,以确保合同真实.有效的印章加盖方法,是一种防范风险的重要方式.在Java程序中,可以通过使用工具来辅助加盖这种骑缝章. 工具:Free Spire.PDF for Java ...

最新文章

  1. 2010年厦门商报报导《监控》小说
  2. Mysql学习总结(4)——MySql基础知识、存储引擎与常用数据类型
  3. CentOS 服务器安全设置
  4. Android 如何实现带滚动条的TextView,在更新文字时自动滚动到最后一行
  5. es安全组端口_从零开始在远程服务器(Linux)上搭建es,eshead和ik分词器
  6. link linux 跨设备,Linux中的两种link方式
  7. phpcmsV9站群去除域名绑定目录中的HTML的方法
  8. JAVA复合判断_一起来学Java8(四)——复合Lambda
  9. 集体智慧编程 - 优化
  10. Smali 语法文档
  11. Hadoop 101: Programming MapReduce with Native Libraries, Hive, Pig, and Cascading
  12. SpringBoot整合Scala构建Web服务
  13. oracle中怎么sqlprompt,自定义sqlplus登录过后的sqlprompt
  14. html图片加载慢的问题
  15. 概率论-随机变量的数字特征思维导图
  16. net3.5离线一键安装工具_一键获取抖音直播源地址(无水印高清下载),无需安装Fiddler抓包工具...
  17. 提前体验饱受期待的Windows Terminal
  18. Spring Boot2 服务假死排查分析记录
  19. win10摄像头无法使用黑屏的解决办法
  20. USB出现“can‘t set config #1, error -12”问题的探索

热门文章

  1. 魔兽世界·与你同行,一起追忆魔兽年华吧
  2. Pandas 基础(8) - 用 concat 组合 dataframe
  3. Extjs grid选中一条记录Ajax访问后台
  4. js实现移动端图片预览:手势缩放, 手势拖动,双击放大...
  5. V-7 Openstack 在ceph中转换镜像格式
  6. 【Unity】11.2 刚体(Rigidbody)
  7. Java删除文件和目录
  8. 安卓程序如何保证低内存下依然存在
  9. [控件] TranformFadeView
  10. zabbix 代理(agent)端详细安装配置