MCO018703 2021 1 AULA01

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Apresentação

Nesta unidade curricular vamos aprender sobre como implementar e projetar circuitos eletrônicos digitais com microcontroladores. Para isso precisamos identificar as diferentes arquiteturas de microcontroladores, bem como conhecer as técnicas de programação de microcontroladores. Ainda, vamos apresentar a simbologia e linguagem técnica, bem como programar e gravar microcontroladores. Entre outros assuntos, abordaremos os conteúdos: de Memória, arquitetura interna do Arduino e linguagem C para microcontroladores.

Introdução aos Microcontroladores

Os avanços tecnológicos demandam cada vez mais dispositivos eletrônicos. Os Microcontroladores têm alcançado grande desenvolvimento nas últimas décadas e a sua facilidade de uso, com ampla faixa de aplicações, permite um projeto relativamente rápido e fácil de novos equipamentos eletrônicos. O Microcontrolador é o agrupamento de vários componentes em um sistema microprocessado. Basicamente o Microcontrolador é um microprocessador com memória RAM e de programa, temporizadores e circuitos de clock embutidos. O único componente externo é o cristal para determinar a frequência de trabalho. Os Microcontroladores têm agregado inúmeras funcionalidades como: gerador interno de clock; memória SRAM, EEPROM e FLASH; conversores A/D, D/A; vários temporizadores/contadores; comparadores analógicos; PWM; diferentes tipos de interface de comunicação, incluindo USB, UART, I2C, CAN, SPI, JTAG; relógios de tempo real; circuitos para gerenciamento de energia no chip; circuitos para controle de reset, alguns tipos de sensores; interface para LCD; e outras funcionalidades de acordo com os fabricantes.


Arquiteturas: Von-Neumann x Harvard

Existem duas arquiteturas clássicas para os microprocessadores em geral: a arquitetura Von-Neumann, onde existe apenas um barramento interno por onde circulam instruções e dados e a arquitetura Harvard, que é caracterizada por dois barramentos internos, sendo um de instruções e outro de dados. Pode-se dizer que a primeira é uma arquitetura serial e a segunda paralela; da mesma forma, pode-se dizer que a arquitetura Von-Neumann permite produzir um conjunto complexo de código de instruções para o processador (CISC – Complex Instructions Set Computer), com um tempo de execução por instrução de vários ciclos de clock. Já a arquitetura Havard produz um conjunto simples de códigos de instruções e, dado ao paralelismo de sua estrutura, é capaz de executar apenas uma instrução por ciclo de clock. A arquitetura Von-Neumann é mais simples, com menor número de portas lógicas, entretanto, sua velocidade é menor que a Havard. A arquitetura Havard necessidade de mais linhas de código para executar a mesma tarefa. Enquanto uma arquitetura Von-Neumann possui muito mais tipos de instruções.


Fig050 MCO018703.png

Figura - Arquiteturas clássicas de processadores: Von-Neumann x Harvard.

Atualmente nas modernas arquiteturas de microcontroladores está havendo o domínio da Harvard, que evoluiu para uma arquitetura que pode ser chamada de Harvard estendida ou avançada. Sendo composta por um grande número de instruções e ainda com a redução da quantidade necessária de portas lógicas, produzindo um núcleo de processamento compacto, veloz e com programação eficiente com menor número de linhas de código. Devido às questões de desempenho, compatibilidade eletromagnética e economia de energia, hoje é praticamente inaceitável que um microcontrolador não execute a maioria das instruções em poucos ciclos de clock diminuindo o consumo e a dissipação de energia.


Microcontroladores AVR

Os microcontroladores AVR foram desenvolvidos na Noruega em 1995 e são produzidos pela ATMEL, apresentam ótima eficiência de processamento e núcleo compacto com poucos milhares de portas lógicas. Com uma estrutura RISC avançada, apresentam mais de uma centena de instruções e uma arquitetura voltada à programação C, que permite produzir códigos compactos. Também, dado sua arquitetura, o desempenho do seu núcleo de 8 bits é equivalente ao desenvolvido por microcontroladores de 16bits.

As principais características dos microcontroladores AVR são:

  • Executam instruções em um simples ciclo de clock e operam com tensões entre 1,8 e 5,5 V, com velocidades de até 20 MHz. Sendo disponíveis em diversos encapsulamentos (de 8 até 64 pinos).
  • Alta integração e grande número de periféricos com efetiva compatibilidade entre toda a família AVR.
  • Possuem vários modos para redução do consumo de energia e características adicionais (picoPower) para sistemas críticos.
  • Possuem 32 registradores de propósito geral, memória de acesso load-store e a maioria das instruções é de 16bits.
  • Memória de programação FLASH programável in-system, SRAM e EEPROM, para desenvolvimentos rápidos e flexibilidade de projeto.
  • Facilmente programados e com debug in-system via interface simples, ou com interfaces JTAG compatível com 6 ou 10 pinos.
  • Possuem um conjunto completo e gratuito de softwares.
  • Preço acessível.

Existem microcontroladores AVR específicos para diversas áreas, tais como: automotiva, controle de LCDs, redes de trabalho CAN, USB, controle de motores, controle de lâmpadas, monitoração de bateria, Bluetooth, 802.15.4/ZigBeeTM e controle por acesso remoto.


Dentre os principais componentes da família AVR podemos citar:

  • tinyAVR® - ATtiny: microcontroladores de propósito geral de até 8 kbytes de memória Flash, 512 bytes de SRAM e EEPROM.
  • megaAVR® - ATmega: microcontroladores de alto desempenho com multiplicador por hardware, com até 256 kbytes de memória Flash, 4 kbytes de EEPROM e 8 kbytes de SRAM.
  • picoPowerTM AVR: microcontroladores com características especiais para economia de energia.
  • XMEGATM ATxmega: Os novos μcontroladores XMEGA 8/16-bit dispõem de novos e avançados periféricos com aumento de desempenho, DMA (Direct Memory Access) e sistema de eventos .
  • AVR32 (não pertence às famílias acima): microcontroladores de 32 bits com arquitetura RISC projetada para maior processamento por ciclos de clock, com eficiência de 1,3 mW/MHz e até 210 DMIPS (Dhrystone Million Instructions per Second) a 150 MHz, conjunto de instruções para DSP (Digital Signal Processing) com SIMD (Single Instruction, Multiple Data) com soluções SoC (System-on-a-chip) e completo suporte ao Linux.

Nessa Unidade Curricular será abordado o ATmega328p por ser um microcontrolador que apresenta a maioria das características da família AVR e ser compacto (28 pinos PDIP), apresentando uma memória Flash de tamanho razoável. O importante é saber que ao programar este microcontrolador, os conceitos de programação de qualquer outro da família AVR são aprendidos dada a similaridade entre as famílias. As pequenas mudanças de hardware e software são resolvidas com uma busca ao referido Datasheet.


Fig051 MCO018703.png

Figura - Microcontrolador ATmega328P utilizado nas placas ARDUINO UNO.


Microcontrolador ATmega328P é utilizado nas placas ARDUINO UNO e oferece performance que permite executar desde um simples programa que faz piscar um LED até um controle de um robo ou ainda um programa de controle de acesso controlado por rede.

Exercícios

1. Por que e pra que utilizar microcontroladores?
2. Qual o componente externo utilizado para gerar o sinal de clock?
3. Cite pelo menos 5 funcionalidades para o uso de microcontroladores.
4. Qual a diferença física na arquitetura microprocessadores entre Von-Neumann x Harvard?
5. O que acontece com a execução das instruções numa e em outra arquitetura?
6. Quando surgiu os microcontroladores AVR?
7. Destaque as principais características dos microcontroladores AVR.
8. Cite alguns tipos de microcontroladores AVR e suas principais características.
9. Pesquisa na Internet, quais as principais característica do microcontrolador ATmega328P quanto:
a) Memória Flash (kB)
b) EEPROM (kB)
c) SRAM (Bytes)
d) Pinos de I/O (máximo)
e) Frequência máxima (MHz)
f) Faixa de VCC (V)
g) Conversores A/D (canais)
h) Interrupções Externas (quantidade)
i) Pinos de PWM (quantidade)

Referências

[1] https://wiki.ifsc.edu.br/mediawiki/images/d/dd/Microcapostila.pdf

[2] Apostila ATMega8



Icone voltar.png Icone menu.png Icone prox.png