11-09-2022 01:12 AM
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
Solved! Go to Solution.
11-10-2022 02:50 AM
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
11-10-2022 04:38 AM
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.
11-10-2022 05:01 AM
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?
11-10-2022 08:06 AM
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.