PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fuses setzen ohne AVR Studio ?



Skragan
05.11.2007, 14:04
Hallo,

gibt es eigentlich eine Möglichkeit, innerhalb des Programmcodes die entsprechenden Fuses zu setzen ? Ich suche mir danach schon die Beine ab - ich meinte, das mal irgendwo gelesen zu haben... kann mir da jemand einen Tip geben ?

robodriver
05.11.2007, 14:21
Hm, also mir wäre das neu wenn das über den Programmcode gehen sollte...
Wozu brauchst du das? Die Fuses werden ja eigentlich einfach nur einmal eingestellt und dann nicht mehr angerührt.

Skragan
05.11.2007, 14:26
Bei Kleinserien ist das äußerst nervig... ;o)

Christopher1
05.11.2007, 14:51
Tja kann man wohl nicht ändern ;-)

izaseba
05.11.2007, 15:53
Bei Kleinserien ist das äußerst nervig... ;o)

Die Lösung ist sehr einfach,
man nehme avrdude, schreibt ein Miniskipt in dem auf Knopfdruck
1. Fuses gesetzt werden
2. Programm übertragen wird
3. EEprom beschrieben wird
und flucht, daß man den Programmierstecker ständig von Platine zu Platine umstecken muß.

Gruß Sebastian

Skragan
05.11.2007, 16:06
Aha, das kenne ich noch nicht, ich werde morgen mal danach googeln gehen ! Danke für den Tip !

izaseba
05.11.2007, 16:29
Kennst Du nicht ?
Aber Vorsicht, es ist ein Komandozeilentool!
Um Dir das suchen zu ersparen schreib ich Dir mal ein Beispiel, wie man das ganze dann in ein Skript einbindet, also


avrdude -c stk500v2 -p t2313 -U lfuse:w:0xed:m
avrdude -c stk500v2 -p t2313 -U flash:w:file.hex
avrdude -c stk500v2 -p t2313 -U eeprom:w:file.eep

So hinter -c kommt der Programmer, ich habe mal den stk500 in der Version2 als Beispiel verwendet
hinter p kommt device - hier der Tiny2313
Jetzt wird in lfuse 0xed geschrieben, dann in flash file.hex und in eeprom file.eep

Ja nach µC gibt es noch hfuse usw.
Dann viel Spaß

P.S. wenn Du nicht weißt, was Du für einen Programmer eingeben kannst, schreib irgendein Unsinn hin, daraufhin bekommst Du eine Liste angezeigt, wo Du Dir alle unterstützte anschauen kannst
Gruß Sebastian

Gento
05.11.2007, 17:05
Mega 32

$prog &HFC , &H2F , &HD0 , &H00 ' generated. Take care that the chip supports all fuse bytes.




Diese Zeilen im Programcode bewirken:
Quarz setzen.
EEprom nicht überschreiben.
Chip dicht machen .
und und und.

Das Program 'xxxxx' wird per stk200/300 übertragen.
Nach der Übertragung & dem Vergleich stellt Bascom die Fuse selbstständig ein.
Im Fusemenue gibt es einen Schalter der die Aktuellen Einstellungen in Deinen Code überträgt.

lg Gento

Skragan
07.11.2007, 07:37
Heute werde ich mal damit spielen, war gestern nicht im Büro. Vielen Dank für die Antworten, Fragen kommen sicherlich heute Nachmittag ;)

Skragan
07.11.2007, 12:38
Die Variante von Gento gefällt mir natürlich besser :) aber muss ich dann aus Bascom heraus programmen ? Bislang erstelle ich immer das hexfile und drücke das mit AVR Studio in den Proz (AVRISPII USB). Oder muss ich dann über Bascom brennen und wenn ja, kann Bascom denn mit dem AVRISPII um ? Ich habe das noch nicht hinbekommen.

@isa: Ich habe mir auch AVRdude mal heruntergeladen und werde auch das mal testen.

Gento
07.11.2007, 14:02
Ich bin mir sicher die erste Programierung muss mit Bascom geschehen.

lg Gento

Skragan
07.11.2007, 16:15
Aber Bascom kann (1.11.90) meinen Programmer nicht :(

pod32
06.08.2008, 16:52
wärme den thread nochmals auf, könnte jemand danach suchen:

die Fuses stellt man mit avrdude so ein:



avrdude -v P /dev/parport0 -p m32 -c stk200 -U lfuse:w:0xFF:m
bzw.:
avrdude -v P /dev/parport0 -p m32 -c stk200 -U hfuse:w:0xD9:m


und das mithilfe diesem link:
http://palmavr.sourceforge.net/cgi-bin/fc.cgi?P_PREV=ATmega32&P=ATmega32&V_LOW=E1&V_HIGH=99&M_LOW_0x3F=0x21&M_LOW_0x40=&M_LOW_0x80=0x80&M_HIGH_0x01=&M_HIGH_0x06=0x00&M_HIGH_0x08=&M_HIGH_0x10=&M_HIGH_0x20=0x00&M_HIGH_0x40=&M_HIGH_0x80=&B_JTAGEN=P&B_SPIEN=P&B_SUT0=P&B_CKSEL3=P&B_CKSEL2=P&B_BOOTSZ1=P&B_CKSEL1=P&B_BOOTSZ0=P

uwegw
06.08.2008, 17:01
Im ISP-Dialog im AVRstudio gibts die Seite "Auto". Da kann man Häkchen setze, was gemacht werden soll (gemäß den Einstellungen auf dem anderen Dialogseiten), dann drückt man auf Start, und die Kiste rennt los. Dann nächstes Board anschließen, und wieder auf Start...

stefan_Z
07.08.2008, 00:41
Ich mach es per Ponyprog2000 und einem Script dafür.
Infos hier: http://www.lancos.com/e2p/ponyprog2000.html#s4_1
Geht super - man macht das einmal und danach heißt es nur noch: Board anstecken, STRG-I (oder so) drücken, es passiert.
Das mit den Fuses muss man allerdings GENAU lesen UND verstehen - aber ich habs hinbekommen, es geht.
Der Fusecalculator hilft da sehr weiter....

Skragan
07.08.2008, 08:22
Auch von mir nochmal danke für die neue Info, läuft alles :)