Changeset 26 for trunk/fw_g473rct/Core
- Timestamp:
- Sep 8, 2025, 6:57:30 PM (7 weeks ago)
- Location:
- trunk/fw_g473rct/Core/Src
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/fw_g473rct/Core/Src/adc.c
r25 r26 66 66 hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START; 67 67 hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; 68 hadc1.Init.DMAContinuousRequests = ENABLE;68 hadc1.Init.DMAContinuousRequests = DISABLE; 69 69 hadc1.Init.Overrun = ADC_OVR_DATA_OVERWRITTEN; 70 70 hadc1.Init.OversamplingMode = ENABLE; … … 92 92 sConfig.Channel = ADC_CHANNEL_1; 93 93 sConfig.Rank = ADC_REGULAR_RANK_1; 94 sConfig.SamplingTime = ADC_SAMPLETIME_ 92CYCLES_5;94 sConfig.SamplingTime = ADC_SAMPLETIME_6CYCLES_5; 95 95 sConfig.SingleDiff = ADC_DIFFERENTIAL_ENDED; 96 96 sConfig.OffsetNumber = ADC_OFFSET_NONE; … … 132 132 hadc2.Init.NbrOfConversion = 1; 133 133 hadc2.Init.DiscontinuousConvMode = DISABLE; 134 hadc2.Init.DMAContinuousRequests = ENABLE;134 hadc2.Init.DMAContinuousRequests = DISABLE; 135 135 hadc2.Init.Overrun = ADC_OVR_DATA_OVERWRITTEN; 136 136 hadc2.Init.OversamplingMode = ENABLE; … … 148 148 sConfig.Channel = ADC_CHANNEL_3; 149 149 sConfig.Rank = ADC_REGULAR_RANK_1; 150 sConfig.SamplingTime = ADC_SAMPLETIME_ 92CYCLES_5;150 sConfig.SamplingTime = ADC_SAMPLETIME_6CYCLES_5; 151 151 sConfig.SingleDiff = ADC_DIFFERENTIAL_ENDED; 152 152 sConfig.OffsetNumber = ADC_OFFSET_NONE; … … 438 438 hdma_adc1.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD; 439 439 hdma_adc1.Init.MemDataAlignment = DMA_MDATAALIGN_WORD; 440 hdma_adc1.Init.Mode = DMA_ CIRCULAR;440 hdma_adc1.Init.Mode = DMA_NORMAL; 441 441 hdma_adc1.Init.Priority = DMA_PRIORITY_LOW; 442 442 if (HAL_DMA_Init(&hdma_adc1) != HAL_OK) … … 491 491 hdma_adc2.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD; 492 492 hdma_adc2.Init.MemDataAlignment = DMA_MDATAALIGN_WORD; 493 hdma_adc2.Init.Mode = DMA_ CIRCULAR;493 hdma_adc2.Init.Mode = DMA_NORMAL; 494 494 hdma_adc2.Init.Priority = DMA_PRIORITY_LOW; 495 495 if (HAL_DMA_Init(&hdma_adc2) != HAL_OK) -
trunk/fw_g473rct/Core/Src/gpio.c
r25 r26 94 94 HAL_GPIO_Init(ADC_DATA_READY_GPIO_Port, &GPIO_InitStruct); 95 95 96 /*Configure GPIO pins : FAULT_Pin COM_POWERPRO_RES_Pin */ 97 GPIO_InitStruct.Pin = FAULT_Pin|COM_POWERPRO_RES_Pin; 96 /*Configure GPIO pin : FAULT_Pin */ 97 GPIO_InitStruct.Pin = FAULT_Pin; 98 GPIO_InitStruct.Mode = GPIO_MODE_INPUT; 99 GPIO_InitStruct.Pull = GPIO_PULLUP; 100 HAL_GPIO_Init(FAULT_GPIO_Port, &GPIO_InitStruct); 101 102 /*Configure GPIO pin : COM_POWERPRO_RES_Pin */ 103 GPIO_InitStruct.Pin = COM_POWERPRO_RES_Pin; 98 104 GPIO_InitStruct.Mode = GPIO_MODE_INPUT; 99 105 GPIO_InitStruct.Pull = GPIO_NOPULL; 100 HAL_GPIO_Init( GPIOB, &GPIO_InitStruct);106 HAL_GPIO_Init(COM_POWERPRO_RES_GPIO_Port, &GPIO_InitStruct); 101 107 102 108 /* EXTI interrupt init*/ -
trunk/fw_g473rct/Core/Src/main.c
r25 r26 183 183 } 184 184 185 LoadBackupRegister(); 186 187 185 188 // Modbus Initialisierung 186 189 mbInit(&modbusData, sys_data.s.parameter.baudrate, sys_data.s.parameter.parityMode, sys_data.s.parameter.stopBit, &huart2); … … 241 244 } 242 245 243 LoadBackupRegister();246 244 247 /* USER CODE END 2 */ 245 248 … … 255 258 //Mit ADC_DIV2,Sample time 12,5Cycklen, ADC Clock 50Mhz, Oversampling 256 256 259 //Tconv = 6400 Takte = 0,128ms Pro Konvertierung. Also für 100 messwerte 12,8mS 257 BATTERY_VOLTAGE_Exec( adc12Data[0][1]); 258 FAST_CURRENT_Exec(adc12Data[0][0]); 259 sys_data.s.values.esrCalcStatus = ESR_FAST_Exec(); 260 BATTERY_VOLTAGE_Exec( adc12Data[SAMPLE_ARRAY_SIZE-1][1]); 261 FAST_CURRENT_Exec(adc12Data[SAMPLE_ARRAY_SIZE-1][0]); 262 ESR_FAST_Exec(); 263 sys_data.s.values.batteryPower = ((int64_t) sys_data.s.values.batteryVoltage * (int64_t)sys_data.s.values.batteryCurrent) / 1000LL; 264 sys_data.s.values.power_Fast = ((int64_t) sys_data.s.values.batteryVoltage * (int64_t)sys_data.s.values.fast_current) / 1000LL; 260 265 newADC12Data = 0; 266 267 268 if (HAL_ADCEx_MultiModeStart_DMA(&hadc1,(uint32_t *)adc12Data,SAMPLE_ARRAY_SIZE)) //Start ADC interleaved mode 269 { 270 /* Start Error */ 271 Error_Handler(); 272 } 261 273 262 274 } … … 287 299 { 288 300 ADS1260_ConversionFinished(); 289 ESR_Exec();301 sys_data.s.values.esrCalcStatus = ESR_Exec(); 290 302 291 303 newCurrentValue = 0; … … 316 328 317 329 sys_data.s.values.onTime++; 330 sys_data.s.values.lastTimeVbatEmpty++; 331 sys_data.s.values.lastTimeVbatFull++; 318 332 // Funktions Led blinken 319 333 if (silentmode == 0) … … 358 372 case COMMAND_STORE_WITH_SERIAL_NUMBER: EEPROM_storeConfig(&sys_data,1); break; // Seriennummer schreiben 359 373 case COMMAND_RESTART: NVIC_SystemReset(); break; 360 case COMMAND_BATTERY_CURRENT_OFFSET_CAL: ADS_1260_BatteryCurrentOffsetCalibrationStart(&sys_data); break; 374 case COMMAND_BATTERY_CURRENT_OFFSET_CAL: 375 ADS_1260_BatteryCurrentOffsetCalibrationStart(&sys_data); 376 CurrentOffsetCal(adc12Data[SAMPLE_ARRAY_SIZE - 1][0]); 377 break; 361 378 case COMMAND_BATTERY_CURRENT_OFFSET_COMMONMODE_CAL: ADS_1260_BatteryCurrentOffsetCommonModeErrorComepensationStart(&sys_data); break; 362 379 case COMMAND_BATTERY_CURRENT_OFFSET_TEMP_CAL: ADS_1260_BatteryCurrentOffsetTemperatureErrorComepensationStart(); break; 363 case COMMAND_BATTERY_CURRENT_GAIN_CAL: ADS_1260_BatteryCurrentGainCalibrationStart(&sys_data); break; 380 case COMMAND_BATTERY_CURRENT_GAIN_CAL: 381 ADS_1260_BatteryCurrentGainCalibrationStart(&sys_data); 382 CurrentGainCal(adc12Data[SAMPLE_ARRAY_SIZE - 1][0]); 383 break; 364 384 case COMMAND_BATTERY_CURRENT_GAIN_TEMP_SHUNT_CAL: ADS_1260_BatteryCurrentGainTemperatureCalibrationShuntStart(); break; 365 385 // case COMMAND_BATTERY_CURRENT_GAIN_TEMP_CHIP_CAL: ADS_1260_BatteryCurrentGainTemperatureCalibrationChipStart(); break; … … 450 470 RCC_OscInitStruct.PLL.PLLM = RCC_PLLM_DIV2; 451 471 RCC_OscInitStruct.PLL.PLLN = 16; 452 RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV 4;472 RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV8; 453 473 RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV2; 454 474 RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2; … … 480 500 printf("BackupRegisterData available\r\n"); 481 501 sys_data.s.values.dischargeTotalAh = HAL_RTCEx_BKUPRead(&hrtc, RTC_BKP_DR2); 502 503 sys_data.s.values.chargeTotalAh = HAL_RTCEx_BKUPRead(&hrtc, RTC_BKP_DR3); 504 sys_data.s.values.dischargeTotalWh = HAL_RTCEx_BKUPRead(&hrtc, RTC_BKP_DR4); 505 sys_data.s.values.chargeTotalWh = HAL_RTCEx_BKUPRead(&hrtc, RTC_BKP_DR5); 506 507 sys_data.s.values.onTime = HAL_RTCEx_BKUPRead(&hrtc, RTC_BKP_DR6); 508 509 510 sys_data.s.values.detectedCapacity = HAL_RTCEx_BKUPRead(&hrtc, RTC_BKP_DR7); 511 sys_data.s.values.detectedEnergy = HAL_RTCEx_BKUPRead(&hrtc, RTC_BKP_DR8); 512 513 514 sys_data.s.values.mAh_AutoMode = (int32_t) HAL_RTCEx_BKUPRead(&hrtc, RTC_BKP_DR9); 515 sys_data.s.values.mWh_AutoMode = (int32_t) HAL_RTCEx_BKUPRead(&hrtc, RTC_BKP_DR10); 516 sys_data.s.values.mAhCounter = (int32_t) HAL_RTCEx_BKUPRead(&hrtc, RTC_BKP_DR11); 517 518 519 520 sys_data.s.values.mAs_AutoMode = sys_data.s.values.mAh_AutoMode * 3600LL; 521 sys_data.s.values.mWs_AutoMode = sys_data.s.values.mWh_AutoMode * 3600LL; 522 sys_data.s.values.mAsCounter = sys_data.s.values.mAhCounter * 3600LL; 523 524 482 525 } 483 526 … … 514 557 515 558 516 HAL_RTCEx_BKUPWrite(&hrtc, RTC_BKP_DR 8, sys_data.s.values.mAh_AutoMode);517 HAL_RTCEx_BKUPWrite(&hrtc, RTC_BKP_DR 8, sys_data.s.values.mWh_AutoMode);518 HAL_RTCEx_BKUPWrite(&hrtc, RTC_BKP_DR 8, sys_data.s.values.mAhCounter);559 HAL_RTCEx_BKUPWrite(&hrtc, RTC_BKP_DR9, sys_data.s.values.mAh_AutoMode); 560 HAL_RTCEx_BKUPWrite(&hrtc, RTC_BKP_DR10, sys_data.s.values.mWh_AutoMode); 561 HAL_RTCEx_BKUPWrite(&hrtc, RTC_BKP_DR11, sys_data.s.values.mAhCounter); 519 562 520 563
Note: See TracChangeset
for help on using the changeset viewer.
