Altana Tubes > Blog > PIC16F627A/628A/648A > Módulo USART > Endereço

12.3 Função de Detecção de Endereço do USART dos microcontroladores PIC16F627A, PIC16F628A e PIC16F648A

Tradução: Maria Elisa - Assessoria em Inglês e Alemão 

Revisão: Renato Kodaira

12.3.1 RECEPTOR DE 9 BITS DO USART COM DETECÇÃO DE ENDEREÇO

Quando o bit RX9 é ativado no registrador RCSTA, 9 bits são recebidos e o nono bit é colocado no bit RX9D do registrador RCSTA dos microcontroladores PIC16F627A, PIC16F628A e PIC16F648A. O módulo USART possui uma provisão especial para comunicação com multiprocessadores. A comunicação com multiprocessadores é habilitada ativando-se o bit ADEN (RCSTA<3>) juntamente com o bit RX9. A porta está agora programada de forma que quando o último bit for recebido, o conteúdo do Registrador de Deslocamento de Recepção (RSR) é transferido para o buffer de recepção, o nono bit do RSR (RSR<8>) é transferido para o RX9D, e a interrupção da recepção é ativada se, e somente se RSR<8> = 1. Esta característica pode ser utilizada no sistema de multiprocessadores como segue:

Um processador mestre pretende transmitir um bloco de dados para um dos muitos escravos. Ele deve primeiramente enviar um byte de endereço que identifica o escravo desejado. Um byte de endereço é identificado ativando-se o nono bit (RSR<8>) para '1' (ao invés de um '0' para um byte de dados). Se os bits ADEN e RX9 são ativados no registrador RCSTA do escravo, habilitando a comunicação com multiprocessadores, todos os bytes de dados serão ignorados. Entretanto, se o nono bit recebido é igual a '1', indicando que o byte recebido é de endereço, o escravo será interrompido e o conteúdo do registrador RSR será transferido para o buffer de recepção. Isto permite que o escravo seja interrompido somente por endereços, de forma que o escravo possa examinar o byte recebido para verificar se está sendo endereçado. O escravo endereçado irá apagar então o seu bit ADEN e se preparar para receber bytes de dados do mestre.

Quando o ADEN é habilitado (= 1), todos os Bytes de dados são ignorados. Na sequência do bit Stop, os dados não serão carregados para o buffer de recepção, e nenhuma interrupção ocorrerá. Caso um outro byte seja deslocado para o registrador RSR, o byte de dados anterior será perdido.

O bit ADEN somente terá efeito quando o receptor estiver configurado no modo de 9 bits (RX9 = 1). Quando o ADEN estiver desabilitado (= 0), todos os bytes de dados são recebidos e o 9º bit pode ser utilizado como o bit de paridade.

O diagrama de blocos da recepção é apresentado na Figura 12.4.

A recepção é habilitada ativando-se o bit CREN (RCSTA<4>).
 

12.3.1.1 Configurando o modo de 9 bits com Detecção de Endereço

Siga estes passos ao configurar a Recepção Assíncrona com a Detecção de Endereço Habilitada:

  1. O TRISB<1> e o TRISB<2> devem ambos ser ativados para '1', a fim de configurar os pinos RB1/RX/DT e RB2/TX/CK como entradas. O drive de saída, quando requisitado, é controlado pelos circuitos periféricos.
  2. Inicializar o registrador SPBRG para a taxa de transmissão apropriada. Se uma taxa de transmissão de alta velocidade é desejada, ativar o bit BRGH.
  3. Habilitar a comunicação assíncrona ativando ou apagando o bit SYNC e ativando o bit SPEN.
  4. Se interrupções forem desejadas, então ative o bit de habilitação RCIE.
  5. Ativar o bit RX9 a fim de habilitar a recepção de 9 bits.
  6. Ativar o ADEN para habilitar a detecção de endereço.
  7. Habilitar a recepção ativando o bit CREN ou SREN.
  8. O bit sinalizador RCIF será ativado quando a recepção estiver completa, e uma interrupção será gerada se o bit de habilitação RCIE tiver sido ativado.
  9. Executar a leitura dos dados de 8 bits recebidos, através da leitura do registrador RCREG, a fim de determinar se o dispositivo está sendo endereçado.
  10. Caso haja ocorrido um erro OERR, eliminar o erro apagando o bit de habilitação CREN, se ele já tiver sido ativado.
  11. Caso o dispositivo tiver sido endereçado (RSR<8> = 1 com match de endereço habilitado), apagar os bits ADEN e RCIF para permitir que os bytes de dados e os bytes de endereço sejam lidos para o buffer de recepção, e interrompam a CPU

TABELA 12.8: REGISTRADORES ASSOCIADOS À RECEPÇÃO ASSÍNCRONA

Endereço Nome Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Valor na POR Valor em Todas as Outras Reinicializações
0Ch PIR1 EEIF CMIF RCIF TXIF --- CCP1IF TMR2IF TMR1IF 0000 -000 0000 -000
18h RCSTA SPEN RX9 SREN CREN ADEN FERR OERR RX9D 0000 000x 0000 000x
1Ah RCREG Registrador de Dados Recebidos do USART 0000 0000 0000 0000
8Ch PIE1 EEIE CMIE RCIE TXIE --- CCP1IE TMR2IE TMR1IE 0000 -000 0000 -000
98h TXSTA CSRC TX9 TXEN SYNC --- BRGH TRMT TX9D 0000 -010 0000 -010
99h SPBRG Registrador Gerador de Taxa de Transmissão 0000 0000 0000 0000

Legenda:
x = desconhecido
- = não implementado, lido como '0'
células sombreadas = não utilizadas para a recepção assíncrona

 

<-Anterior Índice Próximo->