No microcontrolador PIC18F4580, quando utilizado o I2C para operar a 100 KHz em modo master, apresenta uma instabilidade na geração do clock. A solução será armazenar no registo SSPADD (responsável pela configuração do BAUD RATE) um valor para operar em frequências próximas dos 100 KHz.
A seguir uma função para inicar o I2C em modo master, a funcionar a 133 KHz:
void openI2C(void)
{
SSPSTAT=0x00;
SSPSTATbits.SMP=1;
SSPADD=15;
SSPCON2=0x00;
SSPCON2bits.ACKDT=1;
SSPCON1=0b00101000;
DDRCbits.RC3=1;
Delay1TCY();
DDRCbits.RC4=1;
Delay10KTCYx(20);
}
quinta-feira, 2 de abril de 2009
Subscrever:
Mensagens (Atom)