Forum: Mikrocontroller und Digitale Elektronik Großes AVR Programmier Problem Arduino Hilfe!


von Florian R. (rager)


Angehängte Dateien:

Lesenswert?

Hallo,
ich plane gerade ein großes Projekt wo ich viele Atmega8 brauche.
Sie werden den arduino Bootloader drauf haben und auch über dessen IDE 
programmiert. Nun will ich aber nicht jeden dieser mind. 33 Atmega8 in 
meinen Arduino 2009 stecken und nen neues Programm draufladen. Die 
werden in mein Projekt eingebaut und von dort aus wird ein Programm per 
"USB to COM" Gerät vom PC geuploaded.

http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&Item=200393339984&Category=4661&_trkparms=algo%3DLVI%26its%3DI%26otn%3D2

Das Ding ist nur es geht nicht!!
Ich habe schon das gesammt Netz durchforstet und nix gefunden was mir 
helfen könnte.

Bei Der arduino IDE kommt der Fehler bericht:

avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51

der so weit ich weiß bedeutet: "nicht mit dem qC verbunden" oder so 
ungefair...

Ich habe die pins aber alle richtig(meiner Meinung nach) verbunden.
Reset an Pin1 des Atmegas, TXD an Pin2, RXD an Pin3, Gnd an Gnd und 5V+ 
and die ganzen VCC's

Was ich selbst herrausgefunden habe ist, dass das Problem sehr 
wahrscheinlich genau zwischen dem USB stick und dem Atmega liegt(als die 
verbindung oder richtige verkabelung?).
Ich habe den Original Ardunio Atmega 328 geestet und auch den von mir 
gebootloadeten atmega8 und beide gehen nciht. Beim USb stick lecuhtet 
eine LEd auf wenn geuploadet wird aber der Chip bleibt unverändert.. 
macht einfach sein Blink Programm als würde nichts passieren( was es ja 
auch nicht tut ^^)



Im Anhang müsste auch ein Bild von der Schaltung sein.
ist halt nur eine Arduino Standalone schaltung mit dem Stick drin...

http://www.arduino.cc/en/Main/Standalone

Hat eienr von euch eine Idee warum nichts funktioniert??
ich bin total am verzweifeln!!

LG
Florian

von fred (Gast)


Lesenswert?

> Nun will ich aber nicht jeden dieser mind. 33 Atmega8 in
> meinen Arduino 2009 stecken und nen neues Programm draufladen

Das geht sowieso nicht, weil fabrikneue Atmegas keinen Arduino 
Bootloader haben.

von Florian R. (rager)


Lesenswert?

Der atmega8 hat einen Bootloader drauf und dieser ist auch getestet.
wenn keiner drauf wäre würde ich dir recht geben ^^

von fred (Gast)


Lesenswert?

>Der atmega8 hat einen Bootloader

Dann ist er allerdings nicht "fabrikneu"

von Florian R. (rager)


Lesenswert?

Es wurde nirgendwo "Fabrikneu" geschrieben :)
und das hat nichts mit dem Problem zu tun Fred ;)

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Florian Roesner schrieb:

> Es wurde nirgendwo "Fabrikneu" geschrieben :)
> und das hat nichts mit dem Problem zu tun Fred ;)

Statt die Goldwaage auszupacken, solltest du dir an die eigene Nase 
packen.

Fred wollte dir helfen und sein Einwand war berechtigt. Es war auch 
meine erste Idee beim Lesen deiner Frage.

Wenn man erst nachträglich wesentliche Infos liefert, verplempert man 
wertvolle Antworten oder bekommt so eine wie diese.

von Florian R. (rager)


Lesenswert?

Ja... tut mir leid :(
ich bin nur total unter Druck.
sorry.

von Tauwetter (Gast)


Lesenswert?

>Nun will ich aber nicht jeden dieser mind. 33 Atmega8 in
>meinen Arduino 2009 stecken und nen neues Programm draufladen.

Was ist denn darin so schlimm, vor allem, wenn Du 'unter Druck' bist?

von Peter D. (peda)


Lesenswert?

Auf Deinem Kondi steht "2.2", da wird der Quarz einfach nicht schwingen.
Nimm 22pF.


Peter

von Peter Z. (Gast)


Lesenswert?

Das ist ja mal ein komprimiertes Bild.... 2.8MB Respekt!

von Chris (Gast)


Lesenswert?

Wozu ist der Reset-Pin an deinem USB-Adapter gedacht? Leider geht das 
aus der Beschreibung der ebay-Seite nicht hervor.
Ich vermute mal, dass es sich dabei um den Reset des CP2102 auf dem 
Adapter handelt. Falls dem so ist solltest Du diesen Pin mal an Vcc 
hängen, anstatt an den Reset-Pin deines Controllers.

von Florian R. (rager)


Lesenswert?

Peter Dannegger schrieb:
> Auf Deinem Kondi steht "2.2", da wird der Quarz einfach nicht schwingen.
> Nimm 22pF.
>
>
> Peter


Ich habe dem verkäufer von Conrad 22pF gesagt gehabt.
2.2 bedeutet sicher 2,2pF?
Also ein einfaches Blink programm läuft ohne weiteres.
Aber das ist schonmal gut und ich werde es mal testen. :)
vielen dank!

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Nix passiert.

In der Standalone-Anleitung wird ein Converter USB-to-TTL/COM Converter 
mit dem USB-Chip FT232RL verwendet. Dein USB-to-TTL/COM Converter 
basiert auf dem USB-Chip CP2102.

Dein USB-to-TTL/COM Converter basiert auf dem USB-Chip CP2102. Die 
Pinbelegung ist bekannt 
(http://www.egochina.net.(cn-ist-hier-kein-spam)/e-shop/ebay/accessory/USB2TTL.jpg).

Funktionstest Converter: Wenn du TXD und RXD miteinander verbindest und 
mit einem Terminalprogramm den Adapter alleine prüfst: Kommt da ein 
Echo?

Wenn der CP2102 nicht ansprechbar ist: CP2102 kontra FT232RL kann einen 
Unterschied machen. Kontrolliere ob du zwei USB Geräte mit CP2102 
angestöpselt hast. 
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1220573022/0

> Reset an Pin1 des Atmegas

Der Teil sollte ausführlicher beschrieben werden. Der RST an dem 
Converter ist sicher nicht zum Verbinden mit dem Atmega8 gedacht. RST 
ist ein Reset für den Converter. Baue den RESET am Atmega8 so auf wie in 
der Originalanleitung.

> TXD an Pin2, RXD an Pin3, Gnd an Gnd und 5V+ and die ganzen VCC's

"One thing to keep in mind is that high for a CP2102 is 3.3V, so if 
you're using a 5V Arduino you should probably throw in a 
current-limiting resistor."
http://forum.pololu.com/viewtopic.php?f=3&t=2252

von Florian R. (rager)


Lesenswert?

okay ich habe mal den atmega8 an reset TX und RX vom Arduinoboard 
angeschlossen welches ja den USB-Chip FT232RL integriert hat. der 
atmega328 wurde dort entfernt und HEY es klappt!
Programme wurden ohne Probleme Draufgeladen.
Also liegt es am CP2102

@Stefan B.

>Funktionstest Converter: Wenn du TXD und RXD miteinander verbindest und
>mit einem Terminalprogramm den Adapter alleine prüfst: Kommt da ein
>Echo?


du schienst dich gut auszukennen. Ich aber leider noch nicht. Ich habe 
noch nie ein "Terminalprogramm" benutzt und weiß auch nicht wie ich das 
tun sollte, daher kann ich dir auf die Echofrage leider keine Antwort 
geben

>Wenn der CP2102 nicht ansprechbar ist: CP2102 kontra FT232RL kann einen
>Unterschied machen. Kontrolliere ob du zwei USB Geräte mit CP2102
>angestöpselt hast.

Wenn ich dich richtig verstanden habe, denke ich, ist nur ein Usb Gerät 
mit CP2102 verbunden.

Das mit dem restet stimmt der USB konverter wird Resettet wenn an GND 
angeschlossen aber bei 5v passiert nichts.


Soll ich dann jeweils einen XXohm Widerstand zwischen die TX und RX 
Verbindenung legen?

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Florian Roesner schrieb:

> Das mit dem restet stimmt der USB konverter wird Resettet wenn an GND
> angeschlossen aber bei 5v passiert nichts.

Pass bei solchen Experimenten auf! 5V auf einen Chip mit 3.3V Versorgung 
geben, kann den Chip killen!

Bete, dass der Converterbauer das berücksichtigt hat oder Silabs den 
CP2102 mit 5V-toleranten Eingängen ausgestattet hat.

Glück gehabt!

Im Datenblatt des CP2102 
(https://www.silabs.com/Support%20Documents/TechnicalDocs/cp2102.pdf) 
unter ansolute max. Ratings: max. 5.8V an /RST oder any I/O Pin.

> Soll ich dann jeweils einen XXohm Widerstand zwischen die TX und RX
> Verbindung legen?

Laut Datenblatt max. Output current sunk an /RST oder any IO-Pin 100mA. 
So viel schafft der Atmega8 nicht ran. Den angesprochenen Widerstand (in 
der TX-Leitung vom Atmega8 zum RX des Converters) kann man IMHO 
weglassen.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Terminalprogramme sind bein µC-Basteln Brot und Butter, d.h. 
Grundwerkzeuge. Näheres findest du dazu im Artikel RS232

von Florian R. (rager)


Lesenswert?

Dann dank ich mal dem Erbauer!
:D
Gut das nichts passiert ist.  huff

Ich hoffe du hast mir nciht schon die Antwort gegeben warum das mit dem 
Cp2102 nciht funktioniert. weil wenn ja habe ich sie nciht verstanden. 
:)

Also Fakt ist bei mir FT232RL Funktioniert bei mir gerade und der CP2102 
nicht. da ich aber mir jetzt den Konverter gekauft habe würde mein Ego 
sich natürlcih freuen den zum laufen zu bekommen. ( und es währe um 
einiges Praktischer)

LG,
Florian


PS. Ich fahr jetzt mal schnell zu Conrad und hol die richtigen 22pF 
kondensatoren :)
Wer weiß vielleicht ist das ja die Lösung..

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Florian Roesner schrieb:

> Ich hoffe du hast mir nicht schon die Antwort gegeben warum das mit dem
> Cp2102 nicht funktioniert. weil wenn ja habe ich sie nicht verstanden.

No Panic. Habe ich nicht, weil ich weiss es nicht.

> PS. Ich fahr jetzt mal schnell zu Conrad und hol die richtigen 22pF
> kondensatoren :)

Vielleicht sehen wir uns, weil da will ich auch noch hin.

von Florian R. (rager)


Lesenswert?

nur wenn du Hamburg, Wansbek gehst XD

von Florian R. (rager)


Lesenswert?

Soooooo...
Die Kondesatoren sind umgetauscht :)
aber leider Hat sich nichts verändert.
Aaaaber wenigsten sind jetzt die richtigen 22pF kondensatoren drin! ^^

Ich hab noch was rausgefunden.
Wenn ich den Atmega über den Arduino 2009 Programmiere muss der reset 
mit dem Atmega verbunden sein sonst kommt der Gleiche fehlerkode wie 
bein CP2102-USB.
Ich hab es versucht den Atmega ganz kurz vor dem Programmieren manuell 
zu reseten aber das bringt nichts...

hat noch jemand Ideen?

MfG
Florian

von Dr.PillePalle (Gast)


Lesenswert?

moin

Wenn schon müsstest du Reset während des gesammten Programmiervorgangs 
auf GND halten , aber obacht keine Verbindungen zu RS232/USB .

mfg

von Florian R. (rager)


Lesenswert?

Hat nichts geändert, leider. Immernoch der gleiche Fehlercode.

von Dr.PillePalle (Gast)


Lesenswert?

Auf deinem Foto ist + vom Steckbrett mit einem Anschluss deines 
USb/Rs232 Konverters verbunden und zusätzlich wird noch ein externes 
Netzteil verwendet . Glaub ich jeden falls aus dem Foto entnehmen zu 
können.
Verbinde  nur RX/TX/GND des Adapters mit dem Brett und versorge den MC 
über das Netzteil.

von MWS (Gast)


Lesenswert?

Du solltest Dir mal den Original-Arduino Schaltplan ansehen:
http://arduino.cc/en/uploads/Main/arduino-duemilanove-schematic.pdf

Lies Dir auch mal unter:
http://www.arduino.cc/en/Main/ArduinoBoardDuemilanove
den Punkt durch:
Automatic (Software) Reset

Dann siehst Du, daß der Reset per DTR des USB/RS232 Chips ausgelöst 
wird, da hilft's gar nix, daß Du Reset Deines China-Konverters mit µC 
Reset verbindest, Du brauchst das DTR Signal.

Am CP2102 ist's vorhanden, kommt nur drauf an, ob Du auch an das Signal 
ran kommst. An die Stiftleiste rausgeführt ist es offensichtlich nicht.

von Dr.PillePalle (Gast)


Lesenswert?

Er könnte aber auch den Reset manuell auslösen und dann 1/2 sec. warten 
bevor er den Upload startet . Nach Reset sollte der Bootloader ca. 1 
sec. aktiv sein.

mfg

von ANONYMOS (Gast)


Lesenswert?

SRY @ Florian.
Aber Du willst mehrer Atmega/8 | Atmega/168 | Atmega/328 (Arduino 
Familie)
benutzen , stehst unter Druck (Zeit!?) und mit Verlaub hast keine 
Ahnung.

Das wird nicht funktionieren und erzeugt nur Frustration.
Schau Dir erstmal ein paar Applikationprojekte | Datasheets an , und 
dann
befrage Dich selbst...

Ist nicht böse gemeint, im Gegenteil - eher Motivation

von Florian R. (rager)


Lesenswert?

Dr.PillePalle schrieb:
> Auf deinem Foto ist + vom Steckbrett mit einem Anschluss deines
> USb/Rs232 Konverters verbunden und zusätzlich wird noch ein externes
> Netzteil verwendet . Glaub ich jeden falls aus dem Foto entnehmen zu
> können.
> Verbinde  nur RX/TX/GND des Adapters mit dem Brett und versorge den MC
> über das Netzteil.

Das hat schon mal keinen unterschied gemacht :)  (leider)

@MWS

Das könnte helfen ich schau grad welche Pins Am CP2102 Bedratet sind.

https://www.silabs.com/Support%20Documents/TechnicalDocs/cp2102.pdf

Pin
3- GND
4- D+
5- D-
6- Vdd
9- RST
26- TXD
25- RXD

der Rest ist nciht belegt

24 und 28 sind die Resetpins dieacuh im Schaltpaln angegeben sind

http://arduino.cc/en/uploads/Main/arduino-duemilanove-schematic.pdf

Meint ihr wenn ich die verdrahten könnte ( so wie im Schaltplan) sollte 
es klappen?

ich mein so kann ich den USB ja eh nicht benutzen ob er dabei Kaputt 
gehen kann ist also nicht zu schlimm.

von MWS (Gast)


Lesenswert?

Florian,

wie aus dem Schaltplan zu sehen ist, ist auch RTS über einen Widerstand 
mit Reset verbunden, es währe immerhin möglich, daß der Uploader dieses 
Signal prüft. Wenn möglich also Beides, DTR und RTS vom Chinateil raus 
ziehen und laut Schaltplan Arduino verbinden.

> Meint ihr wenn ich die verdrahten könnte ( so wie im Schaltplan) sollte
> es klappen?

Es wäre möglich, aber es kommt eben darauf an, wie der Arduino Uploader 
sich verhält, z.B. ob er per RTS auf erfolgten Reset prüft und erst dann 
loslegt.

von ANONYMOS (Gast)


Lesenswert?

Geht alles ohne DTR RTS mit AVR-BURN-O-MAT --> ist AVR DUDE Aufsatz

Bei additional Option dort -b 19200 hinzufügen
     Programmer Stk500 auswählen

Usb --> rs232 ttl out --> auf AVR RX TX GND VCC connecten

Write --> JETZT ein Reset (bspw taster auf RST auf GND) ergo Arduino 
Bootloader startet

dann download

von Florian R. (rager)


Lesenswert?

ANONYMOS schrieb:
> Geht alles ohne DTR RTS mit AVR-BURN-O-MAT --> ist AVR DUDE Aufsatz
>
> Bei additional Option dort -b 19200 hinzufügen
>      Programmer Stk500 auswählen
>
> Usb --> rs232 ttl out --> auf AVR RX TX GND VCC connecten
>
> Write --> JETZT ein Reset (bspw taster auf RST auf GND) ergo Arduino
> Bootloader startet
>
> dann download

Hey das hört sich sehr interessant an!
http://avr8-burn-o-mat.aaabbb.de/
ist das die Seite?
und wärest du so lieb und beschreibst das nochmal ein wenig genauer :)
bitte bitte bitte

Florian

von ANONYMOS (Gast)


Lesenswert?

yes

Du musst den µC erstmal den Bootloader verpassen (ISP ).
   -du hast die Wahl welchen Boot... (Arduino-Boot-->(-b) 19200 Baud)
   -die Arduino IDE erzeugt das hexFile
   -dann mit bspw Burn-O-Mat flashen
   -wg. Reset , teste von Hand ( AvrDude <--> Boot...' )
   -( Arduino IDE zieht ueber DTR (Pin2 FT232 ) den RST des AVR )

von Florian R. (rager)


Lesenswert?

>Bei additional Option dort -b 19200 hinzufügen

Das wurde erledigt!

>      Programmer Stk500 auswählen

Hier ist es mir nicht möglich irgendetwas auszuwählen, da nichts zum 
auswählen gibt... weißst du was da los ist?

Ich habe meinenden Chip vorher hier drüber gebootloadet. (falls das von 
irgendeiner relevans ist)

http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html

ich habe sonst keine andere Hardware für so etwas. Hoffe das stört 
nicht.

> Usb --> rs232 ttl out --> auf AVR RX TX GND VCC connecten

Hiermit meist du doch den USB/Com Adapter mit dem Atmega verbinden oder?
Wenn ja, dann acuh erledigt.

> Write --> JETZT ein Reset (bspw taster auf RST auf GND) ergo Arduino
> Bootloader startet

Hierzu konte ich  ja leider noch nicht kommen :)

von Florian R. (rager)


Lesenswert?

Kennt sich sonst noch jemand damit aus?

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.