• Aucun résultat trouvé

Dipole response and polarizability in 48 Ca

Dans le document The DART-Europe E-theses Portal (Page 52-60)

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.

• • • • • • • • • • • • •

Dans le document The DART-Europe E-theses Portal (Page 52-60)