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官方示例解析相关推荐
- ESP32 学习日志(4)——OTA升级(1)-示例解析
一.OTA简介 1.1 概述 ESP32应用程序可以在运行时通过Wi-Fi或以太网从特定的服务器下载新镜像,然后将其闪存到某些分区中,从而进行升级.在ESP-IDF中本文采用native_ota_ex ...
- AI编译器TVM部署示例解析
AI编译器TVM部署示例解析 AI编译器TVM(一)--一个简单的例子 概述 什么是TVM? TVM可以称为许多工具集的集合,这些工具可以组合起来使用,实现一些神经网络的加速和部署功能.这也是为什么叫 ...
- STM32F103通过模拟IIC读取LIS3DH 解析数据获取加速度和角度
STM32F03通过模拟IIC读取LIS3DH 解析数据获取加速度和角度. 串口1输出电脑串口助手,直接用即可,代码规范,好移植 STM32F03通过模拟IIC读取LIS3DH 解析数据获取加速度和角 ...
- java聊天程序步骤解析_java网络之基于UDP的聊天程序示例解析
基于UDP的Socket通信 UDP协议不是一种基于稳定连接的协议,是一种面向数据报包的通信协议,不需要通信双方建立稳定的连接,也没有所谓服务端和客户的概念,数据报包在传输的时候不保证一定及时到达,也 ...
- 实现3d图片移动_ThingJS官方示例(三):3D标记Marker动效定制化
物联网3D可视化场景中,经常用到标注元素作为线路标绘.业务区域标绘,比如定位物联网设备或危险源位置,进行安全作业或者路径导航规划,远程解决难题. ThingJS的3D标记"Marker&qu ...
- 【Netty】入门Netty官方例子解析(二)Time Server
本文承接上文<[Netty]入门Netty官方例子解析(一)写个 Discard Server> ,接下来讲解官网文档中Netty入门官方例子第二个例子 Time Server 原文这个章 ...
- 【Android 插件化】DroidPlugin 编译运行 ( DroidPlugin 简介 | 编译 DroidPlugin 官方示例 | 运行 DroidPlugin 官方示例 )
文章目录 一.DroidPlugin 简介 二.DroidPlugin 编译运行 1.编译 DroidPlugin 官方示例 2.运行 DroidPlugin 官方示例 一.DroidPlugin 简 ...
- 【Android 热修复】运行 Tinker 官方示例 ( 处理 TINKER_ID 问题 | 编译 debug 包 | 修改 Gradle 脚本 | 生成 patch 包 | 热修复 )
文章目录 一.下载官方示例源码 二.处理 TINKER_ID 问题 三.编译 debug 包 四.安装 APK 并运行 五.修改 Gradle 构建脚本中的文件名称 六.修改程序逻辑代码 七.生成 p ...
- Java 中pdf部分内容加边线_Java 在PDF中添加骑缝章示例解析
骑缝章是用于往来业务合同,以确保合同真实.有效的印章加盖方法,是一种防范风险的重要方式.在Java程序中,可以通过使用工具来辅助加盖这种骑缝章. 工具:Free Spire.PDF for Java ...
最新文章
- 2010年厦门商报报导《监控》小说
- Mysql学习总结(4)——MySql基础知识、存储引擎与常用数据类型
- CentOS 服务器安全设置
- Android 如何实现带滚动条的TextView,在更新文字时自动滚动到最后一行
- es安全组端口_从零开始在远程服务器(Linux)上搭建es,eshead和ik分词器
- link linux 跨设备,Linux中的两种link方式
- phpcmsV9站群去除域名绑定目录中的HTML的方法
- JAVA复合判断_一起来学Java8(四)——复合Lambda
- 集体智慧编程 - 优化
- Smali 语法文档
- Hadoop 101: Programming MapReduce with Native Libraries, Hive, Pig, and Cascading
- SpringBoot整合Scala构建Web服务
- oracle中怎么sqlprompt,自定义sqlplus登录过后的sqlprompt
- html图片加载慢的问题
- 概率论-随机变量的数字特征思维导图
- net3.5离线一键安装工具_一键获取抖音直播源地址(无水印高清下载),无需安装Fiddler抓包工具...
- 提前体验饱受期待的Windows Terminal
- Spring Boot2 服务假死排查分析记录
- win10摄像头无法使用黑屏的解决办法
- USB出现“can‘t set config #1, error -12”问题的探索
热门文章
- 魔兽世界·与你同行,一起追忆魔兽年华吧
- Pandas 基础(8) - 用 concat 组合 dataframe
- Extjs grid选中一条记录Ajax访问后台
- js实现移动端图片预览:手势缩放, 手势拖动,双击放大...
- V-7 Openstack 在ceph中转换镜像格式
- 【Unity】11.2 刚体(Rigidbody)
- Java删除文件和目录
- 安卓程序如何保证低内存下依然存在
- [控件] TranformFadeView
- zabbix 代理(agent)端详细安装配置