0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

瑞萨RA系列FSP库开发实战指南之瑞萨RA6M5的I2C特性及架构

瑞萨嵌入式小百科 来源:野火电子 2026-01-21 13:47 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

21.2.瑞萨RA6M5的I2C特性及架构

如果我们直接控制RA6M5的两个GPIO引脚,分别用作SCL及SDA,按照上述信号的时序要求,直接像控制LED灯那样控制引脚的输出(若是接收数据时则读取SDA电平),就可以实现I2C通讯。同样,假如我们按照USART的要求去控制引脚,也能实现USART通讯。所以只要遵守协议,就是标准的通讯,不管您如何实现它,不管是ST生产的控制器还是ATMEL生产的存储器,都能按通讯标准交互。

由于直接控制GPIO引脚电平产生通讯时序时,需要由CPU控制每个时刻的引脚状态,所以称之为“软件模拟协议”方式。

相对地,还有“硬件协议”方式,RA6M5的I2C片上外设专门负责实现I2C通讯协议,只要配置好该外设,它就会自动根据协议要求产生通讯信号,收发数据并缓存起来,CPU只要检测该外设的状态和访问数据寄存器,就能完成数据收发。这种由硬件外设处理I2C协议的方式减轻了CPU的工作,且使软件设计更加简单。

21.2.1.瑞萨RA6M5的I2C外设简介

瑞萨RA6M5的I2C外设可用作通讯的主机及从机,支持100Kbit/s和400Kbit/s和1Mbit/s的速率,支持7位、10位设备地址,支持DMA数据传输,并具有数据校验功能。它的I2C外设还支持SMBus2.0协议,SMBus协议与I2C类似,主要应用于笔记本电脑电池管理中。

表1:瑞萨RA6M5的IIC支持频率

4622905e-f67e-11f0-92de-92fbcf53809c.png

21.2.1.1.通讯引脚

I2C的所有硬件架构都是根据图中左侧SCL线和SDA线展开的(其中的SMBA线用于SMBUS的警告信号,I2C通讯没有使用)。RA6M5芯片有多个I2C外设,它们的I2C通讯信号引出到不同的GPIO引脚上,使用时必须配置到这些指定的引脚,见表22‑1。

关于GPIO引脚的复用功能,可查阅《RA6M5GroupUser_sManual》,以它为准。

表22‑1:RA6M5的I2C引脚(整理自《RA6M5GroupUser_sManual》)

468320a4-f67e-11f0-92de-92fbcf53809c.png

21.2.2.瑞萨RA6M5的I2C功能框图

46e43920-f67e-11f0-92de-92fbcf53809c.png

475a130c-f67e-11f0-92de-92fbcf53809c.png

注:

我们这里主要介绍的是瑞萨的fsp库的使用,所以在这里寄存器我们在这里做一些简单的介绍。

21.2.3. 时钟控制逻辑

下面将介绍时钟的控制流程

21.2.3.1. IIC起始信号与重启信号

当ICCR2中的RS位被设置为1时,IIC会发出一个重启条件请求。当ICCR2的BBSY标志位为1(总线繁忙状态),ICCR2的MST位为1(主模式)时IIC发出重启条件。 发出重启条件:

释放SDAn线路。

确保ICBRL中设置的SCLn线路的低电平周期已过。

释放SCLn线(低电平到高电平)。

在SCLn线上检测高电平,并确保ICBRL中设置的时间和重启条件设置时间经过。

将SDAn线拉低(从高电平到低电平)。

确保ICBRH中设置的时间和重启条件保持时间。

驱动SCLn线低电平(高电平到低电平)。

检测SCLn线上的一个低水平,确保ICBRL中设置的SCLn线的低水平周期已经过去

wKgZO2lwamWAe0xbAAGu4lzbqGw356.jpg

21.2.3.2. IIC循环发送

初始化IIC。

读取ICCR2中的BBSY标志,检查总线是否打开,然后设置ICCR2中的ST位为1(启动条件发出请求)。收到请求后,IIC发出启动条件。与此同时,BBSY位和START为被设置为1,ST位自动设置为0。如果检测到启动条件,并且SDA输出状态的内部电平和SDAn线路上的电平在ST位为1时匹配,IIC就会识别出,由于ST位已经成功完成了请求,启动条件已经成功发出。ICCR2的MST和TRS位自动设置为1,IIC处于主发送模式。当TRS位设置为1时,ICSR2中的TDRE标志也会自动设置为1。

检查ICSR2中的TDRE标志位是否为1,然后将传输值(从地址和R/W#位)写入ICDRT。传输数据写入ICDRT后,TDRE标志位自动设置为0,数据从ICDRT传输到ICDRS后,TDRE标志位再次设置为1。字节后包含从地址和当发送了R/W#位时,TRS位的值会根据发送的R/W#位的值自动更新,选择主发送或主接收模式。如果R/W#为0,则IIC继续主传输模式。如果此时ICSR2.NACKF标志位为1,表示从设备没有识别到该地址,或者通信出现错误,并向ICCR2.SP位写入1发出停止条件。如果要传输10位地址格式的数据,首先将11110b和从地址的高两位和W写入ICDRT作为第一个地址传输。然后将从地址低8位写入ICDRT作为第二个地址传输。

确认ICSR2的TDRE标志位为1后,将传输数据写入ICDRT寄存器。IIC自动保持SCLn线路处于低位,直到传输数据就绪,发出重启条件或停止条件。

当所有要传输的数据字节写入ICDRT寄存器后,等待ICSR2中的TEND标志位的值返回1。确认ICSR2的START标志位为1后,将ICSR2的START标志位设置为0。

设置ICCR2中的RS位为1(重启条件问题请求)。在接收到请求时,IIC发出一个重启条件。

检查ICSR2中的START标志位为1后,将传输值(从地址和R/W#位)写入ICDRT。

wKgZPGlwamWAGQI9AAE648G6XqA687.jpg


21.3. EEPROM简介

EEPROM是一种掉电后数据不丢失的存储器,常用来存储一些配置信息,以便系统重新上电的时候加载。 EEPROM芯片最常用的通讯方式就是I^2^C协议,本小节以EEPROM的读写实验为例子给大家讲解RA6M5的I^2^C使用方法。 实验中RA6M5的I2C外设采用主机模式,分别用作主发送器和主接收器,通过查询事件的方式来确保正常通讯。

本实验板中的EEPROM芯片(型号:AT24C02)的SCL及SDA引脚连接到了瑞萨RA6M5对应的I2C引脚中,结合上拉电阻,构成了I2C通讯总线,它们通过I2C总线交互。EEPROM芯片的设备地址一共有7位,其中高4位固定为:1010 b,低3位则由A0/A1/A2信号线的电平决定,见图22_12,图中的R/W是读写方向位,与地址无关。

wKgZPGlwaruAPyNDAABnlGtX0w421.jpeg

图 22‑12 EEPROM设备地址(摘自《AT24C02》规格书)

按照我们此处的连接,A0/A1/A2均为0,所以EEPROM的7位设备地址是:1010 000b ,即0x50。由于I2C通讯时常常是地址跟读写方向连在一起构成一个8位数,且当R/W位为0时,表示写方向,所以加上7位地址,其值为“0xA0”,常称该值为I2C设备的“写地址”;当R/W位为1时,表示读方向,加上7位地址,其值为“0xA1”,常称该值为“读地址”。

EEPROM芯片中还有一个WP引脚,具有写保护功能,当该引脚电平为高时,禁止写入数据,当引脚为低电平时,可写入数据,我们直接接地,不使用写保护功能。

关于EEPROM的更多信息,可参考其数据手册《AT24C02》来了解。若您使用的实验板EEPROM的型号、设备地址或控制引脚不一样,只需根据我们的工程修改即可,程序的控制原理相同。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 瑞萨
    +关注

    关注

    38

    文章

    22518

    浏览量

    91212
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1563

    浏览量

    131763
  • 引脚
    +关注

    关注

    16

    文章

    2120

    浏览量

    56041
  • GPIO
    +关注

    关注

    16

    文章

    1334

    浏览量

    56467

原文标题:I²C的数据、地址传输和响应及瑞萨RA6M5的I²C特性及架构——瑞萨RA系列FSP库开发实战指南(65)

文章出处:【微信号:瑞萨嵌入式小百科,微信公众号:瑞萨嵌入式小百科】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于RA6M5/RA2L1和百度语音云的语音识别控制与无线通信控制系统

    整个系统由两个野火启明开发板组成,大的RA6M5开发板接入W5500网口模块.
    的头像 发表于 02-26 13:54 3089次阅读
    基于<b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA6M5</b>/<b class='flag-5'>RA2</b>L1和百度语音云的语音识别控制与无线通信控制系统

    RA系列FSP开发实战指南I2C读写EEPROM实验

    使用官方提供的FPS进行编程,官方提供的FPS具有方便、快捷、简洁的
    的头像 发表于 01-27 10:02 3799次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b><b class='flag-5'>系列</b><b class='flag-5'>FSP</b><b class='flag-5'>库</b><b class='flag-5'>开发</b><b class='flag-5'>实战</b><b class='flag-5'>指南</b><b class='flag-5'>之</b><b class='flag-5'>I2C</b>读写EEPROM实验

    e2studio(1)----芯片搭建FSP环境

    视频教学 样品申请 请勿添加外链 e2studio软件 e2studio是的集成开发环境,FSP
    发表于 09-30 15:28

    RA6M5中的QSPI可以用作普通SPI使用吗?

    各位大佬,请教一个问题,RA6M5中的QSPI可以用作普通SPI使用吗?有没有相关教程
    发表于 12-18 08:53

    RA6E2地奇星开发板试用】开发板介绍及环境搭建

    物联网、工业控制、智能硬件等场景。 核心参数一览 项目 规格 主控芯片 R7FA6E2BB3CNE( RA6E2 系列) 内核 Arm
    发表于 12-22 00:40

    RA4系列开发板体验】体验过程

    、使用 RASC 生成 Keil 工程+点亮LED参照“ 【RA4系列开发板体验】2. 使用
    发表于 12-18 16:20

    基于RA4M2的表盘设计

    RA4M2单片机系列功能强大领先性能的100 MHz Arm Cortex-M33内核,高达512 KB的代码闪存,可后台操作,8 KB数据闪存和128 KB带奇偶校验/ECC的SRAM。与USB
    发表于 03-22 19:31

    RA MCU创意氛围赛】3. 硬件I2C驱动OLED显示汉字

    RA MCU创意氛围赛】1. PWM驱动LED以及STLINK下载配置【RA MCU创
    发表于 05-26 14:06

    RAMCU创意氛围赛】基于RA6M5的电子墨水屏微信信息站

    RA6M5开发与烧录环境兼容STM DAP 烧录下载器 四、方案整体技术架构 RA6M5
    发表于 08-28 04:06

    电子发布了一款RA6M5群微控制器MCU的相关特性详解

    全新MCU产品群为IoT应用带来多种通信功能选项、灵活的内存架构和强大的安全性,成为现场固件更新应用的理想电子集团今日宣布,新增20款RA6
    的头像 发表于 04-06 16:24 3629次阅读

    RA系列MCU选型指南

    RA系列MCU产品基于Arm Cortex-M内核,与自有内核RL78和RX系列一起,成为
    发表于 11-08 13:51 3336次阅读

    【视频教程】RA单片机FSP开发(3)FSP架构-解释Blinky架构[上]

    干货分享 前篇回顾 【视频教程】RA单片机FSP开发(1)环境搭建(带RASC) 【视频教程】
    的头像 发表于 12-06 12:15 2158次阅读

    RA6系列芯片外扩SRAM方法

    应用。RA6其它系列扩展外部SRAM应用操作方法类似。 一、RA6M5外部总线外设描述 电子RA6M
    的头像 发表于 02-11 06:00 3239次阅读

    RA6M3 MCU通过I2C读取HS3001温湿度传感器

    RA6M3 MCU通过I2C读取HS3001温湿度传感器
    的头像 发表于 09-26 16:57 2061次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA6M</b>3 MCU通过<b class='flag-5'>I2C</b>读取HS3001温湿度传感器

    分享RA MCU创意氛围赛的作品—高压电网电流监测

    今日分享RA MCU创意氛围赛的作品——高压电网电流监测。本项目基于启明6M5开发板用于监测高压三相电流数据,并对故障进行判断的设备,使
    的头像 发表于 04-19 14:20 1828次阅读
    分享<b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b> MCU创意氛围赛的作品—高压电网电流监测