本人之前是不太喜好利用STM32的MCU。由于我个人的关系,常常在windows,linux,osx之间切换利用,一份代码掩护几个工程觉不太方便很麻烦,加之ST的生态培植更多的寄托于低价策略之下的爱好者推广,引以为豪的库封装也被初学者神话之后逐步粉饰了其他MCU厂都有类似乃至更精良的情形,因此总对STM32有神往奈何不想折腾。
最近逐步的创造ST也开始布局更完全的用户环境,很欣喜,这样的改变值得花一些经历折腾一下。
其余,这小板子很大略,紧张便是一个板载仿真器,一颗引出兼容arduinomini引脚的L432,前面dcexpert有写,想看详细剖析的可以去看看:传送门(点击阅读原文不雅观看)

先讨情况,有三个可以说说的东西。一个是AC6 这款IDE, 一个是jlink-ob开始支持大部分NUCLEO和DISCOVERY评估板,一个是mbed,下面逐步聊,想到哪里写到哪里。顺带提一嘴,T某I的CCSv6开始支持三种OS了,详细信息请自行查找。
AC6的前身是一款eclipse的插件,全名叫“Open STM32 Tools”,不久之前正式和eclipse打包在一起组成了面向STM32 系列MCU的IDE。同时支持windows,linux和osx。项目地址往这边看 http://www.openstm32.org/HomePage 。升级更新还蛮快,基本隔2,3天update一下都有小版本更新。这款IDE该当是ST自己生态的一个出发点。
启动画面看起来比较淡然,比较符合我的感官,不过,紫色,让人有一些娘炮的不端庄感,呃,还有一朵长得像蝴蝶的菊花。
原生的AC6依赖openocd这款在线调试代理。然而openocd的速率和stlink-v2的速率,哥哥我确实不太喜好,用起来不仅慢还很麻烦。好是4月份的时候segger推出了STM32的jlink ob firmware,详情往这里看 https://www.segger.com/jlink-st-link.html,现在的固件基本可以覆盖大部分NUCLEO和DISCOVERY。建议AC6做更新的时候可以直接把JLINK插件集成进去好了,省得一会被墙一会被404。
AC6的详细安装和JLINK OB firmware更新操作,更多的是按照解释看着提示来,这里便不再详细啰嗦下去。
安装AC6之后即可以利用openocd进行体验。不过我更习气jlink和他的工具比如qzone,systemview等等。要在AC6下面利用jlink,首先须要安装JLINK驱动(https://www.segger.com/downloads/jlink)和eclipse的 jlink 支持(http://gnuarmeclipse.github.io 如果打不开,就去https://github.com/gnuarmeclipse或者 http://sourceforge.net/projects/gnuarmeclipse/files/下载离线包,插件只须要点击选中jlink支持即可)。得益于segger jlink驱动的跨平台性,jlink本身也可以很方便的在不同平台之间利用,并且虚拟串口,SWO,segger RTT都可以很方便的用。
试试新建一个工程。
芯片选择之后AC6会自动提示要利用哪个库,最新的器件已经都切换到HAL,不支持比较老旧的StdPeriph。确定之后就等待下载完成吧,下载包自动解压之后放到用户个人目录中下次新建该芯片的项目就不用再等待了。呃,话说快了,有一种情形,HAL库有官方更新的时候AC6还是要你选择新下载。
HAL库支持很好,三方和附加库也比较完好。熟习的朋友拿着就可以上手了。要例子可以去firmware包里面找SW4STM32工程,导入到AC6即可。Eclipse不多先容,喜好的人不喜好的人都有道理。
我们导入一个例子吧,STM32Cube_FW_L4_V1.5.1/Projects/STM32L432KC-Nucleo/Applications/FreeRTOS/FreeRTOS_ThreadCreation/SW4STM32/STM32L432KC_NUCLEO这个。
调试的时候在GDB SEGGER J-LINK DEBUGGER中新建一个调试配置,芯片型号填入STM32L432KC就可以用上高大快上屌的jlink了。有兴趣的可以在设备管理器里面找到虚拟串口,其余推举可以试试segger的RTT功能,听说比serial和swo都快,还带缓存、日志等功能。
截止到成文的时候,存活的、没有存活的常见MCU厂基本都推出了基于Eclipse的支持三OS的IDE,当然这里的MCU说的是ARM MCU,其他大量非ARM系列的开拓仍旧只有单OS可选。例外的是atmel这只已卖身妾基于virtual studio做了自己的IDE,然并卵,没有带来更多的上风,令人匪夷所思。
虽然查看寄存器这种功能还不如IAR,KEIL,但是垃圾的IDE完备可以消灭更值钱的灵感(AC6可以支持SVD文件的寄存器定义,不过暂时我还用不到,没有深入折腾)。
mbed是一个挺好的东西,先容的人很多,这边只是提一下。STM32的HAL库当然是很贴切STM32MCU的,虽然这个库功能也比较残缺很多地方搞得比自己写更繁芜。比较着来看,mbed建立在更高逻辑层面的“库”之上,如果把HAL库比作linux kernel api的话,mbed该当是posix api了。
mbed的利用也不繁芜,https://developer.mbed.org 里面添加 NUCLEO-L432KC 板子的支持即可,选择一个模板,导出来成AC6工程就好。
mbed是用C++封装的,抽象程度很高,如果当做struct的扩展来用即便不须要多少C++知识也可以用的比较顺畅。很多MCU特定的功能肯定没法用了,毕竟抽象程度越高个性化程度也就越低。中小型项目的选型中,mbed是个很不错的出发点,包括常用的I2C,SPI,IO,Interrupt,Timer,Ticker,Analog,CAN,Serial,如果加入RTOS支持的话,还有Mutex,Thread,Queue等根本举动步伐可以顺手拈来。但是,重点是,这些根本举动步伐的功能还是弱小得,作为项目或测试的一个出发点很不错。本人的某个项目中已经在利用mbed作为根本平台和测试平台,拿测试来说,往常须要个把小时写的测试用例,mbed只写了不到十分钟。
再扯能耗
L432终于可以和MSP432站在一个出发点考量:内核都是cortexm4,都是自家低功耗系列中比较新的器件,关键是名字里都有432。虽然主频,功能单元,功耗模型各不相同,站在能耗比的角度来看各有千秋。不表MSP单说L432。
常日认为功能与功耗是一对抵牾,并存起来要么选鱼要么选熊掌。因此big.LITTLE架构弄个异构的快慢处理器来寻求平衡。就MCU来说,纯挚要更强功能该当是cortexm7系列主打的目标市场,纯挚要更低功耗该当是cortexm0系列善于的领域。能达到手册号称的cortexm4从功能,性能,功耗方面确实是一个难得的平衡。
低功耗运用一样平常被看做用于传感,被动监测等领域。目前市情上的传感器一样平常要么是数字式要么是仿照式。针对数字式传感器L432配备的i2c,spi接口险些覆盖了大部分数字传感器接口,如果放入到掌握和工业环境中,CAN接供词给根本数据通讯能力,低功耗UART也常常用于短距数据通讯。Dsp在这种场景中为数据的处理供应更高等别的打算支持。仿照传感器的数据利用L432的低功耗12位带硬件过采样ADC,最高可达到16bit,功耗低至200ua/msps。更进一步,2,4,8,16倍的可调增益运放对微弱旗子暗记有了一个基本配置,处理范围内的旗子暗记该当可以节省一些外围器件的哀求。如果换做外围器件搭建动态增益可调的需求,仍旧须要下一些功夫,当然,这些参数相对来说都比较基本,如果要更风雅的旗子暗记调理,还是得自己动手了。阈值监测的运用放在仿照比较器COMP身上没有什么更得当了。
从芯片的功能配置上看得出L432针对运用处景的各种预先考量。给出的配置虽然大部分功能都可以在常见的MCU上取得,然而详细针对到低功耗这一目标运用处景,这些功能就显得再得当不过。再加上面向工业领域和通用领域的通讯功能,搭建一个传感器数据网络节点的方案可以节约不少外围本钱。
通过单芯片求得功能、性能、打算、功耗的平衡,这样的设计我个人持肯定态度,比某厂家试图在一个MCU里面搞两个核大略的多。两个核意味着同步、通讯、调试等各种繁芜问题,暴躁的社会是不太认可高繁芜度的东西参与竞争的。
芯片特色中没有强调功能模块之间低功耗模式互助的能力,core在休眠的时候由功能部件(之间)自动完成某一些处理、打算、然后有条件的唤醒core进一步处理,类似某一些芯片的梦游、状态机(虽然名字不一样,实际上可以认为类似)等功能间协同能力。须要解释的是由于韶光关系,本人并没有很详细的翻阅每一页手册的解释,只在浏览的根本上大概得出的印象,可能不准确,但是L432的数据和芯片手册都没有把这个拿出来作为卖点,那么以上情形成立的可能性是很大的。
之前看过ST的6轴传感器,里面的实现利用状态机把功能性、定制型暴露给用户。技能上说在L432(或L系列)中添加类似状态机折衷core休眠时的各低功耗功能部件,对ST来说该当不是难事吧。
ST切入低功耗MCU领域并不是较早的,乃至可以说发力是较晚的,觉得后发上风并没有表示出来。低功耗MCU从最初的实行期休眠期功耗,到部分低功耗器件,到更风雅的休眠功耗,到整体功能部件的低功耗加强,再到内核低功耗的加强(比如CortexM4核),然后到功能部件之间低功耗模式的自主协同数据处理,每一步的发展或许ST仍旧须要不断的积累才能给大家带来更大的惊喜。
总体 来看ST越来越加强自主生态的培植,积极参与并融入到共建生态的培植,L432这颗器件在能耗方面取得难得平衡的同时供应大量可以运用在低功耗场景中的功能部件,如果各种数据手册中涉及的参数相比拟较守旧不夸年夜的话,这颗芯片作为低功耗运用和产品的紧张考虑工具是值得花一些韶光做进一步评估的。
点击阅读原文与原作者磋商、互换。
以上图文内容均是EEWORLD论坛网友:freebsder原创,在此感谢。
欢迎微博@EEWORLD
如果你也写过此类原创干货请关注微信公众年夜众号:EEWORLD(电子工程天下)回答“投稿”,也可将你的原创发至:bbs_service@eeworld.com.cn,一经入选,我们将帮你登上头条!
与更多行业内网友进行互换请上岸EEWORLD论坛。