Hello;
I have not much experience about programming microcontrollers however I have a electronics background.
My task is to communicate with Sensirion_STH71_temp&humidity_sensor with a c2000 LaunchPad.
The sensor cannot be addressed by I2C protocol, however, the sensor can be connected to an I2C bus without interference with other devices connected to the bus. Microcontroller must switch between protocols. Therefore, I am going to use Free Data Format.
Because I do not have much experience. first I wanted to initialise the I2C module and check if the clock is there. Therefore I wrote the code below;
// Configure I2C communication pins (pin 28,29)
GPIO_setPullUp(myGpio, GPIO_Number_28, GPIO_PullUp_Enable);
GPIO_setPullUp(myGpio, GPIO_Number_29, GPIO_PullUp_Disable);
GPIO_setMode(myGpio, GPIO_Number_28, GPIO_28_Mode_SDDA);
GPIO_setMode(myGpio, GPIO_Number_29, GPIO_29_Mode_SCLA);
CLK_enableI2cClock(myClk); //enables I2C module clock
I2caRegs.I2CPSC.all = 6; // Prescaler - need 7-12 Mhz on module clk
I2caRegs.I2CCLKL = 10; // NOTE: must be non zero
I2caRegs.I2CCLKH = 5; // NOTE: must be non zero
I2caRegs.I2CIER.all = 0x24; // Enable SCD & ARDY interrupts
I2caRegs.I2CMDR.all = 0x0020; // Take I2C out of reset
I2caRegs.I2CMDR.bit.STT=1;
I2caRegs.I2CMDR.bit.MST=1;
I2caRegs.I2CMDR.bit.FDF =1;
I2caRegs.I2CMDR.bit.STB =1;
I2caRegs.I2CMDR.bit.IRS=1;
I2caRegs.I2CMDR.bit.TRX =1;
I2caRegs.I2CSTR.bit.XSMT = 1;
I2caRegs.I2CFFTX.all = 0x6000; // Enable FIFO mode and TXFIFO
I2caRegs.I2CFFRX.all = 0x2040; // Enable RXFIFO, clear RXFFINT,
But I do not measure a CLOCK SIGNAL. Is the I2C module has an power up option that I do not know. Or under which conditions the module starts to generate SCLA output?