电子产业一站式赋能平台

PCB联盟网

搜索
查看: 91|回复: 0
收起左侧

MCU I2C通信速率分析

[复制链接]

344

主题

344

帖子

3148

积分

四级会员

Rank: 4

积分
3148
发表于 2024-9-14 12:09:00 | 显示全部楼层 |阅读模式
转自 | 瑞萨嵌入式小百科

I2C是单片机开发中常见的一种通信方式,通信速率也会影响通信效率,以及硬件设计要求。

目前I2C常见的通信速率有5种:
双向通信速度(模式):100 kbit/s:标准模式,Standard-mode (Sm);400 kbit/s:快速模式,Fast-mode (Fm);1 Mbit/s:快速模式+,Fast-mode Plus (Fm+);3.4Mbit/s:高速模式,High-speed mode (Hs-mode);
单向通信速度(模式):5 Mbit/s:超快模式,UItra Fast-mode (UFm)。
可以参看I2C协议手册:

q53zlo4f0bs640914854.png

q53zlo4f0bs640914854.png


今天结合瑞萨RA2系列单片机给大家分享一下I2C通信速率的内容。

一、RA系列MCU简介
RA(Renesas Advanced)系列MCU是瑞萨于2019年10月推出的基于ARM Cortex-M23/M33/M4内核的新一代产品系列,丰富了瑞萨的32位MCU系列产品。

瑞萨RA系列MCU包括4个产品系列,包括已经发布的RA2、RA4和RA6系列,以及计划发布的RA8系列,适用于从低端到高端的嵌入式终端产品。

dww4vw4njqj640914954.png

dww4vw4njqj640914954.png


RA2系列MCU为瑞萨RA系列MCU的初级产品平台,基于ARM Cortex-M23内核设计,主要特性为低功耗,最高主频为48 MHz,拥有最高可达512 KB的闪存和64 KB的SRAM,电源电压范围为1.6 V到5.5 V,具有全速USB,CAN,24位∑-?,16位ADC,电容式触摸感应单元等丰富的外设资源。

RA2系列MCU有4个子产品线,包括工业传感器应用和通用应用系列:

qvyjvf4varm640915054.png

qvyjvf4varm640915054.png


二、RA2系列MCU IIC通信速率分析
IIC总线是常用一种串行通信总线,RA2系列MCU有两种IIC接口配置:
1
专用IIC接口
2
用SCI配置为简易IIC接口(SCI_IIC)
在RA2系列MCU的硬件手册的描述中,明确说明以上两种IIC接口的通信速率的上限都可以达到400 kbps:
i.  专用IIC接口

41t3movzapt640915154.png

41t3movzapt640915154.png


ii. 用SCI接口配置为简易IIC接口(SCI_IIC)

vdeitx3pf3i640915254.png

vdeitx3pf3i640915254.png


通常,在实际应用中,一般都是使用瑞萨开发的灵活配置软件包(FSP)来创建所需的软件,但是在实际的FSP配置中,即使配置速率为Fast-mode,SCI_IIC也无法实现400 kbps的通信速率,在使用内部48 MHz时钟的条件下,一般只能实现大约330 kbps的通信速率:

kgrpa2csf4w640915354.png

kgrpa2csf4w640915354.png


ivebbn3hxzh640915455.png

ivebbn3hxzh640915455.png


这是因为对于SCI_IIC,其通信速率基于以下的公式进行计算:

5nbtespb5r2640915555.png

5nbtespb5r2640915555.png


基于以上的公式,可以得出以下的理论计算,上图公式中的PCLK为PCLKB,根据电气特性要求,PCLKB的最大值为32MHz:

2pyzedfw3io640915655.jpg

2pyzedfw3io640915655.jpg


在PCLKB时钟选择为32 MHz时,理论计算超过400 kHz的通信速率,这已经超出了硬件手册规定的400 kHz的通信速率范围,所以硬件无法支持这个速率,实际测量值约为375 kHz,通过测试,也验证了这个结论。
在PCLKB时钟选择为24 MHz时,理论计算只能达到375 kHz的通信速率。
如果需要SCI_IIC达到400 kbps的理论最大值,通过分析,当PCLKB = 12.8 MHz,n=0, N=0时,可以得到B=400 kbps的速率,所以这需要使用一个12.8 MHz的外部主时钟。这里需要说明的是,当PCLKB设置为12.8MHz时,FSP会自动将BRR寄存器和SMR寄存器的CKS[1:0]位设置为相应的值,无需用户考虑。

所以SCI_IIC接口需要一定的硬件条件,才可以实现400 kHz的通信速率。

而对于专用IIC接口,其通信速率基于以下的公式进行计算:

jijzbmdpi3j640915755.png

jijzbmdpi3j640915755.png


其中IICφ为基准时钟,通过分频得到400 kHz的整数倍的值即可,例如:如果外部时钟选择为20MHz时,通过不分频可得到PCLKB也为20MHz,这样FSP自动将CKS设置为0,便可得到IICφ= 20MHz,这样50个基本时钟就是400KHz了。

所以对于标准IIC接口,可以比较容易的设置硬件,从而实现400 kHz的通信速率。

------------ END ------------

hffck0v2wlg640915855.jpg

hffck0v2wlg640915855.jpg

手把手教你在MCU移植CoreMark跑分源码

vr0s2aetrp2640915955.jpg

vr0s2aetrp2640915955.jpg

资深工程师线下分享嵌入式产品开发流程、实战经验、解决方案......

4jx0uan5p5q640916055.jpg

4jx0uan5p5q640916055.jpg

漫谈MCU内置LCD控制器/驱动器
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表