Hm, ja, das stimmt - so ein Byte braucht nur ne Millisekunde - bei 10 siehts man es noch - bei einer ist es zu kurz.
Dann kann ich also den Wert in BAUD auch mit USART0.BAUD = baud schreiben... klingt gut. Wenn ich es so mache, schreibt er (im Simulator) brav E77B in das 16 Bit-Register BAUD. Die oberen 10 Bit entsprechen dann 1010110110, also dezimal 694 - Das stimmt mit meiner Rechnung überein byubrr = 4 * 3333333) / 19200 (ich hab jetz mal 19200 baud gewählt, weil bei 9600 der Wert über 1023 kommt und er mir die erste Binärstelle abschneidet).
Wenn ich mal rückwärts rechne, komme ich bei 3333333Hz auf eine minimale Datenrate von 13033 baud, bei 20 MHz auf 78201 baud. Das kann doch irgendwie nicht sein, dass man den Mikroconroller bei voller Taktrate nicht mit kleineren baudraten betreiben kann - das ist doch widersinnig.
Ja, den Anschluss habe ich so gemacht. Tx des Tiny412 ist Pin 4, den hab ich an Rx des USB-UART-Adapters angeschlossen. Ich habe auch GND des USB-UART mit GND des Tiny verbunden.
Ich hab ein bisschen gemessen. Der Rx-Anschluss des USB-UART-Adapters liegt auf 3,3 Volt. Der Tx des Tiny ist auf OUT HIGH geschaltet - liegt auf ca. 4 Volt (Stromversorgung aus dem USB-Port des Notebooks über einen Arduino Nano, der als ISP dient).
Wenn ich das richtig sehe, müsste der UART beim Senden den Tx-Port auf LOW schalten und die Spannung auf GND ziehen.
Wenn ich beim USB-UART Rx gegen GND "kurzschließe", messe ich 1,5 mA - das sollte der Tx-Pin des Tiny ohne Probleme auf GND bringen können - meines Wissens können die Pins bis zu 40 mA Sourcce und Sink verkraften.
Der Serielle Monitor emprängt auch Buchstabensalat, wenn ich willkürlich Rx auf GND kontakte.
Hat noch jemand Ideen?
Lesezeichen