diff --git a/.gitignore b/.gitignore index cd531cf..f29c36d 100644 --- a/.gitignore +++ b/.gitignore @@ -51,4 +51,7 @@ modules.order Module.symvers Mkfile.old dkms.conf +*.mxproject +*.extsettings +*.cyclo diff --git a/Core/Inc/main.h b/Core/Inc/main.h index b9f7703..0c5bbc0 100644 --- a/Core/Inc/main.h +++ b/Core/Inc/main.h @@ -92,6 +92,13 @@ void MX_TOF_Init(void); #define USARTx_TX_Pin GPIO_PIN_2 #define USARTx_TX_GPIO_Port GPIOA +#if defined(STM32WLE5xx) || defined(STM32WL55xx) +#define I2C2_SCL_PIN GPIO_PIN_12 +#define I2C2_SDA_PIN GPIO_PIN_11 +#define I2C2_SCL_PORT GPIOA +#define I2C2_SDA_PORT GPIOA +#endif + /* USER CODE BEGIN Private defines */ #define TOF_C_INT_Pin GPIO_PIN_10 #define TOF_C_INT_GPIO_Port GPIOA diff --git a/Core/Inc/yunhorn_sts_sensors.h b/Core/Inc/yunhorn_sts_sensors.h index 64fbaca..ba89f8a 100644 --- a/Core/Inc/yunhorn_sts_sensors.h +++ b/Core/Inc/yunhorn_sts_sensors.h @@ -180,7 +180,7 @@ enum sts_ctrl_cmd_tune_para{ #if (defined(YUNHORN_STS_R0_ENABLED) || defined(YUNHORN_STS_R1_ENABLED) || defined(YUNHORN_STS_R2_ENABLED) || defined(YUNHORN_STS_R5_ENABLED)) typedef struct { - uint16_t distance_mm; /*measured distance in mm, min=0mm, max=2500mm. */ + uint16_t distance_mm; /*Default distance sensor measured distance in mm, min=0mm, max=2500mm. */ uint16_t battery_mV; /*mV, 1000mv-5000mv, regular 3300mV - 3600mV --4200mV */ uint8_t on_off_event; /* 1: liquid sensed, 0: no liquid sensed */ @@ -188,8 +188,8 @@ typedef struct uint8_t distance_mm_h; /*MSB */ uint8_t distance_mm_l; /*LSB max=255 mm for short range measure */ - uint16_t distance1_mm; - uint16_t distance2_mm; + uint16_t distance1_mm; /* Additional #1 distance sensor */ + uint16_t distance2_mm; /* Additional #2 distance sensor */ uint8_t battery_Pct; /* % of battery two digits, 88% (00-99)% */ uint8_t dutycycletimelevel; /* level=0,255 */ diff --git a/LoRaWAN/App/lora_app.c b/LoRaWAN/App/lora_app.c index 1f45b86..93c1c57 100644 --- a/LoRaWAN/App/lora_app.c +++ b/LoRaWAN/App/lora_app.c @@ -766,7 +766,7 @@ static void SendTxData(void) STS_R0_SensorDataTypeDef r0_data; UTIL_TIMER_Time_t nextTxIn = 0; - APP_LOG(TS_ON, VLEVEL_L, "\r\n Flag: Heart-beat-timer = %u \r\n upload_message_timer %u \r\n sensor_data_ready = %u \r\n", + APP_LOG(TS_ON, VLEVEL_H, "\r\n Flag: Heart-beat-timer = %u \r\n upload_message_timer %u \r\n sensor_data_ready = %u \r\n", heart_beat_timer, upload_message_timer, sensor_data_ready); @@ -800,7 +800,7 @@ static void SendTxData(void) { heart_beat_timer = 0; AppData.Port = LORAWAN_USER_HTBT_PORT; //LORAWAN_USER_APP_PORT+1; - APP_LOG(TS_ON, VLEVEL_L, "\r\n------------ Heart-Beat ------------- \r\n ------------------\r\nDistance0 = %d mm, \r\nDistance1 = %d mm,\r\nDistance2 = %d mm, \r\nVBAT=%d\r\n", + APP_LOG(TS_ON, VLEVEL_H, "\r\n------------ Heart-Beat ------------- \r\n ------------------\r\nDistance0 = %d mm, \r\nDistance1 = %d mm,\r\nDistance2 = %d mm, \r\nVBAT=%d\r\n", r0_data.distance_mm,r0_data.distance1_mm,r0_data.distance2_mm, r0_data.battery_Pct); } else if ((upload_message_timer)||(sensor_data_ready)) //sensor_data_ready for manual push button-1 trigger) @@ -816,7 +816,7 @@ static void SendTxData(void) AppData.Buffer[i++] = (uint8_t)(r0_data.distance2_mm >>8)&0xff; //#09 AppData.Buffer[i++] = (uint8_t)(r0_data.distance2_mm)&0xff; //#10 - APP_LOG(TS_ON, VLEVEL_L, "\r\n------------ Heart-Beat ------------- \r\n ------------------\r\nDistance0 = %d mm, \r\nDistance1 = %d mm,\r\nDistance2 = %d mm, \r\nVBAT=%d\r\n", + APP_LOG(TS_ON, VLEVEL_H, "\r\n------------ Heart-Beat ------------- \r\n ------------------\r\nDistance0 = %d mm, \r\nDistance1 = %d mm,\r\nDistance2 = %d mm, \r\nVBAT=%d\r\n", r0_data.distance_mm,r0_data.distance1_mm,r0_data.distance2_mm, r0_data.battery_Pct); } diff --git a/TOF/App/X-WL55_WLE5_53L0X.c b/TOF/App/X-WL55_WLE5_53L0X.c index c005d62..2827564 100644 --- a/TOF/App/X-WL55_WLE5_53L0X.c +++ b/TOF/App/X-WL55_WLE5_53L0X.c @@ -162,9 +162,28 @@ int XWL55_WLE5_53L0X_SetIntrStateId(int EnableIntr, int DevNo) int status; IRQn_Type IntrNo; int IntrPin; - + switch (DevNo){ + case 0: + IntrNo = VL53L0X_GPIO1_L_INTx; + IntrPin= VL53L0X_GPIO1_L_GPIO_PIN; + break; + case 1: + IntrNo = VL53L0X_GPIO1_C_INTx; + IntrPin= VL53L0X_GPIO1_C_GPIO_PIN; + break; + case 2: + IntrNo = VL53L0X_GPIO1_R_INTx; + IntrPin= VL53L0X_GPIO1_R_GPIO_PIN; + break; + + default: + break; + + } + /* IntrNo = VL53L0X_GPIO1_C_INTx; IntrPin= VL53L0X_GPIO1_C_GPIO_PIN; + */ status = 0; if( EnableIntr ){ diff --git a/TOF/App/X-WL55_WLE5_53L0X.h b/TOF/App/X-WL55_WLE5_53L0X.h index 340a94e..89eba02 100644 --- a/TOF/App/X-WL55_WLE5_53L0X.h +++ b/TOF/App/X-WL55_WLE5_53L0X.h @@ -135,13 +135,22 @@ extern void XNUCLEO53L1A1_USART2_UART_Init(void); #define VL53L0X_GPIO1_C_OPTION 1 #endif - +/* ############ FOR SHARED GPIO1 INTR TO MCU ###### */ #define VL53L0X_GPIO1_C_GPIO_PORT GPIOA #define VL53L0X_GPIO1_C_CLK_ENABLE __GPIOA_CLK_ENABLE #define VL53L0X_GPIO1_C_GPIO_PIN GPIO_PIN_10 - #define VL53L0X_GPIO1_C_INTx EXTI15_10_IRQn +#define VL53L0X_GPIO1_L_GPIO_PORT GPIOA +#define VL53L0X_GPIO1_L_CLK_ENABLE __GPIOA_CLK_ENABLE +#define VL53L0X_GPIO1_L_GPIO_PIN GPIO_PIN_10 +#define VL53L0X_GPIO1_L_INTx EXTI15_10_IRQn + +#define VL53L0X_GPIO1_R_GPIO_PORT GPIOA +#define VL53L0X_GPIO1_R_CLK_ENABLE __GPIOA_CLK_ENABLE +#define VL53L0X_GPIO1_R_GPIO_PIN GPIO_PIN_10 +#define VL53L0X_GPIO1_R_INTx EXTI15_10_IRQn +/* ############ FOR SHARED GPIO1 INTR TO MCU ###### */ /** @} */ /* defgroup L53L1A1_GPIO1_MAP */ diff --git a/TOF/App/app_tof_vl53l0x_range.c b/TOF/App/app_tof_vl53l0x_range.c index c04f02a..11b8a8a 100644 --- a/TOF/App/app_tof_vl53l0x_range.c +++ b/TOF/App/app_tof_vl53l0x_range.c @@ -133,10 +133,9 @@ int sts_tof_vl53l0x_DetectSensors(void) for (i=0; i < MAX_TOF_COUNT; i++) { XWL55_WLE5_53L0X_ResetId(i,0); + XWL55_WLE5_53L0X_SetIntrStateId(1,i); } - XWL55_WLE5_53L0X_SetIntrStateId(0,0); - /* detect all sensors (even on-board)*/ for (i=0; i < MAX_TOF_COUNT; i++) { @@ -145,19 +144,19 @@ int sts_tof_vl53l0x_DetectSensors(void) pDev->I2cDevAddr = 0x52; pDev->Present = 0; XWL55_WLE5_53L0X_ResetId(pDev->Id, 1); - HAL_Delay(30); + HAL_Delay(3); 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); + //APP_LOG(TS_OFF, VLEVEL_H, "\r\n Detect TOF sensors #%u with I2CDevAddr=0x%02x \r\n", i, pDev->I2cDevAddr); do { /* Set I2C standard mode (400 KHz) before doing the first register access */ //if (status == VL53L0X_ERROR_NONE) - status = VL53L0X_WrByte(pDev, 0x88, 0x00); + //status = VL53L0X_WrByte(pDev, 0x88, 0x00); /* Try to read one register using default 0x52 address */ status = VL53L0X_RdWord(pDev, VL53L0X_REG_IDENTIFICATION_MODEL_ID, &Id); - APP_LOG(TS_OFF, VLEVEL_L, "#%u read id = %04x I2C ADDR=0x%2X\r\n",i, Id, pDev->I2cDevAddr); + //APP_LOG(TS_OFF, VLEVEL_H, "#%u read id = %04x I2C ADDR=0x%2X\r\n",i, Id, pDev->I2cDevAddr); if (status) { APP_LOG(TS_OFF, VLEVEL_L, "# Read id fail\n"); break; @@ -175,12 +174,12 @@ int sts_tof_vl53l0x_DetectSensors(void) status = VL53L0X_DataInit(pDev); if( status == 0 ){ pDev->Present = 1; - APP_LOG(TS_OFF, VLEVEL_L, "#%u VL53L0X_SetDeviceAddress to 0x%02x\r\n",i, pDev->I2cDevAddr); + //APP_LOG(TS_OFF, VLEVEL_H, "#%u VL53L0X_SetDeviceAddress to 0x%02x\r\n",i, pDev->I2cDevAddr); nDevPresent++; nDevMask |= 1 << i; pDev->Present = 1; - APP_LOG(TS_OFF, VLEVEL_L, "VL53L0X %d Present and initiated to final 0x%2x, Position Mask=0x%02x\r\n", pDev->Id, pDev->I2cDevAddr, nDevMask); + //APP_LOG(TS_OFF, VLEVEL_H, "VL53L0X %d Present and initiated to final 0x%2x, Position Mask=0x%02x\r\n", pDev->Id, pDev->I2cDevAddr, nDevMask); } else{ @@ -222,7 +221,7 @@ void sts_tof_vl53l0x_SetupSingleShot(RangingConfig_e rangingConfig) if( VL53L0XDevs[i].Present){ - APP_LOG(TS_OFF, VLEVEL_L, "\r\n ###### Starting Range #%u sensor \r\n",i); + //APP_LOG(TS_OFF, VLEVEL_H, "\r\n ###### Starting Range #%u sensor \r\n",i); status=VL53L0X_StaticInit(&VL53L0XDevs[i]); if( status ){ @@ -344,7 +343,7 @@ void STS_TOF_VL53L0X_Range_Process(void) if ((nDevMask ==0) || (nSensorPresent ==0)) { nSensorPresent = sts_tof_vl53l0x_DetectSensors(); // confirm sensor online - APP_LOG(TS_OFF, VLEVEL_L, "\r\n %u pcs sensor(s) online \r\n", nSensorPresent); + APP_LOG(TS_OFF, VLEVEL_H, "\r\n %u pcs sensor(s) online \r\n", nSensorPresent); } if (nSensorPresent > 0) @@ -378,7 +377,7 @@ void STS_TOF_VL53L0X_Range_Process(void) HAL_Delay(30); } // for i < MAX_TOF_COUNT - APP_LOG(TS_OFF, VLEVEL_L, "\r\n## Measured Range: \r\nTOF #0 = %4u mm, \r\nTOF #1 = %4u mm, \r\nTOF #2 = %4u mm\r\n", + APP_LOG(TS_OFF, VLEVEL_H, "\r\n## Measured Range: \r\nTOF #0 = %4u mm, \r\nTOF #1 = %4u mm, \r\nTOF #2 = %4u mm\r\n", (int)sts_tof_distance_data[0],(int)sts_tof_distance_data[1],(int)sts_tof_distance_data[2]); } // nSensorPresent >0 }