Hi, hat vielleicht jemand ein Oszillogramm eines Datenbytes, ganz normal transferiert mit 8N1 über eine AVR-UART? Bislang hatte ich mit seriellen Übertragungen kein Problem und selbst diesmal funktioniert immerhin ein Bootloader via UART- aber dann -> siehe Bild. Ist es normal dass so ein schmaler Impuls (erreicht 5V Level) die Übertragung einleitet? Und dann dieses komische Impuls-Doppel kurz vor Ende. Jedenfalls funktioniert prompt der PC-Empfang nicht- und ich bin mit meinem Latein am Ende. Tom
Es ist nicht normal. Der Ruhepegel auf einer TXD-TTL Leitung ist 5V. Das Startbit zieht den Pegel von HIGH nach LOW. Das sehe ich in deinem Bild überhaupt nicht. Hast du vielleicht einen Pulldown oder einen anderen Verbaucher an der TXD-Leitung? Also die klassische Frage nach dem Schaltplan... Tipp: Bei solchen Fragen ist es nützlich, wenn man als Datenbyte bekannte Bitmuster sendet und versucht diese Bitmuster im Oszillogramm wieder zu finden. RS232
Ja, ich werde mal nur ein einziges Byte senden und das noch mal mit meinem Oszi unter die Lupe nehmen. Das Übertragen von Daten vom PC zum Controller funktioniert übrigens problemlos, nur wenns ums Senden von Daten geht stehe ich nach wie vor vor einem Mysterium. Am PC kommt nur Müll an. Langsam glaube ich schon fast an einen Serienfehler des Mega168 :) Eine ähnliche Schaltung mit Mega48 (gleiche Soft) funktioniert nämlich, zwischengeschaltet ist jetzt nur noch das RS232-Interface. Da habe ich aber auch schon mehrere und mit unterschiedlichen Maxxen probiert. Tom
P.S. Zum Schaltplan gibts nicht viel zu sagen- RX/TX sowie der PC hängen an der Standardbeschaltung des MAX232, nichts weiter.
TomB schrieb: > Langsam glaube ich schon fast an einen Serienfehler > des Mega168 :) Eine ähnliche Schaltung mit Mega48 > (gleiche Soft) funktioniert nämlich, Hmm. Ein gern gemachter Fehler ist die Annahme, dass alle Bits in den Steuerregistern an den gleichen Stellen sitzen. Solange man immer nur auf einem bestimmten Typ arbeitet, wirkt sich das nicht aus. Sobald man aber den Typ wechselt, kommt es zu seltsamen Phänomänen. Besonders die vermeintlich clevere Zusammenfassung der Konfigurationsbits in eine Hex-Zahl präsentiert sich dann alles andere als clever. Schon mal in die Richtung geforscht?
Zumindest dran gedacht. Lt. Datenblatt ist der Unterschied zwischen Mega48-168 außer den Speichergrößen doch nur der rjmp- bzw. jmp-Befehl in der Interrupttabelle, soweit mir bekannt !? Hier übrigens noch ein Bild davon. Ist eine kleine Live-Anzeige + Datenlogger für serielle Daten. Wenn es mir irgendwann gelingen sollte, Daten unbeschädigt raus zu senden kommt das Projektl in die Codesammlung, versprochen :) Tom
> Zum Schaltplan gibts nicht viel zu sagen- RX/TX sowie der PC hängen > an der Standardbeschaltung des MAX232, nichts weiter. Wie ist der Controller getaktet? Für UART-Kommunikation ist ein Quarz (am besten Baudratenquarz) eigentlich Pflicht ...
Getaktet mit 14,7456 MHz Quarz, im Baudratenregister steht die 95 für 9600er Geschwindigkeit. Wiegesagt, beim Empfang gibts kein Problem.
Wenn ich das Oszillogramm richtig interpretiere, schickst du da 8 Byte. Das erste und das letzte sind 0x01, die anderen 0x00. Vor und nach der Übertragung ist der Transmitter abgeschaltet und es wird Low-Pegel ausgegeben, eben das, was im PORT-Register steht und nicht der Stop-Pegel. Oder die Tx-Leitung wird zum Input und hat einen Pull-Down. Die kurzen Peaks sind die Stop-Bits! Am Anfang wird der Transmitter angeschaltet, kurz Stop-Pegel ausgegeben und dann das erste Byte ausgegeben. Also ein Low-Startbit, Bit0=1 und dann Nullen. Falls es das ist, was du schicken möchtest, ist alles in Ordnung, bis auf das Abschalten des Transmitters.
"Abschalten des Transmitters" - Danke, das war das Stichwort! Den hatte ich im UDR-Empty Interrupt mit Beendigung dessselben gleich mit ausgeknippst! Interessant daß das bisher die UART- Kommunikation auf TTL-Ebene (in erwähnter Mega48 Schaltung) nicht beeinträchtigt hat- die Übertragung über ein RS232-Interface dafür um so mehr. 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.