Escolar Documentos
Profissional Documentos
Cultura Documentos
Conversão 16F84 para 16F628
Conversão 16F84 para 16F628
Tutorial para converso de programas feitos para 16F84 em programas para 16F628
Verso 1.0
04/2003
2 de 2
Verso
Principais Autores
Descrio da Verso
Data de Trmino
1.0
Verso inicial
14/03/2003
Exsto Tecnologia
V 1.0
3 de 3
ndice
Pgina
Introduo ................................................................................................................... 5 1 Caractersticas .......................................................................................................... 6 1.1 Temporizadores e comparadores ..................................................................... 6 1.2 Comparadores analgicos................................................................................ 6 1.3 CCP, USART e tenso de referncia. .............................................................. 6 1.4 Terminais. ....................................................................................................... 6 1.5 Memria.......................................................................................................... 7 1.6 Oscilador......................................................................................................... 9 2 Guia de converso 16F84 para 16F628 .................................................................. 10
Exsto Tecnologia
V 1.0
4 de 4
Exsto Tecnologia
V 1.0
5 de 5
Introduo
No universo dos microcontroladores PIC muito difundido o uso do PIC16F84. Existe grande quantidade de programas, livros e cursos baseados nesse dispositivo. Porm, se comparado como ele, os PIC16F628 e PIC16F627 apresentam vrias vantagens que tornam prefervel trabalhar com esses ltimos. O 16F84 compatvel pino a pino com, o 16F628, de forma que pode ser realizada sua substituio sem alteraes de hardware, bastando apenas alterar o firmware. O presente documento visa ser um tutorial para a alterao de softwares inicialmente desenvolvidos para 16F84 para serem gravados em 16F628. So apresentadas de forma resumidas as caractersticas de cada microcontrolador, ressaltando as principais diferenas entre eles. Em seguida tem-se um guia para a alterao do firmware.
Exsto Tecnologia
V 1.0
6 de 6
1 Caractersticas
A tabela abaixo apresenta uma comparao entre as principais caractersticas desse dos microcontroladores:
Caracterstica PIC 16F84 Memria Memria de Programa FLASH (palavras de 14 bits) 1024 Memria de Dados RAM (bytes) 68 Memria de Dados EEPROM (bytes) 64 Perifricos Temporizadores/Contadores 1 Comparadores analgicos Mdulo CCP (Capture/Compare/PWM) Comunicao serial Tenso de referncia interna Caractersticas Gerais Nmero de Terminais 18 Nmero de Terminais de I/O 13 Deteco de Brown-out No Interrupes 4 Modos de oscilador LP, XT, HS Sim RC externo Sim RC interno No Tabela 1.1 Comparao entre o 16F84 e o 16F628 PIC16F628 2048 224 128 3 2 1 USART 1 18 16 Sim 10 Sim Sim Sim
1.4 Terminais.
O 16F628 pode trabalhar com at 3 terminais de I/O a mais que o 16F84. Esses terminais. Esses terminais so pertencentes ao portal A. So eles os terminais 5, 15, 16,
Exsto Tecnologia
V 1.0
7 de 7
respectivamente RA5, RA6 e RA7. RA7 e RA6 so terminais multiplexados com o oscilador do PIC. Se estiver sendo utilizado o modo de oscilador XT, LP, HS, RC externos, esses terminais fazem parte do circuito oscilador e no h ligao do registro PORTA com o pino do microcontrolador. Se estiver sendo utilizado o modo RC interno (opo que no existe para o 16F84), no existe circuito externo para o oscilador, e esses terminais podem ser utilizados como I/O. RA5 pode ser utilizado somente como entrada, pois no existe driver de sada. Para sua utilizao como entrada deve-se configurar o MCLR ligado internamente para Vdd, o que feito atravs dos fusveis (fuses). Para utilizao de rotinas desenvolvidas para 16F84 no h necessidade de nenhuma alterao no cdigo com relao aos terminais.
1.5 Memria
No que se refere memria, o 16F628 apresenta grandes diferenas em relao ao 16F84. As figuras abaixo apresentam a organizao da memria do 16F84 e do 16F628.
Endereo 00h 01h 02h 03h 04h 05h 06h 07h 08h 09h 0Ah 0Bh 0Ch Banco 0 Banco 1 INDF INDF TMR0 OPTION_REG PCL PCL STATUS STATUS FSR FSR PORTA TRISA PORTB TRISB No implementado EEDATA EECON1 EEADR EECON2 PCLATH PCLATH INTCON INTCON Endereo 80h 81h 82h 83h 84h 85h 86h 87h 88h 89h 8Ah 8Bh 8Ch
Exsto Tecnologia
V 1.0
8 de 8
CMCON
00h 01h 02h 03h 04h 05h 06h 07h 08h 09h 0Ah 0Bh 0Ch 0Dh 0Eh 0Fh 10h 11h 12h 13h 14h 15h 16h 17h 18h 19h 1Ah 1Bh 1Ch 1Dh 1Eh 1Fh 20h
PR2
80h 81h 82h 83h 84h 85h 86h 87h 88h 89h 8Ah 8Bh 8Ch 8Dh 8Eh 8Fh 90h 91h 92h 93h 94h 95h 96h 97h 98h 99h 9Ah 9Bh 9Ch 9Dh 9Eh 9Fh A0h
PCLATH INTCON
100h 101h 102h 103h 104h 105h 106h 107h 108h 109h 10Ah 10Bh 10Ch 10Dh 10Eh 10Fh 110h 111h 112h 113h 114h 115h 116h 117h 118h 119h 11Ah 11Bh 11Ch 11Dh 11Eh 11Fh 120h
PCLATCH INTCON
180h 181h 182h 183h 184h 185h 186h 187h 188h 189h 18Ah 18Bh 18Ch 18Dh 18Eh 18Fh 190h 191h 192h 193h 194h 195h 196h 197h 198h 199h 19Ah 19Bh 19Ch 19Dh 19Eh 19Fh 1A0h
GPR 48 bytes
14Fh 150h 16Fh 170h 1EFh 1F0h
Como pode ser observado, existe uma grande diferena entre os dois mapas de memrias. O 16F628 possui um total de 224 bytes e o 16F84 apenas 68. Em primeiro lugar, o 16F628 possui quatro bancos de memria, enquanto o 16F84 possui dois. Contudo no existem registros nos bancos 2 e 3 trs que no possam ser acessados nos bancos 0 e 1. A nica regio de interesse nesses bancos a regio de RAM de uso geral entre os endereos 120h e 14Fh, no banco dois. Quanto aos registros de funes especiais (SFR Special Function Registers), o 16F628 os possui nos mesmos endereos que o 16F84, excetuando-se os registros relacionados com a memria EEPROM. No 16F628 todos esse registros se encontram no banco 1, e seus endereos podem ser observados na figura 1.2. Para programas que utilizam a EEPROM do 16F84 serem adaptados para o 16F628 as rotinas de aceso a EEPROM devem ser alteradas.
Exsto Tecnologia
V 1.0
9 de 9
O 16F628 possui mais registros de uso geral (GPR General Purpose Registers) que o 16F84. Ento programas desenvolvidos para 16F84 no tero problemas com falta de memria. A mudana importante que deve ser observada que no 16F84 os GPR comeam no endereo 0Ch, enquanto no 16F628 comeam no 20h. Os endereos dos registros devem ser alterados para ser adequar a faixa de endereos do 16F6268. Outra observao importante que acessando do endereo 8Ch ao CFh no banco 1 do 16F84 so acessados os registros de 0Ch a 4Fh do banco 0. No 16F628 os registros do banco 1 que acessam endereos correspondentes no banco 0 so apenas os de endereo entre F0h e FFh.
1.6 Oscilador
Para a substituio do 16F84 pelo 16F628 no se faz necessria nenhuma alterao do hardware do circuito. Porm, para reduzir componentes e conseqentemente o custo do sistema, pode-se optar por substituir um circuito oscilador externo pelo oscilador interno do 16F628. O 16F628 apresenta a possibilidade escolher entre duas freqncias para o oscilador interno, 4MHz e 37KHz. Nesse caso deve-se considerar que o oscilador interno de 4MHz tem uma preciso inferior de um oscilador a cristal. Esse oscilador pode variar entre 3,65MHz e 4,28MHz. Para utilizar o oscilador interno deve-se habilitar essa opo nos fusveis. A seleo da freqncia feita por software pelo bit OSCF do registro PCON. Se OSCF for 1 a freqncia de 4MHz; se for 0, a freqncia e 37KHz. A freqncia do oscilador pode ser alterada a qualquer momento no programa.
Exsto Tecnologia
V 1.0
10 de 10
Desabilitar os comparadores analgicos na inicializao adicionar MOVLW 07h MOVWF CMCON em um trecho que estiver acessando o banco 0.
SIM
NO
0Ch 20h
Realocar as variveis declaradas nos endereos entre 0Ch e 20h para endereos entre 20h e 0Fh
Esto sendo utilizados endereos de 8Ch a CFh no banco 1 para acesso ao banco 0? NO
SIM
Realocar as variveis para endereos entre F0h e FFh. Realocar os respectivos endereos do banco 0 para a faixa entre 70h e 7Fh.
Exsto Tecnologia
V 1.0