Sketche auf einen Barebone laden?

Hallo Leute,

mittlerweile habe ich diverse Bauteile aus China bekommen und diese auch zum laufen bekommen. yeah!!!!
Im Moment werkel ich an einer kleinen Wetterstation.

Mehrere Barebone Arduino sollen diverse Wetterdaten per 434Mhz Bausteine an eine Zentrale senden, die wiederum zum Anzeigen mit einem 2004 LCD verbunden ist.

Im Moment funktioniert schon mal das Auslesen und Anzeigen der verschiedenen Sensoren über meinen UNO Rev.3.
So weit, so gut.

Da ich ja damit schon mal klar komme, wollte ich alles auf einen Barebone Arduino mit ATMEGA328P-PU Controller portieren.

Wenn ich das bisher richtig verstanden habe, kann ich mit einem "USBtiny AVR ISP Programmer" den Bootloader auf einen blanko ATMEGA Chip brennen, ist das soweit richtig?
Diesen habe ich mir auch schon bestellt und liegt bereits vor mir.

Aber wie bekomme ich nun meine Sketche auf den Barebone Arduino?
Geht das auch über den Programmer, oder geht es hiermit:
http://www.ebay.de/itm/USB-2-0-to-TTL-UART-6PIN-Module-Serial-Converter-CP2102-STC-PRGMR-Dupond-cable-/251159448719?pt=Elektromechanische_Bauelemente&hash=item3a7a450c8f

Und wenn ja, wie schließe ich den TTL Converter an?

Gruß Lerion

hi,

Du kannst mit dem programmer den bootloader auf den mega laden, und dann mit einem FTDI das programm mittels des bootloaders draufladen, aber:

das ist ziemlich sinnfrei. mit dem programmer brauchst Du den bootloader nicht mehr, da Du die programme damit direkt raufladen kannst.
entwickle Deine programme mithilfe eines arduino, und wenn alles funktioniert, nimmst Du einen barebone, wie Du ihn nennst, und lädst das programm mit "upload mit programmer" direkt drauf.

gruß stefan

Ah, danke für die schnelle Antwort!

Wenn ich das jetzt richtig verstanden habe, kann ich mit dem "USBtiny AVR ISP Programmer" sowohl den bootloader als auch die Sketche auf einen Standalone brennen bzw. laden?

Gruß Lerion

Genau! So ein ISP ist für beides zu gebrauchen.

hi,

ich hab' das mal aufgeschrieben:

http://forum.arduino.cc/index.php?topic=156247.0

gruß stefan

Atmel AVR IPS MkII.gif

Genau das war es, was ich gesucht habe!

Ein dickes DANKESCHÖN!!!

hi,

bedanke Dich nicht zu früh.

als ich das damals aufgeschrieben hab', war ich auch noch begeistert. alles hat super funktioniert. ein paar tage später dann plötzlich probleme. manchmal ging es, dann wieder dauernd checksum errors beim programmieren.

ewig nach lösungen gesucht, der eine empfielt da einen kondensator, der andere dort einen widerstand. irgendwann hab' ich drauf gepfiffen und einen original atmel ISP MkII gekauft, seitdem nie wieder probleme.

das heißt nicht, daß es bei Dir auch so ist, die dinger sind sicher nicht alle gleich, aber falls es auf
Dich zukommt...

vor ein paar tagen hatten wir hier eine diskussion um original-arduinos und fernost-klone. ist dasselbe, kann, aber muß nicht.

gruß stefan

Ja, das hättest du nicht schreiben sollen.

Denn die Probleme fangen an.

Ich habe nun einen ATMEGA328P-PU mit Bootloader hier liegen.

Diesen habe ich dann auf ein Breadbord gesetzt und wie folgt verkabelt.

PIN 9 und 10 mit einem 16MHz Quarz und daneben mit je einem Keramik Kondensator 22PF gegen Masse

PIN 7 und 20 an ICSP VCC
PIN 8 und 22 an ICSP GND
PIN 19 an ICSP SCK
PIN 18 an ICSP MISO
PIN 17 an ICSP MOSI
PIN 1 an ICSP RST

Dann habe ich noch PIN 19 (SCK) mit einem 220 Ohm Wiederstand an einer LED und die andere Seite gegen Masse gelegt.

Ich benutze folgenden USBtiny AVR ISP:
http://www.ebay.de/itm/New-USBtinyISP-AVR-ISP-Programmer-For-Arduino-IDE-Bootloader-6pin-Cable-/390612390626?pt=LH_DefaultDomain_0&hash=item5af25012e2
Wie dort beschrieben habe ich den Jumper drin gelassen um damit den ATMEGA mit Strom zu versorgen.
Den Treiber für den AVR habe ich dem in der Beschreibung genannten Link entnommen und installiert. Im Gerätemanager wird er nun auch erkannt wenn ich ihn per USB verbinde.

Die LED an PIN 19 leuchtet auch wenn ich den AVR mit dem ATMEGA verbinde.
Kurz nachgemessen, 5,12V kommen an ICSP an. Also ist schon mal alles richtig verbunden.

Dann habe ich die Arduino IDE gestartet und folgendes getan:
• Tools---Board---den Arduino UNO ausgewählt
• Tools---Programmer---USBtinyISP ausgewählt
• Dann habe ich den Blink Sketch geladen
• Und dann per Datei---Upload mit Programmer den Sketch hochgeladen

Dann kommt allerdings folgener Text:
avr dude: initialisation failed, rc=-1
Double check connections and try again, or use -F to override this check.

Habe ich hierbei schon einen Fehler gemacht?

hi,

nimm vorsichtshalber die led weg, ich weiß nicht, ob die sck stört...
wenn Du blink gleich ausprobieren willst, ändere den sketch auf LEDPIN = 9 und häng' die led an pin 15.
sonst find' ich keinen fehler.

gruß stefan

Ich habe heraus gefunden wo der Fehler liegt.
Wenn ich den AVR per USB anschließe, erscheint er in der Systemsteuerung unter libusb-win32 devices, sollte er nicht eigentlich auch unter (COM & LPT) stehen?
Denn wenn ich am gleichen USB Port den UNO anschließe, hat dieser automatisch COM Port 7, wenn ich den AVR anschließe passiert nichts. Er weiß anscheinend also nicht wie er eine Verbindung bekommt.

Oder habe ich da gerade einen Denkfehler?

Gruß Denis

der programmer scheint nicht unter den com-verbindungen auf. das ist schon richtig. deswegen auch kein einstellen in der IDE.

gruß stefan

wenn Du keinen programmer dran hast, kommt beim upload:

Binäre Sketchgröße: 1.084 Bytes (von einem Maximum von 32.256 Bytes)
avrdude: Error: Could not find USBtiny device (0x1781/0xc9f)

wenn kein microcontroller am tiny hängt, kommt:

Binäre Sketchgröße: 1.084 Bytes (von einem Maximum von 32.256 Bytes)
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.

da hängt also irgendwas falsch. oder Du stehst vor demselben problem wie ich damals.

gruß stefan

Ok, die IDE braucht also keinen COM-Port für den USBtiny!
Dann habe ich allerdings keine Ahnung was ich noch tun könnte.
Bin mittlerweile echt am verzweifeln.

Ich habe den Aufbau nun schon zum 5. mal versucht.

Im moment kommt die untere Fehlermeldung. Aber es ist alles komplett angeschlossen.

Könntest du mal ein aussagekräftiges Foto deiner Beschaltung hochladen? Und dran denken: Bildauflösung ist nicht alles... :wink:


Bitte sehr, ich hoffe die sind nicht zu groß

fehler seh ich keinen. das bild vom stecker in meinem post von gestern ist eine abbildung von Deinem stecker im breadboard von oben.
Bei der buchse vom attiny kommt das kabel von links, wenn Du es richtig draufsteckst.

mich wundert, daß er gar keinen chip erkennt, das hatte ich nie.

gruß stefan

Wie groß ist denn die wahrscheinlichkeit, das der ATMEGA defekt ist?
Ich habe nun noch eine LED mit Wiederstand eingesetzt um sicherzustellen, das der Programmer richtig herum eingesteckt ist.
Da ich ja das Breadbord mit den 5 V vom Programmer speise leuchtet die LED auf.
Das funktioniert auch alles.

lerion:
Dann habe ich die Arduino IDE gestartet und folgendes getan:
• Tools---Board---den Arduino UNO ausgewählt
• Tools---Programmer---USBtinyISP ausgewählt
• Dann habe ich den Blink Sketch geladen
• Und dann per Datei---Upload mit Programmer den Sketch hochgeladen

Dann kommt allerdings folgener Text:
avr dude: initialisation failed, rc=-1
Double check connections and try again, or use -F to override this check.

Habe ich hierbei schon einen Fehler gemacht?

Ich bin ganz gewiss nicht der große Programmer-Bediener und lade zu 99,9% alles mit Bootloader hoch, aber wenn Du

  • die Arduino-Software
  • mit einem Programmer
  • auf einen jungfräulichen Chip
    ansetzt, dann ist die erste Aktion, die Du ausführen solltest, immer "Tools-Bootloader installieren".

Und zwar auch dann, wenn Du den Bootloader beim Sketch-Upload sowieso plattmachen möchtest oder Du sogar eine Board-Definition für einen Chip aber gar keinen passenden Bootloader hast.

Grund dafür sind die "Fuses" Definitionen in der Boards.txt Datei, und mit der Arduino-Software werden diese Fuses nur mit der Funktion "Bootloader installieren" gesetzt. Erst wenn die Fuses in einem speziellen Modus gesetzt wurden, kann meines Erachtens der Sketch-Upload mit der Arduino-Software und den Boards.txt Einstellungen funktionieren.

Also als erste Funktion immer "Bootloader installieren" mit dem Programmer testen.
Das muss nur einmalig gemacht werden, die Fuses-Einstellungen verändern sich danach nicht.
Und erst wenn "Bootloader installieren" einmal erfolgreich funktioniert hat, dann danach immer wieder "Upload mit Programmer" verwenden. So mache ich das mit neuen Chips jedenfalls, ich habe allerdings nicht denselben Programmer wie Du.

Hi, ich habe den Chip mit installiertem Bootloader gekauft.

Gruß Denis