Digi的ARM核心板除了带有一棵NXP的主处理器外,大多还集成有一棵超低功耗的ARM Cortex-M0+协处理器(NXP Kinetis KL17: MKL17Z64VDA4)。主处理器和协处理器(MCA)之间,通过I2C0通信。协处理器通过一个多功能设备驱动,提供了一系列特有的功能:

核心功能

  • 核心模块复位逻辑
  • NVRAM
  • 32.768 kHz 输出
  • 1.2 V 参考电压

多功能驱动

  • 多路ADC通道
  • 扩展GPIO
  • 电源按钮
  • PWM
  • RTC
  • 串口
  • 看门狗定时器

通常系统启动时,UBoot会显示MCA的固件版本,为保证您获得最新的协处理器功能,请到Digi产品官网去查询是否有更新的协处理器固件1.13固件下载

请先用电脑下载固件,然后可以放在micro SD卡上或是放在服务器上用scp传给单板机。 单板机上电后,如果micro SD卡上存放有MCA固件,可以在DEY系统里加载Micro SD卡:

mkdir -p /media/tfcard && mount -t vfat /dev/mmcblk1p1 /media/tfcard
最好拷一份到板子的闪存中再进行升级比较安全
cp /media/tfcard/* ~/

MCA固件升级

在DEY系统中,可以使用 mca_fw_updater命令行工具来升级MCA固件。协处理器中的闪存并划分为程序空间和参数存储两个区域。在写入固件前,MCA的启动器会擦除程序空间,默认地,它也会同时清空参数区。请注意,MCA是核心模块的重要组成部分,请不要在不了解的情况下去升级不确定来源的固件。

  • 检查当前的协处理器固件

U-Boot启动时,会打印MCA的相关信息,包括固件版本。如果您已经进入系统,可以通过sysinfo来打印系统信息,它包含了MCA的相关版本信息。

  • 命令选项

^ 命令 ^ 功能 ^

mca_fw_updater -v,–version 查询MCA固件版本
mca_fw_updater -h,–help 查看帮助
mca_fw_updater -f FILE,–file 升级固件
mca_fw_updater -f FILE -k,–keep-nvram 升级固件但保留参数内容
  • 升级MCA固件

待升级固件必须是个二进制固件文件,并且用户至少有读的权限。 整个升级过程会持续20~30秒,在此期间,请勿中断升级,直到系统自动重启。如果发生意外,请重试这些步骤。对于非预期的升级失败,您可能需要一个调试器来刷MCA固件。

  • 发生错误时调试

如果升级失败,您还能进入uboot,可以用下面命令检查是否协处理器还连在I2C1总线上。

=> i2c dev 0
Setting bus to 0 
=> i2c probe
Valid chip addresses: 08 7e

MCA的I2C地址是0x7e,这意味着MCA连着并且跑着固件。如果显示的地址是125,则意味着MCA的Bootloader在运行。如果是其它值,则MCA出错,只要MCA固件在运行,或是MCA的bootloader在运行,您就可以进入Linux用上面的固件升级命令尝试重新升级。