虽然没有micro:bit开发板,但是想到它的主控芯片是nRF51822,而很多蓝牙模块和开发板上,也有这个芯片,正好在网上又找到现成的固件文件,就想应该可以将固件下载进去。
  nRF51822有几种型号,区别在于FLash和SRAM的大小不同。而micropython需要大于128K的Flash才能运行,因此需要nRF51822AA或者nRF51822AC,nRF51822AB则不行。
  找了一下已有的开发板和蓝牙模块,发现有三种带有nRF51822,其中微雪的BLE400使用了nRF51822AC,另外一个蓝牙串口模块使用了nRF51822AA,可以尝试,另外一个Seeed Arch BLE使用了nRF51822AB,不能使用。在研究了一下电路图,发现microbit的REPL使用的串口是P0.24/P0.25,只有微雪的BLE400可以通过飞线方式实现。
  在BLE400上,取下连接串口的两个短路帽,用杜邦线连接到P24/P25,其中P24连接CPRX,P25连接CPTX。
   blob.jpg900x500 129 KB


  找了一个Jlink OB,将microbit.hex下载进去。下载后LED开始有规律的闪动,说明程序开始运行了。另外从J-FLash的文件窗口可以看到,FLash已经使用到0x3E090,256K的空间已经所剩不多了,不到8K。
   blob.jpg915x710 242 KB


  因为BLE400上带有CP2102芯片,可以直接通过它连接串口,所以不用另外的USB转串口了。连上超级终端,设置好串口参数(115200,无流量控制),发现没有任何反映。感觉可能是hex文件中带有默认的程序,已经在运行默认的程序了,所以没有提示,于是按下Ctrl+C尝试终止,果然就看到了熟悉的MicroPython的REPL界面,做了简单的尝试,大部分功能都在,支持浮点运算和大数计算,这一点比CC3200好多了。当然板级库不在是pyb或者machine,而是变为了microbit。
   blob.jpg869x580 138 KB

   
  先写这么多了。如果大家也有nRF51288AA或者nRF51822AC,并且P24/P25可以引出来,可以试试下面的固件,体验一下。
  固件文件