imx6ull i2c 控制器

2024-06-16 07:18
文章标签 控制器 i2c imx6ull

本文主要是介绍imx6ull i2c 控制器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

备注:部分知识参考百问网手册

一、overview

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2tmR4ZoA-1632816362802)(E:\u-boot\pic\i2cblock.jpg)]

1.1 特性

① 兼容标准I2C总线,多主机运行。
② 64种不同的串行时钟频率之一的软件可编程性。
③ 软件可选择的应答位。
④ 中断驱动,逐字节数据传输。
⑤ 仲裁丢失中断与自动模式切换从主到从。
⑥ 启动和停止信号生成/检测。
⑦ 重复启动信号生成。
⑧ 应答位生成和检测。
⑨ 总线忙检测。

1.2 模式和操作

支持两种模式:标准模式和快速模式,标准模式下I2C数据传输速率最高是100Kbits/s,在快速模式下数据传输速率最高为400Kbits/s。
两种模式配置上没有区别只是数据传输速率不同来区分。

1.3 外部引脚

当相应的PADs被设置为I2C功能后,I2Cn_SCL 和 I2Cn_SDA 的输入需要通过设置 IOMUX里面的SION bit 来使能。
可查看对应寄存器了解:IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO02
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VaSPmshP-1632816362804)(E:\u-boot\pic\I2C enternal signals.jpg)]

1.4 时钟

I2C 时钟频率 = (PERCLK_ROOT frequency)/(division factor corresponding to IFDR),默认情况下,IPG_CLK_ROOT 和 PERCLK_ROOT被设置为49.5Mhz,选择从PLL2 的PFD2作为根时钟源,时钟路径计算如下(时钟路径可参考CCM章节):

PLL2 = 528 MHz
PLL2_PFD2 = 528 MHz * 18 / 24 = 396 MHz
IPG_CLK_ROOT = (PLL2_PFD2 / ahb_podf )/ ipg_podf = (396 MHz/4)/2 = 49.5MHz
PER_CLK_ROOT = IPG_CLK_ROOT/perclk_podf = 49.5 MHz/1 = 49.5 MHz

要设置I2C的波特率为100K, I2C分频值 = 49500000/100000 = 495,参考I2Cx_IFDR寄存器对应的表格可知 该寄存器设为0x37比较接近。

二、I2C 寄存器

2.1 I2C Address Register (I2Cx_IADR)

位域读写描述
[15:8]reservedR总是为0
[7:1]ADRR/W作为I2C从设备时的地址;使用软件复位时,这个寄存器不受影响
[0]reservedR总是为0

2.2 I2C Frequency Divider Register (I2Cx_IFDR)

位域读写描述
[15:6]reservedR总是为0
[5:0]ICR/WI2C clock rate,用来设置SCL时钟,IC值对应的分频系数要查表。在数据传输过程中,IC值不能改变;但是在发出S信号之前ÿ

这篇关于imx6ull i2c 控制器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1065798

相关文章

jmeter之仅一次控制器

仅一次控制器作用: 不管线程组设置多少次循环,它下面的组件都只会执行一次 Tips:很多情况下需要登录才能访问其他接口,比如:商品列表、添加商品到购物车、购物车列表等,在多场景下,登录只需要1次,我们期望的是重复执行登陆后面的接口来做压测,这就和事务相关,例如 事务1: 登录—>添加购物车 事务2: 登录—>购物车列表 事务3: 登录—>商品列表—>添加购物车 … 一、仅一次控制器案例 在

为控制器的方法添加必要参数

前言:做这个系统时,要求每次调用接口时要传操作人、操作人电脑ip、菜单id,然后计入log。本来前端读取到然后加入请求头,后端写入log即可。但是老大要求后端也要把控必传参数,避免前端忘记。所以就写了这个。IOperationFilter 这个是百度知道的。主要用于在Swagger生成的API文档中动态地添加或修改操作(即API接口)的元数据。 用处:可以自动地为 Swagger/OpenAPI

IBM Storwize V7000存储控制器故障节点报错574

背景:由于客户机房搬迁,需要下电迁移设备。该存储自2016年投入生产使用后,从未关过机,已正常运行七八年时间,期间只更换过硬盘,无其他硬件故障。 在GUI界面点击关闭系统后,大概等了40分钟,存储仍未关机,所有硬盘状态灯绿色常亮,面板无报错。到设备后面看控制器的状态,发现node2已经正常关机了,node1仍然在运行,又等了大概20分钟还没有关机,直接将电源线给拔掉了。 再次上电以后,发现

基于IMX6ULL的Cortex-A中断原理讲解,以及编写其中断向量表

首先借助STM32我们需要了解中断系统是如何构成的         会有一个中断源,也就是能够向CPU发出中断请求的设备或事件。中断源不分硬件和软件,也就是产生中断信号,就会执行中断服务函数         但是CPU是如何知道中断源产生后就找到对应的中断服务函数呢,这个时候就要引入中断向量表,它的主要功能是描述中断对应的中断服务函数,每个中断源都有一个唯一的中断号(也称向量号),

基于 rt-thread的I2C操作EEPROM(AT24C02)

一、AT24C02 The AT24C01A/02/04/08A/16A provides 1024/2048/4096/8192/16384 bits of serial electrically erasable and programmable read-only memory (EEPROM) organized as 128/256/512/1024/2048 words of 8 b

I2C总线协议(AT24C02C)

本文章是基于TQ2440开发板上的AT24C02C 一, I2C简介       IIC即Inter-Integrated Circut(集成电路总线),有飞利浦在八十年代实际出来. I2C是一种多向控制总线,就是同一个总线下可以连接多个芯片,同时每个芯片都可以作为实时数据传输的控制源. 二. 硬件结构       I2C串行总线一般有两根信号线,一根是双向的数据总线SDA, 一根是

s3c2440---中断控制器

一、概述 S3C2440A 中的中断控制器接受来自 60 个中断源的请求。提供这些中断源的是内部外设,如 DMA 控制器、 UART、IIC 等等。 在这些中断源中,UARTn、AC97 和 EINTn 中断对于中断控制器而言是“或”关系。 当从内部外设和外部中断请求引脚收到多个中断请求时,中断控制器在仲裁步骤后请求 ARM920T 内核的 FIQ 或 IRQ。 仲裁步骤由硬件优先级逻辑决定

正点原子阿尔法ARM开发板-IMX6ULL(二)——介绍情况以及汇编

文章目录 一、裸机开发(21个)二、嵌入式Linux驱动例程三、汇编3.1 处理器内部数据传输指令3.2 存储器访问指令3.3 压栈和出栈指令3.4 跳转指令3.5 算术运算指令3.6 逻辑运算指令 一、裸机开发(21个) 二、嵌入式Linux驱动例程 三、汇编 我们在进行嵌入式 Linux 开发的时候是绝对要掌握基本的 ARM 汇编,因为 Cortex-A 芯片一

【风力发电】基于智能控制器的光伏/风电混合发电系统

摘要 光伏和风力发电因其可再生性和环保性在全球范围内得到了广泛应用。本文提出了一种基于智能控制器的光伏/风电混合发电系统,通过智能控制器对系统的功率输出进行优化管理。实验结果表明,该系统能够在不同的环境条件下高效运行,显著提高了能源利用率和系统稳定性。 理论 光伏/风电混合发电系统结合了太阳能和风能的优势,能够更好地适应不同的气候条件。然而,由于太阳辐射和风速的变化性,这种系统的功率输出

petalinux i2c的配置

petalinux i2c配置 1.硬件平台配置 下图是我这边的一个硬件测试平台,仅供参考 2.内核配置 1.打开petalinux工程路径 1.cd <plnx-proj-root> 2.petalinux-config -c kernel 3.找到Xilinx I2C Controller Device Drivers -> I2C support -> i2C Hardware