Gast
#2826335
Moin moin, ich versuche gerade über RS485 eine Kommunikation zwischen einem FT232R und einem ATMEGA8 aufzubauen. Der FT232R agiert als Master. Als Treiber verwende ich auf beiden Seiten den SN75176. Übertragungsgeschwindigkeit: 250kBaud. Abschlusswiderstände genau wie hier beschrieben: http://www.mikrocontroller.net/articles/RS-485 Wenn ich vom Mikrocontroller einen String sende, kommt beim Empfänger manchmal das letzte Zeichen gar nicht an oder ein völlig falsches Zeichen wird angezeigt. Meine Sende-Funktion sieht so aus:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
Ich habe schon jeweils eine kurze Wartezeit eingefügt, bevor der Treiber über den Pin PD2 auf Senden bzw. zurück auf Empfangen gestellt wird. Ohne Wartezeit kommt das letzte Zeichen immer falsch an. Wähle ich die Wartezeit am Ende der Funktion zu groß, kommt das letzte Zeichen auch immer falsch an und wird manchmal auch noch zwei- dreimal wiederholt. Die while-Schleife mit TXC hat komischerweise keine Auswirkung auf das Ergebnis. Ich hoffe ich habe alle wichtigen Details genannt damit mir jemand sagen kann was ich falsch mache und wie ich auch das letzte Zeichen korrekt übertragen kann. Vielen Dank schon mal an alle hilfreichen Antworten. Gruß Thorben
