Professional Documents
Culture Documents
otimização de Pinos e
Software com MCUs
Microchip
(TPS)
Idéias
Dicas
Truques
Interatividade!!!
© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 2
Agenda
Dicas e Truques de
Hardware
Dicas e Truques de
Software em
Assembly
Dicas e Truques de
Software em C (Hi-
Tech)
© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 3
Famílias de 8 e 14 pinos
Microchip
MCUs de Alto desempenho
DC a 20 MHz (em breve até 32MHz!!)
8 níveis de pilha
5v
Lendo estado Z
Pino como saída em 1 Pin 1
PIC® MCU
Muda para entrada I/O
Lê 1
Pin 0
Muda para saída em 0
Muda para entrada 0v
Lê 0
Lendo estado 0 estado Pino 0 Pino 1
Lê 0 na entrada 0 curto aberto
1 aberto curto
Lendo estado 1 Z aberto aberto
Lê 1 na entrada
PIC12F6XX
GP0/AN0
VDD
PIC16F630
COUT
CVref
Fcorte = 1
Entrada R3 Saída
2*pi*(R1 || R2)*C1
R2
R1
C2 Ganho = R1+R2
C1 R2
R3
R3 = Req* [( Vth-Vtl
Vdd ) -1 ]
R1
Receptor Transmissor
GP0 GP0
VDD
Cpump
Cfiltro
PIC12F6XX
w/ RC
CLKOUT
VDD VBAT
VDD
VDD
CLKOUT
PIC12F6XX
VDD
Detecta corrente em
Rsense PIC12F6XX
Vth/VDD é constante
t=0 t = t1 t = t2
R2 = (t2/t1) * R1 Time
GP2
Pros: Contras:
Alta resolução Requer bloco de
Boa imunidade a ruído firmware
Facilmente escalonável Conversão lenta
e offset configurável, Quanto mais bits, mais
mesmo muito acima de lenta
VDD e abaixo do VSS Precisão absoluta
Linear e monotônico requer fonte estável
por natureza
Requer poucos
componentes externos
(2 R’s & 1 C)
Imed = [(0.199*50u)+(0.001
*64.5u)+(0.001*48u)+(0.008*1048u)]/2 = 9.22uA
© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 29
Dicas Gerais de otimização de
consumo
• Chaveamento de clock
• Itens mais novos (ex: PIC12F635) permitem chaveamento de
clock em operação
• Registrador OSCCON
• Manter em frequência alta apenas quando desempenho é
necessário
• Em micros que não tenham esse recurso:
OSC1
C
NOP
NOP ;2 instructions, 2 cycles
3 instruções 2 instruções
...
CALL Subroutine ; 2 instruções, 4 ciclos
RETURN
...
GOTO Subroutine ; 1 instrução, 2 ciclos
1 0 1 0 1 0 1 0 1
1ª Rotação
0 1 0 1 0 1 0 1 0
2ª Rotação
Rotação final
1 0 0 0 0 0 0 0 0
Z=1
• Conclusão:
• Teste apenas o Byte mais significativo de um loop
com contador de 16 bits
© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 48
Dicas Gerais de otimização em C
• Loops de timeout
• Mas sempre que possível, usar os timers do pic para
timeout:
Qualquer divisão envolvendo potências Pouco uso de Usar combinação de bit shifts
de 2, ex: x=x/64; recursos
Qualquer divisão envolvendo divisores Alto uso de recursos Procurar fazer com que o
que não são potência de 2, ex: x=x/65; divisor seja potência de 2, ex:
2^5=32.
© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 51
Referências
AN512 - Implementing
Ohmmeter/Temperature Sensor
AN611 - Resistance and Capacitance Meter
Using a PIC16C622
AN683 - A Comparator Based Slope ADC
AN700 – Make a Delta-Sigma Converter
Using a Microcontroller'
s Analog
Comparator Module
Tips and Tricks Booklet
LCD PICmicro MCU Tips 'n Tricks