首页 > 其他分享 >33 IIC(十一)IIC Control Register

33 IIC(十一)IIC Control Register

时间:2023-07-23 14:00:12浏览次数:39  
标签:register IIC 33 Register I2Cx iic 寄存器 I2CR

1. IIC 控制器通用结构

对于IIC Control器而言一般结构如下,不同设备会存在个体差异,但整体差别不大

  • control_register

    设置SCL的clock的frequency

  • tx_register

    将数据写入tx_register,数据会被shift_register(移位寄存器)一位一位通过SDA发送出去。

    数据发送完成之后,设备会产生一个中断

  • rx_register

    shift_register从SDA上一位一位的读取数据,写入到rx_register。读取完成之后,IIC control会产生一个中断

  • status_register

    状态寄存器

  • int_register

    中断寄存器

2. IMX6ULL IIC CONTROL

  • I2C Address Register

    此IIC adapter支持作为I2C client使用

3. IMX6ULL IIC Register

imx6ull存在4个iic control,每组iic控制器由5个16bit的寄存器控制

分别为

  • I2Cx_IADR(地址寄存器)

    iic adapter作为从设备iic client时设定其地址

  • I2Cx_IFDR(iic 分频寄存器)

  • I2Cx_I2CR(iic 控制寄存器)


    需要注意iic cotrol register未被使能,不影响iic status register的数据读取

  • I2Cx_I2SR(iic status register)

  • I2Cx_I2DR(iic data register)

4. 编程流程

  • 控制I2Cx_IFDR设置SCL

  • 配置I2Cx_I2CR

  • 发送数据

    • 设置I2Cx_I2CR进入发送模式

    • 将数据写入I2Cx_I2DR,等待中断发生

    • 中断事件发生后,判断是否为异常。是否得到ACK

    • 装填下一帧数据

  • 接受数据

    • 设置I2Cx_I2CR进入接收模式
    • 等待中断发生,判断是否为异常。
    • 读取I2Cx_I2DR中的数据

标签:register,IIC,33,Register,I2Cx,iic,寄存器,I2CR
From: https://www.cnblogs.com/burnk/p/17574942.html

相关文章

  • P1833 樱花 题解
    二进制拆分做法:把每一个物品根据2的多少次方拆分,因为任何数都可以转化为二进制数核心思想:把每一个物品拆成很多个,分别计算价值和所需时间,再转化为01背包求解最后一点:完全背包可以把他的空间记为999999,不要太大,一般百万就足够了还有一点:cin和scanf不可以混用代码#include<bit......
  • vue-day33-vue 单文件组件
    1.indedx.html<!DOCTYPEhtml><html><head><metacharset="UTF-8"/><title>练习一下单文件组件的语法</title></head><body><divid="root"></div><scripttype="t......
  • P5933 [清华集训2012] 串珠子
    P5933[清华集训2012]串珠子题解Link非常好的一道状压题目(为啥自己总是想不到呢……)。首先我们发现\(n\)很小,于是考虑状压。我们一开始肯定会设\(dp_s\)为集合\(s\)内的点相互连通的方案数。但是,我们发现,这个东西非常不好算,而且难以转移。于是……\(\Huge{补集!}\)没......
  • QT从入门到实战完整版 P32 P33
    定时器1widget.h#ifndefWIDGET_H#defineWIDGET_H#include<QWidget>QT_BEGIN_NAMESPACEnamespaceUi{classWidget;}QT_END_NAMESPACEclassWidget:publicQWidget{Q_OBJECTpublic:Widget(QWidget*parent=nullptr);~Widget();......
  • CF633G Yash And Trees
    简单题。先把树拍扁成序列,在dfn序上区间修改区间查询。由于时限4s,我们可以整点怪的,比如bitset。把区间内的数有/没有表示成\(01\)序列,考虑到区间加取模相当于区间内的数全部循环右移,用bitset可以做到\(O(\fracm\omega)\)。然后用线段树维护这个序列就行了,查询的时......
  • 题解 POJ3318【Matrix Multiplication】
    postedon2022-10-2119:56:08|under题解|sourceproblem判断三个\(n\timesn\)的矩阵是否满足\(A\timesB=C\),\(n\leq500\)。solution随机一个行向量\(v\)。若\(a\timesb=c\),则有\(v\timesa\timesb=v\timesc\)(不充分)。显然相乘复杂度仅为\(O(n^2)\)。类似于......
  • Java-Day-33 ( 引出反射 + 反射机制 + 反射的优缺点 )
    Java-Day-33引出反射(reflection)引出传统new方法调用其方法:Dogdog=newDog();dog.hello();但若要根据以下配置文件指定信息,创建Dog对象并调用方法hello:classfullpath=com.zyz.Dogmethod=hello使用Properties类,可以读写配置文件Propertiesprope......
  • 【题解】Luogu[P3360] 偷天换日
    solution开题显然是个树形dp,只不过在树形dp上又增加了背包问题。我们不妨将每个走廊看成一个点,把交叉口看成边(当然也可以把交叉口看成点,不过写起来麻烦一些),于是就转化为了一棵二叉树。我们设\(f_{i,j}\)表示以\(i\)为根的子树内,花费了不超过\(j\)时间,能拿到的最大价值......
  • 戴尔T330服务器bios菜单里硬盘如何改成raid5
    戴尔T330服务器BIOS菜单中如何改成RAID5在戴尔T330服务器的BIOS菜单中,可以通过以下步骤将硬盘配置为RAID5。步骤一:进入BIOS菜单首先,您需要进入服务器的BIOS菜单。启动服务器后,按下适当的键,通常是DEL或F2键,以进入BIOS设置界面。步骤二:进入存储配置在BIOS菜单中,找到存储配置或......
  • HJ33 整数与IP地址间的转换
    1.题目读题HJ33 整数与IP地址间的转换  考查点 2.解法思路 二进制与十进制的互转可参照  Java中十进制二进制相互转换的方法代码逻辑 具体实现 publicclassIP2Num{publicstaticvoidmain(String[]args){Scannersc=newScanner(S......