Hallo Gemeinde, nach langer Pause habe ich mir ein neues Projekt zugelegt. Es ist eine Wörteruhr (clocktwo, wie auch hier im Forum) allerdings von www.caschoff.de Quellcode für die Hardware liegt als Arduino version vor. Ich habe arduino023 installiert und kann es auch fehlerfrei kompilieren. In der Baunleitung wird ein Arduinoboard benutzt mit einem Arduino USB Programmer. Den wollte ich mir sparen und habe das ganze mit einem Atmega168 zusammengesteckt. So weit so gut... ... mein Problem ist nun: wie kriege ich die Software auf mein Atmega168? Ich benutze normalerweise mySmartUSBlight und BASCOM (:O) Die kompilierte hex Datei habe ich auch schon gefunden, allerdings bin ich mir nicht mehr ganz sicher ob das alleine reicht... ... bei dem Arduino board werden ja, so weit ich das richtig verstanden habe, auch die fuses per Software gesetzt => ergo weiss ich auch nicht wie diese zu setzen sind, es sei denn es steht irgendwo... was mir allerdings bis jetzt verborgen blieb... Ich brauche wohl nicht zu erwähnen, das ich sonst mit Arduino nix am Hut habe, das erschliesst sich aus meinem Beitrag hier :O) Danke für Anregungen, Links zu helfenden Seiten, Lösungen oder virtuelle Ohrfeigen :O) edit: bin nebenbei nicht untätig :O) sauge gerade avr studio 5... mit 4 ging irgendwie nix, beim 5 er soll die Unterstützung für meinen Stick integriert sein... schaumama...
Ein Atmega168 kann mit dem ISP-ADapter mySmartUSBlight und mit der ISP-Software AVRDUDE geflasht werden. Auch die Fuses können so gesetzt werden. Dabei am besten die AVRDUDE Version benutzen, die vom mySmartUSBlight Hersteller myAVR in deren Anleitung zum ISP-Programmer beschrieben ist.
Danke für Deine Antwort, Krapao. Ich sauge erneut AVR Studio 5, auf meinem Laptop habe ich es jetzt nach 2 Stunden aktualisierungen aufgegeben, sitze jetzt vor meinem PC :O) und installiere erneut. Habe nebenbei mmanual gewälz und tatsächlich einen Ablauf für avrdude gefunden. Das werde ich simultan gleich testen, danke für den Tip !
so... avr studio 5 ist installiert.. suche seit einer halben stunde die ansicht für die fusebits... bei studio 4 ist es mir direkt ins gesicht gesprungen... hier bin ich am verzweifeln... schlaflos... am ende meiner kräfte... im arduino quellcode wird ein ext. quartz benutzt, den muss ich unbedigt abschalten, da ich keinen ran habe. geht das evtl auch anders ? danke vorab... hol mirn kaffee...
okok... fusebits habe ich gefunden und geschrieben... jetzt muss ich nur noch die hex datei schreiben... daran arbeite ich momentan
Für eine rel. genaue Uhr ist ein externer Quarz als Taktquelle eine prima Sache. Die interne Taktquelle eines AVR ist ja ein RC-Oszillator und der ist weniger genau, u.a. ist dessen Temperaturgang größer. Man kann den RC-Oszillator kalibrieren (Appnote von Atmel...) und wenn man sein Projekt bei rel. konstanter Temperatur betreibt, kann das eventuell ausreichend genau werden. Ein anderer Aspekt ist das verwendete Programm. Das wird i.d.R. für eine bestimmte Taktrate geschrieben sein - nämlich für die des externen Quarzes. Mit dem internen RC-Ozillator ist diese Taktrate eventuell nicht zugänglich. Ich weiss nicht, ohne im Datenblatt nachzuschlagen, was der Atmega168 als internen Takt anbietet. Möglicherweise nur 1 Mhz oder 8 MHz. Es ist Overkill das AVR Studio runter zu laden, wenn es nur um die Übertragung einer fertigen HEX-Datei geht. Dann reicht AVRDUDE allein schon aus. Für den Komfort ggf. noch ein AVRDUDE-GUI Programm für die Bedienung paer Maus. Das sind paar KB Download. Links zum Programm AVRDUDE finden sich im Artikel. Möglicherweise ist es auch auf der Begleit-CD deines ISP-Adapters mySmartUSBlight oder auf der Herstellerseite myAVR. AVRDUDE ist auch in folgenden (Windows)-Programmpaketen enthalten: WinAVR, AVR-Toolchain und Arduino-IDE.
>> Im arduino quellcode wird ein ext. quartz benutzt, den muss ich unbedigt >> abschalten, da ich keinen ran habe. geht das evtl auch anders ? >> danke vorab... hol mirn kaffee... > okok... fusebits habe ich gefunden und geschrieben... jetzt muss ich nur > noch die hex datei schreiben... daran arbeite ich momentan Wenn du die Original-Fusebits benutzt hast, dann bist du jetzt ausgesperrt, so wie im Artikel AVR Fuses beschrieben. Deinen Atmega168 kannst du mit ISP nur noch erreichen, wenn du den in eine Schaltung mit externem Quarz setzt.
Hallo Krapao, danke für den Tip, soweit habe ich noch mitgedacht, auch wenn es schon recht spät war :O) habe als erstes den int. quartz auf 8mhz gelegt. Hat soweit alles funktioniert mit avr studio 5 habe ich hex draufebügelt. Da ich aber die anderen fuses nicht kenne bzw. nicht weiss wie diese zu setzen sind, habe ich mal so ein andruino board bestellt mit usb programmer... dann sollte es hinhauen. achja, das mit avrdude habe ich nicht hinbekommen... deshalb avr studio... habe gefühlte 2 stunden installiert :O) Danke für deine Unterstützung ! Grüße
so... da ich noch weitergekommen bin, habe ich mal einen neuen Lösungsweg beschritten: habe mySmartUSB in Arduino eingebunden, die Vorgehensweise hierfür habe ich zusammengegoogelt, bin wie folgt vorgegangen: 1. programmers.txt erweitert mit mySmartUSB.name=mySmartUSB mySmartUSB.protocol=stk500v2 2. neus board hinzueditiert, und die mit >>> <<< markierten Werte geändert, da ich den internen Quarz benutzen möchte auf 8Mhz, den Rest habe ich gelassen wie Arduino es haben möchte: ################################################ atmega8.name=TEST ATmega8 atmega8.upload.protocol=stk500v2 atmega8.upload.maximum_size=7168 atmega8.upload.speed=19200 atmega8.bootloader.low_fuses= >>>0xca<<< atmega8.bootloader.high_fuses=>>>0xc4<<< atmega8.bootloader.path=atmega8 atmega8.bootloader.file=ATmegaBOOT.hex atmega8.bootloader.unlock_bits=0x3F atmega8.bootloader.lock_bits=0x0F atmega8.build.mcu=atmega8 atmega8.build.f_cpu=>>>8000000L<<< atmega8.build.core=arduino soooo... auf meinen breadboard befindet sich ein Atmega8, ISP verkabelt (+ ein 100nF zwischen VCC & GND) Ich starte Arduino, setze COM4, wähle mein editiertes board "TEST Atmega 8" und brenne anschliessend mit meinen mySmartUSBlight den bootloader... nach ca. 7 Sekunden habe ich die Rückmeldung das alles erfolgreich war. Ein Auslesen des hex mittels AVR Studio bestätigt mir das der vorher komplett leere Atmega nun im unteren Bereich beschrieben wurde... Jetzt versuche ich mittels USB-BUB (rx/tx gekreuzt, VCC,GND und RST angeschlossen) den Atmega zu beschreiben... und nix passiert... irgendwie komme ich nicht auf den Atmega drauf. Habe neben drann noch ein Arduino RBBB mit einem Atmega 328 versehen und von Werk aus bereits mit dem bootloader versehen, hier kann ich mit dem USB-BUB drauf schreiben... So langsam verliere ich meine Ziele aus den Augen :O) Ich möchte entweder mit meinem mySmartUSBlight oder dem USB-BUB aus Arduino Umgebung direkt auf einen AVR Prozessor schreiben können, ohne den Arduino RBBB... Das waren glaube ich meine Ursprungsziele vor ca. 10 Tagen... Das war mal wieder viel Zeug, ich hoffe alles verständlich rübergebracht zu haben :O) Danke für Eure Hilfe
Peter Hess schrieb: > da ich den internen Quarz benutzen möchte auf 8Mhz, Es gibt keinen 'internen Quarz' beim Mega48/88/168/328 , sondern nur einen ungenauen RC (Widerstands-Kondensator) Oszillator, der für eine Uhr ungeeignet ist. Für eine Uhr musst du zwingend einen (externen) Quarz nehmen, da die Uhr sonst sehr ungenau wird. Und das ist bestimmt nicht der Sinn der Sache. Denkbar wäre auch ne 50Hz Synchronisierung, das erfordert aber ne geänderte Software.
moin mschoeldgen, den meinte ich natürlich :O) Die Uhr läuft so weit, gesteuert über eine DS1307 und eben den Pollin DCF... Läuft auch bis jetzt ziemlich genau, ich möchte es aber debuggen über den serial Port, da die Sync. bzw. das schreiben der Werte in die DS1307 anscheinend nicht richtig funktioniert...
Etwas genauer: die Uhr sollte sich von alleine Stellen wenn man die Zeit grob (+/- 15 Minuten) stellt. Das macht meine eben nicht. Ich stelle sie genau ein, dann läuft sie auch genau... aber ich würde gerne wissen wo es hängt, deshalb hat mich dieses debuggen gepackt :O)
Peter Hess schrieb: > ... mein Problem ist nun: wie kriege ich die Software auf mein > > Atmega168? Hallo Peter... Auch wenn du die SW nun mittlerweile im Atmega "drin" hast: Es gibt noch eine (meiner Meinung nach) einfachere Methode In der Arduino-SW kannst du nach dem einstellen des Prozessors einfach SHIFT+Upload-Button drücken. Die SW erzeugt dir dann eine HEX-Datei, die du nun einfach z.B. mit AVR-Burner o.ä. Programmen in den ATMEL brennen kannst... Dirk
Hallo Dirk, mit shift habe ich es noch nicht probiert, ich habe es normal kompiliert und dann aus dem temp Ordner herauskopiert und mit AVR gebruzzelt. Das hat auch hingehauen, allerdings nicht mehr reproduzierbar :O) ich bekomme zwar immer noch alles kompiliert, die hex kann ich auch mit AVR brennen, aber die Software läuft nicht, es flackert alles nur auf der LED Matrix. Das hatte ich am Anfang auch mal, habe dann eine Woche rumgelötet und Fehler gesucht (die nicht vorhanden waren :O) bis ich dann eine andere Version geflasht habe, damit ging es reibungslos (V1.9 von Christian Aschoff). Momentan versuche ich die gleiche Version zu flashen, allerding mit einkommentierten debug, sonst alles gleich, um die Stati der DCF und anderer Komponente auf einen Terminal auszugeben. Da diese Kopiererei und mehrere Programme etc. ziemlich aufwändig ist dachte ich über eine Lösung nach um einfach aus Arduino direkt auf mein Atmega zu flashen. Es klappt zwar nach wie vor nicht, habe aber wenigstens wieder einiges dazugelernt :O) Also net ganz für umme ;O) Auch wenn ich bereits etwas resigniert bin, weil ich jede Nacht seit gut einer Woche bis um ca. 02:00 experimentiere wäre ein kleiner Erfog wünschenswert um meiner Bastelehre eine Streicheleinheit zu verpassen... :O)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.