系列文章目录
内容来源主要是官方手册
RH850记录:IIC
文章目录
- 系列文章目录
- 前言
- 1.概述
- 2 框图
- 3 寄存器
-
- 3.1 RIICnCR1 — I2C Bus Control Register 1
- 3.2 RIICnCR2 — I2C Bus Control Register 2
- 3.3RIICnMR1 — I2C Bus Mode Register 1
- 3.4 RIICnMR2 — I2C Bus Mode Register 2
- 3.5 RIICnMR3 — I2C Bus Mode Register 3
- 3.6 RIICnFER — I2C Bus Function Enable Register
- 3.7 RIICnSER — I2C Bus Status Enable Register
- 3.8 RIICnIER — I2C Bus Interrupt Enable Register
- 3.9 RIICnSR1 — I2C Bus Status Register 1
- 3.10 RIICnSR2 — I2C Bus Status Register 2
- 3.11 RIICnSARy — I2C Slave Address Register y (y = 0 to 2)
- 3.12 RIICnBRL — I2C Bus Bit Rate Low-Level Register
- 3.13 RIICnBRH — I2C Bus Bit Rate High-Level Register
- 3.14 RIICnDRT — I2C Bus Transmit Data Register
- 3.15 RIICnDRR — I2C Bus Receive Data Register
- 3.16 RIICnDRS — I2C Bus Shift Register
- 4 使用
前言
记录 RH850 中的 IIC 通信(I2C)
1.概述
1.1、IIC模块寄存器基地址
<RIIC0_base> FFCA 0000H
<RIIC1_base> FFCA 0080H
1.2、需要的时钟支持
设置PCLK的周期不大于SCL时钟高电平宽度的1/2
1.3 IIC模块的中断请求源及其编号
每个模块有4个中断源:
INTRIICnEE−传输错误或事件发生(检测到仲裁丢失、NACK、超时、启动条件(包括重启条件)或停止条件)
INTRIICnRI−接收完成(包括匹配从地址)
INTRIICnTI−Transmit-data-empty(包括匹配从地址)
INTRIICnTEI−传输完成
1.4 IIC的复位触发源
1.5 信号输入/输出引脚
当使用这些端口时,相应端口的PBDCn寄存器和PODCn寄存器中相应的位必须设置为1。
1.6 特性
● 根据指定的传输速率自动保护各种设置时间,保持时间和总线空闲时间
● Up to 400 kbps
● 对于主操作,SCL时钟的占空比可在以下范围内选择:0% < Duty < 100%
● 自动生成启动、重启和停止条件。启动条件(包括重新启动条件)和停止条件是可检测的
● 最多可以设置三个从地址。
● 支持7位和10位地址格式(同时使用这两种格式)。
● 一般呼叫地址和设备ID地址 都可检测。
● 对于传输,自动加载确认位−检测到不确认位时,自动暂停下一个传输数据
● 接收时,自动发送确认位−如果选择了第8个和第9个时钟周期之间的等待,则可以根据接收到的值对确认字段中的值进行软件控制。
● 在接收时,将时钟信号保持在低电平可获得下列等待时间:
−等待第8 ~ 9个时钟周期
−从第9个时钟周期到下一次传输第一个时钟周期的等待(WAIT功能)
● 传输数据输出的时序,包括确认位,可以延迟。
● 内部超时功能能够检测长间隔停止SCL(时钟信号)
● 该接口集成了用于SCL和SDA信号的数字噪声滤波器,滤波器的噪声消除宽度可通过软件调节
1.7 仲裁
● 对于多主操作
−当SCL(时钟)信号与其他主站的SCL信号冲突时,可以同步SCL(时钟)信号。
−当发出启动条件会在总线上产生冲突时,通过测试SDA线的内部信号与SDA线上的电平不匹配来检测仲裁丢失。
−在主运行时,通过检测传输数据的内部电平和线路电平不匹配来检测仲裁丢失。
● 在总线繁忙时可以检测到由于检测启动条件而导致的仲裁丢失(以防止发出双重启动条件)。
● 由于SDA线路的内部信号和SDA线路上的电平不匹配,可以检测到在传输非确认位时仲裁的丢失
● 由于数据的内部和线路级别不匹配而导致的仲裁丢失可以在从属传输中检测到。
2 框图
组网示例:
3 寄存器
3.1 RIICnCR1 — I2C Bus Control Register 1
该寄存器控制子计数器RTCAnSUBC的计数操作,小时计数器RTCAnHOURC的格式(12小时/24小时)和报警小时设置寄存器RTCAnALH,以及操作模式。
ICE:
I2C总线接口使能
0:禁用(RIICnSCL和RIICnSDA引脚未被驱动)。
1:使能(RIICnSCL和RIICnSDA引脚驱动)。
(该位选择RIIC复位或与IICRST位组合的内部复位。)
IICRST:
I2C总线内部复位(清除位计数器和SCL/SDA输出锁存器)
0:清除RIIC复位或内部复位。
1:启动RIIC复位或内部复位。
CLO:
额外的SCL