These are the CAN messages that are sent or may be sent by the Remote High Voltage Front End, and the ones that it listens to.
Notes:
- Period: 2 messages every 100 ms, separated by 10 ms
- Length: 3 bytes
Rev 1.03 and above
| ID
| Bytes
| Byte 0
| Byte 1
| Byte 2
| Byte 3
| Byte 4
| Byte 5
| Byte 6
|
| 681h
| 5
| Load current (1)
| Source current (1)
| Data (2)
| Pack voltage (3)
|
Rev 1.02 and below
| ID
| Bytes
| Byte 0
| Byte 1
| Byte 2
| Byte 3
| Byte 4
|
| 681h
| 5
| Load current (1)
| Source current (1)
| Data (2)
|
- [10 mA], + = into battery, big-endian
- Bit 0: no voltage seen by the HVFE during contactor tests
- [100 mV]
Notes:
- Maximum period: 300 ms (after which it assumes there is no such message on the CAN bus)
| ID
| Byte 0: Address
| Byte 1: Mask
| Byte 2: Data
|
| Bit 7
| Bit 6
| Bit 5
| Bit 4
| Bit 3
| Bit 2
| Bit 1
| Bit 0
|
| 680h
| 48h
| FFh
| -
| Drive Precharge switch
| Drive SW- switch
| Drive SW+ switch
| Drive relay K3
| Drive relay K2
| Drive relay K1
| Fault
|
The Remote HVFE and the BMS controller are programmed at the factory to work with each other.
If you need to change the the CAN Bus speed, or ID of the messages used (because of a conflict with messages from another device on the bus), you my reprogram both the Remote HVFE and the BMS controller, to new values.
Three items are programmable through the CAN bus:
- The CAN bus speed (125, 250 or 500 kHz)
- The CAN ID of the received control message
- The CAN ID of the transmitted status message
The EEPROM may also be programmed through the ICSP connector and a PIC programmer.
The control message (by default at ID of 680h) is also used by the Elithion display.
If you are using an Elithion display, changing this ID will make the display unoperable (the display cannot be reprogrammed).
Procedure:
- Connect to the board through the CAN bus, using the CAN bus speed that the board is presently set to
- Send CAN messages to modify the EEPROM
- Power down and up for the changes to take effect
| ID
| Length
| Byte 2: Data
|
| Data 0
| Data 1
| Data 2
| Data 3
| Data 4
| Data 5
| Data 6
| Data 7
|
| 7FFh
| 8
| 12h
| 34h
| 56h
| 78h
| 9Ah
| BCh
| EEPROM address
| EEPROM data
|
| Item
| EEPROM Address
| EEPROM Data
| Default
| Notes
|
| High byte of the CAN ID of the received control message
| 00h
| 00h to 07h
| 06h
|
|
| Low byte ""
| 01h
| 00h to FFh
| 80h
|
|
| High byte of the CAN ID of the transmitted status message
| 02h
| 00h to 07h
| 06h
|
|
| Low byte ""
| 03h
| 00h to FFh
| 81h
|
|
| CAN bus speed code
| 04h
| FFh, 00h, 01h or 03h
| 00h
| 1
|
| Status message rate
| 05h
| 01h to FFh
| 100
| 2
|
| High byte of the offset in the high current sensor (load current)
| 06h
| 00h
| 00h
| 3
|
| Low byte ""
| 07h
| 00h
| 00h
|
| High byte of the offset in the low current sensor (source current)
| 08h
| 00h
| 00h
|
| Low byte ""
| 09h
| 00h
| 00h
|
Notes:
- Wait 10 ms before programming a new value
- The value for the CAN Bus speed is validated, so there's no risk of locking the board from being programmed by CAN bus
- FFh for 1 MHz {Rev 1.07 and up}
- 00h for 500 kHz
- 01h for 250 kHz
- 03h for 125 kHz
- Normally, the HVFE only transmits as a response to a received message.
If the HVFE includes current sensors, it also transmits on its own, at a rate set by this setting. Units: [10 ms]. For example: 1 = 10 ms; 10 = 100 ms; 100 = 1 s...
- {Rev 1.06 and up}. Units: [10 mA] 0000h = 0 A offset; 0001h = decrease the reported value by 10 mA; FFFFh = increase the reported value by 10 mA