Bosch Sensortec Community

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

    BHI260AP: How to drive a GPIO via host interface?

    zkz
    New Poster

    BHI260AP: How to drive a GPIO via host interface?

    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

    Re: BHI260AP: How to drive a GPIO via host interface?

    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

    Re: BHI260AP: How to drive a GPIO via host interface?

    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.

    zkz
    New Poster

    Re: BHI260AP: How to drive a GPIO via host interface?

    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

    Re: BHI260AP: How to drive a GPIO via host interface?

    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