XMEGA normalen Portpin als RS232 Ausgabe nutzen.

  • 1
  • 2
  • Seite 2 von 2
Gunter
Administrator
Avatar
Geschlecht:
Herkunft: Frankfurt Main / Germany
Beiträge: 1697
Dabei seit: 02 / 2003
Betreff:

Re: XMEGA normalen Portpin als RS232 Ausgabe nutzen.

 · 
Gepostet: 23.02.2020 - 19:07 Uhr  ·  #9
Hi.
Zitat geschrieben von pvs-deck
In den Arudino Software RS232 Lösungen werden Interr. vom PortChange usw. genutzt, dann sind bei einem 16MHz Gerät ohne Probleme ReadRX mit 57.6k möglich

klar ist das mit heutigen CPUs problemlos machbar.
Für die StartBit Erkennung bietet sich natürlich auch ein Change Interrupt an.
Aber für die Daten MUSS dann ein striktes Timing eingehalten werden und
da geht dann nur irgendeine Zeitmessung. Vielleicht ein Timer INT oder Delays.
(@Harry: das gilt auch für das Senden. Der Empfänger muss sich auf das korrekte Timing ja verlassen können)
Entweder macht die CPU sonst nichts anderes oder alle weitere Software ordnet
sich unter und wird dann nur während "Idle Perioden" mal abgearbeitet.

Nicht umsonst gab es schon seit den Urzeiten mit Z80/8080, 6502 gleich auch
externe UARTs der gleichen Familie, die dann bis in PC Zeiten viele Jahre lang
üblich waren.

Gunter
golf
Benutzer
Avatar
Geschlecht:
Herkunft: Donauwörth
Alter: 72
Beiträge: 266
Dabei seit: 11 / 2009
Betreff:

Re: XMEGA normalen Portpin als RS232 Ausgabe nutzen.

 · 
Gepostet: 23.02.2020 - 21:25 Uhr  ·  #10
Ich hab mal auf die Schnelle etwas aus einem bzw 2 anderen Projekten kopiert, siehe Anhang.
Zum Test hab ich über den normalen Serport Daten empfangen und über die SoftSerial die Daten wieder zum PC gesendet mit z.b. 115200 Bd. Das ging bei mir einwandfrei.
Das ginge bestimmt auch viel einfacher, aber so wars halt gerade verfügbar.

golf

ich hab gerade gesehen, daß da was falsches steht bei dem Beispiel.
{
// bei den normalen ATXmegas wäre das z.b.
TCD0PERL := $68; // PERL - Period Register L Bite 7..0
TCD0PERH := $30; // PERH - Period Register H 15..8
TCD0CTRLA := $02; // 3..0 Clock.select Prescaler 03= Clk/4 04: clk/8 05: clk/64 06: clk/256 07 : clk/1024
TCD0INTCTRLA := $02;
}
das muss natürlich für 9600 bd heissen: TCD0PERL := $30; TCD0PERH := $68; wie weiter oben geschrieben. Getestet hab ich nur die 115200 Bd. Andere Baudraten wären ja leicht anpassbar.

Die Stringgrößen und Arrays sollten evtl je nach den zu erwarteten Daten angepasst werden.
Der an diesem Beitrag angefügte Anhang ist entweder nur im eingeloggten Zustand sichtbar oder die Berechtigung Deiner Benutzergruppe ist nicht ausreichend.
golf
Benutzer
Avatar
Geschlecht:
Herkunft: Donauwörth
Alter: 72
Beiträge: 266
Dabei seit: 11 / 2009
Betreff:

Re: XMEGA normalen Portpin als RS232 Ausgabe nutzen.

 · 
Gepostet: 25.02.2020 - 21:01 Uhr  ·  #11
Ich habe das SoftSerial noch etwas gekürzt und etwas schneller gemacht. Für 1 Bit werden aber immer noch 4 µsec verbraucht (3,6 bei optimize).
Die auszugebenden Zeichen ( Strings) werden wie bisher in einem Array gesammelt und über Timerinterrupts ausgegeben.

golf
Der an diesem Beitrag angefügte Anhang ist entweder nur im eingeloggten Zustand sichtbar oder die Berechtigung Deiner Benutzergruppe ist nicht ausreichend.
golf
Benutzer
Avatar
Geschlecht:
Herkunft: Donauwörth
Alter: 72
Beiträge: 266
Dabei seit: 11 / 2009
Betreff:

Re: XMEGA normalen Portpin als RS232 Ausgabe nutzen.

 · 
Gepostet: 26.02.2020 - 08:09 Uhr  ·  #12
Ich habe noch einen Fehler behoben, wenn Ausgabestrings zu schnell aufeinander folgen, dann darf der Timer nicht nochmal neu gestartet werden.

golf
Der an diesem Beitrag angefügte Anhang ist entweder nur im eingeloggten Zustand sichtbar oder die Berechtigung Deiner Benutzergruppe ist nicht ausreichend.
pvs-deck
PowerUser
Avatar
Geschlecht:
Alter: 54
Beiträge: 1344
Dabei seit: 02 / 2009
Betreff:

Re: XMEGA normalen Portpin als RS232 Ausgabe nutzen.

 · 
Gepostet: 28.02.2020 - 11:35 Uhr  ·  #13
Zitat geschrieben von golf

Ich habe noch einen Fehler behoben, wenn Ausgabestrings zu schnell aufeinander folgen, dann darf der Timer nicht nochmal neu gestartet werden.

golf


Hallo golf,

klasse :-) Das werde ich mir mal genau ansehen, ist genau das was ich benötige.
Danke

Thorsten
golf
Benutzer
Avatar
Geschlecht:
Herkunft: Donauwörth
Alter: 72
Beiträge: 266
Dabei seit: 11 / 2009
Betreff:

Re: XMEGA normalen Portpin als RS232 Ausgabe nutzen.

 · 
Gepostet: 28.02.2020 - 14:13 Uhr  ·  #14
Hallo Thorsten,
danke. ist sehr gerne geschehen.
golf
  • 1
  • 2
  • Seite 2 von 2
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 15 · Cache Hits: 14   111   125 · Page-Gen-Time: 0.02546s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI