I have found the software issue There was nothing wrong with the hardware it was a fault in the logic
So i probably did not need to fit the 100k resistor or the tantalum capacitor which i did in an effort to find the problem!!
Anyway the issue is the commands sent and the delay between them!The commands 1,2,3 are the core of the system with the multislave boards.
' Command 01 = Send Cell Voltage on Master Bus (0.1ms pulse)
' Command 02 = Turn Off Slave Load (Enhanced Mode Only) (0.2ms pulse)
' Command 03 = Turn On Slave Loads as Reqd (Enhanced Mode Only) (0.3ms pulse)
Command 2 is sent first and is echoed back on the master Bus.
Command 1 is then sent and sends voltage back on master bus.
Command 3 is then sent to and again is echoed back on the master bus.
The issue was that after command 2 had been sent, command 1 was sent before command 2 had made it's way around the 50 slaves and was still being echoed back on the Master bus, this then collided with the voltage data which had begun to be transmitted on the master bus by the first slaves. Also command 3 was sent before the voltages had all been recieved and also caused a collision!!
If you only have a small number of slaves you don't get the problem as the delays i had in the software were suffcient to mask the potential issue. This is probably why rick has not experienced the problem.
There are a number of fixes.
1) Introduce longer delays into the master code to ensure one command has finished before the next is sent. This is a cludge and cuts down on load balancing on time to around 50%
2) introduce checks into the master code which count the commands back on the master bus, and waits until correct number have been recieved before sending the next one. This would ensure reasonable but not optimum performance.
3) Modify the slave code to remove the echoing of the commands 2 & 3 back on the slave bus. This would give best performance but means reprogramming my 50 slaves again
I'll probably go for 3 as this then allows me to upload the latest slave software.
I'll think about that and post some updated code tomorrow.