Forum: Mikrocontroller und Digitale Elektronik Brauche Hilfe beim Arduino Einstieg


von Markus _. (markush)


Lesenswert?

Hi Leutz,

ich möchte ein wenig mit den Arduino Sachen rumtesten. Ich möchte aber 
kein fertiges Board nutzen sondern hab mir mal eine Variante mit dem 
Mega328 (ohne P!) auf dem Steckbrett aufgebaut. Also 16MHz Quarz und 
sonstige Grundbeschaltung dran und los gehts.
Zum Brennen des Bootloaders hab ich einen USBASP verwendet. Ich verwende 
die aktuelle arduino-1.04 IDE. Da ich den 328 ohne P verwende habe ich 
die avrdude.conf abgeändert so dass der Bootloader auf diese CPU 
gebrannt wurde (Signatur halt angepasst). Beim Brennen kommt auch die 
Meldung dass der Bootloader erfolgreich gebrannt werden konnte. Also 
keinerlei Fehlermeldung oder so.
Zum Testen wollte ich das Blinkbeispiel aus der IDE aufspielen. Hier 
komm ich allerdings nicht weiter bzw. da kommt immer eine Fehlermeldung. 
Ich verwende einen einfachen (Chinesen-)Adapter als USB-Seriell Brücke 
mit FTDI Chip. Als Fehler kommt immer:

avrdude: stk500_getsync(): not in sync: resp=0x00

Beim Drücken des Upload Buttons blinkt die LED am USB-Adapter kurz und 
danach kommt die Fehlermeldung.

Liegts am Adapter oder ist da der Bootloader nicht richtig installiert 
worden?

Markus

von Markus M. (mark_m)


Lesenswert?

Diese Fehlermeldung kommt z.B. wenn Du das falsche Board ausgewählt 
hast. Wahrscheinlich kommt diese auch wenn sich der Bootloader nicht 
meldet.

Hast Du das USB-Adapter richtig angeschlossen?
Wie hast du die Spannungsverorgung realisiert?
Schaltplan?
Bild von deinem Aufbau?

Ob Atmega328 oder Atmega328P spielt eher eine untergeordnete Rolle.

Grüsse

von Markus _. (markush)


Angehängte Dateien:

Lesenswert?

Markus M. schrieb:
> Diese Fehlermeldung kommt z.B. wenn Du das falsche Board ausgewählt
> hast. Wahrscheinlich kommt diese auch wenn sich der Bootloader nicht
> meldet.
>

Ausgewähltes Board: Duemilanove mit ATMega328

> Hast Du das USB-Adapter richtig angeschlossen?

Ja, RX vom Adapter an TX PIN3 Controller, TX vom Adapter an RX PIN2 
Controller

> Wie hast du die Spannungsverorgung realisiert?

Kommt von 5 Volt Schaltnetzteil ans Breadboard

> Schaltplan?

Gibts keinen bzw. Standard Aufbau nach dieser Anleitung: 
http://arduino.cc/en/Main/Standalone gemacht.

> Bild von deinem Aufbau?



>
> Ob Atmega328 oder Atmega328 spielt eher eine untergeordnete Rolle.
>
> Grüsse

von Markus M. (mark_m)


Lesenswert?

Ok, ich gehe mal davon aus, dass der Aufbau korrekt ist. Lieber einmal 
zu viel prüfen.  Spannung liegt auch überall an, mit Messgerät 
überprüft! GND verbunden!

Welchen Bootloader hast Du gewählt? Den Bootloader selbst hast Du aber 
nicht verändert!

Wähle mal ein anderes Board mit 328 MC.

Tip:
Auf dem Original Board befindet sich noch eine LED jeweils an TX und RX. 
Gut für die Visualisierung der Datenübertragung. Zwei LED hat man immer 
übrig.

Grüsse

von Markus _. (markush)


Lesenswert?

Markus M. schrieb:
> Ok, ich gehe mal davon aus, dass der Aufbau korrekt ist. Lieber einmal
> zu viel prüfen.  Spannung liegt auch überall an, mit Messgerät
> überprüft! GND verbunden!
>

Zigmal geprüft, außerdem kann ich den Controller  mit dem AVR Studio und 
dem Dragon problemlos lesen, erasen und Fuses setzen.

> Welchen Bootloader hast Du gewählt? Den Bootloader selbst hast Du aber
> nicht verändert!
>
Ich hab halt das Board ausgewählt und bin dann auf Bootloader 
installieren gegangen. Da kann man manuell keine auswählen.


> Wähle mal ein anderes Board mit 328 MC.

Hab alle durchprobiert - überall das gleich Ergebnis.


>
> Tip:
> Auf dem Original Board befindet sich noch eine LED jeweils an TX und RX.
> Gut für die Visualisierung der Datenübertragung. Zwei LED hat man immer
> übrig.

TX blinkt dreimal kurz, sonst keine Reaktion.


>
> Grüsse

Gruß -  Markus

von Markus M. (mark_m)


Lesenswert?

> Zigmal geprüft
Ordentlich geprüft wohl nicht. Die LED hast Du gegen +5V geschaltet 
anstatt gegen GND.
MC19:DP13 -> LED -> R -> GND
Hättest Du wohl gemerkt, wenn es richtig läuft. ;-)

> , außerdem kann ich den Controller  mit dem AVR Studio und
> dem Dragon problemlos lesen, erasen und Fuses setzen.
Das Brennen des Bootloaders über ISP ist ein anderer Prozess. Da ein 
eigenständige Protokoll verwendet wird.

> TX blinkt dreimal kurz, sonst keine Reaktion.
Dann fällt mir nur noch die Takterzeugung ein. Ob Du einen sauberen Takt 
hast kannst Du eigentlich nur mit einem Oszilloskop prüfen. Der Quarz 
ist 16 MHz?

Weiter weiss ich dann auch keine Rat mehr aus der Entfernung. Sorry.

Grüsse

von Marius P. (marius_p)


Lesenswert?

Treiber neu installieren.
Was für nen usb/serial adapter hast du ?
wenns ft232 ist --> Diemilanove 328
atmega8u2 oder 16u2 --> Uno

von Nooby (Gast)


Lesenswert?

Markus M. schrieb:
>> Zigmal geprüft
> Ordentlich geprüft wohl nicht. Die LED hast Du gegen +5V geschaltet
> anstatt gegen GND.
> MC19:DP13 -> LED -> R -> GND
> Hättest Du wohl gemerkt, wenn es richtig läuft. ;-)

Du weißt schon, dass ein I/O auch sinken kann, nicht nur sourcen?
http://www.sprut.de/electronic/pic/grund/o1.gif
Wo der Widerstand sitzt ist ja bekanntlich egal.

Auch wenn es in der Bastlerszene kaum verbreitet ist bietet das sogar 
enorme Vorteile beim Test. Dann muss man z.B. zum Test der LED nur mit 
einer GND-Prüfspitze über dem Board rumschrappen und nicht mit einer 
"heißen" Vcc-Prüfspitze. Dann raucht nix, wenn man ausversehen mal wo 
dran kommt.

von Dietrich L. (dietrichl)


Lesenswert?

Markus _neu schrieb:
> Kommt von 5 Volt Schaltnetzteil ans Breadboard

Hast Du auch Stützkondensatoren direkt am µC?
Ich sehe keine, aber das Bild ist auch etwas unscharf...

von Markus _. (markush)


Lesenswert?

Hab jetzt mal alle eure Tips getestet, leider ohne Erfolg. Hab mir mal 
nen anderen USB-RS232 Wandler bestellt, vielleicht liegts ja an dem.

Sonst fällt mir auch  nichts mehr ein. Ich bau meine Testschaltungen 
immer so auf und kann da auch problemlos z.B. mit AVRStudio arbeiten. 
Das Bootloader installieren klappt ja auch problemlos mit dem USBasp, 
nur der Seriellwandler bzw. die Kommunikation darüber streikt. Mal sehen 
ob der neue Wandler neue Erkenntnisse bringt...

Gruß - Markus

von M. K. (sylaina)


Lesenswert?

Hast du schon eine µC-Schlatung mit serieller Komunikation, die sicher 
funktioniert? Dann könntest du den Adapter (USB-Seriell) doch damit mal 
testen ;)

von Markus _. (markush)


Lesenswert?

Nein, hab ich leider nicht.

Aber was anderes: Ich hab gerade gesehen dass man einen Sketch auch mit 
Programmer übertragen kann. Ich hab mal das Blinkbeispiel übertragen und 
siehe da: Die LED blinkt munter vor sich hin. An der Beschaltung kanns 
schon mal nicht liegen. Die Hinweise auf den USB-Wandler verdichten 
sich...

von datasheet (Gast)


Lesenswert?

Ich hab ja kein Arduino. Aber wenn ich mir den Schaltplan de Duemilanove 
mal anschau 
http://www.deryoung.com/arduino/images/circuit_Duemilanove.gif seh ich, 
dass der RTS der emulierten seriellen Schnittstelle an Reset geht. Kann 
es sein, dass die IDE den Controller in ein Reset setzen muss?

Es gibt doch bestimmt irgendwo Infos wie der Bootloader arbeitet. Ich 
denke mal umsonst ist die Verbindung nicht da.

Viel Erfolg noch

Data

von Dietrich L. (dietrichl)


Lesenswert?

Markus _neu schrieb:
> Die Hinweise auf den USB-Wandler verdichten sich...

Den kannst Du auch mal alleine testen: Rx und Tx brücken und mit einem 
Terminalprogramm Daten senden. Die müssen dann als Echo wieder 
zurückkommen.

Gruß Dietrich

von Uwe (de0508)


Lesenswert?

Hallo,

zum USB Uart Bridge, ist tx->rx und rx->tx angeschlossen?

die baudrate muss passen, z.b. mit einem 8MHz Quarz sind 19200 möglich.
Das Datenblatt gibt dazu Auskunft.

von Rainer (Gast)


Lesenswert?

Hallo Markus,
ich hatte das gleiche Problem.
Mein chinesen-Adapter wurde als STK500V2 angegeben, daher habe ich außer 
der avrdude.conf noch in programmers.txt folgendes eingetragen:

arduinoisp.name=AVR ISP STK500V2
arduinoisp.communication=serial
arduinoisp.protocol=stk500v2
arduinoisp.speed=57600

Gruß Rainer

von datasheet (Gast)


Lesenswert?

Schade, dass man meinen Kommentar völlig ignoriert.

Es scheint so zu sein wie ich sage. Der Bootloader startet halt nach 
einem Reset. Wenn kein passendes serielles Kommando kommt, springt er 
ins Programm. Da dort noch nicht auf serielle Kommandos reagiert wird, 
kann auch nichts passieren.

Hier: http://www.freeduino.de/node/2260
wird beschrieben, dass man wohl auch manuell resetten kann. Probiers mal 
aus.

Würde mich echt interessieren, ob das die Lösung ist.

Data

von Markus _. (markush)


Lesenswert?

datasheet schrieb:
> Schade, dass man meinen Kommentar völlig ignoriert.
>
> Es scheint so zu sein wie ich sage. Der Bootloader startet halt nach
> einem Reset. Wenn kein passendes serielles Kommando kommt, springt er
> ins Programm. Da dort noch nicht auf serielle Kommandos reagiert wird,
> kann auch nichts passieren.
>
> Hier: http://www.freeduino.de/node/2260
> wird beschrieben, dass man wohl auch manuell resetten kann. Probiers mal
> aus.
>
> Würde mich echt interessieren, ob das die Lösung ist.
>
> Data

Hab dich  nicht ignoriert! Du hast mich auf die richtige Spur gebracht, 
der Reset Anschluss ist auf alle Fälle erforderlich. Vom DTR muss man 
mit 10nF an den Reset Pin des Controllers. Wenn ich jetzt was 
rüberschicke dann geht eine richtige Lichtorgel los. Die Fehlermeldung 
kommt jetzt auch  nicht mehr.
Allerdings taucht jetzt ein anderes Problem auf: Jetzt meldet die IDE 
bzw. AVRdude den falschen Controller obwohl ich in der avrdude.conf die 
Signatur des Controllers eingetragen habe. Womit ich wieder beim 
ursprünglichen Problem bin: Ich hab einen Mega328-PU und nicht einen 
Mega328P-PU. Kann es sein, dass die Signatur im Bootloader auch drin 
steht, oder kann ich die noch woanders reinschreiben?

Markus

von datasheet (Gast)


Lesenswert?

Wenn ich den hier:
http://forum.arduino.cc/index.php?topic=58670.0
richtig verstanden habe, muss man die conf nur ändern, wenn man den 
bootloader schreiben will. Ich meine mal gelesen zu haben, dass man den 
FTDI Chip darauf auch dazu bewegen kann als ISP Programmer zu fungieren.

Wenn man dann mit dem Bootloader sprechen will, muss man die .conf 
wieder zurück ändern. Weil (wie du schon vermutet hast, die Sig mit im 
Bootloader steht).

Wie gesagt alles Vermutungen meinerseits. Ich hab kein Arduino und will 
auch keins.

Viel Glück :D

von Markus _. (markush)


Lesenswert?

Ok, neuer Zwischenstand bzw. Endergebnis:

Problem 1 flashen über den Bootloader:
Das Flashen mittels Bootloader funktioniert jetzt. Es fehlte - wie 
datasheet richtig erkannt hat - die Beschaltung des Reset Signals vom 
USB-Seriell Wandler. Also DTR mit 10nF an den Reset Eingang und dann 
klappts auch mit dem Flashen.

Problem 2 Fehlermeldung wegen falschem Device:
Zum Bootloader flashen mittels externem Programmer (USBasp) muss in der 
avrdude.conf die Signatur ID an das verwendete Device angepasst werden. 
In meinem Fall halt 1e9514 für den ATMega328-PU. Nach erfolgreichem 
flashen des Bootloaders muss aber die ID in der avrdude.conf wieder an 
das angegebene Device angepasst werden sonst mault der Bootloader dass 
es nicht passt. Anscheinend wird da die ID nicht mehr aus dem Chip 
gelesen sondern ist im Bootloader fest verdrahtet. Kann man das 
irgendwie eleganter lösen - mit Sicherheit. Erstmal tuts das.

Danke an alle für die Hilfestellung - vor allem an datasheet.


Gruß - Markus

von Markus _. (markush)


Lesenswert?

Hi,

unsere Antworten haben sich überschnitten - aber interessant welchen 
Konsens wir daraus ziehen!

Danke dir.


Gruß - Markus

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.