Arm难以撼动,暴露下的Arduino与RISC-V联合体就是个笑话

2019年07月22日 作者:Teardown

嵌入式系统开发人员一直在想方设法进一步缩短开发时间,特别是针对概念验证和快速原型开发。虽然开发套件已成为捷径之选,但设计人员需要找到一个平衡点,既兼顾外形尺寸和广受支持的生态系统,又要考虑性能要求。

Arduino Uno 开发板就是这种需要找到平衡点的很好例子。由于成本低廉,并在理论上具有数百个可提供 Arduino I/O 插件扩展功能的 Arduino 盾板,其外形尺寸在这一领域极其流行。但是,针对特定嵌入式应用,某些开发人员可能需要比 8 位微控制器所能提供的更高性能。

对于他们来说,Crowd Supply 的 HiFive1 开发套件可能才是解决方案。本文将介绍低成本的 HiFive1 开发套件,讨论如何通过其功能实现高性能嵌入式系统的快速原型开发。此外,本文将介绍帮助设计人员入门的可用开发工具。

什么是 HiFive1?

HiFive1 开发套件基于一款集成 32 位 RISC-V(读音“risk-five”)处理器内核的微控制器(图 1)。该开发板可接受 Arduino 式盾板,从而大幅提升了其对嵌入式设计快速原型开发的实用性。

HiFive1 的核心是 RISC-V 处理器内核。这就需要 Arduino 开发板背后的开源概念,并将其一直扩展到处理器本身。RISC-V 是开放式指令集架构 (ISA),基于两个基础:自 20 世纪 80 年代以来一直采用的精简指令集计算 (RISC) 概念,以及开源原则。因为 RISC-V ISA 是开源的,所以可自由地用于任何目的。任何人都可以设计、制造和销售基于 RISC-V 的芯片和软件,而无需支付版税。

HiFive1 板上基于 RISC-V 的微控制器可通过编程支持芯片内执行 (XIP) 模式,以便在指令高速缓存重新填充期间降低 SPI 指令执行时间。微控制器的四路 SPI (QSPI) 端口支持 32 字节猝发读取,使用存储器的 XIP 模式,加快来自 QSPI 闪存的指令高速缓存重新填充,进而提升性能。

微控制器可在高于 320 MHz 的时钟速率下运行,但在 HiFive1 板上,应限制时钟速率不高于 133 MHz,以便保持微控制器的 SPI 串行时钟在开发板的 128 Mbit QSPI 闪存限制范围内工作。

Arduino 式针座(包含注意事项)

HiFive1 开发套件复制了 Arduino 独特的 I/O 针座布局。它可以接受数以百计可用 Arduino 盾板中的多数类型,但有几点需要注意。

首先,微控制器没有模拟输入引脚。HiFive1 开发套件的 Arduino 式针座只能进行数字 I/O、中断和脉冲宽度调制 (PWM) 引脚分配。Arduino Uno 开发板上 A0 至 A5 模拟引脚所用的物理针座位置在 HiFive1 开发板上标注为 D14 至 D19 数字 I/O 引脚。如果有必要添加模拟功能,可使用众多可用模数转换器 (ADC)、数模转换器 (DAC) 或组合 ADC/DAC Arduino 盾板中的一种。

另请注意:

设计人员可将多达 9 个 PWM 发生器分配到 HiFive1 开发套件上的 Arduino 式针座引脚。

HiFive1 开发套件的所有 19 个 Arduino 式针座 I/O 引脚均可用作中断输入。

板载电压转换器可根据跳线设置,灵活地将所有 HiFive1 开发套件的数字 I/O 引脚设置为 3.3 V 或 5 V 逻辑电平。单跳线设置(图 1 开发板上带 IOREF 标志)可定义 HiFive1 开发套件的 Arduino 式针座上所有 I/O 引脚的逻辑电平。

这就引出了第二个注意事项:迄今为止,只有以下两款 Adafruit Arduino 盾板通过了 HiFive1 测试,因为只有针对这两款盾板的 Adafruit 支持库已移植到 HiFive1 库:

  • Adafruit 的电阻式触摸屏和 LED 显示屏
  • Adafruit 的 BLE SPI Friend

即便如此,尽管支持库可能需要微调,但任何与 SPI、UART 或数字 I/O 通信的盾板都应该易于搭配 HiFive1 使用。HiFive1 外设盾板支持库还处于初期阶段:预计支持的盾板数量会增加。

好硬件需要好软件支持

GitHub 上提供了针对 HiFive1 开发套件的软件开发工具。这些工具包括用于 RISC-V 处理器架构的 C 编译器和汇编器、用于 RISC-V 处理器的 GDB 主机驻留调试器和 OpenOCD(片上调试器)的 RISC-V 版本。

一旦程序被编写、编译和汇编,开发人员就可以通过 USB 调试接口将其上传到 HiFive1 开发套件。HiFive1 将该程序存储在其板载 SPI 闪存芯片中。板载闪存芯片的容量为 16 Mb,比 8 位 Arduino Uno 板上的代码存储容量大得多。地址空间扩展只是诸如 RISC-V 的 32 位处理器架构的众多优点之一。该微控制器的片上 16 Kb SRAM 也相对较大。

1 2

相关文章

tracer