Estoy tratando de comunicarme con el dispositivo que tiene comunicación interna como I2C, mientras que externamente tiene dos pines diferentes para Entrada y amp; Salida junto con un pin separado para el reloj. Aquí está el link .
Estoy usando SPI para comunicarme con este dispositivo. Pero no puedo generar la condición START / STOP para comunicarme con el dispositivo I2C.
¿Puedo obtener alguna sugerencia para superar este problema?
Estoy usando la codificación C
Intenté golpear los bits como sigue
No sé si hay algún error lógico.
Aquí está la condición de inicio que estoy intentando implementar:
bool generateStartSeq()
{
SPI1STATbits.SPIEN = 0; // disable SPI port
// SPI1CON1bits.DISSCK = 1; // Internal SPIx clock is enabled
// SPI1STATbits.SPIEN = 1; // enable SPI port, clear status
AD1PCFG = 0xFFFF; // Convert IO pin to Digital
TRISFbits.TRISF6 = 0; // Configure RF6 pin as output;
TRISFbits.TRISF8 = 0; // Configure RF8 pin as output;
LATFbits.LATF6 = 1; // Make RF6 pin high
LATFbits.LATF8 = 1;
Nop;
Nop;
Nop;
Nop;
Nop;
LATFbits.LATF8 = 0;
// writeSPI1(0xFF); // SDO send data High
//
// Nop;
// Nop;
// Nop;
// Nop;
// Nop;
//
// writeSPI1(0x00);
SPI1Init();
return true;
}
Cualquier sugerencia realmente me ayudará a corregir la lógica.