Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
I2C_IIC
OLED显示屏
瑞萨_Renesas
【开发板评测】Renesas RA2L1 开发板之 I2C
发布于 2022-10-21 19:45:19 浏览:1562
订阅该版
[tocm] # 开发板介绍 CPK-RA2L1评估板是一款专门针对中国本地的开发板,主MCU是一款主频为48MHz,内核为Arm® Cortex®-M23 超低功耗通用微控制器,具备256kB 代码闪存, 32kB SRAM,64脚LQFP封装,器件型号为R7FA2L1AB2DFM。 ## 开发板主要特性 - 三个电容触摸按键 - 板载Jlink调试器 (SWD) - 用户 LED 指示灯 - 一个用户按钮 - 一个复位按钮 - 两个 Digilent Pmod™ (SPI 和 UART) 连接器 - Arduino™ (Uno R3) 连接器 - Grove I2C连接器 ## 开发板框图 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/33819aaa4fdd2982dc6b1bff85681057.png.webp) ## 开发板实物图片 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/defb4c4fae4dbf21327861fa414f303a.png.webp) # 任务说明 本次任务是RT-Thread社区与Renesas官方合作举办的一次评测任务,本人有幸参加这次的i2c硬件评测任务,使用主控MCU硬件I2C主机功能点亮OLED屏幕。感谢RT-Thread社区管理员和瑞萨官方给了这个机会。由于个人水平有限,文章难免存在疏漏和不合理的地方,可以评论指出,本人会认真回复解答。 # 硬件准备 - CPK-RA2L1评估板 x1 - 4p杜邦线x1 - [0.96寸OLED显示屏模块x1](https://item.taobao.com/item.htm?spm=a1z10.3-c-s.w4002-24362052676.10.6ac3546esJX7KC&id=43639171586 "0.96寸OLED显示屏模块x1") # 软件环境 - [MDK V5.37.00](https://www.keil.com/demo/eval/arm.htm "MDK V5.37.00") 项目集成开发环境 - [RT-Thread(master分支)](https://gitee.com/rtthread/rt-thread/tree/master/ "RT-Thread(master分支)") 嵌入式实时操作系统、BSP等 - [RT-Thread-Package: u8g2](https://github.com/olikraus/u8g2 "RT-Thread-Package: u8g2") U8g2是一款针对嵌入式设备使用的一套单色屏幕图形库软件 # 功能模块的硬件介绍(*) ## 开发板硬件I2C - 2路IIC接口 - 支持I2C标准格式和SMBus格式 - 支持主从模式通讯 - 支持自动安全的数据建立、保持和总线释放时序 - 支持快速模式400kbps - 主机模式下SCL时钟占空比可调节范围为4%-96% - 主机模式下可自动产生I2C标准的开始、重复开始、停止条件 - 从机模式下可配置高达3个从机地址 - 支持7位和10位地址 - 支持广播地址、设备ID地址和SMBus主机地址侦测 - 支持自动ACK应答位 - 支持SCL为低的等待 - 支持多主机仲裁 - 支持超时功能 - 支持噪声干扰滤波功能 - 支持多种中断条件(传输错误中断、事件发生中断、I2C总线条件中断、地址匹配中断、传输数据空/满/完成中断) - 可设置模块终止状态 - 支持主机发送、主机接收、从机发送、从机接收功能 ## OLED显示模块 OLED显示模块采用的是信泰微电子的OLED显示屏模块,详细资料见文末“资源参考链接”章节。 模块链接:[0.96寸蓝色 黄蓝双色 白色 I2C IIC通信 显示器 OLED液晶屏模块-淘宝网 (taobao.com)](https://item.taobao.com/item.htm?spm=a1z10.3-c-s.w4002-24362052676.9.6ac3546esJX7KC&id=43639171586 "0.96寸蓝色 黄蓝双色 白色 I2C IIC通信 显示器 OLED液晶屏模块-淘宝网 (taobao.com)") - 分辨率128*64 - 驱动芯片ssd1306 - 通信接口i2c ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/84ffaef7b665753f1574ab046dfe2857.png.webp) # 功能模块的使用说明(*) ## 硬件连接 ### 屏幕连接 屏幕的连接使用了I2C0硬件接口(P408, P407) | 开发板引脚 |引脚名称| 功能 | OLED引脚 | |--------|---|-----|--| | J1-11 | / | 3.3V | 1 (VDD) | | J1-08 | / | GND | 2 (GND) | | J1-15 | P408 | SCL | 3 (SCL) | | J1-16 | P407 | SDA | 4 (SDA) | ### 调试串口连接 调试串口使用了SCI9接口 | 开发板引脚 |引脚名称 | 功能 | |--------|-------|---------| | J2-2 |P109 | TXD | | J2-3 |P110 | RXD | | J2-8 | / | GND | ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/051578c7a73c9874f3d28f27e62fa73e.png.webp) ## 软件安装 1、 MDK 5.37 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/b9e0e31a05542de580194191a1c1bcc2.png.webp) 2、 安装瑞萨芯片设备库[Renesas RA series MDK device family pack(DFP)](https://www2.renesas.eu/Keil_MDK_Packs/Renesas.RA_DFP.3.6.0.pack "Renesas RA series MDK device family pack(DFP)") 因为瑞萨提供的bsp版本最新为3.6.0,所以我们也安装3.6.0版本,安装好之后如下图所示: ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/77023f2c22f280ad3582a93215585132.png.webp) 3、 安装瑞萨灵活配置软件包 (FSP)-V3.6.0,相关资源可在文章末尾链接下载 **建议:最好安装在C盘,这样MDK运行时环境可以直接找到并启动** ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/c94aa2ef74bb956c231aab4dcb6c3f71.png.webp) 4、 安装瑞萨CPK评估板的BSP,导入bsp,相关资源可在文章末尾链接下载 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/65db60ca13f5250df2158b40c95c5965.png.webp) 5、 克隆 rt-thread最新Master代码 [https://gitee.com/rtthread/rt-thread/tree/master/](https://gitee.com/rtthread/rt-thread/tree/master/ "https://gitee.com/rtthread/rt-thread/tree/master/") 6、 项目模板配置修改 由于瑞萨官方提供的设备包存在bug,程序的下载算法都是跑在ram中的,所以要修改算法运行的地址为**0x20000000**,算法文件比较大,要给足够的空间**0x2000**,打开**bsp\renesas\ra2l1-cpk\template.uvprojx**模板,修改模板的工程配置 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/a497ae43ee5a4a6998f01db4e5e9fe39.png.webp) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/23f228af65c662c356cd03bba9ec9507.png.webp) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/6f0b4c2cb0afdaa61daa73b41d9553a5.png.webp) 7、 项目配置(menuconfig) 在目录bsp\renesas\ra2l1-cpk下运行env环境([教程](https://www.rt-thread.org/document/site/#/development-tools/env/env "教程")),键入:menuconfig,进入项目的菜单配置 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/819d88abe332caf8679afd124d090fcc.png.webp) 使用v2版本的串口驱动 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/fb83945b10e11598e2bb0637206fecc1.png.webp) 修改控制台使用的串口为uart9 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/f084218f91fcb7d8880e9d91ad4cbf7d.png.webp) 开启芯片上的外设UART和硬件I2C ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/3bfb3f89d30e468fd243fcfdbf9a5bd3.png.webp) 开启UART9,并进行配置,设置发送接收缓冲区都为256字节 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/670856b63b69502e7fce3f9840ce65a4.png.webp) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/4e03fd17877f99f5c8695091827960d9.png.webp) 开启硬件I2C ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/87756ceb8261fbf364de15ba595e08ae.png.webp) 选择多媒体包u8g2,并配置u8g2使用的i2c接口,开启u8g2的example ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/6b666f344d06b26273cf06f8afd9ade3.png.webp) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/6f60d6b6f9ef5177623b8cdc3907ded4.png.webp) 选中SSD1306基本示例(硬件i2c) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/8d203738713bb38a045ff1f71edbfe83.png.webp) 一路按ESC退出菜单,并保存当前配置 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/f96fbd446f6116d4a01b00d70617edd6.png) 8、 使用**pkgs --update** 命令更新项目所使用的软件包 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/705d5a03d54e86f4df22da0f3576b64d.png.webp) 9、 使用**scons –target=mdk5** 命令重新创建MDK的项目 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/c0c5e27333dd0028e16c1e3973b3c4bd.png.webp) 这里提示无法获取armcc的版本,通过对比发现最新的代码MDK项目生成的功能可能有点不兼容?(猜测),但也有解决办法,即恢复旧版本的MDK项目创建的文件 将**tools**目录和此分支的代码比较:https://gitee.com/rtthread/rt-thread/tree/gitee_master/tools 恢复以下文件到gitee-master分支的旧版本,来创建MDK项目 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/2009a8bb3b7bce046f347f4373e709ec.png.webp) 再次执行**scons –target=mdk5** 命令重新创建MDK的项目,就可以成功了 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/3522fef908c9b74e8798498e8db95fa2.png.webp) 10、 使用瑞萨fsp工具rasc对项目重新配置 打开**bsp\renesas\ra2l1-cpk\project.uvprojx**项目,点击运行时按钮启动项目软件包环境配置 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/0f0090edfcea7fedc3aea30518c7fafa.png.webp) 点击“Flex Software >RA configuration”右边的绿色小三角按钮启动瑞萨的RASC配置程序 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/18279a601421bde93b7d53e664305faa.png.webp) 选择调试串口UART9的引脚为P109,P110,配置UART9的参数和中断回调函数 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/733f03eab8b2e93cbeb209c3e4d9ee4c.png.webp) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/782569ee57b905617e41bf87dee63171.png.webp) 开启I2C0外设,并配置I2C引脚为P407,P408 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/21f54428f591ff6051e2321989fea162.png.webp) 添加I2C Master组件模块,并配置模块的相关参数 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/2b651a9b36d7f87a330b477eab2f0671.png.webp) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/06078eb2cb4ccb0c436358d29ea08750.png.webp) 使用按钮“Generate Project Content”生成配置代码,然后关闭RASC配置程序。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/639da9632449456209b685a249233cc4.png.webp) 11、 重新对项目进行编译,然后使用下载按钮对程序进行下载,查看运行结果 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/90e76d85fdda75c75fad2d32c90999e6.png.webp) 此时会弹出当前版本的jlink不适配未知设备“**R7FA2L1AB2DFM**” ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/e26261d4abe03845a38ce985325b8be1.png.webp) 点击OK按钮,自动弹出设备选择对话框,输入图中的过滤条件,选中 **R7FA2L1AB**,确定后再次下载 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/809d81beda8518991b71bd1f62db4977.png) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/936ad66909a1512a3978b91c756ca9a1.png.webp) 通过串口终端查看运行效果,按下Tab键显示当前支持的所有命令 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/9f4121c0651b0f7fb9d86c133e4393aa.png.webp) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/36ace55c6500bef5e9fe56184f74310f.png.webp) 输入u8g2_ssd1306_128,然后按Tab键自动会补全OLED示例程序的命令, 执行查看效果 # 完成模块功能的演示(*) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/64609d774aa278aae93345f77d742350.png.webp) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221021/55b8f7ddb6c24bca302234eb84b66ac7.png.webp) # 可编译下载的代码(*) 完成的可编译代码:[https://gitee.com/nes6502/cpk-ra2l1-i2c.git](https://gitee.com/nes6502/cpk-ra2l1-i2c.git) # 心得体会(*) 1. bsp的驱动库还不够完善,目前只支持1路硬件i2c功能 2. SCI也可当作i2c硬件使用(主机模式)可多出5路i2c功能 3. DMA功能待完善 4. FSP感觉上手很容易,图形化的组件配置很方便 5. Bsp部分目前官网只有3.6.0版本,很遗憾不能使用最新4.0.0的fsp # 资源参考链接 ## 瑞萨官方资料 [CPK-RA2L1/RA2E1评估板入门](https://www2.renesas.cn/cn/zh/document/qsg/1596891?language=zh&r=1596841) [CPK-RA2L1/RA2E1原理图](https://www2.renesas.cn/cn/zh/document/sch/1596866?language=zh&r=1596841) [CPK-RA2L1示例项目](https://www2.renesas.cn/cn/zh/document/scd/1596871?language=zh&r=1596841) [RA2L1数据手册](https://www2.renesas.cn/cn/en/document/dst/ra2l1-group-datasheet?language=en&r=1596841) [RA2L1硬件技术手册](https://www2.renesas.cn/cn/en/document/mah/ra2l1-group-users-manual-hardware?language=en&r=1398061) [FSP中添加CPK评估板的BSP-V3.6.0](https://www2.renesas.cn/cn/zh/document/gde/1596896?language=zh&r=1596841) [灵活配置软件包 (FSP)-V3.6.0](https://www2.renesas.cn/cn/zh/software-tool/flexible-software-package-fsp) [CPK评估板的BSP (FSP 3.6.0)](https://www2.renesas.cn/cn/zh/document/swo/1596886?language=zh&r=1596841) [Renesas RA series MDK device family pack(DFP)](https://www2.renesas.eu/Keil_MDK_Packs/Renesas.RA_DFP.3.6.0.pack) ## 模块资料 [IIC-OLED显示屏新资料(SSD1306)](https://pan.baidu.com/s/17gxBhj6mSmShORSg9yiHRQ)
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
yefeng
业精于勤而荒于嬉
文章
2
回答
1
被采纳
0
关注TA
发私信
相关文章
1
NXP的I2C应该比ST的好用吧
2
Use of I2C device driver
3
关于I2C 驱动问题请教
4
我如何知道这个iic的io配置和我电路设计的是一致的?
5
I2C模拟读操作失败,不知道问什么进不去读函数
6
RTT的I2C有官方文档资料没有
7
求 STM32F103 IIC 自定义IO初始化 代码
8
报一个LPC4008代码中I2C的bug
9
RTOS IIC总线使用
10
关于在RTT中使用STM32 I2C的疑问
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
PWM
cubemx
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
编译报错
Debug
rt_mq_消息队列_msg_queue
SFUD
keil_MDK
msh
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
812
个答案
177
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
2
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
2
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部