domingo, 21 de novembro de 2010

sábado, 13 de novembro de 2010

Sejam bem vindos caros colegas!!!

Depois de uma conversa que tive com o pessoal da nossa turma tive a iniciativa de criar este blog como forma de divulgar conhecimento referente à Engenharia de Controle e Automação. Aqui poderemos abordar os diversos assuntos como eletro-eletrônica, desenho técnico, programação, sistemas embarcados, matemática etc. Espero desta forma que possamos contribuir para o nosso próprio desenvolvimento ou suprir de alguma forma o que gostaríamos de ver em sala de aula.

Façam um bom proveito.


Minha primeira dica é referente ao uso de microcontroladores e segue:

Ter uma boa noção sobre a configuração do microcontrolador pode evitar dores de cabeça ao se tentar encontrar um erro que não depende especificamente do programa ou do circuito elaborado (software e hardware). Ela pode ser feita durante a elaboração do programa ou durante a etapa de gravação. Essa configuração normalmente é diferente para cada tipo de microcontrolador e deve ser atentamente observada através de datasheets ou qualquer documento que descreva esse registro.

O registro de configuração é diferente dos outros registros pelo fato de ser alterado somente na fase de gravação do componente.

O PIC16F84A possui muito material didático espalhado pela internet e pode ser substituído pelo PIC16F628A, visto que este possui recursos adicionais em relação ao primeiro. Vejamos como configurar o PIC16F628A :

__CONFIG −> define os fusíveis dos PICs ou os bits de configuração. Esta diretiva é muito utilizada (eu aconselho você a usá-la em todo programa). Ela fica no cabeçalho. Caso você não coloque esta linha de configuração, deverá selecionar estas opções no gravador do PIC.

_boden_on −> se ligado o PIC resetará se a tensão de alimentação cair para menos do que 4V durante 100μs.

_boden_off −> se desligado o PIC não reseta se a tensão cair para menos de 4V. Mas, você deve saber se o seu projeto permite isto.

_cp_all −> protege toda a memória evitando-se cópia. Dá para regravar mas não copiar ou ler o que está gravado.

_cp_75 −> protege parte da memória.

_cp_50 −> protege parte da memória.

_cp_off −> código de proteção desligado. Alguém pode copiar o seu programa.

_cp_on −> protege a memória toda contra cópia.

_pwrte_off −> desabilita o reset interno do PIC. Use esta opção se estiver usando um circuito de reset externo.

_pwrte_on −> habilita o reset interno do PIC, ou seja, o PIC só começará a funcionar depois de 72ms, após você colocar Vcc no MCLR. Você pode ligar o Vcc com o MCLR.

_wdt_on −> liga o watch-dog. Se esta opção estiver ligada você deve resetar o watch-dog durante o programa.

_wdt_off −> desliga o watch-dog. Não use esta opção se o seu projeto inclui a segurança física das pessoas.

_lvp_on −> permite a programação em baixa tensão (5V). Deve ficar desabilitada com a maioria das placas de gravação. Usada em ICSP.

_lvp_off −> a gravação deve ser feita com tensão de 13V.

_mclre_on −> permite o reset externo através da colocação de 0 volts no pino MCLR. Deve ficar habilitado.

_mclre_off −> não permite o reset ou “clear” externo.

_er_osc_clkout −> usado quando o oscilador externo é composto por uma constante RC e temos a saída de clock no pino Ra6.

_er_osc_noclkout −> oscilador RC sem saída de clock.

_intrc_osc_clkout −> oscilador interno de 4 MHz com saída de clock pelo Ra6 ou porta,6 (pode trabalhar em 37 kHz).

_intrc_osc_noclkout −> oscilador interno de 4 MHz sem oscilador externo. Ra6 vira uma I/O (pode trabalhar em 37 kHz).

_extclk_osc −> usado com clock externo, entrando no pino porta,7 (Ra7) e sem saída na porta,6. O Ra6 será uma I/O (entrada/saída).

_lp_osc −> usada para oscilar o cristal de baixa freqüência. Cristais abaixo de 200 KHz. Você sabia que existem cristais de 15 kHz?

_xt_osc −> para cristal ou ressonador entre 100 kHz a 4 MHz.

_hs_osc −> para oscilador com ressonador ou cristal acima de 4 MHz.

Normalmente estas definições são escritas uma após a outra, com o uso do operador &, e colocadas no cabeçalho do programa.

Usando osciladores internos podemos trabalhar em 4 MHz ou 37 KHz. Selecionamos isto no registrador PCON através do flag OSCF.
Se OSCF = 0 −> clock de 4 MHz.
Se OSCF = 1 −> clock de 37 KHz.

Estes valores são aproximados e tem uma tolerância.

Exemplo de linha de __config:
__config _boden_on & cp_on & pwrte_on & wdt_off & lvp_off & mclre_on & _xt_osc

(Extraído da apostila Microcontroladores PIC16F84 PIC16F628 de Luiz Bertini)