Changes between Version 5 and Version 6 of Stuff/FirmwareUpdate


Ignore:
Timestamp:
10/14/10 00:16:06 (14 years ago)
Author:
art
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Stuff/FirmwareUpdate

    v5 v6  
    77== Bootloader == 
    88Since I am using AVR ATmega32 as the uC the update of the firmware can only be done in the bootloader mode. Special code is written to the bootloader section of the uC and is executed on the start or reset. The bootloader checks for special commands and if nothing received it passes the execution to the main software. So in order to activate bootloader mode on the OpenBM device we do following: 
    9  * reset OpenBM: 
     9 * reset OpenBM manually or by an ibus message: 
    1010   * manually: hold MENU+SELECT+EJECT and the release MENU 
    11    * ibus command: F0 07 .. FA BA AD FE ED .. (dst = BMBT:0xF0, src = ..(ignored), msg = OpenBM_Request:0xFA, data = [0xBA, 0xAD, 0xFE, 0xED]) 
     11   * ibus command: F0 07 FF FA BA AD FE ED .. (dst = BMBT:0xF0, src = FF(ignored), msg = OpenBM_Request:0xFA, data = [0xBA, 0xAD, 0xFE, 0xED]) 
    1212 
     13 * OpenBM send its version information as a message over the ibus: 
     14   * openbm send: FF len F0 FB 00 01 02 12 string chk (major version 16bit = 1:00 01, minor version 16bit = 530:02 12, string = informal version string, e.g. "beta2" or "compiled on 19.10.201 at 14:33") 
     15A 
     16 * now we have around one second time to send messages over ibus to set bootloader into "Firmware Update" mode: 
     17   * send activate update mode msg incl. a password of up-to a length of 32 bytes (fill with 00 if not set): F0 24 FF FA FF pp pp pp ... pp chk (password is specific of every OpenBM unit) 
     18  
     19 * if password was correct bootloader answer with: FF 05 F0 FB hh ll chk, where hhll is a 16bit number representing the sum of all password bytes 
     20   * bootloader is activated and Yellow LED lights on 
     21   * bootloader is deactivated if it not receive any firmware code chunks for the next 10 seconds (If boot loader is deactivated, Yellow LED turns off) 
     22   * bootloader is also deactivated, when full firmware code was transmitted (see next section of how to transmit firmware) 
     23