Att styra stroben (DE) via RTS på PC brukar fungera sådär. Problemet är att det är svårt att få den att släppa precis när meddelandet är färdigskickat. Detta gäller, vad jag har sett iallafall, både Win och Linux. Det som händer isåfall är att du får busskollisioner med svaret på det meddelande som du skickade ut om man inte har väldigt långa tider mellan meddelandena. Och har man långa tider så blir inte bussen speciellt väl nyttjad.
Lösningen är ofta att sätta en lite mer intelligent omvandlare mellan RS232 och RS485 på PC-sidan. Har man en omvandlare med datastyrd strobe så funkar det. Vill man bygga detta själv så kan man göra det enkelt med en monovippa (74HC123 t.ex) som triggas av seriedatan och sedan håller stroben aktiv ca 1-1.5 teckenlängd (beroende på bithastighet) efter sista 0-biten i dataströmmen.
Problemet med denna lösningen är att man inte vet säkert när sista 0-biten i meddelandet kommer. Det kan vara första biten (startbiten) om man sänder $FF eller t.ex sista databiten om man sänder något med högsta biten=0. För att vara säker på att stroben alltid är aktiv minst hela teckentiden så får man utgå ifrån första fallet och lägga tiden på minst en teckenlängd. Sänder man då något med nolla i sista databiten så kommer stroben istället att ligga aktiv nästan en teckenlängd efter att datan är färdigsänd. Eftersom RC-länkar ofta är ganska dåliga på noggrannheten så sätter jag den ofta till ca 1.5 teckenlängd.
Eftersom stroben ibland kan bli längre än nödvändigt, så måste man fortfarande säkerställa att nästa meddelande (t.ex. svaret) inte börjar skickas innan strobetiden hunnit gå ut. Denna tid blir dock avsevärt mycket kortare med den här metoden. Med 1.5 teckenlängd i strobetid så kan se till att ha t.ex minst 2 teckentider från mottaget meddelande tills man börjar sända igen.
Den allra snyggaste metoden är att hålla reda på startbit och räkna databitarna för att sedan släppa stroben "exakt" vid rätt tidpunkt. Kan göras med t.ex en liten PIC10F som sköter den biten i omvandlaren. Men det är överkurs i det här fallet.
