Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Microcontrolador ATmega328P - DCA, Resumos de Engenharia Elétrica

Microcontrolador ATmega328P. Microcontrolador de 8 bits. Baseado em um processador AVR RISC (Reduced Instruction Set. Computing).

Tipologia: Resumos

2023

Compartilhado em 17/01/2023

Leila_89
Leila_89 🇵🇹

4.4

(80)

3.2K documentos

1 / 35

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
EA075
Processadores de Propósito Geral:
Microcontrolador ATmega328P
Faculdade de Engenharia Elétrica e de Computação (FEEC)
Universidade Estadual de Campinas (UNICAMP)
Prof. Rafael Ferrari
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23

Pré-visualização parcial do texto

Baixe Microcontrolador ATmega328P - DCA e outras Resumos em PDF para Engenharia Elétrica, somente na Docsity!

EA

Processadores de Propósito Geral:

Microcontrolador ATmega328P

Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof. Rafael Ferrari

2

Microcontrolador ATmega328P

 Microcontrolador de 8 bits.  Baseado em um processador AVR RISC ( Reduced Instruction Set Computing ).  Arquitetura Harvard (memórias de programa e dados independentes).  32kB de memória flash para armazenamento de programas.  2kB de memória RAM estática para armazenamento de dados.  1kB EEPROM para armazenamento não-volátil.  23 linhas de entrada/saída de propósito geral (GPIO).  32 registradores de propósito geral.  3 temporizadores/contadores.  USART ( Universal Synchronous/Asynchronous Receiver Transmitter ).  Porta serial I^2 C ( Inter-Integrated Circuit ), também chamada de TWI ( Two Wire Interface ).  Porta serial SPI ( Serial Peripheral Interface ).  6 canais de 10 bits para conversão A/D.

Microcontrolador ATmega328P

 Cada periférico é controlado e configurado através

de um conjunto de registradores específicos.

 Cada registrador é mapeado em uma posição da

memória de dados, ou seja, sua manipulação se dá

através de operações de escrita e leitura em

memória.

 Cada linha das portas B, C e D (GPIOS) pode ser

configurados como entrada ou saída de maneira

independente.

 A memória flash de programa pode ser programada

através da conexão serial SPI ou por meio de um boot

loader (Arduino).

CPU AVR

Arduino Uno

GPIO

 As portas de entrada e saída de propósito geral ( General- Purpose Input/Output - GPIO) são provavelmente os componentes dos microcontroladores mais empregados em sistemas embarcados.  GPIOs são linhas digitais conectadas aos pinos externos do microcontrolador usadas no controle e acionamento de dispositivos (LEDs, botões, motores, etc).  Cada GPIO pode ser configurada independentemente como um pino de entrada ou de saída.  Via software , pode-se escrever um nível 0 ou um nível 1 em uma GPIO de saída ou pode-se ler valores digitais em uma GPIO de entrada.

GPIO – Saída

 Dois registradores (flip-flops tipo D):

Data Direction Register (DDR)  Registrador de dados

 O registrador DDR habilita a conexão entre o

registrador de dados e o pino do microcontrolador.

 O registrador de dados armazena o nível lógico de

saída.

 Procedimento para escrever no pino de saída n da

porta x :

  1. Escrever um nivel lógico “ 1 ” em DDR x _Bit n
  2. Escrever um nível lógico “ 1 ” ou “ 0 ” em Port x _Bit n

GPIO – Entrada

GPIO

 O microcontrolador Atmega328P possui 23 linhas GPIO, divididas entre três portas:  Porta B: 8 linhas  Porta C: 7 linhas  Porta D: 8 linhas  Cada porta possui três registradores:  DDR x : define a direção da porta (“ 0 ” entrada, “ 1 ” saída).  PORT x : armazena o dado de saída.  PIN x : armazena o dado de entrada amostrado. (OBS: x = B, C ou D)  Os registradores são mapeados em memória e podem ser acessados através de operações de leitura e escrita em memória.

GPIO – Porta B

Endereços dos registradores

GPIO – Programando em C

 Usando ponteiros : // criar o ponteiro e atribuir o endereço do registrador unsigned char portB_DDR; portB_DDR = (unsigned char) 0x24; // Leitura do conteúdo armazenado no registrador DDRB unsigned char dado; dado = (*portB_DDR); // Escrita *portB_DDR = 0xFF; // todos os bits são de saída // Alterando somente o bit 5 #define BIT5_MASK 0x20 // 0010 0000 // atribuir nível baixo ao bit 5 portB_DDR = (portB_DDR) & (~BIT5_MASK); // atribuir nível alto ao bit 5 portB_DDR = (portB_DDR) | BIT5_MASK;

GPIO – Programando em C

 Usando variáveis predefinidas:

// Leitura do conteúdo armazenado no registrador DDRB dado = DDRB; // DDRB corresponde a um ponteiro para 0x

// Escrita DDRB = 0xFF; // todos os bits são de saída // Alterando somente o bit 5

define BIT5_MASK 0x20 // 0010 0000

// atribuir nível baixo ao bit 5 DDRB = DDRB & (~BIT5_MASK); // atribuir nível alto ao bit 5 DDRB = DDRB | BIT5_MASK;

 Na IDE do Arduino, as variáveis predefinidas geralmente seguem a nomenclatura adotada no datasheet (DDRB, PORTB, PINB, etc).

GPIO – Características Elétricas

GPIO – Características Elétricas