Computing">
PIC 16F628 Datasheet PT
PIC 16F628 Datasheet PT
PIC 16F628 Datasheet PT
Data Sheet
Memória Flash, 8-Bit CMOS
Microcontroladores com Tecnologia nano Watt
• Os produtos Microchip atendem às especificações contidas em sua Ficha Técnica Microchip específica.
• A Microchip acredita que sua família de produtos é uma das mais seguras do gênero no mercado atualmente, quando utilizada no
mercado da maneira pretendida e em condições normais.
• Existem métodos desonestos e possivelmente ilegais usados para violar o recurso de proteção de código. Todos esses métodos, para o
nosso conhecimento, exigir o uso dos produtos Microchip de uma maneira fora das especificações operacionais contidas nos Dados da
Microchip Folhas. Muito provavelmente, a pessoa que está fazendo isso está envolvida em roubo de propriedade intelectual.
• A Microchip está disposta a trabalhar com o cliente que está preocupado com a integridade de seu código.
• Nem a Microchip nem qualquer outro fabricante de semicondutores pode garantir a segurança do seu código.
• A proteção de código não significa que estamos garantindo o produto como "inquebrável".
• A proteção do código está em constante evolução. Nós da Microchip estamos comprometidos em melhorar continuamente os
recursos de proteção de código de nossos Produtos. Tentativas de quebrar o recurso de proteção de código da Microchip podem ser
uma violação da Lei de Direitos Autorais do Milênio Digital. Se tais atos permitirem acesso não autorizado ao seu software ou outro
trabalho protegido por direitos autorais, você pode ter o direito de processar para obter ressarcimento sob essa Lei.
Errata
Uma folha de errata, descrevendo pequenas diferenças operacionais em relação ao DataSheet e soluções
alternativas recomendadas, pode existir para alguns dispositivos atuais. À medida que os problemas de
dispositivos/documentação forem conhecidos por nós, publicaremos uma folha de errata. A errata especificará a
revisão da pastilha de silício e a revisão do documento ao qual se aplica. Para determinar se existe uma folha de
errata para um dispositivo específico, verifique com uma das seguintes opções:
• Site mundial da Microchip; http://www.microchip.com
• Seu escritório de vendas local da Microchip (veja a última página)
Ao entrar em contato com um escritório de vendas, especifique qual dispositivo, revisão da pastilha de silício
e o DataSheet (inclua o número da literatura) você está Usando.
Todos os dispositivos da família PIC® têm Power-on Reset, Watchdog Timer selecionável, proteção de código selecionável e alta capacidade de
corrente nos pinos de E/S. Todos os dispositivos da família PIC16F627A/628A/648A tem recurso para utilização de programação serial com
pino de clock RB6 e pino de dados RB7.
16Fh 1EFh
16 bytes 70h Acessos F0h Acessos 170h Acessos 1F0h
70h – 7Fh 70h – 7Fh 70h – 7Fh
7Fh 17Fh 1FFh
Banco 0 Banco 1 Banco 2 Banco 3
Localizações de memória de dados não implementadas, serão sempre lidas como ‘0’.
End. Indireto (1) 00h End. Indireto (1) 80h End. Indireto (1) 100h End. Indireto (1) 180h
TMR0 01h OPTION 81h TMR0 101h OPTION 181h
PCL 02h PCL 82h PCL 102h PCL 182h
STATUS 03h STATUS 83h STATUS 103h STATUS 183h
FSR 04h FSR 84h FSR 104h FSR 184h
PORTA 05h TRISA 85h 105h 185h
PORTB 06h TRISB 86h PORTB 106h TRISB 186h
07h 87h 107h 187h
08h 88h 108h 188h
09h 89h 109h 189h
PCLATH 0Ah PCLATH 8Ah PCLATH 10Ah PCLATH 18Ah
INTCON 0Bh INTCON 8Bh INTCON 10Bh INTCON 18Bh
PIR1 0Ch PIE1 8Ch 10Ch 18Ch
0Dh 8Dh 10Dh 18Dh
TMR1L 0Eh PCON 8Eh 10Eh 18Eh
TMR1H 0Fh 8Fh 10Fh 18Fh
T1CON 10h 90h
TMR2 11h 91h
T2CON 12h PR2 92h
13h 93h
14h 94h
CCPR1L 15h 95h
CCPR1H 16h 96h
CCP1CON 17h 97h
RCSTA 18h TXSTA 98h
TXREG 19h SPBRG 99h
RCREG 1Ah EEDATA 9Ah
1Bh EEADR 9Bh
1Ch EECON1 9Ch
1Dh EECON2(1) 9Dh
1Eh 9Eh
CMCON 1Fh VRCON 9Fh 11Fh
20h A0h Registradores 120h
Registradores Registradores Propósito
Propósito 6Fh Propósito EFh Geral 80 bytes 14Fh
Geral 80 bytes Geral 80 bytes 150h
16Fh 1EFh
70h Acessos F0h Acessos 170h Acessos 1F0h
16 bytes 70h – 7Fh 70h – 7Fh 70h – 7Fh
7Fh 17Fh 1FFh
Banco 0 Banco 1 Banco 2 Banco 3
Localizações de memória de dados não implementadas, serão sempre lidas como ‘0’.
Legenda: - = Locais da memória não construídos no CHIP, lidos como ‘0’, ‘u’ = não-mudado, x = desconhecido, q = valor que depende
das condições, sombreado = não construído. Nota: Para a condição de inicialização dos registradores, ver Tabela 14-6 e 7.
Legenda: : - = Locais da memória não construídos no CHIP, lidos como ‘0’, ‘u’ = não-mudado, x = desconhecido, q = valor que
depende das condições, sombreado = não construído. Nota: Para condição de inicialização dos registradores, ver Tabela 14-6 e 7.
Legenda: : - = Locais da memória não construídos no CHIP, lidos como ‘0’, ‘u’ = não-mudado, x = desconhecido, q = valor que
depende das condições, sombreado = não construído. Nota: Para condição de inicialização dos registradores, ver Tabela 14-6 e 7.
Legenda: : - = Locais da memória não construídos no CHIP, lidos como ‘0’, ‘u’ = não-mudado, x = desconhecido, q = valor que
depende das condições, sombreado = não construído. Nota: Para condição de inicialização dos registradores, ver Tabela 14-6 e 7.
bit 7 IRP: Bit de seleção do banco de registros (usado para endereçamento indireto)
1 = Banco 2, 3 (100h-1FFh); 0 = Banco 0, 1 (00h-FFh)
bit 6-5 RP<1:0>: Bits de seleção do banco de registros (usados para endereçamento direto)
00 = Banco 0 (00h-7Fh); 01 = Banco 1 (80h-FFh); 10 = Banco 2 (100h-17Fh); 11 = Banco 3 (180h-1FFh)
bit 1 DC: Bit Carry/Borrow de dígito (instruções ADDWF, ADDLW, SUBLW, SUBWF) (para emprestar a polaridade está
invertido)
1 = Ocorreu um carry-out do 4º bit de ordem inferior do resultado
0 = Nenhum carry-out do 4º bit de ordem inferior do resultado
O registrador INTCON é também passive de leitura e Nota: Os bits do sinalizador de interrupção são definidos
gravação, contendo vários bits de ativação e sinalização para quando uma condição de interrupção ocorre, e isto
todas as fontes de interrupção, exceto o módulo comparador. independentemente do estado de seu bit de habilitação
Consulte a Seção 4.2.2.4 “Registro PIE1” e Seção 4.2.2.5 correspondente ou do bit de habilitação global, GIE
“Registro PIR1” para uma descrição de os bits de habilitação (INTCON<7>).
e sinalização do comparador.
4.3.2 PILHA
A família PIC16F627A/628A/648A possui 8 níveis de pilha de
hardware (largura de 13 bits) (Figura 4-1). O espaço de pilha não faz
parte do programa ou do espaço de dados e o Stack Pointer (SP) ou
Ponteiro da Pilha não é legível ou gravável. O PC é empurrado para
a pilha quando uma instrução CALL é executada ou uma
interrupção causa uma ramificação. A pilha é POPed no caso da
execução de um RETURN, RETLW, RETFIE. PCLATH não é
afetado por nenhuma operação PUSH ou POP.
Legenda: u = inalterado x = desconhecido As células sombreadas não são usadas para PORTB.
(*) N.T. Postscaler – É exatamente o oposto de um Prescaler. O Prescaler é um pré-divisor de freqüência. O Postscaler age
como se multiplicasse a frequência fundamental, pois desacelera a freqüência com que as interrupções são geradas. Trata-se de
um circuito que reduz a taxa de geração de interrupção (ou reinicialização do WatchDog Timer - WDT) de um
contador/temporizador dividindo-o.
bit 2 - Bit de Controle (T1SYNC) para Sincronização da Entrada Externa de Clock para o Timer1
Se TMR1CS = 1
T1SYNC = 1 Não sincroniza entrada externa de clock.
T1SYNC = 0 Sincroniza entrada externa de clock.
Se TMR1CS = 0
T1SYNC será ignorado. O Timer1 usará seu clock interno quando TMR1CS for zero.
NOTA: O inversor do oscilador e o resistor de retorno são desligados para eliminar consumo do dreno.
Legenda:
R = Bit Legível W = Bit Gravável U = Bit não implementado nesse Chip, ler como ‘0’
-n = Valor no POR ‘1’ Bit Ligado ‘0’ Bit Desligado x = Bit é desconhecido
Nota: Esses valores são apenas para orientação de design. 7.6 Redefinindo o par de registradores do Timer1
Consulte a Nota de Aplicação AN826 "Noções básicas de (TMR1H, TMR1L)
Oscilador e seleção de cristal para dispositivos rfPIC® e Os registradores TMR1H e TMR1L não são redefinidos para
PIC® (DS00826)"para mais informações sobre a escolha de 00h em um POR ou qualquer outro Reset, exceto pelo disparo
Cristais e Capacitores para Clock. para evento especial CCP1 (ver Seção 9.2.4 "Disparos de
Eventos Especiais"). O registro T1CON é redefinido para 00h
em um Power-on Reset ou um Brown-out Reset, que
desligará o Timer e deixará um prescaler configurado em 1:1.
Em todos os outros tipos de Resets, o registrador não será
afetado.
Legenda: R–Bit Legível W–Bit Gravável U–Bit Não Implementado -n Valor no POR ‘1’ Ligado ‘0’ Desligado x = Desconhecido
Legenda:
R = Bit Legível W = Bit Gravável U = Bit não implementado nesse Chip, ler como ‘0’
-n = Valor no POR ‘1’ Bit Ligado ‘0’ Bit Desligado x = Bit é desconhecido
Legenda: x = desconhecido, u = não alterado, -=Não implementado Células com sombra, não usadas.
Legenda: x =desconhecido, u = não alterado, -=Não implementado Células com sombra, não usadas por PWM ou Timer2.
Página 059 © 2024 Microchip Technology Inc = Skybot Electronics. DS40044G
PIC16F 627A / 628A / 648A
ANOTAÇÕES:
Legenda:
R = Bit Legível W = Bit Gravável U = Bit não implementado nesse Chip, ler como ‘0’
-n = Valor no POR ‘1’ Bit Ligado ‘0’ Bit Desligado x = Bit é desconhecido
Bit 3-0 VR<3:0>: Bits de Seleção dos Valores de VREF, variando de 0 a 15. Trabalham conjugados com VRR.
Exemplos:
Quando VRR = 1: VREF = (VR<3:0> / 24) x VDD
Quando VRR = 0: VREF = 1/4 x VDD + (VR<3:0> / 32) x VDD
Legenda:
R = Bit Legível W = Bit Gravável U = Bit não implementado nesse Chip, ler como ‘0’
-n = Valor no POR ‘1’ Bit Ligado ‘0’ Bit Desligado x = Bit é desconhecido
Legenda:
R = Bit Legível W = Bit Gravável U = Bit não implementado nesse Chip, ler como ‘0’
-n = Valor no POR ‘1’ Bit Ligado ‘0’ Bit Desligado x = Bit é desconhecido
Legenda: x = desconhecido, - = Não implementado, lido como ‘0’, Células sombreadas não são usadas para o BRG.
2. Inicializar o registrador SPBRG para a taxa de transmissão apropriada. Se for desejada uma taxa de transmissão de
alta velocidade, ajuste o bit BRGH. (Secção 12.1 "Gerador de taxa de baud Gerador de Taxa de Baud (BRG)").
3. Habilite a porta serial assíncrona zerando o bit SYNC e definindo o bit SPEN.
5. Se for pretendida uma transmissão de 9 bits, colocar ‘1’ no bit de transmissão bit TX9.
6. Coloque ‘1’ no bit TXEN, de forma a ativar a transmissão, o que também irá colocar em ‘1’ o bit TXIF.
7. Se for selecionada a transmissão de 9 bits, o nono bit deve ser carregado no bit TX9D.
FIGURA 12-7: RECEPÇÃO ASSÍNCRONA COM PRIMEIRO BYTE SEGUIDO POR VÁLIDO
Legenda: x = desconhecido, -= Não implementado, será lido como ‘0’, Campos sombreados não são usados na recepção.
12.5 Modo Escravo USART Siga estas etapas ao configurar uma transmissão síncrona
O modo escravo síncrono difere do modo mestre no fato de Síncrona:
que o clock de deslocamento é fornecido externamente no 1. TRISB<1> e TRISB<2> devem ser definidos como '1' para
pino RB2/TX/CK (em vez de ser fornecido internamente configurar os pinos RB1/RX/DT e RB2/TX/CK como
como no modo mestre). Isso permite que o dispositivo entradas. O acionamento da saída, quando necessário, é
transfira ou receba dados enquanto estiver no modo de controlado pelo circuito periférico.
suspensão.
O modo escravo é ativado zerando o bit CSRC (TXSTA<7>). 2. Habilite a porta serial escrava síncrona definindo os bits
SYNC e SPEN e limpando o bit CSRC.
12.5.1 ESCRAVO SÍNCRONO USART TRANSMISSÃO
A operação dos modos mestre e escravo síncronos é idêntica, 3. Limpe os bits CREN e SREN.
exceto no caso do modo Sleep. Se duas palavras forem
gravadas no TXREG e, em seguida, a instrução SLEEP for 4. Se desejar interrupções, defina o bit de habilitação TXIE.
executada, ocorrerá o seguinte:
a) A primeira palavra será imediatamente transferida para o 5. Se desejar uma transmissão de 9 bits, defina o bit TX9.
registrador TSR e será transmitida.
b) A segunda palavra permanecerá no registrador TXREG. 6. Habilite a transmissão definindo o bit de habilitação
c) O bit de sinalização TXIF não será definido. TXEN.
d) Quando a primeira palavra tiver sido deslocada para fora
do TSR, o registrador TXREG transferirá a segunda palavra 7. Se a transmissão de 9 bits for selecionada, o nono bit
para o TSR e o bit de sinalização TXIF será agora definido. deverá ser carregado no bit TX9D.
e) Se o bit de habilitação TXIE for definido, a interrupção
despertará o chip do modo Sleep e, se a interrupção global 8. Inicie a transmissão carregando os dados no registro
estiver ativada, o programa desviará para o vetor de TXREG registro.
interrupção (0004h). Maiores detalhes na seção 10.6
Legenda: x = desconhecido, - = não implementado, ler como ‘0’. Sombreados não são usados nessa modalidade.
Legenda: x = desconhecido, - = não implementado, ler como ‘0’. Sombreados não são usados nessa modalidade.
Bits 7-0 EEDATn: Valor do Byte a ser Gravado na ou Lido da localização de memória setado em EEADR.
Legenda:
R = Bit Legível W = Bit Gravável U = Bit não implementado, ler como ‘0’.
-n = Valor no POR ‘1’ = Bit está alto ‘0’ = Bit está baixo. X = Valor do Bit é desconhecido.
Bit 7 PIC16F627/628 - Endereço Não Implementado. Deve ser lido como ‘0’.
Bit 6-0 PIC16F648 – O Bit 6 define banco mais alto ou mais baixo da EEPROM.
EEADR: Colocar ‘1’ para especificar endereços mais altos (128 a 255) para operações com a EEPROM.
EEADR: Especificar um dos 128 endereços da EEPROM.
Legenda:
R = Bit Legível W = Bit Gravável U = Bit não implementado, ler como ‘0’.
-n = Valor no POR ‘1’ = Bit está alto ‘0’ = Bit está baixo. X = Valor do Bit é desconhecido.
Legenda:
R = Bit Legível W = Bit Gravável U = Bit não implementado, ler como ‘0’.
-n = Valor no POR ‘1’ = Bit está alto ‘0’ = Bit está baixo. X = Valor do Bit é desconhecido.
Legenda: x = desconhecido, u = não modificado, - = não implementado, será lido como ‘0’. Q = valor depende da condição
Nota 2: EECON2 não é um registrador físico.
Bit 13: CP: Bit de Proteção de Código para Programa na Memória Flash.
PIC16F648A
1 = Código de Proteção Desligado, 0 = Código de Proteção (de 0000h a 0FFFh) Ligado.
PIC16F628A
1 = Código de Proteção Desligado, 0 = Código de Proteção (de 0000h a 07FFh) Ligado.
PIC16F627A
1 = Código de Proteção Desligado, 0 = Código de Proteção (de 0000h a 03FFh) Ligado.
Nota 1: A ativação do Reset Brown-Out não ativa automaticamente o timer de energização (PWRT) da mesma forma que
nos dispositivos dispositivos PIC16F627/628.
2: O esquema de proteção de código foi alterado em relação ao esquema de proteção de código usado nos dispositivos
PIC16F627/628. A Toda a memória de programa Flash precisa ser apagada em massa para definir o bit CP,
desativando a proteção de código. Consulte "PIC16F627A/628A/648A EEPROM Memory Programming
Specification" (DS41196) para obter detalhes.
3: Toda a EEPROM de dados precisa ser apagada em massa para definir o bit CPD, desativando a proteção de código.
Consulte "PIC16F627A/ 628A/648A EEPROM Memory Programming Specification" (DS41196) para obter detalhes.
(1) N.T. Um ressonador é um dispositivo ou sistema que apresenta ressonância ou comportamento ressonante. Ou
seja, ele oscila naturalmente com maior amplitude em algumas frequências, chamadas de frequências ressonantes,
do que em outras frequências. As oscilações em um ressonador podem ser eletromagnéticas ou mecânicas
14.3 Reinicialização
O PIC16F627A/628A/648A diferencia entre vários
tipos de reinicialização:
a) Reset de inicialização Power-On Reset (POR)
b) Reset do MCLR durante a operação normal
c) Reset do MCLR durante a suspensão
d) Reset do WDT (operação normal)
e) Despertar do WDT (Sleep)
f) Reinicialização de Brown-out (BOR)
Alguns registros não são afetados em nenhuma
condição de Reset; seu status é desconhecido em
POR e inalterado em qualquer outra reinicialização.
A maioria dos outros registros é redefinida para um
"estado de redefinição” na Reinicialização ao ligar,
Reinicialização de Brown-out, Reinicialização de
O modo Oscilador RC tem duas opções que controlam o pino MCLR, WDT e Suspensão MCLR.
OSC2 não utilizado. A primeira permite que ele seja usado como Eles não são afetados por um despertar do WDT, pois
uma porta de E/S de uso geral. A outra configura o pino como isso é visto como a retomada da operação normal. Os
uma saída que fornece o sinal FOSC (clock interno dividido por bits TO e PD vão para ‘1’ ou ‘0’ de forma diferente
4) para fins de teste ou sincronização externa. em diferentes situações conforme indicado na Tabela
14-4. Esses bits são usados no software para
14.2.7 CLKOUT determinar a natureza da reinicialização.
O PIC16F627A/628A/648A pode ser configurado para fornecer Consulte a Tabela 14-7 para obter uma descrição
um sinal de clock programando a Palavra (Word) de
completa dos estados de reinicialização de todos os
configuração. A frequência do oscilador, dividida por 4, pode ser
usada para fins de teste ou para sincronizar outra lógica.
registradores. Um diagrama de blocos simplificado
do circuito de Reset no chip é mostrado na Figura 14-
14.2.8 RECURSO ESPECIAL: MODOS DE 6. no chip é mostrado na Figura 14-6.
OSCILADOR DE DUPLA VELOCIDADE O caminho de Reset do MCLR tem um filtro de ruído
Um modo de oscilador de velocidade dupla programável para detectar e ignorar pulsos pequenos. Consulte a
por software é fornecido quando o PIC16F627A /628A Tabela 17-7 para obter a especificação da
/648A está configurado no modo de oscilador INTOSC. especificação.
Legenda: x = Desconhecido, u = Não Modificado, - = Não Implementado, Ler como ‘0’, q = valor depende das condições
As células sombreadas não são usadas pelo Reset Brown-Out.
Nota 1: Outros resets (que não sejam o Power-Up) incluem o MCLR, BRO e WDT durante operação normal do Chip.
Nota 1: Quando o despertamento é devido a uma interrupção e o bit de habilitação Global GIE está em ‘1’, o PC é carregado
com o endereço de interrupção (0004h) após a execução do PC+1 no registrador Program Counter.
Legenda: x = Desconhecido, u = Não Modificado, - = Não Implementado, Ler como ‘0’, q = valor depende das condições
Nota 1: Se o VDD for muito baixo, a reinicialização do Power-on será ativada e registros serão afetados de forma diferente.
2: Um ou mais bits em INTCON e PIR1 serão afetados (para causar do despertar Wake-Up).
3: Quando o despertar vier de uma interrupção e bit GIE for ‘1’, o PC será carregado com vetor de interrupção (0004h).
4: Consulte a Tabela 14-6 para obter o valor de Reset para uma condição específica.
5: Se a reinicialização tiver sido causada por brown-out, então o bit 0 = 0. As outras reinicializações causarão bit 0 = u.
6: Redefinir para '--00 0000' em uma redefinição de Brown-out (BOR).
7: Periféricos que geram interrupções Wake-Up do modo Sleep alterarão bits resultantes nos registros associados.
Notas
1: O circuito de reinicialização externa é necessário somente Notas:
se a inclinação de inicialização do VDD for muito lenta. O 1: Esse circuito de desligamento marrom é mais
diodo D ajuda a descarregar o capacitor rapidamente quando econômico, embora menos preciso. O transistor Q1 é
o VDD é desligado. desligado quando o VDD está abaixo de um determinado
2: R < 40 kΩ é sugerido para garantir que queda de tensão nível, de modo que o VDD não pode ser desligado:
em R não viole especificação elétrica do dispositivo.
3: R1 = 100Ω a 1 kΩ limitará qualquer corrente que flui para
o MCLR a partir do capacitor externo C no caso de quebra do
pino MCLR/VPP devido a descarga eletrostática (ESD) ou 2: A reinicialização interna de Brown-Out deve ser
estresse elétrico excessivo (EOS). desativada ao usar esse circuito.
3: Os resistores devem ser ajustados de acordo com as
características de polatização do transistor.
FIGURA 14-12 CIRCUITO 1 DE PROTEÇÃO PARA
BROWN-OUT EXTERNO.
Notas:
1: Esse circuito ativará o Reset quando VDD for inferior a
(Vz + 0,7 V), sendo Vz = tensão Zener.
2: O circuito interno de Reset de Brown-out deve ser
desativado ao usar esse circuito.
Legenda: x = Desconhecido, u = Não Modificado, - = Não Implementado, Ler como ‘0’, q = valor depende das condições
Nota: As células sombreadas não são utilizadas pelo Timer do WatchDog.
14.8 Modo Power-Down (Sleep) Os pinos de E/S que são entradas de alta impedância devem
O modo de desligamento é acessado com a execução de uma ser puxados para cima ou baixo externamente para evitar
instrução SLEEP. correntes de comutação causadas por entradas flutuantes.
Se ativado, o Timer Watchdog será zerado, mas continuará A entrada T0CKI também deve estar em VDD ou VSS para
funcionando, o bit PD no registrador STATUS será zerado, o obter o menor consumo de corrente. A contribuição dos pull-
bit TO irá para ‘1’ e o driver do oscilador será desligado. As ups no chip em PORTB deve ser considerada como valiosa.
portas de E/S manterão o status que tinham antes da execução O pino MCLR deve estar em um nível lógico alto (VIHMC).
do SLEEP (seja condução em alta, baixa ou alta impedância).
FIGURA 14-18: CONEXÃO TÍPICA EM Deve-se observar que, quando o bit LVP é programado para
CIRCUITO PARA PROGRAMAÇÂO SERIAL "0", somente o modo de programação de alta tensão pode ser
usado para programar o dispositivo.