RS485 networking headaches
ABaylog
Posts: 4
···· I am working on setting up a simple RS-485 network for a class project. There are to be four slaves responsive to one master. Each of these has a BS2 and for the time being are just simply connected using a LTC1487 chip much like the Nuts and Volts Column (#28, volume 1).
···· I have been able to get three of them connected (master and 2 slaves) and have some simple communication back and forth between them. The problem is that I am not getting the response from the slaves that I am expecting. Each slave should just simply respond with its address (A or but everytime some odd symbol is returned which has a DEC equivalent to 255. I am not sure if this is a programming error, or if i need to check my wiring again.
···· If anyone has any suggestions I would be willing to listen. My code is posted below. Thanks for the help!
···· I have been able to get three of them connected (master and 2 slaves) and have some simple communication back and forth between them. The problem is that I am not getting the response from the slaves that I am expecting. Each slave should just simply respond with its address (A or but everytime some odd symbol is returned which has a DEC equivalent to 255. I am not sure if this is a programming error, or if i need to check my wiring again.
···· If anyone has any suggestions I would be willing to listen. My code is posted below. Thanks for the help!
'Master Code memory VAR Byte counter VAR Byte id VAR Byte address VAR Byte serIO CON 1 flow CON 0 baud CON 16468 counter = 0 top: FOR address = "A" TO "B" PAUSE 1000 IF memory < 100 THEN DEBUG "address = ", address,CR, "Memory = ", DEC memory,CR: HIGH flow: PAUSE 5: SEROUT serIO, baud,[noparse][[/noparse]address, memory]: LOW flow: SERIN serIO, baud, 2000, error, [noparse][[/noparse]id]: PAUSE 2000: DEBUG "ID = ", id, CR,CR,"Next Cycle:",CR: memory = memory + 1: GOTO Next_Node: ELSE GOTO finish: ENDIF Next_Node: NEXT GOTO top: error: PAUSE 2000 DEBUG "there was an error in the network!",CR,CR counter = counter + 1 GOTO Next_Node: finish: DEBUG "End of program",CR END
'Slave A memory VAR Byte myid CON "A" serIO CON 1 flow CON 0 baud CON 16468 top: LOW flow SERIN serIO, baud,10000,error, [noparse][[/noparse]WAIT (myid), memory] DEBUG "memory = ",DEC memory,CR,"ID = ", myid,CR,CR HIGH flow SEROUT serIO, baud,[noparse][[/noparse]"A"] GOTO top: error: DEBUG "Program timed out, try again",CR,CR GOTO top: END
'Slave B memory VAR Byte myid CON "B" serIO CON 1 flow CON 0 baud CON 16468 top: LOW flow SERIN serIO, baud,10000,error, [noparse][[/noparse]WAIT (myid), memory] DEBUG "memory = ", DEC memory,CR, "ID = ", myid,CR,CR HIGH flow SEROUT serIO, baud,[noparse][[/noparse]"B"] GOTO top: error: DEBUG "Program timed out, try again",CR,CR GOTO top: END
Comments
kelvin