A correction of SRPA: Subtracted SRPA
4.2 Results: Assessment of the correction capabili- capabili-ties of SSRPAcapabili-ties of SSRPA
4.2.2 Dipole response and polarizability in 48 Ca
O caso mais comum é quando o microcontrolador funciona como Mestre, e os periféricos como Escravos. Esta é a razão de apenas se falar aqui deste modo. Também se vai considerar que o endereço é de 7 bits, e o sistema electrónico só tem um microcontrolador, ou um só mestre.
De maneira a ligar o módulo MSSP neste modo, é necessário fazer o seguinte:
Confi gurar o Baud Rate, registo SSPADD;
Confi gurar o Slew Rate - Controlo de interferências, bit SMP no registo SSPSTAT; Seleccionar o modo, registo SSPCON.
Depois destes passo feitos, e do módulo ter sido ligado pelo bit SSPEN do SSPCON, deverá esperar-se pela electrónica interna indicar que está pronta para transmissão: bit SSPIF do registo PIR1 activado.
Este bit deverá ser limpo por software, e seguidamente o microcontrolador está pronto a iniciar uma comuni- cação com os periféricos.
• • •
I2C em modo Mestre
Transmissão de dados no modo I2C Mestre
Cada condição de relógio no pino SDA, é iniciado com estado lógico 0, que aparece após ligar o bit SEN do SSPCON2. Mesmo depois de ligar, o microcontrolador aguarda um momento antes de iniciar a comunicação. É a chamada Condição de Start, durante a qual há estabilização interna da electrónica. Se todas as condições satisfazerem, o bit SSPIF do PIR1 é activado, e a transferência de dados é iniciada, assim que o registo SSP- BUF for carregado com um byte.
Como só um máximo de 112 dispositivos podem partilhar a mesma linha de transmissão, o primeiro byte enviado contém o endereço de apenas um Escravo. Cada compo- nente tem o seu endereço escrito no próprio datasheet. O oitavo bit deste primeiro byte, especifi ca se o Mestre vai enviar ou receber dados. Neste caso vai-se receber infor- mação, e o oitavo bit deverá ser lógico 0.
Quando o endereço coincide, o microcontrolador tem de esperar pelo bit de ACK. O Escravo con- fi rma o endereço, limpando o bit ACKSTAT do SSPCON2. Se houver coincidência de endereço, todos os bytes serão enviados da mesma forma.
A transmissão de dados termina activando o bit SEN do SSPCON2. A condição de STOP ocorre, o que possibilita o pino SDA a receber a condição: Start - Endereço - ACK - Dados - ACK ... Dados - ACK - Stop.
Recepção de dados no modo I2C Mestre
A preparação para a recepção de dados, é similar à de transmissão de dados, com a excepção de que, o último bit do byte de endereço, é lógico 1. Especifi ca que o Mestre espera receber informação do Escravo endereçado. O seguinte vai ocorrer:
Depois da preparação interna terminar e do bit START ser activado, o Escravo dá início ao envio de um byte de cada vez. Estes bytes são armazenados no registo SSPSR. Cada byte é carregado para o SSPBUF, de onde pode ser lido. Ao ler este registo, o bit ACK é automaticamente enviado, signifi cando que o Mestre está pronto para receber novo byte.
Recepção de dados no modo I2C Mestre
Start - Endereço - ACK - Dados - ACK .... Dados - ACK - Stop.
É desta maneira que o ACK é enviado ao Escravo.
Gerador de Baud Rate
De maneira a sincronizar as comunicações, todos os eventos no pino SDA devem ser síncronizados com o relógio gerado no Mestre. Este relógio é gerado por um simples oscilador, em que a frequência depende do oscilador principal do microcontrolador, do valor escrito no registo SSPADD e do modo corrente de SPI e I2C.
A frequência de relógio dos modos descritos neste manual, dependem do cristal de quartzo e do registo SSPADD. A fórmula usada para a calcular está na fi gura abaixo:
Quando o microcontrolador comunica com os periféricos, pode acontecer que a transferência de dados falha por alguma razão. Neste caso, é recomendada a verifi cação do estado de alguns bit, que podem ajudar a clari- fi car o problema. Na prática, o estado destes bits é verifi cado através da execução de uma subrotina, depois da transmissão/recepção de um byte.
WCOL - SPCON,7 - Se se tentar escrever um novo byte para o SSPBUF, enquanto estiver em progresso uma
transmissão/recepção, o bit WCOL vai ser activado e o conteúdo do SSPBUF mantém-se inalterado. A escrita não ocorre e, depois disto, o WCOL deverá ser limpo por software.
BF - SSPSTAT,0 - No modo de transmissão, este bit é activado quando o CPU escreve para o SSPBUF, e
mantém-se activo enquanto o byte é deslocado para fora do registo SSPSR. No modo de recepção, este bit é activado quando um byte é carregado para o SSPBUF. É limpo quando o SSPBUF é lido.
SSPOC - SSPCON,6 - No modo de recepção, este bit é activado quando um novo byte é recebido pelo
SSPSR, quando o byte anterior ainda não foi lido do SSPBUF.
Pinos SDA e SCL - Quando o módulo SSP está activo, estes pinos transformam-se em saídas Open Drain
(Dreno Comum). Signifi ca que, estes pinos, devem ser ligados a resistências de Pull-Up (entre o pino e o terminal positivo da alimentação).
Resumidamente:
De maneira a estabelecer uma comunicação série no modo I2C, o seguinte tem que ser tomado em conta:
Ajustar o modo e enviar o endereço:
O valor que determina o Baud Rate, deve ser escrito para o registo SSPADD
Slew Rate - Controlo de interferências, deve ser desligado, limpando o bit SMP do registo SSPSTAT De modo a escolher modo Mestre, o valor binário 1000 deverá ser escrito nos bits SSPM3-SSPM0 do registo SSPCON
O bit SEN do registo SSPCON2 deverá ser activado - Condição START
O bit SSPIF é automaticamente activado no fi m do START, quando o módulo está pronto a funcionar. Deverá ser limpo por software
O endereço do Escravo deverá ser escrito para o SSPBUF
Quando o byte é enviado, o bit SSPIF é automaticamente activado quando o ACK é recebido do Escravo.
Transmissão de dados:
Os dados a enviar, deverão ser carregados no SSPBUF
Quando o byte é enviado, o bit SSPIF é automaticamente activado quando o ACK é recebido do Escravo De maneira a informar o Escravo que a transmissão está completa, uma condição de STOP deverá ser iniciada, activando o bit PEN no SSCON.
Recepção de dados:
De maneira a ligar a recepção de dados, o bit RSEN do SSPCON2 deverá ser activado
O bit SSPIF assinala a recepção de um byte. Quando o byte é lido do SSPBUF, o bit ACKEN do SSP- CON2 deverá ser activado, de maneira a enviar o bit de ACK
De maneira a informar o Escravo que a transmissão está completa, uma condição de STOP deverá ser iniciada, activando o bit PEN no SSCON.
• • • • • • • • • • • • •