Depois de algum tempo segue atualização da biblioteca do livro AVR e Arduino: Técnicas de Projeto. Incorporei novas funções e simplifiquei outras, bem como melhorei a padronização do código.
Código e projeto no AVR Studio 6.2, com exemplos de uso das funções, arquivos AQUI.
Mensagem
"Sonhar mais um sonho impossível, lutar quando é fácil ceder, vencer o inimigo invencível, negar quando a regra é vender."
Miguel de Cervantes.
Miguel de Cervantes.
"Os microprocessadores RISC funcionam a partir do princípio genial de se encarregar das coisas mais fáceis e deixar todas as partes difíceis para outras pessoas resolverem."
Douglas Adams.
Mostrando postagens com marcador Atmel Studio. Mostrar todas as postagens
Mostrando postagens com marcador Atmel Studio. Mostrar todas as postagens
ARM CORTEX-M3 ATSAM3X8E - Arduino Due
OBSERVAÇÃO: not for Dummies!
Para aplicações relativamente simples um microcontrolado de 8 bits é suficiente. Entretanto, quando se necessita mais desempenho, memória e periféricos, é preciso um microcontrolador mais turbinado e com motor mais potente. Minha escolha foi o Arduino Due devido aos inúmeros Shields disponíveis e por poder ser programado no Atmel Studio, incluindo o FreeRTOS e todas as ferramentas necessárias para um desenvolvimento profissional de firmware.
Para aplicações relativamente simples um microcontrolado de 8 bits é suficiente. Entretanto, quando se necessita mais desempenho, memória e periféricos, é preciso um microcontrolador mais turbinado e com motor mais potente. Minha escolha foi o Arduino Due devido aos inúmeros Shields disponíveis e por poder ser programado no Atmel Studio, incluindo o FreeRTOS e todas as ferramentas necessárias para um desenvolvimento profissional de firmware.
Comecei a programação com alguns programas básicos para entender a complexidade dos registradores de configuração do ATSAM3X. O datasheet da Atmel é algo terrível, pesadelo para estudar e compreender (a Atmel deveria evitar que estagiários escrevessem datasheets!). Assim, resolvi disponibilizar os códigos desenvolvidos e materiais de suporte para ajudar os iniciantes.
Bueno, vamos ao que importa:
PRINCIPAIS CARACTERÍSTICAS DO ARDUINO DUE
PINAGEM aqui. (obrigado Rob Gray, te pago uma gelada quando te encontrar)
- Pinagem compativel com o Arduino Uno (Shields compatíveis), cuidado deve ser tomado pois o Due trabalha com 3.3V (5V pode danificá-lo permanentemente).
- Entrada de alimentação externa 9 VDC.
- Gravação através de conversor serial-usb com bootloader (similar ao Uno).
- Conector SPI.
- Conector JTAG para programação e depuração.
- Botão de reset.
- Botão para apagamento da memória do microcontrolador.
- Possui um microcontrolador ATSAM3X8E.
- 54 pinos de I/O.
- 12 entradas analógicas (ADC).
- 4 UARTs.
- 1 USB OTG.
- 2 saídas DAC.
PINAGEM aqui. (obrigado Rob Gray, te pago uma gelada quando te encontrar)
PRINCIPAIS CARACTERÍSTICAS DO ATSAM3X8E
CONFIGURANDO O ATMEL STUDIO PARA GRAVAR O ARDUINO DUE
- Processador de 32 bits (ARM - Cortex-M3).
- 512 kB de memória Flash.
- 96 kB de memória RAM.
- 84 MHz de frequência de operação máxima.
- Oscilador interno (PLL) para geração precisa de sinais de frequência para os seu trabalho.
- Controlador DMA
- 9 Timers de 32 bits com modos de comparação, captura e PWM.
- RTC
- USB 2.0 On To Go
- 4 UARTs
- 2 I2C
- 2 CAN
- 1 Ethernet MAC10/100 com DMA dedicado.
- 16 canais AD de 12 bits de 1 Msps (com sensor de temperatura interno).
- 2 canais DA de 12 bits 1 MSPs.
- 1 Gerador de Números Aleatórios Verdadeiro.
- 103 I/Os com capacidade de interrupção, filtro para debouncing e glitch, coletor aberto, pull-up.
- Modos para economia de energia.
CONFIGURANDO O ATMEL STUDIO PARA GRAVAR O ARDUINO DUE
Uma característica interessante do Atmel Studio é poder gravar o Due através de sua IDE. São necessários alguns passos de configuração (nada muito complicado) e o programa bossac.exe encontrado nas pastas de instalação da IDE do Arduino. Aqui link explicativo (figuras auxiliares abaixo).
Programa e exemplo do arquivo bat, aqui (eu coloquei a pasta bossa no C:\ e não usei a localização da IDE do Arduino).
CÓDIGOS EXEMPLOS EM C PARA O ARDUINO DUE (sob a licença Beerware)
desenha_pixel(...)
desenha_linha(...)
desenha_circulo(...)
desenha_retangulo(...)
desenha_triangulo(...)
desenha_figura(...)
escreve_Nr_Peq(...)
- Programa Pisca LED: pisca o LED ligado ao pino 13 (PB27). Apresenta as rotinas de atraso, tão importantes em programação: atraso_ms( ), atraso_us( ) e atraso_loops( ). Código das funções em assembly, funções aferidas com o uso de um osciloscópio.
- Programa para controle de LCDs 16x2 (controlador HD44780 pino RW aterrado): Apresenta as funções para inicialização e trabalho com esses LCD, incluindo a função para conversão de um número inteiro em seus dígitos individuais.
- Programa teste do RTC (Relógio de Tempo Real): uso do RTC interno do ATSAM, ajuste de horas com a leitura de botões, tempo apresentado em um LCD 16x2.
- Programa para uso da UART ligado ao conversor USB/serial do Arduino Due: teste e funções de transmissão e recepção de dados, incluindo um buffer de recepção com tamanho ajustável. As mensagens podem ser recebidas em qualquer terminal virtual em um PC.
- Programa teste do ADC usando um sensor LM35 e o sensor interno de temperatura: leitura da tensão gerada por um LM35 e pelo sensor interno do ATSAM, resultado enviado ao computador usando a UART. (Obs.: cuidado, ao habilitar o sensor interno de temperatura AD15, o pino PB27 é desabilitado!!! Pergunte à ATMEL o porquê ..., parece que alguns chips já foram corrigidos!? Referência nula a esse problema apresentada pela ATMEL!)
- Programa para teste do uso dos TIMERs (TCs): emprega a interrupção do TC0 e seus 3 canais. O estudo inicial dos TCs é confuso e este programa ajuda a entender como utilizá-los. O LED ligado ao pino PB27 troca de estado a cada estouro do TC correspondente.
- Programa para o uso do MAX7219 (driver para displays de 7 segmentos): testado com um módulo made in China. Este CI é bem interessante.
- Programa para o LCD NOKIA 5110 (gráfico 48x84 pixels): funções de trabalho para esse display fácil de utilizar e barato, adaptação do código para a IDE do Arduino da Sparkfun. Permite escrever mensagens e imprimir figuras. Inclui programa para gerar os dados da imagem e arquivos auxiliares. Fiz algumas funções para gráficos, só fiz o preenchimento para o retângulo. Produzir uma biblioteca gráfica é relativamente complicado, então aproveite.
desenha_pixel(...)
desenha_linha(...)
desenha_circulo(...)
desenha_retangulo(...)
desenha_triangulo(...)
desenha_figura(...)
escreve_Nr_Peq(...)
Programação C para Arduino
Na data de 26/05/2013 fiz uma breve introdução à programação C para Arduino no The Developer´s Conference (TDC2013), aqui em Florianópolis. A apresentação é apenas um indicativo do que foi falado. Download na figura abaixo.
Instalando o Arduino no Atmel Studio
É possível gravar e programar diretamente o Arduino no Atmel Studio. A configuração do Atmel Studio é uma tarefa árdua, com inúmeros passos, mas vale a pena poder gravar diretamente o Arduino sem depender de um programa externo, não há a necessidade de procurar o arquivo *.hex, tudo é feito automaticamente.
Abaixo a forma simplificada e mais eficiente:
http://omarfrancisco.com/arduino-programing-using-atmel-studio-6-0/
Nestes dois vídeos um processo mais longo:
http://www.youtube.com/watch?v=F74khQnh9pM
http://www.youtube.com/watch?v=qEcWR5EUNdk
Como eu não sou expert no assunto, se precisares de ajuda será necessário consultar algum dos autores dos posts supracitados.
Nestes dois vídeos um processo mais longo:
http://www.youtube.com/watch?v=F74khQnh9pM
http://www.youtube.com/watch?v=qEcWR5EUNdk
Como eu não sou expert no assunto, se precisares de ajuda será necessário consultar algum dos autores dos posts supracitados.
Estruturação e Criação de um Projeto no Atmel Studio
Quando se programa é fundamental dar manutenção e portabilidade ao programa. Isso é feito ao se estruturar o código de programação através de arquivos de programação separados por funcionalidade, os *.h (arquivos de cabeçalho) e respectivos *c (arquivo com as funções). No vídeo abaixo eu explico como fazer isso, aplicado aos arquivos da pasta de PROGRAMAS do livro AVR e Arduino: Técnicas de Projeto.
Também, como utilizar o arquivo *.hex para simulaçao no Proteus.
Exemplo da estruturação de um suposto projeto fonte_digital (livro AVR e Arduino: Técnicas de projeto).
Depuração de um programa Assembly no Atmel Studio
Para a compreensão do funcionamento do ATmega é primordial utilizar a depuração do ambiente de programação. Para exemplificar isso, em um vídeo apresento a analise de um programa Assembly simples para ligar e desligar um LED quando um botão é pressionado. Utilizo o Atmel Studio 6, mas poderia ser o AVR Studio 5.
Assinar:
Postagens (Atom)




