Bladeren bron

GPIO pins no pullUP/DN; CAM temporal adjusting

Yoojin Lim 2 jaren geleden
bovenliggende
commit
08a67002f9
4 gewijzigde bestanden met toevoegingen van 53 en 37 verwijderingen
  1. 7 4
      Core/Inc/ImC/imc_api.h
  2. 1 1
      Core/Src/ImC/imc_api.c
  3. 34 23
      Core/Src/main.c
  4. 11 9
      imc_freertos_app_m33.ioc

+ 7 - 4
Core/Inc/ImC/imc_api.h

@@ -40,14 +40,17 @@
 #define ENERGY_LV1_GPIO_PIN		GPIO_PIN_9
 #define ENERGY_LV2_GPIO_PIN		GPIO_PIN_10
 
+#define EPS_SBC_OFF_LEVEL		1					// 1~7
+
 #define	CAM_SHOT_PIN			GPIO_PIN_6
 
 #define	DELAY_IGNORE_REQ		(500)				// 500ticks
-#define DELAY_AFTER_POWERUP		(650)				// 650 ms; 2500 ms in manual
-#define DELAY_AFTER_CAPTURE		(200)				// 200 ms
-#define DELAY_AFTER_LENGTH		(0)					// 0
-#define DELAY_BEFORE_ERR_HANDLING	(10)			// 10 ms
+#define DELAY_AFTER_POWERUP		(650)				// 2500 ms in manual
+#define DELAY_AFTER_CAPTURE		(250)				//
+#define DELAY_AFTER_LENGTH		(50)				//
+#define DELAY_BEFORE_ERR_HANDLING	(50)			// 50 ms
 #define DELAY_GET_ENERGY_LEVEL	(3)					// 3 ms
+#define DELAY_AFTER_WORK		(50)				// 50ms
 
 #define IMG_RAM_ADDR			(0x68200000)
 #define IMG_BLK_SIZE			(256)

+ 1 - 1
Core/Src/ImC/imc_api.c

@@ -80,7 +80,7 @@ int32_t imc_sc03mpd_init (sc03mpd_ifx_t* ifx)
 	 */
 
 #if !CAM_FAST_READY
-	printf("[CAM] wait 0.5s for boot-up ..\r\n");
+	printf("[CAM] wait %dms for boot-up\r\n", DELAY_AFTER_POWERUP);
 	osDelay (DELAY_AFTER_POWERUP);
 #endif
 	//printf("[SC03MPD] init CAM ...\r\n");

+ 34 - 23
Core/Src/main.c

@@ -255,8 +255,8 @@ int main(void)
   printf("\r\n\r\n\r\n");
   printf("**************************\r\n");
   printf("** TEST APP INFORMATION **\r\n");
-  printf(" - SBC M33 freeRTOS, truztzone, CAM, AI, EPS\r\n");
-  printf(" - 2023. 6. 19. 10:00\r\n");
+  printf(" - SBC M33 freeRTOS, truztzone, CAM, EPS\r\n");
+  printf(" - 2023. 7. 13. 12:00\r\n");
   printf("**************************\r\n");
   printf("\r\n\r\n\r\n");
   /* after SBC boot-up, sbc power gpio pin should be ON */
@@ -937,10 +937,21 @@ static void MX_USART3_UART_Init(void)
   /* USER CODE END USART3_Init 0 */
 
   /* USER CODE BEGIN USART3_Init 1 */
-
+/*
+ * use below code if code is re-generated by .ioc modification
+#if CAM_CHANGE_BAUDRATE
+  huart3.Init.BaudRate = 38400;
+#else
+  huart3.Init.BaudRate = 115200;
+#endif
+*/
   /* USER CODE END USART3_Init 1 */
   huart3.Instance = USART3;
+#if CAM_CHANGE_BAUDRATE
+  huart3.Init.BaudRate = 38400;
+#else
   huart3.Init.BaudRate = 115200;
+#endif
   huart3.Init.WordLength = UART_WORDLENGTH_8B;
   huart3.Init.StopBits = UART_STOPBITS_1;
   huart3.Init.Parity = UART_PARITY_NONE;
@@ -1190,8 +1201,8 @@ static void MX_GPIO_Init(void)
   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
   HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
 
-  /*Configure GPIO pins : PF6 PF7 */
-  GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
+  /*Configure GPIO pins : PF6 PF7 PF11 */
+  GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_11;
   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
   GPIO_InitStruct.Pull = GPIO_NOPULL;
   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
@@ -1200,7 +1211,7 @@ static void MX_GPIO_Init(void)
   /*Configure GPIO pins : PF8 PF9 PF10 */
   GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10;
   GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
-  GPIO_InitStruct.Pull = GPIO_PULLDOWN;
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
   HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
 
   /*Configure GPIO pin : PB2 */
@@ -1210,13 +1221,6 @@ static void MX_GPIO_Init(void)
   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
   HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
 
-  /*Configure GPIO pin : PF11 */
-  GPIO_InitStruct.Pin = GPIO_PIN_11;
-  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
-  GPIO_InitStruct.Pull = GPIO_PULLDOWN;
-  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
-  HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
-
   /*Configure GPIO pins : PG6 PG15 */
   GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_15;
   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
@@ -1227,8 +1231,8 @@ static void MX_GPIO_Init(void)
   /*Configure GPIO pin : PC7 */
   GPIO_InitStruct.Pin = GPIO_PIN_7;
   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
-  GPIO_InitStruct.Pull = GPIO_PULLDOWN;
-  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
+  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
   HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
 
   /*Configure GPIO pin : PA8 */
@@ -1256,8 +1260,8 @@ static void MX_GPIO_Init(void)
   /*Configure GPIO pin : PG11 */
   GPIO_InitStruct.Pin = GPIO_PIN_11;
   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
-  GPIO_InitStruct.Pull = GPIO_PULLDOWN;
-  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
+  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
   HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
 
 /* USER CODE BEGIN MX_GPIO_Init_2 */
@@ -1292,7 +1296,7 @@ void taskEPSRunner(void *argument)
 			printf("[EPS] E Level: %d\r\n",
 					energy_level_curr);
 
-			if (energy_level_curr == 1)
+			if (energy_level_curr <= EPS_SBC_OFF_LEVEL)
 			{
 				imc_sbc_power_off(0);
 			}
@@ -1300,7 +1304,7 @@ void taskEPSRunner(void *argument)
 			energy_level_prev = energy_level_curr;
 		}
 
-		osDelay(10);
+		osDelay(DELAY_AFTER_WORK);
 	}
   /* USER CODE END 5 */
 }
@@ -1371,10 +1375,17 @@ void taskSnapRunner(void *argument)
 		 */
 		imc_cam_power_off(0);
 
-//		if (decodeMyImage((uint8_t*)IMG_RAM_ADDR, ilen, 0, 0, 0, NULL, 1) != DEC_ENON)
-//			goto ERROR;
+		/* DO SOMETHING */
+#if 0
+		if (decodeMyImage((uint8_t*)IMG_RAM_ADDR, ilen, 0, 0, 0, NULL, 1) != DEC_ENON)
+			goto ERROR;
+
 
 //		osSemaphoreRelease(full);
+#else
+		printf ("[SBC] wait %dms for next job\r\n", DELAY_AFTER_WORK);
+		osDelay(DELAY_AFTER_WORK);
+#endif
 
 		continue;
 
@@ -1386,7 +1397,7 @@ ERROR:
 		 * 2022. 11. 11. start of this while loop, CAM init is called
 		 */
 #if 1
-		printf("[CAM] ERROR HANDLING; CAM OFF > 10ms delay > CAM ON\r\n");
+		printf("[CAM] ERROR HANDLING; CAM OFF > %dms delay > CAM ON\r\n", DELAY_BEFORE_ERR_HANDLING);
 		imc_cam_power_off(0);
 //		osSemaphoreRelease(empty);
 
@@ -1420,7 +1431,7 @@ void taskAIRunner(void *argument)
   /* Infinite loop */
 	for(;;)
 	{
-	  osDelay(100);
+	  osDelay(DELAY_AFTER_WORK);
 	}
   /* USER CODE END taskAIRunner */
 }

+ 11 - 9
imc_freertos_app_m33.ioc

@@ -305,8 +305,9 @@ PC5.Mode=Asynchronous
 PC5.Signal=USART3_RX
 PC6.Locked=true
 PC6.Signal=GPIO_Output
-PC7.GPIOParameters=GPIO_PuPd
-PC7.GPIO_PuPd=GPIO_PULLDOWN
+PC7.GPIOParameters=GPIO_Speed,GPIO_PuPd
+PC7.GPIO_PuPd=GPIO_NOPULL
+PC7.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
 PC7.Locked=true
 PC7.Signal=GPIO_Output
 PD0.Signal=FMC_D2_DA2
@@ -346,11 +347,11 @@ PE9.Signal=FMC_D6_DA6
 PF0.Signal=FMC_A0
 PF1.Signal=FMC_A1
 PF10.GPIOParameters=GPIO_PuPd
-PF10.GPIO_PuPd=GPIO_PULLDOWN
+PF10.GPIO_PuPd=GPIO_NOPULL
 PF10.Locked=true
 PF10.Signal=GPIO_Input
 PF11.GPIOParameters=GPIO_PuPd
-PF11.GPIO_PuPd=GPIO_PULLDOWN
+PF11.GPIO_PuPd=GPIO_NOPULL
 PF11.Locked=true
 PF11.Signal=GPIO_Output
 PF12.Signal=FMC_A6
@@ -366,19 +367,20 @@ PF6.Signal=GPIO_Output
 PF7.Locked=true
 PF7.Signal=GPIO_Output
 PF8.GPIOParameters=GPIO_PuPd
-PF8.GPIO_PuPd=GPIO_PULLDOWN
+PF8.GPIO_PuPd=GPIO_NOPULL
 PF8.Locked=true
 PF8.Signal=GPIO_Input
 PF9.GPIOParameters=GPIO_PuPd
-PF9.GPIO_PuPd=GPIO_PULLDOWN
+PF9.GPIO_PuPd=GPIO_NOPULL
 PF9.Locked=true
 PF9.Signal=GPIO_Input
 PG0.Signal=FMC_A10
 PG1.Signal=FMC_A11
 PG10.Mode=NorPsramChipSelect3_3
 PG10.Signal=FMC_NE3
-PG11.GPIOParameters=GPIO_PuPd
-PG11.GPIO_PuPd=GPIO_PULLDOWN
+PG11.GPIOParameters=GPIO_Speed,GPIO_PuPd
+PG11.GPIO_PuPd=GPIO_NOPULL
+PG11.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
 PG11.Locked=true
 PG11.Signal=GPIO_Output
 PG12.Mode=NorPsramChipSelect4_4
@@ -436,7 +438,7 @@ ProjectManager.StackSize=0x400
 ProjectManager.TargetToolchain=STM32CubeIDE
 ProjectManager.ToolChainLocation=
 ProjectManager.UnderRoot=true
-ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_ADC1_Init-ADC1-false-HAL-true,4-MX_FDCAN1_Init-FDCAN1-false-HAL-true,5-MX_FMC_Init-FMC-false-HAL-true,6-MX_I2C1_Init-I2C1-false-HAL-true,7-MX_I2C3_Init-I2C3-false-HAL-true,8-MX_SDMMC1_SD_Init-SDMMC1-false-HAL-true,9-MX_SPI1_Init-SPI1-false-HAL-true,10-MX_SPI2_Init-SPI2-false-HAL-true,11-MX_TIM7_Init-TIM7-false-HAL-true,12-MX_UART4_Init-UART4-false-HAL-true,13-MX_USART1_UART_Init-USART1-false-HAL-true,14-MX_USART2_UART_Init-USART2-false-HAL-true,15-MX_USART3_UART_Init-USART3-false-HAL-true,16-MX_ICACHE_Init-ICACHE-false-HAL-true,17-MX_USB_Device_Init-USB_DEVICE-false-HAL-false,18-MX_GTZC_Init-GTZC-false-HAL-true,0-MX_PWR_Init-PWR-false-HAL-true
+ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_ADC1_Init-ADC1-false-HAL-true,4-MX_FDCAN1_Init-FDCAN1-false-HAL-true,5-MX_FMC_Init-FMC-false-HAL-true,6-MX_I2C1_Init-I2C1-false-HAL-true,7-MX_I2C3_Init-I2C3-false-HAL-true,8-MX_SPI1_Init-SPI1-false-HAL-true,9-MX_SPI2_Init-SPI2-false-HAL-true,10-MX_TIM7_Init-TIM7-false-HAL-true,11-MX_UART4_Init-UART4-false-HAL-true,12-MX_USART1_UART_Init-USART1-false-HAL-true,13-MX_USART2_UART_Init-USART2-false-HAL-true,14-MX_USART3_UART_Init-USART3-false-HAL-true,15-MX_ICACHE_Init-ICACHE-false-HAL-true,16-MX_USB_Device_Init-USB_DEVICE-false-HAL-false,17-MX_GTZC_Init-GTZC-false-HAL-true,0-MX_PWR_Init-PWR-false-HAL-true
 RCC.ADCFreq_Value=48000000
 RCC.AHBCLKDivider=RCC_SYSCLK_DIV2
 RCC.AHBFreq_Value=32000000