Hallo, ich will mich an ein bestehendes Sensor System dran klemmen und habe da ein paar Probleme. Der ganze UART kram läuft mit ca. 460kbit, das ist aber nicht das Problem! Das original System macht sozusagen 3,5 Stoppbits, also es gibt eine Pause zwischen den gesendeten Bytes. Nach kurzem nachdenken kommt man drauf das man am besten per DMA mit Timerevent sendet. Hat den Vorteil das man nicht ständig im UART int steckt. Ich muss 128 Byte pro MSG senden und dann auf IN umschalten (RS485)! Jetzt aber mein Problem: Ich stelle den Timer und den DMA (128Byte) ein sowie den DMA ende Int. Dann sende ich das erste Byte und starte den Timer. allerdings wenn ich das letzte Byte gesendet habe wird noch eins gesendet. Leider kommt das immer schon raus bevor ich den DMA Ende Int bekomme und die Richtung umschalte. Also, wie kann man die 128byte senden mit dem DMA über timer und am ende sauber die Richtung vom RS485 Bus drehen? VG, Uli
Uli schrieb: > Also, wie kann man die 128byte senden mit dem DMA über timer und am ende > sauber die Richtung vom RS485 Bus drehen? Man sende 127 Bytes mit DMA. Im DMA Interrupt macht man den UART TXC (TX Complete) Interrupt an und sendet das letzte Byte. Im TXC Handler wird dann der RS485 Bus umgeschaltet. Es gibt µC die RS485 Umschaltung in Hardware können, z.B. EFM32 (USART) und LPC17xx (UART1). Dort sind solche Kopfstände nicht nötig.
:
Bearbeitet durch User
Also doch umständlich, ich hatte es schon befürchtet. Aber immer noch besser als alles im TX Int zu machen. Hardware nützt nicht wirklich was, da ich ja diese blöde Pause zwischen den Bytes rein bauen muss. Der Entwickler von dem System hat sich wohl was dabei gedacht, nur was? Ich hatte es mal mit 2 Stoppbits als Pause probiert-> ging nicht. Es müssen wirklich 3,5 sein, ach da kann man nun lange über ein fremdes System nachdenken. Ist vielleicht eine Art Kopierschutz vom Hersteller. VG, Uli
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.