×
嵌入式 > 技术百科 > 详情

以Arduino之名—NuMaker UNO开发板评测

发布时间:2020-06-18 发布时间:
|

Arduino为什么会这么火?套用一句话来说,成功的产品都是相似的,失败的产品则各有各的失败。

Arduino无疑是成功的,这里咱不讨论成功的理由,单看看Arduino的四面开花的现状。一方面是Arduino自身的产品,除了经典的Arduino UNO,还有LEONARDO、ZERO、ROBOT…,下面是Arduino官方提供的全家福.

不看不知道,看了吓一跳啊!

另一方面,各厂商推出的各种嵌入式开发板,无不以兼容Arduino接口为荣,虽然各厂商力推自己的接口,但仍然为Arduino保留了一份兼容接口。此次新唐科技推出的NuMaker UNO则更直接,在软件与硬件两方面直接以Arduino为原型,用自家的NUC131SD2AE打造了一款全新的开发板,硬件以Arduino UNO R3为参考,软件也是直接使用Arduino IDE来进行开发。

下面实际领略下这款以Arduino之名发布的评估板。

使用可回收塑料包装,看到产品型号为NK-UNO-131,NuMicro家族新产品,取名很明了,NK就是NuMaker,UNO应该就是Arduino UNO吧,131表明MCU用的是NU131的MCU。

包装背面列出了快速上手指南及开发板的一些主要特性,如硬件特性及软件环境等,为用户指明从哪里开始。

PCB设计风格及外观与ST的NUCLEO64类似,总体分两大块,左边部分是MCU及引出的接口,右边是新唐的Nu-Link-Me,兼有供电/下载/调试的功能。

背面除了一些丝印标记,没有元器件,NuMaker UNO本身元器件并不多。

NuMaker UNO内部与Arduino却是大大的不同。因为NuMaker UNO使用的是新唐自己的MCU,另外在硬件接口方面也融入了自己的设计理念。

NuMaker UNO上使用的MCU型号是NUC131SD2AE,该MCU基于32位ARM® Cortex™-M0内核,32位MCU已成现代MCU的主流,传统的8位和16位虽还在使用,但已有慢慢淡出江湖的趋势。

NUC131SD2AE是新唐NUC131家族中的高端产品,最高工作主频50MHz,内置68KB Flash存储器,8KB的SRAM,可工作于2.5V~5.5V电压下。NUC131SD2AE内部包含丰富的片上设备,主要包括:高达8路ADC通道,12位分辨率,采样率最高达1MSPS;24路PWM输出或4路互补PWM输出功能,支持捕获中断功能,可以用来控制电机等;1组CAN接口,1组SPI接口,2组I2C接口及6路UART接口。NUC131SD2AE的封装形式为LQFP 64pin,大小约为7x7mm。NUC131SD2AE主要面向工控、通信子系统及电机控制等领域。NUC131SD2AE内部逻辑框图功能如下

Arduino UNI R3上使用的ATmega328P规格为:5V,8-bit, 16Mhz,FLASH及SRAM的大小分别为32KB及1KB,其它资源如PWM/ADC等也相对较少,比较而言,NUC131SD2AE在硬件资源上要胜出太多。

除了MCU的差异,NuMaker UNO在硬件设计上也有自己的理念。下面是NuMaker UNO开发板正面的元器件位置分布,使得NuMaker UNO在兼容Arduino接口的同时又具备了自己的设计特色。

特色之一是供电设计,NuMaker UNO提供了三种供电方式。第一种方式通过Nu-Link-Me来供电,通过LDO输出3.3V电压,通过JPR1可以调整VDD的值是5V还是3.3V,默认值为5V。这种方式兼顾了Nu-Link-Me与开发板的供电,当为首选。第二种方式是通过开发板上的JP1来实现,通过外部的2.5V~5.5V直接给VDD提供输入源。最后一种方式是通过板载的DC-IN接口,使用7V-12V的外部电源,经转换后输出5V电压,这种方式供电的话需要短接J2,参见下面的电路图

另一个特色是开发板上集成的Nu-Link-Me下载/调试器,同时具备供电/下载/调试的功能,与ST的ST-LINK一样,各领风骚。一方面,Nu-Link-Me可以通过ICE_VCC给开发板供电,免去了需额外给开发板供电的麻烦。如果要启用该功能,需要将SW2的ICE_VCC拔码开关置于ON的位置,默认处于ON状态。另外Nu-Link-Me也提供了VCOM即虚拟串口的功能,虚拟串口将USB的RX/TX与MCU的TX/RX连接,MCU可以通过USB与外部设备如PC进行通信,极大方便了下载及调试。

要启用VCOM功能,也要通过SW2上的拔码开关来实现,将SW2上的VCOM_En,VCOM_TX及VCOM_RX均置于ON的位置,默认均已置于ON的位置。

另外开发板也将MCU的所有接口均引出到PCB板上,预留了焊盘,只是没有焊接排针,如果用户需要,可自行焊接,使用标准2.54mm间距接插件即可。

NuMaker UNO不仅仅在硬件上实现了与Arduino的兼容,在软件上亦与Arduino实现了一致,即提供了基于Arduino IDE的开发方式。

接下来体验原汁原味的Arduino开发模式,从arduino.cc下载最新的Arduino IDE, 本文使用的是V1.8.1版本。打开Arduino IDE之前,先得安装Nu-Link-Me的驱动,安装过程赘述,安装好后的设备管理器应该这个样子

启动Arduino IDE,为IDE准备好硬件平台方面的支持,启动Arduino IDE,选择菜单File/Preferences,在弹出的对话框窗口中红框标注片输入https://raw.githubusercontent.com/OpenNuvoton/NuMaker-UNO/master/package_nuvoton_index.json,如下图

该设置为Arduino IDE添加NuMaker UNO硬件支持,然后在Tools菜单下添加开发板支持,在BoardsManager对话框中最下部安装NuMaker UNO的支持包,如下图所示

配置过程还没有结束,接下来还要选择NuMaker UNO作为当前硬件平台,配置通信用的串口名称,如下图

配置部分就算完成了,现在可以新建一个简单的LED测试程序,代码如下

const int ledPin = 13;

void setup() {

// put your setup code here, to run once:

pinMode(ledPin, OUTPUT);

}

void loop() {

// put your main code here, to run repeatedly:

digitalWrite(ledPin, HIGH);

delay(500);

digitalWrite(ledPin, LOW);

delay(500);

}

等待编译及下载完成,如下图

应该能看到开发板上的LED灯开始以1HZ的频率开始闪烁!

由于新唐提供了完善了Arduino软件包支持,在Arduino IDE上对NuMaker UNO进行编程非常容易,不过只拿Cortex-M0来点个灯太浪费了,接下来玩一个高档一点的东西,使用定时器结合Arduino的Serial Plotter画点有趣的东西来玩。上关键代码

int clock = 12000000;

Timer1.open(PERIODIC, clock);

Timer1.setPrescaleFactor(0);

Timer1.setCompare(clock/1000); /* 1 microseconds per tick (1 s) */

Timer1.attachInterrupt(timer_ISR);

Timer1.start();

使用Timer1来实现定时功能,将时钟频率初始化为12Mhz,不分频,定时周期为1毫秒,然后添加一个中断函数timer_ISR,最后就是启动定时器来实现定时功能。中断函数的代码如下

void timer_ISR(uint8_t num)

{

count1 ++;

count2 ++;

if(count1 == 499) {

count1 = 0;

digitalWrite(ledPin, level);

level = !level;

}

if(count2 == 49) {

count2 = 0;

flag = true;

}

}

在中断函数里,对两个变量进行自增操作,count1用来点灯(还是点灯!),每500毫秒翻转一次;另一个变量count2用来输出绘制的数据,50毫秒绘制一次。

得到的结果如下

要想更好的了解这些隐藏在Arduino API背后的细节,还是有必要去挖一挖底层的代码,官方的安装脚本将这些底层支持库放在用户的appdata\local目录下,这个目录默认是隐藏的,需要手工输入其位置才能找到,里面包含了CMSIS及其它硬件相关的C库文件,如下

有兴趣的话不妨去挖一挖这些代码,也许会有意想不到的收获呢。

当然,新唐也为NuMaker UNO提供了基于KEIL及IAR相关的开发支持包及例程,从附录给出的NUC131 SDK位置下载为KEIL及IAR准备的例程,官方用户手册也给出了使用方法,这里就不一一介绍了。

总结来说,NuMaker UNO开发板只是以Arduino之名,却行自己设计理念之实,也算是为Arduino家族添加了一款可玩度极高的开发板。不过从前面二者的硬件比较可以看出,基于ARM Cortex-M0的NuMaker UNO却将之带到了一个全新的高度,最高50Mhz的MCU主频、更大的存储空间及更多更全面的片上外设,同时集成了Nu-Link-Me调试器,再加上与Arduino在软件及硬件方面的全面兼容,广大热爱Arduino的创客及爱好者又多了一个新的选择!

另外,NuMaker UNO开发板的官方报价为72RMB,值得入手!


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
Keil5(MDK5)在调试(debug)过程中遇到的问题