revised vl53l0x XSHUT, GPIO setting for max 3 TOF sensors
This commit is contained in:
parent
02ba2481c7
commit
1c393d1043
|
@ -96,10 +96,21 @@ void MX_TOF_Init(void);
|
|||
#define TOF_C_INT_Pin GPIO_PIN_10
|
||||
#define TOF_C_INT_GPIO_Port GPIOA
|
||||
#define TOF_C_INT_EXTI_IRQn EXTI15_10_IRQn
|
||||
|
||||
#define TOF_C_XSHUT_Pin GPIO_PIN_3
|
||||
#define TOF_C_XSHUT_GPIO_Port GPIOB
|
||||
|
||||
#define TOF_L_INT_Pin GPIO_PIN_7
|
||||
#define TOF_L_INT_GPIO_Port GPIOC
|
||||
#define TOF_L_INT_EXTI_IRQn EXTI9_5_IRQn
|
||||
#define TOF_L_XSHUT_Pin GPIO_PIN_10
|
||||
#define TOF_L_XSHUT_GPIO_Port GPIOB
|
||||
|
||||
#define TOF_R_INT_Pin GPIO_PIN_10
|
||||
#define TOF_R_INT_GPIO_Port GPIOA
|
||||
#define TOF_R_INT_EXTI_IRQn EXTI15_10_IRQn
|
||||
#define TOF_R_XSHUT_Pin GPIO_PIN_5
|
||||
#define TOF_R_XSHUT_GPIO_Port GPIOB
|
||||
|
||||
#define STS_SERVICE_MASK_L0 (0) // Service normal , no mask off
|
||||
#define STS_SERVICE_MASK_L1 (1) // service mask level 1, sensing data upload in silence mode, node appearance silence (no LED, No display, no sound, no vibration)
|
||||
#define STS_SERVICE_MASK_L2 (2) // service mask level 2, NO sensing data upload (event or periodicity)
|
||||
|
|
|
@ -93,11 +93,21 @@ void MX_GPIO_Init(void)
|
|||
HAL_GPIO_Init(BUT1_GPIO_Port, &GPIO_InitStruct);
|
||||
|
||||
|
||||
/*Configure GPIO pins : TOF_C_INT_Pin TOF_R_INT_Pin */
|
||||
/*Configure GPIO pins : TOF_C_INT_Pin */
|
||||
GPIO_InitStruct.Pin = TOF_C_INT_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
HAL_GPIO_Init(TOF_C_INT_GPIO_Port, &GPIO_InitStruct);
|
||||
/*Configure GPIO pins : TOF_L_INT_Pin */
|
||||
GPIO_InitStruct.Pin = TOF_L_INT_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
HAL_GPIO_Init(TOF_L_INT_GPIO_Port, &GPIO_InitStruct);
|
||||
/*Configure GPIO pins : TOF_R_INT_Pin */
|
||||
GPIO_InitStruct.Pin = TOF_R_INT_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
HAL_GPIO_Init(TOF_R_INT_GPIO_Port, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pins : TOF_C_XSHUT_Pin */
|
||||
GPIO_InitStruct.Pin = TOF_C_XSHUT_Pin;
|
||||
|
@ -105,6 +115,19 @@ void MX_GPIO_Init(void)
|
|||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
HAL_GPIO_Init(TOF_C_XSHUT_GPIO_Port, &GPIO_InitStruct);
|
||||
/*Configure GPIO pins : TOF_L_XSHUT_Pin */
|
||||
GPIO_InitStruct.Pin = TOF_L_XSHUT_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
HAL_GPIO_Init(TOF_L_XSHUT_GPIO_Port, &GPIO_InitStruct);
|
||||
/*Configure GPIO pins : TOF_R_XSHUT_Pin */
|
||||
GPIO_InitStruct.Pin = TOF_R_XSHUT_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
HAL_GPIO_Init(TOF_R_XSHUT_GPIO_Port, &GPIO_InitStruct);
|
||||
|
||||
|
||||
/* EXTI interrupt init*/
|
||||
HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0);
|
||||
|
@ -115,7 +138,10 @@ void MX_GPIO_Init(void)
|
|||
|
||||
HAL_NVIC_SetPriority(TOF_C_INT_EXTI_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(TOF_C_INT_EXTI_IRQn);
|
||||
|
||||
HAL_NVIC_SetPriority(TOF_L_INT_EXTI_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(TOF_L_INT_EXTI_IRQn);
|
||||
HAL_NVIC_SetPriority(TOF_R_INT_EXTI_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(TOF_R_INT_EXTI_IRQn);
|
||||
}
|
||||
|
||||
/* USER CODE BEGIN 2 */
|
||||
|
|
|
@ -270,7 +270,7 @@ void STS_YunhornSTSEventP3_Process(void)
|
|||
void STS_YunhornSTSEventP4_Process(void)
|
||||
{
|
||||
STS_SENSOR_Power_ON(0);
|
||||
STS_SENSOR_Power_OFF(0);
|
||||
|
||||
APP_LOG(TS_OFF, VLEVEL_L, "\r\n P4 Testing Process\r\n");
|
||||
STS_TOF_VL53L0X_Range_Process();
|
||||
|
||||
|
@ -452,7 +452,7 @@ void STS_SENSOR_Power_ON(uint8_t cnt)
|
|||
#if (defined(YUNHORN_STS_M7_ENABLED) || defined(YUNHORN_STS_R0_ENABLED))
|
||||
HAL_GPIO_WritePin(MEMS_POWER_GPIO_Port, MEMS_POWER_Pin, GPIO_PIN_SET);
|
||||
#endif
|
||||
HAL_GPIO_WritePin(MEMS_POWER_GPIO_Port, MEMS_POWER_Pin, GPIO_PIN_SET);
|
||||
|
||||
|
||||
break;
|
||||
default:
|
||||
|
@ -469,7 +469,7 @@ void STS_SENSOR_Power_OFF(uint8_t cnt)
|
|||
#if (defined(YUNHORN_STS_M7_ENABLED) || defined(YUNHORN_STS_R0_ENABLED))
|
||||
HAL_GPIO_WritePin(MEMS_POWER_GPIO_Port, MEMS_POWER_Pin, GPIO_PIN_RESET);
|
||||
#endif
|
||||
HAL_GPIO_WritePin(MEMS_POWER_GPIO_Port, MEMS_POWER_Pin, GPIO_PIN_RESET);
|
||||
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
|
|
@ -196,13 +196,23 @@ int XWL55_WLE5_53L0X_Init(void)
|
|||
}
|
||||
|
||||
|
||||
void XWL55_WLE5_53L0X_Reset(void)
|
||||
void XWL55_WLE5_53L0X_ResetId(uint8_t DevNo, int state)
|
||||
{
|
||||
|
||||
HAL_GPIO_WritePin(TOF_C_XSHUT_GPIO_Port, TOF_C_XSHUT_Pin, GPIO_PIN_RESET);
|
||||
HAL_Delay(30);
|
||||
HAL_GPIO_WritePin(TOF_C_XSHUT_GPIO_Port, TOF_C_XSHUT_Pin, GPIO_PIN_SET);
|
||||
HAL_Delay(30);
|
||||
switch(DevNo) {
|
||||
case XNUCLEO53L0X_LEFT:
|
||||
HAL_GPIO_WritePin(TOF_L_XSHUT_GPIO_Port, TOF_L_XSHUT_Pin, ((state == 1)?GPIO_PIN_SET:GPIO_PIN_RESET));
|
||||
break;
|
||||
|
||||
case XNUCLEO53L0X_CENTER:
|
||||
HAL_GPIO_WritePin(TOF_C_XSHUT_GPIO_Port, TOF_C_XSHUT_Pin, ((state == 1)?GPIO_PIN_SET:GPIO_PIN_RESET)); break;
|
||||
|
||||
case XNUCLEO53L0X_RIGHT:
|
||||
HAL_GPIO_WritePin(TOF_R_XSHUT_GPIO_Port, TOF_R_XSHUT_Pin, ((state == 1)?GPIO_PIN_SET:GPIO_PIN_RESET)); break;
|
||||
default:
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -228,10 +228,8 @@ int XWL55_WLE5_53L0X_Init(void);
|
|||
* @param state State of the device reset (xsdn) pin @warning reset pin is active low
|
||||
* @return 0 on success
|
||||
*/
|
||||
int XNUCLEO53L1A1_ResetId(int DevNo, int state );
|
||||
|
||||
|
||||
void XWL55_WLE5_53L0X_Reset(void);
|
||||
void XWL55_WLE5_53L0X_ResetId(uint8_t DevNo, int state);
|
||||
|
||||
/**
|
||||
* Enable Disable interrupt at MCU level (MSP)
|
||||
|
@ -254,6 +252,7 @@ void XWL55_WLE5_53L0X_Reset(void);
|
|||
* >0 interrupt configured but with potential sharing on EXTI groups see @ref VL53L0X_GPIO1_MAP
|
||||
*/
|
||||
int XNUCLEO53L1A1_SetIntrStateId(int EnableIntr, int DevNo);
|
||||
int XWL55_WLE5_53L0X_SetIntrStateId(int EnableIntr, int DevNo);
|
||||
int sts_tof_vl53l0x_DetectSensors(void);
|
||||
|
||||
#endif /* _X_WL55_WLE5_53L0X_H_ */
|
||||
|
|
|
@ -131,19 +131,21 @@ int sts_tof_vl53l0x_DetectSensors(void)
|
|||
int FinalAddress;
|
||||
nDevPresent = 0;
|
||||
|
||||
XWL55_WLE5_53L0X_Reset();
|
||||
//HAL_GPIO_WritePin(TOF_C_XSHUT_GPIO_Port, TOF_C_XSHUT_Pin, GPIO_PIN_SET);
|
||||
//HAL_Delay(100);
|
||||
for (i=0; i < MAX_TOF_COUNT; i++) {
|
||||
XWL55_WLE5_53L0X_ResetId(i,0);
|
||||
}
|
||||
|
||||
//XWL55_WLE5_53L0X_SetIntrStateId(0,0);
|
||||
|
||||
/* detect all sensors (even on-board)*/
|
||||
for (i=0; i < MAX_TOF_COUNT; i++)
|
||||
{
|
||||
VL53L0X_Dev_t *pDev;
|
||||
pDev = &VL53L0XDevs[i];
|
||||
pDev->I2cDevAddr = 0x52;//+(i*2);
|
||||
pDev->I2cDevAddr = 0x52;
|
||||
pDev->Present = 0;
|
||||
//status = XNUCLEO53L0A1_ResetId(pDev->Id, 1);
|
||||
//HAL_Delay(2);
|
||||
XWL55_WLE5_53L0X_ResetId(pDev->Id, 1);
|
||||
HAL_Delay(2);
|
||||
FinalAddress = 0x52+(i+1)*2;
|
||||
|
||||
APP_LOG(TS_OFF, VLEVEL_L, "\r\n Detect TOF sensors #%u with I2CDevAddr=0x%02x \r\n", i, pDev->I2cDevAddr);
|
||||
|
@ -192,6 +194,9 @@ int sts_tof_vl53l0x_DetectSensors(void)
|
|||
}
|
||||
} while(0);
|
||||
/* Display detected sensor(s) */
|
||||
if (status) {
|
||||
XWL55_WLE5_53L0X_ResetId(i,0);
|
||||
}
|
||||
}
|
||||
|
||||
return nDevPresent;
|
||||
|
|
Loading…
Reference in New Issue