Hi,
can someone please verify the following and complete the value for the 0x200E (network mode) register?
As far as I understood, to set the charge current limit you have to set
- the register 0x2015 for the Charge current limit and
- the register 0x200E for the network mode.
The command to set the current limit to e.g. 12.5A by setting the recommended register 0x2015 should look like this:
:81520007D009B
where
: is the start of command
8 means "SET"
1520 is name of the current-limit- register 0x2015; the two parts 20 <-> 15 are reversed because of "little endian"
00 flags, must (?) be zero
7D00 --> 0x007D (s.above little endian) is hex for decimal 125 (current is in 100mA, not in A, so that ‚125‘ means 12.5)
9B check; the check must be calculated so that the sum of all numbers (not digits! 15 and 20 are two numbers, not four), including the check, modulo 256 is 85 (0x55); here:
in hex: 0x8 + 0x15 + 0x20 + 0x00 + 0x7D + 0x00 + 0x9B = 0x155
in dec: 8 + 21 + 32 + 00 + 125 + 00 + 155 = 341; 341 modulo 256 = 85 = 0x55
Is that right?
see also [1]
(The other current-limit-register 0xEDF0 is in the non-volatile memory and suffers from write operations; for any reasons that register is used in the example in [2] page 24)
Additionally the network mode register 0x200E must be set (s. [2] page 19 table page 23 last paragraph "Charge current limit (register 0x2015)" and page 20 "Network mode bit definitions (register 0x200E)"), I guess to "BMS mode", right? (s. [2] page 21 "BMS controlled ... Control only the current limit, the charger uses its own bulk-absorption-float state machine to determine the voltage setpoint.")
Both commands must be repeated more than once per minute (s. [2] page 23 last paragraph)
Is that right so far?
And now what I don't understand: How to set BMS. In that paper [2] there're these infos:
"BMS mode Set 0x200E to b0001001, write to registers 0x2001 and/or 0x2015"
What is "b0001001"? It contains only 7 bits, not 8. Isn't notation for dual system 0b...?
Can anyone help please? I need an explanation, preferably with the example command like 80E2000????ck, but with the ???? filled properly.
Thanks a lot!!
[1] https://community.victronenergy.com/questions/76778/set-charge-current-on-mppt-via-hex.html
[2] VE.Direct Protocol Rev.17, mppt-hex-protocol.pdf