Hallo, ich habe um Strom zu sparen versucht die Fequenz meines Tinys auf 128kHz zu stellen und und den Division Factor auf 1 gestellt. Seit her funktioniert die Kommunikation mit meinem USBASP nicht mehr. Ich bekomme immer nur Chip = 00000 Hab ich es vermurkst? Grüße Alex
Nö, du darfst dann nur nicht schneller als 32 kHz ISP Frequenz ran (max 1/4 clock).
Tim T. schrieb: > Nö, du darfst dann nur nicht schneller als 32 kHz ISP Frequenz ran (max > 1/4 clock). Hab ich versucht - funktioniert leier nur nicht. Muss es genau 1/4 der tatsächlichen Tiny13 Frequenz sein? oder ist jeder Wert keliner als 1/4 CPU Clock in Ordnung? Grüße Alexander
Alexander G. schrieb: > Muss es genau 1/4 der tatsächlichen Tiny13 Frequenz sein? Nein, es muss WENIGER sein. Exakt 1/4 ist ein Grenzfall, bei dem es theoretisch noch gehen würde, aber praktisch nicht gehen wird, weil es keine Synchronisation der beiden Takte gibt. Es sollte immer ein deutlicher Sicherheitsabstand zum Grenzfall eingehalten werden, mindestens in der Größenordnung der Ungenauigkeit des Taktes. Da die interne 128kHz-Taktquelle nicht gerade sehr genau ist, sollte der Sicherheitsabstand also gerade in dieser Situation relativ groß sein. Grob über den Daumen sollte man also so ab 28kHz abwärts auf der sicheren Seite sein. Wenn's trotzdem nicht geht, wurde sehr wahrscheinlich auf die falsche Taktquelle gefused oder ein Taktteiler >1:1 ist aktiv.
Im Datenblatt des atmega 13 stehen bei den errata (S.166) "device may lock for further programming" einige Fälle. Als Abhilfe: vor dem Programmieren die genannten Einstellungen ändern.
Ich habe es mit dem ATtiny13A probiert, und jetzt ist der Chip nicht mehr erreichbar, obwohl der ISP-Takt schon ganz unten ist (<2kHz).
Wenn es mit 128 kHZ / 4 = 32 kHz und mit 32 kHz / 8 = 4 kHz (CKDIV8...) und noch mal die Hälfte davon (< 2 kHz) nicht geht, haste wohl noch mehr verfused... Das Lehrgeld (ca. 1 EU) musste wohl zahlen und beim nächsten mal programmierst du dem Tiny13 mit der vermuteten (!) Systemfrequenz erst mal einen Sekunden-Takt an irgendeinem Port-Pin, um Irrtümer vor dem "kaputt-fusen" zu erkennen. Das nennt man defensives Vorgehen. Kostet 2% mehr Zeit und einige 100% Kaufpreis...
Georg M. schrieb: > Ich habe es mit dem ATtiny13A probiert, und jetzt ist der Chip nicht > mehr erreichbar, obwohl der ISP-Takt schon ganz unten ist (<2kHz). Dann eben mit HVSP zurücksetzen: http://homepage.hispeed.ch/peterfleury/avr-hvsp-fuse-restore.html
> > Dann eben mit HVSP zurücksetzen: > http://homepage.hispeed.ch/peterfleury/avr-hvsp-fuse-restore.html Hat vielleicht jemand eine .hex file für ATmega8 und 16 MHz Takt? In AVRDude kann ich ja dann B3000 setzen. Mein ATtiny13 läuft mit 2 kHz clock, weil ich per SW den Teiler nicht auf 1 gesetzt habe sondern auf 64 stehen ließ. Muss wohl das Programm von p.Feury nehmen, da es AVRStudio 7 nicht auf 400 Hz clock bringt.
:
Bearbeitet durch User
Rudi D. schrieb: > Hat vielleicht jemand eine .hex file für ATmega8 und 16 MHz Takt? Hallo, ich habe http://homepage.hispeed.ch/peterfleury/HvspFuseRestore.zip von http://homepage.hispeed.ch/peterfleury/avr-hvsp-fuse-restore.html heruntergeladen und im Makefile
1 | MCU = atmega8 |
2 | F_CPU = 16000000 |
gesetzt.
1 | Compiling: HvspFuseRestore.c |
2 | avr-gcc -c -mmcu=atmega8 -DF_CPU=16000000UL -I. -std=gnu99 -gdwarf-2 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=HvspFuseRestore.lst -save-temps -MD -MP -MF .dep/HvspFuseRestore.o.d HvspFuseRestore.c -o HvspFuseRestore.o |
3 | Linking: HvspFuseRestore.elf |
4 | avr-gcc -mmcu=atmega8 -Wl,-Map=HvspFuseRestore.map,--cref -lm HvspFuseRestore.o --output HvspFuseRestore.elf |
5 | Creating load file for Flash: HvspFuseRestore.hex |
6 | avr-objcopy -O ihex -R .eeprom HvspFuseRestore.elf HvspFuseRestore.hex |
7 | Creating load file for EEPROM: HvspFuseRestore.eep |
8 | avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 -O ihex HvspFuseRestore.elf HvspFuseRestore.eep |
9 | avr-objcopy: --change-section-lma .eeprom=0x0000000000000000 never used |
10 | Creating Extended Listing: HvspFuseRestore.lss |
11 | avr-objdump -h -S HvspFuseRestore.elf > HvspFuseRestore.lss |
12 | Creating Symbol Table: HvspFuseRestore.sym |
13 | avr-nm -n HvspFuseRestore.elf > HvspFuseRestore.sym |
14 | AVR Memory Usage |
15 | ---------------- |
16 | Device: atmega8 |
17 | |
18 | Program: 664 bytes (8.1% Full) |
19 | (.text + .data + .bootloader) |
20 | |
21 | Data: 0 bytes (0.0% Full) |
22 | (.data + .bss + .noinit) |
Im Anhang die .hex Datei. Die habe ich selber nicht getestet.
Alexander S. schrieb: > Device: atmega8 > > Program: 664 bytes (8.1% Full) > (.text + .data + .bootloader) > > Data: 0 bytes (0.0% Full) > (.data + .bss + .noinit) > > Im Anhang die .hex Datei. Die habe ich selber nicht getestet. Das ist aber sehr freundlich. In der Zwischenzeit, da der t13 ja ansprechbar wäre, sollte es mit avrdude auch gehen. https://logbuch.dmaertens.de/elektronik-hardware/microcontroller/fuse-eines-microcontrollers-mit-avrdude-auslesen-und-beschreiben. Obwohl ich es nicht verstehe, da keine Taktrate im command vorkommt. Oder mit avrdude das korrigierte Programm eben ganz langsam in den tiny bringen. Werde berichten, wie deine Großzügigkeit es auch tut. Respekt!
Falls Interesse besteht: Für den HV Modus hatte ich übrigens auch mal einen kompletten Programmer erstellt. Inklusive .hex für einen Mega8: Beitrag "Kleiner ISP programmieradapter + serielles HV prog"
Georg M. schrieb: > Atmel_Studio_Error.png Ich kann im Programmierdialog des AVRISP MkII auch jede beliebige Taktrate einstellen. Dazu muss man den Wert dann statt mit dem Schieberegler händisch in die Hertzanzeige eintippen. Kannste ja mal probieren.
Matthias S. schrieb: > Georg M. schrieb: > Atmel_Studio_Error.png > > Ich kann im Programmierdialog des AVRISP MkII auch jede beliebige > Taktrate einstellen. Dazu muss man den Wert dann statt mit dem > Schieberegler händisch in die Hertzanzeige eintippen. Kannste ja mal > probieren. Oh, das wusste ich nicht. Danke für den Ti p.
>> Georg M. schrieb: >> Atmel_Studio_Error.png >> >> Ich kann im Programmierdialog des AVRISP MkII auch jede beliebige >> Taktrate einstellen. > > Oh, das wusste ich nicht. Danke für den Tip. Der Wert wird, was ich auch eingebe, auf 51 Hz gesetzt.Und es gibt Fehlermeldungen. Leider...
:
Bearbeitet durch User
Rudi D. schrieb: > Der Wert wird, was ich auch eingebe, auf 51 Hz gesetzt Gut, das muss aber in jedem Fall reichen, solange die Oszillator Fuses nicht auf externem Oszillator stehen. Ob Freund Fischl (USBASP) allerdings diese Settings vom STK500 auch unterstützt, kann ich dir nicht sagen. Wenn das der Fall ist, speist du an XTAL1 einen Generator ein und hast die freie Wahl für die Taktfrequenz. Wenn du allerdings an der RST_DIS Fuse rumgespielt hast, gehts nicht ohne HV Programmer.
:
Bearbeitet durch User
Ich hatte das gleiche Problem mal mit einem Programmieradapter von In-Circuit, die waren damals so nett, mir kurzfristig die Firmware anzupassen und Ersatz zu schicken.
>> Der Wert wird, was ich auch eingebe, auf 51 Hz gesetzt > > Gut, das muss aber in jedem Fall reichen, solange die Oszillator Fuses > nicht auf externem Oszillator stehen. Hab den DIAMEX Adapter. Low fuse ist 7B =128 kHz aber, siehe vorher, per SW /64 geteilt also 2 kHz Clock. Das Programm wird auch brav ausgeführt, eben sehr langsam. Warum Studio7 400 Hz nicht akzeptiert ist merkwürdig. ist 1/5 von 2 kHz. Werde als nächsten Step avrdude nehmen. An sich alles sportlich zu sehen, da der t13 ja wirklich den Aufwand kaum rechtfertigt. Im Hintergrund gibts auch noch die Hilfe von Alexander S.
:
Bearbeitet durch User
Rudi D. schrieb: > An sich alles sportlich zu sehen, da der t13 ja wirklich den Aufwand > kaum rechtfertigt. Das sehe ich auch so. Erst wenn du innerhalb eines Jahres 5 Stück verfust hast, wird es peinlich :-)
an sich ist er ja nicht verfused, nur die clock ist durch Unachtsamkeit eben 2 kHz
rulixa schrieb: > an sich ist er ja nicht verfused, nur die clock ist durch Unachtsamkeit > eben 2 kHz Ich hab ja erst so um 2003 mit µC's begonnen mit Franzis Lernpaket Mikrocontroller als Honorar. Habe also die PC-Baudrate auf 2400 Bd gesetzt und mit dem LPmikros.exe den t13 initialisiert. Das Programm setzt ihn auf den Ausflieferzustand. All o.k. Mit avrdude bin ich nicht zurechtgekommen mit dem Programmierdevice. Ich danke für die vielen Vorschläge und Hilfen.
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.