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,值得入手!
其它开发板评测推荐:
- WiFi+蓝牙+传感器组合——满足多数人需求的物联网开发套件NuMaker Uni评测
- 学习、开发、DIY一应俱全——益智教育百搭电子积木mCookie套件评测
- 超快速上手8种传感器——ROHM Sensor Shield传感器评估套件评测
原创申明:本文为爱板网原创,谢绝转载!
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,另外在硬件接口方面也融入了自己的设计理念。