2025-08-25 7:08 PM - last edited on 2025-08-26 4:37 AM by Andrew Neil
Hi! Im doing my project using mpu6500 and I use hal_i2c_mem_read to read the WHOIMI register at 0x75 with the device address 0x69 (AOD to vcc) and I alway get the value 0x00. Why is that? is this module require something soldered to this pad (img) to turn on i2c protocol or what, please help me out.
2025-08-25 7:58 PM - edited 2025-08-25 7:59 PM
0x00 generally indicates the chip is not responding. Probably not wired up correctly.
Does HAL_I2C_IsDeviceReady return HAL_OK? Start there.
2025-08-25 8:21 PM
I wired only 5 pin vcc,gnd scl,sda, ado. did I miss the ncs ? isdeviceready also gave back 0x00
2025-08-26 4:27 AM
Can you show your code? I suspect incorrect hal_i2c_mem_read usage.
2025-08-26 4:36 AM - edited 2025-08-26 4:36 AM
Note that the mpu6500 is not an ST product - for specific support with that, you need to go to the manufacturer, TDK Invensense:
https://invensense.tdk.com/products/motion-tracking/6-axis/mpu-6500/
https://invensense.tdk.com/developers/login/?message=forums&redirect_to=forums
https://invensense.tdk.com/developers/login/?message=support&redirect_to=support
Are your pullups correct?
Have you looked at the I2C lines with an oscilloscope - are they good & clean?
Do they comply with what the mpu6500 datasheet tells you?
Are you using the correct I2C address?
Please post your hardware schematic, and code - see: How to write your question to maximize your chances to find a solution