Skip to content

How to recover an unflashable MSB A2

Oleg Hahm edited this page Jul 7, 2014 · 8 revisions

Overview

This HOWTO may help your bring a unflashable MSB-A2 flashable.

This is done in two steps:

  1. invert RTS pin (done by ft232r_prog (Linux) or mProg (Windows)
  2. erase first block of the ROM to prevent the MSBA2 from booting

Linux: ft232r_prog

  1. Connect MSBA2 to your machine
  2. Check for pin state: ft232r_prog --dump
    1. if rts_inverted = 1 you need to invert this pin (set to 0)
    2. run ft232r_prog --invert_rts to invert this pin
    3. check for pin state: ft232r_prog --dump

Windows: mProg

First step to reprogram the FTDI232R:

  • Tools->Read and parse
  • File->Save As bla.ept
  • File->Edit

to prevent the MSB-A2 from running user application your have to program the "Device Type" FT232R lowering the RTS line on poweron (uncheck the "Invert RTS#" box in the "Invert RS232 Signals" -Tab). If the checkbox "Load D2XX driver is not yet checked please download and install the D2XX-Driver. (if it does not work with the standard VCP driver) Device->Program

HTerm

  1. reconnect the device
    1. you should notice that the MSB2 does not reboot anymore
  2. start HTerm
    1. press the B button to refresh the device list
    2. select your device from the list (typically /dev/ttypUSB0)
    3. set baud rate to 115200
    4. click connect
    5. set the line breaks to CR-LF
      1. once for the sending part in send on enter
      2. and on the receiving part in Newline at
  3. reprogram the ROM by entering these commands:
command	              response	                         comment
================================================================================
"?"CRNL	             "Synchronized"CRNL	 
"Synchronized"CRNL   "Synchonized"CRNL"OK"CRNL	
"16000"CRNL          "16000"CRNL"OK"CRNL	
"J"CRNL	             "J"CRNL"0"CRNL"402716981"CRNL       LPC2387 (500k) 
"U 23130"CRNL        "U 23130"CRNL"0"CRNL                unlocked 
"P 0 0"CRNL          "P 0 0"CRNL"0"CRNL	                 prepare block 0 0 
"E 0 0"CRNL          "E 0 0"CRNL"0"CRNL	                 erase block 0 0 
"P 1 1"CRNL          "P 1 1"CRNL"0"CRNL	                 prepare block 1 1 
"E 1 1"CRNL          "E 1 1"CRNL"0"CRNL	                 erase block 1 1 

and so on. Usually, erasing the first block should be enough.

Finishing

Finally you should be able to flash the MSB-A2 node. It is important to program the FTDI232R with the initially saved settings, especially enable the "Invert RTS"-checkbox (or run ft232r_prog --invert_rts again)!

Clone this wiki locally