Páginas

quinta-feira, 27 de dezembro de 2012

ATtiny85 @ 16MHz sem cristal

Olá pessoal. Enquanto não preparo o material das aulas, estou deixando aqui o que eu achei no datasheet do ATtiny85.

Nas opções de clock do ATtiny85 há a possibilidade de usar um PLL em conjunto com o oscilador interno fazendo com que o ATtiny85 rode a 16 MHz. Só o que é preciso fazer é regravar os fuses do ATtiny85.

Pra quem já sabe programar pelo avrdude, basta inserir a sequinte linha de comando: "-U lfuse:w:0xf1:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m" (sem as aspas).



Para quem usa o ATtiny85 no Arduino 1.0.1 terá que alterar um arquivo no diretório do arduino. Primeiro abra a pasta onde estão os arquivos do arduino, abra a pasta hardware, abra a pasta attiny85, e abra o arquivo boards.txt.













Vá no final desse arquivo e cole o seguinte código:

attiny85-16.name=ATtiny85 (internal 16 MHz clock)
attiny85-16.bootloader.low_fuses=0xf1
attiny85-16.bootloader.high_fuses=0xdf
attiny85-16.bootloader.extended_fuses=0xff
attiny85-16.upload.maximum_size=8192
attiny85-16.build.mcu=attiny85
attiny85-16.build.f_cpu=16000000L
attiny85-16.build.core=arduino:arduino
attiny85-16.build.variant=tiny8

aqui no meu, eu coloquei entre as configurações de 8 e 20 MHz para ficar mais organizado.



Se a IDE do Arduino estiver aberta, feche-a e a abra novamente. Faça o upload do sketch arduinoISP para a placa do Arduino e monte o ATtiny85 para ser reprogramado. Vá no menu "Tools", depois em "boards" e procure pela opção "ATtiny85 (internal 16 MHz clock)". Em seguida vá no menu "Tools", depois em "Programmer" e selecione "Arduino as ISP". Vá mais uma vez no menu "Tools", e selecione "Burn Bootloader" e espere terminar a gravação. Pronto, seu attiny agora está rodando à 16MHz.






Agora é só aproveitar a velocidade extra para fazer aplicações mais avançadas.

Obs: Para quem não consegue gravar o attiny na IDE 1.0, eu estou deixando a pasta "attiny85" no link abaixo. É só descompactá-lo na pasta "hardware" do diretório do arduino.

attiny85.zip

terça-feira, 25 de dezembro de 2012

Cronograma do Curso

 Fiz um cronograma básico do que pretendo abordar neste blog em relação à programação do AVR.
Entre cada módulo pretendo postar também, outros materiais como por exemplo de como criar gravadores HVPP e HVSP para fazer o reset de fuses para os microcontroladores, assim como outros circuitos que possam ajudar no aprendizado.
Espero também receber a colaboração de vocês com sujestões e críticas para que possamos crescer juntos nesse processo de aprendizagem.
Até o próximo post...

* Programando o AVR
    Tipos de programadores
    O Arduino como programador
* O AVR Studio 6
    Criar um programa no AVR Studio
    Configurando o AVR Studio
    Introdução à simulação com o Proteus
* Configuração de pinos
    Ports
    Registradores e números hexadecimais
    Output, input e input com pullup
* Criando o primeiro programa
    Blink
    Configurando o Clock de Operação
    Operações bit a bit
    Fazendo o upload do programa
* Leitura de estado dos pinos
    Adicionando um botão
    Entendendo o Debounce
* Variáveis
    Declarando uma variável
    Tipos de dados
* Laços de repetição e Controle de Execução
    if
    if else
    for
    while
    do while
    switch case
    goto
* Funções
    Criando uma função
    Passando parâmetros à uma função
    Retornando valores
* Timers
    Fazendo o blink sem delay
* Interrupções
    Interrupção Externa
    Interrupção de periféricos
* Criando Bibliotecas
    Interfaceando um LCD
    Imprimindo uma strimg
    Imprimindo um número
* Indrodução ao ADC
    Potenciômetros e divisores de voltagem
    Lendo valores de 10 bits no ADC
    Usando a velocidade máxima do ADC
    Interrupção do ADC
* Introdução ao PWM
    Modos de PWM
    Controlando um Servo
    Controlando vários Servos
* Comunicação Serial - UART
    Configurando o módulo UART
    Crirando uma biblioteca Serial
* Comunicação I2C
    Configurando o módulo I2C
    Criando uma biblioteca para o I2C
    O expansor de portas PCF8574
* Comunicação SPI
    Vantagens e desvantagens da SPI
    Configurando o módulo SPI
    Criando uma biblioteca
    O shift register 74HC595
    O expansor MCP23S17
* Iniciação à programação C++
    Vantagens da programação C++ em relação à C
    Criando objetos
    Sobrecarga de Funções
    Migrando bibliotecas C para o C++

Introdução

Olá à todos. Hoje estou iniciando este blog para compartilhar minhas aventuras nesse fantástico mundo da eletrônica. Vou tentar trazer aqui, vários materiais relacionados à eletrônica mas meu foco principal será programação de microcontroladores, em especial, os AVR da ATMEL. Escolhi os AVR porque eles possuem uma boa relação custo/benefício, são rápidos e possuem uma poderosa IDE de desenvolvimento, o AVR Studio 6, que é gratuito e pode ser baixado no site da ATMEL. A princípio, vou me focar no ATmega328, que por ser usado no arduíno, se tornou muito popular. Esse microcontrolador possui vários periféricos tais como SPI, UART, I2C entre outros, o que o torna bem completo e perfeito para iniciar o aprendizado. Conforme for avançando, irei migrando de microcontroladores, tanto para microcontroladores mais robustos, quanto para alguns mais simples. Por hoje foi só essa introdução mas em breve voltarei com alguns tutoriais.