RA6M3

介 绍

使用瑞萨RA MCU的灵活软件包(Flexible Software Package-FSP),配合e2 studio集成开发环境,或者使用RA智能配置器(RA Smart Configurator-RASC),配合支持的第三方工具和IDE,以及GUIX Studio可以简单地制作HMI。

本教程以RA6M3 MCU+8080总线的LCD屏幕,展示如何一步一步地使用FSP和智能配置器和GUIX studio完成一个HMI的基本设计。

此方案硬件由RA6M3开发板+LCD屏组成,软件代码由Azure RTOS中的ThreadX实时系统+GUIX图形界面两部分组成。使用的软件为e2 studio及GUIX studio。

“基于RA6M3

使用的硬件接口为8080总线,其硬件原理图如下:

“基于RA6M3

程序实现

01、使用e2 studio新建一个RA6M3+Azure的工程

02、工程目录中双击configuration.xml文件,可以打开软件自带的配置界面

03、配置界面中点击“clocks”,进入配置时钟界面。根据自己的需求,配置好时钟

04、点击“pins”,配置使用的对应IO口功能,本工程主要配置bus总线为8080接口

“基于RA6M3

“基于RA6M3

05、点击stacks,然后点击New Thread,新建一个线程用于执行GUIX

“基于RA6M3

06、点击Component,将Azure GUIX组件添加进来

“基于RA6M3

07、点击Generate Project Contens生成代码

“基于RA6M3

08、写接口配置文件

“基于RA6M3

根据使用的LCD屏幕来配置参数,本参数适用于8080总线

09、屏幕驱动编写,由于使用GUIX,屏幕驱动只需带有画点函数和屏幕初始化函数即可,一般屏幕驱动厂商会提供,不需要自己重写

“基于RA6M3

“基于RA6M3

10、对GUIX进行移植,主要需要修改Ra6m3_565rgb_buffer_toggle这个函数,主要实现屏幕的内容显示,即画点函数。另外GUIX使用的是画布的机制,所以需要在RAM中给画布留下一定的空间。(由于GUIX studio没有rgb565的设置,我使用的是rgb565的屏幕,所以需要将argb1555转成rgb565)

“基于RA6M3

“基于RA6M3

“基于RA6M3

“将argb1555转成rgb565"
将argb1555转成rgb565

11、移植完GUIX后就是进行GUI设计,使用需要用到GUIX studio,使用GUIX studio新建一个工程,会弹出如下对话框,根据自己的屏幕进行设置

“基于RA6M3

然后会弹出GUI设计页面,根据个人需要进行GUI设计。

“基于RA6M3

“基于RA6M3

“基于RA6M3

完成设计后点击project下的generate all output file,生成GUI资源文件,将资源文件添加到工程中,由于我使用的屏幕实际是rgb565格式的,需要将resource.h和resource.c中的GX_COLOR_FORMAT_1555XRGB全部替换成GX_COLOR_FORMAT_565RGB

“基于RA6M3

12、然后编译程序,此工程就基本完成了,剩下的是在这个框架下根据自己的外围器件添加驱动、GUI、逻辑业务。下图为现实的温湿度传感器的界面。

“基于RA6M3

来源:瑞萨MCU小百科
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 444

简介

使用瑞萨RA MCU的灵活软件包(Flexible Software Package–FSP),配合e2 studio集成开发环境,或者使用第三方IDE和支持该IDE的RA智能配置器(RA Smart Configurator–RASC),可以简单方便的对外围器件添加驱动代码。

本教程以RA6M3 MCU通过I2C接口控制HS3001温湿度传感器为例,展示如何一步一步的使用FSP添加外围器件驱动。

主要内容

“瑞萨RA6M3

本程序基于新晔电子RA6M3开发板及Sensor板(包含HS3001、ISL29033及ZMOD4410),由于ISL29033和HS3001的i2c地址都为0x44,所以将HS3001地址改为了0x31。

  • 使用e2 studio新建一个RA6M3的工程

  • 工程目录中双击configuration.xml文件,可以打开软件自带的配置界面

  • 配置界面中点击“Clocks”,进入配置时钟界面。根据自己的需求,配置好时钟

  • 点击“Pins”,可以配置IO口功能。选择要使用的IIC,并且使能

“瑞萨RA6M3
  • 点击“Stacks”,然后点击“New Stack”→ “Driver”→“Connectivity”→“I2C Master Driver on r_iic_master”,增加iic驱动配置。

“瑞萨RA6M3
  • 效果如下图,“属性”窗口配置i2c:

1、Name为配置i2c的结构体名称

2、Channel配置要使用的i2c通道,配置好后,Pins中会显示使用的IO口

3、Rate配置i2c速率

4、Slave Address配置从机地址,可在程序中修改

5、Address Mode配置从机地址模式,多数为7-Bit模式

6、Callback配置i2c的中断函数(必须配置)

7、Interrupt Priority Level配置中断优先级

此例中,使用i2c通道2,端口为P511和P512,并配置好中断函数名

配置好后,点击“Generate Project Content”

“瑞萨RA6M3
  • 中断函数在hal_data.h中声明,需要使用者去完成此函数。此函数中可以读取中断事件,作者直接使用长延时等待i2c通信完成,所以此函数为空。

“瑞萨RA6M3
  • 文件ra_gen/hal_data.c中初始化了g_i2c_master0的结构体,此结构体中包含可调用的函数结构体和配置参数结构体。

    修改hal_entry.c文件中的hal_entry函数,顺序完成以下代码:

1、初始化i2c

2、设置i2c从机地址(HS3001从机地址为0x31)

3、向HS3001发送请求测量命令,然后加入等待延时

4、读取HS3001温度数据和湿度数据,并等待通信完成

5、通过计算得到温湿度数值

注意:每次读取数据前要发送请求测量命令,否则HS3001会处于睡眠状态,读出的数据不变化。

“瑞萨RA6M3
  • 将Sensor板与开发板的P1接口连接。

  • 编译程序并仿真,将RH和TEMP变量添加到Watch Expressions窗,使能实时刷新(Expressions中选中变量,单击右键)。

“瑞萨RA6M3

在Expressions中可以看到数据变化。

“瑞萨RA6M3

总结:

从以上例子大家可以看到,使用瑞萨RA MCU的灵活软件包添加一个I2C外置的驱动,只需要在FSP的图形介面上对硬件和软件做好配置即可自动生成所需的驱动和初始化代码,整个应用就只需要10行的代码。硬件和驱动上的配置在介面上也是一目了然,无需工程师去查文档、看手册,非常方便。

来源:瑞萨MCU小百科
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 197
订阅 RSS - RA6M3