2025-06-26 3:48 AM - last edited on 2025-06-27 10:42 AM by mƎALLEm
Hi , i am trying to read the sensor data of AIS2120x only for sensor ID type , i can see from the bus the data is transferred correctly, but i don't receive any data back from sensor rather its only 0.
i have attached the code snippet for this test, any leads will be helpful. JHo.1
@JHo.1 and @Eleon BORLINI @CJeff.1
CS_low();
Sensor_Write(0xD1,0x80,ubAisSensor ); // command to read address 0x0C/REG_ID_SENSOR_TYPE from AIS2120x
// according to 32 byte cmmand format
Sensor_Write(0x00,ubCrcVal,ubAisSensor );
CS_high();
CS_low();
Sensor_Write(0x8C,0x00,ubAisSensor ); // command to read address 0x0C/REG_ID_SENSOR_TYPE from AIS2120x
set_high();
//Sensor interface
void Sensor_Write(uint8 addr, uint8 Data,(uint8 Sensor) {
// application specific
spi_Write(addr);
delay();
spi_Write(Data);
}
//receive ISR
uint8 ubSpiStatus;
uint8 RxData;
_INTERRUPT_VOID SPI_vRxISR (void)
{
if(SPIS==0xA0)
{
RxData = SPID;
ubSpiStatus = 1;
}
}
spi_Write(uint8 addr, uint8 Data,uint8 ubAisSensor)
{
while (!(SPIS)); // Wait until transmit buffer is empty
SPID = data;
while(!ubSpiStatus);
ubSpiStatus = 0;
while (!(SPIS)); // Wait until transmit buffer is empty
SPID = data;
while(!ubSpiStatus);
ubSpiStatus = 0;
appl(RxData); //evaluate data
}
i use nxp 8 bit mcu : MC9S08SH32
MCU is 5v output, level shifter used between MCU and sensor to downgrade voltage to 3V3 ,
Solved! Go to Solution.
2025-06-27 6:13 AM
Its worked now(change is downscaled the spi clock to 500K), thanks all for the reply, but still i am not sure why the clock frequency must be less than 1Mhz even datasheet says 5Mhz.
2025-06-27 7:48 AM
The saga continues:
https://community.st.com/t5/mems-sensors/ais2120-reading-issue/m-p/817195