这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 软件与操作系统 » 野火启明6M5适配I2C

共5条 1/1 1 跳转至

野火启明6M5适配I2C

助工
2024-10-04 10:52:23     打赏

       在了解瑞萨RA系列的驱动框架思路后,会发现我们并不需要关心驱动是怎么写的,仅仅需要知道怎么使能对应模块,怎么配置所需要的资源便可快速的开启想要的功能。

芯片I2C资源分配情况

管脚功能定义野火板卡支持情况
P400SCL0_ACAN总线IC占用
P401SDA0_ACAN总线IC占用
P415SCL2_B接到 AT24C02C-SSHM-T
P414SDA2_B接到 AT24C02C-SSHM-T
P410SCL2_ATF卡座,无法引出
P409SDA2_AJ26_2,配套脚无法引出
P408SCL0_BJ26_3
P407SDA0_BUSB VBUS占用
P206SDA1_BTF卡座,无法引出
P205SCL1_BTF卡座,无法引出
P512SCL1_AJ35-3
P511SDA1_AJ35-1

       从资源上看,板卡端最终可以使用的I2C接口有两个,一个是P511/P512,另一个是P415/P414。处于方便考虑,这里优先实现P415/P414功能。

配置过程

RTT配置添加

KConfig之前已有添加I2C1配置,但未添加所需的I2C2配置,因此添加该部分配置:

2.jpg

对应的驱动文件drv_i2c.c修改:

image.png

drv_i2c.c中是直接引用RASC生成的文件,因此不需要在drv_config.h中添加I2C相关头文件。

配置代码

在emu中运行menuconfig,打开I2C配置,由于启明6M5引出的GPT0默认被RTT串口占用,GPT9无对应引脚,因此暂不设置该接口。

从rtt软件仓库中下载at23cxx软件包,并解压至bsp的board目录下:

2.jpg

运行scons --target=mdk5,把I2C部分导入工程

image.png

配置I2C打开新生成的keil工程后运行RASC,增加I2C相关配置

image.png

image.png

image.png

生成代码配置

image.png

修改代码

注释掉掉生成文件r_gpt.c中的代码 #include "r_gpt_cfg.h",这可能是这版RASC的bug,生成时未包括该文件。

/***********************************************************************************************************************
 * Includes
 **********************************************************************************************************************/
#include "r_gpt.h"
//#include "r_gpt_cfg.h"

/***********************************************************************************************************************
 * Macro definitions
 **********************************************************************************************************************/

/* "GPT" in ASCII, used to determine if channel is open. */
#define GPT_OPEN                                         (0x00475054ULL)

编译固件

结果验证

需预先知道的知识:

从AT24C02C-SSHM-T规格书中可知,该芯片I2C地址为

image.png

而野火该部分原理图如下:

image.png

因此对应的7位I2C地址为0x50;

由于rtt并未实现命令行的i2c测试命令,因此使用第三方已经写好的at24cxx软件包来测试,毕竟不是测at24cxx的软件逻辑,而是确认硬件是否打通。

\ | /
- RT -     Thread Operating System
 / | \     5.2.0 build Jun 13 2024 23:26:11
 2006 - 2024 Copyright by RT-Thread team
[I/I2C] I2C bus [i2c2] registered

Hello RT-Thread!
msh >at24cxx probe i2c2
msh >at24cxx check
msh >at24cxx write
write ok
msh >at24cxx read
read at24cxx : WELCOM TO RTT
msh >

运行过程讲解:

使用软件at24xx来快速验证I2C接口是否配置成功,其中:

at24cxx probe i2c2  为注册I2C2为at24cxx的指定i2c口(未指定i2c地址是因为此测试程序默认地址为0x50了)

at24cxx check 为检查是否挂载了 at24cxx设备,若未挂载,则打印fail

at24cxx write 为向eeprom写入 "WELCOM TO RTT" 字段,若写入失败,则报错,写入成功,也打印write ok

at24cxx read 为从eeprom中读取50字节的内容并打印,若读取失败,则打印失败,成功,打印读取到的内容

以上结果表明,i2c2配置成功






关键词: 野火     启明     适配     I2C    

专家
2024-10-04 12:39:28     打赏
2楼

谢谢分享


专家
2024-10-05 12:33:25     打赏
3楼

感谢楼主分享


专家
2024-10-05 12:42:11     打赏
4楼

感谢楼主分享


专家
2024-10-05 12:43:26     打赏
5楼

感谢楼主分享


共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]