closed

Loginbox

Please enter your username and password into the following fields to log in.


  • Username:
  • Password:
  •  
  • Auto log in on every visit.


  •  

XMEGA normalen Portpin als RS232 Ausgabe nutzen.



pvs-deck offline
PowerUser
Avatar
Gender: male
Location: GERMANY 
Age: 49
Posts: 1102
Registered: 02 / 2009
Homepage Private message
Subject: XMEGA normalen Portpin als RS232 Ausgabe nutzen.  -  Posted: 21.02.2020 - 10:50   -  
Hallo Leute,

ich hatte vor vielen (vielen) Jahren mal bei einem 8051 eine RS232 Ausgabe über einen normalen Port-Pin programmiert (damals in C). Gibt es beim AVRco was fertiges dazu? Software SerPort oder sowas, ich habe in der Doku nichts passendes gefunden.

Hintergrund dazu, ich habe bei meiner Steuerung 2x RS485 Ports vorgesehen, den einen für Ausweisleser und den zweiten als MODBUS-Schnittstelle.

Die ganze Zeit habe ich die Modbusschnittstelle dazu genutzt um beim Test und Debuggen Informationen auszugeben, jetzt aktiviere ich allerdings in der Firmware das Modbus, somit kann ich diese Schnittstelle nicht mehr dafür nutzen. Ich hatte beim ursprünglichen Design (XMEGA256A3AU) auf einen Expansion-Port eine TTL Ausgabe vorgesehen. PC6 und PC7 (SerPortC1), diese wollte ich dann später mit einen Adapter als Debuginformationsschnittstelle nutzen.

Durch die Umstellung nach den ersten Tests auf den XMEGA384C3 gibt es diese Schnittstelle aber so nicht mehr, der 384er hat diesen SerPortC1 nicht mehr. Mir geht es hier nur um eine einfache Textausgabe. Wenn es hier nichts fertiges gibt müsste ich es dann wieder per Hand machen inkl. des Timings für die Baudrate :-(

Für eine Möglichkeit den Treiber "Modbus" im laufenden Betrieb Ein/Auszuschalten und den Port anderweitig zu nutzen habe ich keine Möglichkeit gefunden. (übersehen?)

Thorsten
---------------------------------------------------------
Nichts ist unmöglich in der Elektronik und der Software, die Grenzen
setzt nur das Budget, Zeit und der Entwickler! ( P V S - D E C K )
This post has been edited 1-times. Last edit: 21.02.2020 - 18:57 by pvs-deck.
go down go up
Harry offline
PowerUser
Avatar
Gender: male
Location: GERMANY  zwischen Augsburg und Ulm
Age: 55
Posts: 1635
Registered: 03 / 2003
Private message
Subject: Re: XMEGA normalen Portpin als RS232 Ausgabe nutzen.  -  Posted: 22.02.2020 - 08:49   -  
Hallo Thorsten,

diesem Wunsch hatte ich vor ein paar Jahren auch schon mal und damals hies es 'Das geht nicht'. Ich weiß, daß es einen SoftUART für den (ich sag jetzt das böse Wort :D) Arduino gibt, aber das wird dir wohl nichts bringen.

Gruss
Harry
Elektronik arbeitet mit Rauch - wenn man den Rauch raus läßt, funktioniert es nicht mehr.
Electronics works with smoke - if you let the smoke out, it works no longer.
go down go up
Gunter offline
Administrator
Avatar
Gender: male
Location: GERMANY  Frankfurt Main / Germany
Age:
Posts: 1649
Registered: 02 / 2003
Private message
Subject: Re: XMEGA normalen Portpin als RS232 Ausgabe nutzen.  -  Posted: 22.02.2020 - 18:58   -  
Hallo Harry,
rechne mal aus:
10.000Bd mit 10Bit/Byte heisst, dass alle 10us der Port Pin gepollt werden muss.
Wie soll das bei einem MT System ohne Fehler ("Timeouts") gehen?
Gunter
2 Dinge sind unendlich: das Universum und die menschliche Dummheit.
Aber bei dem Universum bin ich mir noch nicht ganz sicher
--
Albert Einstein

---
The concept of global warming was created by and for the Chinese in order to make U.S. manufacturing non-competitive
--
Donald J. Trump on Twitter
This post has been edited 1-times. Last edit: 23.02.2020 - 00:09 by Gunter.
go down go up
rh offline
Administrator
Avatar
Gender: male
Location: GERMANY  Germany
Age:
Posts: 5496
Registered: 03 / 2002
Homepage Private message
Subject: Re: XMEGA normalen Portpin als RS232 Ausgabe nutzen.  -  Posted: 22.02.2020 - 22:35   -  
Sehr richtig !!!
Cars don't buy cars -- Autos kaufen keine Autos.
Henry Ford
go down go up
Harry offline
PowerUser
Avatar
Gender: male
Location: GERMANY  zwischen Augsburg und Ulm
Age: 55
Posts: 1635
Registered: 03 / 2003
Private message
Subject: Re: XMEGA normalen Portpin als RS232 Ausgabe nutzen.  -  Posted: 23.02.2020 - 07:51   -  
Hallo Rolf, hallo Gunter,

Thorsten schreibt "RS232 Ausgabe" ..... na merkt ihr was? :D

Schönen Sonntag
Harry
Elektronik arbeitet mit Rauch - wenn man den Rauch raus läßt, funktioniert es nicht mehr.
Electronics works with smoke - if you let the smoke out, it works no longer.
go down go up
rh offline
Administrator
Avatar
Gender: male
Location: GERMANY  Germany
Age:
Posts: 5496
Registered: 03 / 2002
Homepage Private message
Subject: Re: XMEGA normalen Portpin als RS232 Ausgabe nutzen.  -  Posted: 23.02.2020 - 15:00   -  
?????
Cars don't buy cars -- Autos kaufen keine Autos.
Henry Ford
go down go up
pvs-deck offline
PowerUser
Avatar
Gender: male
Location: GERMANY 
Age: 49
Posts: 1102
Registered: 02 / 2009
Homepage Private message
Subject: Re: XMEGA normalen Portpin als RS232 Ausgabe nutzen.  -  Posted: 23.02.2020 - 15:47   -  
Quote by Harry

Hallo Rolf, hallo Gunter,

Thorsten schreibt "RS232 Ausgabe" ..... na merkt ihr was? :D

Schönen Sonntag
Harry


Hallo Harry,

ja, mir gehts hier um die Ausgabe.

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

Quote
..digitalread/write scrapped in favor of direct port I/O. Revised routines now get perfect RX up to 57.6K on 16MHz processors and 31.25K on 8MHz processors.


arduiniana.org/libraries/newsoftserial

und

www.arduino.cc/en/Reference/SoftwareSerial

Thorsten
---------------------------------------------------------
Nichts ist unmöglich in der Elektronik und der Software, die Grenzen
setzt nur das Budget, Zeit und der Entwickler! ( P V S - D E C K )
go down go up
rh offline
Administrator
Avatar
Gender: male
Location: GERMANY  Germany
Age:
Posts: 5496
Registered: 03 / 2002
Homepage Private message
Subject: Re: XMEGA normalen Portpin als RS232 Ausgabe nutzen.  -  Posted: 23.02.2020 - 16:47   -  
Aber ohne Interrupts und MultiTasking !!!!
rolf
Cars don't buy cars -- Autos kaufen keine Autos.
Henry Ford
go down go up
Gunter offline
Administrator
Avatar
Gender: male
Location: GERMANY  Frankfurt Main / Germany
Age:
Posts: 1649
Registered: 02 / 2003
Private message
Subject: Re: XMEGA normalen Portpin als RS232 Ausgabe nutzen.  -  Posted: 23.02.2020 - 19:07   -  
Hi.
Quote by 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
2 Dinge sind unendlich: das Universum und die menschliche Dummheit.
Aber bei dem Universum bin ich mir noch nicht ganz sicher
--
Albert Einstein

---
The concept of global warming was created by and for the Chinese in order to make U.S. manufacturing non-competitive
--
Donald J. Trump on Twitter
This post has been edited 3-times. Last edit: 23.02.2020 - 19:24 by Gunter.
go down go up
golf offline
Benutzer
Avatar
Gender: male
Location: GERMANY  Donauwörth
Age: 66
Posts: 167
Registered: 11 / 2009
Private message
Subject: Re: XMEGA normalen Portpin als RS232 Ausgabe nutzen.  -  Posted: 23.02.2020 - 21:25   -  
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.
You must be logged in or your permissions are to low to see this Attachment(s).
This post has been edited 1-times. Last edit: 24.02.2020 - 03:07 by golf.
go down go up
golf offline
Benutzer
Avatar
Gender: male
Location: GERMANY  Donauwörth
Age: 66
Posts: 167
Registered: 11 / 2009
Private message
Subject: Re: XMEGA normalen Portpin als RS232 Ausgabe nutzen.  -  Posted: 25.02.2020 - 21:01   -  
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
You must be logged in or your permissions are to low to see this Attachment(s).
go down go up
golf offline
Benutzer
Avatar
Gender: male
Location: GERMANY  Donauwörth
Age: 66
Posts: 167
Registered: 11 / 2009
Private message
Subject: Re: XMEGA normalen Portpin als RS232 Ausgabe nutzen.  -  Posted: 26.02.2020 - 08:09   -  
Ich habe noch einen Fehler behoben, wenn Ausgabestrings zu schnell aufeinander folgen, dann darf der Timer nicht nochmal neu gestartet werden.

golf
You must be logged in or your permissions are to low to see this Attachment(s).
go down go up
pvs-deck offline
PowerUser
Avatar
Gender: male
Location: GERMANY 
Age: 49
Posts: 1102
Registered: 02 / 2009
Homepage Private message
Subject: Re: XMEGA normalen Portpin als RS232 Ausgabe nutzen.  -  Posted: 28.02.2020 - 11:35   -  
Quote by 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
---------------------------------------------------------
Nichts ist unmöglich in der Elektronik und der Software, die Grenzen
setzt nur das Budget, Zeit und der Entwickler! ( P V S - D E C K )
go down go up
golf offline
Benutzer
Avatar
Gender: male
Location: GERMANY  Donauwörth
Age: 66
Posts: 167
Registered: 11 / 2009
Private message
Subject: Re: XMEGA normalen Portpin als RS232 Ausgabe nutzen.  -  Posted: 28.02.2020 - 14:13   -  
Hallo Thorsten,
danke. ist sehr gerne geschehen.
golf
go down go up
 


Registered users in this topic
Currently no registered users in this section

Delete cookies of this forum  •  FAQ / Help  •  Team page  •  Imprint   |  Local time: 01.06.2020 - 03:34