PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : high speed RS485 macht probleme



Ceos
04.05.2009, 16:10
ich habe nen RS485 bus, den ich mit 1MBaud betreibe, beide controller lauefn auf 16MHz und tauschen sich master slave mäßig untereinander aus, der master sagt dem slave über eine enableleitung wann er senden darf

jetzt ist das problem, dass der master beim empfangen scheinbar probleme hat, er schaltet die enableleitung aus, noch bevor das byte überhaupt komplett da ist.

die warteschleife ist ganz einfach

while(!(UCSRA0 & RXC0))
{
if(timeout) return;
}

das timeout tritt todsicher NICHT ein, hab schon mit pin toggle und oszi nachgeprüft

auch hab cih mit dem oszi die empfangsseite des master beobachtet, JEDES byte kommt gleichmäßig an, nur bekommt der master hin und wieder scheinbar was in den falschen hals und kotzt dann rum, dann gehts wieder ein paar mal und dann wieder zerhäckselt

die RS485 controller tausche ich jetzt nochmal aus, hatte anfänglich einen dabei, der ein problem hatte das potetial am DO auf high zu halten, der ist einfach zusammengebrochen, nachdem man die /RE auf high gezogen hat... folglich war das nächste empfangene byte schrott ... irgendwie hab ich das gefühl, dass es sich hier ähnlich verhält, aber irgendwie müsstren dann 2 kapuute bytes bei rauskommen oder ?

oder kann es sein, dass bei einem übertragungsfehler das RXC flag (uns error flags)gesetzt ABER das UDR mit KEINEN neuen daten belegt wird ? (ich sozusagen noch das byte vom letzten mal auslese ?)