移植MPU6050驱动到瑞萨RA6M4平台
前言最近在瑞萨官网申请到了一块RA6M4的开发版,正好手头也有一些大学时候做项目留下的传感器,就打算用这个来入门瑞萨MCU。
准备工作
目前瑞萨RA系列的MCU都是使用的ARM架构,所以是可以在IAR或者KEIL上开发的,不过对各个特性支持最好的还是官方的e2studio搭配FSP(灵活配置软件包),用大家比较常用的STM32来类比的话e2studio类似于KEIL5,FSP类似于CubeMX,一个是IDE一个是图形化配置界面。
所以这次的开发环境是E2studio加FSP,使用到的硬件为瑞萨EK-RA6M4开发版以及MPU6050加速度传感器。
软件方面需要提前找好MPU6050的驱动,网上有找到官方的驱动。
正式开发
安装好e2studio以及FSP插件后,可以直接选择新建RA工程:
之后因为我使用的是官方的EK-RA6M4开发版,所以是可以在新建工程界面直接选择开发板进行开发的:
如果选择了官方开发板,那么FSP里会将板子上一些外设的IO提前定义好,其余没有太大区别,所以如果你使用的是自定义板或者网上买的一些第三方开发板也是没有太大影响的,在这个页面选择custom user board和对应的芯片型号就行。
之后按照提示一直点下一步就新建好工程了,这时候e2studio会自动跳转到FSP配置页面:
这个页面中比较重要的是下面的页面选项卡,有“summary”、“BSP”、“clocks”等等,都是很重要的配置。
我们这次开发主要的环节都是在"stacks"这个页面中进行,需要说明的是这里的“stacks”并非我们常说的栈,而是指FSP中外设的“模块”,每一个“stack”都对应一个MCU的功能或者外设,比如我们这次要移植的MPU6050是通过IIC进行通信的,那么就要在“stacks”里添加IIC的模块:
在stacks页面依次点击“new stack”-》“connectivity”-》“I2C master”
这样I2C模块就被添加到了FSP中,之后我们就可以对I2C进行配置了,配置主要是在下方的属性页面中进行:
我们需要配置的有IIC的从机地址0x68,地址模式7bit,I2C的callback函数(这里给函数取名为i2c_callback),I2C中断等级,以及I2C的IO
如上图,这就是我们所有需要配置的属性,配置完成后点击页面右上角的generate project content,这样FSP就可以自动生成代码了,生成代码后的工程文件夹如下:
其中ra和ra_gen对应了瑞萨官方的BSP以及FSP生成的驱动文件,src文件夹中是我们的主函数入口,configuration.xml是FSP的配置文件,双击可以打开刚才的FSP页面。还有最下面的Developer Assistance我认为是对开发有非常大帮助的功能,点开它可以看到我们之前在FSP中添加的stack:
再点击stack后会显示FSP中已经定义好的所有API,常用的OPEN,read,write等函数都已经提前帮你定义好,只需要拖动这个API就可以直接放到代码里:
并且会帮你把传参基本都填好,只有部分API需要再额外填写参数。
以上是E2studio和FSP的基础操作,我觉得基本上知道以上操作就可以开始进行瑞萨系统的开发了,并且相较于我大学使用的CubeMX+Keil的组合,E2studio因为集成了IDE和图形化配置界面,所以开发流程简化了许多,而且能够直接拖动API也是非常方便的特性。
接下来进行MPU6050驱动的移植。
首先把网上下好的MPU6050官方驱动复制到src文件夹下:
之后需要将.c和.h中的引用以及API全部替换为FSP生成的驱动以及API:
比如将原本驱动中的I2C_Write函数替换为g_iic->write,依次替换完成后,在主函数中初始化IIC并调用MPU6050的API既可。
页:
[1]