Arduino Uno R4 WiFi 在高等教育中的应用

Arduino 最近推出了经典 UNO 微控制器的第 4 版,包括 Arduino UNO R4 Minima 和 WiFi,如图 1 所示。两者都配备了 32 位 Renesas RA4M1 Arm Cortex M4 处理器,与之前的 8 位 ATMega328p 相比,显著扩展了功能。额外的处理能力、外设和硬件抽象层(HAL)扩展了可以使用 UNO 进行的实验的范围和深度。

一如既往,UNO R4 与上一代产品向后兼容。因此,它有潜力保持 UNO 作为高中项目、两年制电子技术员/技术专家、机械工程师和电气工程师在大约前两年学习中的事实标准。我们可以利用 15 年的教育材料和开源社区留下的巨大遗产。

本工程简报探讨了配备 RA4M1 的 UNO 的可能性。它为高级技术专家、对嵌入式技术感兴趣的计算机科学学生以及高级微控制器课程中的电气工程学生提供了一条前进的道路。

1 :Arduino UNO R4 Minima(左)和 WiFi(右)的并排图像。

技术提示 :DigiKey 应用工程(AE)部门偶尔会收到询问,要求帮助为实验室环境选择“最佳”微控制器或 FPGA。对于首次授课的教师或研究生来说,这不是一个容易的问题,因为有许多因素需要考虑,包括学生的先前经验、设备成本、教育材料的可用性以及更大支持社区的响应能力。请在做出决定时考虑本文的内容。

Arduino UNO R4 会取代 Arduino UNO R3 吗?

新的 R4 在吸收和输出电流方面略逊一筹。原始的 ATmega328p 能够处理每个引脚最多 40 mA 的电流,总电流约为 200 mA。R7FA4M1AB3CFM#AA0 每个引脚限制为 8 mA,总电流约为 60 mA。虽然这不是一个重大变化,但您需要评估您的设计以防止微控制器损坏。

仅凭这一点,我怀疑具有强大 I/O 的 UNO R3 将在未来很长一段时间内继续存在。我们可以有把握地说,在过去二十年中,已经生产了数千万甚至数亿个 ATmega328p。更进一步,ATmega328p 很可能已经进入了“通用零件”的类别。基于这些观察,我们可以合理地假设,这款可靠的 8 位设备将再陪伴我们十年或二十年。

与此相关的是,“Arduino UNO R3”并不是单一来源的产品。例如,原始功能和外形尺寸在 DFRobot FFR0216 等产品中得到了保留。这些产品,以及众多“迷你”外形尺寸设备,将确保 R3 类设备的持续可用性。

Arduino UNO R4 Minima WiFi 的硬件向后兼容性

最初的 UNO 设计时考虑了扩展性,以适应各种扩展板。这种外形至今仍然流行,其他微控制器甚至 FPGA 制造商也推出了“Arduino 扩展板兼容”设备。

UNO R4 也不例外。它保留了原始的外形,允许您重复使用扩展板。R4 也是一个 5 VDC 设备,允许使用熟悉的扩展板和硬件,前提是我们考虑到电流。

Arduino UNO R4 Minima WiFi 的软件向后兼容性

产品之间的软件兼容性无疑是 Arduino 成功的原因之一。这个 Arduino 硬件抽象层 (HAL) 确保了像 digitalWrite(D13, HIGH) 这样的语句可以在 Arduino 家族的每个成员上运行。Arduino UNO R4 Minima 和 WiFi 延续了这一传统。这一事实确保了基本功能的保持。

可能会有例外,特别是当我们考虑为特定微控制器设计的代码时。这种不可移植代码的一个例子是用于提高 ATmega328p 上脉宽调制器 (PWM) 性能的快速 PWM 技术。正如链接文章中解释的那样,这种硬件特定技术必须进行更改以适应新的微控制器。然而,快速 PWM 并不是 Arduino HAL 的一部分。相比之下,analogWrite( ) 函数将在所有 Arduino 成员上运行,因为它是 HAL 的一部分。

值得深入研究的高级硬件特性

配备 32 位瑞萨 RA4M1 的 Arduino R5 WiFi 为高级研究提供了许多机会。这是您可能在电气工程和计算机科学三、四年级课程中希望研究的部分项目列表。

RA4M1 硬件

RA4M1 是一款现代的 32 位通用微控制器。因此,它配备了一套丰富的外设,以匹配 48 MHz 的 Arm Cortex M4 内核。这在数据手册的框图中有所体现,如图 2 所示。更多信息请参见数据手册第 1 页。您可以参考瑞萨 RA4M1 组用户手册:硬件以获取完整描述。

可以说,安装在Arduino UNO R4 Minima和WiFi上的RA4M1是一款功能强大的现代微控制器。它提供了充足的机会来探索先进的微控制器概念。例如,考虑您的学生如何探索嵌套向量中断控制器(NVIC)或直接内存访问控制器(DMAC)以满足实时约束。

2 RA4M 1微控制器的框图,如RA4M1组数据手册所示。

瑞萨硬件抽象层

32位微控制器复杂性的增加,加上缩短上市时间的压力,改变了程序员对微控制器的思考方式。

过去,嵌入式程序员非常擅长解读数据手册。这使他们能够通过设置相关特殊功能寄存器(SFR)中的位来配置硬件。这是一个繁琐的过程。虽然它可以提供良好的性能,但在时间和缺乏可移植性方面成本很高。如今,程序员越来越多地使用硬件描述语言(HAL)来配置SFR。

Arduino语言是一个高级易用的HAL示例。然而,对于高等教育目的来说,它可能过于通用。作为替代方案,瑞萨提供了灵活软件包(FSP)。这个HAL更接近硬件,提供了“满足嵌入式系统中常见用例的高效驱动程序。”FSP在一份5519页的文档中进行了描述。详细描述超出了本文的范围。然而,图3通过探索一个电机控制应用提供了一个很好的预览。

Arduino HAL FSP HAL 之间的关系

Arduino HAL似乎是建立在FSP HAL之上的——一个抽象层建立在另一个抽象层之上。因此,FSP HAL可以直接从Arduino IDE访问。这使得诸如清单1中的代码可以包含在您的Arduino草图中。

结合 Arduino HAL FSP HAL 的教学优势

这种在FSP中进出的能力促进了一个灵活的学习环境。它允许您有选择地关注重要的硬件方面,同时使用熟悉的Arduino支持结构。当我们考虑到有限的实验室时间时,这可能是有利的。一些程序员会进一步指出,这种灵活性是快速开发功能原型甚至推向市场的最终产品的关键。

#define ROW_0 BSP_IO_PORT_02_PIN_05
#define ROW_1 BSP_IO_PORT_00_PIN_12
void setup() {
  ;
}

void loop() {
  R_IOPORT_PinCfg(NULL, ROW_0, IOPORT_CFG_PORT_DIRECTION_OUTPUT);
  R_IOPORT_PinCfg(NULL, ROW_1, IOPORT_CFG_PORT_DIRECTION_OUTPUT);
  R_IOPORT_PinWrite(&g_ioport_ctrl, ROW_0, BSP_IO_LEVEL_HIGH);
  R_IOPORT_PinWrite(&g_ioport_ctrl, ROW_1, BSP_IO_LEVEL_LOW);
}

列表 1 :示例Arduino草图,展示了Renesas FSP HAL元素。

3 Renesas FSP用户手册V5.4.0中的感应电机应用框图。

值得深入研究的软件和系统层面

RA4M1的计算能力开辟了几个新的探索领域。也许高等教育中微控制器面临的最大挑战是满足实时约束。这是一项复杂的任务,涉及硬件和软件层面。

硬件层面的实时处理

前面提到的NVIC和DMAC是满足快速微秒级事件的关键元素。这些可以被视为反射性的——类似于自主神经系统。ARM NVIC提供了分层中断响应,以优先处理最重要的事件。DMAC可用于将选定的处理器密集型任务卸载到智能外设。

软件层面的实时处理

RA4M1及其相关的FSP是专为实时操作系统开发的,包括FreeRTOS和Azure RTOS(ThreadX)。Renesas FSP文献中包含了支持这两种操作系统的示例。当您的学生从Arduino HAL过渡到FSP HAL,再到高级操作系统时,这可能是有益的。

边缘(物联网)计算

Arduino UNO R4 WiFi配备了WiFi/蓝牙收发器。这一功能为您的学生提供了另一个教育机会,他们可以探索物联网(IoT)和边缘计算。您的实验得到了在ARM Cortex M4上运行的实时操作系统的良好支持,并能够访问强大的外设。

结论

R4 Minima和WiFi是Arduino经典UNO外形设备系列的最新版本。它保留了早期UNO设备的许多硬件和软件特性。同时,Renesas RA4M1为高级电气工程学生提供了新的教育机会。他们可以自由探索使用FSP的高级外设、NVIC和DMAC等中间层,以及实时操作系统,最终实现更高级别的物联网应用。

有用的链接

请点击以下链接获取相关和有用的信息:

R4 Minima和WiFi如何通过Renesas RA4M1帮助高级电气工程学生探索FSP、NVIC、DMAC等中间层以及实时操作系统,应该再写的详细一点

Arduino R4在硬件功能方面较前代产品R3有了较大提升,板载资源和外设都更加丰富,特别是加入了WiFi模块,可以快速实现物联网相关设计的快速部署,这为Arduino在高等教育中的应用提供了更多可能,以及丰富的教学内容扩展,也为未来边缘AI应用和智能物联网产品的开发方向提供了参考。

Arduino UNO R4 的升级亮点很感兴趣!最近刚入手 R4 WiFi 版做物联网项目,实测 RA4M1 的 Cortex-M4 内核跑 FreeRTOS 比 R3 的 ATmega328p 流畅太多,多任务切换毫无压力。不过发现个小问题:用 analogWrite () 做 PWM 输出时,R4 的精度比 R3 略高,但引脚驱动电流变小了,接舵机得额外加驱动模块。