Forum: Mikrocontroller und Digitale Elektronik Atmega32, Verify error in AvrProg, Bootloader drauf. programmierung über RS232 ging hunderte male


von Waldemar F. (wally)


Angehängte Dateien:

Lesenswert?

Hi.
Hab n kleines Board hier mit nem LCD, ner RS232 Schnittstelle und nem 
Atmega32. War vorinstalliert mit Bootloader.
Habe AVR-Studio installiert, WinAVR usw. Habe Testprogramme vom 
Verkäufer bekommen, einige ausprobiert. Dann angefangen selber zu coden. 
Alles wunderbar. Text auf LCD anzeigen usw. hin und her getestet. Mal 
das anzeigen, mal da was hochzählen und anzeigen usw ... alles gut.

Plötzlich bekomme ich ein Verify error ... siehe Bild im Anhang ... da 
ich die ganze Zeit mit Hilfe des Bootloaders geflasht hab, kann der sich 
doch nicht selbst überschreiben. Und der kann doch nicht einfach so FUSE 
oder sonst welche LOCK Bits setzen ? ...

Sobald ich "Program" drücke, kommt der Ladebalken usw, dann macht der 
automatisch Verify und sobald der damit anfangen will kommt der Error. 
Wenn ich nur Verify drücke, kommt sofort der error.
Ich kann EEPROM lesen, schreiben, verify.
Ich kann aus dem Programflash lesen, das gelesene verify und auch wieder 
schreiben. Sobald ich anderen code schreiben will (nur anderer inhalt 
einer variable, oder sonst ein kleiner käse der nix damit zu tun hat) 
kommt ein verify error. sogar kürzen des codes hat nix gebracht ... 
zwischen dem program was drauf ist und dem was ich jetzt drauf machen 
will ist nur ein zeichen anders  weniger zeichen  irgendwas anders ...

das ist mitten beim testen passiert ...
board an, avrprog an, "program" gedrückt, program und verify fertig, 
avrprog zu, board aus, board an, bootloader abwarten, bootloader vorbei, 
programm wird ausgeführt "Hallo" auf LCD angezeigt, paar LEDs leuchten 
abwechselnd auf (schleife im code usw.) ... board aus, weiter proggen

dieses vorgehen wiederholt sich zig male ... ständig was anderes testen
dann auf einmal:
board an, avrprog an, "program" gedrückt, program statusbalken erscheint 
ganz normal von links nach rechts, verschwindet (hier fängt verify an) 
und es kommt n error (bild) ...

kennt das jemand? hat das irgendwas mit lock bits zu tun? wie kann das 
sein, dass die gesetzt werden trotz bootloader?. mir ist aufgefallen, 
dass mein code ca. 10KB groß ist. wenn ich den flash auslese kommt 
allerdings eine hex zustande die 45kb groß ist ... diese kann ich auch 
wieder schreiben usw ... aber alles andere nicht ?! ... wenn ich die 
schreibe motzt der allerdings was von bootarea usw ... hab schon alles 
mögliche hin und her geklickt im avrprog ... nichts hat sich verändert. 
bootloader startet, nach paar sec das prog von mir ...

mir ist klar, dass ich früher oder später ein ISP brauche ... hab 
nämlich keinen ... kann ich vorrübergehen (oder wenn er funzt dauerhaft) 
diesen verweden? http://www.rowalt.de/mc/avr/avrboard/01/avrb01.htm ... 
das könnte ich auf die schnelle bauen, kennt einer diesen ISP ? kann ich 
den einfach mit dem AvrProg nutzen oder wie funktioniert das dann? Muss 
ich was im Studio einstellen? Hab nämlich keine Ahnung von ISP... 
brauchte ne Weile um zu kapieren wie ich das mit dem Bootloader 
hinbekomme (PC mit dem Board über Nullmodemkabel verbinden (hab die 3 
Kabel am board selbst gelötet), Board an, Board aus, Board an, AvrProg 
an, funzt. board an dann wieder aus braucht man damit windows erkennt, 
dass da was ist - anscheinend ... aber nur beim ersten mal .. dann gehts 
immer mit board an, avrprog an usw ...

oder kennt einer diesen USB ISP 
http://www.b-redemann.de/produkte-programmer.shtml ... der kann 
anscheinend auch high-voltage irgendwas ... ist anscheinend manchmal 
wichtig wenn man es mit den fuses verhunzt hat ...

wäre cool wenn einer meine probleme schonmal hatte und ein einfachen 
trick für mich parat hat ... wäre auch cool wenn einer von euch einen 
von beiden ISP kennt und mir sagen kann mit welchem programm ich die 
benutzen soll(te) bzw. wie. ... ...

Danke erstmal fürs lesen, Danke fürs sich-gedanken-machen und vielen 
herzlichen Dank schon im Voraus für eure Antworten.

Viele Grüße und erstmal Gute Nacht (Bis Morgen) ;)
Waldemar

von Waldemar F. (wally)


Lesenswert?

Komischerweise kann ich mein Beitrag nicht mehr bearbeiten, egal.
Wollte nur sagen, falls Daten fehlen. Welches Board ich hab, Schaltbild 
und ka was noch, screenshots von anderen Menus oder sowas, mache ich 
gerne und gebe ich euch gerne. Sagt mir nur was ihr braucht.

von Waldemar F. (wally)


Angehängte Dateien:

Lesenswert?

Habe mir jetzt paar widerstände, dioden und den elko besorgt, schnippsle 
gleich an nem LPT Kabel rum und löte ein bisschen zusammen. Ich werde 
berichten falls es geklappt hat, falls ich nicht berichte hab ich mein 
mainboard geschrottet ... kann mir noch einer kurz sagen, wenn ich den 
ISP baue und anschließe, der wird ja vom LPT mit Strom (5V glaub ich) 
versorgt ... DARF ich oder DARF ich NICHT noch externe Spannung anlegen 
die ich sonst zum Betrieb des Boards benutzt hab. Kann es sein, dass der 
Atmega32 mit LCD zu viel Strom verbrauchen für den LPT? Kann der Kaputt 
gehen? Wie kann ich mein LPT davor schützen? Im Anhang der Schaltplan.
Oder sollte ich die Stromversorgung vom LPT weg lassen und nur die 
externe benutzen (auf meinem evalboard) ?

Grüße

von Martin (Gast)


Lesenswert?

Hallo am LPT kannst du keine speisespannung abgreifen, du solltest den 
Progger extern speisen sonst geht das nicht.

von Waldemar F. (wally)


Angehängte Dateien:

Lesenswert?

Hi. Aber der Programmer besteht doch nur aus dem lpt-anschluss und 3 
widerständen. wie man dem Bild weiter oben entnehmen kann. und da werden 
ein paar Pins zusammengeschlossen um eine + Spannung zu erzeugen und 
bissl Gnd abgegriffen. Das sollte wohl für die Versorgung des Atmega32 
reichen ... Oder verstehe ich da was gründlich falsch und da ist noch 
irgendwo ein Gerät dazwischen? ... hier ist der Link 
http://www.rowalt.de/mc/avr/avrboard/01/avrb01.htm ... steht ab "Das 
Programmiergerät" ... im Anhang das Bild des Programmers ... oder ist 
das keiner?!
wenn ich die daten-pins abgreife, und mit den dioden nur die + Spannung 
raushole, in ein Kondensator lade (wie auf dem Bild) hab ich doch ne 
"konstante" + Spannung ... mit den Gnd-Pins hab ich dann doch ne 
wunderbare stromquelle. Sollte ich da aber vielleicht zwischen dioden 
und Elko n Widerstand machen um nicht zu viel Strom aus dem LPT zu 
"saugen" ? ...

oder meinst du, dass ich nur die 3 Widerstände anschließen soll und mein 
Atmega extern über das Board betreiben?

von Markus C. (ljmarkus)


Lesenswert?

Der Atmega muss extern versorgt werden. Denke auch daran, dass es nicht 
mit dem LPT Programmer funktionieren "muss" da  es von Mainboard zu 
Mainboard unetrschiedlich ist.

von Waldemar F. (wally)


Angehängte Dateien:

Lesenswert?

Alles klar. Anscheinend bin ich stolzer Besitzer eines ISP ^^ hehe ... 
was komisch ist ... die FUSEs sind anders gesetzt als der Verkäufer mir 
auf einem Screenshot geschickt hat... Da ich nicht einfach rumklicken 
will um nix kaputt zu machen (sodass ich ein HV-Programmer brauche) 
wollte ich euch fragen ob man da schon sieht welche Bits falsch gesetzt 
sind und diesen Verify error verursachen könnten ... bzw. welche Bits 
muss ich setzen um einen Schreibschutz rein/raus zu machen ... oder 
stimmt was an der Anzeigen nicht? Wenn ihr wollt lade ich nachher noch 
ein paar Bilder von meinem-billig ISP hoch :) ...

mfg

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Waldemar Fech wrote:
> Hi. Aber der Programmer besteht doch nur aus dem lpt-anschluss und 3
> widerständen. wie man dem Bild weiter oben entnehmen kann.

Und genau deswegen ist die Funktionalitaet eines solchen Programmers 
auch eine Zufallsvariable...

von Waldemar F. (wally)


Lesenswert?

ich verstehe nicht ganz was mir das sagen soll.
nicht falsch verstehen, ich programmierte bislang über RS232, quasi über 
den bootloader ... plötzlich gins nich mehr ... aber das weißt du sicher 
weil du sicher meine gründliche beschreibung oben gelesen hast.
ob der ISP funktioniert weiß ich eben nicht, weil ich eben noch nicht 
alle funktionalitäten getestet habe wie z.B. Fuses setzen ... damit 
wollte ich erst warten bis mir jemand sagt "ganz klar, das Lockbit ist 
gesetzt, deswegen der Verifyfehler beim flashen" ... oder sowas ...
meiner meinung nach: würde der ISP nicht funktionieren, würde die 
verbindung erst garnicht aufgebaut werden können, ständig andere / wirre 
werte rauskommen und das programm (twinavr, screenshot) könnte damit 
nichts anfangen .. zufälliger weise sind viele bits gleich denen auf dem 
screenshot des verkäufers. was NICHT heißt, dass die Bits und FUSEs so 
bei der Auslieferung gesetzt waren wie auf dem Bild. Ich bezweifle 
außerdem, das der Verkäufer zu jedem Gerät das er verkauft die gleiche 
Anleitung zur Inbetriebnahme schreibt wobei er ständig neue screenshots 
von den einstellungen jedes gerätes macht ...
übrigens konnte ich den flash auslesen ... oder was auch immer ich da 
ausgelesen hab ... und da standen sachen drin die mir rückschluss darauf 
geben, dass er funktioniert ... kann den text einiger variablen erkennen 
usw ...
falls noch fragen offen sind, gerne. umso mehr fragen ihr stellt, umso 
mehr beantworte ich und umso höher die wahrscheinlichkeit, dass einer 
etwas mit allen antworten anfangen kann und mir einen tipp geben kann.

danke vielmals für eure hilfe

von Waldemar F. (wally)


Lesenswert?

ES GEHT! ... es funktioniert wieder ...

Folgendes habe ich gemacht in kurzfassung.
-Fehler bekommen (Verify)
-Nach einfachem selber-bau ISP gesucht. Gefunden bei 
http://www.rowalt.de/mc/avr/avrboard/01/avrb01.htm ... 3 Widerstände 
besorgt (gebrauchte ausgelötete, 220 Ohm) und wie Anleitung auf der 
Website verbunden. Dioden und Elko (Stromversorgung) weggelassen, da das 
Board extern mit Strom versorgt wird.
-TwinAVR runtergeladen.
-WinXP Treiber "installiert" .. einfache eine mitgelieferte .sys in den 
system32\drivers ordner kopieren, eine exe ausführen (und "start" 
drücken)
-ISP an PC und Board angeschlossen
-Board an, TWINAVR.EXE ausgeführt, erstmal Config angeklickt um die 
Fuses zu sehen, Screenshot gemacht und hier im Forum gemeldet
-Funktionalität nach Kritik hier im Board getestet durch lesen des 
Flashspeichers, schreiben der gelesenen Datei. -funktioniert
-Mal den flash löschen, -funktioniert
-Bootloader (vom Verkäufer mitgeliefert), geflasht - hat nicht 
funktioniert und hat FUSEs verändert
-FUSEs wieder so eingestellt wie auf dem Screen hier im Forum => 
festgestellt, dass FUSEs einstellen AUCH funktioniert!
-Bootloader selber kompiliert, geflasht, hat FUSEs wieder verändert, 
egal, neu gestartet

-AvrProg ausgeführt (damit habe ich vorher über den Bootloader 
geflasht), !!!!!!FUNKTIONIERT!!!!!! (Zwischendrin habe ich den AvrProg 
ausgeführt, da hat es aber nicht geklappt, habe ich nicht extra 
aufgelistet, ist so schon lang genug)

-mein c-code an dem ich stehen geblieben bin nochmal kompiliert, 
geflasht, funktioniert, geändert, kompiliert, geflasht, funktioniert ... 
usw.

Also... ISP zum selber bauen mit nur 3 Bauteilen.. ist sehr billige und 
funktioniert.

Falls einer mehr wissen will, einfach fragen. Ich kann auch Screenshots 
hochladen falls es einen interessiert.


Übrigens. Die Lock Bits BLB01 BLB02 BLB11 sind jetzt nicht mehr gesetzt 
... also null ... also hacken



Vielen Dank für eure Hilfe an alle die mir versuchten zu helfen!!!
Hört auf zu spammen an alle die Texte ohne inhaltlichen Wert geschrieben 
haben!!!

Wer sich angesprochen fühlt ist selber "schuld" .. hehe ..

Beste Grüße
Waldemar

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.