Hallo, ich möchte den UART mit 5 MBaud laufen lassen und hab dabei ein Problem. Die max. mögl. GEschwindigkeit sin 6,25MBaud, damit hab ichs schon probiert und es klappt. Möchte ich nun mit 5 MBaud kommunizieren, setzt ich nun DIVADVALL=1 und MULVAL=4. Da ich einen PCLK von 100MHz habe komme ich mit der Formel auf 5MHz. Wenn ich nun Daten senden, werden sie korrekt mit 5MBaud ausgegeben, wenn ich Daten jedoch mit 5MBaud empfangen möchte, bekomme ich völlig andere Messwerte. Probeweise habe ich mal Daten mit 6,25MBaud empfangen, obwohl mein Controller auf 5MBaud eingestellt war, diese Daten hat er komischerweise korrekt empfangen und dann aber mit einer Baudrate von 5MBaud geantwortet. Wie kann das sein?
Siehe UM10360.PDF, 14.4.12: "If the fractional divider is active (DIVADDVAL > 0) and DLM = 0, the value of the DLL register must be greater than 2." Damit sind 5 MBaud nicht zu erreichen. Die einzige Möglichkeit für 5 MBaud besteht im Herabsetzen von (P)CCLK auf 80 MHz, damit man ohne den fractional divider auskommt.
Vielen Dank für die schnelle Antwort. Das muss ich wohl überlesen haben. Hab mich den ganzen Tag damit rumgeärgert... Dann werd ich wohl den Clock auf 80MHz heruntersetzen.
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.