Ich habe an meinem Z80 Rechner eine V24 Schnittstelle dran, die an einer PIO hängt. Die Signale CTS/RTS/TxD und RxD gehen jeweils über einen MAX232 an die PIO und ich habe bei der Kopplung meines PC mit der Z80 auch beachtet, das ich TxD und RxD sowie CTS und RTS über kreuz verbinden muss. Die Verbindung und die Software funktioniert auch mit USB/RS232-Konverter und UM2102 Modul !! Mein Problem ist nun, das ich zwar einwandfrei senden kann, aber das Einlesen in den Z80 vom echten (also nicht über Adapter) PC COM-Port nicht richtig funktioniert. Die Einstellunge am Terminalprogramm (Hterm) passen ! Wie gesagt mit USB Adapter funktioniert das prima ! Ich habe den Verdacht, das ich das RTS zu einem für den PC falschen Zeitpunkt wieder deaktivierte, um das korrekt empfangene Zeichen zu verarbeiten, denn die folgenden Zeichen werden irgendwie verhunzt.. Wer weiß WANN bzw. zu welchem Zeitpunkt RTS deaktiviert werden muss ? Bisher deaktiviere ich das RTS direkt nach dem Erkennen des Startbits. Danke sagt Ralph
Ralph H. schrieb: > Bisher deaktiviere ich das RTS direkt nach dem Erkennen des Startbits. Das ist erheblich zu früh. Das solltest Du erst nach dem vollständigen Empfangen eines Bytes tun, also frühestens nach dem ersten Stopbit.
http://de.wikipedia.org/wiki/Nullmodem-Kabel#Aufbau_eines_Standard-Nullmodem-Kabels_mit_9-poligen_D-Sub-Buchsen Da müssen noch mehr Handschüttel-Leitungen verbunden werden! mfg mf
Rufus Τ. Firefly schrieb: > Ralph H. schrieb: >> Bisher deaktiviere ich das RTS direkt nach dem Erkennen des Startbits. > > Das ist erheblich zu früh. Das solltest Du erst nach dem vollständigen > Empfangen eines Bytes tun, also frühestens nach dem ersten Stopbit. Hm.. das hab ich auch schon probiert, es ändert nichts, sorgt nur dafür, dass die USB-RS232 Konverter nicht mehr funktionieren, wobei das erstma wurscht wäre. Zitat Wikipedia "Für die einfachste Variante eines Nullmodem-Kabels, das Hardware-Handshake unterstützt, genügt es, RxD mit TxD und RTS mit CTS jeweils zu kreuzen und eine Masse-Verbindung herzustellen" Genauso hab ich das ! Das sollte doch langen ?!
Handshake im Terminalprogramm am PC auch aktiviert? Sonst sendet der PC, bevor der Z80 überhaupt bereit ist, was zu empfangen. mfg mf
Na klaro :-) Ich hab sogar in den Einstellungen des COM Ports alles möglich probiert. Ob mit oder ohne UART Puffer etc... Das Terminalprogramm erkennt ja RTS und hält an bzw. startet. Der Start für das 1.Zeichen klappt auch immer. Nur wann der PC anhält ist mir unklar. Aktuell hab ich probiert, einmalig ne Bytefolge 55 AA 00 FF zu senden und an meinem Z80 lasse ich mir jedes Zeichen einzeln anzeigen und quitiere das mit ner Taste. Es wird jedesmal nur das 1.Byte am Z80 eingelesen. Es sieht so aus, als würde der PC das RTS viel zu spät erst erkennen.
Ich hab grad noch beim Suchen einen Thread von 2008 entdeckt, wo schon jemand das Problem ähnlich hatte. Dort war es wohl so, das der PC auch weiter einen Puffer geleert hat. Aber da ist doch das ganz Handsahke für die Katze wenn dann trotz STOP noch Daten ankommen. Ich kann mir kaum vorstellen das dies so sein sool. Komisch ist, bei den Konvertern klappt es doch auch prima. Kann es sein, das dies mal ein BUG in WindoDof war der heimlich still und leise behoben wurde ?
>Komisch ist, bei den Konvertern klappt es doch auch prima. Kann es sein, >das dies mal ein BUG in WindoDof war der heimlich still und leise >behoben wurde ? Nein, kein Bug. Das liegt an der Hardware. UART Chips haben einen FIFO damit es zügiger geht. Es kann also sein das nach deinem setzen der Handshakeleitung noch so ca. 16 Bytes aus dem FIFO kommen.
>Es kann also >sein das nach deinem setzen der Handshakeleitung noch so >ca. 16 Bytes aus dem FIFO kommen. Hab gerade noch mal nachgesehen: Im Gerätemanager kann man die FIFO Grösse der COM Ports einstellen.
Hallo, richtig, der UART des PC macht seinen Puffer leer, das ist in Hardware. Dazu kommt noch die Reaktionszeit auf das Handshake-Signal im PC, das ist Software. Der Empfänger muß genügend empfangene Zeichen puffern bzw. zeitig genug vor Pufferende stoppen. Das war auch zu Zeiten des Z80, der SIO usw. so, nur die Puffer waren eben kleiner. Gruß aus Berlin Michael
Danke für Eure Mühen, aber ich schrieb ja das ich bereits den UART FIFO Puffer abgeschaltet habe und deshalb der Puffer also nicht mehr wirken sollte. Wo sind denn noch Puffer? Auch geht ja die ROutine mit den USB KONVERTERN ! Das RTS kann eigentlich maximal ZU FRÜH kommen, denn zur Zeit wird es sofort nach Erkennen des Startbits deaktiviert ! Das Zeichen wird ja korrekt eingelesen.
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.