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

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

3天内不再提示

RA6M3 HMI Board之硬件I2C实践流程

冬至子 来源:yefeng 作者:yefeng 2023-11-13 12:53 次阅读

1、前言说明

I2C总线是Philips公司在八十年代初推出的一种串行、半双工的总线,主要用于近距离、低速的芯片之间的通信

I2C总线有两根双向的信号线,一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟的同步。

I2C总线硬件结构简单,简化了PCB布线,降低了系统成本,提高了系统可靠性,因此在各个领域得到了广泛应用。

1.1 本章内容

本章内容主要介绍如何利用瑞萨RA6M3系列芯片R7FA6M3AH3CFB的硬件i2c功能控制点亮0.96寸i2c接口OLED显示屏。

1.2 模块介绍

1.2.1 瑞萨ra6m3的硬件i2c

硬件资源数量

瑞萨ra6m3系列芯片具有3路硬件i2c通讯接口,另外还有10路的串行通讯接口(SCI),也可扩展为硬件i2c。

芯片的i2c资源数量可参考下表:

1.jpg

模块硬件特点

通讯格式

I2c总线格式或SMBus格式
可选择主机模式和从机模式
在传输时可自动获得数据建立时间、保持时间以及总线释放时间
传输速率

支持超快速模式,传输速率高达1Mbps
SCL时钟

在主机模式下,时钟的占空比可在4 – 96%之间调整
总线时序信号的产生与检测

自动产生标准的i2c总线时序条件(起始、重复起始、停止)
做从机使用时可自动侦测其它主机发送的起始(或重复起始),停止条件
从机地址

可配置高达3个从机地址
支持7位、10位地址格式,并且可以同时使用这2种模式
支持广播寻址,设备ID寻址以及SMBus主机地址侦测
应答

数据传输时,可自动加载应答位
数据接收时,可自动传输应答位
等待功能
在数据接收期间,保持SDL位位低电平的时候,下列等待周期将变得有效:

在第8和第9个时钟之间的等待
在第9个时钟和下一数据帧的第1个时钟之间的等待
SDA输出延时

在输出数据的时候,可加入延时功能(包括应答位)
仲裁

多主机仲裁
侦测到起始条件失去仲裁,避免产生2个以上的起始条件
在传输一个非应答位期间,如果SDA线上的电平和自己不匹配失去仲裁
从机传输时,内部数据和通讯线上的电平不匹配将失去仲裁
超时

内部状态检测到超时时,可停止SCL的时钟输出
噪声滤波

数字滤波器支持检测SCL和SDA线上的信号
滤波器支持可编程的窗口期用来滤除噪声干扰
中断源

传输错误或者事件(仲裁丢失、无应答、超时、起始条件、停止条件)发生将产生中断
接收数据缓冲区满(包括从机地址匹配模式)可产生中断
传输数据缓冲区空(包括从机地址匹配模式)可产生中断
传输结束产生中断
模块停止省电模式

可配置为停止模式来降低电源的消耗,达到低功耗目的
支持的操作模式

主机传送
主机接收
从机传送
从机接收
事件连接(输出)

支持传输错误或者总线事件(仲裁丢失、无应答、超时、起始条件或者重复起始条件、停止条件)
支持数据满、从机地址匹配
支持数据空、从机地址匹配
传输结束
唤醒功能

支持使用唤醒事件将cpu从待机模式唤醒(此功能只支持I2C0外设,I2C1,I2C2不支持)
硬件i2c框图

1.jpg

1.2.2 0.96寸OLED显示屏

显示屏特性
分辨率:128x64
控制芯片:SSD1306
接口类型:I2C
工作电压:3.3v ~ 5V
显示颜色:蓝色

显示屏外观

1.jpg

接口定义

1.jpg

1.3 硬件连接

1.jpg

连接说明:

1.jpg

由于OLED显示屏比较小,供电电流不大,可以直接用GPIO输出高电平来供电。

2、步骤说明

2.1 新建工程

新建ra6m3_hmi_board_i2c_hardware工程

打开RT-Thread Studio软件,执行菜单【文件】->【新建】->【RT-Thread项目】弹出新建项目对话框,选择【基于开发板】的项目,其它配置如下图 所示,项目名称:ra6m3_hmi_board_i2c_hardware,点击【完成】。

1.jpg

配置FSP路径并允许FSP软件

双击项目资源管理器里面的【RA Smart Configurator】,在弹出的对话框中点击【是】,然后选择瑞萨FSP软件的安装路径:本机安装在: C:RenesasRAsc_v2021-10_fsp_v3.5.0

1.jpg

2.jpg

配置GPIO
配置P506为GPIO输出模式,默认高电平
配置P008为GPIO输出模式,默认低电平
配置 Connectivity->IIC1 功能,Enable,引脚为P206(SDA), P205(SCL)

1.jpg

2.jpg

3.jpg

配置硬件i2c模块

依次选择【Stacks】->【New Stack】->【Connectivity】->【I2C Master(r_iic_master)】,创建I2C Master模块,关键参数如下表

1.jpg

配置如下图所示

1.jpg

2.jpg

5 生成配置代码

点击 【Generate Project Content】生成配置代码

2.2 编写测试程序

添加软件包u8g2组件

双击RT-Thread Settings,进入添加软件包界面,点击【添加软件包】,在弹出的对话框中搜索栏输入u8g2,选中u8g2官方软件包,添加到工程

1.jpg

2.jpg

配置u8g2组件

点击u8g2组件,选择【配置项】,并按如下图所示配置u8g2(official)软件包,然后保存配置

1.jpg

2.jpg

使能硬件i2c总线驱动

1.jpg

测试代码

测试代码无需编写,u8g2提供了example,直接使用,然后编译工程并下载到开发板。

#include
#include
#include
#include
static void u8g2_ssd1306_12864_hw_i2c_example(int argc,char argv[])
{
u8g2_t u8g2;
// Initialization
u8g2_Setup_ssd1306_i2c_128x64_noname_f( &u8g2, U8G2_R0, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
u8g2_InitDisplay(&u8g2);
u8g2_SetPowerSave(&u8g2, 0);
/
full buffer example, setup procedure ends in _f */
u8g2_ClearBuffer(&u8g2);
u8g2_SetFont(&u8g2, u8g2_font_ncenB08_tr);
u8g2_DrawStr(&u8g2, 1, 18, "U8g2 on RT-Thread");
u8g2_SendBuffer(&u8g2);
// Draw Graphics
u8g2_SetFont(&u8g2, u8g2_font_unifont_t_symbols);
u8g2_DrawGlyph(&u8g2, 112, 56, 0x2603 );
u8g2_SendBuffer(&u8g2);
}
MSH_CMD_EXPORT(u8g2_ssd1306_12864_hw_i2c_example, i2c ssd1306 sample);

3、代码验证

下载程序,然后终端界面显示,提示符下输入 tab 并按回车显示所有命令,可以看到u8g2的示例已经出现

1.jpg

输入u8g2,按tab自动补全,然后再按回车执行示例代码,效果如下图所示

1.jpg

1.jpg

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

    关注

    6

    文章

    1569

    浏览量

    44885
  • PCB布线
    +关注

    关注

    19

    文章

    460

    浏览量

    41655
  • I2C总线
    +关注

    关注

    8

    文章

    357

    浏览量

    60409
  • SDL
    SDL
    +关注

    关注

    0

    文章

    18

    浏览量

    7281
  • OLED显示屏
    +关注

    关注

    6

    文章

    202

    浏览量

    30322
收藏 人收藏

    评论

    相关推荐

    RA6M3 HMI Board之SDHI测评实践步骤

    首先对SDHI和SDIO本质上的区别进行说明,然后使用RT-Studio新建工程进行开发,通过RASC对RA6M3的底层硬件配置,然后使用SDHI接口实现SD的识别,搭配文件系统对SD卡进行读写操作,同时记录开发遇到的问题。
    的头像 发表于 08-07 15:54 809次阅读
    <b class='flag-5'>RA6M3</b> <b class='flag-5'>HMI</b> <b class='flag-5'>Board</b>之SDHI测评<b class='flag-5'>实践</b>步骤

    如何利用rt-thread和HMI Board RA6M3开发一套物联网工控机?

    近年来,随着新一轮的科技发展以及工业产业升级,工业经济慢慢的由数字化向网络化和智能化发展。基于这一理念,本人利用rt-thread和HMI Board RA6M3开发了一套物联网工控机。
    的头像 发表于 09-15 15:27 911次阅读
    如何利用rt-thread和<b class='flag-5'>HMI</b> <b class='flag-5'>Board</b> <b class='flag-5'>RA6M3</b>开发一套物联网工控机?

    RA6M3 HMI Board评测挑战】-瑞萨RA6M3上的CAN实践

    RA6M3 HMI Board 评测大挑战】-瑞萨RA6M3上的CAN实践
    的头像 发表于 10-17 14:55 1078次阅读
    【<b class='flag-5'>RA6M3</b> <b class='flag-5'>HMI</b> <b class='flag-5'>Board</b>评测挑战】-瑞萨<b class='flag-5'>RA6M3</b>上的CAN<b class='flag-5'>实践</b>

    Renesas RA2L1开发板I2C测评

    1、Renesas RA2L1开发板I2C  开发板介绍  CPK-RA2L1评估板是一款专门针对中国本地的开发板,主MCU是一款主频为48MHz,内核为Arm® Cortex®-
    发表于 10-24 16:29

    Renesas RA2L1开发板I2C接口评测

    1、Renesas RA2L1 开发板 I2C  开发板介绍  CPK-RA2L1评估板是一款专门针对中国本地的开发板,主MCU是一款主频为48MHz,内核为Arm® Cortex®
    发表于 11-04 14:26

    RT-Thread联合瑞萨即将发布高性价比HMI Board

    高性能芯片 RA6M3 及 RT-Thread 软件生态,HMI Board 不仅硬件性能强劲,同时软件生态丰富,助力开发者快速开发出 GUI 智能
    发表于 05-08 08:22

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

    SCI6,复用I2C模式。 配置stack,选择sci_i2c: 详细配置如下: 3. 代码实现 3.1 字库 下面是测试代码: I2c_I
    发表于 05-26 14:06

    RA6M3硬件用户手册(英)

    RA6M3硬件用户手册(英)
    发表于 11-07 19:49 0次下载
    <b class='flag-5'>RA6M3</b><b class='flag-5'>硬件</b>用户手册(英)

    RA6M3硬件用户手册(中英)

    RA6M3硬件用户手册(中英)
    发表于 11-07 19:49 0次下载
    <b class='flag-5'>RA6M3</b><b class='flag-5'>硬件</b>用户手册(中英)

    RA6M3 HMI Board 之SDHI实践

    进行说明,然后使用RT-Studio新建工程进行开发,通过RASC对RA6M3的底层硬件配置,然后使用SDHI接口实现SD的识别,搭配文件系统对SD卡进行读写操作,同时记录开发遇到的问题。 1.2
    的头像 发表于 06-19 18:15 588次阅读
    <b class='flag-5'>RA6M3</b> <b class='flag-5'>HMI</b> <b class='flag-5'>Board</b> 之SDHI<b class='flag-5'>实践</b>

    RA6M3 HMI Board 之RTC实践

    开发环境: RT-Thread Studio:v2.2.6 开发板:RA6M3 HMI Board开发板 MCU:R7FA6M3AH3CFB 1 RA6M3 RTC简介 R7FA6M3
    的头像 发表于 06-21 21:31 2493次阅读
    <b class='flag-5'>RA6M3</b> <b class='flag-5'>HMI</b> <b class='flag-5'>Board</b> 之RTC<b class='flag-5'>实践</b>

    【线下培训】上海临港: RT-Thread × 瑞萨 工业监视器 RA6M3 HMI Board解决方案

    RT-Thread 与瑞萨将于10月14日在上海临港举行一场线下培训。 本次培训将为开发者们带来期待已久的热门技术主题, RT-Thread × 瑞萨 工业监视器 RA6M3 HMI Board
    的头像 发表于 09-07 17:40 458次阅读
    【线下培训】上海临港: RT-Thread × 瑞萨 工业监视器 <b class='flag-5'>RA6M3</b> <b class='flag-5'>HMI</b> <b class='flag-5'>Board</b>解决方案

    瑞萨RA6M3 HMI-Board Video Demo 上手指南

    于瑞萨高性能芯片 RA6M3 及 RT-Thread 和 LVGL 软件生态,HMI Board 不仅硬件性能强劲,同时软件生态丰富,助力开发者快速开发出 GUI 智能
    的头像 发表于 09-15 18:25 802次阅读
    瑞萨<b class='flag-5'>RA6M3</b> <b class='flag-5'>HMI-Board</b> Video Demo 上手指南

    瑞萨 RA6M3 开发实践指南-UART实践

    RT-Thread即将发布一系列RA6M3外设驱动的实践指南,我们将使用瑞萨RA6M3 HMI-Board 开发板,带领大家上手RT-Thread设备驱动。  【
    的头像 发表于 09-23 12:15 704次阅读

    RA6M3 RT-Thread* LVGL HMI Board开发实践指南-GPIO实践

    RT-Thread即将发布一系列RA6M3外设驱动的实践指南,我们将使用瑞萨RA6M3 HMI-Board 开发板,带领大家上手RT-Thread设备驱动, 本篇文章将介绍GPIO外设
    的头像 发表于 11-30 19:05 515次阅读
    <b class='flag-5'>RA6M3</b> RT-Thread* LVGL <b class='flag-5'>HMI</b> <b class='flag-5'>Board</b>开发<b class='flag-5'>实践</b>指南-GPIO<b class='flag-5'>实践</b>