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.
Sent 7 ms after each time a message is received from the BMS controller.
If no messages are received from the BMS controller, sent at a configurable rate (10 ms to 2.55 s, 1 s default).
Rev 1.03 and above
ID
| Bytes
| Byte 0
| Byte 1
| Byte 2
| Byte 3
| Byte 4
| Byte 5
| Byte 6
|
681h
| 7
| 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. The value is refreshed 1/s, regardless of the message rate
- Normally 01h. Bit 0: 1 = no voltage seen by the HVFE during contactor tests isolation is OK
- [100 mV] (Resolution is 1.2 V)
Notes:
- Maximum period: 2 s (after 3 s 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, 500 kbps or 1 Mbps)
- 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 (either through a computer and a CAN adapter, or using the "Custom Output Message" feature of the BMS)
- 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
|
CAN bus receive timing code
| 0Ah
| 00h to FFh
| F7h
| 4
|
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 Mbps {Rev 1.07 and up}
- 00h for 500 kbps
- 01h for 250 kbps
- 03h for 125 kbps
- 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
- {Rev 1.08 and up}. See the CAN Rx Timing page
Example: configure the HVFE from 500 kbps to 250 kbps using a custom message
- Start with both the BMS master and the HVFE at 500 kbps (factory default)
- In the GUI, go to the Configure/Communicate tab
- Set the "Custom message" parameters as shown below
- ID is "7FF", per the table above
- Number of bytes is 8
- "Item" = 8 means "constant"
- "Multiplier" and "Divider" don't matter: set them to 1
- "Offset" is the value to be sent for that byte
- Bytes 0~5 are 0x12 through 0xBC, converted to 12 through 188 decimal, per the table above
- Byte 6 is set to "4" for CAN speed
- Byte 7 is set to "1" for 250 kbps
- You can use this configuration file
- Click the "Write to BMS" button; the BMS will send the custom message once a second; the HVFE will configure its speed to 250 kbps
- Change the "ID" to 0 to stop the custom messsage; change the "Rate" control to 250 k b/s
- Click the "Write to BMS" button; the BMS will stop sending the custom message; the BMS master will configure its speed to 250 kbps but will keep on using 500 kbps for now
- Remove power to the unit; this will reset both the BMS master and the HVFE
- Power the unit back up; both the BMS master and the HVFE will use their newly configured speed and operate at 250 kbps