Hi Robin, This is an Hardware Step 1 Xilinx Zynq processor target with BMX160 sensor integrated. I updated the python application code as below and now I am able to get the response from the register 0x00 , however it is not reading the Chip ID as 0xD8 which is an expected Chip ID. Instead it is always reading 0x00. In addition when i check the drivers in /sys/bus/i2c/drivers path in linux debian OS , i could see that bmg160_i2c drivers are their and i tried binding them to the channel 0 and address 0x69 (0-0069). However currenty the issue still persisting where my chip id is always 0x00. Could you suggest me any inputs in this regard on where possibly we are going wrong or any specific checks which we need to do here. Python Code Snippet: import os import fcntl import time # I2C device file I2C_DEV = "/dev/i2c-0" # I2C address of the BMX160 IMU sensor BMX160_ADDR = 0x69 # Register addresses for chip ID and version CHIP_ID_ADDR = 0x00 def read_i2c_byte_data(i2c_fd, register_addr): os.write(i2c_fd, bytes([register_addr])) return os.read(i2c_fd, 1) # Open the I2C bus i2c_fd = os.open(I2C_DEV, os.O_RDWR) # Set the I2C slave address fcntl.ioctl(i2c_fd, 0x0703, BMX160_ADDR) #Add a delay time.sleep(1) # Read chip ID chip_id_data = read_i2c_byte_data(i2c_fd, CHIP_ID_ADDR) # Close the I2C bus os.close(i2c_fd) # Extract chip ID and version chip_id = int.from_bytes(chip_id_data, "big") # Print the chip ID print(f"Chip ID: 0x{chip_id:02X}") Output in Target: Drivers seen in Tagret i2c: Any inputs on this would be helpful
... View more