User's Manual

MOD090-HP
User’s Manual
PAGE 24
Technical support (650) 384-0000 www.avalanwireless.com
If the last rmware block is not a full 64 bytes, it must be padded with zeros.
setPacket SPI Mode:
0x8A
b7 b6 b5 b4 b3 b2 b1 b0
Byte 1 BC ID6 ID5 ID4 ID3 ID2 ID1 ID0
Byte 2 S7 S6 S5 S4 S3 S2 S1 S0
Byte 3 - - - - - S10 S9 S8
Byte 4 OFS7 OFS6 OFS5 OFS4 OFS3 OFS2 OFS1 OFS0
Byte 5 OFS15 OFS14 OFS13 OFS12 OFS11 OFS10 OFS9 OFS8
Byte 6 DATA7 DATA6 DATA5 DATA4 DATA3 DATA2 DATA1 DATA0
Byte 7 DATA15 DATA14 DATA10 DATA9 DATA8
...
Bytes 6 and 7 are repeated 32 times.
Byte 70 CHK7 CHK6 CHK5 CHK4 CHK3 CHK2 CHK1 CHK0
Byte 71 CHK15 CHK14 CHK13 CHK12 CHK11 CHK10 CHK9 CHK8
BC must be set and ID0 to ID6 must be clear. (Byte 1 is 0x80.)
S0 to S10 must be set to 68. (Byte 2 is 0x44 and Byte3 is 0x00.)
OFS0 to OFS15 is the 16-bit integer rmware block number. This value will be
included in the checksum calculation.
DATA0 to DATA15 is the 16-bit rmware data, 32 values per block.
CHK0 to 15 is the 16-bit integer checksum value for the block. It is calculated in the
host microcontroller as follows:
1. Initialize a 16-bit register to 0x1911.
2. Add the 16-bit data value to the register beginning with the rmware block
number.
3. Perform a rotate left with no carry by 5 bit positions.
4. Repeat steps 2 and 3 for all 34 words (OFS and DATA).
Once all blocks have been submitted to the MOD090-HP, then the host
microcontroller must issue the setFirmwareEnd (0x8C) command. Once
the setFirmwareEnd command has been issued to the MOD090-HP, the host
microcontroller must wait for the programming to complete. The MOD090-HP will
indicate this by deasserting the Data Ready line (pin 9). Once the Data Ready line
is deasserted, programming is complete and it is safe to reset the MOD090-HP
with the setReset command (0x85). A reset is required before the MOD090-HP
will begin executing the new rmware image.