TEORIA
PICmicro
Programmable Inferface Controller – Controlador de Interface Programável
X
Peripheral Inferface Controller – Controlador de Interface Periféricas
vs
ARDUINO X PIC
vs
ATMEL AVR VS PIC
• Se destacou por ser pioneiro no uso de memória flash em seus chips, em uma
época onde se usava PROM, EPROM e EEPROM.
• A grande diferença: Atmel AVR usa Arquitetura de Harvard Modificada - capaz
de reescrever a memória do programa durante a própria execução.
vs
Arduino PicKit
Plataforma completa de desenvolvimento Programador de chip
Arduino IDE possui uma única linguagem que MPLAB X IDE possui instruções e comandos
engloba inúmeros modelos diferentes diferentes para cada família, e até mesmo varia de
chip pra chip.
Possibilidade de usar Shields com diversas funções A expansão das funções depende do
desenvolvimento de uma placa
Custo varia entre R$40 para os mais simples até R$ Custa em torno de R$ 150
150 para o modelo Due.
Mais simples Mais complexo
Menor liberdade para trabalhos específicos Liberdade absoluta para se trabalhar com todos os
registradores do microcontrolador
Chip nem sempre é removível. Por se tratar somente do programador, o chip é
obtido separadamente.
FAMÍLIAS PIC
8 bits:
• PIC10 – 8 microcontroladores (6 pinos)
• PIC12 – 20 microcontroladores (8 pinos)
• PIC16 – 155 microcontroladores (8 a 64 pinos)
• PIC18 – 223 microcontroladores (18 a 100 pinos)
16 bits:
• PIC24, dsPIC30, dsPIC33
• Total de 432 microcontroladores (12 a 122 pinos)
32 bits:
• PIC32: 184 microcontroladores (28 a 144 pinos)
Porém há ambientes como o PIC C Wizard, que utiliza o compilador CCS para
gerar os arquivos hex a serem gravados nos chips.
PLL
FREQUÊNCIA DE CICLO DE MÁQUINA
2xPLL
FREQUÊNCIA DE CICLO DE MÁQUINA
4xPLL
FREQUÊNCIA DE CICLO DE MÁQUINA
8xPLL
FREQUÊNCIA DE CICLO DE MÁQUINA
16xPLL
BITS DE CONFIGURAÇÃO
Os microcontroladores
PICs utilizam entradas e
saídas digitais:
• Portas A, B, C, D e até E,
com até 8 pinos em
cada uma, dependendo
do modelo do chip.
INPUTS E OUTPUTS
TRISB = 1;
Significa que o pino RB0 está sendo usado como entrada e os
pinos RB1, RB2, RB3, RB4, RB5, RB6 e RB7 são de saída.
INPUTS E OUTPUTS
Ou em nível alto:
LATBbits.LATB0 = 1;
INPUTS E OUTPUTS
Para se ler o estado de uma porta, usa-se o registrador PORT.
ORG 30H
INICIO: CPL P1.0
LCALL ATRASO
SJMP INICIO
END
HELLO, WORLD! – PIC18F4550 @ XC8
#include <pic18f4550>
#define _XTAL_FREQ 2000000
void main(void)
{
TRISD=0;
PORTD = 1;
while(1)
{
PORTDbits.RD0 = !LATDbits.LATD0;
__delay_ms(100);
}
}
HELLO, WORLD! - ARDUINO
int ledPin = 0;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
digitalWrite(ledPin, !digitalRead(ledPin));
delay(100);
}
TUTORIAL “HELLO WORLD!”
Resolução:
• Dada em bits
• Define a menor variação de tensão
detectável
• Geralmente os ADCs têm resolução
de 8, 10 ou 12 bits nos PICs
CONVERSÃO ANALÓGICO - DIGITAL
Resolução:
• Dada em bits
• Define a menor variação de tensão
detectável
• Geralmente os ADCs têm resolução
de 8, 10 ou 12 bits nos PICs
CONVERSÃO ANALÓGICO – DIGITAL
Plano de Terra:
CONVERSÃO ANALÓGICO – DIGITAL
Circuitos separados:
CONVERSÃO ANALÓGICO – DIGITAL
Capacitores de desacoplamento:
• Evita oscilações na tensão de
alimentação durante oscilações na
energia requerida pelo circuito.
CONVERSÃO ANALÓGICO – DIGITAL
Taxa de amostragem:
CONVERSÃO ANALÓGICO – DIGITAL
Taxa de amostragem:
CONVERSÃO ANALÓGICO – DIGITAL
Aliasing:
Teorema de Nyquist: taxa de amostragem deve ser 2 vezes maior que a maior
frequência do sinal amostrado.
PULSE WIDTH MODULATION - PWM
Modulação por largura de pulso:
Tensão média:
10 %
50 %
90 %
PULSE WIDTH MODULATION - PWM
Modulação por largura de pulso:
Na prática:
T – PR2 (timer2)
t (%) - CCPR2L
(0 a 255)
PULSE WIDTH MODULATION - PWM
Modulação por largura de pulso:
Na prática:
CCPR2L = 25
CCPR2L = 128
CCPR2L = 230