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
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
Thomas V. schrieb: > Spart das hin- und herschalten und ist weniger fehlerträchtig. Ja aber doppelt den ISP Stecker an und abziehen spart aber auch keine Zeit und Nerven wirklich. Da sind dann Pogo-Pins cool. Zum Thema: da kann man doch bestimmt nen Target-Script machen oder?!
Man könnte sich ne Batch schreiben mit 2 Aufrufen von STK500.EXE bzw. ATPROGRAM.EXE
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!
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
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).
Günter, könntest Du mal so eine Batch Datei zeigen? danke!!
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.
Das geht auch mit AVRDUDE. Massenprogrammierung macht man so oder so besser mit einer Batchdatei.
danke die Herren :-) Das probiere ich aus!
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 |
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.