Hallo,
ich habe eine Frage zur seriellen Schnittstelle. Kurz zum Kern des Problems: Ich möchte gerne über ein Pascal Programm eine Eingabe über die Serielle Schnittstelle an einen Arduino senden -> Das funktioniert leider nicht. Weder aus der Ebene des Programms noch auf OS Ebene bekomme ich eine Kommunikation zustande. Über Kermit klappt dies an COM1 aber sehr gut. Die Parameter und Verkabelung stimmen also. Kann es sein, dass ich noch eine Rechtefreigabe benötige, oder das Kermit mit RX/TX und GND zufrieden ist, Pascal/OS aber auch die anderen Leitungen benötigt? Vielleicht hat jemand die passende Lösung parat, ich würde mich sehr freuen, da das Projekt eigentlich nächste Woche auf der MakerFaire in Hannover stehen sollte ;)
Besten Gruß
Jörg
Ich nutze einen P1 133MHz, der Port 3F8 ist im Bios "frei" geschaltet. Als OS kommt FreeDOS 1.04 zum Einsatz
Probleme mit der Seriellen Schnittstelle, COM1 <-> Arduino
- Dark_Lord
- CONFIG.SYS-Autor
- Beiträge: 251
- Registriert: So 25. Mai 2008, 19:44
- Wohnort: Nähe Köln
- Kontaktdaten:
Re: Probleme mit der Seriellen Schnittstelle, COM1 <-> Arduino
Hast du die serielle Schnittstelle direkt an den Arduino angeschlossen? Dann kann es sein, dass das Ding jetzt hinüber ist.
Der Arduino hat zwar eine RS232-protokollkompatible Schnittstelle, nutzt aber TTL-Pegel. Die RS232-Schnittstelle als Solches, auch beim PC, hat aber einen Differentialpegel mit +/-12V. Du benötigst einen MAX232 als Pegelübersetzer.
Ansonsten muss natürlich die Baudrate passen, sonst kommt entweder nichts oder nur Schrott an. Heißt, was immer du im Arduino aufgesetzt hast, muss auch an der PC-Schnittstelle konfiguriert sein. Das sollte nicht als "gottgegeben" vorausgesetzt werden, Kermit wird mit Sicherheit die Parameter wie von dir konfiguriert setzen, in Pascal muss die Schnittstelle natürlich entsprechend konfiguriert werden, bevor du Daten darauf raus gibst.
Der Arduino hat zwar eine RS232-protokollkompatible Schnittstelle, nutzt aber TTL-Pegel. Die RS232-Schnittstelle als Solches, auch beim PC, hat aber einen Differentialpegel mit +/-12V. Du benötigst einen MAX232 als Pegelübersetzer.
Ansonsten muss natürlich die Baudrate passen, sonst kommt entweder nichts oder nur Schrott an. Heißt, was immer du im Arduino aufgesetzt hast, muss auch an der PC-Schnittstelle konfiguriert sein. Das sollte nicht als "gottgegeben" vorausgesetzt werden, Kermit wird mit Sicherheit die Parameter wie von dir konfiguriert setzen, in Pascal muss die Schnittstelle natürlich entsprechend konfiguriert werden, bevor du Daten darauf raus gibst.
Arbeitspferde: Xeon E5-2683v3 und Q6600
Retro:
P2-450
Commodore PC20-II/Tandy Sound
286/ET3000/Aztech NX-II
Amiga 500/Gotek/Vortex AT-once Plus 286
Pentium 166/FAST Video Machine
Projekt-PCs: C64, Dual Pentium MMX 233, 486 VLB, 486 PCI, K6, Athlon 64
Projekte: USB RetroArduInput
Retro:
P2-450
Commodore PC20-II/Tandy Sound
286/ET3000/Aztech NX-II
Amiga 500/Gotek/Vortex AT-once Plus 286
Pentium 166/FAST Video Machine
Projekt-PCs: C64, Dual Pentium MMX 233, 486 VLB, 486 PCI, K6, Athlon 64
Projekte: USB RetroArduInput
Re: Probleme mit der Seriellen Schnittstelle, COM1 <-> Arduino
Ja, ich habe einen MAX 232 als Pegelwandler dazwischen und die Parameter hatte ich mit Mode auf 9600,n,8,1 gesetzt, am Ardujno sind ebenfalls 9600 Baud als Übertragungsgeschwindigkeit gesetzt. Ich hatte es auch schon mit anderen Baudraten getestet, aber alles ohne Erfolg :(
Wenn ich eine Eingabe über >Copy con com1
Tätige bekomme ich als Fehlermeldung :
Fehler beim Lesen von Gerät COM1: Allgemeiner Schreibfehler
Gibt es unter Freedos sowas wie eine Rechtevergabe? Vielleicht bin ich als User ja nicht in der richtigen Gruppe, dann dürfte das ja mit Kermit auch nicht laufen...
Wenn ich eine Eingabe über >Copy con com1
Tätige bekomme ich als Fehlermeldung :
Fehler beim Lesen von Gerät COM1: Allgemeiner Schreibfehler
Gibt es unter Freedos sowas wie eine Rechtevergabe? Vielleicht bin ich als User ja nicht in der richtigen Gruppe, dann dürfte das ja mit Kermit auch nicht laufen...
Re: Probleme mit der Seriellen Schnittstelle, COM1 <-> Arduino
Ich konnte das Problem beheben. Die Steuerleitungen wollen bedient werden, werden aber durch den MAX232 IC invertiert, dies hatte ich in der Programmierung nicht bedacht. Nun läuft es wie es soll :)
Beste Grüße
Jörg
Beste Grüße
Jörg