Hallo zusammen! Folgendes Problem: Habe eine Schaltung mit einem Atmel 168 entwickelt, auf dem STK 500 mit einem Baudratenquarz 3,6864 MHz Verbindung zum PC über einen PL2303 Adaper, mit 230400 Baud lief problemlos. Dann habe ich die Schaltung auf eine Platine gepackt, aus Platzgründen habe ich einen kleinen Resonator mit 4MHz verwendet. Laut Tabelle müsste hier 250000 Baud mit 0 % Fehler möglich sein. Der AVR sendet auch schön mit dieser Geschwindigkeit, hab ich mit dem Oszi überprüft, Bitzeit exakt 4us Allerdings kommt nur Müll am PC an. Wenn ich Zeichen vom PC sende, kommt dort 1 Bit allerdings mit 3.5 anstatt 4 Mikrosekunden raus. Es sieht so aus, als ob mit dem PL2303 keine 250000 Baud einstellbar wären. Hat jemand schonmal einen uC mit einem USB Adapter bei 250000 Baud betrieben und kann hier was empfehlen ? Vielleicht FTDI ?
Dr G. Reed schrieb: > Es sieht so aus, als ob mit dem PL2303 keine 250000 Baud einstellbar > wären. > > Hat jemand schonmal einen uC mit einem USB Adapter bei 250000 Baud > betrieben und kann hier was empfehlen ? Vielleicht FTDI ? FTDI geht definitiv. Die ... von Prolific sollte man großräumig meiden. http://www.ftdichip.com/Support/Documents/AppNotes/AN232B-05_BaudRates.pdf
Dr G. Reed schrieb: > Folgendes Problem: > > Habe eine Schaltung mit einem Atmel 168 entwickelt, 4MHz Taktfrequenz und 250kBd sind aber keine gute Paarung. Laß den Atmega besser mit 16-20MHz laufen.
Dr G. Reed schrieb: > Laut Tabelle müsste hier 250000 Baud mit 0 % Fehler möglich sein. Brauchst du denn tatsächlich diese hohe Geschwindigkeit?
@Willi Kannst Du bitte erklären, warum die Kombination nicht gut ist?
Willi schrieb: > 250kBd sind aber keine gute Paarung Wieso nicht ? Der Prozessor muss nur 256 Bytes aus dem RAM möglichst schnell zum PC übertragen. Bei 250000 Baud sind das 25000 Zeichen pro Sekunde, also 160 Takte pro Zeichen, Störungen durch Interrupts gibts nicht, also genügend Zeit....
Markus W. schrieb: > Brauchst du denn tatsächlich diese hohe Geschwindigkeit? 115.2kBaud würden auch reichen, aber die krieg ich mit dem 4MHz Resonator nicht hin (8% Taktabweichung....) Zur Info: Ich verwende einen CSTCR 4.0 Resonator von Reichelt. Leider gibts die dort nur als 4 5 und 6 MHz Typen, auch bei C hab ich keine Baudratenfreundlichen Frequenzen gefunden....
Dr G. Reed schrieb: > 115.2kBaud würden auch reichen, aber die krieg ich mit dem 4MHz > Resonator nicht hin (8% Taktabweichung....) OK, verstehe... Es gäb da noch die grundsätzliche Möglichkeit, von jedem Byte nur die unteren 4 Bits zu verwenden und die 4 oberen konstant auf 1 zu setzen. Dann spielt die exakte Übertragungsgeschwindigkeit keine so große Rolle mehr. Wenn ich mich recht erinnere, können dann Fehler bis 15% toleriert werden.
Ich hab noch ein Gerät mit einem FT232RL rumliegen, das kann ich morgen mal anzapfen und als Adapter verwenden. Mal schaun, ob ich so die Baudraten hinbekomme. Ansonsten muss ich halt das Layout etwas ändern und einen guten alten Quarz hernehmen....
So, grad nochmal kurz an dem FT232RL Adapter gemessen: Da kommen die Bits mit exakt 4us raus, wie es sein soll. Somit denke ich, dass ich gute Chancen habe, darüber die Verbindung hinzubekommen!
Ich hab vor ca. 2 Wochen eine Platine mit dem FTDI232RL gebaut und mal mit 100000 Baudgetestet. Ähnliches hier: Beitrag "[Sammelbestellung] FT232RL-Platinen" Keine Probleme aufgetreten, saubere 10 µs mit dem Oskar gemessen und mit Terminalprogramm keine Fehler. avr
Der UART im Pc arbeitet mit einem Grundtakt, der ein ganzzahliges Vielfaches der Baudrate 115200 bzw. 230400 Baud ist. Daher kannst du nicht die Übertragung mit einer krummen Baudrate von 250000 Baud fahren. Du kommst nicht darum herum weiterhin einen 3,6864 MHz Quarz zu verwenden, da bei diesen hohen Datenraten auch Taktfehler im Promillebereich zu Übertragungsfehler führen. Hans Peter
So wie ich das in Erinnerung habe, gelten diese festen Baudraten nur für die alten, echten seriellen Schnittstellen. Die USB - virtuellen Comports sollten hier wesentlich flexibler sein. Wenn ich mich grad nicht vermessen habe, sollte das auch zutreffen. In Putty 250000 als Badrate eingestellt, und mit dem Oszi genau die 4us Bitzeit gemessen. Werd ich die Tage nochmal genauer untersuchen....
Hans Peter B. schrieb: > Der UART im Pc arbeitet mit einem Grundtakt, der ein ganzzahliges > Vielfaches der Baudrate 115200 bzw. 230400 Baud ist. Daher kannst du > nicht die Übertragung mit einer krummen Baudrate von 250000 Baud > fahren. Du kommst nicht darum herum weiterhin einen 3,6864 MHz Quarz zu > verwenden, da bei diesen hohen Datenraten auch Taktfehler im > Promillebereich zu Übertragungsfehler führen. > Hans Peter Stimmt zwar, aber trifft hier nicht zu.
Bei meinen 100000 Baud s.o. (mit PC mit WinXP) hat Docklight nur angemerkt, dass dieser Wert unüblich ist. Aber die Übertragung war korrekt. Es war tatsächlich auch nur ein gezielter Test ob es geht, keine echte Anwendung ;) avr
Dr G. Reed schrieb: > Willi schrieb: >> 250kBd sind aber keine gute Paarung > > Wieso nicht ? > > Der Prozessor muss nur 256 Bytes aus dem RAM möglichst schnell zum PC > übertragen. Weil die Datenrate potentiell den Prozessor bei der Verarbeitung überfordert. In Deinem speziellen Fall, mag es ja reichen, aber es könnte der PC ja auch einmal Daten an den ATmega168 schicken. Wenn diese dann ungestückelt eintreffen, kann es beim Empfang eng werden. Ohne ganz zwingende Gründe sind 4MHz mit diesem µC wie ein Auto mit angezogener Handbremse oder ein 3GHz PC mit 800MHz Takt. Problemlos kann man ihn beispielsweise mit 18,432MHz laufen lassen und damit 'übliche', hohe Baudraten einstellen.
Daten vom PC zum Atmel kommen nur als vereinzelte chars, mit 4MHz ist das was ich vorhabe locker umzusetzen. Ich bin als (hauptsächlich) Assembler-Programmierer gegen das sinnlose Hochrüsten von Taktfrequenzen und dergleichen.....
Dr G. Reed schrieb: > Ich bin als (hauptsächlich) Assembler-Programmierer gegen das sinnlose > Hochrüsten von Taktfrequenzen und dergleichen..... 1. Die Taktfrequenz hängt nicht von der Programmiersprache ab. 2. 18,432MHz liegen voll im Rahmen; siehe Datenblatt.
So, hab jetzt nochmal einen Test mit meinem FT232RL Adapter gemacht: Verbindung mit 250000 Baud läuft problemlos!
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.