PIC18F MODO i2C
OPERAÇÃO
As funções do modulo MSSP são ativadas pela configuração dos bits, SSPEN (SSPCON).
O registrador SSPCON1 faz o controle das operações com o i2C. Cinco modos podem ser selecionado pelos bits (SSPCON) que aceita um dos modos i2C abaixo:
• I2C Master mode, clock = (FOSC/4) x (SSPADD + 1)
• I2C Slave mode (7-bit address)
• I2C Slave mode (10-bit address)
• I2C Slave mode (7-bit address) with Start and Stop bit interrupts enabled
• I2C Slave mode (10-bit address) with Start and Stop bit interrupts enabled
• I2C Firmware Controlled Master mode, slave is Idle
Selecionando um dos modos i2C com a configuração do bit SSPEN, força os pinos SCL e DAS a ficarem como open-drain e são programados como entradas através da configuração dos bits TRIC. Para garantir o correto funcionamento do módulo, resistores pull-up devem ser colocados aos pinos SCL e DAS.
SLAVE MODE
No modo Slave, os pinos SCL e DAS são configurados como entrada (TRISC config). O modulo MSSP vai substituir os estados de entrada dos pinos para estado de saída quando esses forem requisitados a transmitir dados(transmissão do slave).
O hardware do modo Slave i2C sempre vai gerar uma interrupção em algum endereço correspondente. Através do modo de seleção de bits, o usuário pode escolher interrupções Start e STOP. Quando o endereço é correspondido, ou um dado é transmitido após o recebimento do endereço, o hardware automaticamente chama e gera o pulso Acknowledge(ACK) e lê o registrador SSPBUF com o valor correto recebido do registrador SSPSR.
Qualquer combinação das seguintes condições pode fazer o módulo MSSP a não gerar esse pulso ACK:
• O Bufter Full bit, BF (SSPSTAT ), foi definido antes da transferência como recebido.
• O bit overflow, SSPOV (SSPCON ), foi definido antes da transferência como recebido.
Nesse caso, o valor do registrador SSPSR não é lido no SSPBUF, mas o bit SSPIF (PIR1) é definido. O bit BF é limpo através de uma leitura do registrador SSPBUF,