Bootload CAN Communication Protocol

From OpenMotics
Revision as of 13:14, 14 June 2019 by Wilbert (talk | contribs) (Created page with "{| class="wikitable" width="100%" ! width="5%"|Direction ! width="5%"|Nr Of Bytes ! width="5%"|Byte0 ! width="5%"|Byte1 ! width="5%"|Byte2 ! width="5%"|Byte3 ! width="5%"|Byte...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Direction Nr Of Bytes Byte0 Byte1 Byte2 Byte3 Byte4 Byte5 Byte6 Byte6 Description
M->S
6
0
94
ID.Byte0
ID.Byte1
ID.Byte2
Checksum
-
-
Reset uCAN with specific ID
S->M
7
94
94
ID.Byte0
ID.Byte1
ID.Byte2
AppMode
Checksum
-
Resetting CAN has been done (App_mode=1 -> App running, =0 -> In Bootloader)
M->S
7
0
96
ID.Byte0
ID.Byte1
ID.Byte2
Ping Message
Checksum
-
Ping the Micro CAN slave to see if the Micro CAN is available
S->M
7
1
96
ID.Byte0
ID.Byte1
ID.Byte2
Ping Message
Checksum
-
Micro CAN will respond to a ping request from the Master
M->S
7
0
123
ID.Byte0
ID.Byte1
ID.Byte2
Bootloader Mode
Checksum
-
Write bootloader mode in byte 128 of the Micro CAN EEPROM
S->M
7
123
123
ID.Byte0
ID.Byte1
ID.Byte2
Bootloader Mode
Checksum
-
Response on bootloader byte being programmed


Notes:

  • M->S: This means that the Master or CAN Control is sending information to Micro CAN (Slave)
  • S->M: This means that the Micro CAN (Slave) is sending information to the Master or CAN Control
  • This CAN protocol only works for firmware Version 2.x.x
  • CAN protocol speed is 25kbps
  • Standard SID that is used in all communications between CAN Control and Micro CAN's is 6. All communication initiated by API instruction "FM" gets 0 as SID value.
  • Checksum is calculated as the sum of the previous bytes. Example: Nr of bytes=5 (so 5 bytes to transmit), Checksum=Byte0+Byte1+Byte2+Byte3