Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 
    SOLVED

    BHI260AP: How to drive a GPIO via host interface?

    BHI260AP: How to drive a GPIO via host interface?

    zkz
    New Poster

    In one of our applications, our host MCU runs short of GPIOs. So we plan to use MCSB2-4 of BHP260AP as GPIO expansion.

    It looks like we can change the gpio line in xxx.cfg to configure the initial state of the GPIOs. However, I could not find a way to control those GPIOs from my host MCU.

    Any suggestions or pointers?

    Thanks

    ZKZ

    4 REPLIES 4

    zkz
    New Poster

    After a bit more reading, I come up with the following method using Physical Sensor Control Parameters:

    BHI260 side: create a physical sensor driver implementing set_sensor_ctl function, which calls setGPIOHigh/Low() according to HIF commands.

    Host side: calls bhy2_hif_set_sensor_ctrl() to control which GPIO to manipulate.

    Can anyone confirm if that is the right approach?

    Thanks

    BSTRobin
    Community Moderator
    Community Moderator

    Hi zkz,

    The GPIO of BHI260AP couldn'be be directly accessed through the sensor API interface.

    You need to download the SDK of BHI260AP from here https://www.bosch-sensortec.com/products/smart-sensors/bhi260ap/, and refer to SENSOR_TYPE_EXLED example in SDK to access GPIO port.

    Hi BSTRobin,

    I did read the ExLed example code. I understand I can manipulate GPIO from within BHI260 FW by calling setGPIOHigh/Low(gpio).

    But I need to control the GPIOs from host. So I am thinking to use HIF bhy2_hif_set_sensor_ctrl() from the host side to set physical sensor parameters, and in BHI260 FW, I hook up .set_sensor_ctl in sensor descriptor, which in turn calls setGPIOHigh/Low.

    Please see my previous post for that.

    Is that the right way?

    BSTRobin
    Community Moderator
    Community Moderator

    Hi zkz,

    The simplest method is to use the example of LED. The host side enable the LED virtual sensor ID, and controls GPIO through bhy2_set_virt_sensor_cfg() interface, setting sample_rate to change the control GPIO high or low.

    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