segunda-feira, 11 de junho de 2012

Gravador Serial AVR


Este gravador AVR simples permite que você consiga transferir seus programas em formato .HEX para um microcontrolador AVR sem sacrificar a sua carteira e seu tempo. Este é o mais confiável e simples gravador para microcontroladores AVR disponível e que pode ser construído em um tempo muito pequeno.




O gravador AVR consiste em um esquema de gravação serial in-circuit e uma pequena placa com um socket DIP ao qual se encaixa o microcontrolador e programá-lo de maneira bem prática. Este programador pode ser usado como uma estação de gravação in-circuit, isto é, vc pode conectar o gravador na placa final e programar o microcontrolador sem ter que remover o chip da placa.
Todo o programador foi construído usando componentes comuns e que cabem dentro do conector serial. A placa com o socket DIP foi criada para comportar um microcontrolador de 28 pinos AVR ATmega8, mas você poderá construir placas para qualquer outra série de diferentes formatos de circuito integrado. Este programador é compatível com o popular software de programação PonyProg que mostra uma barra de progresso a medida em que o código binário é transferido para o chip.

AVR In-Circuit Serial Programmer






Placa do Socket AVR
A placa com o socket tem um número mínimo de componentes e é usado para a programação de seu microcontrolador de preferência fora da placa destinada.






A placa com o socket, do tipo DIP para 28 pinos, tem um ressonador de 4MHz, ou um cristal com dois capacitores de desacoplamento e mais dois conectores. O conector com dois pinos é uma entrada para o suprimento de uma tensão de +5V para o microcontrolador AVR e o conector com 6 pinos é o ICSP (In-Circuit Serial Programmer).
Ao suprir o microcontrolador com uma tensão externa de +5V como oposta àquela a partir do conector da porta serial do computador assegura que o chip receberá exatamente +5V e isso provê uma confiabilidade maior contra os erros de programação por instabilidade na tensão.

PonyProg
Para que seja possível enviar arquivos .hex a partir do computador para o microcontrolador AVR é necessário baixar e instalar o PonyProg2000. Depois da instalação, a primeira coisa que você precisará fazer é configurar o PonyProg para funcionar com o nosso programador AVR. Para fazer isso vá ao menu "Setup" e selecione "Interface Setup". A seguinte tela irá ser mostrada e as áreas em destaque mostram exatamente quais opções devem ser modificadas ou selecionadas.




No próximo passo selecione "AVR micro" e o tipo do seu microcontrolador que irá ser programado (ex. ATmega8)




Até este ponto a configuração do PonyProg está completa e nos poderemos abrir o programa em .hex com o qual o microcontrolador vai ser gravado. Vá até o menu "File" , selecione "Open Program (FLASH File...", e clique no arquivo .Hex para que seja aberto. Após isso, você verá números em hexa na tela inferior. Se você ainda não conectou o seu programador na porta serial do computador este já é o momento para isso. Tenha certeza de que o programador AVR esteja fisicamente conectado ao seu microcontrolador AVR através do socket da placa ou através do conector de 6 pinos ICSP. Finalmente click sobre o ícone em destaque "Write Program Memory (FLASH), ou vá em "Command" e selecione "Write Program (FLASH)".



Clique em sim para confirmar a programação



Agora tenha paciência até que o processo termine. Haverá dois passos: Primeiro o "Writing..." e depois o "Verifing".



Após a gravação completa uma janela será exibida "Write Successful" permitindo que você saiba que o microcontrolado AVR foi gravado e que agora está pronto para ser utilizado.


Fonte: http://electronics-diy.com/avr_programmer.php

Fuse Bits do AVR

Neste artigo vou falar sobre o como funciona o Fusebits do microcontrolador AVR. Acredito que muitas pessoas se confunde com relação a programação do fuse bits do microcontrolador AVR. Os novatos fazem perguntas frequentes sobre como configurar o fuse bits e esta foi a principal motivação para escrever este artigo. É importante prestar atenção sobre uma convenção estabelecida por este artigo definida pela figura abaixo:

A primeira coisa a fazer antes de gravar o microcontrolador é fazer uma configuração dos bits. Isso pode ser feito por um software de programação, por exemplo, o ponyprog.


A primeira coisa que chama a atenção devem ser as fontes de clock. Há quatro bits para controlar as fontes de clock do Atmega8: CKSEL0, CKSEL1, CKSEL2 e CKSEL3.

Como você já deve saber, o Atmega8 tem quatro fontes de clock diferentes.
  • Cristal externo ou ressonador
  • Cristal de baixa frequência externo
  • Oscilador RC externo ou oscilador RC interno calibrado
  • Fonte de clock externa
Na tabela abaixo veja as configurações adequadas para CKSEL0..3
Como você deve ter notado, para a maioria dos items acima existem faixas de configuração. Por exemplo, note o External Cristal or Ressonator. Esta configuração tem definições que vão de 1010 até 1111. Estas faixas são deixadas para o usuário escolher o tempo de partida do microcontrolador enquanto o oscilador estabilize o funcionamento antes que haja o processamento da primeira instrução.

Abaixo veja a figura representando a conexão de um um oscilador a cristal externo ou ressonador em XTAL1 e XTAL2 do microcontrolador.

Em seguida há a configuração do fuse bit CKOPT. Este bit escolhe dois modos diferentes do amplificador de oscilador. Se o CKOPT está programado (Não Checado), então o oscilador oscila com sua amplitude maior amplitude. Isso é muito útil quando se trabalha em ambientes ruidosos ou o terminal XTAL2 é usado para alimentar outro microcontrolador. O lado ruim disso é que o microcontrolador consome mais energia. Se o CKOPT não está programado (checado), então a amplitude oscila em uma faixa menor e a potência consumida fica baixa. Tipicamente, se o oscilador está acima de 8MHz então deixe o CKOPT marcado e programado (Não Checado) abaixo de 8MHz.

Na tabela abaixo você pode ver as opções dos modos de osciladores à cristal:
Os bits CKSEL0, SUT0 e SUT1 são usados para a escolha do tempo de partida do microcontrolador, isto é, quantos ciclos de clock necessários antes de executar o primeiro comando. Estas configurações são necessárias para assegurar a estabilidade de osciladores à cristal ou ressonadores.
- Nota 1: "Estes tem um tempo de partida rápido". Não é adequado para cristais.
- Nota 2: Mais usado com ressonadores cerâmicos para assegurar a estabilidade. É bom para usar com cristais também, mas o dispositivo não opera na frequência máxima.

Portanto, se você quer um sistema com partida estável é melhor deixar o CKSEL0, SUT0 e SUT1 programados (Não checado) que significa ter um tempo de partida de 65ms.

Cristal de baixa frequência

Há somente um bit de configuração para CKSEL0, CKSEL1, CKSEL2, CKSEL3 - (1001) - (Não-Checado, Checado, Checado, Não-checado) para o oscilador de baixa frequência. Osciladores de baixa frequência são clocks à cristal típicos onde a frequência está em torno de 32768KHz. As principais opções para este modo são as configurações de tempo de partida com os fuse bit SUT0 e SUT1.
- Nota 1: Partida menos estável

Oscilador RC externo

A frequência para este modo é calculada pela fórmula f=1/(3RC) e o valor de C deve ser de pelo menos 22pF. Se CKOPT é programado (Não-checado), então o capacitor de 36pF entre o XTAL 1 e o GND é habilitado. Assim, é necessária somente a conexão de um resistor. Veja a figura abaixo para entender melhor:
E novamente, os modos de operação:
E também os tempo de partida:
- Nota 1: Não use esta configuração se estiver muito perto da frequência máxima.

Oscilador RC interno calibrado

O oscilador RC interno calibrado é muito utilizado porque não há necessidade de se usar componentes externos. Este provê clocks fixos em 1MHz, 2MHz, 4MHz e 8MHz. Este modo é escolhido pela programação do fuse bits na faixa de 0001 até 0100. Deixe o bit CKOPT desprogramado (checado) para este modo.

Modos de operação:
- Nota 1: Por padrão esta é a frequência configurada para todos os microcontroladores atmega8.

A tabela de tempos de partida:

Clock Externo

O Clock Externo é a maior fonte de equivocos cometidos por iniciantes quando estão começando seus projetos. Para habilitar a fonte de clock externa você tem que deixar os bits CKSEL0, CKSEL1, CKSEL2 e CKSEL3 não programados, isto significa checados.

Exemplos de como programar as fontes de clock do microcontrolador Atmega8 corretamente.





  • Cristal de 8MHz com carga lenta:





  • Ressonador cerâmico de 2MHz com carga rápida:







  • Ressonador de 32768kHz de frequência estável na partida:





  • Oscilador externo RC de 4MHz com capacitor interno habilitado e carga rápida:




  • Se você quer tirar o máximdo de seu atmega8 então escolha 16MHz com carga rápida:



  • Espero que tenha contribuído para resolver as suas dúvidas. Muito obrigado pela sua visita. Não deixe de comentar caso você tenha alguma dúvida.