Hallo. Ich arbeite an der Kommunikation zwischen DE1-Altera board und Laptop via RS232 Protocol. Soweit so gut. Das Programmierteil scheint zu funktionieren. Auf jedem Fall lese ich direkt am RS232 Port die richtige Signale aus(mit meinem beliebten LogicSniffer:http://www.watterott.com/de/Open-Logic-Sniffer ;) Aber sobald ich den Signal am Laptop betrachte, sehe ich zwei Sachen: Aus 1 wird 0 und umgekehrt. Das MSB wird zu LSB, LSB wird entsprechend zu MSB. In anderen Worten wird aus (Altera DE1)"01101101"-->>"01001001"(Laptop) Ist das normal so? Habe ich was vergessen? Damit kann ich noch im Prinzip leben, muss nur entsprechend die Daten spiegeln und negieren. Was mich noch sorgen macht, dass selbst nach spiegeln und negieren in 95% der Fälle anstatt "00000001" eine "01000000" an der Laptopseite gesehen wird. Ich habe den Signal wieder an Altera Seite mit LogicSniffer nachgeprüft, der Sniffer sieht aber immer die richtige 1 und nie 64 (dec). Was noch wichtig ist: Mein Laptop hat keinen RS232 Anschluss, deswegen verwende ich einen "guten" RS232 to USB Converter. Liegt es vllt an ihm das solche Spiegelungen,Negation und falsche "1" auftretten? Oder mache ich was falsch? Frohes Neues, Anton.
Mach mache auch viel RS232 mit auch hohen Baudraten und habe das immer so: im FPGA stelle ich mir Bytes zusammen und die schiebe ich dann seriell auf den TX Pin der zum Pegelwandler geht. Byte XXXX XXXX Seriell 0 XXXX XXXX 1 für 8N1 Und dann in den PC rein mit RS232 Adapter, und Realterm/Cutecom. Die Bits sind zwischen Pegelwandler und RS232-USB-Adapter invertiert. Also wann du dazwischen das anguckst siehst du was falsches, also das Invertierte. Ich lasse das mit den Pegelwandlern weg und gebe die Seriellen Signale gleich mit 921600 Baud auf einen FPGA-IO der dann direkt zu dem RX Pin am CP2102 geht. Der CP2102 ist ein ziemlich guter USB-UART, der bekommt die Signale im TTL/CMOS-Pegel und gibt die über USB aus. So spart man sich die Pegelwandler. Ich empfehle für hohe Baudraten eigentlich nur den CP2102, viele andere Steine wie der PL2303 können das laut Datenblatt zwar auch, schaffen es aber nur sehr kurzzeitig. Aber so wie du das machst solle es auch gehn, wenn du beachtest, dass die Bits zwischen den Pegelwandlern invertiert sind.
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.