Hier ein Projekt von mir, ein RS232 Datenlogger Zwei Tiny2313 schreiben jeweils von RxD und TxD den Datenstrom mit. Sie geben Ihre Daten parallel an einen Mega32 weiter, dieser notiert die Daten jeweils mit einem Zeitstempel im Millisekundenraster und bereitet sie Mundgerecht auf. Sie werden dann über eine dritte RS232 die fest auf 19200 8N1 steht an ein Terminal gesandt, hier bietet sich ein PC mit Terminal zum Loggen und Bedienen an. Es stehen zwei Modi, HEX/ASCII, für die Daten zu Auswahl. Nicht druckbare Zeichen werden im ASCII-Modus als Hexwerte dargestellt. Des weiteren kann ein weiterer Mode, Alternate/Single Timestamp, gewählt werden. Im Single-Mode siehet es z.B. dann so aus : <00001:t><00002:e>[00002:s] oder <00001:54><00002:45>[00002:53] Im Alternate-Mode so <00001> t e s t 0D [00006] e c h o 0D 0A hier wird so lange ohne Timestamp ausgegeben bis der andere Kanal Signale zeigt. Dann erscheint eine neue Zeile mit Timestamp. Die beiden Modi lassen sich kombinieren. Die letzten gewählten Einstellungen werden im EEPROM gespeichert und beim nächsten Einschalten wieder geladen. Hier noch Kurz der Hilfetext der SW sowie die Komandos: über '?' oder falsches Komando zu erreichen T - Altenate Timestamp Mode <00001> t e s t 0D ... S - Single Timestamp Mode <00001:t><00002:e>.... A - ASCII Mode H - HEX Mode M - Mode ausgeben <> = Kanal 1 C - Clear Timer [] = Kanal 2 B - Baudrate Frontend 75 .. 115200 Baud W - Zeichenlaenge Frontend 5 .. 8 Bit X - Reset Frontend ( Tiny2313 ) Alle Unterlagen im ZIP-Archiv HW und SW. Viel Spaß an die Bastler Tom
Das kam gerade passend, ich hab dafür ein Leiterplatte in SMD und USB-Abschluss passend für eine kleine Strapu-Box geroutet. Wenn das fertig ist ergänze ich das Projekt hier entsprechend. Christian
Coole Sache, etwas in der Art könnte ich auch immer mal gebrauchen. Trotzdem ein paar Fragen dazu ;) - Wenn die UART vom "großen" AVR nur mit 19.200 Bauf läuft, wie loggst du dann an RS232s mit Baudraten >4800 Baud? Die geloggten Daten von 2 Kanälen plus Timestamp müssen ja auch erstmal seriell raus gestrudelt werden... - Wie werden die beiden kleinen AVRs geflasht? Hab ich da einen ISP übersehen? - Kann man die Baudrate und Parity-Bit der mitzuloggenden Daten zur Laufzeit irgendwo einstellen? - Wieso machst du die RS232 Pegelanpassung per Transistor, wäre ein MAX232/MAX3232 nicht einfacher (und spec-konformer)? Oder gleich ein FT232 mit einer virtuellen Baudrate >>115.200 Baud ;) Ich hatte so etwas ähnliches auch schonmal im Sinn aber mangels Zeit nicht weiter verfolgt. Da war dann aber ein dicker STM32 mit 2 UARTs und Hardware USB eingeplant. Mit dem CDC-Beispiel von ST sollte ein virtueller COM-Port nicht so kompliziert zu machen sein. Außerdem schwebte mir noch ein Timer-Input vor, um so etwas wie ein Autobauding zu realisieren...
@Hmm... >- Wenn die UART vom "großen" AVR nur mit 19.200 Bauf läuft, wie > loggst du dann an RS232s mit Baudraten >4800 Baud? Die geloggten > Daten von 2 Kanälen plus Timestamp müssen ja auch erstmal seriell > raus gestrudelt werden... aus bisherigen praktischen Erfahrungen läuft die RS232 Komunikation nicht mit Dauersendung, sondern es kommen 2..20 Zeichen im Burst und eine große Pause. Im Mega 32 gibt es einen 450 Einträge großen Buffer der das ganze entzerrt. So ist selbst bei 200 Zeichen und 115K2 noch Luft, es hat für meine Messung immer gereicht. > - Wie werden die beiden kleinen AVRs geflasht? Hab ich da einen ISP > übersehen? Die habe ich extern Programmiert.... > - Kann man die Baudrate und Parity-Bit der mitzuloggenden Daten zur > Laufzeit irgendwo einstellen? Ja es gibt zwei Befehle über die Schnittstelle zum Terminal. B - Baudrate Frontend 75 .. 115200 Baud W - Zeichenlaenge Frontend 5 .. 8 Bit > - Wieso machst du die RS232 Pegelanpassung per Transistor, wäre ein > MAX232/MAX3232 nicht einfacher (und spec-konformer)? Oder gleich ein > FT232 mit einer virtuellen Baudrate >>115.200 Baud ;) Hat sich als praktisch erwiesen, funtioniert gut, ist billig. MAX232 ist soweit ich weiß auch nicht (spec-konform) er akzeptiert auch 0V als Eingangspegel und nicht -3V wie laut Norm. Außerdem würde man zeiw MAX232 brauchen, oder einen seltenen mit mit drei Eingängen und einem Ausgang. Falls ich das ganze nochmal angehen sollte ist mein Favorit ein X_MEGA_32 mit fünf USART's und USB, aber da diese Kiste gut läuft, ist das nur eine Idee Gruß tom
Hallo Bastler, Hier mal der RS232 Logger auf einen X Mega 32A4 portiert, gibt es bei R für 4,30 €. Die Eingänge sind hier per Optokoppler isoliert, arbeiten bis 115200 Baud sicher. Eingangsstrom etwa 1 mA, mit JFET Stromsenke bis 30V. Der Ausgang geht über einen FT232 mit 57600 Baud als virtueller COM-Port. Der Zeitstempel ist jetzt intern mit 23-Bit und ermöglicht 1 ms Raster bis 2,3 Std im Format a:bb:cc:ddd a : Stunden 0..2 bb : Minuten 00..59 cc : Sekunden 00..59 ddd : hundertstel Sekunden 000..999 Viel Spaß tom
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.