41
Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Embed Size (px)

Citation preview

Page 1: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Aula 1

Prof. Ricardo TeixeiraTecnologia em Mecatrônica Industrial

SENAI

Page 2: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Modelo da disciplina

• Aulas teórica e práticas em hardware e simuladas.• Programação em C• Microcontrolador PIC18F4550

Page 3: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Modelo da disciplina

• Avaliação 1:– 5 atividades ao longo das 10 primeiras aulas. – Todas devem ser entregues na data especificada.– Todas as atividades deverão conter os arquivos para simulação e

execução do projeto.• Avaliação 2:

– Projeto em grupo.• Descrição do projeto (o que vai ser feito).• Pode compor com outras disciplinas (ex.: controlar um motor em

eletrônica de potência etc.).• Esquema elétrico e código fonte.• Apresentação funcionando no kit didático.

Page 4: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Modelo da disciplina

• Avaliação Final:– Prova teórica aberta com 5 questões.– Tipo de questão:

• Criar um código dado um problema.• Criar um circuito dado o código.• Questões discursivas.

– Prova sem consulta e individual realizada em papel pautado.

Page 5: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Introdução

• O microcontrolador é pequeno computador em um único chip.

• Neste mesmo chip temos o core de processamento, memória e periféricos de E/S programáveis.

• Os modelos mais novos não necessitam de outros componentes para funcionar, são autossuficientes.

• Estão disponíveis em diversos encapsulamentos, variadas famílias e modelos com características próprias (conversores AD, USB, tipo de arquitetura etc.).

Page 6: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Introdução

Diagrama em blocos do microcontrolador PIC16F877. Fonte: http://www.mikroe.com/

Page 7: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Aplicações

• Processos Industriais;• Automóveis;• Dispositivos eletrônicos (smartphones, brinquedos,

eletrodomésticos etc.);• Aplicações médicas;• Redes de Sensores Sem Fio (RSSF);• Robótica etc.

Page 8: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Aplicações

Page 9: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Aplicações

Page 10: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Modelos

• Diversos fabricantes:–Microchip (PIC e dsPIC);–ATMEL (8051, AVR);–ARM (série Cortex);–Texas Instruments (série MSP)

Page 11: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Dúvida

• E onde fica o Arduino nessa história?–Trata-se de uma plataforma de

desenvolvimento opensource.–Utiliza microcontroladores ATMEL (ex.:

Arduino Uno utiliza ATMEGA328).

Page 12: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Microcontroladores PIC

Page 13: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Microcontroladores PIC

• Desenvolvidos pela Microchip• Chips com características

semelhantes mesmo em famílias diferentes (ex. PIC16F877A e PIC18F4550).

Page 14: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Alguns Chips

• PIC16F628A – 8 bits, 2 KB de FLASH, 20 MHz, USART.

• PIC 16F877A–8 bits, 8 KB de FLASH, 20 MHz, SPI, I²C.

• PIC 18F4550–8 bits, 32 KB de FLASH, 48 MHz, USB.

• dsPIC30F4013 –16 bits, 48 KB de FLASH, 40 MHz, CAN BUS, DSP.

Page 15: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

PIC 16F877A

Page 16: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

PIC 18F4550

Page 17: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

PIC18F4550

• Clock de até 48 MHz• 32 KB de memória FLASH• 35 E/S, • 13 canais A/D 10 bits, • Protocolos de comunicação USB, UART, SPI e I²C,• 1 PWM• 4 Timers• SPI, I²C, USART• Boot-loader, necessita de gravador apenas na

primeira gravação

Page 18: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

PIC18F4550

• 5 portas digitais de entrada e saída: A, B, C, D, E – cada uma com capacidades diferentes.

• USB 2.0 – HID (Human Interface Device): é reconhecido como um novo dispositivo no Windows por exemplo.

Page 19: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

ArquiteturaPIC18F4550

• Arquitetura Harvard (memórias separadas com barramentos independentes);

• Porta A e B: 8 bits;• Porta C: 7 bits, RC3 não

está disponível;• Porta D e E: 4 bits;• Apenas um barramento

de dados;• Circuito de geração de

clock interno.

Page 20: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Ferramentas de Desenvolvimento

• CCS – compilador para a linguagem C• MPLAB – gratuito para download em www.micrcochip.com

– Permite programação em assembly e C, além da gravação dos dispositivos

– Pode ser usado para programação em C por meio de plugins– Também podem ser usados para programação o PicKit 2 Programmer,

PICKit 3 Programmer entre outros.• Mikro C – compilador para a linguagem C com diversas ferramentas

integradas• Proteus – simulador de circuito elétrico e código digital de

microcontroladores– Possui limitações de simulação importantes que podem inviabilizar a

simulação ou não prever completamente o funcionamento do circuito real.

Page 21: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Material de Estudo

• Materiais de aula no site www.ricardoteix.com• Livros:

– Dogan Ibrahim, ADVANCED PIC MICROCONTROLLER PROJECTS IN C: From USB to RTOS with the PIC18F Series, Newnes, 2008. (mikroC)

– David José de Souza, Desbravando o PIC, ed. Érica – 12ª Ed, 2009. (Assembly)

– D. J. de Souza e Nicolás Cesar Lavinia, Conectando o PIC, recursos avançados. Ed Érica, 4ª Ed., 2007.

– Fábio Pereira, Microcontroladores PIC, programação em C (CCS). ed Érica, 7ª Ed, 2007.

Page 22: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Material de Estudo

• Outros materiais:– Datasheet do PIC18F4550.– PIC18F4XXX Family Programming Specification– Microchip website– Manual do compilador utilizado (F1)– Apostilas e tutoriais em geral na internet sobre

microcontroladores PIC em C e Proteus.

Page 23: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Kit Didático MacMaster 2

• Displays 7 segmentos• LCD• LEDs• Teclado matricial• Memória serial (I²C)• RTC etc.

Page 24: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Kit Didático McMaster 2

Page 25: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Kit Didático McMaster 2

Page 26: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Um pouco do Proteus• Entradas:

– 1: botão pressionado gera zero– 2: botão pressionado gera 1– 3: Arranjo com barra de resistor e dip switch (repare no uso da

ferramenta label)– 4: gerador lógico apenas para simulação (logic state)– 5: botão de três terminais

VDD

R101k

SW9SW-SPST-MOM

VDD

SW10SW-SPST-MOM

R111k

labe

l label

1 2 3 4 5 6 7 8

16 15 14 13 12 11 10 9

SW11SW-DIP8

2 3 4 5 6 7 8 91

RP2RESPACK-8

VDD 0

1 2 3 4

SW1

SW-SPDT

5

Page 27: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Um pouco do Proteus• Saídas:

– 1: Controlando o LED– 2: Arranjo com barra de LEDs– 3: mostrador lógico apenas para simulação (logc probe)

1 2 3

R10560

D1LED-RED

Pino de saida

?

12345678

2019181716151413910

1211

U3

LED-BARGRAPH-GRN

R12470R

R13470R

R14470R

R15470R

R16470R

R17470R

R18470R

R19470R

Page 28: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Um pouco do Proteus

• Teste seus códigos– Hardware de teste – disponível no material de aulas– Atenção:

• à velocidade, • ao arquivo .hex,• ao relógio da simulação• à sinalização de níveis lógicos:

– vermelho = 1– Azul = 0– Amarelo = curto circuito– Cinza = desconectado ou indefinido (zona proibida)

Page 29: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Dica importante - 1

• O arquivo de configuração 18F4550.h possui a sintaxe as configurações de várias funcionalidades do controlador.

• Para visualizar quais as opções disponíveis:– Abra o projeto (Exemplo_01),– Compile (F9)– Botão direito sobre #include<PIC164550.h>– Opção: open file at cursor– Ou apenas na aba Files dê duplo clique no arquivo.

Page 30: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Dica importante - 2

• O arquivo .lst que mostra o código em assembly permite a visualização da área de código.

• Para visualizar o arquivo .lst:– Abra o programa (Exemplo_01)– Compile (F9)– Clique na aba Files– Output/Exemplo_01.lst

Page 31: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Dica importante - 3

• Ao abrir e compilar um programa no CCS é criado automaticamente um projeto associado.

• Caso você abra um segundo programa e tente compilar, o projeto aberto (com o primeiro programa aberto) é o que será compilado.

Page 32: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Dica importante - 4

• A diretiva #use delay (clock = 20M) apenas informa ao compilador qual a velocidade do clock que será implementado em hardware

• Se houver diferença entre o cristal escolhido no Proteus ou na placa e o informado na diretiva as temporizações serão erradas.

Page 33: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Programação em C

• Compilador CCS• ANSI C mais as especificações do uC

– Ver arquivo 18F4550.h• Atenção aos tipos de dados

Page 34: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Programação em C

• Cada tipo comporta uma quantidade de bits• O estouro do valor pode acarretar em perda dos

dados

Page 35: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Programação em C

• Alguns tipos são equivalentes

Page 36: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Estrutura básica

#include <18F4550.h> // inclui arquivo de bibliotecas do dispositivo#use delay (clock = 20000000)// Isso apenas informa para o compilador // qual a frequencia do clock será utilizada // para os calculos de tempo do compilador// bits de configuração #fuses HS, NOWDT, NOPROTECT, NOPUT, NOBROWNOUT, NOLVP

void main () {// rotina principal

//instruções que irão ser executadas apenas uma vez while(true) { // loop infinito // Área de código em loop que será executada indefinidamente }}

Page 37: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Os bits de configuração

• XT,HS,INTRC – Selecionam a velocidade do cristal – datasheet página 121

• NOWDT,WDT – Watchdog Timer (cão de guarda) - datasheet página 131

• NOPUT,PUT – Power-up timer – datasheet página 124• PROTECT, NOPROTECT – Protege o código, não permite a

sua leitura (tem na internet como quebrar de algumas famílias)

• DEBUG,NODEBUG

Page 38: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Os bits de configuração

• NOBROWNOUT,BROWNOUT – Reset com tensão baixa• LVP,NOLVP – Programação em baixa tensão

Page 39: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Principais arquivos gerados pelo compilador

• Xxx.cof – código em linguagem de máquina para ser carregado no

controlador ou no Proteus – permite debug no Proteus• Xxx.hex

– código em linguagem de máquina para ser carregado no controlador ou no Proteus

• Xxx.lst– código em assembly

• Para visualizar os arquivos, acesse a aba files após compilar.

Page 40: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Configurando o simulador proteus

• Clique com o botão direito sobre o controlador – propriedades• Carregue o programa .hex ou .cof e configure a velocidade

Page 41: Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Primeiro Programa em C

• Leitura e escrita de portas– input_x () – output_x ()

• Manual de referência pág. vii (via sumário)– Value = input_a () //lê a porta A e carrega na variável value

(byte ou inteira)– Output_a (value) //escreve a variável value na porta a.