Hallo zusammen, hab hier nen Atmega88 den ich proggen will. Ähm, nachdem die Materie absolut neu für mich ist, hab ich das Teil anscheinend verfust :-( Nun möcht ich heut Nachmittag, versuchen das Teil mit dem anlegen eines Taktes durch nen Quarzoszi wiederzubeleben. So wie in den Tutorials beschrieben. Ist es richtig, das ich den Takt anlegen muss (und angelegt lasse) um dann die Fuses wieder auf Auslieferungszustand zurückzusetzen? Als Anmerkung: Auf der aufgebauten Schaltung sitzt ein normaler Quarz. Muss dieser dann zum zurücksetzen abgelötet werden? Mein Fehler (DENKE ICH ZUMINDEST) war das ich zuerst die Fuses geproggt hab (mit den Einstellungen im Dateianhang) Und dann die hex Datei raufspielen wollte, was dann nicht merh ging?! So, wenn ich alles richtig verstanden hab, dann sollte man doch zuerst die hex Datei, dann die eep und danach die Fuses setzen? Noch eine andere Frage: Ich versteh immer noch nicht so ganz ob ich Vcc brauche... Hier mal die Schaltung um die es geht: http://www.doc-diy.net/photo/smatrig21/images/smatrig21_schematics200.png Vom Programmieradapter geht ja auch die Leitung Vcc weg. Auf meiner fertigen Platine hab ich ja auch Vcc als "Eingang". Jetzt weiß ich nicht ob ich nun die Batterie beim Programmieren einlegen muss und dafür Vcc nicht mit aufklemme oder ob ich Vcc anklemme und dafür die Batterie weg lasse... Oder ob ich da überhaupt Vcc brauche. Hier noch mein Progadapter: http://www.rn-wissen.de/index.php/AVR-ISP_Programmierkabel der hängt an nem Win XP Rechner. Bios Port ist auf EPP gestellt. Zum Proggen wollt ich Pony nehmen. Hätte aber auch das Win AVR Paket mit GUI. Fragen über Fragen. Ich hoffe ihr könnt mir etwas licht in mein Dunkel bringen. Bedanke mich im Voraus für Eure Hilfe. Gruß bonsai
Mit den Fuses aus deinem Anhang dürfte der Atmega88 nicht verfust sein. Die Taktquelle ist "Int. RC Osz." und das Anlegen eines externen Wiederbelebungstakts bringt nix. Vorausgesetzt, die Einstellung aus deinem Bild oben ist wirklich im Atmega88. Ich würde beginnen mit dem Multimeter die Schaltung zu untersuchen: # Ist Vcc da? # Wird RESET beim ISP Programmieren auf Low gezogen? # Ist RESET high, wenn das Programm laufen soll? # Klappern die ISP Leitungen beim ISP-Programmieren (niedrigste ISP Geschwindigkeit benutzen)? Die Schaltung ist "gewöhnungsbedürftig", mir springen ins Auge: # Der fehlende Pull-up Widerstand an RESET # Der ultrafette C2 Der gezeigte ISP-Programmieradapter hat keine eigene Spannungsversorgung. Du musst das Atmega88 Board mit Vcc versorgen und das wird dann über den Programmierstecker Pin 2 Vcc/2 an den ISP-Programmieradapter abgegeben (auf dessen Vcc-Netz).
Die notwendigen fuses beim atmega88 kenn ich nicht auswendig, aber: Das Aussperren geschieht meistens dadurch, dass man den internen Takt des Kontrollers oder den Quarzoszillator abschaltet und damit ist die ISP-Einheit im Kontroller stillgelegt. externes Anlegen eines Taktes hilft dann, nur muss die Bedingung f(extern) > 4f(ISP) erfüllt sein, damit die ISP-Einheit richitg arbeitet. Dumm wirds erst dann, wenn ISP-Eingang oder reset per fuse wegprogrammiert wurde (hier nicht der Fall). Dann ist ISP nur mit HV-Programmierung wieder zugänglich. Der externe Takt "überfährt" einfach den Quarz, er braucht nicht unbedingt ausgelötet werden. Höchstens ein 32-kHz Uhrenquarz kommt durch die Amplitude des externen Taktes in Gefahr. Fürs Programmieren braucht sowohl das Treiber-IC -244 als auch der Kontroller eine Betriebsspannung. Beide sollten etwa gleiche Betriebsspannung haben, sonst kann die Ausgangsspannung des -244 auf einer Leitung die zulässige Eingangsspannung des Kontrollers überschreiten oder umgekehrt. Wenns von der Stromaufnahme her geht, ist eine Verbindung der VCC's besser. Pony ist für Viele besonders in der Schreibweise mit den Häkchen bei den fuses unübersichtlich, da gibt es übersichtlichere Lösungen.
Helfer schrieb: > Die Taktquelle ist "Int. RC Osz." und das Anlegen eines externen > > Wiederbelebungstakts bringt nix. Vorausgesetzt, die Einstellung aus > > deinem Bild oben ist wirklich im Atmega88. Ich sag mal so: Der Screenshot (von des Fuses) ist von der Seite des Entwicklers. Und auf der steht das diese Einstellungen gesetzt werden sollen. Das hab ich auch so gemacht. Und genau seit dem habe ich keinen Zugriff mehr auf den Kontroller. Kann ihn auch nicht mehr auslesen. Ich bekomm nur noch die Meldung das es jetzt wohl kein Atm88 mehr sein soll (hab mir jetzt leider nicht gemerkt wie genau die Meldung war). Ich wüßte nicht was ich sonst falsch gemacht haben könnte? Wie schon gesagt. Bis zum setzen der Fuses hatte ich Zugriff. Helfer schrieb: > Die Schaltung ist "gewöhnungsbedürftig", mir springen ins Auge: Sorry. Hab das Ding nur nachgebaut. Soll aber wohl funktionieren. Zumindest hatten es einige Leute schon nachgebaut. Peter R. schrieb: > Fürs Programmieren braucht sowohl das Treiber-IC -244 als auch der > > Kontroller eine Betriebsspannung. Beide sollten etwa gleiche > > Betriebsspannung haben, sonst kann die Ausgangsspannung des -244 auf > > einer Leitung die zulässige Eingangsspannung des Kontrollers > > überschreiten oder umgekehrt. Wenns von der Stromaufnahme her geht, ist > > eine Verbindung der VCC's besser. Gut. Das heißt dann ich verbinde Vcc zu meiner Schaltung. Was mich jetzt etwas wundert: Beim Aufbau des Progradapters gehen ja 5V Vcc über die Diode an den -244 auf Pin 11 und Pin 20 und zusätzlich auf den Pin 6 vom Sub-D Stecker. Reicht das dann aus um den -244 und den Atm88 zu versorgen? Danke Euch.
> Gut. Das heißt dann ich verbinde Vcc zu meiner Schaltung. > Was mich jetzt etwas wundert: > Beim Aufbau des Progradapters gehen ja 5V Vcc über die Diode an den -244 > auf Pin 11 und Pin 20 und zusätzlich auf den Pin 6 vom Sub-D Stecker. > Reicht das dann aus um den -244 und den Atm88 zu versorgen? So betrachtest das so: VCCUC 5V +5V X1(6) VCC (Pin2) Netzteil o-------------o ISP- o----------o Atmega88 o-------------o Adapter o----------o GND GND GND GND So würde ich das nicht aufbauen, weil der ISP-Adapter dann immer angeschlossen sein muss, wenn der Atmega88 programmiert (logisch) werden soll und wenn er laufen soll (unlogisch). Grundsätzlich sollte die Spannungsversorgung zuerst an den Atmega88 (Targetboard) und von dort aus kann der ISP-Programmieradapter versorgt werden. Der braucht kaum Strom, das sollte passen. 5V VCCUC VCC ISP-Adapter (keine Pin-#!) Netzteil o-------------o Atmega88 o----------o +5V o-------------o o----------o GND GND GND GND o----------o Reset o----------o Sck o----------o MiSo o----------o MoSi VCCUC gelangt über den ISP-Programmierstecker (Pin2) an den ISP-Programmieradapter (VCC/2) und über die Diode (Verpolschutz) auf die VCC Versorgung des ISP-Programmieradapters, also an 74*244.
Ahh! Jetzt hab ich kapiert! Danke für die "Skizze" Ich soll die 5V direkt auf VCCUC legen (in meinem Fall vor den Kondesator = sprich 4, 6, 18 bekommen +5Volt sowie 3, 5, 21 bekommen GND vom Netzteil) demnach wird dann meine 5V Versorgungsspannung im Atemaga88 "durchgeleitet" und liegen dann an meinem Targetboard auf VCC an. Von dieser dann letzendlich über die Diode auf meinen74HCT244. Dann ist doch aber die Schaltung vom ISP Dongle (Link oben) falsch? Da kommt doch (oben, rechts) die Versorgungsspannung und geht auf die Diode und auf den Stecker! Naja dann werd ich die Sache mal so anschließen. Ähmm. Zwecks der Reihenfolge... 1. hex-File 2. eep-File 3. Fuses umstellen Richtig?
Hi >Ähmm. Zwecks der Reihenfolge... >1. hex-File >2. eep-File >3. Fuses umstellen >Richtig? Ist egal. Wenn du mit den Fuses eine höhere Taktfrequenz einstellst kann auch der ISP-Takt höher sein und das Programmieren geht schneller. Nur die Lock Bits sollten als letztes gesetzt werden. MfG Spess
> Ich soll die 5V direkt auf VCCUC legen (in meinem Fall vor den > Kondesator = sprich 4, 6, 18 bekommen +5Volt sowie 3, 5, 21 bekommen GND > vom Netzteil) > demnach wird dann meine 5V Versorgungsspannung im Atmega88 > "durchgeleitet" Nö, nicht "durchgeleitet". Es muss Leiterbahnen/drähte geben von dem Punkt wo du +5V anschliesst (VCCUC) bis zu den Vcc-Pins am Atmega und dem Pin an der Programmierbuchse im Schaltplan des Targetboards (bezeichnet mit Vcc). Im Stromlaufplan des Atmega88-Targetboards hast du ein VCCUC-Netz und ein GND-Netz und die Spannung/GND vom Netzteil müssen an diese Netze angeschlossen werden. Die vollständigen Leitungszüge dieser Netze sind in dem von dir gezeigten Bildchen nicht explizit angegeben, nur die Anfänge, um die Zeichnung einfacher lesbar zu machen. Aufbauen/Routen muss man die Leitungen (s.u. #1) aber! 5V VCCUC VCC ISP-Adapter #1 (keine Pin-#!) +----------+ | | Netzteil o-+---------+-o o----------o +5V |1µF | === === Atmega88 | 100nF| o-+---------+-o o----------o GND | | --- --- GND GND GND o----------o Reset o----------o Sck o----------o MiSo o----------o MoSi Der dickere C2 sitzt normalerweise im oder in der Nähe des Netzteils bzw. der Netzteilbuchse. Zusätzlich sitzen kleinere Abblockkondensatoren von ca. 100nF an jedem Vcc-GND Paar ganz in der Nähe der versorgten ICs oder µCs. In dem Stromlaufplan des ISP-Programmadapters oben links sind ein Vcc-Netz (-> Symbol) und ein GND-Netz (-| Symbol) zu sehen. Der 74*244 ist an dieses Netz angeschlossen. Und eine Vcc/2 Zufuhr (->> Symbol). Über das ISP-Programmierkaben werden Vcc des Targetboards mit Vcc/2 und dann Vcc des Programmieradapters verbunden (inkl. der anderen Leitungen).
Also hat alles nix gebracht. Der Parallele mag nicht! Danke nochmal an Alle! Kann mir von Euch nun jemand mal die Reihenfolge erklären, nach der ich proggen muss? Nochmal zum Aufbau: -nagelneuer Atmega88PA (nochmal nen neuen gekauft) -serieller Progadapter (nachdem ich meinen parallelen gegen die Wand geklatscht hab, weil gar nix ging) den hier: http://s-huehn.de/elektronik/avr-prog/avr-prog-alt.htm -Pony Prog (bzw. AVR Dude, der aber meinen Adapter nicht erkennen will = Fehler: Com1 ist kein Printerport) -Hab eine .hex-File und ein .eep-File sowie einen Screenshot wie die Fuses gesetzt werden sollen. dieses Projekt: http://www.doc-diy.net/photo/smatrig21/?german=1#build_your_own (bissl runterscrollen!) ------------------------------------ In welcher Reihenfolge muss ich nun programmieren? .hex-File danach das .eep-File und wenn alles geproggt ist die Fuses setzen? Oder muss ich vorher bestimmte Fuse einstellungen setzen (um überhaupt schreiben zu können) und danach dann die Files programmieren und am Schluss nochmal Fuses setzen (wie z.B. dann umstellen auf ext. Quarz)?? Zur Info: Jetzt im Moment ist ein 32 kHz Uhrenquarz mit auf der Platine. Kann der drauf bleiben wenn ich proggen will oder sollte ich ihn ablöten und danach (wenn dann die Fuses auf ext. Quarz stehen) wieder auflöten? ----------------------------------- So nun hab ich alles angeschlossen. Pony Prog kann die Fuses auslesen, wenn ich aber irgendwas vom AVR lesen oder schreiben will, kommt die Meldung: "unable to probe device, bad device or device locked -(25)" Gibts irgendwelche bestimmten Einstellungen auf der die serielle Schnittstelle unter WinXP gesetzt werden muss? Handshake, Baud, Flusssteuerung usw.? Danke für Eure Hilfe! Gruß Fritz
Du tippst am besten bei Ebay mal: "USB ISP Programmer" ein und kaufst Dir für 20€ einen USB Programmer Fritz S. schrieb: > 32 kHz Uhrenquarz Da lass lieber den internen Ocillator mit 1Mhz laufen
Vielleicht ist auch nur deine ISP-Frequenz zu hoch. Stell sie doch mal auf 4kHz oder so. Das ist dann zwar laaaaahm, aber du kannst auch noch einen µC, der mit einen Uhrenquarz läuft, programmieren. Gruß Jontahan
Hi >Kann mir von Euch nun jemand mal die Reihenfolge erklären, nach der ich >proggen muss? Nochmal: Ist, bis auf die Lock Bits, egal. >Pony Prog kann die Fuses auslesen, wenn ich aber irgendwas vom AVR lesen >oder schreiben will, kommt die Meldung: >"unable to probe device, bad device or device locked -(25)" 1. Welch Werte liest du bei den Fuses aus? stimmen die mit den Default- Werten aus dem Datenblatt überein? 2. Wie sieht denn deine Stromversorgung aus? MfG Spess
Ich weiß!!!!! Das ein gekaufter Programmer besser ist als ein selbst Zusammengepfuschter, das hab ich nun schon öfter gehört! Aber im Moment hab ich nur den! Ok. Blöde Frage, wie stelle ich die ISP Frequenz herunter? Also die Fuses die ich auslese, stimmen mit dem Datenblat überein. Und der Atmega bekommt aus einem Labornetzteil direkt auf alle AVcc und Vcc, Saft (sprich: der serielle Adapter hat ja keine "Rückleitung", daher bekommt nur der AVR seinen Strom). Melden tut er sich ja. Ok. Das heißt im Werkszustand muss ich nicht erst "irgendwas" unlocken, damit ich ihn beschreiben kann. Ich war nur etwas verwirrt, da die Fehlermeldung hieß"... or device locked".
So ich habs endlich geschafft dem Teil ein Lebenszeichen zu entlocken... Nächstes Problem: avrdude: Version 5.10, compiled on Jan 19 2010 at 10:45:23 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2009 Joerg Wunsch System wide configuration file is "C:\WinAVR-20100110\bin\avrdude.conf" Using Port : COM1 Using Programmer : ponyser Setting isp clock delay : 1000 AVR Part : ATMEGA88PA Chip Erase delay : 9000 us PAGEL : PD7 BS2 : PC2 RESET disposition : dedicated RETRY pulse : SCK serial program mode : yes parallel program mode : yes Timeout : 200 StabDelay : 100 CmdexeDelay : 25 SyncLoops : 32 ByteDelay : 0 PollIndex : 3 PollValue : 0x53 Memory Detail : Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- eeprom 65 5 4 0 no 512 4 0 3600 3600 0xff 0xff flash 65 6 64 0 yes 8192 64 128 4500 4500 0xff 0xff lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00 signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00 Programmer Type : SERBB Description : design ponyprog serial, reset=!txd sck=rts mosi=dtr miso=cts avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.33s avrdude: Device signature = 0x000102 avrdude: Expected signature for ATMEGA88PA is 1E 93 0A avrdude: safemode: lfuse reads as 0 avrdude: safemode: hfuse reads as 0 avrdude: safemode: efuse reads as 0 avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: current erase-rewrite cycle count is -50462977 (if being tracked) avrdude: erasing chip avrdude: reading input file "C:\smatrig21.hex" avrdude: input file C:\smatrig21.hex auto detected as Intel Hex avrdude: writing flash (7926 bytes): Writing | ################################################## | 100% 814.88s avrdude: 7926 bytes of flash written avrdude: verifying flash memory against C:\smatrig21.hex: avrdude: load data flash data from input file C:\smatrig21.hex: avrdude: input file C:\smatrig21.hex auto detected as Intel Hex avrdude: input file C:\smatrig21.hex contains 7926 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 800.66s avrdude: verifying ... avrdude: verification error, first mismatch at byte 0x0000 0x85 != 0x00 avrdude: verification error; content mismatch avrdude: safemode: lfuse reads as 0 avrdude: safemode: hfuse reads as 0 avrdude: safemode: efuse reads as 0 avrdude: safemode: Fuses OK avrdude done. Thank you. Weiß da jemand Rat?? Danke.
Fritz S. schrieb: > So ich habs endlich geschafft dem Teil ein Lebenszeichen zu entlocken... Glaubst du. Schau dir doch mal das Protokoll an. Überall wo avrdude etwas auslesen sollte, steht da 0. > avrdude: safemode: lfuse reads as 0 > avrdude: safemode: hfuse reads as 0 > avrdude: safemode: efuse reads as 0 Das Ding ist weg. Wie du das geschafft hast, weiß ich nicht. Aber diese Billigsdorfer Lösungen von Brennern taugen nun mal nichts.
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.