Você está na página 1de 34
Introdução aos Microcontroladores Aula 1 Escola Politécnica da Universidade de São Paulo Departamento de Sistemas

Introdução aos Microcontroladores

Introdução aos Microcontroladores Aula 1 Escola Politécnica da Universidade de São Paulo Departamento de Sistemas
Introdução aos Microcontroladores Aula 1 Escola Politécnica da Universidade de São Paulo Departamento de Sistemas
Introdução aos Microcontroladores Aula 1 Escola Politécnica da Universidade de São Paulo Departamento de Sistemas
Introdução aos Microcontroladores Aula 1 Escola Politécnica da Universidade de São Paulo Departamento de Sistemas

Aula 1

Introdução aos Microcontroladores Aula 1 Escola Politécnica da Universidade de São Paulo Departamento de Sistemas

Escola Politécnica da Universidade de São Paulo

Departamento de Sistemas Eletrônicos – PSI/EPUSP

Paulo Departamento de Sistemas Eletrônicos – PSI/EPUSP Thiago Henrique Daud de Faria Sábado, dia 19 de
Paulo Departamento de Sistemas Eletrônicos – PSI/EPUSP Thiago Henrique Daud de Faria Sábado, dia 19 de
Paulo Departamento de Sistemas Eletrônicos – PSI/EPUSP Thiago Henrique Daud de Faria Sábado, dia 19 de

Thiago Henrique Daud de Faria

Sábado, dia 19 de agosto de 2006

Tópicos do Curso

Introdução às Unidades de Processamento

Resumo das Arquiteturas das Unidades de Processamento

Curiosidades, Histórico e Estudo Comparativo das CPU's

Curiosidades, Histórico e Estudo Comparativo das CPU's ● Intervalo ● Arquitetura Geral da Família Atmel AVR

Intervalo

Arquitetura Geral da Família Atmel AVR - 8 Bit

Especificações da Família Atmel AVR - 8 Bit

Uso de Ferramentas de Desenvolvimento e Exemplos

8 Bit ● Uso de Ferramentas de Desenvolvimento e Exemplos ● Fim da Aula Teórica e

Fim da Aula Teórica e Início aos Exercícios Práticos

Conclusão e Solução de Dúvidas

Fim da Aula

Fim da Aula Teórica e Início aos Exercícios Práticos ● Conclusão e Solução de Dúvidas ●
Fim da Aula Teórica e Início aos Exercícios Práticos ● Conclusão e Solução de Dúvidas ●

Motivação do Curso

Motivação do Curso ● Auxílio nos desenvolvimento dos projetos da disciplina PSI2222 ● Uma unidade central

Auxílio nos desenvolvimento dos projetos da disciplina

PSI2222

nos desenvolvimento dos projetos da disciplina PSI2222 ● Uma unidade central de controle está presente em

Uma unidade central de controle está presente em praticamente todas às áreas da tecnologia moderna.

A indústria de MCU/MPU movimenta anualmente 50 bilhões de dólares por ano.

movimenta anualmente 50 bilhões de dólares por ano. ● Aproximadamente a metade de todas as CPU's

Aproximadamente a metade de todas as CPU's vendidas são pequenos microcontroladores de 8 bit.

Mais de 5 bilhões de unidades de 8 bit são vendidas anualmente

Objetivos

Objetivos ● Dar ao aluno o conhecimento das diversas tecnologias e arquiteturas existentes no mercado ●
Objetivos ● Dar ao aluno o conhecimento das diversas tecnologias e arquiteturas existentes no mercado ●

Dar ao aluno o conhecimento das diversas tecnologias e arquiteturas existentes no mercado

Capacitar o aluno iniciante a desenvolver projetos usando microprocessadores e microcontroladores e utilizar ferramentas de desenvolvimento modernas

Apresentação dos conceitos básicos comuns às tecnologias comerciais existentes

básicos comuns às tecnologias comerciais existentes ● Auxiliar o aluno à escolher o melhor dispositivo para

Auxiliar o aluno à escolher o melhor dispositivo para seu projeto, levando-se em consideração desempenho, custo e confiabilidade.

Introdução às Unidades de Processamento (CPU)

Introdução às Unidades de Processamento (CPU) Microprocessador (MPU ou μP) – Circuito integrado, digital,

Microprocessador (MPU ou μP) – Circuito integrado, digital, implementado em um único chip, capaz de executar um programa, armazenado em alguma memória, que contém uma lista de instruções para a realização de uma seqüência de tarefas lógicas e/ou aritméticas. Também chamado de Unidade Central de Processamento (CPU) ou Cor e .

Microcontrolador (MCU ou μC) - Circuito integrado, digital, implementado em um único chip, que consta de uma CPU mais uma série de periféricos, de utilidade típica em atividades de controle eletrônico, já embutidos no mesmo chi p, como por exemplo: memória fla sh , memória RAM, UART, timer, PWM, conversor analógico-digital(ADC), relógio (RTC) e outros.

Arquiteturas ● Modo de acesso às memórias de programa e memória de dados. ● Natureza,

Arquiteturas

Arquiteturas ● Modo de acesso às memórias de programa e memória de dados. ● Natureza, quantidade

Modo de acesso às memórias de programa e memória de dados.

de acesso às memórias de programa e memória de dados. ● Natureza, quantidade e complexidade das

Natureza, quantidade e complexidade das instruções disponíveis no “set” de instruções.

Forma de acesso às diferentes estruturas de armazenamento, internas, que fazem parte da CPU

de armazenamento, internas, que fazem parte da CPU ● Quantidade de Unidades de Processamento (CPU's ou

Quantidade de Unidades de Processamento (CPU's ou Cores) que operam conjuntamente no mesmo dispositivo

Arquiteturas de Acesso à Memória de Programa e Memória de Dados

Von Neumann

Instruções que constituem o programa a ser executado e dados gerados durante a execução do programa compartilham a mesma porção de memória

Harward

compartilham a mesma porção de memória ● Harward Programa e dados estão dispostos fisicamente separados em
compartilham a mesma porção de memória ● Harward Programa e dados estão dispostos fisicamente separados em

Programa e dados estão dispostos fisicamente separados em diferentes unidades de memória

Harward – Mark I

Aiken-IBM Automatic Sequencer Controlled Calculator

Mark I Aiken-IBM Automatic Sequencer Controlled Calculator Computador projetado por Howard Aiken e fabricado pela IBM
Mark I Aiken-IBM Automatic Sequencer Controlled Calculator Computador projetado por Howard Aiken e fabricado pela IBM
Mark I Aiken-IBM Automatic Sequencer Controlled Calculator Computador projetado por Howard Aiken e fabricado pela IBM
Mark I Aiken-IBM Automatic Sequencer Controlled Calculator Computador projetado por Howard Aiken e fabricado pela IBM

Computador projetado por Howard Aiken e fabricado pela IBM para a Universidade de Harward em 1944. O programa era armazenado em cartões perfurados, enquanto que os dados eram acessados em uma memória independente baseada em lógica eletromecânica de relés.

Set de Instruções

Set de Instruções ● CISC (Complex Instruction Set Computer) ● Possui um grande conjunto de instruções,

CISC (Complex Instruction Set Computer)

Possui um grande conjunto de instruções, que geralmente implementam funções específicas e de alto-nível.

Apropriado para ser programado diretamente, mas com poucas oportunidades de otimização.

As instruções são processadas mais lentamente porém o “hardware” é mais simples.

RISC (Reduced Instruction Set Computer)

mais simples. ● RISC (Reduced Instruction Set Computer) ● Possui um comjunto pequeno de instruções básicas

Possui um comjunto pequeno de instruções básicas e fundamentais.

Mais apropriado para ser programado através de compiladores. O código pode ser muito otimizado de acordo com o compilador.

As instruções são processadas rapidamente mas necessitam de “hardware” mais complexo.

Ortogonalidade

Ortogonalidade Uma determinada arquitetura de CPU é ortogonal quando todos os registradores podem ser acessados através

Uma determinada arquitetura de CPU é ortogonal quando todos os registradores podem ser acessados através de um mesmo método de endereçamento, de forma que qualquer operação ou qualquer instrução pode ser executada em qualquer registrador.

Uma arquitetura não é Ortogonal (ou seja, é radial) quando determinados registradores são alocados em um espaço de memória e os registradores que formam os operandos das instruções são endereçados de forma diferente dos demais, geralmente mantendo o resultado em um registrador especial conhecido como acumulador

Linha do Tempo, Curiosidades, Comparativos

Linha do Tempo, Curiosidades, Comparativos Observar o histórico da evolução das CPU's, seu uso e suas

Observar o histórico da evolução das CPU's, seu uso e suas capacidades ao longo de 36 anos, desde a invenção do Microprocessador em 1971 até os dias de hoje.

invenção do Microprocessador em 1971 até os dias de hoje. Através da comparação dos dispositivos que

Através da comparação dos dispositivos que faziam uso das diversas tecnologias adquirir a noção do desempenho atingido pelas unidades mais famosas .

As primeiras CPU's em um único “chip”

As primeiras CPU's em um único “chip” 1970 - Central Air Data Computer (US-Navy) – MP944

1970

- Central Air Data Computer (US-Navy) – MP944

1971

- Intel 4004 – 4 bit ( 750 Khz )

1971

- Texas Instruments - TMS 1000

1973

- Texas Instruments - U.S. Patent 3,757,306

– 4 bit ( 750 Khz ) 1971 - Texas Instruments - TMS 1000 1973 -

Intel 4004 – O primeiro microprocessador comercial (1971)

Intel 4004 – O primeiro microprocessador comercial (1971)
Intel 4004 – O primeiro microprocessador comercial (1971)
Intel 4004 – O primeiro microprocessador comercial (1971)

1976

- Intel 8085 - 8 bit ( 3.07 Mhz )

1976 - Intel 8085 - 8 bit ( 3.07 Mhz ) 1976 - Zilog Z80 (

1976 - Zilog Z80 ( 2.5 Mhz )

1976 - Intel 8085 - 8 bit ( 3.07 Mhz ) 1976 - Zilog Z80 (
1976 - Intel 8085 - 8 bit ( 3.07 Mhz ) 1976 - Zilog Z80 (
1976 - Intel 8085 - 8 bit ( 3.07 Mhz ) 1976 - Zilog Z80 (
1977 - Apple II - MOS 6502 (1 MHz) 1977 - Atari 2600 – MOS
1977 - Apple II - MOS 6502 (1 MHz) 1977 - Atari 2600 – MOS
1977 - Apple II - MOS 6502 (1 MHz) 1977 - Atari 2600 – MOS

1977

- Apple II - MOS 6502 (1 MHz)

1977

- Atari 2600 – MOS 6507 (1,19 MHz )

1977 - Apple II - MOS 6502 (1 MHz) 1977 - Atari 2600 – MOS 6507
1977 - Apple II - MOS 6502 (1 MHz) 1977 - Atari 2600 – MOS 6507

1978

- Intel 8086 (4,77 Mhz)

1978

- Texas Instruments - Speak & Spell - TMS 1000

1978 - Intel 8086 (4,77 Mhz) 1978 - Texas Instruments - Speak & Spell - TMS
1978 - Intel 8086 (4,77 Mhz) 1978 - Texas Instruments - Speak & Spell - TMS
1978 - Intel 8086 (4,77 Mhz) 1978 - Texas Instruments - Speak & Spell - TMS

1978 - Magnavox Odyssey² - Intel 8048 (1,79 MHz)

1978 - Magnavox Odyssey² - Intel 8048 (1,79 MHz) 1979 - Motorola 6808 (1 Mhz) 1980
1978 - Magnavox Odyssey² - Intel 8048 (1,79 MHz) 1979 - Motorola 6808 (1 Mhz) 1980
1978 - Magnavox Odyssey² - Intel 8048 (1,79 MHz) 1979 - Motorola 6808 (1 Mhz) 1980
1978 - Magnavox Odyssey² - Intel 8048 (1,79 MHz) 1979 - Motorola 6808 (1 Mhz) 1980

1979 - Motorola 6808 (1 Mhz)

Odyssey² - Intel 8048 (1,79 MHz) 1979 - Motorola 6808 (1 Mhz) 1980 - Intel 8051
Odyssey² - Intel 8048 (1,79 MHz) 1979 - Motorola 6808 (1 Mhz) 1980 - Intel 8051
Odyssey² - Intel 8048 (1,79 MHz) 1979 - Motorola 6808 (1 Mhz) 1980 - Intel 8051

1980 - General Instrument - PIC1650 ("Programmable

Intelligent Computer") - (1 Mhz)

("Programmable Intelligent Computer") - (1 Mhz) 1982 - Motorola 68000 (68 k) - 16 bit (

1982

- Motorola 68000 (68 k) - 16 bit ( 8 Mhz )

1982

- Sinclair Zx Spectrum - Z80 ( 3,50 Mhz )

- (1 Mhz) 1982 - Motorola 68000 (68 k) - 16 bit ( 8 Mhz )

1982

- Intel 80186 ( 6,0 MHz )

1982

- Intel 80286 ( 8,0 MHz )

1983

- Intel 8088 ( 4,77 MHz )

Intel 80286 ( 8,0 MHz ) 1983 - Intel 8088 ( 4,77 MHz ) 1983 -
Intel 80286 ( 8,0 MHz ) 1983 - Intel 8088 ( 4,77 MHz ) 1983 -

1983 - IBM PC-XT - Intel 8085/8086/8088 ( 4,77MHz )

Intel 80286 ( 8,0 MHz ) 1983 - Intel 8088 ( 4,77 MHz ) 1983 -
Intel 80286 ( 8,0 MHz ) 1983 - Intel 8088 ( 4,77 MHz ) 1983 -

1983

- MSX - Z80 ( 3,58 MHz )

1983 - Nintendo NES - MOS 6502 ( 1,79 MHz )

1983 - MSX - Z80 ( 3,58 MHz ) 1983 - Nintendo NES - MOS 6502
1983 - MSX - Z80 ( 3,58 MHz ) 1983 - Nintendo NES - MOS 6502

1984

- Apple Macintosh - Motorola 68000 ( 8 MHz )

1985 - Sega Master System - Z80 ( 3.54MHz )

- Motorola 68000 ( 8 MHz ) 1985 - Sega Master System - Z80 ( 3.54MHz

1986 - Intel 80386 - 32 bit ( 25 MHz )

- Motorola 68000 ( 8 MHz ) 1985 - Sega Master System - Z80 ( 3.54MHz
- Motorola 68000 ( 8 MHz ) 1985 - Sega Master System - Z80 ( 3.54MHz
- Motorola 68000 ( 8 MHz ) 1985 - Sega Master System - Z80 ( 3.54MHz
- Motorola 68000 ( 8 MHz ) 1985 - Sega Master System - Z80 ( 3.54MHz
- Motorola 68000 ( 8 MHz ) 1985 - Sega Master System - Z80 ( 3.54MHz

1988 - Sega Mega Drive - 68000 (7,67 MHz ) e Z80

( 3,58 MHz )

1989

- Nintendo Game Boy - Z80 ( 4,19 MHz )

1989

- Intel 80486 (33 MHz )

(7,67 MHz ) e Z80 ( 3,58 MHz ) 1989 - Nintendo Game Boy - Z80
(7,67 MHz ) e Z80 ( 3,58 MHz ) 1989 - Nintendo Game Boy - Z80
(7,67 MHz ) e Z80 ( 3,58 MHz ) 1989 - Nintendo Game Boy - Z80

1989 - General Instrument >> Microchip PIC (Peripheral Interface Controller)

1990

- SNK Neo-Geo - 68000 (12 MHz) e Z80 (4 Mhz)

1990

- Sega Game Gear - Z80 ( 3,58 MHz )

1990

- Nintendo Super-NES - WDC 65c816 ( 3.58 MHz )

(4 Mhz) 1990 - Sega Game Gear - Z80 ( 3,58 MHz ) 1990 - Nintendo

1990

- HP 48G - HP Saturn Yorke ( 4 MHz )

1991

- AIM Alliance (Apple/IBM/Motorola)

1991

- AIM - PowerPC 601 (G1) ( 60 MHz )

Yorke ( 4 MHz ) 1991 - AIM Alliance ( A pple/ I BM/ M otorola)
Yorke ( 4 MHz ) 1991 - AIM Alliance ( A pple/ I BM/ M otorola)
Yorke ( 4 MHz ) 1991 - AIM Alliance ( A pple/ I BM/ M otorola)
Yorke ( 4 MHz ) 1991 - AIM Alliance ( A pple/ I BM/ M otorola)
Yorke ( 4 MHz ) 1991 - AIM Alliance ( A pple/ I BM/ M otorola)

1992

- MIPS lança a primeira CPU de 64 bit

1992

- MIPS R4000 ( 100 MHz ) (SGI)

1993

- Intel 80586 (Pentium) - ( 75 MHz )

1993

- Atari Jaguar - 68000 ( 25,59 MHz )

1993

- Panasonic 3DO - ARM60 ( 12,5 MHz )

- ( 75 MHz ) 1993 - Atari Jaguar - 68000 ( 25,59 MHz ) 1993
- ( 75 MHz ) 1993 - Atari Jaguar - 68000 ( 25,59 MHz ) 1993
- ( 75 MHz ) 1993 - Atari Jaguar - 68000 ( 25,59 MHz ) 1993

1994

- Motorola - 68060 ( 50 MHz )

1994 - Motorola - 68060 ( 50 MHz ) 1994 - Sony PlayStation - MIPS R3000

1994

- Sony PlayStation - MIPS R3000 ( 33,87 MHz )

1994

- Sega Saturn - 2x SuperH2 - 32-bit (28,6 MHz)

) 1994 - Sony PlayStation - MIPS R3000 ( 33,87 MHz ) 1994 - Sega Saturn
) 1994 - Sony PlayStation - MIPS R3000 ( 33,87 MHz ) 1994 - Sega Saturn

1995

- AIM PowerPC (620/630) - 64-bit (G2)

1995

- Intel Pentium Pro ( 166 MHz )

1996

- Nintendo 64 - NEC VR43009 ( 93,75 Mhz )

1996

- Us Robotics PalmPilot 1000 - 68328 (16 MHz )

) 1996 - Nintendo 64 - NEC VR43009 ( 93,75 Mhz ) 1996 - Us Robotics
) 1996 - Nintendo 64 - NEC VR43009 ( 93,75 Mhz ) 1996 - Us Robotics
) 1996 - Nintendo 64 - NEC VR43009 ( 93,75 Mhz ) 1996 - Us Robotics

1996 - Atmel - AVR (AT90S) ( 8 Mhz )

1996 - Atmel - AVR (AT90S) ( 8 Mhz ) 1997 - AIM - PowerPC (740/750)(G3)

1997

- AIM - PowerPC (740/750)(G3) ( 366 MHz )

1997

- Intel Pentium MMX ( 166 MHz )

1997

- Intel Pentium II - ( 233 MHz )

1998

Sega Dreamcast - Hitachi SuperH4 ( 200 MHz )

( 166 MHz ) 1997 - Intel Pentium II - ( 233 MHz ) 1998 Sega
( 166 MHz ) 1997 - Intel Pentium II - ( 233 MHz ) 1998 Sega
( 166 MHz ) 1997 - Intel Pentium II - ( 233 MHz ) 1998 Sega
( 166 MHz ) 1997 - Intel Pentium II - ( 233 MHz ) 1998 Sega
( 166 MHz ) 1997 - Intel Pentium II - ( 233 MHz ) 1998 Sega

1998

- Apple iMac - 233 MHz PPC G3 (PowerPC 750)

1999

- Intel Pentium III ( 450 MHz )

1999

- HP 49G - HP Saturn Yorke ( 4 MHz )

MHz PPC G3 (PowerPC 750) 1999 - Intel Pentium III ( 450 MHz ) 1999 -
MHz PPC G3 (PowerPC 750) 1999 - Intel Pentium III ( 450 MHz ) 1999 -
MHz PPC G3 (PowerPC 750) 1999 - Intel Pentium III ( 450 MHz ) 1999 -

1999 - AIM - PPC (7400/7410)(G4) ( 550 MHz )

1999 - AIM - PPC (7400/7410)(G4) ( 550 MHz ) 2000 - Intel Pentium IV (

2000

- Intel Pentium IV ( 1,4 GHz )

2000

- Sony PlayStation 2 -"Emotion Engine"(Toshiba/

Sony) (MIPS R5900) ( 294 MHz )

2001 - Nintendo Game Cube - PPC 750 (G3) (485 MHz )

"Emotion Engine" (Toshiba/ Sony) (MIPS R5900 ) ( 294 MHz ) 2001 - Nintendo Game Cube
"Emotion Engine" (Toshiba/ Sony) (MIPS R5900 ) ( 294 MHz ) 2001 - Nintendo Game Cube
"Emotion Engine" (Toshiba/ Sony) (MIPS R5900 ) ( 294 MHz ) 2001 - Nintendo Game Cube

2001

- MS Xbox - Pentium/Celeron ( 733 MHz )

2002 - Apple iPod – 2 x ARM 7 ( 90 MHz )

( 733 MHz ) 2002 - Apple iPod – 2 x ARM 7 ( 90 MHz
( 733 MHz ) 2002 - Apple iPod – 2 x ARM 7 ( 90 MHz

2003 - Atmel - AVR Mega (ATmega) ( 16 MHz )

2003 - HP 49G+ - ARM ( 75MHz )

- Apple iPod – 2 x ARM 7 ( 90 MHz ) 2003 - Atmel -
- Apple iPod – 2 x ARM 7 ( 90 MHz ) 2003 - Atmel -

2003

- Motorola >> Freescale (Spin-Off)

2003

- IBM PPC 970 (G5) ( 2 GHz )

2004

- Nintendo DS - ARM946E-S (67 MHz) e ARM7 (33 MHz)

2004

- Sony PlayStation Portable - MIPS R4000 ( 222 MHz )

2005

- MS Xbox 360 - PPC Tri-Core ( 3,2 Ghz )

2004 - Sony PlayStation Portable - MIPS R4000 ( 222 MHz ) 2005 - MS Xbox
2004 - Sony PlayStation Portable - MIPS R4000 ( 222 MHz ) 2005 - MS Xbox
2004 - Sony PlayStation Portable - MIPS R4000 ( 222 MHz ) 2005 - MS Xbox

2006 - Atmel - AVR 32-Bit (AT32) (133 MHz )

2006 - Atmel - AVR 32-Bit (AT32) (133 MHz ) 2006 - Sony Play Station 3

2006 - Sony Play Station 3 - 3,2 GHz Cell Broadband

Engine with 1 PPE and 7 SPEs – 2006

2006

- Intel Core Duo – 64 bit ( 1,8 GHz )

2006

- Nintendo Wii - IBM PowerPC - ( 729MHz )

SPEs – 2006 2006 - Intel Core Duo – 64 bit ( 1,8 GHz ) 2006
SPEs – 2006 2006 - Intel Core Duo – 64 bit ( 1,8 GHz ) 2006
Intervalo 15 minutos para o lanche.
Intervalo 15 minutos para o lanche.
Intervalo 15 minutos para o lanche.
Intervalo 15 minutos para o lanche.

Intervalo

Intervalo 15 minutos para o lanche.
Intervalo 15 minutos para o lanche.
Intervalo 15 minutos para o lanche.
Intervalo 15 minutos para o lanche.
Intervalo 15 minutos para o lanche.
Intervalo 15 minutos para o lanche.

15 minutos para o lanche.

Intervalo 15 minutos para o lanche.
Intervalo 15 minutos para o lanche.
Intervalo 15 minutos para o lanche.
Intervalo 15 minutos para o lanche.
Intervalo 15 minutos para o lanche.
Intervalo 15 minutos para o lanche.