3. 初识瑞萨RA系列芯片¶
本章配套视频介绍:
《01-初识瑞萨以及瑞萨RA系列》
https://www.bilibili.com/video/BV1Ya4y1c7gZ/
3.1. 什么是ARM微控制器¶
微控制器(MCU)俗称单片机,如果有学过微机原理就会很熟悉这个概念了。 而 ARM 微控制器,顾名思义,就是基于 ARM 的微控制器,或者说搭载了 ARM 处理器内核的微控制器。
ARM 处理器是英国 ARM 公司设计的一种低功耗 RISC 微处理器。 ARM 全称为 Advanced RISC Machine,而 RISC 的全称是“精简指令集计算机”(reduced instruction set computer)。 由于 RISC 处理器支持的指令比较简单,所以功耗小、价格便宜。 同时,ARM 处理器经过了几十年的发展,也已具备了很高的性能。
实际上,ARM 公司并不生产其 ARM 处理器或者 ARM 微控制器,而是以一种技术IP授权的方式, 将其设计的 ARM 处理器内核授权给芯片生产厂家(比如瑞萨、NXP、ST等半导体公司),让它们生产实际的ARM芯片。 瑞萨RA系列的微控制器,其处理器内核是基于 ARM Cortex-M,因此也属于 ARM 微控制器的范畴。
3.2. 瑞萨RA系列MCU概览¶
发展状况
瑞萨的 RA 产品家族单片机 (MCU) 于 2019 年 10 月推出,丰富了瑞萨的 32 位 MCU 系列产品。 瑞萨除了 RA 系列之外的 32 位 MCU 产品还有 RX 系列(CPU使用瑞萨自家RX内核)和 Renesas Synergy™ 平台 MCU。
Renesas Advanced (RA) 32 位 MCU 是采用 Arm® Cortex®-M33、-M23 和 -M4 处理器内核, 并经过 PSA Certified ® 1 级认证的、行业领先的 32 位 MCU。
注解
注:PSA认证,即面向物联网安全的“平台安全架构(PSA)”认证。 平台安全架构(PSA)是Arm公司于2017年推出的行业通用框架,旨在打造各种安全的互联设备。 许多业界领先企业已宣布支持该架构的基础原则,为物联网设备和解决方案加入令人信任的安全级别。
注:RA 系列的所有 MCU 在功能上和大部分引脚上都是兼容的。小型器件上的外设大体上是大型器件上外设的子集。 这便于实现可扩展性和不同器件之间的代码重用。对于不同系列的类似封装,其引脚排列几乎相同。 这样一来,开发人员便不必在一开始就选好最终使用的器件,因为后面可以改用其他器件。 此外,在 PCB 布线时在器件封装内创建多种尺寸的封装,可为最终产品的制造提供灵活的选项。
瑞萨 RA 系列产品家族包括:
RA2 系列,适用于低功耗应用;
RA4 系列,适用于需要低功耗、高性能和高安全性的设备;
RA6 系列,具有卓越的连接性能和安全性能;
RA8 系列,可以为采用人机界面、连接、安全和模拟功能的应用提供出色性能。
具体特性如下:
RA2 系列 – 低功耗:基于 Arm Cortex-M23 内核,最高频率 48 MHz, 拥有高达 512 KB 的闪存和 64 KB 的 SRAM。电源电压范围为 1.6 V 到 5.5 V。 外设包括全速 USB、CAN、24 位 ∑-△ 模数转换器 (ADC)、16 位数模转换器 (DAC)、电容式触摸感应以及安全功能。
RA4 系列 – 高性能和出色的功耗:基于支持 TrustZone 的 Arm Cortex-M33F 内核或 Arm Cortex-M4F 内核构建,最高频率 100 MHz。高达 1 MB 的闪存和 128 KB 的 SRAM。电压范围为 1.6 V 到 5.5 V。 外设包括电容式触摸感应、段码式 LCD 控制器、全速 USB、CAN、安全功能以及数据转换器和定时 器。RA4W1 系列器件还额外配备了 Bluetooth ® 低功耗 (BLE) 5.0。
RA6 系列 – 高性能:基于支持 TrustZone 的 Arm Cortex-M33F 内核或 Arm Cortex-M4F 内核。最高频 率 200 MHz。高达 2 MB 的闪存和 640 KB 的 SRAM。电压范围为 2.7 V 到 3.6 V。外设包括数据转换 器、定时器、外部存储总线、以太网、全速和高速 USB、CAN、安全功能、电容式触摸感应和用于 TFT 显示的图形 LCD 控制器,以及一个 2D 图形引擎。RA6T1 系列器件带有用于电机控制的增强型外 设,如高分辨率 PWM 定时器或高级模拟模块。
RA8 系列 – 更高性能、人机界面、物联网和边缘计算:撰写本文时,该系列 MCU 型号正处于计划发布中,尚未发布。
3.2.1. 瑞萨RA系列MCU能做什么¶
瑞萨RA系列通用 MCU 包含丰富的功能以满足各个领域的不同应用需求。 最常见的应用场景包括:低功耗应用场景、电机控制应用、无线物联网应用等等。
我们在瑞萨官网中挑了两个产品应用的成功案例,通过简单讲解这些应用实例,来举例说明瑞萨RA系列MCU的具体应用。
示例1:电机控制和机器人——高功率BLDC电机驱动
应用项目简介:该项目属于电机控制和机器人领域,用于仓库机器人的 BLDC 电机驱动。 RA6T2 MCU 和 RAA227063 三相智能栅极驱动器为处理速度和功率效率提供了完美组合, 有助于解决受到极小外形尺寸限制并具有高功率需求的牵引电机的相关问题。 该解决方案使用两个感应式位置传感器,因此客户可以更换大型且昂贵的光学编码器。
如下图所示为“高功率BLDC电机驱动”应用项目的系统框图。
图中的系统由以下几个部分组成:
①:主控芯片选用的是RA系列的 RA6T2 MCU。“RA6T2”中的字母“T”代表了该型号为电机控制增强型,具有丰富的电机控制功能。
②:MOS桥驱动器芯片采用的是瑞萨 RAA227063 三相智能栅极驱动器。RAA227063 具备电源管理功能,可直接使用电池为驱动器和 MCU 供电,从而减少整体电路。 其可编程性让客户能够优化逆变器的功率级,并通过简单地更改 MOSFET 和使用软件调整转换速率、死区时间和栅极驱动来处理不同的功率水平。
③:三相MOS桥可提供换相的电路机制,以实现驱动三相无刷电机。
④:传感器采用的是 IPS2200 感应式位置传感器。它可以提供绝对位置信息,并利用 RA6T2 MCU 12 位 ADC 中的四位来提供分辨率高达 17 位的增量位置感测。
⑤:电源调节稳压电路,为图中的各个芯片进行供电。
⑥:工业用途的 CAN 总线接口连接着 CAN 收发器,可实现较远距离的可靠通信。
该系统优势在于:
小型:RA6T2 MCU 和 RAA227063 三相驱动器均采用 7mm x7mm 的 48 引脚 QFN 封装
模拟集成:包括电源管理和电源驱动器,并使用电池直接为 MCU 提供支持
可编程性允许为逆变器进行最佳调谐:电机感应模式、死区时间、转换速率和栅极驱动电压
加速器:提供优化后的电流矢量控制、滤波操作和减少主 CPU 内核 (Cortex®-M33) 负载,以支持附加功能
两个 IPS2200 感应式位置传感器可以提供绝对和增量转子位置
该系统旨在最大限度地降低整体 BOM 成本、缩减尺寸并替换在电机中占用大量空间且价格高昂的光学编码器
示例2:智能家居——语音识别和智能控制
应用项目简介:语音识别正成为当今新型数字生活方式的一个重要功能。我们可以利用语音控制房间的照明、空调、窗帘和其他电器。 出于卫生原因,只需与语音识别控制器通话,即可避免接触酒店或办公场所的表面,从而实现非接触控制。 瑞萨电子通过执行实时控制(第三方语音识别引擎)的离线语音识别算法,成功构建成功组合。 高级语音命令识别引擎同时支持两种语言和语音响应。 有 34 种全球语言可供选择,可轻松集成到现有的控制系统中。
如下图所示为“语音识别和智能控制”应用项目的系统框图。
图中最主要的两大部分如下:
①:主控部分。芯片选用的是RA系列的 RA6M5 MCU。它的主要功能为接受并处理用户语音数据,再根据语音识别结果做出相应的用户操作和语音反馈。
②:执行器部分。主控芯片通过RS485将指令发送到执行器,由执行器做出实际的控制,比如通过继电器控制照明灯的开关、通过WiFi控制家电等。
该系统优势在于:
瑞萨电子的语音识别解决方案可以实现与现有酒店空调、照明控制系统、家用电器的轻松集成。
语音命令可通过高级语音命令识别引擎和算法进行自定义。
支持双语言和触发器命令。
低成本。
3.2.2. 瑞萨RA系列MCU命名方法与选型¶
3.2.2.1. 瑞萨MCU的命名方法¶
整体命名:
对初学者来说,要理解 RA 产品家族产品型号中的不同数字和字母并不容易。
我们首先以 RA 系列 MCU 中的其中一个型号 R7FA6M5BH2CBG 为例,来讲解型号命名当中不同字段的含义。
R7FA6M5BH2CBG 型号命名的含义如下:
① R:表示瑞萨(Renesas)的意思。
②③ 7F:表示 MCU,内部包含 Flash 存储器。
④⑤ A6:表示 RA6 产品系列。
⑥⑦ M5:“M”表示主流产品,“5”表示产品组号。
⑧ B:表示功能特性集,这里的“B”表示带 CAN-FD,如果是“A”则表示不带。
⑨ H:表示内部FLASH容量,“H”为 2MB。
⑩ 2:表示工作温度范围,“2”为 -40°C ~ 85°C,“3”为 -40°C ~ 105°C。
⑪⑫⑬ 无 :第 11、12、13 位表示工厂编程号。这三位是可选的,对于该型号没有这三位。
⑭ C:第 14 位表示质量等级为工业级。
⑮⑯ BG:第 15、16 位,“BG”表示封装为 FBGA 176 pins 封装,而“FC”则表示封装为 LQFP 176 pins 封装。
我们配套的野火启明 6M5 开发板所使用的 MCU 型号为 R7FA6M5BH3CFC, 与 R7FA6M5BH2CBG 相比,差别仅为最后四位字符,主要就是工作温度范围和封装不同。
实际上,完整的型号太长了,不利于理解和记忆。所以我们一般把 R7FA6M5BH3CFC 缩写,称为 RA6M5。 RA6M5 中的 “RA6” 就表示瑞萨RA6系列MCU, “M” 表示主流产品, “5” 表示产品组号。 又比如 RA6T2 中的 “T” 是表示电机控制产品, “2” 表示产品组号。
RA6M5 芯片(LQFP 176 引脚封装)外观如下图所示:
芯片顶面是丝印
周围的都是引脚
RA6M5 芯片(LQFP 176 引脚封装)引脚分配图如下图所示:
3.2.2.2. 瑞萨RA系列MCU选型方法¶
如下图所示,选型的时候一般先了解 RA2/RA4/RA6/RA8 等不同系列MCU型号的特点, 然后根据自己的具体需求进行选型即可。
3.3. TrustZone和瑞萨DLM概述¶
安全性至关重要!必须从项目伊始就考虑到安全性,因为无法在后续流程中加入该要素。 至少,无法避免费用高昂的重新设计工作,甚至还可能面临要重建整个应用。 可将安全性视为建筑物的地基:没有华丽的外表,而且其所需的设计和建造时间可能超过建造其他功能所需的时间总和。 而且即便完成搭建,也可能感觉不到它的存在。但是,安全性对于互联环境中的所有应用都至关重要。
什么时候需要确保安全性?产品通过有线或无线接口(如 WiFi、蓝牙、USB 或以太网)进行通信时。 存储十分重要的信息(如密钥、证书、密码、个人数据、测量数据或算法)时。 产品升级(例如,进行固件更新、功能升级或购买付费服务)时。
瑞萨的 RA 产品家族微控制器支持以多种方式来创建安全应用: 通过搭载 Arm® Cortex® -M4、-M23 或 -M33 内核的器件上的安全加密引擎, 通过搭载 Cortex-M4 或 -M23 内核的器件上的安全内存保护单元, 也可以通过搭载 Cortex-M33 内核的 MCU 上瑞萨对 Arm 的 TrustZone ®的自有实现。 本小节将讨论最后一种方式。
注解
值得一提的是:大多数 RA 产品家族 MCU 均已通过 PSA Certified™ 1 级认证, 其中 RA6M4 MCU 系列已通过 PSA Certified™ 2 级认证。 其中包括对采用 Trusted Firmware M (TF-M) 的 RA 产品家族灵活配置软件包进行 PSA 功能 API 认证。 多个 RA 产品家族 MCU 系列已通过 SESIP1 认证,无论选择何种软件平台,都能确保实现基本的安全功能。 此外,安全加密引擎获多项 NIST CAVP 认证,可确保各种加密功能正常发挥作用。 从而增强了用户面向互联环境开发安全产品时的信心。
3.3.1. 什么是TrustZone,它有什么作用¶
TrustZone® 是 Arm® 开发的一项核心技术,作为 Arm v8-M 架构的一部分,通过强制硬件隔离提供系统级安全措 施。TrustZone® 要求在软件中划分安全和非安全 MCU 区域对应的逻辑分区,从而创建受保护的环境。该技术通 常在搭载 Arm® Cortex® -M33 内核的器件上实现,个别情况下也在搭载 Arm Cortex-M23 内核的器件上实现。
内存区域划分为三个不同的分区:
一个 安全分区,用于密钥存储和数据解密等受信任或受保护的 IP;
一个 非安全分区,用于常规应用;
以及一个 非安全可调用分区,用作其他两个分区之间的网关。
通过最后一个非安全可调用分区,位于非安全分区中的代码可以调用安全分区中的服务。 此功能可以通过跳板(veneer)实现,支持隔离安全分区和非安全分区。
如上图所示:TrustZone 支持对安全区域和非安全区域进行隔离。 在安全和非安全状态下都可以访问非安全环境中的函数和数据, 而非安全环境中的例程只能通过调用位于非安全可调用环境 (NSC) 的跳板来访问安全环境中的服务。 通过此方式提供一个进入安全环境的确定入口点。
3.3.2. 安全环境和非安全环境的划分¶
现在我们已经清楚,程序需要划分为安全和非安全环境,我们该如何相应地对软件进行分区? 为此,基于 TrustZone® 的系统始终包含两个不同的项目:一个安全项目,另一个是非安全项目。 二者都可以利用 SRAM 以及代码和数据闪存,但只有安全代码可以直接访问两个(安全和非安全)分区。
可借助 e2 studio 中的项目配置器设置这些项目。创建新项目后,系统将提示您选择项目应具有的类型:
Flat 扁平化(非 TrustZone)项目
TrustZone 安全项目
TrustZone 非安全项目
注解
关于 TrustZone 的具体应用方法请参考本教程的最后章节的 TrustZone 应用示例。 与安全环境和非安全环境的划分相关的内容包括:跨边界的函数调用、从安全代码到非安全代码的回调、保护函数等。
3.3.3. 器件生命周期管理(DLM)¶
器件生命周期(DLM)定义了器件寿命的不同阶段,并控制调试接口、串行编程接口和瑞萨测试模式的功能。出于安全 原因,这样便可将位于安全环境中的代码的编写与在非安全环境中运行的应用程序的编写分开,并且可以由两 个独立的团队来开发产品:由安全开发人员团队创建信任根(RoT)或孤立的子系统,并由非安全环境的设计人 员创建使用该 RoT 或子系统的应用程序。灵活配置软件包(FSP)和 e2 studio 支持这种设计划分。
安全环境的代码准备就绪后,可将其预先烧录到器件中,并将生命周期设置为 NSECSD,从而锁定安全环境, 或者作为捆绑包由非安全项目引用。应用程序设计人员将以此作为起点,在非安全环境中编写应用程序,对其 进行调试,然后将其烧录到器件中。如果需要,他们还可以禁用所使用的闪存模块的编程和擦除功能。最后一 步,将生命周期的状态设置为已部署、调试锁定或引导锁定。这样一来,整个器件可获得保护,并且不能对编 程接口和器件进行调试、读取或编程。 如下图显示了器件生命周期可能的状态和转换。
器件生命周期管理的不同状态:
有三种不同的调试访问级别,它们视生命周期的状态而变化:
DBG2:允许调试器连接,访问存储器和外设没有任何限制。
DBG1:允许调试器连接,但访问只限于非安全内存区域和外设。
DBG0:不允许进行调试连接。
下面的表格提供了对每个生命周期的解释:
可以使用瑞萨闪存编程器(Renesas Flash Programmer (RFP)) 或瑞萨器件分区管理器(Device Partition Manager)执行从一种状态到另一种状态的转换, 但后者可选择的状态有限。可以通过使用身份验证密钥来保护状态之间的转换。 有关不同 DLM 状态和器件特定转换的更多信息,请参见相应微控制器的用户手册。
3.4. 瑞萨RA芯片的Boot模式¶
3.4.1. 瑞萨RA芯片的 Boot 模式简介¶
RA 芯片在上电或通过芯片复位引脚进行复位时, 会根据 MD 引脚的电平来进入不同的芯片操作模式:“Single-chip Mode”或者“Boot Mode”。
“Single-chip Mode” 即正常工作模式,用户的代码就是运行在该模式的;
“Boot Mode” 则是工厂代码模式,进入该模式,实际上运行的是瑞萨芯片出厂时内置的一段代码, 该段代码不可被修改。
RA6M5 和 RA4M2 的 Boot 模式同时支持 SCI boot 和 USB boot,如下图所示:
由上图可以看出,Boot 模式可由 MD 引脚和芯片复位引脚控制进入。
RA2L1 由于没有 USB 功能,因此其 Boot 模式仅支持 SCI boot,如下图所示:
3.4.2. 野火启明开发板设置 Boot 模式¶
野火启明6M5、启明4M2开发板手动设置进入 Boot 模式的具体操作方法如下:
首先接线。
对于 USB Boot,先通过 Type C USB 线连接到开发板上的 USB Device 接口;
对于 SCI Boot,通过 USB 转串口连接到 JTAG 调试接口上的这两个引脚:P109(TDO / TXD9)和 P110(TDI / RXD9)。
接着使用跳线帽将 MD 引脚由接到高电平(3V3)变为接到低电平(GND), 然后手动按一下开发板上的复位按键即可进入 Boot 模式。
- 需要注意,野火启明2L1开发板不支持进入 Boot 模式。
由于启明2L1开发板RA2L1芯片的两个引脚:P109(TDO / TXD9)和 P110(TDI / RXD9) 被复用为CAN功能接到了CAN收发器芯片上,因此对于野火启明2L1开发板来说,不支持进入 Boot 模式。
实际上,当使用 JLink 时, e2 studio 或者 Renesas Flash Programmer (RFP) 软件会自动在需要时通过 JLink 切换到 Boot 模式。 这种方式不需要我们刻意手动切换 MD 引脚电平来进入 Boot 模式,只需要将 MD 引脚短接到JTAG接口 TCK 引脚上:
即去掉启明6M5/启明4M2开发板 J17 排针上的跳线帽,然后把跳线帽插到JTAG接口旁边的 J23 上面。
注解
需要注意,这里的 J-Link 需要 J-Link V10 及后续的硬件版本,以前的版本以及 JLink EDU mini 不支持该功能。
3.5. 使用 Renesas Flash Programmer 软件改变芯片DLM状态¶
首先通过前面所述方式手动设置使芯片进入 Boot 模式。
然后打开 Renesas Flash Programmer (RFP) 软件新建 Project 并设置连接方式。
最后切换 DLM 状态或者更改其他配置参数。
设置通信连接方式:
转换芯片 DLM 状态:
3.6. 使用 Renesas Flash Programmer 软件设置安全边界¶
注解
本小节内容与本教程的第34章以太网通信章节内容相关联。
芯片出厂时其DLM状态默认处于 “CM”,并且未设置 IDAU 安全边界, 在该状态下用户可以正常使用芯片绝大部分外设,除了少数部分外设,比如以太网(ETHERC 和 EDMAC)。 因此,用户在使用启明6M5开发板的以太网之前,需要将芯片的DLM状态更改为 “SSD”, 并且可根据本小节所述方法来设置 IDAU 安全边界。这一点在以太网章节也会进行提示。
与 Trustzone 安全功能相关的 IDAU 边界划分可以通过 Renesas Flash Programmer 软件来进行设置。 这里以本教程第34章的配套例程“34_Ethernet_FreeRTOS”工程为例,设置边界具体步骤如下:
步骤1:首先编译工程
首先编译该工程,编译成功后会在编译输出文件夹里生成一个文件后缀名为 .rpd 的文件。 该文件其实是瑞萨分区数据文件(Renesas Partition Data File)。如下图所示。
步骤2:切换芯片DLM状态
根据上述 3.5 小节内容,使用 Renesas Flash Programmer 软件改变芯片DLM状态。
或者也可以在 Flash Options 标签页下,按照如下图所示设置 DLM 状态为“SSD”:
步骤3:选择工程.rpd文件,设置边界
切换到 Flash Options 标签页下,如下图所示:
按照如下图所示来设置边界(Boundary):
上图中需要在“Renesas Partition Data File”框内选择工程编译后生成的.rpd文件。 如下图所示。
然后如下图所示取消勾选 Operation Settings 标签页下的“Erase”、“Program”和“Verify”, 需要勾选上“Program Flash Options”。
切换回 Operation 标签页下,点击 Start 大按钮,执行已勾选的操作:
接下来,就可以使用“Read Flash Options”读出芯片的 Flash Options。按照如下图所示进行操作。
“Read Flash Options”操作的结果会弹出一个窗口。 该窗口显示了芯片当前的DLM状态,以及 Code/Data Flash 和 SRAM 的安全/非安全边界划分。如下图所示。
最后,即可下载该以太网例程的程序到开发板,并正常使用以太网功能。
3.7. 使用 Renesas Flash Programmer 软件烧录芯片程序¶
首先通过前面所述方式手动设置使芯片进入 Boot 模式。
然后打开 Renesas Flash Programmer (RFP) 软件新建 Project 并设置连接方式。
最后选择要烧录的程序文件并对芯片内部 Flash 进行烧录。
切换到 Operation Settings 下,勾选 Operation Settings 标签页下的“Erase”、“Program”和“Verify”, 然后切换回 Operation 标签页选择二进制文件进行烧录。
烧录芯片程序: