Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BMA400 sensor interfacing with PIC18F97J60 controller using I2C communication

    BMA400 sensor interfacing with PIC18F97J60 controller using I2C communication

    New Poster


     I am using BMA400 sensor. I want to interface it with PIC18F97J60 controller using I2C communication. Can you explain me how to initiliaze the BMA400 sensor because it has many registers. What all the registers should I used to initialize the BMA400 sensor and also I need calculations to measure X,Y and Z axis.

    In hardware part how should i connect the BMA400 sensor to the controller? I have EVBBMA400 board.

    Can you give me the example code?

    Thank you.

    3 REPLIES 3

    Community Moderator
    Community Moderator

    Hi Roshan1512,

    You can refer to schematic in BMA400 data sheet

    BMA400 I2C diagram.png
    And refer to the official BMA400 software


    Thank you for your reply.

    I have many doubts. In my BMA400 sensor board I have pins called SDI and SDO , there is no specific SDA pin. Now, In my PIC18f97j60 controller I have SDA pin,to which pin I should connect . whether I should connect to SDI or SDO? In I2C mode, should I want to hardwired the CS pin? Can you give me pin description.

    In code, Can you explain step by step process. Mainly I need sensor initilization, What are the registers to initiliaze? It has lot of registers.

    I have already worked in sensor WSEN-ITDS 3 axis accelerometer sensor.

    void ACC_Sensor_Init(void)

    It has initialized like this and I am getting the datas properly.

    Like this can you give me what to initialize for BMA400 Sensor? Can you give me calculation to measure X,Y,Z axis?

    Community Moderator
    Community Moderator

    Hi Roshan1512,

    The SPI and I2C pins of BMA400 are multiplexed. As shown in the schematic in the data sheet, the SDA of I2C should be connected to the SDI pin of BMA400. In I2C mode, the CS pin of BMA400 should be connected to VDDIO.

    If you don't know how to operate BMA400 registers, we recommend using BMA400's sensor API&example directly, as it has encapsulated the process of accessing registers into an API, and you only need to call the API to access BMA400 registers.