por Fandango » 27 Ago 2007 16:18
Olá tmarchesi2,
Eu uso ATMega16 com Xtal de 11,0592MHz, que em essência utiliza a mesma configuração de fuse-bits. Como programador adquiri um AVRDragon, que facilita muito o processo todo. De todas maneiras, o que aprendi é o seguinte:
- Como o Maurício falou, bit=0 significa programado.
OCDEN = On chip debug enable. Quando programado, mantém a fonte de clock habilitada, mesmo que o uControlador esteja em sleep-mode. Geralmente é mantido desprogramado (bit=1).
JTAGEN = JTAG interface enabled. Quando programado habilita o uso da interface JTAG. Isto faz com que os pinos do PortC referentes ao JTAG (TDI, TDO, TMS e TCK) fiquem com pullups e sejam usados pela JTAG. Para usar esses pinos normalmente, esse fuse-bit tem de ficar desprogramado.
SPIEN = SPI enabled. Quando programado (bit=0) habilita a programação do AVR através da SPI.
EESAVE = Preserve EEPROM through the Chip Erase. Quando programado, o conteúdo da EEPROM é preservado, mesmo durante o "chip erase".
BOOTSZ = Boot size (2 bits). Seleciona o tamanho da seção de boot.
00 (default) - 1024 words boot / end. inicial = 0x1C00
01 - 512 words boot / end. inicial = 0x1E00
10 - 256 words boot / end. inicial = 0x1F00
11 - 128 words boot / end. inicial = 0x1F80
BOOTRST = Boot Reset Vector Enabled. Quando programado, o AVR irá iniciar a partir do endereço de boot loader no reset (default = 0x0000).
CKOPT = Oscillator Options. Quando desprogramado (bit=1) o AVR poderá ser usado com frequências de clock de até 8MHz. Para usar com frequências maiores (como no seu caso) este fuse-bit deverá ser programado (bit=0). Observe que o ajuste depende também dos fuses CKSEL (veja mais adiante).
BODLEVEL = BrownOut Detection Level. Ajusta o nível da tensão de alimentação abaixo da qual não será garantida a operação normal do uControlador. Sempre que a tensão de alimentação cair abaixo do nível programado, será gerado um reset. Bit=1, nível=2,7V; Bit=0, nível=4V.
BODEN = BrownOut Detection Enabled. Quando programado, habilita a detecção de nível para reset por queda de alimentação.
SUT = Startup time (2 bits). Juntamente com CKSEL0 permitem ajustar o período entre a ativação do uControlador e o início da primeira instrução de execução. Tempos maiores de startup são usualmente mais seguros.
Neste caso, fazer CKSEL0=1, SUT1=1 e SUT0=1. Configuração recomendada para cristal externo e subida lenta da tensão de alimentação.
CKSEL = Clock Select (4 bits). Permitem ajustar a frequência a utilizar. No seu caso, faça CKOPT=0 (como falei anteriormente) e CKSEL3=CKSEL2=CKSEL1=1.
Espero ter lhe ajudado.