Vous êtes sur la page 1sur 7

Relatrio de Microprocessadores

2007/2008

Engenharia Fsica Tecnolgica

MODULAO DE UM SINAL ANALGICO


USANDO UM PWM E UM CIRCUITO RC E
AQUISIO ATRAVS DE UM ADC
Laboratrio IV

Trabalho realizado por:


Andr Cunha, n53757
Joo Pereira, n 55315
Grupo 3; 5feira 13:00-16:00h

Lisboa, 4 de Novembro de 2007

Introduo e Objectivos
O objectivo deste trabalho consiste estudar o processo de aquisio de sinais analgicos
atravs da utilizao do ADC disponvel no PIC.
Numa primeira fase ser gerado um sinal analgico linear que vai variar entre 0 e 5V. Este
sinal ser gerado utilizando um sinal PWM e um circuito RC e a caracterstica linear do
sinal analgico ser obtida atravs da modelao linear do duty cycle. Podemos notar que
outras formas de sinais poderiam ser obtidas atravs de uma modelao diferente do duty
cycle.
Numa segunda fase criar-se uma rotina que ser responsvel pela aquisio do sinal
analgico gerado e sua consequente converso digital. Para cumprir este objectivo
utilizaremos naturalmente o ADC do PIC. As aquisies sero enviadas atravs da porta
srie para uma consola no PC.
Por fim, sero analisadas as caractersticas obtidas para um conjunto de vrias frequncias
(e como veremos frente, consequentemente diferentes resolues) atravs da comparao
com a referncia utilizando um ajuste linear.
Implementao, Procedimento e Anlise
Em termos concretos, comearemos por seleccionar um step motor disponvel,
determinaremos a sequncia correcta dos pinos do motor e depois as sequncias binrias
para a preciso normal e dupla de forma a criar os movimentos de rotao pretendidos.
Construir-se- ento um algoritmo em C para efectuar a rotao do motor com os
parmetros desejados e integrar-se- isto com um sistema estruturado de recepo,
interpretao e execuo de comandos atingindo-se assim o objectivo deste trabalho
laboratorial.
Nota: Todo o cdigo se encontra em anexo devidamente comentado e explicado. Este
relatrio explcita apenas a filosofia usada bem como as escolhas efectuadas na
implementao.
1 sesso de laboratrio
Material utilizado:
Osciloscpio digital;
Multmetro;
A primeira sesso de laboratrio teve como principal objectivo a familiarizao do
microcontrolador que ir ser utilizado ao longo do semestre, o PIC18F4550. Alm disso,
pretendia-se programar um pequeno cdigo que permitisse gerar uma onda rectangular (ou
PWM).
Como primeira abordagem, recorreu-se ento s bibliotecas disponibilizadas pelo
compilador. Para a definio do PWM existem dois parmetros a considerar; o seu perodo
e o seu duty cycle. No caso do PIC utilizado, ambos so determinados por parmetros
inteiros, sendo calculados de acordo com:

T = (PR2 + 1) * 4 * T_clock * Prescaler


onde PR2 o contedo do registo PR2 (8 bits), escolhido pelo programador, T_clock o
clock do PIC (250 ns) e o Prescaler um factor de escala que pode tomar os valores 1:1,
1:4 ou 1:16, e
DC = (DCxB<9:0>) * T_clock * Prescaler
Estas grandezas vm ambas em micro-segundos (deste modo T_clock = ). No caso do
duty cycle o seu valor no determinado apenas pelo contedo de um registo mas sim pelo
contedo do registo CCPRxL mais os bits CCPxCON<5:4>. Este conjunto compe ento
o valor DCxB<9:0>, sendo os dois bits menos significativos os CCPxCON<5:4>. Desta
forma, consegue-se obter uma resoluo de 10 bits para o duty cycle. Note-se ainda que no
aparece o factor 4 para compensar o facto de o perodo do relgio do PIC ser um quarto
do micro-segundo. Deste modo, preciso aumentar o valor presente nos registos de 4 em
4 para que essa mudana se reflicta na sada.
ainda relevante analisar os limites da PWM. Para o perodo as variveis a considerar so
o contedo do registo PR2 e o valor do Prescaler. Deste modo, para a frequncia mais
elevada possvel, tem-se que PR2 = 0 e Prescaler 1:1; nesta configurao obtm-se um
perodo de 1 s, o que equivale a uma frequncia de 1 MHz. A frequncia mais baixa
verifica-se quando se tem PR2 = 255 e Prescaler 1:16. Neste caso tem-se um perodo de
4.096ms o que equivale a uma frequncia de 244.14Hz.
Para o duty cycle, fazendo consideraes anlogas verifica-se que o tempo em que o sinal est
a high varia entre 1 s e 4.096ms. Estes valores so anlogos aos do perodo pelo que
permitem uma grande possibilidade de configuraes diferentes da PWM.
Tendo em conta este conjunto de informaes, construiu-se o algoritmo iterativo onde
germos o PWM modelado linearmente que se desejava e cujos partes podem ser
facilmente identificadas no programa final disponvel em anexo.
2 sesso de laboratrio

MPLAB IDE e compilador de C para este IDE


SDK PIC184550
Breadboard
Osciloscpio digital;
Multmetro;

Resistncia de 2.2K

Condensador de 1 F

Na segunda sesso de laboratrio, tendo j criado o algoritmo iterativo necessrio para


gerar um PWM modelado linearmente, restava agora ligar o circuito RC para gerar o sinal
analgico propriamente dito e configurar o ADC bem como acrescentar as operaes
necessrias estrutura iterativa j criada para fazer a aquisio e estudo deste sinal.
No h grandes consideraes a referir em relao ao ADC. Os parmetros foram
definidos de acordo com as convenincias para o presente caso e podem ser vistas no
ficheiro em anexo. Naturalmente utilizaram-se as operaes de converso no ciclo iterativo

tendo apenas o cuidado adicional de aguardar pelo fim da converso utilizando a funo
prpria para esse efeito.
O programa aceitar ento por parte do utilizador um valor de frequncia em hertz dado
por um inteiro e efectuar o varrimento utilizando a resoluo mxima possvel para esse
valor de frequncia. No estudo adiante, comear-se- com o valor mximo de frequncia
para 1024 pontos.
Montou-se o circuito RC de acordo com a figura, onde entra o PWM modelado
linearmente e se obtm o sinal analgico que vai ento entrar no canal escolhido para fazer
a aquisio AD no PIC. Os valores de R e C esto explicitados na lista de material usado
nesta sesso.

Figura 1 Esquemtico do circuito RC

Desta forma, pegou-se no aparato criado e iniciou-se o processo e aquisio para cinco
frequncias distintas. Escolheu-se um Prescaler de 1:1 uma vez que partida, altas
frequncias tornam a aproximao linear que se faz relativamente ao circuito RC mais
prxima da realidade.
Assim sendo, estudou-se o processo para frequncias entre os 3900Hz e os 32767Hz. A
frequncia minorante de 3900Hz corresponde frequncia mxima usando um Prescaler
1:1 onde obtemos 1024 pontos de resoluo. Como majorante usou-se a frequncia
mxima que o input do programa permite, ou seja, 32767Hz o que corresponde a 120
pontos de resoluo.
As trs frequncias intermdias foram escolhidas de acordo com o nmero de pontos de
resoluo distribudos entre os 1024 do minorante e os 120 do majorante. Desta forma, as
frequncias escolhidas foram de 5500Hz (724 pontos), 10000Hz (400 pontos) e 16000Hz
(248 pontos).
Para atenuar eventuais erros de natureza estocstica, realizaram-se cinco aquisies para
cada frequncia estudada e utilizou-se a mdia destes valores para traar a caracterstica.
Confirmou-se a influncia dos erros estatsticos fazendo o grfico de 3900Hz para 20
aquisies e 5 aquisies atravs da melhoria do valor de R2 no ajuste mas tambm um
aumento do valor da no linearidade da caracterstica o que indicia que os erros estatsticos
podem pesar na medio deste valor.

Grfico 1 Caracterstica para 3900Hz (1024 pontos) [5 aquisies]

Grfico 1 Caracterstica para 3900Hz (1024 pontos) [20 aquisies]

Grfico 2 Caracterstica para 5500Hz (724 pontos)

Grfico 3 Caracterstica para 10000Hz (400 pontos)

Grfico 4 Caracterstica para 16000Hz (248 pontos)

Grfico 5 Caracterstica para 32767Hz (120 pontos)