Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 

    I can't get BMX160 CHIPID using STM32 SPI

    I can't get BMX160 CHIPID using STM32 SPI

    zx556605
    New Poster

    I tried to use STM32 MCU to use SPI to communicate with BMX160, but I can't get CHIPID, I already use github bmi.h and bmi.c files, please tell me which part is missing to read CHIPID normally

    16 REPLIES 16

    fish
    Community Moderator
    Community Moderator

    Hi

    BMIX60 prilimary interface defaut is I2C, need switch to SPI. Usually  we using a dummy ready to change the interface to SPI. You could refer to chapter 3.1 in BMX160 datasheet.  The read chip id process as bellow.bmi160 read chipid 2020-06-09_11h19_53.png

     

    您好魚
    我已閱讀數據表
    要使用SPI,CSB需要一個上升信號
    我已經將CSB設置為具有上升信號
    結果是錯誤代碼rslt = -3(BMI160_E_DEV_NOT_FOUND)

    *In bmc.c file bmi160_init() function,
    if ((rslt == BMI160_OK) && (dev->chip_id == BMI160_CHIP_ID))
    This line will not be established!! rslt = -3 (BMI160_E_DEV_NOT_FOUND)
    If you look at the if judgment separately, the first half (rslt == BMI160_OK) is established,
    But the second half dev->chip_id == BMI160_CHIP_ID) is not established.
    dev->chip_id=0
    BMI160_CHIP_ID = 0xD8
    Why can't my dev->chip_id = 0xD8
    *對不起,請問我應該使用PIN SPI VDDIO
    以下是我的接線

    MCU <--------------------------> BMX160
    -------------------- ------------------------
    VDD ------------------------- -> VDD(3.3 V)
    MISO -------------------------> MISO                  
    MOSI -------------- -----------> MOSI
    CLK ---------------------------> CLK
    GPIO_輸出------ -------> CS
                                                    VDDID ----> VDD(BMX160 VDDVDD)

    fish
    Community Moderator
    Community Moderator

    Hi,

    I think you could check MISO & MOSI connection. Meanwhile, VDD&VDDIO can powered by 3.3V.

    You had better check the SPI waveform with logic analyzer tool or oscilloscope.

    MCU <--------------------------> BMX160
    -------------------- ------------------------
    VDD ------------------------- -> VDD(3.3 V)
    MISO <------------------------- SDO(PIN  1)
    MOSI -------------- -----------> SDX (PIN 14)
    CLK ---------------------------> SCX(PIN 13)
    GPIO_輸出------ -------> CS
    VDDID ----> VDD(BMX160 VDDVDD)

     

     

    I run bmi_init (   )

    get rslt =-3 

    *In bmc.c file bmi160_init() function,
    if ((rslt == BMI160_OK) && (dev->chip_id == BMI160_CHIP_ID))
    This line will not be established!! rslt = -3 (BMI160_E_DEV_NOT_FOUND)
    If you look at the if judgment separately, the first half (rslt == BMI160_OK) is established,
    But the second half dev->chip_id == BMI160_CHIP_ID) is not established.
    dev->chip_id=0
    BMI160_CHIP_ID = 0xD8

    fish
    Community Moderator
    Community Moderator

    Hi,

    rslt == BMI160_OK, just prove the param dev of function int8_t bmi160_init(struct bmi160_dev *dev) isn't NULL pointer.

    Would you please provide SPI waveform during read BMX160 chip id?

     

    Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist