??? 08/20/10 14:03 Modified: 08/20/10 14:04 Read: times |
#178151 - how do you know? Responding to: ???'s previous message |
Do not address posts to a specific person, I'll answre the best i can, but others may have better/more suggestions
The hardware we are using had been running successfully for years (now, the model is not in the market) with no field failures and hardware issues. how do you know? it may have had errors that were not reported The tristate logic at slaves end is already implemented in this hardware. We have no idea about the earlier running software and its logic. Now, we implemented a fresh software for the same hardware, and facing some minor issues which I had already posted. there are no minor issues, only issues. The only place you find minor issues is in 'feature enhancements' So, from our side, no issues related to hardware, and changes in hardware are , to say, not possible for now. there ARE "issues related to hardware" are you sure the original software did not run the bus at, say, 1200 baud The main problem we are facing is: a) an arbitrary slave is failing to get addressed, I mean to say, failing to send acknowledge. Then, the master starts counting the fails for 5 times, and then confirms that the slave has lost the communication flow, and treats this case as an error (type 1). Q1. How to fix this error case, and how to revoke the failed slave to get back into the track? best guess, your software goes "out to lunch". Go through your software with the attitude "anything, everything can come on the UART, bad transmission, noise, missing bits ...) and make sure that WHATEVER happens from the UART will not 'hang' your software. An example: what happens if a transmission is incomplete. b) a slave, after getting addressed, is failing to send the end of data byte. Now, the master notes error (type 2) and sends communication reset command to all slaves, in a way to refresh the communication at slaves end. This error rate decreased by 50% when we added your trick of sending 'no data byte' before the end of data byte from slave to master. why comm reset ALL slaves?, not a problem, just sounds excessive try running the rig at 1200 baud both ways and see what happens. Erik Note; most transmission problems (reflections, ringing etc) will not be a problem if the output is steady till all reflections etc have died out. That is why a lower baudrate will 'fix' bad hardware |