D.0 und D.1 als I/O-Ports

Atmega 328 mit BASCOM und FORTH programmieren
Antworten
Heinrichs
Beiträge: 185
Registriert: Do 21. Okt 2010, 18:31

D.0 und D.1 als I/O-Ports

Beitrag von Heinrichs » Fr 30. Aug 2019, 16:37

Zunächst sieht es ganz einfach aus: Unter Bascom lassen sich mit

DDRD = &B00000011

die Ports D.0 und D.1 als Ausgänge einrichten. Damit sollten Leuchtdioden (mit Vorwiderständen) zum Leuchten gebracht werden können. Z. B. sollten mit dem Programmschnipsel

Code: Alles auswählen

DDRD = &B00000011 
do
  PortD = &B00000001
  waitms 250
  PortD = &B00000010
  waitms 250
loop  
nun die zwei LEDs bei Port D.0 und D.1 abwechselnd blinken. Das tun sie in Wirklichkeit leider aber gar nicht - zumindest bei meinem Nano-Board!

Der Grund ist: Diese beiden Anschlüsse werden vom Nano-Board für die serielle Kommunikation benutzt, insbesondere auch vom Bootloader. Das Schaltbild für mein Nano-Board zeigt: Elektronische Probleme bzw. Konflikte mit dem CH340 sollte es nicht geben; das wird auch dadurch bestätigt, dass das Problem bestehen bleibt, wenn das Board nicht über ein USB-Kabel mit einem PC verbunden ist und anderweitig mit Strom versorgt wird.

Könnte vielleicht nach dem Bootloaden die UART des Atmega328 noch aktiviert sein? Wir schalten die beiden Kommunikationsleitungen RX und TX mit den beiden BASCOM-Befehlen

Ucsr0b.txen0 = 0
Ucsr0b.rxen0 = 0


aus. Und siehe da: Jetzt blinken die beiden LEDs tatsächlich!

Offensichtlich werden hier am Ende des Bootloadens RX und TX nicht deaktiviert. Da es verschiedene Bootloader für das Nano-Board gibt, besteht die Möglichkeit, dass es auch Bootloader gibt, die RX und TX sehr wohl deaktivieren; dann sollten diese Probleme nicht auftauchen.


.
Dateianhänge
arduino-nano-schaltplan-CH340.jpg
Ein Schaltplan des Arduino-Nano-Boards mit CH340
arduino-nano-schaltplan-CH340.jpg (308.85 KiB) 21488 mal betrachtet

Antworten