Autor |
fusebits-frage zum setzen |
|
|
|
|
BID = 385506
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
|
Ich aktiviere immer alle Lockbits beim Ponyprog, wenn ich Fuses ändere. Durch das Setzten des Häckchens bei allen Lockbits werden diese nicht programmiert!
Genauso verhällt es sich bei den Fusebits.
Das bedeutet, dass wenn jemand einmal diesen Fehler gemacht hat, der Chip i.A. ist, weil durch das Programmieren gewisser Lockbits der ISP-Modus deaktiviert wird und der Flashinhalt geschützt ist.
Meine PonyProg-Version ist 2.06beta.
(Damit niemand sagt, ich sei Schuld am Verkacken seines AVRs ; vllt. ist es bei anderen Versionen ja nicht so.)
_________________
|
|
BID = 385622
freakjoe_m Stammposter
Beiträge: 296 Wohnort: mainz
|
|
hi
ich denke ponyprog dreht die bits seinerseits wieder rum...
also im datenblatt steht 1=unprogrammed und ponyprog wertet ein häckchen als 0->häkchen gleich 0 gleich 1 sozusagen.
habn bisschen schiss mein avr mit den locks i.A.zu machen.
waddennu
_________________
jetzt steh ich hier vorm tor
und bin genauso klug wie vor...
...
her...
edit:
mal anders: welche fusebits muss ich setzen um den internen oszillator anzuschalten und die externe tasktquelle aus?
screenshot wäre super.
vielen dank
[ Diese Nachricht wurde geändert von: freakjoe_m am 14 Nov 2006 13:05 ] |
|
BID = 385661
Dombrowski Stammposter
Beiträge: 450
|
Moin.
Wenn dir Ponyprog nicht geheuer ist, dann nimm eine andere Brennsoftware, die die Fuse-1en und -0en direkt als Parameter übernimmt. Welche Brennhardware benutzt du denn? Mit dem STK200-kompatiblen Adapter können ja eine Reihe von Programmen umgehen, u.a. SP12. Mit dem SI-Prog kommt immerhin noch avrdude zurecht.
D.
|
BID = 385662
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Zitat :
|
mal anders: welche fusebits muss ich setzen um den internen oszillator anzuschalten und die externe tasktquelle aus?
screenshot wäre super.
vielen dank
|
Also, ich mach das jetzt mal mit nem ATmega8:
Interne Taktquelle
Keine lockbits
Screenshot der Konfiguration:
_________________
So, danach sollte man ein Chip-Erase ausführen.
Versuche, den Flash auszulesen, es sollten alle Bits auf 0xFF stehen!
Danach kannst du mal wieder in die Configuration and Security-Bits gehen und sie einlesen: Die Lockbits sind nun ohne Häkchen, der Rest so wie im Bild oben.
Mein AVR läuft noch, es klappt so also definitiv bei mir! Ist auch nicht das erste Mal, dass ich die Fuses ändere. Habe da früher auch immer "Angst" vor gehabt.
[ Diese Nachricht wurde geändert von: DonComi am 14 Nov 2006 16:11 ]
|
BID = 385685
freakjoe_m Stammposter
Beiträge: 296 Wohnort: mainz
|
jo!
meine brennsoftware ist ponyprog(hab noch yaap, nur kann keine files von avrstudio öffnen... was bringt das dann überhaupt?)
danke DonComi für die klare ansage.
ich probier das mal aus!
damit dürfte auch bastelheini geholfen sein.
merci
|
BID = 386692
freakjoe_m Stammposter
Beiträge: 296 Wohnort: mainz
|
ja, geilo.
das mit den fusebits hat geklappt.
aber ich hab versucht per uasrt mit dem computer zu kommunizieren, das klappt wieder nicht.
hat jemand ne fertige routine, mit der ich bei 9600 baud
datern vom computer empfangen und das byte wieder zurücksenden kann? das klapptz wiedert nicht.
shit.
einfach n kleines assemblercode beispiel.
jo
|
BID = 386756
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Ja, habe ich.
Muss ich eben zum Windows-Computer wechseln .
Sitze hier grade an meinem PC, wo ich endlich mal Linux aufgespielt habe.
.equ Baudrate = 4800 ;Bits pro Sekunde
.equ Taktfrequenz = 1000000 ;Hz
.equ tmp_baud = (Taktfrequenz / (16 * Baudrate)) - 1
rs232_init: push r16
ldi r16, (1<<RXCIE|1<<TXEN|1<<RXEN) ;Interrupt aktiv
out UCSRB, r16
ldi r16, (1<<URSEL|0<<UMSEL|0<<UPM0|0<<USBS|0b011<<UCSZ0) ;Keine Parität, 1Stopbit, 8 Datenbits
out UCSRC, r16
ldi r16, LOW(tmp_baud)
out UBRRL, r16
ldi r16, HIGH(tmp_baud)
out UBRRH, r16
pop r16
ret
rs232_transmit: push r20
in r20, UCSRA
sbrs r20, UDRE
rjmp PC-2
out UDR, r16
pop r20
ret
-----
Die Schnittstelle wird mit rs232_init aufgerufen. Das Interrupt ist aktiviert und du solltest den Vektor dementsprechend auch mit einer Interruotsroutine bestücken .
Mit rs232_transmit wird der Inhalt aus r16 gesendet. Das man das alles sauberer schreiben kann, vorallem weil ja das UDRE-Bit gepollt wird, ist mir klar. Damit kann man recht schnell Sachen machen, man kann auch alles auf Interruptbasis nutzen, da wird dann nämlich ein INT ausgelöst, wenn der Puffer leer ist und ein neues Byte übertrgane werden kann.
In den Formeln (".equ") gibts du einfach die gewünschten Parameter wie Baudrate und Taktfrequenz an.
PS:
Edit
Sry für die ganzen merkwürdigen Formulierungen. Bin etwas fertig grade .
Am besten packst du den ganzen Code in eine Assembler-Datei und inkludierst sie dann in Projekte mit ".include rs232.asm" oder ähnlich.
Initialisieren musst du sie in jedem Fall mit wie gesagt rs232_init.
_________________
[ Diese Nachricht wurde geändert von: DonComi am 19 Nov 2006 12:31 ]
[ Diese Nachricht wurde geändert von: DonComi am 19 Nov 2006 12:34 ]
|
BID = 388547
freakjoe_m Stammposter
Beiträge: 296 Wohnort: mainz
|
hi.
tanz, ich kanns...
danke don.
hab zwar nicht deine routine verwendet, wurde nich ganz schlau aus dem code, aber habs jetzt mit intrrupts hingekriegt.
saugut.
bis denne antenne
|
BID = 388665
freakjoe_m Stammposter
Beiträge: 296 Wohnort: mainz
|
hab mir nen mega 8 zerschossen
fusebits sind anders zu setzen:
für meinen quarz, 3,6864 mhz.
bitte datenblatt lesen, oben keine häkchen,
unten nur ckopt und cksel0-3 verändern(für taktquellenänderung) ein häkchen bedeutet eine 0 im datenblatt, also programmed (sic) .
bin mir 90% sicher
<font color="#FF0000"><br><br>Das Dateiformat *.bmp ist nicht erlaubt ! Denken Sie bitte an den Traffic ! Deswegen nicht hochgeladen<br></font>
_________________
jetzt steh ich hier vorm tor
und bin genauso klug wie vor...
...
her...
[ Diese Nachricht wurde geändert von: freakjoe_m am 26 Nov 2006 17:05 ]
|
BID = 388702
Midnight Stammposter
Beiträge: 256
|
Hallo,
vielleicht etwas spät zu diesem Thema, aber immer wieder eine gute Hilfe in Fuse-Bit Fragen finde ich diese Seite:
http://palmavr.sourceforge.net/cgi-bin/fc.cgi
Einfach die gewünschten Optionen auswählen und die entsprechenden Fuse-Bits werden berechnet.
Da die Frage nach Fuse-Bits ja öfters vor kommt könnte ein Mod ja mal den Link fixen....
Gruß
Simon
[/Edit] Wunsch ist erledigt.
[ Diese Nachricht wurde geändert von: Jornbyte am 27 Nov 2006 19:18 ]
|
BID = 388814
Fennec Gerade angekommen
Beiträge: 1
|
Wenn der Link funktionieren wuerde....
|
BID = 388822
Midnight Stammposter
Beiträge: 256
|
@Fennec
Also bei mir funktioniert der Link im Büro sowie auch zu Hause einwandfrei...
Haste auch nen Bauteil ausgewählt?
Gruß
Simon
|
BID = 388966
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Freak Joe,
Du hast deinen AVR nicht geballert, sondern nur die falschen Clock-Select-Bits programmiert. Ich schrieb ja, dass die interne Taktquelle so aktiviert wird.
Bitte schließe mal einen Quartzoszillator an den ext. Takteingang und versuche dann, die Fuses richtig zu ändern.
Also, ich habe schon über 40 mal die Fuses eines AVRs programmiert, und mit obigem Schema hat es immer geklappt. Auch mehrmals pro Chip.
MfG
_________________
|