Ich habe einen USBASP Programmer und einen Attiny85. Die Fuse Bits habe ich hier berechnen lassen: http://www.engbedded.com/fusecalc Was ich nicht sehe, wie setze ich "read protection" bei dem Attiny? Und die andere Sache, wenn man "Reset Disabled (Enable PB5 as i/o pin); [RSTDISBL=0]" Fuse setzt, wird der uC sich noch via ISP programmieren lassen?
Arti schrieb: > wenn man "Reset Disabled (Enable PB5 as i/o pin); > [RSTDISBL=0]" Fuse setzt, wird der uC sich noch via ISP programmieren > lassen? Nö.
Und wie sieht es mit "Read Protection" aus? Sorry, habe bis jetzt vor 5 Jahren mal mit einem Atmega128 gearbeitet und einem MKII Programmer. Habe jetzt wieder Newbee-Niveau :)
mit den entsprechden einstellungen in den lockbits kannst du deinen code schützen! -> siehe Datenblatt S.147
Du kannst einen HV-Fusebit-Progger benutzen, um nen gesperrten Chip komplett zu löschen und neu aufzusetzen. Wenn du auch noch die Clock-Fuses verknorkst hast, hilft nur noch ein externer Takt, um überhaupt noch an das tote Silizium ran zu kommen. Oder ein Loch in den Deckel bohren und die Fuses unterm Mikroskop umschalten... ;-)
J.R. schrieb: > mit den entsprechden einstellungen in den lockbits kannst du deinen code > schützen! -> siehe Datenblatt S.147 Ja, aber wie setze ich diese via USBASP? Ich benutze USBASP als "External Tool" unter AVR Studio.
Ich habe folgendes mit einem Attiny45 den ich nicht brauche versucht: C:\WinAVR-20100110\bin\-e -P usb -c USBasp -B 2 -p t45 -U lfuse:w:0xe2:m -U hfuse:w:0xd6:m -U efuse:w:0xff:m -e -U flash:w:"$(ProjectDir)Debug\$(ItemFileName).hex":a Der uC wird dann aber nicht programmiert.
1 | avrdude.exe: set SCK frequency to 375000 Hz |
2 | avrdude.exe: AVR device initialized and ready to accept instructions |
3 | |
4 | Reading | ################################################## | 100% 0.00s |
5 | |
6 | avrdude.exe: Device signature = 0x1e9206 |
7 | avrdude.exe: erasing chip |
8 | avrdude.exe: set SCK frequency to 375000 Hz |
9 | avrdude.exe: reading input file "0xe2" |
10 | avrdude.exe: writing lfuse (1 bytes): |
11 | |
12 | Writing | ################################################## | 100% 0.00s |
13 | |
14 | avrdude.exe: 1 bytes of lfuse written |
15 | avrdude.exe: verifying lfuse memory against 0xe2: |
16 | avrdude.exe: load data lfuse data from input file 0xe2: |
17 | avrdude.exe: input file 0xe2 contains 1 bytes |
18 | avrdude.exe: reading on-chip lfuse data: |
19 | |
20 | Reading | ################################################## | 100% 0.00s |
21 | |
22 | avrdude.exe: verifying ... |
23 | avrdude.exe: 1 bytes of lfuse verified |
24 | avrdude.exe: reading input file "0xd6" |
25 | avrdude.exe: writing hfuse (1 bytes): |
26 | |
27 | Writing | ################################################## | 100% 0.02s |
28 | |
29 | avrdude.exe: 1 bytes of hfuse written |
30 | avrdude.exe: verifying hfuse memory against 0xd6: |
31 | avrdude.exe: load data hfuse data from input file 0xd6: |
32 | avrdude.exe: input file 0xd6 contains 1 bytes |
33 | avrdude.exe: reading on-chip hfuse data: |
34 | |
35 | Reading | ################################################## | 100% 0.00s |
36 | |
37 | avrdude.exe: verifying ... |
38 | avrdude.exe: 1 bytes of hfuse verified |
39 | avrdude.exe: reading input file "0xff" |
40 | avrdude.exe: writing efuse (1 bytes): |
41 | |
42 | Writing | ################################################## | 100% 0.00s |
43 | |
44 | avrdude.exe: 1 bytes of efuse written |
45 | avrdude.exe: verifying efuse memory against 0xff: |
46 | avrdude.exe: load data efuse data from input file 0xff: |
47 | avrdude.exe: input file 0xff contains 1 bytes |
48 | avrdude.exe: reading on-chip efuse data: |
49 | |
50 | Reading | ################################################## | 100% 0.00s |
51 | |
52 | avrdude.exe: verifying ... |
53 | avrdude.exe: 1 bytes of efuse verified |
54 | avrdude.exe: reading input file "0xFC" |
55 | avrdude.exe: writing lock (1 bytes): |
56 | |
57 | Writing | ################################################## | 100% 0.00s |
58 | |
59 | avrdude.exe: 1 bytes of lock written |
60 | avrdude.exe: verifying lock memory against 0xFC: |
61 | avrdude.exe: load data lock data from input file 0xFC: |
62 | avrdude.exe: input file 0xFC contains 1 bytes |
63 | avrdude.exe: reading on-chip lock data: |
64 | |
65 | Reading | avr_read(): error reading address 0x0000 |
66 | read operation not supported for memory "lock" |
67 | avrdude.exe: failed to read all of lock memory, rc=-2 |
68 | |
69 | avrdude.exe: safemode: Fuses OK |
70 | |
71 | avrdude.exe done. Thank you. |
lasse ich -U lock:w:0xFC:m weg, wird der uC programmiert. Mit -e vor den fuse und lock Bits gehts es auch nicht :(
Ok, schlau, wie ich bin.... -U lock:w:0xFC:m muss nach dem Flash Befehl, dann geht alles. Vielen Dank :>
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.