Hallo, ich habe einen ATmega162L (die Low-Voltage-Version, max. 8 MHz) mit 4MHz-Quarz und RS-232 via MAX-232, Verbindung wie im UART-Tutorial. Alles funktioniert soweit, aber ich bekomme die serielle Verbindung nur bis max. 19200 zum laufen, schneller geht nix. Im Datenblatt zum 162 sind aber für 4MHz max. 252kbit/s angegeben. Das RS-232-Kabel ist micht übermäßig lang (knapp 2m); geschirmt ist es auch (ist eine RS-232-Leitung eines anderen Geräts). Any hints? Danke, Sebastian
Hallo, laut Datenblatt beträgt der Fehler für Baudraten >19k2 mehr als 2%. Für eine zuverlässige RS232-Übertragung ist aber ein Fehler von <2% erforderlich. Nimm ein Quarz mit 3.6864MHz oder 7.3728MHz, dann müßte es funktionieren. Viel Erfolg. Gruß Thorsten
Hast Du Dir im Datenblatt auf Seite 190 die "Examples of Baud Rate Setting" angeschaut? Dort steht drin, daß man mit einem 4MHz Quarz keine der üblichen Baudraten so richtig trifft. Ein Fehler von 0,2% ist normalerweise ok, aber der Fehler sollte 2% nicht übersteigen. Bei den Datenblättern der anderen Chips (z.B. ATMega8) sind die gültigen Baudraten in Fettschrift angegeben. Wenn Du U2X auf 0 gesetzt hast, dann ist bei 19200bps schluß, bei U2X=1 bei 38400. Darüber hinaus werden die Fehler so groß, daß keine Verbindung mehr zustande kommt. 250kbps und 500kpbs wären dann wieder ohne Fehler, aber das können die wenigsten Gegenstellen; ein PC kann es jedenfalls nicht. Abhilfe: a) Setzt U2X auf 1, dann kommst Du immerhin auf 38400bps. b) Benutz einen anderen Quarz, z.B. einen mit 3,686411 MHz. Markus
Hallo allerseits, danke für die Tipps, das hatte ich natürlich überlesen... Mal sehen, wie ich mich aus der Affäre ziehe; einen 3,686er Quarz habe ich gerade nicht da, und eigentlich brauche ich die RS-232 ja nur zum debuggen. Erstmal werde ich es mit einem 1.8432er probieren; ich hoffe nur, daß das Ganze dann nicht insgesamt zu langsam wird (zum Testen sollen aber eigentlich nur die empfangen Bytes "durchgereicht" werden, das sollte passen). Gruß, Sebastian PS: Tolles Forum hier, besonders das Tutorial gefällt mir sehr. Evtl. noch um ein paar C-Beispiele ergänzen - nicht jeder mag gleich in Assembler loslegen!
Hallo nochmal, mit dem 1.8432 klappt's tatsächlich mit 115200 auf Anhieb. Wenn ich jetzt noch den Programmfehler finde, der dafür sorgt, daß das SPI-Interface sich nicht mit meinem MAS 3507 unterhält, sollte ich bald was "auf die Ohren" bekommen ;o) Sebastian
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.