PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Warum kann ich bei den FUSES-High das Bit BOOTSZ0 nicht mehr rücksetzen (programmed)



Bernd_Stein
06.07.2019, 12:39
Hallo zusammen,

bei einem ATmega1284P ( MELZI-BOARD ) kann ich die FUSE-High-Bits von $9B nicht auf $99 ( shipped ) ändern.
Also das BOOTSZ0 soll auf 0 ( programmed ) bzw. siehe Anhang.

Ich benutze das ATMEL-STUDIO7 und den ATMEL-ICE per ISP.

Was muss ich tun um die FUSE-High-Bits auf $99 stellen zu können?


Bernd_Stein

Holomino
06.07.2019, 13:21
The Boot Lock bits can be set in software and in Serial or Parallel Programming mode, but they can be
cleared by a Chip Erase command only.

Vermutlich mal einen ChipErase ausführen?

oberallgeier
06.07.2019, 14:26
.. Ich benutze das ATMEL-STUDIO7 .. Was muss ich tun um die FUSE-High-Bits auf $99 stellen zu können? ..Also einmal gibts ne Hilfe zum Setzen von Fuses - klick hier (http://www.engbedded.com/fusecalc/). Und danach das BOOTSZ0 löschen.

Von hier :

......https://dl.dropbox.com/s/tkp7x2g5b38l0en/Fuses-1284P-HI-0x9B.jpg?dl=0

nach da:

......https://dl.dropbox.com/s/6e6zymznto42jbn/Fuses-1284P-HI-0x99.jpg?dl=0

Also BOOT Flash section size=4096 words ... default ...



.. Vermutlich mal einen ChipErase ausführen?Hmmm, whow! Offenbar. Ich habs grad bei (m)einem 1284P@20MHz probiert. Win7Pro, Atmel Studio 7, Version 7.0.1931. Vorm ChipErase gings nicht, danach schon. Was fürn tricky Ding.

Holomino
06.07.2019, 15:37
Vor dem Hintergrund, dass man sich mit geänderten BOOTSZ-Fuses den Bootloader zerschießt, aber doch verständlich, dass man das verrammelt und verriegelt bis zur letzten Konsequenz (alles Löschen - alles Neu).

Bernd_Stein
06.07.2019, 20:12
...

Hmmm, whow! Offenbar. Ich habs grad bei (m)einem 1284P@20MHz probiert. Win7Pro, Atmel Studio 7, Version 7.0.1931. Vorm ChipErase gings nicht, danach schon. Was fürn tricky Ding.

Schade bei mir geht es nicht. Der Fehler kommt erst beim Vergleichen ( Verify ). :(:(:(

342603426134262

Bernd_Stein

Bernd_Stein
07.07.2019, 12:54
Muss ich etwa an den Lock-Bits rumschrauben ?

34263

In dem Video wird in Minute:Sekunde 19:25 von $3F ausgegangen.

https://www.youtube.com/watch?v=MCNz3QOsYpQ

Bernd_Stein

Holomino
07.07.2019, 16:09
Das der Fehler erst beim Verify auftritt, ist normal - beim Brennen selber wird da nix gecheckt.

Was Du noch probieren kannst:
- Die ISP-Progger-Frequenz runtersetzen (Der Controller läuft jetzt mit internem Oszillator und 1MHz)
- Mal eine andere Variante des 1284 aus der Deviceliste ausprobieren, die Signaturen der Typen P und PA sind teilweise gleich (allerdings sollten auch die Fuses gleich sein, wenn nicht, dann hättest Du ein undocumented Feature gefunden)
- Ein Firmware-Update für Dein ICE suchen. Vielleicht hat es irgend jemand wirklich mal softwaretechnisch verbockt.



-

Bernd_Stein
07.07.2019, 18:14
Das der Fehler erst beim Verify auftritt, ist normal - beim Brennen selber wird da nix gecheckt.

Was Du noch probieren kannst:
- Die ISP-Progger-Frequenz runtersetzen (Der Controller läuft jetzt mit internem Oszillator und 1MHz)


Habe ich bereits gemacht ( 32,65kHz ). Allerdings kommt es bei noch niedrigeren Programmierfrequenzen zu einem Timeout.
Die FUSE-Einstellungen des Russen scheinen nicht gut gewählt zu sein, da ein Keramik-Resonator ausgewählt wird & BOOTRST aktiviert ist, ich aber per ISP-Schnittstelle flashe und nicht per Bootloader.

3426834269

Der ATmega1284P wird auf dem MELZI-Board mit einem 16Mhz Quarz betrieben. Deshalb habe ich die FUSE-Bits momentan so eingestellt ( EX=$FF, High=$DF, Low=$DE ).
Aber die Werkseinstellung für FUSE-High $99 funktioniert seltsamerweise immer noch nicht.

3427034271



- Ein Firmware-Update für Dein ICE suchen. Vielleicht hat es irgend jemand wirklich mal softwaretechnisch verbockt.


Mittelerweile benutze ich den AVRISP mkII, weil ich schon mal das Phänomen hatte, dass es hiermit klappte und mit dem ATMEL-ICE nicht.
Auf ein Update verzichte ich erstmal bewust um mir nicht noch mehr Fehler einzuhandeln als ich schon habe.

Es gibt immer ein Problem an Adresse $0000, also direkt zu Programmanfang in der Vektor-Tabelle des ATmega1284P.
34272


Bernd_Stein

Holomino
07.07.2019, 19:49
Hat mir jetzt doch keine Ruhe gelassen:
Kannst Du vielleicht mal nach dem Reset-Pullup-Widerstand (R26) am ISP-Anschluss Deines Melzis suchen und ihn messen? Der scheint mir mit den angegebenen 1k lt. Schematics (http://www.elecfreaks.com/wiki/index.php?title=RAMPS_Melzi) arg niedrig für den ISP-MKII. Das sollten eher 4.7k .. 10k sein. Vielleicht ists aber auch nur ein Druckfehler im Schaltplan?!?

Bernd_Stein
08.07.2019, 11:25
Ich hasse dieses Forum.
Kann jetzt den ganzen Text noch mal tippen.
Wollte meine "Grafiken" noch hinzufügen, da verblasst der Bildschirm und es tut sich nichts mehr.
Gehe auf Pfeil zurück, Pfeil vor, aber alles ist weg.

Habe den µC getauscht und auch den Pullup mit 4k7 bestückt. R26 ist tatsächlich ein 1k Widerstand. Glaube aber nicht das das die Ursache war. Werde später den 1k parallel zum verbauten 4k7 löten um da Gewissheit zu haben.

Übrigens finde ich diese Schaltplanquelle besser, da hier genügend vergrößert werden kann :

https://reprap.org/wiki/File:Melzi-circuit.png




Die FUSE-Werkseinstellungen sind Signature $1E 97 05; EX=$FF, High=$99, Low=$62. Die Lock-Bits sind und bleiben $FF.

Habe zuerst $FF, $D9, $62, also JTAGEN deaktiviert.
Danach $FF, $D9, $E2, also CKDIV deaktiviert.
Hiernach $FF, $D9, $DE, also Ext. Crystal Osc. 8.0- MHz; Start-up time: 258CK +65ms.

Jetzt funktioniert alles.

342733427434275

Hatte übrigens schon mal ein Problem mit dem MELZI-Board :

https://www.mikrocontroller.net/topic/460247?goto=5899121#5883076


Bernd_Stein

Bernd_Stein
10.07.2019, 05:33
https://www.mikrocontroller.net/topic/460247?goto=5899121#5883076[/URL]




Ja, es kommt meistens anders als man denkt.
Da ich damals dass im µC.net beschriebene Problem hatte, bestellte ich mir ein neues Board, was gestern ankam.
Dummerweise war dort Repetier in der Version 0.91 drauf.
34279

Anders gesehen schein ich jetzt den Fehler beim Vergleichen ( Verify ) gefunden zu haben. Es liegt wohl daran, dass die SD-Karte gesteckt ist. Übrigens stört der Pullup-Widerstandswert am Resetpin von 1k des R26 auf dem neuen Board überhaupt nicht.

Aber weil es auch hin und wieder andere Probleme beim Flashen gibt gehe ich so vor :

SD-Karte raus.
Board kurzzeitig spannungslos machen.
Danach AVRISP mkII aufstecken und flashen.

Und noch was im AS7 kann man unter Device programming das Häkchen bei Erase device before programming setzen, was ich nur empfehlen kann, da es recht zügig geht und Probleme verhindert.
Als weiteres habe ich noch dass FUSE-High-Bit EESAVE aktiviert, damit nicht jedesmal beim Flashen meine Einstellungen verloren gehen. Außerdem habe ich den Bootsektor auf 512 und Adresse $FE00 verändert, weil es zu Anfang mit dem neuen Board auch Probleme beim Flashen gab und ich dachte, wenn der Flash schon zu 96% voll ist, dann stört wahrscheinlich dieser vorher größere, reservierte Bootbereich.

Somit sehen die FUSE-Einstellungen jetzt so aus :
$FF, $D7, $DE

Bernd_Stein