MultiCell slave board with EVILbus
Posted: Sun May 29, 2011 11:09 pm
As I have previously mentioned I want to do some new multi-cell slave boards. The new boards will have ICSP header for programming, use smt components, be small in size (4 cell on a 5cm square). I am sticking with the 12F683 pic, but the board should be pin compatible with the 12F1822, just need to omit the lm385 and it's pull-up resistor (and new software). A single cell schematic can be found here. I have breadboarded it and the ICSP header works fine, I can read and program the pic o.k.
The biggest change is to the master and slave bus. Here I have completely changed the master-slave comms. The new bus is called the EVILbus, or EVIbus (Electric Vehicle Instrumentation bus). Details can be found here and a pdf specification here. The basic idea is that all nodes are connected in parallel, like our master bus. Timing of when slaves talk is done in software, instead of the hardware solution we have with the slave bus. So the master sends a command for slave voltages, all the slaves get it at once and send in their allocated time slot based on their id number stored in eeprom. If you read the spec, it calls for a heartbeat pulse to be sent once a second from the master. This keeps all slaves in sync, but also means we just need the slaves to listen for the heartbeat and use that to send cell data. Another item in the spec is a long break, basically just a longer heartbeat signal. We can use this to tell the slaves to listen for special commands, ie., adjust load cut in values, etc. So for normal operation the slaves send cell voltage every heartbeat and since the slaves are all taking their measurements at the same time we should be able to get rid of the separate load off and load on commands required for charging.
I am sure this will need a lot more explaining but if there are any questions just ask. Also, the EVILbus does have a proven track record, Manzanita Micro use an implementation in their PFC chargers and battery regulators. Oh and I should mention, the cabling and connectors are just RCA jacks and audio cables. A nice cheap cable solution for data comms. My next step is to test the actual comms. For this I am going to use a Arduino for a simple master and get the oscilloscope out and see how it behaves. I am sure some resistor values will need to be changed to fine tune it.
The biggest change is to the master and slave bus. Here I have completely changed the master-slave comms. The new bus is called the EVILbus, or EVIbus (Electric Vehicle Instrumentation bus). Details can be found here and a pdf specification here. The basic idea is that all nodes are connected in parallel, like our master bus. Timing of when slaves talk is done in software, instead of the hardware solution we have with the slave bus. So the master sends a command for slave voltages, all the slaves get it at once and send in their allocated time slot based on their id number stored in eeprom. If you read the spec, it calls for a heartbeat pulse to be sent once a second from the master. This keeps all slaves in sync, but also means we just need the slaves to listen for the heartbeat and use that to send cell data. Another item in the spec is a long break, basically just a longer heartbeat signal. We can use this to tell the slaves to listen for special commands, ie., adjust load cut in values, etc. So for normal operation the slaves send cell voltage every heartbeat and since the slaves are all taking their measurements at the same time we should be able to get rid of the separate load off and load on commands required for charging.
I am sure this will need a lot more explaining but if there are any questions just ask. Also, the EVILbus does have a proven track record, Manzanita Micro use an implementation in their PFC chargers and battery regulators. Oh and I should mention, the cabling and connectors are just RCA jacks and audio cables. A nice cheap cable solution for data comms. My next step is to test the actual comms. For this I am going to use a Arduino for a simple master and get the oscilloscope out and see how it behaves. I am sure some resistor values will need to be changed to fine tune it.