让单片机开发像风一样自由——FRDM-K64F评测
扫描二维码
随时随地手机看文章
乍一看这标题:让单片机开发像风一样自由,单片机开发不自由吗?政斧还管这事?我怎么不知道?别误会,我说的自由不是那个自由,飞思卡尔(现NXP)freedom平台,正如它的名字一样,致力于让飞思卡尔系列单片机开发越来越自由,越来越简单。接下来,让我们一起来领略FRDM-K64F的简单、自由:
众所周知,Freedom开发板是飞思卡尔(NXP)布局ARM Cortex-M系列微控制器的一个重要的开发平台,这个平台的板卡都具有相似的特征,如基于Kinetis系列MCU,配以飞思卡尔传感器、搭载OpenSDA调试接口、兼容Arduino R3扩展接口等特性,是一种小型化、低功耗、高性价比的微控制器评估和开发的平台。FRDM-K64F又会是怎么样的呢?
FRDM-K64F是一款超低成本开发平台,面向Kinetis K64、K63和K24 MCU。FRDM-K64F的硬件规格兼容Arduino™ R3引脚布局,提供了丰富的扩展板选项。FRDM-K64F配备丰富的外设,包括用于开发完整电子罗盘功能的6轴数字加速度传感器和磁力计,用于直接交互与反馈的3色LED和两个用户按钮,可通过microSD卡插槽扩展的存储器,以及板载以太网端口,面向Bluetooth和2.4 GHz无线电附加模块的接头等连接选项,可实现快速原型设计。FRDM-K64F平台配备运行开源引导加载程序的飞思卡尔OpenSDAv2嵌入式开源硬件串行调试适配器。该电路提供多种串行通信、闪存编程和运行控制调试选项。
工程师们只要玩转了其中一款,那么就能快速上手Freedom平台其它型号的板卡,简直是一劳永逸方便以后升级更高性能的板卡。
一、开箱
收到快递之后,拆开包装就是这货,只能说好小巧,害得我还仔细检查了一下快递包里,确认没有其他物件了,就迫不及待的打开这个唯一的小盒子。
然后,就看到了这个,还是一个感觉:小,好小。。。。
第一眼肯定是看FRDM-K64F开发板这货咯,我特地将他和我的公交卡对比了一下:就公交卡这么大小。密密麻麻的焊点,和排布紧凑的电子元件给人很高深的感觉。
来一张背面的照片,哦?还有二维码,赶紧扫了扫,结果只弹出来Fsls.co/FK64F,晕。。。
然后就开始幻想,这块板子能做多么多么高大上的事情,做飞控?巡线小车?智能家居系统?嗯,还是先看看板子的说明书吧(虽然不一定看得懂):
和其他板子一样,基本将所有的引脚都用排针座引出,便于开发人员扩展。
最后,来一张全家福吧,毕竟,很快就会只剩下开发板,其他成员将光荣的走向垃圾桶了(我很纳闷,居然没有数据线,还好我手机不是苹果,数据线征用了)。
二、静态体验
先放一张FRDM-K64F板子的外设布局图,从这张图片上我们能很快速、直接的了解到这块板子的资源。
板子上有两个Micro-B USB和,其中一个Micro-B USB供OpenSDAv2使用,另一个K64F USB接口默认实现K64F微控制器USB Device功能,同时又可以通过安装USB CDC驱动实现虚拟串口功能。板载10/100Mbps以太网口,以太网口底部还嵌入了两个LED指示灯,空间利用到了极致。
然后就非常好奇这么小板子的功能怎样,就去找到了这块板子的参数:
FRDM-K64F开发板特性:
MK64FN1M0VLL12 MCU (120 MHz,1 MB闪存,256 KB RAM,低功耗,无晶振USB和100引脚薄型四方扁平封装(LQFP))
两用USB接口,带Micro-B USB接头
RGB LED
FXOS8700CQ加速度传感器和磁力计
两个用户按钮
灵活的供电选项 - OpenSDAv2 USB、Kinetis K64 USB和外部电源
可通过兼容Arduino™ R3的I/O接头轻松访问MCU输入/输出
可编程OpenSDAv2调试电路,支持CMSIS-DAP接口软件,提供以下功能:以太网、SDHC接口
附加射频模块:nRF24L01+ Nordic 2.4GHz无线电
附加Bluetooth模块:JY-MCU BT电路板V1.05 BT
从FRDM-K64F的板载资源来看,功能还是非常丰富的,首先板卡硬件规格兼容Arduino R3扩展接口,提供了丰富的扩展模块选择,另外板卡搭载丰富的外设,包括用于开发完整电子罗盘功能的6轴数字加速度传感器和磁力计,用于直接交互与反馈的3色LED和两个用户按钮,可通过microSD卡插槽扩展的存储器,以及板载10/100M以太网端口,面向Bluetooth和2.4 GHz无线电附加模块的接头等连接选项,可实现快速原型设计。[!--empirenews.page--]
来一个单片机特写:
我们再来看看MK64FN1M0VLL12微控制器特性:
ARM Cortex-M4内核,120MHz主频,DSP指令+FPU单元
1MB Flash、256KB SRAM、FlexMemory
两个16位 SAR ADC、两个12位 DAC、3个模拟比较器
带MII和RMII接口以太网控制器、USB全速/低速控制器、控制器区域网络(CAN)模块
三个SPI模块、3个I2C模块,六个UART模块、SDHC接口、I2S模块
上面列了这么多特性,可能让大家看的想睡觉,我知道,大家都喜欢图片,放图片吧:
这里呢,我有非常强烈的欲望向大家介绍FRDM-K64F这块板子上freedom平台的重大革新,下面有请OpenSDAv2闪亮登场:
在FRDM-KL25Z的开发板上,我们首次接触了飞思卡尔具有跨时代意义的板载OpenSDA调试器,其使用U盘Device模式烧写代码的方式,消除了需要额外安装调试器驱动的麻烦,而且其更新固件和稳定性都值得称道。
OpenSDA调试器不仅方便了整个开发平台的建立,而且提供了多种串行通信,Flash编程和调试运行的方式,这让工程师在不增加研发成本的同时又方便、快捷的对Kinetis系列微控制器进行评估、开发(OpenSDA调试器)。
不过,第一代的OpenSDA并不像它的名字所命名的那样“Open”,它并不是开源的,然而发展到FRDM-K64F开发板上,OpenSDA也从第一代升级到了OpenSDA V2,硬件电路也稍有改变,增加了电平转换的逻辑,也可以使用2.5V、1.8V等电平,适用一些更高端的MCU,而且,OpenSDA V2的固件彻底换成了开源的CMSIS-DAP调试器,这样就解决了包括Bootloader和所有应用(Debug,虚拟串口和MSD等)的开源问题,这可以说是FRDM-K64F开发板的一个重要的里程碑。
此外,OpenSDA V2的固件和应用的文件格式都变得更加统一了,变为了.bin文件格式,不再是原来的.S19、.SDA格式,而且这点必须要注意,弄混了下载进去的代码是无法运行的。
了解了FRDM-K64F开发板对于OpenSDA V2的重大改进,我们再回头来看下这款开发板,是不是瞬间觉得形象高大多了。
插电运行自带的程序:FRDM-K64F预装了”水准仪“演示,可充分利用板载加速度传感器。当电路板是平的时,RGB LED熄灭;当电路板倾斜时,红色或蓝色LED根据X轴和Y轴上的倾斜度逐渐发亮。
三、搭建开发环境
1、开发工具的选择:
飞思卡尔官网提供了丰富的学习资源和多样的开发工具,虽然大多数都是英文资源,但研究单片机难免要接触各种英文资料。FRDM-K64F开发板有多种IDE可选,飞思卡尔官方提供一个针对Cortex-M0/M4的集成开发环境——Kinetis Design Studio(KDS),工程师们还可以使用常用的Atollic、IAR、Keil和GCC进行开发,除此之外FRDM-K64F开发板还支持ARM mbed在线开发,这么多可选的开发工具,让不同平台的发烧友们都能够自由的选择自己所熟悉的开发工具,是不是很“自由”?
下面主要介绍KDS3.0+KSDK1.2以及keil环境搭建
2、Keil下开发、调试配置
刚开始连接上板子时,在“我的计算机”里显示的设备为下图所示,这样直接可以将.bin文件直接拖入到这个盘里,就完成了程序下载工作,是不是很方便?如果需要调试咋办呢?下面马上介绍
1)、进入Bootloader模式
按住开发板的Reset按键,然后使用USB线连接开发板的 SDAUSB接口到PC。当“我的电脑”出现名称为BOOTLOADER的驱动器后,释放Reset按键。其可用空间为128KB。见下图:
2)、安装mbed程序
下载FRDM-K64F_QSP.zip压缩包(http://cache.freescale.com/files ... s/FRDM-K64F_QSP.zip),解压缩后,将FRDM-K64F-QSP\OpenSDAv2 Applications目录下的k20dx128_k64f_if_mbed.bin文件复制到BOOTLOADER盘下。断开开发板和PC的连接,重新为开发板上电。这时开发板被PC识别为“MBED”的驱动器。
3)、为开发板安装驱动
下载mbedWinSerial_16466.exe(http://mbed.org/handbook/Windows-serial-configuration),连接开发板和PC,然后双击mbedWinSerial_16466.exe这个文件即可。
4)、在Keil下对工程进行设置
首先安装MDK,然后点,然后找到K60
Keil的设置:
然后选择SW,会弹出来flash的地址,我们还需要配置reset和connect
OK,现在可以在keil环境中去编写代码,实现刚刚的YY了,
3、KDS3.0+KSDK1.2环境搭建
先安装插件
找到下载好的插件KSDK1.2
这个过程需要联网,更新库文件,会比较慢
导入支持包:选择fiel-->import
选择“existing projects into workspace”
进入选择对应的板子K64F12
先将导入的库编译,之后才能编译其他基于KSDK库编写的demo:
Debug调试:
选择对应的调试器:
程序下载:使用FSL_Kinetis_Bootloader
四、实战:
笔者先用DS18B20温度传感器做了一个小小的实验,将温度信息采集回来然后发送给串口助手显示实时温度信息。先看看管脚定义:
再看看主函数:
DS18B20中的函数就比较多了,我只把最重要的函数:获取传感器数值的函数放出来吧:
运行结果:
在看看实物图吧,虽然很简单。
五、参考资料:
1.相应的资源
2.keil环境配置
3.KSDK下载 Kinetis SDK Project Generator Tool
本文系21ic原创,未经许可禁止转载