Vous êtes sur la page 1sur 15

Placa McLab1 Upgrade PIC16F84A p/ PIC16F62x

Upgrade PIC16F84A p/ PIC16F62x

McLab1

Sumrio
1. 2. UTILIZANDO OS PICS 16F62X .............................................. 3 1.1. INTRODUO .......................................................................... 3 ATUALIZAO DO HARDWARE......................................... 4 2.1. UPGRADE DA PLACA MCLAB1 PARA TRABALHAR COM PIC16F627 / PIC16F628................................................................... 4 2.2. POR QUE A ALTERAO NECESSRIA? ................................ 4 3. CARACTERSTICAS DOS PICS 16F62X (P.13 DO LIVRO)5 3.1. 3.2. 3.3. 4. 5. 6. 7. A PINAGEM ............................................................................. 6 AS NOMENCLATURAS UTILIZADAS (PGINA 14) .................... 6 CARACTERSTICAS ELTRICAS E OUTRAS (PGINA 123)........ 7

MEMRIA DE DADOS (PGINA16) ..................................... 8 MEMRIA DE PROGRAMA (P.15 DO LIVRO)................. 10 5.1. CONVERTENDO OS PROGRAMAS........................................... 10 CONVERTENDO OS PROGRAMAS P/ A PLACA MCLAB1 ............................................ 11 ROTINAS PARA EEPROM CORRIGIDAS ......................... 13 7.1. ESCRITA (PGINA 118) ......................................................... 13 7.1.1. Leitura (pgina 119)..................................................... 13 7.1.2. Exemplo (pgina 123)................................................... 13

8.

GRAVAO IN-CIRCUIT ..................................................... 15

II

Upgrade PIC16F84A p/ PIC16F62x

McLab1

1.
1.1.

Utilizando os PICs 16F62x


Introduo

Atualmente tanto o livro Desbravando o PIC quanto o curso e a placa McLab 1 da Labtools se baseiam no PIC16F84 para a realizao de todas as experincias propostas. Entretanto, nos ltimos tempos a Microchip desenvolveu novos modelos de PIC que possuem caractersticas semelhantes ao F84 mas com uma tecnologia superior. Isto possibilita que estes novos modelos, denominados 16F627 e 16F628, possuam mais recursos e sejam mais baratos. A Labtools, no seu constante trabalho de divulgao do conhecimento, e na sua plena preocupao com os melhores benefcios para os nossos clientes, resolveu criar este documento para que os usurios de nossos sistemas possam ter a opo de utilizarem tambm os novos modelos apresentados. No nossa inteno entretanto, explicar ou esclarecer os novos recursos disponveis nos modelos 16F62x, mas somente informar sobre as alteraes necessrias para utiliza-los nos exemplos desenvolvidos para o 16F84.

Upgrade PIC16F84A p/ PIC16F62x

McLab1

2.
2.1.

Atualizao do Hardware
Upgrade da Placa McLab1 para trabalhar com PIC16F627 / PIC16F628

Alterar os resistores R19, R20, R21, R22, R23, R24, R25 e R26 originalmente de 10k para 330 e resistores R15, R16 e R17 originalmente de 470 para 2k2.

Ateno! A atualizao do hardware s necessria para as placas adquiridas anteriormente a data 13 de novembro de 2001.
2.2. Por que a alterao necessria? A placa McLab1 dispe de um recurso de hardware que possibilita a utilizao de uma entrada e uma sada num mesmo pino do microcontrolador. Este recurso til, por exemplo, quando se deseja ler o estado de um boto e no mesmo pino controlar um led. Desta forma, minimiza-se os I/Os utilizados no microcontrolador, possibilitando assim, desenvolver grandes aplicaes mesmo em microcontroladores com poucos I/Os. No caso da placa McLab1, este recurso foi utilizado nas chaves SW2, SW3 e SW4, nos leds D10, D11 e D12 que esto ligados respectivamente nos pinos RA1, RA2, RA3 do PIC ( vide esquema eltrico). A placa foi inicialmente projetada para a utilizao com o microcontrolador PIC16F84, acontece que neste microcontrolador estes pinos tinham uma arquitetura tipo TTL, j no PIC 16F62x estes pinos so do tipo Schmitt Trigger. Isso significa que os nveis de tenso que a porta entende como nvel lgico 1 e/ou 0 so diferentes. Admitindo uma tenso de alimentao de 5V, para o PIC16F84 ( TTL ) o microcontrolador entende nvel lgico 1 a partir de 2V nvel lgico 0 abaixo de 0,8V. No PIC16F62x ( Schmitt Trigger ) o microcontrolador entende nvel lgico 1 a partir de 4V e nvel lgico 0 abaixo de 2V . Em virtude deste fato, para utilizar a placa McLab1
4

Upgrade PIC16F84A p/ PIC16F62x

McLab1

com o PIC16F62x necessrio alterar o valor de alguns resistores para garantir a polarizao correta e conseqentemente adequar os nveis de tenso para a porta tipo Schmitt Trigger. importante salientar que a alterao no prejudica em nada a utilizao da placa com o PIC 16F84, ou seja, depois de alterada, a placa poder ser utilizada tanto com o PIC16F62x como com o PIC16F84. Voc deve estar se perguntando porque a Microchip modificou a arquitetura interna de TTL para Schmitt Trigger nos PIC16F62x. O problema que este novo microcontrolador apresenta um recurso interno analgico (comparadores) que no estava disponvel no PIC16F84. No PIC16F62x alguns pinos podem ser configurados como entradas analgicas de comparadores internos, por isso, a alterao de TTL para Schmitt Trigger. Esta alterao no foi em todos os pinos do microcontrolador, e sim apenas naqueles pinos utilizados pelos comparadores analgicos, ou seja, no PORTA, justamente o mesmo que utilizamos na placa McLab1 para fazer a leitura/escrita num mesmo pino.

3.

Caractersticas dos PICs 16F62x (p.13 do livro)

Para os usurios que possuem o livro Desbravando o PIC, as principais diferenas entre os modelos podem ser observadas em relao as caractersticas apresentadas no Captulo 5 O PIC16F84. Por isso, vamos seguir a mesma formatao do livro para apresentarmos as caractersticas dos modelos 16F62x: Microcontroladores de 18 pinos, o que facilita a montagem de hardwares experimentais; 16 I/Os, sendo que 15 podem ser configurados como entradas e sadas e 1 (RA5) s pode ser utilizado como entrada; Possui oscilador interno de 4MHz (pode ser usado externo, perdendo-se 2 I/Os); Possui Mster Clear interno (pode ser usado externo, perdendo-se 1 I/O);
5

Upgrade PIC16F84A p/ PIC16F62x

McLab1

5 interrupes disponveis (TMR0, Externa, Mudana de Estado, EEPROM e comparador); Dois comparadores internos com tenso de referncia externa; Trs timers internos: TMR0 (8 bits), TMR1 (16 bits) e TMR2 (8 bits); Capture,Compare e PWM (10 bits); USART; Memria de programao Flash, que permite a gravao do programa diversas vezes no mesmo chip, sem a necessidade de apaga-lo atravs de luz ultra-violeta, como acontece nos microcontroladores de janela; Memria EEPROM (no voltil) interna; Via de programao com 14 bits e 35 instrues.
3.1.

A pinagem

3.2.

As nomenclaturas utilizadas (pgina 14)

O 16F62x possui um total de 16 I/Os separados em dois grupos denominados PORTAS. Desta forma temos a Porta A e a Porta B. Para facilitarmos o entendimento e a comparao com os data sheets originais,
6

Upgrade PIC16F84A p/ PIC16F62x

McLab1

usaremos os termos provenientes do ingls: PORTA (port A) e PORTB (port B). O PORTA possui 8 pinos que podem ser configurados como entrada ou sada, e seus nomes so definidos como RA0, RA1, RA2, RA3, RA4, RA5, RA6 e RA7. O pino referente ao RA4 pode ser configurado tambm para incrementar o contador TMR0. Nos exerccios do livro e do curso so utilizadas somente as portas de RA0 a RA4, pois os pinos 16 e 17 so utilizados para o oscilador externo e o pino 4 utilizado como Master Clear externo. As demais funes destes pinos, como os comparadores e oscilador interno no so vistas no livro ou no curso. J o PORTB possui 8 pinos configurveis como entrada ou sada, sendo seu nomes RB0, RB1, RB2, RB3, RB4, RB5, RB6 e RB7. O RB0 pode ser utilizado tambm para gerar a interrupo externa, assim como os pinos de RB4 a RB7 podem gerar a interrupo por mudana de estado. Estes pinos possuem tambm outras funes, como a USART, SPI, Capture, Compare, PWM, mas estes recursos no so estudados no livro e no McLab 1. Maiores detalhes sobre os recursos disponveis podem ser conseguidos no Data Sheet do componente.
3.3. Caractersticas eltricas e outras (pgina 123) Temperatura de trabalho .................................................... -40C at +125C Temperatura de armazenamento............................................-65C at 150C Tenso de trabalho...................................................................... 3.0V a 5.5V Voltagem mxima no pino Vdd (em relao ao Vss) ............ -0.3V at 6.5V V. mxima no pino MCRL (em relao ao Vss)......................-0.3V at 14V V. max. nos demais pinos (em relao ao Vss) ........-0.3V at (Vdd + 0.3V) Dissipao mxima de energia..........................................................800 mW Corrente mxima de sada no pino Vss..............................................300 mA Corrente mxima de entrada no pino Vdd......................................... 250 mA Corrente mxima de entrada de um pino (quando em Vss).................25 mA Corrente mxima de sada de um pino (quando em Vdd)................... 25 mA Corrente mxima de entrada do PORTA .......................................... 200 mA Corrente mxima de sada do PORTA ............................................. 200 mA Corrente mxima de entrada do PORTB .......................................... 200 mA Corrente mxima de sada do PORTB ............................................. 200 mA
7

Upgrade PIC16F84A p/ PIC16F62x

McLab1

4.

Memria de dados (pgina16)

A memria de dados da famlia F62x bem diferente da do F84. As principais diferenas a serem consideradas para a migrao (F84 -> F62x) so: Posio inicial da memria de dados de uso geral: de 0x0C para 0x20; Posio dos endereos dos SFRs relacionados com a EEPROM: EEDATA: de 0x08 para 0x9A; EEADR: de 0x09 para 0x9B; EECON1: de 0x88 para 0x9C; EECON2: de 0x89 para 0x9D; Vale observar tambm que a RAM para estes modelos aumentou de 68 para 225 bytes. A EEPROM aumentou de 64 para 128 bytes.

Upgrade PIC16F84A p/ PIC16F62x

McLab1

Upgrade PIC16F84A p/ PIC16F62x

McLab1

5.

Memria de programa (p.15 do livro)

O importante a observar que o modelo 16F627 possui o mesmo tamanho de memria de programa que o 16F84, isto , 1K. J o 16F628 possui o dobro de memria: 2K. Isto possibilita que qualquer um dois possa ser utilizado no lugar do 16F84.

5.1.

Convertendo os programas

Para que os programas desenvolvidos para 16F84 possam ser utilizados na famlia 16F62x importante observar os seguintes pontos para a converso de qualquer programa:

Sempre altere o modelo de PIC no projeto em uso. Para isso, utilize a opo Edit Project, do menu Project. Reposicione a localizao do bloco de variveis. Para isso, altere a linha CBLOCK 0X0C para CBLOCK 0X20. Esta linha est no incio de todo programa e exemplo do livro, no bloco Variveis. substituir o arquivo de include no bloco Arquivos de Definies, de <16F84.INC> para <16F627.INC> ou <16F628.INC>.
10

Upgrade PIC16F84A p/ PIC16F62x

McLab1

Na rotina de inicializao do programa (INICIO), devem ser inseridas as seguintes linhas ao final (aps BANK0): MOVLW B00000111 MOVWF CMCON internos

desliga

os

comparadores

Tomar cuidado com as rotinas de escrita e leitura da EEPROM, pois os registradores EEDATA e EEADR encontram-se no Banco 1 e no mais no banco 0. Nunca gravar o microcontrolador com a opo de oscilador interno. Nunca gravar o microcontrolador com a opo WDT ON. Se esta funo no estiver prevista em software.

6.

Convertendo os Programas p/ a placa McLab1

Para que os programas desenvolvidos para o PIC16F84 possam ser utilizados na famlia PIC16F62x na placa McLab 1 importante observar os seguintes pontos: Gravar o microcontrolador com a opo Brown-Out Reset (bor) ligada. Gravar o microcontrolador com a opo Power-on Reset (por) ligada.

11

Upgrade PIC16F84A p/ PIC16F62x

McLab1

Gravar o microcontrolador com a opo Watchdog Timer (WDT) desligada.


Nunca gravar o microcontrolador com a opo Low Voltage Programer (LVP) ligada, pois o pino de I/O RA5/MCLR ser gravado com a opo de MCLR_ON. (tome cuidado com esta opo). Utilize a seguinte linha de comando para o config.

_CONFIG_BODEN_ON &_CP_OFF &_PWRTE_ON &_WDT_OFF &_LVP_OFF &_MCLRE_ON & _XT _ OSC.

12

Upgrade PIC16F84A p/ PIC16F62x

McLab1

7.

Rotinas para EEPROM corrigidas

7.1. Escrita (pgina 118) ESCR_E2PROM BANK1 MOVWF EEDATA EM W BCF INTCON,GIE INTERRUPES BSF EECON1,WREN MOVLW 0X55 ESCRITA MOVWF EECON2 OBRIGATRIO) MOVLW 0XAA MOVWF EECON2 BSF EECON1,WR BCF EECON1,WREN BTFSC EECON1,WR GOTO $-1 AGUARDANDO BANK0 BSF INTCON,GIE INTERRUPES NOVAMENTE RETURN 7.1.1. Leitura (pgina 119) LE_E2PROM BANK1 BSF EECON1,RD NOP MOVF EEDATA,W BANK0 RETURN 7.1.2. Exemplo (pgina 123)

;BANCO 1 ;ACERTA DADO ;DESABILITA

PASSADO

;HABILITA ESCRITA ;INICIALIZAO DA ;(PROCEDIMENTO

;INICIA ESCRITA ;NO, ACABOU ESCRITA? ;NO, CONTINUA ;SIM, BANCO 0 ;HABILITA ;RETORNA

;BANCO 1 ;PREPARA LEITURA ;COLOCA DADO EM W ;BANCO 0 ;RETORNA

13

Upgrade PIC16F84A p/ PIC16F62x

McLab1

;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ;* ROTINA DE LEITURA DO VALOR DO CONTADOR * ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ; ESTA ROTINA L O VALOR DA MEMRIA E COLOCA O RESULTADO NA ; VARIVEL "CONTADOR". LE_CONTA MOVLW POS_MEM BANK1 ;MUDA PARA BANCO 1 MOVWF EEADR ;ACERTA O ENDEREO PARA LEITURA BANK0 ;VOLTA PARA BANCO 0 CALL LE_E2PROM ;EFETUA A LEITURA DA EEPROM MOVWF CONTADOR ;ATUALIZA O CONTADOR RETURN ;RETORNA ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ;* ROTINA DE ESCRITA DO VALOR DO CONTADOR * ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ; ESTA ROTINA ESCREVE O VALOR ATUAL DE CONTADOR NA MEMRIA EEPROM ESCR_CONTA MOVLW POS_MEM BANK1 ;MUDA PARA BANCO 1 MOVWF EEADR ;ACERTA O ENDEREO PARA LEITURA BANK0 ;VOLTA PARA BANCO 0 MOVF CONTADOR,W ;COLOCA CONTADOR EM W CALL ESCR_E2PROM ;EFETUA A ESCRITA EEPROM RETURN ;RETORNA
14

Upgrade PIC16F84A p/ PIC16F62x

McLab1

8.

Gravao in-circuit

A placa McLab1 compatvel com os gravadores McFlash e McPlus, de forma que o microcontrolador no precisa ser retirado da placa para ser gravado. O McFlash/McPlus deve ser ligado no conector CN3 e somente a Placa McLab1 deve estar alimentada, fornecendo energia para o gravador.

15

Vous aimerez peut-être aussi