Hallo,
und noch eine Frage. Ich programmiere einen ATTINY85 über einen USBtinyISP mit der Arduino-IED 1.0.1.
Als Basis dienen die ATTINY-Cores (https://github.com/damellis/attiny/zipball/Arduino1)
Das klappt auch soweit sehr gut. Nun bin ich vom Blinkenbeispiel zum Dimmen einer LED übergegangen, bzw. zum Dimmen eines LED-Streifens über einen MOSFET.
Dabei fällt auf, das die LED flackern. Vermutlich ist die PWM-Frequenz zu gering.
Hat man die Tiny-Cores installiert, gibt es den ATTINY85 mit 1 MHz und 8 MHz internem Takt zur Auswahl, zusätzlich noch 20 MHz extern.
Auffällig ist, das das Flackern bei 8 MHz (Einstellung in der IDE für den Programmer) stärker ist als bei 1 MHz.
Ich habe daraufhin mit avrdude die Fuses ausgelesen und mit dein Einträgen in der boards.txt verglichen.
Bei beiden Einstellungen ist lfuse mit 0x62 gesetzt, obwohl es bei 8 MHz 0xe2 sein sollte (laut boards.txt). Da bei 8 MHz aber die CPU-Frequenz auf 8000000L gesetzt ist, laufen die Timer vermutlich auf 1/8 Geschwindigkeit.
Bei der aktuellen Einstellung 0x62 ist CKDIV8 gesetzt und damit wird ja mein Clocksignal nochmal durch 8 geteilt, oder täusche ich mich da?
Setzt die IDE keine Fuses? Ich habe mal die Debugausgaben ausgeben lassen, vielleicht hat ja jemand einen Tip für mich.
avrdude: Version 5.11, compiled on Sep 2 2011 at 18:52:52
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg WunschSystem wide configuration file is "/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/etc/avrdude.conf"
User configuration file is "/Users/mario/.avrduderc"
User configuration file does not exist or is not a regular file, skippingUsing Port : unknown
Using Programmer : usbtiny
avrdude: usbdev_open(): Found USBtinyISP, bus:device: 002:011-1781-0c9f-ff-00
AVR Part : ATtiny85
Chip Erase delay : 4500 us
PAGEL : P00
BS2 : P00
RESET disposition : possible i/o
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
eeprom 65 6 4 0 no 512 4 0 4000 4500 0xff 0xff
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
flash 65 6 32 0 yes 8192 64 128 4500 4500 0xff 0xff
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
calibration 0 0 0 0 no 2 0 0 0 0 0x00 0x00
Programmer Type : USBtiny
Description : USBtiny simple USB programmer, USBtinyISP - Inexpensive USB AVR Programmer
avrdude: programmer operation not supportedavrdude: Using SCK period of 10 usec
CMD: [ac 53 00 00] [ff fe 53 00]
avrdude: AVR device initialized and ready to accept instructionsReading | CMD: [30 00 00 00] [00 30 00 1e]
CMD: [30 00 01 00] [00 30 00 93]
################CMD: [30 00 02 00] [00 30 00 0b]
################################## | 100% 0.00savrdude: Device signature = 0x1e930b
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
CMD: [a0 01 fc 00] [00 a0 01 ff]
CMD: [a0 01 fd 00] [00 a0 01 ff]
CMD: [a0 01 fe 00] [00 a0 01 ff]
CMD: [a0 01 ff 00] [00 a0 01 ff]
avrdude: erasing chip
CMD: [ac 80 00 00] [00 ac 80 00]
avrdude: Using SCK period of 10 usec
CMD: [ac 53 00 00] [00 ac 53 00]
avrdude: reading input file "/var/folders/9c/6qx1vrws2xb3sp_cm9zpl1xc0000gn/T/build5852274583174374975.tmp/Blink.cpp.hex"
avrdude: writing flash (1044 bytes):Writing | CMD: [4c 00 00 00] [00 4c 00 00]
###CMD: [4c 00 20 00] [00 4c 00 20]
###CMD: [4c 00 40 00] [93 4c 00 40]
###CMD: [4c 00 60 00] [93 4c 00 60]
###CMD: [4c 00 80 00] [91 4c 00 80]
###CMD: [4c 00 a0 00] [2f 4c 00 a0]
###CMD: [4c 00 c0 00] [1d 4c 00 c0]
###CMD: [4c 00 e0 00] [05 4c 00 e0]
###CMD: [4c 01 00 00] [f0 4c 01 00]
###CMD: [4c 01 20 00] [3f 4c 01 20]
###CMD: [4c 01 40 00] [91 4c 01 40]
###CMD: [4c 01 60 00] [23 4c 01 60]
###CMD: [4c 01 80 00] [91 4c 01 80]
###CMD: [4c 01 a0 00] [7d 4c 01 a0]
###CMD: [4c 01 c0 00] [de 4c 01 c0]
###CMD: [4c 01 e0 00] [1f 4c 01 e0]
####CMD: [4c 02 00 00] [cf 4c 02 00]| 100% 1.41s
avrdude: 1044 bytes of flash written
avrdude: verifying flash memory against /var/folders/9c/6qx1vrws2xb3sp_cm9zpl1xc0000gn/T/build5852274583174374975.tmp/Blink.cpp.hex:
avrdude: load data flash data from input file /var/folders/9c/6qx1vrws2xb3sp_cm9zpl1xc0000gn/T/build5852274583174374975.tmp/Blink.cpp.hex:
avrdude: input file /var/folders/9c/6qx1vrws2xb3sp_cm9zpl1xc0000gn/T/build5852274583174374975.tmp/Blink.cpp.hex contains 1044 bytes
avrdude: reading on-chip flash data:Reading | ################################################## | 100% 1.75s
avrdude: verifying ...
avrdude: 1044 bytes of flash verifiedavrdude done. Thank you.
Für einen Tip, wie ich die PWM-Frequenz angepasst bekomme, wäre ich echt dankbar. Leider habe ich kein Oszi zur Verfügung um die PWM-Frequenz messen zu können.
Mario.