Automatische ISP Frequenz Fuses:125 khz; Flash:1Mhz möglich?

Gast #5120980
Lesenswert?

Software: Atmelstudio; Programmer: Atmel MK2 oder kompatible

Ich hoffe auf eine Lösung, denn ich bin sicher nicht der einzige der 
dieses Problem hat. Was mich schon seit Jahren nervt ist folgendes:

Um bei einem frischen Atmel die Fuses (z.B. zum Umstellen auf externen 
Quarz) zu programmieren, muss die ISP Frequenz bei 125 khz stehen 
(manchmal sind auch 250 khz OK, aber das ist zu unsicher).

Einen Mega2561 Flash danach voll zu beschreiben, dauert bei 125 khz 
jedoch ewig. Kann man bei einem Stück verschmerzen, aber wenn man 50 
Stück hat, dann bekommt man die Krise. Also stellt man die ISP Frequenz 
vorher auf 1 Mhz um, dann dauert es nur Sekunden.

ABER: stecke ich nun das nächste Modul mit einem frischen µC an, dann 
kann ich die Fuses nicht ändern, da die ISP Frequenz noch auf 1 Mhz 
steht und erst wieder auf 125 khz gestellt werden muss.
Somit muss ich immer manuell 4 Tasks durchführen:
Frequenz 125 khz; Fuses schreiben, Frequenz 1 Mhz, Flash schreiben

Daher die Frage: gibt es eine Möglichkeit (oder andere Software), dass 
die Programmiersoftware die Fuses generell bei 125 khz schreibt und dann 
denn Flashinhalt automatisch mit 1 Mhz?

Danke
Günther
Gast #5120984
Lesenswert?

Günter, genau das gleiche nervt mich in der Serie bisweilen auch.

Ich gehe daher so vor:

zunächst bei allen Boards die Fuses mit 245kHz flashen und dann auf was 
schnelleres umstellen und bei allen das Memory flashen.

Spart das hin- und herschalten und ist weniger fehlerträchtig.

Wenn es da eine praktikablere Lösung gibt, wäre ich sehr dankbar

Gruß
Thomas
Gast #5121078
Lesenswert?

Der Programmieradapter ICprog-AVR2.0 passt sich automatisch an die 
Taktfrequenz des µC an. Auf mein Bitten hin hatten sie sogar Support für 
µC mit weit weniger als 1Mhz Taktfrequenz hinzugefügt.

Leider ist der nur für 5V vorgesehen. Durch Einschleifen von 180 Ohm 
Widerständen kann man ihn jedoch auch mit 3,3V Targets verwenden.

https://shop.in-circuit.de/product_info.php?cPath=40&products_id=114
Gast #5121109
Lesenswert?

Günther schrieb:
> Peter D. schrieb:
>> Man könnte sich ne Batch schreiben mit 2 Aufrufen von STK500.EXE bzw.
>> ATPROGRAM.EXE
> Mmmhh - darüber habe ich ja noch nie nachgedacht. Super Idee!!
> Das schaue ich mir doch direkt mal an. Hoffentlich funktioniert es so
> wie von Atmel beschrieben. Hier ein Link:
> 
http://www.atmel.com/webdoc/atmelstudio/atmelstudio.ChapterCommnadLineUtility.html
>
> Danke!

Also ich kann rückmelden: klappt 1A. So macht das Spass.
Danke Peter!

Ich habe es gerade ausprobiert. Resultat: Batchdatei mit
1) erst Fuses mit 125 khz schreiben, dann
2) direkt den Flash mit 1 Mhz
dauert alles zusammen inkl. der 200 KByte Flash nur ca. 15 Sekunden. 
Perfekt.



@Stefan: Der nützt leider gar nix.
a) Wird er wohl nicht automatisch Fuses mit 125 Khz und den Rest dann 
schneller schreiben
b) Mag sein, dass ein Atmel das mit den 180 Ohm Widerständen verträgt. 
Aber was, wenn da noch andere Hardware mit an diesen Leitungen hängt die 
vielleicht nicht so tolerant ist und dann beschädigt wird? Sorry - sowas 
ist Bastelkram und nicht ernstzunehmen. Dann lieber direkt einen Diamex 
AllAVR kaufen, der kann das alles, liefert sogar die notwendige Spannung 
für das Board (3,3 oder 5V) über den ISP Port mit und ist auch 
sauschnell. Und kann daneben auch noch PDI (wichtig für die Xmegas).
Gast #5121288
Lesenswert?

atprogram help
zeigt alle Optionen an.

Habe die folgenden Zeilen nur einzeln aufgerufen, sollte aber so in der 
Batchdatei klappen:

d:
cd \anwendungen\entwicklungstools\atmel studio 
6.2\extensions\application
atprogram -t avrispmk2 -i ISP -cl 125khz -d atmega2561 program -fs -f 
fuses.hex
atprogram -t avrispmk2 -i ISP -cl 1mhz -d atmega2561 program -fl -f 
flash.hex

Anmerkung: Die gewünschten Fuses habe ich vorher in eine Datei 
ausgelesen, da ich sonst keine Option zum direkten Setzen finden konnte.
Gast #5121682
Lesenswert?

Hi,

Fuses und Lockbits können auch direkt angegeben werden.
So sieht meine Batchdatei für die Massenprogrammierung aus:
1
"C:\Program Files (x86)\Atmel\Atmel Studio 6.0\avrdbg\atprogram" -t avrispmk2 -i isp -d atmega88pa -cl 125khz chiperase
2

3
"C:\Program Files (x86)\Atmel\Atmel Studio 6.0\avrdbg\atprogram" -t avrispmk2 -i isp -d atmega88pa -cl 125khz write -fs --values F7D5FC -v
4
@echo.
5

6
"C:\Program Files (x86)\Atmel\Atmel Studio 6.0\avrdbg\atprogram" -t avrispmk2 -i isp -d atmega88pa -cl 1mhz program -c -fl --verify -f merged.hex
7
@echo.
8
"C:\Program Files (x86)\Atmel\Atmel Studio 6.0\avrdbg\atprogram" -t avrispmk2 -i isp -d atmega88pa -cl 1mhz write -lb --values FC -v
9

10
pause

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren