Forum: Mikrocontroller und Digitale Elektronik Atmega 16U2 an Atmega 328P-AU keine Serielle Verbindung


von Stefan K. (tohl)


Angehängte Dateien:

Lesenswert?

Hallo und Guten Tag bzw Abend,

bin neu hier im Forum,

habe ein Problem mit der Seriellen Verbindung vom Atmega 16u2 auf Atmega 
328P-AU.

Bootloader wurde über Atmel Studio 7 auf dem ATmega 328P-AU geflasht 
per:
ISP AVRISP MKII(16U2 als Programmer geflasht)


Bootloader :
(ATmegaBOOT_168_atmega328.hex) ist der für den Arduino nano.


Fuses wurden wie folgt eingestellt:
Low 0xFF, High 0xDA, Ext 0x05

Ich verwende einen externen Quarz 16MHz (Schltplan im Anhang)
wenn ich an PIN PB5 eine LED anschließe Blinkt diese gleichmäßig (der 
Bootloader sollte laufen).

Den 16U2 habe ich mit der Arduino-usbserial-atmega16u2-Uno-Rev3.hex 
geflasht über Flip.

Wenn ich die wenn ich die Pins RX/TX vom 16u2 kurz schliesse mit einer 
Brücke und Putty öffne bekomme ich meine Eingaben super zurück.

Wenn ich allerdings Arduino IDE verwende 16u2 wird in Gerätmänger als 
(Arduino Uno COM1) erkannt mit einer Baudrate von 57600
und versuche ein sketch hochzuladen sendet TX aber RX bleibt aus und der 
Hochlade vorgang schlägt fehl Erorr :

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not i sync:resp=0x38

Bin seit 3 Tagen an Foren durchsuchen und dachte mir Ihr könnt mit 
vielleicht helfen.

Hoffe nur das ich keinen groben Fehler gemacht habe und die Platine neu 
machen muss.

Besten Dank schon mal.

: Bearbeitet durch User
von Schlaat Plaan Lääsaa (Gast)


Lesenswert?

Stefan K. schrieb:
> Hoffe nur das ich keinen groben Fehler gemacht habe und die Platine neu
> machen muss.

Das Chaos im Schaltplan spiegelt das Wirrwar in deinem
Kopf wieder.

Also ich schaue mir den Schaltplan nicht an um da
eventuell einen Fehler zu finden.

Das wäre massives Selbstquälen ...

von Wolfgang (Gast)


Lesenswert?

Wenn die realen Leitungen zwischen Quarz und ATmega328 auf der Platine 
genauso wirr laufen, wie im Schaltplan, wundert mich gar nichts.

An welche Pins vom ATmega gehst du denn mit deinem seriellen Signal ran?

Was bedeuten die ganzen roten Kreuze im Schaltplan und was sagt die 
Farbe der Linien aus?

von Bastian W. (jackfrost)


Lesenswert?

Flash mir dem „ISP MK2“ mal ein einfaches Programm drauf das die LED 
jede Sekunde blinken lässt und das per USART immer ein a sendet.

Dann schau ob das a korrekt ankommt und ob die Blink Frequenz passt.

Gruß JackFrost

von Stefan K. (tohl)


Lesenswert?

Ja der Schaltplan ist ein bischen ...

aber die Platine ist OK.

Ich geh von:

            16U2 TX (Pin9 PD3)  an   328P-AU RX (Pin30 PD0)


                 RX (Pin8 PD2)  an           TX (Pin31 PD1)


                 RST (Pin12 PD6)  über 0.1uf  an   Reset (Pin29 PC6)

das mit der MK 2 werde ich mal ausprobieren hast du mal ein Programm 
script ??

Habe das mit dem Arduino zum ersten mal ausprobiert und auch nocht nicht 
viel Erfahrung mit dem ATmega´s.

Mehr mit Python und RPI.

Aber danke schon mal für den Tipp.

von Friedhelm E. (fredfromflett)


Lesenswert?

Hallo zusammen
Beim Nano sind die Pins 0 u. 1 mit dem eingebauten FTDI Oder CH340 Chips 
verbunden eine anderweitige Benutzung führt immer zu Kollisionen. beim 
Nano andere Pin's mit Softserial führt zu funktionierenden Ergebnissen.

Oder einen 'Arduino ' ohne USB Chip benutzen.

Gruß f

von Stefan K. (tohl)


Lesenswert?

Ja ich benutze statt dem FDTI oder CH340 den 16U2 als USB zu Serielle 
Schnitstelle (versuch es zumindestens) habe das Board selbst gebaut.

von Manfred (Gast)


Lesenswert?

Stefan K. schrieb:
> (Arduino Uno COM1) erkannt mit einer Baudrate von 57600
> und versuche ein sketch hochzuladen sendet TX aber RX bleibt aus und der
> Hochlade vorgang schlägt fehl Erorr :

Suche mal in der Arduino-IDE-Umgebung die Datei "boards.txt".
Der Uno wird mit 115200 geladen, der Nano_328 mit 57600, der Nano_168 
mit 19200 bps. Das ist unabhängig von Deinen Rechnereinstellungen, 
schaltet die IDE selbsttätig um.

Stefan K. schrieb:
> das mit der MK 2 werde ich mal ausprobieren hast du mal ein Programm script ??

Wenn Du für eine simple Blinkfunktion eine fertige Vorlage erwartest, 
bist Du hier falsch - das ist UNO-Kindergarten erste Woche.

> Mehr mit Python und RPI.

... ist eine faule Ausrede.

von Stefan K. (tohl)


Lesenswert?

blinken ist kein problem zu programmieren geht eher um die uart 
ansteuerung.

von Stefan K. (tohl)


Lesenswert?

Hi,
habe jetzt ein sketch hochgeladen über die MK2 der mir daten von 328P an 
16U2 sendet.

Es kommt auch was an allerdings nur unleserlich RX blinkt baud habe ich 
auf dem 328p auf 9600 eingestellt.

Hat jemand noch eine Idee was ich machen kann.

Kann das an den Fuses liegen die ich porgamiert habe ???

Low 0xFF, High 0xDA, Ext 0x05

: Bearbeitet durch User
von Stefan K. (tohl)


Lesenswert?

Habs jetzt hin bekommen man muss die baud im controller auf 14400 
stellen
dann bekommt man auch text im putty mit einer baud 115200 (in Putty 
einstellen)

Im endefekt baud controller ist 8x schneller als im PC bzw. PC baud / 8 
= controller.

Muss nur noch rausbekommen wie ich das permanent mache das ich dann auch 
mit Arduino IDE uploaden kann.

Wenn da jemand eine Idee hat wäre ich dankbar.

Ich denke mal muss das über die Fuses machen im 328P.

von Einer K. (Gast)


Lesenswert?

Stefan K. schrieb:
> Den 16U2 habe ich mit der Arduino-usbserial-atmega16u2-Uno-Rev3.hex
> geflasht über Flip.
Fuses auch gesetzt?



Stefan K. schrieb:
> wird in Gerätmänger als
> (Arduino Uno COM1) erkannt
Wird an USB vid und pid so erkannt.
Ist kein Problem, solltest trotzdem den Nano wählen, da du dessen 
Bootloader drauf gemacht hast.
Alternativ: Mache den UNO Bootloader drauf.
Bringt nebenbei auch etwas mehr freies Flash.

Stefan K. schrieb:
> Ich denke mal muss das über die Fuses machen im 328P.
Und ich glaube eher, dass es die Fuses des ATMega16U2 sind.

von Stefan K. (tohl)


Lesenswert?

Hi danke für den Tipp mit den fuses vom 16u2.

Muss mir noch ein Programmer bauen werde den 16u2 mir dann über ISP mal 
anshen.

Kann aber noch daueren muss die Platine noch bauen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Stefan K. schrieb:
> Im endefekt baud controller ist 8x schneller als im PC bzw. PC baud / 8
> = controller.
>
> Muss nur noch rausbekommen wie ich das permanent mache das ich dann auch
> mit Arduino IDE uploaden kann.

Das riecht nach CLKDIV8-Fuse.

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
Noch kein Account? Hier anmelden.