Altana Tubes > Blog > PIC16F627A/628A/648A > Módulo USART > Escravo

12.5 Modo Síncrono Escravo do USART dos microcontroladores PIC16F627A, PIC16F628A e PIC16F648A

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

Revisão: Renato Kodaira

O modo Síncrono Escravo dos microcontroladores PIC16F627A, PIC16F628A e PIC16F648A difere do modo Mestre pelo fato de o clock de deslocamento ser alimentado externamente no pino RB2/TX/CK (ao invés de ser alimentado internamente, como no modo Mestre). Isto permite que o dispositivo transfira ou receba dados durante a Hibernação. O modo Escravo é selecionado apagando-se o bit CSRC (TXSTA<7>).

12.5.1 TRANSMISSÃO SÍNCRONA ESCRAVA DO USART

A operação dos modos Mestre e Escravo é identica, exceto no caso do modo de Hibernação.

Se duas palavras são escritas no TXREG e depois a instrução SLEEP é executada, o seguinte irá ocorrer:

  1. A primeira palavra será imediatamente transferida para o registrador TSR e transmitida.
  2. A segunda palavra permanecerá no registrador TXREG.
  3. O bit sinalizador TXIF não será ativado.
  4. Quando a primeira palavra tiver sido deslocada para o TSR, o registrador TXREG transferirá a segunda palavra para o TSR e o bit sinalizador TXIF agora será ativado.
  5. Caso o bit de habilitação TXIE for ativado, a interrupção removerá o chip da Hibernação e se a interrupção global for habilitada o programa desviará para o vetor de interrupção (0004h).

Siga estes passos ao configurar uma Transmissão Síncrona Escrava:

  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. Habilitar a porta serial síncrona escrava ativando os bits SYNC e SPEN, e apagando o bit CSRC.
  3. Apagar os bits CREN e SREN.
  4. Se interrupções forem desejadas, ativar o bit de habilitação TXIE.
  5. Se a transmissão de 9 bits for desejada, ativar o bit TX9.
  6. Habilitar a transmissão ativando o bit TXEN.
  7. Se a transmissão de 9 bits for selecionada, o nono bit deve ser carregado para o bit TX9D.
  8. Iniciar a transmissão através do carregamento de dados para o registrador TXREG.

12.5.2 RECEPÇÃO SÍNCRONA ESCRAVA DO USART

A operação dos modos Síncrono Mestre e Síncrono Escravo é idêntica, exceto no caso do modo de Hibernação. Além disso, o bit SREN é do tipo "indiferente" no modo Escravo.

Se a recepção estiver habilitada pela ativação do bit CREN antes da instrução SLEEP, então uma palavra pode ser recebida durante a Hibernação. Tendo recebido a palavra completamente, o registrador RSR transferirá os dados para o registrador RCREG, e se o bit de habilitação RCIE for ativado, a interrupção gerada removerá o chip da Hibernação. Se a interrupção global for habilitada, o programa desviará para o vetor de interrupção (0004h).

Siga estes passos ao configurar uma Recepção Síncrona Escrava:

  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. Habilitar a porta serial síncrona mestre ativando os bits SYNC e SPEN, e apagando o bit CSRC.
  3. Se interrupções forem desejadas, ativar o bit de habilitação RCIE.
  4. Se a recepção de 9 bits for desejada, ativar o bit RX9.
  5. Para habilitar a recepção, ativar o bit de habilitação CREN
  6. 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.
  7. Executar a leitura do registrador RCSTA para obter o nono bit (caso esteja habilitado) e determinar se algum erro ocorreu durante a recepção.
  8. Executar a leitura dos dados de 8 bits recebidos, através da leitura do registrador RCREG.
  9. Caso haja ocorrido um erro OERR, eliminar o erro apagando o bit de habilitação CREN.

TABELA 12.11: REGISTRADORES ASSOCIADOS À TRANSMISSÃO SÍNCRONA ESCRAVA

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
19h TXREG Registrador de Dados Transmitidos 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 transmissão síncrona escrava

TABELA 12.12: REGISTRADORES ASSOCIADOS À RECEPÇÃO SÍNCRONA ESCRAVA

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 síncrona escrava

<-Anterior Índice Próximo->