首页 > 评测 > 简约而不简单的好奇心——Microchip Curiosity开发板评测

简约而不简单的好奇心——Microchip Curiosity开发板评测

Microchip   Curiosity   PIC   DIP   
  • 作者:邵子杨
  • 来源:21ic
  • [导读]
  • 现在不少人都认为,8位和16位MCU即将消亡,32位MCU性价比和功耗方面更具有优势。然而Mcicrochip并没有放弃和削减8位PIC的市场,相反地,在去年年中,Microchip推出了一款全新的Curiosity开发板。

Curiosity开发板上还带有RN4020 蓝牙模块接口。以前Microchip公司是没有蓝牙产品的,但是自从去年收购了台湾的ISSC(创杰科技)公司后,Microchip在蓝牙方面也有了很强的实力。RN4020 蓝牙模块就是Microchip公司自己生产的蓝牙模块,它支持蓝牙BLE 4.1,最大输出功率是7dBm,通信距离最远可以超过100米,比一般的蓝牙BLE模块性能更好。模块内部的固件可以通过串口或者无线方式(OTA)进行升级。RN4020模块体积非常小,连天线一起只有11.5 x 19.5 x 2.5mm,比一般人的拇指还小很多。RN4020模块通过串口命令进行控制,类似于AT命令那样,容易使用。可惜因为手边没有这个模块,所以这次就不能进行相关的测试,等有机会拿到RN4020模块时在给大家补上了。更多关于RN4020模块的说明请大家参考RN4020模块的官方网站:

http://www.microchip.com/wwwproducts/Devices.aspx?product=RN4020

4.jpg

板载例程的测试

虽然Curiosity开发板支持多种单片机(目前网站上列出的型号都是普通电压的,共有46种,如果加上LF低压型的就更多了),但是出厂时只带有一个DIP 20pin的PIC16F1619单片机。出厂时,这个芯片里就自带了演示程序,用于快速评估开发板的各种功能。这个演示程序的功能简洁明了,演示了普通按键、mTouch触摸按键、ADC、PWM的用法。当按下普通按键S1时,发光二极管D4会随着S1按下而点亮,释放S1时D4就会熄灭;而发光二极管D6会跟随触摸按键mTouch Button的状态而变化,当触摸按键按下时发光二极管D6会亮;而旋转电位器POT1时,发光二极管D7的亮度会随着电位器的位置而变化,这个功能使用到了ADC和PWM两个功能模块,先通过RC0(AN4)获取电位器上的电压,然后通过控制RC5输出PWM信号的占空比来改变LED的亮度。

默认这个例程没有提供源代码,Curiosity开发板网站上提供的PIC16F1619单片机例程和开发板默认的程序不同,功能更多,也更复杂一些。例程文件里还有一个readme.pdf文件,里面以课程的方式介绍了各种功能模块的使用,通过这些课程可以快速掌握不同模块的用法,特别适合初学者。下面我们就详细介绍一下这个例程。

在开始测试前,首先需要先检查一下MPLAB X IDE的版本,如果MPLAB X IDE的版本低于3.0.5,就需要升级才行,因为只有3.0.5以上的版本才能识别出板载的Starter Kits(PK0B)仿真器。注意旧的MPLAB IDE是不支持Curiosity开发板的。

然后从Curiosity开发板网站下载PIC16F1619单片机的例程和文档。开发板的网站是:

http://www.microchip.com/pagehandler/zh-cn/family/8bit/devboards/curiosity.html

例程的直接下载地址是:

http://ww1.microchip.com/downloads/en/DeviceDoc/PIC16F1619_Curiosity.zip

下载例程后,将它展开到硬盘(尽量不要使用中文路径),运行MPLAB X IDE并打开例程,可以看到主程序很短,演示了GPIO、闪灯、跑马灯、ADC、PWM、定时器、中断、休眠、Flash读写等10个功能,从函数名就可以直观的看出每个函数演示的功能。不同功能是通过函数Switch()进行触发,然后由语句switch(labNumber)选择进入某个演示功能。

5.jpg

而Switch()函数主要功能就是判断用户按键S1的状态,当按键按下时开始判断,当按键释放时才设置标志位,通知主程序切换到下一个演示功能。Switch()函数的代码如下:

6.jpg

在项目属性中,可以检查项目的参数设置。可以看到Starter Kit(PK0B)仿真器的设置和其他仿真器差不多,但是功能比较少,可以看作是PICKit3的简化版。

7.jpg

编译例程并下载到芯片,就能够运行并测试每个函数。按下用户按键S1(这个例程暂时还不支持mTouch),可以切换测试内容,也可以在MPLAB X IDE中设置断点,观察变量,了解每个函数的用法。例程使用了MCC(MPLAB Code Configurator)产生代码,产生的代码可读性很好,通过名称可以直观看出它的功能,可以简化用户参数配置过程,加快开发速度。使用MCC可以快速分配引脚和设置外设的功能,只要先选择需要的功能模块,然后设置参数,就能够自动产生代码。

8.jpg
9.jpg
9.jpg

MCC的使用很方便,从中隐约可以看到有Freescale的著名开发软件Processor Expert的影子,一些操作习惯和代码风格都有些类似。关于MCC的使用,我们会在下一篇中在仔细介绍。

从前面的介绍中,我们可以看出Curiosity开发板是一个很适合初学者的开发板,支持最新的开发软件、板载调试器、带有多种外设、方便连接扩展板、带有蓝牙模块接口,可以充分发挥新型号的8位单片机特点,快速验证软件设计,让单片机开发变得轻松和简单。

不过遗憾的是,Curiosity开发板没有带有功耗测量功能,这样就不能直观的调试和观察程序的功耗状态,不能为低功耗的程序进行充分优化,而低功耗也是新型号PIC单片机的一大特点。其他主流MCU厂家都推出了带功耗测量的开发板,如ATMEL的SAML21 Xplained开发板、TI的MSP432开发板、Silabs的EFM32/EFM8开发板等都带有功耗测量功能。功耗测量能够在开发软件中直接使用,可以在程序运行、仿真的同时实时测量运行功耗,甚至支持源码级的功耗调试,帮助用户优化程序。希望在后续的Microchip开发板中,可以增加功耗测量功能,帮助使用者优化程序的功耗设计。

  • 本文系21ic原创,未经许可禁止转载!

网友评论