silabs 的 EFM 系列芯片历来以低能耗,可信的加密而文明,比较遗憾的是,国内用的较少,且基本上没有什么中文参考资料,刚刚开办没多久的官方中文论坛贴出来的资料也大都是英文版,且论坛在 GFW 下访问相当困难。因为项目需求,这边我入手了两个系列的 EFM 开发板,但都出了大大小小的问题。

个人总结:1.因为前期缺少相关指导,且官方指导手册仅告诉要如何做,却没指示相关工具的位置和使用。2.该芯片配备专有 IDE 且还分好几个版本,无疑增加了摸索的难度。3.个人经验不足,之前上手的都是开发板,没接触过这种官方自带的评估板。

其实上手这个评估板并不困难,困难的是没有一个详尽完整的指导手册,不知道如何用评估板去烧录上面的 MCU ,如何用评估板烧录自己产品的 MCU等。

相比国内的开发板学习板而言,EFM 开发板大都是官方的评估板,并且大都是英文原版说明文档。最主要的一点,在购买 EFM 开发板时,官方是不会将开发板资料打包给你的,取而代之的是让你安装官方的软件 simplicity studio ,软件中会将你芯片的相关文档程序等进行罗列。虽然看起来更加人性化了,然而问题也出在这边,simplicity studio offline 罗列出来的文档/程序不全,部分你芯片的资料已经被装在电脑中了,但 simplicity studio 却没有将呈现给你,一般你还得自己手动在电脑中检索,或者去官网搜索。

评估板简介:

EFM32 配套评估板 上 Jlink 是从Segger授权的, 功能上应该没有缩减。因此价格也较贵,原价 $69 现价 $29 ,一般网购的价格在 ¥200 左右,这个价位对于国内 STM32 满地跑,部分 STM32 开发板价格甚至在 100 左右来说的话,还是较贵的,最关键的是淘宝购买的厂家不承担售后服务之类的,出问题只能自己解决。

另外,EFM32 官方配套软件很强大,将编码,烧录,仿真,能耗监控,文档,样例等等都集成在了一起,很多资料都需要去这个 IDE 中查找,对英语不好或者不善于摸索的人来说也是一道门槛。

评估板的功能:

  • 根据你的版型,不同的板子有不同的功能,一般都会有显示器,按键,led等基本功能
  • 能耗检测模块
  • 板载 Jlink :可以烧录板载 MCU,也可以烧录外置芯片。
  • 可以使用外置 Jlink 来烧录板载的 MCU。
  • 大多数引脚引出,且预留焊盘,另外还有 EXP 扩展口(注意 debug-out 是小灯,而不是指 EXP 扩展口)。

使用方法:

评估板的 debug 主要分为 in,out,mcu,off 等选项,这几个选项至关重要,我们可以不使用 simplicity studio 这个 IDE,但如果需要使用这个评估板,就必须得弄清楚如何设置评估板的 debug 模式。

这边我使用 simplicity v3 版本,设置 debug 模式,需要通过一个 commander 的软件,该软件在 simplicity v3 安装包中可以检索到,如果需要在 simplicity studio 中打开,则安装时需要安装无线模块套件(如果不安装这个套件,软件中无法打开这个 commander 工具,因此建议新手安装完整版的 simplicity v3 而不是只安装你所需要的芯片组建),打开 simplicity IDE 然后在 file 中打开 simplicity commander。

每次使用评估板要进行相关操作时,都需要使用 commander 进行设置,详细配置说明:

  • debug-in : 烧录评估板上面的 jlink 固件,注意烧录的是 jlink 而不是评估板的 EFM芯片。
  • debug-out : 使用评估板作为 jlink 烧录其他板子上面的外置芯片。mcu 资料中可以读出外置芯片具体信息,另外评估板有个 debug-out 灯会亮起。
  • debug-mcu : 烧录评估板上面自带的 EFM 芯片。mcu 资料中可以读出板载芯片具体信息。

评估板作为 jlink 是官方正版授权的,烧录程序一般没有问题,但如果需要打多个断点进行仿真,则可能会仿真失败,应该是和 jink 采用的芯片有关系。

固件烧录

普通升级,官方推荐使用 Kit Manager 打开后会自动判断固件是否需要升级,事实上 Kit Manager 和 simplicity commander 功能基本相同,但 Kit Manager 更显得傻瓜式,而且也会经常出现无法打开,无法连接芯片等问题,如果遇到了这些问题,建议还是使用 simplicity commander 进行所有操作。

如果无法找到 commander 工具,这边推荐给出两个该工具的下载地址:

固件烧录失败后,如何重新烧录固件,步骤差不多如下:

  • 将评估板的 bootloader 接地(bootloader 位置各个开发板不尽相同,可以参照原理图,或者查看下面给出的参考连接),接下来连接电脑,打开 simplicity commander ,如果 bootloader 接地成功则会显示 j-link device 信息,否则读取不到信息。
  • 设置 debug mode:in 烧录 jlink 芯片,找到固件包,安装包(包为 .emz 格式,在 simplicity 安装目录中,可以电脑自行检索包路径)。

FAQ

这边附上一个中文版的问题总结,比较难得的一版中文资料, EFM32 系列微控制器 FAQ

根据 CMU 的时钟树,在使用其他低频时钟源操作 LEA/LEB 时无需配置 CMU_HFCORECLKEN0,但实际操作必须配置 CMU_HFCORECLKEN0 才可以正常工作。

查看 RTC/LEUART 可以看到 To use this module, the LE interface clock must be enabled in CMU_HFCORECLKEN0, in addition to the module clock. 时钟树没能将具体的成都呈现出来,实际工作时,查看相关外设的使用说明,会有使用方法。

EFM32 如何给芯片加密解密?

这边提供一个比较老的中文文档EFM32 加密-解锁流程](FAQ,仅供参考。需要注意的是,似乎只有 EFM32Gxxx 系列可以加密锁定,其他芯片是不可以的。

参考链接:
http://m.blog.csdn.net/article/details?id=41648431
http://community.silabs.com/t5/32-bit-MCU-Knowledge-Base/Recover-EFM32-or-EFM8-kit-that-was-bricked-during-firmware/ta-p/122142
http://community.silabs.com/t5/32-bit-MCU-Knowledge-Base/Unlock-a-Bricked-EFM32/ta-p/122776
http://wenku.baidu.com/view/ee891f3a5a8102d276a22ffc.html?re=view
http://community.silabs.com/t5/ChineseForum/%E7%96%91%E4%BC%BC%E8%8A%AF%E7%89%87%E6%98%AF%E5%90%A6%E7%83%A7%E5%9D%8F%E4%BA%86/m-p/184134/highlight/false#M1227
http://www.silabs.com/products/mcu/32-bit/efm32-gecko/pages/efm32-gecko.aspx