Changeset 25 for trunk/fw_g473rct


Ignore:
Timestamp:
Sep 7, 2025, 3:51:43 PM (7 weeks ago)
Author:
f.jahn
Message:

RTC implementiert

Location:
trunk/fw_g473rct
Files:
82 added
25 edited

Legend:

Unmodified
Added
Removed
  • trunk/fw_g473rct/.mxproject

    r20 r25  
    11[PreviousLibFiles]
    2 LibFiles=Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_adc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_adc_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_adc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_def.h;Drivers\STM32G4xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_rcc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_rcc_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_bus.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_rcc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_system.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_utils.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_crs.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_flash.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_flash_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_flash_ramfunc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_gpio.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_gpio_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_gpio.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_exti.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_exti.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_dma.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_dma_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_dma.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_dmamux.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_pwr.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_pwr_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_pwr.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_cortex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_cortex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_crc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_crc_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_crc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_fdcan.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_i2c.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_i2c.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_i2c_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_spi.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_spi.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_spi_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_uart.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_usart.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_lpuart.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_uart_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_pcd.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_pcd_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_usb.h;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_adc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_adc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_ll_adc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rcc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rcc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash_ramfunc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_gpio.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_exti.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_dma.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_dma_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pwr.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pwr_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_cortex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_crc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_crc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_fdcan.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_i2c.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_i2c_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_spi.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_spi_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_uart.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_uart_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pcd.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pcd_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_ll_usb.c;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_adc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_adc_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_adc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_def.h;Drivers\STM32G4xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_rcc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_rcc_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_bus.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_rcc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_system.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_utils.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_crs.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_flash.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_flash_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_flash_ramfunc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_gpio.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_gpio_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_gpio.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_exti.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_exti.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_dma.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_dma_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_dma.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_dmamux.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_pwr.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_pwr_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_pwr.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_cortex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_cortex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_crc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_crc_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_crc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_fdcan.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_i2c.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_i2c.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_i2c_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_spi.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_spi.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_spi_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_uart.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_usart.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_lpuart.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_uart_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_pcd.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_pcd_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_usb.h;Drivers\CMSIS\Device\ST\STM32G4xx\Include\stm32g473xx.h;Drivers\CMSIS\Device\ST\STM32G4xx\Include\stm32g4xx.h;Drivers\CMSIS\Device\ST\STM32G4xx\Include\system_stm32g4xx.h;Drivers\CMSIS\Device\ST\STM32G4xx\Include\system_stm32g4xx.h;Drivers\CMSIS\Device\ST\STM32G4xx\Source\Templates\system_stm32g4xx.c;Drivers\CMSIS\Include\cmsis_armcc.h;Drivers\CMSIS\Include\cmsis_armclang.h;Drivers\CMSIS\Include\cmsis_armclang_ltm.h;Drivers\CMSIS\Include\cmsis_compiler.h;Drivers\CMSIS\Include\cmsis_gcc.h;Drivers\CMSIS\Include\cmsis_iccarm.h;Drivers\CMSIS\Include\cmsis_version.h;Drivers\CMSIS\Include\core_armv81mml.h;Drivers\CMSIS\Include\core_armv8mbl.h;Drivers\CMSIS\Include\core_armv8mml.h;Drivers\CMSIS\Include\core_cm0.h;Drivers\CMSIS\Include\core_cm0plus.h;Drivers\CMSIS\Include\core_cm1.h;Drivers\CMSIS\Include\core_cm23.h;Drivers\CMSIS\Include\core_cm3.h;Drivers\CMSIS\Include\core_cm33.h;Drivers\CMSIS\Include\core_cm35p.h;Drivers\CMSIS\Include\core_cm4.h;Drivers\CMSIS\Include\core_cm7.h;Drivers\CMSIS\Include\core_sc000.h;Drivers\CMSIS\Include\core_sc300.h;Drivers\CMSIS\Include\mpu_armv7.h;Drivers\CMSIS\Include\mpu_armv8.h;Drivers\CMSIS\Include\tz_context.h;
     2LibFiles=Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_adc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_adc_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_adc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_def.h;Drivers\STM32G4xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_rcc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_rcc_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_bus.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_rcc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_system.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_utils.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_crs.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_flash.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_flash_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_flash_ramfunc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_gpio.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_gpio_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_gpio.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_exti.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_exti.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_dma.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_dma_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_dma.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_dmamux.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_pwr.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_pwr_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_pwr.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_cortex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_cortex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_crc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_crc_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_crc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_fdcan.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_i2c.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_i2c.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_i2c_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_rtc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_rtc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_rtc_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_spi.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_spi.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_spi_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_uart.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_usart.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_lpuart.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_uart_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_pcd.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_pcd_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_usb.h;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_adc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_adc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_ll_adc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rcc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rcc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash_ramfunc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_gpio.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_exti.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_dma.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_dma_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pwr.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pwr_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_cortex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_crc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_crc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_fdcan.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_i2c.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_i2c_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rtc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rtc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_spi.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_spi_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_uart.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_uart_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pcd.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pcd_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_ll_usb.c;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_adc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_adc_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_adc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_def.h;Drivers\STM32G4xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_rcc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_rcc_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_bus.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_rcc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_system.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_utils.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_crs.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_flash.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_flash_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_flash_ramfunc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_gpio.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_gpio_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_gpio.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_exti.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_exti.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_dma.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_dma_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_dma.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_dmamux.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_pwr.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_pwr_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_pwr.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_cortex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_cortex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_crc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_crc_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_crc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_fdcan.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_i2c.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_i2c.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_i2c_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_rtc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_rtc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_rtc_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_spi.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_spi.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_spi_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_uart.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_usart.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_lpuart.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_uart_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_pcd.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_pcd_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_usb.h;Drivers\CMSIS\Device\ST\STM32G4xx\Include\stm32g473xx.h;Drivers\CMSIS\Device\ST\STM32G4xx\Include\stm32g4xx.h;Drivers\CMSIS\Device\ST\STM32G4xx\Include\system_stm32g4xx.h;Drivers\CMSIS\Device\ST\STM32G4xx\Include\system_stm32g4xx.h;Drivers\CMSIS\Device\ST\STM32G4xx\Source\Templates\system_stm32g4xx.c;Drivers\CMSIS\Include\cmsis_armcc.h;Drivers\CMSIS\Include\cmsis_armclang.h;Drivers\CMSIS\Include\cmsis_armclang_ltm.h;Drivers\CMSIS\Include\cmsis_compiler.h;Drivers\CMSIS\Include\cmsis_gcc.h;Drivers\CMSIS\Include\cmsis_iccarm.h;Drivers\CMSIS\Include\cmsis_version.h;Drivers\CMSIS\Include\core_armv81mml.h;Drivers\CMSIS\Include\core_armv8mbl.h;Drivers\CMSIS\Include\core_armv8mml.h;Drivers\CMSIS\Include\core_cm0.h;Drivers\CMSIS\Include\core_cm0plus.h;Drivers\CMSIS\Include\core_cm1.h;Drivers\CMSIS\Include\core_cm23.h;Drivers\CMSIS\Include\core_cm3.h;Drivers\CMSIS\Include\core_cm33.h;Drivers\CMSIS\Include\core_cm35p.h;Drivers\CMSIS\Include\core_cm4.h;Drivers\CMSIS\Include\core_cm7.h;Drivers\CMSIS\Include\core_sc000.h;Drivers\CMSIS\Include\core_sc300.h;Drivers\CMSIS\Include\mpu_armv7.h;Drivers\CMSIS\Include\mpu_armv8.h;Drivers\CMSIS\Include\tz_context.h;
    33
    44[PreviousUsedCMakes]
    5 SourceFiles=Core\Src\main.c;Core\Src\gpio.c;Core\Src\adc.c;Core\Src\crc.c;Core\Src\dma.c;Core\Src\fdcan.c;Core\Src\i2c.c;Core\Src\spi.c;Core\Src\usart.c;Core\Src\usb.c;Core\Src\stm32g4xx_it.c;Core\Src\stm32g4xx_hal_msp.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_adc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_adc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_ll_adc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rcc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rcc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash_ramfunc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_gpio.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_exti.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_dma.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_dma_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pwr.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pwr_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_cortex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_crc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_crc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_fdcan.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_i2c.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_i2c_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_spi.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_spi_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_uart.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_uart_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pcd.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pcd_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_ll_usb.c;Drivers\CMSIS\Device\ST\STM32G4xx\Source\Templates\system_stm32g4xx.c;Core\Src\system_stm32g4xx.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_adc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_adc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_ll_adc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rcc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rcc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash_ramfunc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_gpio.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_exti.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_dma.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_dma_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pwr.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pwr_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_cortex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_crc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_crc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_fdcan.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_i2c.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_i2c_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_spi.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_spi_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_uart.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_uart_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pcd.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pcd_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_ll_usb.c;Drivers\CMSIS\Device\ST\STM32G4xx\Source\Templates\system_stm32g4xx.c;Core\Src\system_stm32g4xx.c;;;
     5SourceFiles=Core\Src\main.c;Core\Src\gpio.c;Core\Src\adc.c;Core\Src\crc.c;Core\Src\dma.c;Core\Src\fdcan.c;Core\Src\i2c.c;Core\Src\rtc.c;Core\Src\spi.c;Core\Src\usart.c;Core\Src\usb.c;Core\Src\stm32g4xx_it.c;Core\Src\stm32g4xx_hal_msp.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_adc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_adc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_ll_adc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rcc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rcc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash_ramfunc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_gpio.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_exti.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_dma.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_dma_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pwr.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pwr_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_cortex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_crc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_crc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_fdcan.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_i2c.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_i2c_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rtc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rtc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_spi.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_spi_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_uart.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_uart_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pcd.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pcd_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_ll_usb.c;Drivers\CMSIS\Device\ST\STM32G4xx\Source\Templates\system_stm32g4xx.c;Core\Src\system_stm32g4xx.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_adc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_adc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_ll_adc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rcc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rcc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash_ramfunc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_gpio.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_exti.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_dma.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_dma_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pwr.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pwr_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_cortex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_crc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_crc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_fdcan.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_i2c.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_i2c_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rtc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rtc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_spi.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_spi_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_uart.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_uart_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pcd.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pcd_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_ll_usb.c;Drivers\CMSIS\Device\ST\STM32G4xx\Source\Templates\system_stm32g4xx.c;Core\Src\system_stm32g4xx.c;;;
    66HeaderPath=Drivers\STM32G4xx_HAL_Driver\Inc;Drivers\STM32G4xx_HAL_Driver\Inc\Legacy;Drivers\CMSIS\Device\ST\STM32G4xx\Include;Drivers\CMSIS\Include;Core\Inc;
    77CDefines=USE_HAL_DRIVER;STM32G473xx;USE_HAL_DRIVER;USE_HAL_DRIVER;
     
    99[PreviousGenFiles]
    1010AdvancedFolderStructure=true
    11 HeaderFileListSize=12
     11HeaderFileListSize=13
    1212HeaderFiles#0=..\Core\Inc\gpio.h
    1313HeaderFiles#1=..\Core\Inc\adc.h
     
    1616HeaderFiles#4=..\Core\Inc\fdcan.h
    1717HeaderFiles#5=..\Core\Inc\i2c.h
    18 HeaderFiles#6=..\Core\Inc\spi.h
    19 HeaderFiles#7=..\Core\Inc\usart.h
    20 HeaderFiles#8=..\Core\Inc\usb.h
    21 HeaderFiles#9=..\Core\Inc\stm32g4xx_it.h
    22 HeaderFiles#10=..\Core\Inc\stm32g4xx_hal_conf.h
    23 HeaderFiles#11=..\Core\Inc\main.h
     18HeaderFiles#6=..\Core\Inc\rtc.h
     19HeaderFiles#7=..\Core\Inc\spi.h
     20HeaderFiles#8=..\Core\Inc\usart.h
     21HeaderFiles#9=..\Core\Inc\usb.h
     22HeaderFiles#10=..\Core\Inc\stm32g4xx_it.h
     23HeaderFiles#11=..\Core\Inc\stm32g4xx_hal_conf.h
     24HeaderFiles#12=..\Core\Inc\main.h
    2425HeaderFolderListSize=1
    2526HeaderPath#0=..\Core\Inc
    2627HeaderFiles=;
    27 SourceFileListSize=12
     28SourceFileListSize=13
    2829SourceFiles#0=..\Core\Src\gpio.c
    2930SourceFiles#1=..\Core\Src\adc.c
     
    3233SourceFiles#4=..\Core\Src\fdcan.c
    3334SourceFiles#5=..\Core\Src\i2c.c
    34 SourceFiles#6=..\Core\Src\spi.c
    35 SourceFiles#7=..\Core\Src\usart.c
    36 SourceFiles#8=..\Core\Src\usb.c
    37 SourceFiles#9=..\Core\Src\stm32g4xx_it.c
    38 SourceFiles#10=..\Core\Src\stm32g4xx_hal_msp.c
    39 SourceFiles#11=..\Core\Src\main.c
     35SourceFiles#6=..\Core\Src\rtc.c
     36SourceFiles#7=..\Core\Src\spi.c
     37SourceFiles#8=..\Core\Src\usart.c
     38SourceFiles#9=..\Core\Src\usb.c
     39SourceFiles#10=..\Core\Src\stm32g4xx_it.c
     40SourceFiles#11=..\Core\Src\stm32g4xx_hal_msp.c
     41SourceFiles#12=..\Core\Src\main.c
    4042SourceFolderListSize=1
    4143SourcePath#0=..\Core\Src
  • trunk/fw_g473rct/Core/Inc/main.h

    r24 r25  
    5858
    5959/* Private defines -----------------------------------------------------------*/
    60 #define AUX_ENABLE_Pin GPIO_PIN_13
    61 #define AUX_ENABLE_GPIO_Port GPIOC
     60#define AUX_EN_Pin GPIO_PIN_13
     61#define AUX_EN_GPIO_Port GPIOC
    6262#define ADC_START_CONV_Pin GPIO_PIN_0
    6363#define ADC_START_CONV_GPIO_Port GPIOC
    6464#define ADC_RESET_Pin GPIO_PIN_1
    6565#define ADC_RESET_GPIO_Port GPIOC
    66 #define LED_FUNC_Pin GPIO_PIN_4
    67 #define LED_FUNC_GPIO_Port GPIOA
     66#define LED_FUNCTION_Pin GPIO_PIN_4
     67#define LED_FUNCTION_GPIO_Port GPIOA
    6868#define LED_ERROR_Pin GPIO_PIN_5
    6969#define LED_ERROR_GPIO_Port GPIOA
     
    9494#define ADC_DATA_READY_Pin GPIO_PIN_2
    9595#define ADC_DATA_READY_GPIO_Port GPIOD
     96#define ADC_DATA_READY_EXTI_IRQn EXTI2_IRQn
    9697#define FAULT_Pin GPIO_PIN_7
    9798#define FAULT_GPIO_Port GPIOB
  • trunk/fw_g473rct/Core/Inc/stm32g4xx_hal_conf.h

    r20 r25  
    5757/*#define HAL_QSPI_MODULE_ENABLED   */
    5858/*#define HAL_RNG_MODULE_ENABLED   */
    59 /*#define HAL_RTC_MODULE_ENABLED   */
     59#define HAL_RTC_MODULE_ENABLED
    6060/*#define HAL_SAI_MODULE_ENABLED   */
    6161/*#define HAL_SMARTCARD_MODULE_ENABLED   */
  • trunk/fw_g473rct/Core/Inc/stm32g4xx_it.h

    r23 r25  
    5656void PendSV_Handler(void);
    5757void SysTick_Handler(void);
     58void EXTI2_IRQHandler(void);
    5859void DMA1_Channel1_IRQHandler(void);
    5960void DMA1_Channel2_IRQHandler(void);
  • trunk/fw_g473rct/Core/Src/adc.c

    r24 r25  
    9292  sConfig.Channel = ADC_CHANNEL_1;
    9393  sConfig.Rank = ADC_REGULAR_RANK_1;
    94   sConfig.SamplingTime = ADC_SAMPLETIME_6CYCLES_5;
     94  sConfig.SamplingTime = ADC_SAMPLETIME_92CYCLES_5;
    9595  sConfig.SingleDiff = ADC_DIFFERENTIAL_ENDED;
    9696  sConfig.OffsetNumber = ADC_OFFSET_NONE;
     
    148148  sConfig.Channel = ADC_CHANNEL_3;
    149149  sConfig.Rank = ADC_REGULAR_RANK_1;
    150   sConfig.SamplingTime = ADC_SAMPLETIME_6CYCLES_5;
     150  sConfig.SamplingTime = ADC_SAMPLETIME_92CYCLES_5;
    151151  sConfig.SingleDiff = ADC_DIFFERENTIAL_ENDED;
    152152  sConfig.OffsetNumber = ADC_OFFSET_NONE;
  • trunk/fw_g473rct/Core/Src/crc.c

    r20 r25  
    3939  /* USER CODE END CRC_Init 1 */
    4040  hcrc.Instance = CRC;
    41   hcrc.Init.DefaultPolynomialUse = DEFAULT_POLYNOMIAL_ENABLE;
    42   hcrc.Init.DefaultInitValueUse = DEFAULT_INIT_VALUE_ENABLE;
     41  hcrc.Init.DefaultPolynomialUse = DEFAULT_POLYNOMIAL_DISABLE;
     42  hcrc.Init.DefaultInitValueUse = DEFAULT_INIT_VALUE_DISABLE;
     43  hcrc.Init.GeneratingPolynomial = 7;
     44  hcrc.Init.CRCLength = CRC_POLYLENGTH_8B;
     45  hcrc.Init.InitValue = 0xFF;
    4346  hcrc.Init.InputDataInversionMode = CRC_INPUTDATA_INVERSION_NONE;
    4447  hcrc.Init.OutputDataInversionMode = CRC_OUTPUTDATA_INVERSION_DISABLE;
  • trunk/fw_g473rct/Core/Src/gpio.c

    r20 r25  
    2323
    2424/* USER CODE BEGIN 0 */
    25 
     25#include "ads1260.h"
    2626/* USER CODE END 0 */
    2727
     
    5353
    5454  /*Configure GPIO pin Output Level */
    55   HAL_GPIO_WritePin(GPIOC, AUX_ENABLE_Pin|ADC_START_CONV_Pin|ADC_RESET_Pin, GPIO_PIN_RESET);
     55  HAL_GPIO_WritePin(GPIOC, AUX_EN_Pin|ADC_START_CONV_Pin|ADC_RESET_Pin, GPIO_PIN_RESET);
    5656
    5757  /*Configure GPIO pin Output Level */
    58   HAL_GPIO_WritePin(GPIOA, LED_FUNC_Pin|LED_ERROR_Pin, GPIO_PIN_RESET);
     58  HAL_GPIO_WritePin(GPIOA, LED_FUNCTION_Pin|LED_ERROR_Pin, GPIO_PIN_RESET);
    5959
    6060  /*Configure GPIO pin Output Level */
    6161  HAL_GPIO_WritePin(GPIOB, BUZZER_Pin|DISCHARGE_ENABLE_Pin|CHARGE_ENABLE_Pin, GPIO_PIN_RESET);
    6262
    63   /*Configure GPIO pins : AUX_ENABLE_Pin ADC_START_CONV_Pin ADC_RESET_Pin */
    64   GPIO_InitStruct.Pin = AUX_ENABLE_Pin|ADC_START_CONV_Pin|ADC_RESET_Pin;
     63  /*Configure GPIO pins : AUX_EN_Pin ADC_START_CONV_Pin ADC_RESET_Pin */
     64  GPIO_InitStruct.Pin = AUX_EN_Pin|ADC_START_CONV_Pin|ADC_RESET_Pin;
    6565  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
    6666  GPIO_InitStruct.Pull = GPIO_NOPULL;
     
    6868  HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
    6969
    70   /*Configure GPIO pins : LED_FUNC_Pin LED_ERROR_Pin */
    71   GPIO_InitStruct.Pin = LED_FUNC_Pin|LED_ERROR_Pin;
     70  /*Configure GPIO pins : LED_FUNCTION_Pin LED_ERROR_Pin */
     71  GPIO_InitStruct.Pin = LED_FUNCTION_Pin|LED_ERROR_Pin;
    7272  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
    7373  GPIO_InitStruct.Pull = GPIO_NOPULL;
     
    9090  /*Configure GPIO pin : ADC_DATA_READY_Pin */
    9191  GPIO_InitStruct.Pin = ADC_DATA_READY_Pin;
    92   GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
     92  GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
    9393  GPIO_InitStruct.Pull = GPIO_NOPULL;
    9494  HAL_GPIO_Init(ADC_DATA_READY_GPIO_Port, &GPIO_InitStruct);
     
    100100  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
    101101
     102  /* EXTI interrupt init*/
     103  HAL_NVIC_SetPriority(EXTI2_IRQn, 0, 0);
     104  HAL_NVIC_EnableIRQ(EXTI2_IRQn);
     105
    102106}
    103107
    104108/* USER CODE BEGIN 2 */
     109void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
     110{
     111  if (GPIO_Pin == ADC_DATA_READY_Pin)
     112  {
     113    newCurrentValue=1;
    105114
     115     
     116  }
     117}
    106118/* USER CODE END 2 */
  • trunk/fw_g473rct/Core/Src/main.c

    r24 r25  
    2424#include "fdcan.h"
    2525#include "i2c.h"
     26#include "rtc.h"
    2627#include "spi.h"
    2728#include "usart.h"
     
    3132/* Private includes ----------------------------------------------------------*/
    3233/* USER CODE BEGIN Includes */
     34#include <stdio.h>
     35#include "sysdata.h"
     36#include "wh_counter.h"
     37#include "ah_counter.h"
     38#include "eeprom.h"
     39#include "modbus.h"
     40#include "chip_temperature.h"
     41#include "battery_voltage.h"
     42#include "ads1260.h"
     43#include "shunt_voltage.h"
     44#include "fast_current.h"
     45#include "int_bat_voltage.h"
     46#include "chip_temperature.h"
     47#include "shunt_temperature.h"
     48#include "esr.h"
     49#include "ads1260.h"
     50#include "outputs.h"
     51#include "crc.h"
     52#include "efficiency.h"
     53#include "self_discharge.h"
    3354
    3455/* USER CODE END Includes */
     
    5273
    5374/* USER CODE BEGIN PV */
    54 
     75modbus_t modbusData __attribute__((section(".RAM1")));
     76
     77__IO uint16_t adc12Data[SAMPLE_ARRAY_SIZE][2] __attribute__((section(".RAM1")));
     78__IO uint32_t adc1Data[1] __attribute__((section(".RAM1")));
     79__IO uint32_t adc2Data[1] __attribute__((section(".RAM1")));
     80__IO uint32_t adc3Data[3] __attribute__((section(".RAM1")));
     81__IO uint32_t adc4Data[1] __attribute__((section(".RAM1")));
     82__IO uint32_t adc5Data[4] __attribute__((section(".RAM1")));
     83int silentmode =0;
     84static volatile uint32_t newADC12Data = 0;
     85static volatile uint32_t newADC3Data = 0;
     86static volatile uint32_t newADC4Data = 0;
     87static volatile uint32_t newADC5Data = 0;
    5588/* USER CODE END PV */
    5689
     
    5891void SystemClock_Config(void);
    5992/* USER CODE BEGIN PFP */
    60 
     93bool SetFlashReadProtection(bool state);
     94uint8_t printprotectionstate(void);
     95bool SetBootFromFlashAndReadOutProtection(void);
     96void LoadBackupRegister(void);
     97void SaveBackupRegister(void);
    6198/* USER CODE END PFP */
    6299
     
    74111
    75112  /* USER CODE BEGIN 1 */
     113  uint8_t firstStartCatcher;
     114  int mode_button_disable_time=0;
     115  uint32_t oldTime = 0;
     116  uint32_t newTime = 0;
     117  uint32_t timeDiff;
     118  uint8_t sekunde = 0;
     119  uint8_t sekundeOld = 0;
     120  uint32_t dummyDate;
    76121
    77122  /* USER CODE END 1 */
     
    110155  MX_USB_PCD_Init();
    111156  MX_CRC_Init();
     157  MX_RTC_Init();
    112158  /* USER CODE BEGIN 2 */
    113 
     159  printf("Test debug io\r\n");
     160  SYS_DATA_Init();
     161  WH_COUNTER_Init();
     162  AH_COUNTER_Init();
     163
     164
     165  startType_t startType = EEPROM_isFirstStart();
     166
     167  switch(startType)
     168  {
     169          case FIRST_START_AFTER_ERASE:                                 EEPROM_fullRestore(&sys_data);            break;
     170          case FIRST_START_AFTER_COMPARTIBLE_UPDATE:    EEPROM_readConfig(&sys_data);             break;
     171          case FIRST_START_AFTER_INCOMPARTIBLE_UPDATE:  EEPROM_factoryRestore(&sys_data, 0);  break;  // Preserving calibration and settings
     172          case FIRST_START_ERROR:                                               EEPROM_fullRestore(&sys_data);            break;
     173  }
     174
     175  if(HAL_GPIO_ReadPin(GPIO_INPUT_BTN_MODE_GPIO_Port, GPIO_INPUT_BTN_MODE_Pin) == GPIO_PIN_RESET)
     176  {
     177    HAL_Delay(50);
     178    if(HAL_GPIO_ReadPin(GPIO_INPUT_BTN_MODE_GPIO_Port, GPIO_INPUT_BTN_MODE_Pin) == GPIO_PIN_RESET)
     179    {
     180      printf("factory restore...\n");
     181      EEPROM_factoryRestore(&sys_data, 1);
     182    }
     183  }
     184
     185    // Modbus Initialisierung
     186  mbInit(&modbusData, sys_data.s.parameter.baudrate, sys_data.s.parameter.parityMode, sys_data.s.parameter.stopBit, &huart2);
     187
     188    // STM32G0 Chiptemperatur Kalibrierung
     189  CHIP_TEMPERATURE_Calibration();
     190
     191  HAL_ADCEx_Calibration_Start(&hadc1, ADC_DIFFERENTIAL_ENDED);
     192  HAL_ADCEx_Calibration_Start(&hadc2, ADC_DIFFERENTIAL_ENDED);
     193  HAL_ADCEx_Calibration_Start(&hadc3, ADC_SINGLE_ENDED);
     194  HAL_ADCEx_Calibration_Start(&hadc4, ADC_DIFFERENTIAL_ENDED);
     195  HAL_ADCEx_Calibration_Start(&hadc5, ADC_SINGLE_ENDED);
     196
     197
     198  //SET_BIT(hadc2.Instance->CFGR, ADC_CFGR_DMAEN); //Enable DMA transfer for ADC slave (ADC12_CCR.MDMA = 0b00 -> MDMA mode disabled)
     199  //HAL_DMA_Start(hadc2.DMA_Handle,(uint32_t)&hadc2.Instance->DR, (uint32_t)adc2Data,1); //Start ADC slave DMA
     200  //SET_BIT(hadc1.Instance->CFGR, ADC_CFGR_DMAEN); //Enable DMA transfer for ADC master (ADC12_CCR.MDMA = 0b00 -> MDMA mode disabled)
     201 
     202    //HAL_ADC_Start_DMA(&hadc2, (uint32_t*)adc2Data, 1);
     203  if (HAL_ADCEx_MultiModeStart_DMA(&hadc1,(uint32_t *)adc12Data,SAMPLE_ARRAY_SIZE))  //Start ADC interleaved mode
     204  {
     205     /* Start Error */
     206     Error_Handler();
     207  }
     208
     209  if (HAL_ADC_Start_DMA(&hadc3, (uint32_t *) adc3Data , 3))
     210  {
     211     /* Start Error */
     212     Error_Handler();
     213  }
     214
     215  if (HAL_ADC_Start_DMA(&hadc4, (uint32_t *) adc4Data , 1))
     216  {
     217     /* Start Error */
     218     Error_Handler();
     219  }
     220
     221
     222  if (HAL_ADC_Start_DMA(&hadc5, (uint32_t *) adc5Data , 4))
     223  {
     224     /* Start Error */
     225     Error_Handler();
     226  }
     227
     228
     229  // ADS1260 Initialierung
     230  ADS1260_init();
     231  printf("ADS1260 Init\n");
     232  OUTPUTS_Init();
     233
     234  //Display Adress with Error LED blinks
     235  for (int n = 0; n < sys_data.s.parameter.slave_address; n++)
     236  {
     237    HAL_GPIO_WritePin(LED_ERROR_GPIO_Port, LED_ERROR_Pin, GPIO_PIN_SET);
     238    HAL_Delay(350);
     239    HAL_GPIO_WritePin(LED_ERROR_GPIO_Port, LED_ERROR_Pin, GPIO_PIN_RESET);
     240    HAL_Delay(350);
     241  }
     242
     243  LoadBackupRegister();
    114244  /* USER CODE END 2 */
    115245
     
    121251
    122252    /* USER CODE BEGIN 3 */
     253if (newADC12Data == 1)
     254    {
     255          //Mit ADC_DIV2,Sample time 12,5Cycklen, ADC Clock 50Mhz, Oversampling 256
     256          //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          newADC12Data = 0;
     261
     262        }
     263
     264
     265        if (newADC3Data == 1)
     266    {
     267          SHUNT_TEMPERATURE_Exec(adc3Data[0]);
     268        }
     269
     270
     271        if (newADC4Data == 1)
     272    {
     273          SHUNT_VOLTAGE_Exec( adc4Data[0]);
     274        }
     275
     276
     277        if (newADC5Data == 1)
     278    {
     279          CHIP_TEMPERATURE_Exec(adc5Data[0]);
     280          INT_BAT_VOLTAGE_Exec( adc5Data[1]);
     281          sys_data.s.values.ovp_sense =  (adc5Data[2] * VREF * 21 ) / 65536.0;
     282      sys_data.s.values.lvp_sense =  (adc5Data[3] * VREF * 21 ) / 65536.0;
     283        }
     284
     285
     286        if (newCurrentValue == 1)
     287    {
     288      ADS1260_ConversionFinished();
     289      ESR_Exec();
     290
     291      newCurrentValue = 0;
     292
     293    }
     294
     295         // Zeitbasis ms Systick;
     296    newTime = HAL_GetTick();
     297    timeDiff = newTime - oldTime;
     298    oldTime = newTime;
     299
     300    if ((mode_button_disable_time > 0) && (timeDiff > 0))
     301    {
     302      mode_button_disable_time--;
     303    }
     304
     305    // Zeitbasis Sekunde ber RTC
     306    // muss immer sowohl das Zeit- als auch das Datumsregister lesen
     307    // da beide Shadowregister sind sonst wird die Zeit nicht mehr geupdatet
     308    sekunde = hrtc.Instance->TR & 0x0000000F;
     309    dummyDate = hrtc.Instance->DR;
     310
     311
     312
     313    if (sekundeOld != sekunde)
     314    {
     315      sekundeOld = sekunde;
     316
     317      sys_data.s.values.onTime++;
     318      // Funktions Led blinken
     319      if (silentmode == 0)
     320      {
     321        HAL_GPIO_TogglePin(LED_FUNCTION_GPIO_Port, LED_FUNCTION_Pin);
     322                HAL_GPIO_TogglePin(AUX_EN_GPIO_Port, AUX_EN_Pin);
     323      }
     324
     325
     326      // Amperestundenzhler
     327      AH_COUNTER_Exec();
     328
     329      WH_COUNTER_Exec();
     330
     331      // LVP
     332      OUTPUTS_CheckLVP();
     333
     334      // OVP
     335      OUTPUTS_CheckOVP();
     336
     337      SaveBackupRegister();
     338
     339      sys_data.s.values.selfDischargeStatus = SELF_DISCHARGE_Exec();
     340
     341      sys_data.s.values.efficiency = EFFICIENCY_Exec();
     342
     343
     344    }
     345
     346
     347        if(sys_data.s.parameter.command != 0)
     348    {
     349      if  (modbusData.current_query ==  MB_QUERY_NOTHING)
     350      {
     351        //printf("CMD = %d\n", sys_data.s.parameter.command);
     352        switch (sys_data.s.parameter.command )
     353        {
     354          case COMMAND_STORE_CONFIG:                          EEPROM_storeConfig(&sys_data,0);                                                                                    break;
     355          case COMMAND_FULL_RESTORE:                          EEPROM_fullRestore(&sys_data);                                                                                      break;
     356          case COMMAND_FACTORY_RESTORE:                       EEPROM_factoryRestore(&sys_data, 1);                                                                                break;
     357          case COMMAND_RESTORE_LAST_SAVED_VALUES:             EEPROM_readConfig(&sys_data);                                                                                               break;
     358          case COMMAND_STORE_WITH_SERIAL_NUMBER:              EEPROM_storeConfig(&sys_data,1);                                                                                    break;        // Seriennummer schreiben
     359          case COMMAND_RESTART:                               NVIC_SystemReset();                                                                                                                 break;
     360          case COMMAND_BATTERY_CURRENT_OFFSET_CAL:            ADS_1260_BatteryCurrentOffsetCalibrationStart(&sys_data);                                   break;
     361          case COMMAND_BATTERY_CURRENT_OFFSET_COMMONMODE_CAL: ADS_1260_BatteryCurrentOffsetCommonModeErrorComepensationStart(&sys_data);  break;
     362          case COMMAND_BATTERY_CURRENT_OFFSET_TEMP_CAL:       ADS_1260_BatteryCurrentOffsetTemperatureErrorComepensationStart();                  break;
     363          case COMMAND_BATTERY_CURRENT_GAIN_CAL:              ADS_1260_BatteryCurrentGainCalibrationStart(&sys_data);                                     break;
     364          case COMMAND_BATTERY_CURRENT_GAIN_TEMP_SHUNT_CAL:   ADS_1260_BatteryCurrentGainTemperatureCalibrationShuntStart();                      break;
     365//        case COMMAND_BATTERY_CURRENT_GAIN_TEMP_CHIP_CAL:    ADS_1260_BatteryCurrentGainTemperatureCalibrationChipStart(); break;
     366          case COMMAND_SET_RDP_LEVEL0:                        SetFlashReadProtection(false);                                                                                      break;
     367          case COMMAND_SET_RDP_LEVEL1:                        SetFlashReadProtection(true);                                                                                               break;
     368          case COMMAND_SET_RDP_LEVEL1_AND_BOOTSEL:            SetBootFromFlashAndReadOutProtection();                                                                     break;
     369          default:                                            printf("UNKNOWN COMMAND\n");
     370        }
     371        sys_data.s.parameter.command = 0;
     372      }
     373      else
     374      {
     375        //printf("wait with execution till modbus communnikation finished\n");
     376      }
     377    }
     378
     379    if((HAL_GPIO_ReadPin(GPIO_INPUT_BTN_MODE_GPIO_Port, GPIO_INPUT_BTN_MODE_Pin) == GPIO_PIN_RESET) && (mode_button_disable_time == 0))
     380    {
     381      HAL_Delay(10);
     382      //Taste weiterhin gedrckt?
     383      if(HAL_GPIO_ReadPin(GPIO_INPUT_BTN_MODE_GPIO_Port, GPIO_INPUT_BTN_MODE_Pin) == GPIO_PIN_RESET)
     384      {
     385        //Ja, dann Silent Mode umschalten
     386        mode_button_disable_time=500;
     387        if (silentmode == 0)
     388        {
     389          silentmode = 1;
     390          HAL_GPIO_WritePin(LED_FUNCTION_GPIO_Port, LED_FUNCTION_Pin,GPIO_PIN_SET);
     391        }
     392        else
     393        {
     394          silentmode = 0;
     395        }
     396       }
     397    }
     398
     399        // Modbus Kommunikation
     400
     401//      printf("data12d1=%d,data12d2=%d,data5=%d\r\n", adc12Data[0], adc12Data[1] , adc5Data[2]);
     402    if (mbGetFrameComplete(&modbusData) == true)
     403    {
     404      if (mbSlaveCheckModbusRtuQuery(&modbusData) == RESPOND_TO_QUERY)
     405      {
     406          if (silentmode == 0)
     407          {
     408            mbSlaveProcessRtuQuery(&modbusData);
     409          }
     410      }
     411      else
     412      {
     413        huart1.RxState = HAL_UART_STATE_BUSY_RX;
     414      }
     415    }
     416
     417 
    123418  }
    124419  /* USER CODE END 3 */
     
    138433  HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1);
    139434
     435  /** Configure LSE Drive Capability
     436  */
     437  HAL_PWR_EnableBkUpAccess();
     438  __HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_LOW);
     439
    140440  /** Initializes the RCC Oscillators according to the specified parameters
    141441  * in the RCC_OscInitTypeDef structure.
    142442  */
    143   RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI48|RCC_OSCILLATORTYPE_HSE;
     443  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI48|RCC_OSCILLATORTYPE_HSE
     444                              |RCC_OSCILLATORTYPE_LSE;
    144445  RCC_OscInitStruct.HSEState = RCC_HSE_ON;
     446  RCC_OscInitStruct.LSEState = RCC_LSE_ON;
    145447  RCC_OscInitStruct.HSI48State = RCC_HSI48_ON;
    146448  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
     
    172474
    173475/* USER CODE BEGIN 4 */
    174 
     476void LoadBackupRegister()
     477{
     478    if (HAL_RTCEx_BKUPRead(&hrtc, RTC_BKP_DR1) == 0xBEBE)
     479    {
     480          printf("BackupRegisterData available\r\n");
     481          sys_data.s.values.dischargeTotalAh = HAL_RTCEx_BKUPRead(&hrtc, RTC_BKP_DR2);
     482        }
     483
     484
     485}
     486
     487
     488void SaveBackupRegister(void)
     489{
     490        static uint32_t lastTime;
     491
     492       
     493        uint32_t time = sys_data.s.values.onTime;
     494
     495        // Alle 24 Stunden führen wir ein Speicherbefehl durch um die Counter zu speichern
     496        if (time != lastTime)
     497        {
     498                lastTime = time;
     499                HAL_PWR_EnableBkUpAccess();
     500                HAL_RTCEx_BKUPWrite(&hrtc, RTC_BKP_DR1, 0xBEBE);
     501
     502                // Total Energie und Ah Umsatz der Batterie (seit inbetriebnahme)
     503            HAL_RTCEx_BKUPWrite(&hrtc, RTC_BKP_DR2, sys_data.s.values.dischargeTotalAh);
     504                HAL_RTCEx_BKUPWrite(&hrtc, RTC_BKP_DR3, sys_data.s.values.chargeTotalAh);
     505                HAL_RTCEx_BKUPWrite(&hrtc, RTC_BKP_DR4, sys_data.s.values.dischargeTotalWh);
     506                HAL_RTCEx_BKUPWrite(&hrtc, RTC_BKP_DR5, sys_data.s.values.chargeTotalWh);
     507
     508                // Betriebszeit
     509                HAL_RTCEx_BKUPWrite(&hrtc, RTC_BKP_DR6, sys_data.s.values.onTime);
     510
     511                // Erkannte Kapazitäten
     512                HAL_RTCEx_BKUPWrite(&hrtc, RTC_BKP_DR7, sys_data.s.values.detectedCapacity);
     513                HAL_RTCEx_BKUPWrite(&hrtc, RTC_BKP_DR8, sys_data.s.values.detectedEnergy);
     514
     515
     516                HAL_RTCEx_BKUPWrite(&hrtc, RTC_BKP_DR8, sys_data.s.values.mAh_AutoMode);
     517                HAL_RTCEx_BKUPWrite(&hrtc, RTC_BKP_DR8, sys_data.s.values.mWh_AutoMode);
     518                HAL_RTCEx_BKUPWrite(&hrtc, RTC_BKP_DR8, sys_data.s.values.mAhCounter);
     519
     520
     521
     522
     523
     524        }
     525
     526
     527}
     528
     529
     530
     531 void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
     532 {
     533    if (hadc->Instance==ADC1)
     534        {
     535          newADC12Data=1;
     536        }
     537
     538        if (hadc->Instance==ADC3)
     539        {
     540          newADC3Data=1;
     541        }
     542
     543
     544        if (hadc->Instance==ADC4)
     545        {
     546          newADC4Data=1;
     547        }
     548
     549        if (hadc->Instance==ADC5)
     550        {
     551          newADC5Data=1;
     552        }
     553 }
     554
     555
     556 
     557/**
     558
     559  * @brief  Set flash read protection.
     560
     561  * @param  [in] state: Flash read protection state, true: enable protection, false: disable protection.
     562
     563  * @retval true:  Successful operation.
     564
     565  * @retval false: Operation failed.
     566
     567  */
     568
     569bool SetFlashReadProtection(bool state)
     570{
     571
     572  FLASH_OBProgramInitTypeDef OptionsBytesStruct = {0};
     573  HAL_FLASHEx_OBGetConfig(&OptionsBytesStruct);
     574
     575  if(state == true)
     576  {
     577    printf("Start enable readout protection\n");
     578    if(OptionsBytesStruct.RDPLevel == OB_RDP_LEVEL_0)
     579    {
     580      OptionsBytesStruct.OptionType = OPTIONBYTE_RDP;
     581      OptionsBytesStruct.RDPLevel   = OB_RDP_LEVEL_1;
     582      if (HAL_FLASH_Unlock() != HAL_OK)
     583      {
     584        printf("Flash unlock error\n");
     585      }
     586      if (HAL_FLASH_OB_Unlock() != HAL_OK)
     587      {
     588        printf("Flash ob unlock error\n");
     589      }
     590
     591      printf("...Flash unlock\n");
     592      if(HAL_FLASHEx_OBProgram(&OptionsBytesStruct) != HAL_OK)
     593      {
     594        printf("...Enable lock error\n");
     595        HAL_FLASH_OB_Lock();
     596        return false;
     597      }
     598      HAL_FLASH_OB_Lock();
     599      printf("Flash Optionbyte locked\n");
     600      HAL_FLASH_Lock();
     601      printf("Flash  locked\n");
     602      printf("...Enable lock process finished\n");
     603    }
     604    else
     605    {
     606      printf("...Flash lock already active\n");
     607    }
     608  }
     609  else
     610  {
     611    if(OptionsBytesStruct.RDPLevel == OB_RDP_LEVEL_1)
     612    {
     613      OptionsBytesStruct.OptionType = OPTIONBYTE_RDP;
     614      OptionsBytesStruct.RDPLevel   = OB_RDP_LEVEL_0;
     615
     616      if (HAL_FLASH_Unlock() != HAL_OK)
     617      {
     618        printf("Flash unlock error\n");
     619        return false;
     620      }
     621      printf("...Flash unlocked\n");
     622
     623      if (HAL_FLASH_OB_Unlock() != HAL_OK)
     624      {
     625        printf("Flash ob unlock error\n");
     626        return false;
     627      }
     628      printf("...Flash ob unlocked\n");
     629
     630      if(HAL_FLASHEx_OBProgram(&OptionsBytesStruct) != HAL_OK)
     631      {
     632        HAL_FLASH_OB_Lock();
     633        printf("Flash Optionbyte programm failed\n");
     634        return false;
     635      }
     636
     637      printf("Flash Optionbyte programmed\n");
     638      HAL_FLASH_OB_Lock();
     639      printf("Flash Optionbyte locked\n");
     640      HAL_FLASH_Lock();
     641      printf("Flash  locked\n");
     642      printf("...Disable lock process finished\n");
     643
     644;
     645    }
     646  }
     647  return true;
     648}
     649
     650bool SetBootFromFlashAndReadOutProtection(void)
     651{
     652
     653  FLASH_OBProgramInitTypeDef OptionsBytesStruct = {0};
     654  HAL_FLASHEx_OBGetConfig(&OptionsBytesStruct);
     655
     656  //Konfiguriere RDP fr Readoutprotection and USER OPTION BYTE FR Boot from Flash
     657  OptionsBytesStruct.OptionType = OPTIONBYTE_USER | OPTIONBYTE_RDP;
     658
     659  //Set Readout Protection Level 1
     660  OptionsBytesStruct.OptionType = OPTIONBYTE_USER|OPTIONBYTE_RDP;
     661  OptionsBytesStruct.RDPLevel   = OB_RDP_LEVEL_1;
     662
     663  //Selecting Boot from Main Flash Memory
     664  OptionsBytesStruct.USERType =    OB_USER_nBOOT0 | OB_USER_nSWBOOT0 | OB_USER_nBOOT1 ;
     665  OptionsBytesStruct.USERConfig  = OB_USER_nBOOT0 | OB_USER_nSWBOOT0;
     666
     667  if (HAL_FLASH_Unlock() != HAL_OK)
     668  {
     669    printf("Flash unlock error\n");
     670  }
     671  if (HAL_FLASH_OB_Unlock() != HAL_OK)
     672  {
     673    printf("Flash ob unlock error\n");
     674  }
     675
     676  printf("...Flash unlock\n");
     677  if(HAL_FLASHEx_OBProgram(&OptionsBytesStruct) != HAL_OK)
     678  {
     679    printf("...Enable lock error\n");
     680    HAL_FLASH_OB_Lock();
     681    return false;
     682  }
     683  HAL_FLASH_OB_Lock();
     684  printf("Flash Optionbyte locked\n");
     685  HAL_FLASH_Lock();
     686  printf("Flash  locked\n");
     687  printf("...Enable lock process finished\n");
     688
     689  return true;
     690}
     691uint8_t printprotectionstate(void)
     692{
     693  FLASH_OBProgramInitTypeDef OptionsBytesStruct = {0};
     694  HAL_FLASHEx_OBGetConfig(&OptionsBytesStruct);
     695  uint8_t result = 0;
     696
     697  if(OptionsBytesStruct.RDPLevel == OB_RDP_LEVEL_0)
     698  {
     699    //OptionsBytesStruct.OptionType = OPTIONBYTE_RDP;
     700    //OptionsBytesStruct.RDPLevel   = OB_RDP_LEVEL_1;
     701    printf("PROTECTION: OB_RDP_LEVEL_0\n");
     702    result = 0;
     703  }
     704  else if(OptionsBytesStruct.RDPLevel == OB_RDP_LEVEL_1)
     705  {
     706    printf("PROTECTION: OB_RDP_LEVEL_1\n");
     707    result = 1;
     708  }
     709  else if(OptionsBytesStruct.RDPLevel == OB_RDP_LEVEL_2)
     710  {
     711    printf("PROTECTION: OB_RDP_LEVEL_2\n");
     712    result = 2;
     713  }
     714  return  result;
     715}
    175716/* USER CODE END 4 */
    176717
  • trunk/fw_g473rct/Core/Src/spi.c

    r20 r25  
    4141  hspi3.Init.Mode = SPI_MODE_MASTER;
    4242  hspi3.Init.Direction = SPI_DIRECTION_2LINES;
    43   hspi3.Init.DataSize = SPI_DATASIZE_4BIT;
     43  hspi3.Init.DataSize = SPI_DATASIZE_8BIT;
    4444  hspi3.Init.CLKPolarity = SPI_POLARITY_LOW;
    45   hspi3.Init.CLKPhase = SPI_PHASE_1EDGE;
     45  hspi3.Init.CLKPhase = SPI_PHASE_2EDGE;
    4646  hspi3.Init.NSS = SPI_NSS_HARD_OUTPUT;
    47   hspi3.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2;
     47  hspi3.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8;
    4848  hspi3.Init.FirstBit = SPI_FIRSTBIT_MSB;
    4949  hspi3.Init.TIMode = SPI_TIMODE_DISABLE;
     
    5151  hspi3.Init.CRCPolynomial = 7;
    5252  hspi3.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
    53   hspi3.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
     53  hspi3.Init.NSSPMode = SPI_NSS_PULSE_DISABLE;
    5454  if (HAL_SPI_Init(&hspi3) != HAL_OK)
    5555  {
  • trunk/fw_g473rct/Core/Src/stm32g4xx_it.c

    r23 r25  
    209209
    210210/**
     211  * @brief This function handles EXTI line2 interrupt.
     212  */
     213void EXTI2_IRQHandler(void)
     214{
     215  /* USER CODE BEGIN EXTI2_IRQn 0 */
     216
     217  /* USER CODE END EXTI2_IRQn 0 */
     218  HAL_GPIO_EXTI_IRQHandler(ADC_DATA_READY_Pin);
     219  /* USER CODE BEGIN EXTI2_IRQn 1 */
     220
     221  /* USER CODE END EXTI2_IRQn 1 */
     222}
     223
     224/**
    211225  * @brief This function handles DMA1 channel1 global interrupt.
    212226  */
  • trunk/fw_g473rct/SES/inc/battery_voltage.h

    r22 r25  
    1616
    1717//--- GLOBALE DEFINES ----------------------------------------------------------
     18#define BATTERY_VOLTAGE_VOLTAGE_DIVIDER       6.0
     19#define BATTERY_VOLTAGE_ADC_RESOLUTION            32768.0 //65536/2 da im differential mode
     20#define BATTERY_VOLTAGE_ADC_OFFSET                        32768.0
    1821
    1922//--- GLOBALE VARIABLEN PROTOTYPEN ---------------------------------------------
  • trunk/fw_g473rct/SES/inc/doku.h

    r20 r25  
    11/*
     2
     3Neue Version für smartPro
     4
     5- VDD muss jetzt nicht mehr berechnet werden, da wir eine echte Referenz haben. Deshalb entfällt die Anzeige im Register 101. Diese wurde ersetzt durch die
     6  Spannung der neuen Backup Batterie
     7- Register Position für mWs und mWh getauscht, damit besser lesbar und ggf weniger Datenübetragung notwendig
     8- Register Position für mAs und mAh getauscht, damit besser lesbar und ggf weniger Datenübetragung notwendig
     9
     10
     11
     12----- ALT greenMeter-------
    213Achtung:
    314- IMMER NEUE HEX und NEUE BIN DATEI erzeugen!!!
    4 - Bin Datei für Encryption Tool
     15- Bin Datei fr Encryption Tool
    516- Hex für Prüfprogramm, automatische Programmierung
    617
     
    22332.0 COMMON MODE ERROR COMPENSATION
    2334- Temperatur kalt, Raumtemperartur
    24 - Busspannung 24,00V (Dabei änder sich der gemessene Strom um z.B. -120mA )
     35- Busspannung 24,00V (Dabei nder sich der gemessene Strom um z.B. -120mA )
    2536- Busstrom 0,0A - Lastschalter aus!!
    2637- Warten bis Mittwelwert stabilisert
     
    30412.1 (OPTIONAL)
    3142- Common Mode Error Kompensation testen
    32 - Spannung auf 32V erhöhen
     43- Spannung auf 32V erhhen
    3344- Fehler Strommessung < +- 5VmA
    3445- Spannung auf 6V verringern
     
    4152
    42533.0 OFFSET TEMP COMPENSATION
    43 - Kein erheblicher Fehler.  Kompensation kann zunächst entfallen
     54- Kein erheblicher Fehler.  Kompensation kann zunchst entfallen
    4455
    45564.0 GAIN CAL
    46 - SHUNT Überbrücken
     57- SHUNT berbrcken
    4758- 250A einstellen
    4859- warten bis stabil, +- 2mA
    49 - SHUNT ÜBERBRÜCKUNG ÖFFNEN
     60- SHUNT BERBRCKUNG FFNEN
    5061- Warten auf Mittelwertbildung (10 Sekunden)
    5162- COMMAND 10
     
    5364
    54655.0 GAIN TEMP CAL
    55 - Warten bis Shunt Temp um 10°C gestiegen ist.
     66- Warten bis Shunt Temp um 10C gestiegen ist.
    5667-
    5768*/
     
    6374//---------------------
    6475//Test Shunt Spannungsmessung:
    65 //Mit greenSwitch als Hauptschalter nur bis 32V möglich. Da Überspannungsschutzdiode im greenSwitch aktiv wird
     76//Mit greenSwitch als Hauptschalter nur bis 32V mglich. Da berspannungsschutzdiode im greenSwitch aktiv wird
    6677// Sollwer:         Read:              Strom am Shunt:
    6778// 0 V               0,09 V              0,0 mA
     
    7990
    8091/*
    81 Prüfung Common Mode Error nach Kalibrierung 12/24V
     92Prfung Common Mode Error nach Kalibrierung 12/24V
    8293- Muster 1 hatte bei 0V  - 8 mA
    8394- Muster 1 hatte bei 2V  - 6 mA
  • trunk/fw_g473rct/SES/inc/fast_current.h

    r24 r25  
    1616
    1717//--- GLOBALE DEFINES ----------------------------------------------------------
     18#define FAST_CURRENT_I_SENSE_GAIN                                                 40.0
     19#define FAST_CURRENT_ADC_OFFSET                                                   32768
     20#define FAST_CURRENT_ADC_RESOLUTION                                               32768 //65536/2 da im differential mode
     21
     22
     23  #if (DEVICETYPE == 500)
     24    #define FAST_CURRENT_SHUNT_RESISTOR 0.000125       
     25  #elif (DEVICETYPE == 250)
     26    #define FAST_CURRENT_SHUNT_RESISTOR 0.000250       
     27  #elif (DEVICETYPE == 125)
     28    #define FAST_CURRENT_SHUNT_RESISTOR 0.000500       
     29  #else
     30  #error No valid device type
     31  #endif
     32               
     33
    1834
    1935//--- GLOBALE VARIABLEN PROTOTYPEN ---------------------------------------------
  • trunk/fw_g473rct/SES/inc/sysdata.h

    r23 r25  
    170170        /* 8 of 8 */ uint32_t lastTimeVbatEmpty;                                                                        // 146-147      [s]
    171171        /* 4 of 8 */ uint32_t onTime;                                                                                           // 148-149      [s] Runtime Zähler zum speichern der Statistik Werte im EEPROM und als Betriebszeitzähler
    172         /* 8 of 8 */ uint32_t dischargeTotalAh;                                                                         // 150-151      [mAs]
    173         /* 4 of 8 */ uint32_t chargeTotalAh;                                                                            // 152-153      [mAs]
    174         /* 8 of 8 */ uint32_t dischargeTotalWh;                                                                         // 154-155      [mAs]
    175         /* 4 of 8 */ uint32_t chargeTotalWh;                                                                            // 156-157      [mAs]
     172        /* 8 of 8 */ uint32_t dischargeTotalAh;                                                                         // 150-151      [Ah]
     173        /* 4 of 8 */ uint32_t chargeTotalAh;                                                                            // 152-153      [Ah]
     174        /* 8 of 8 */ uint32_t dischargeTotalWh;                                                                         // 154-155      [Wh]
     175        /* 4 of 8 */ uint32_t chargeTotalWh;                                                                            // 156-157      [Wh]
    176176        /* 6 of 8 */ uint16_t fullCyclesCnt;                                                                            // 158
    177         /* 8 of 8 */ uint16_t volatile UNIQUE_NAME(reserved);                                                           // 159
    178         /* 8 of 8 */ int64_t  mAs_AutoMode;                                                                                     // 160-163
    179         /* 8 of 8 */ int64_t  mWs_AutoMode;                                                                                     // 164-167
    180         /* 2 of 8 */ uint16_t ovp_sense;                                                                         // 168
    181         /* 4 of 8 */ uint16_t lvp_sense;                                                                        // 169
     177        /* 8 of 8 */ uint16_t volatile UNIQUE_NAME(reserved);                                           // 159
     178        /* 4 of 8 */ int32_t  mAh_AutoMode;                                                                                     // 160-161
     179        /* 6 of 8 */ uint16_t UNIQUE_NAME(reserved);                                                            // 162
     180        /* 8 of 8 */ uint16_t UNIQUE_NAME(reserved);                                                            // 163
     181        /* 4 of 8 */ int32_t  mWh_AutoMode;                                                                                     // 164-165
     182        /* 6 of 8 */ uint16_t UNIQUE_NAME(reserved);                                                            // 166
     183        /* 8 of 8 */ uint16_t UNIQUE_NAME(reserved);                                                            // 167
     184        /* 2 of 8 */ uint16_t ovp_sense;                                            // 168
     185        /* 4 of 8 */ uint16_t lvp_sense;                                            // 169
    182186        /* 6 of 8 */ uint16_t UNIQUE_NAME(reserved);                                                            // 170
    183187        /* 8 of 8 */ uint16_t UNIQUE_NAME(reserved);                                                            // 171
     
    186190        /* 6 of 8 */ uint16_t UNIQUE_NAME(reserved);                                                            // 174
    187191        /* 8 of 8 */ uint16_t UNIQUE_NAME(reserved);                                                            // 175
    188         /* 2 of 8 */ uint16_t UNIQUE_NAME(reserved);                                                            // 176
    189         /* 4 of 8 */ uint16_t UNIQUE_NAME(reserved);                                                            // 177
    190         /* 6 of 8 */ uint16_t UNIQUE_NAME(reserved);                                                            // 178
    191         /* 8 of 8 */ uint16_t UNIQUE_NAME(reserved);                                                            // 179
     192
    192193
    193194        // --- DEBUG WERTE
    194         /* 4 of 8 */ int32_t  mAh_AutoMode;                                                                                     // 180-181      [mWh]
    195         /* 8 of 8 */ int32_t  mWh_AutoMode;                                                                                     // 182-183      [mWh]
     195        /* 8 of 8 */ int64_t  mAs_AutoMode;                                                                                     // 176-179      [mWh]
     196        /* 8 of 8 */ int64_t  mWs_AutoMode;                                                                                     // 180-183      [mWh]
    196197        /* 8 of 8 */ int64_t  mWsCounter;                                                                                       // 184-187      [mWs]
    197198        /* 4 of 8 */ int32_t  mWhCounter;                                                                                       // 188-189      [mWh]
     
    209210        /* 4 of 8 */ int16_t  selfDischargeStatus;                                                                      // 206
    210211        /* 6 of 8 */ uint16_t selfDischargeTime;                                                                        // 207
    211         /* 8 of 8 */ uint8_t  message[24];                                                                                      // 208-219      ASCII-char message, limited to 8 letters
     212        /* 8 of 8 */ uint8_t  message[20];                                                                                      // 208-219      ASCII-char message, limited to 20 letters
    212213        /* 4 of 8 */ int32_t  current_buffer[SAMPLE_ARRAY_SIZE];                                        // 220-283
    213214        /* 8 of 8 */ int32_t  voltage_buffer[SAMPLE_ARRAY_SIZE];                                        // 284-347
  • trunk/fw_g473rct/SES/smartPro.emProject

    r24 r25  
    8383      <folder Name="src">
    8484        <file file_name="../Core/Src/adc.c" />
     85        <file file_name="../Core/Src/crc.c" />
    8586        <file file_name="../Core/Src/dma.c" />
    8687        <file file_name="../Core/Src/fdcan.c" />
    8788        <file file_name="../Core/Src/gpio.c" />
    8889        <file file_name="../Core/Src/i2c.c" />
     90        <file file_name="../Core/Src/main.c" />
     91        <file file_name="../Core/Src/rtc.c" />
    8992        <file file_name="../Core/Src/spi.c" />
    9093        <file file_name="../Core/Src/stm32g4xx_hal_msp.c" />
     
    151154        <file file_name="../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c" />
    152155        <file file_name="../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c" />
     156        <file file_name="../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_crc.c" />
     157        <file file_name="../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_crc_ex.c" />
    153158        <file file_name="../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c" />
    154159        <file file_name="../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c" />
     
    167172        <file file_name="../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c" />
    168173        <file file_name="../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c" />
     174        <file file_name="../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rtc.c" />
     175        <file file_name="../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rtc_ex.c" />
    169176        <file file_name="../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_spi.c" />
    170177        <file file_name="../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_spi_ex.c" />
     
    213220      <file file_name="src/fast_current.c" />
    214221      <file file_name="src/int_bat_voltage.c" />
    215       <file file_name="src/main.c" />
     222      <file file_name="src/main.c">
     223        <configuration Name="Common" build_exclude_from_build="Yes" />
     224      </file>
    216225      <file file_name="src/modbus.c" />
    217226      <file file_name="src/outputs.c" />
  • trunk/fw_g473rct/SES/smartPro.emSession

    r20 r25  
    1010  <FrameBufferWindow width="0" keepAspectRatio="0" zoomToFitWindow="0" showGrid="0" addressSpace="" format="0" height="0" autoEvaluate="0" scaleFactor="1" refreshPeriod="0" name="PowerPro_Debug" addressText="" accessByDisplayWidth="0"/>
    1111  <FrameBufferWindow width="0" keepAspectRatio="0" zoomToFitWindow="0" showGrid="0" addressSpace="" format="0" height="0" autoEvaluate="0" scaleFactor="1" refreshPeriod="0" name="PowerPro_Release" addressText="" accessByDisplayWidth="0"/>
     12  <FrameBufferWindow width="0" keepAspectRatio="0" zoomToFitWindow="0" showGrid="0" addressSpace="" format="0" height="0" autoEvaluate="0" scaleFactor="1" refreshPeriod="0" name="smartPro_Debug" addressText="" accessByDisplayWidth="0"/>
     13  <FrameBufferWindow width="0" keepAspectRatio="0" zoomToFitWindow="0" showGrid="0" addressSpace="" format="0" height="0" autoEvaluate="0" scaleFactor="1" refreshPeriod="0" name="smartPro_Debug125A_12V" addressText="" accessByDisplayWidth="0"/>
    1214 </FrameBuffer>
    1315 <Memory1>
     
    1517  <MemoryWindow addressSpace="" dataSize="1" autoEvaluate="0" viewMode="0" viewType="4" addressOrder="0" columnsText="" refreshPeriod="0" name="PowerPro_Debug" sizeText="" addressText=""/>
    1618  <MemoryWindow addressSpace="" dataSize="1" autoEvaluate="0" viewMode="0" viewType="4" addressOrder="0" columnsText="" refreshPeriod="0" name="PowerPro_Release" sizeText="" addressText=""/>
     19  <MemoryWindow addressSpace="" dataSize="1" autoEvaluate="0" viewMode="0" viewType="4" addressOrder="0" columnsText="" refreshPeriod="0" name="smartPro_Debug" sizeText="" addressText=""/>
     20  <MemoryWindow addressSpace="" dataSize="1" autoEvaluate="0" viewMode="0" viewType="4" addressOrder="0" columnsText="" refreshPeriod="0" name="smartPro_Debug125A_12V" sizeText="" addressText=""/>
    1721 </Memory1>
    1822 <Memory2>
     
    2024  <MemoryWindow addressSpace="" dataSize="1" autoEvaluate="0" viewMode="0" viewType="4" addressOrder="0" columnsText="" refreshPeriod="0" name="PowerPro_Debug" sizeText="" addressText=""/>
    2125  <MemoryWindow addressSpace="" dataSize="1" autoEvaluate="0" viewMode="0" viewType="4" addressOrder="0" columnsText="" refreshPeriod="0" name="PowerPro_Release" sizeText="" addressText=""/>
     26  <MemoryWindow addressSpace="" dataSize="1" autoEvaluate="0" viewMode="0" viewType="4" addressOrder="0" columnsText="" refreshPeriod="0" name="smartPro_Debug" sizeText="" addressText=""/>
     27  <MemoryWindow addressSpace="" dataSize="1" autoEvaluate="0" viewMode="0" viewType="4" addressOrder="0" columnsText="" refreshPeriod="0" name="smartPro_Debug125A_12V" sizeText="" addressText=""/>
    2228 </Memory2>
    2329 <Memory3>
     
    2531  <MemoryWindow addressSpace="" dataSize="1" autoEvaluate="0" viewMode="0" viewType="4" addressOrder="0" columnsText="" refreshPeriod="0" name="PowerPro_Debug" sizeText="" addressText=""/>
    2632  <MemoryWindow addressSpace="" dataSize="1" autoEvaluate="0" viewMode="0" viewType="4" addressOrder="0" columnsText="" refreshPeriod="0" name="PowerPro_Release" sizeText="" addressText=""/>
     33  <MemoryWindow addressSpace="" dataSize="1" autoEvaluate="0" viewMode="0" viewType="4" addressOrder="0" columnsText="" refreshPeriod="0" name="smartPro_Debug" sizeText="" addressText=""/>
     34  <MemoryWindow addressSpace="" dataSize="1" autoEvaluate="0" viewMode="0" viewType="4" addressOrder="0" columnsText="" refreshPeriod="0" name="smartPro_Debug125A_12V" sizeText="" addressText=""/>
    2735 </Memory3>
    2836 <Memory4>
     
    3038  <MemoryWindow addressSpace="" dataSize="1" autoEvaluate="0" viewMode="0" viewType="4" addressOrder="0" columnsText="" refreshPeriod="0" name="PowerPro_Debug" sizeText="" addressText=""/>
    3139  <MemoryWindow addressSpace="" dataSize="1" autoEvaluate="0" viewMode="0" viewType="4" addressOrder="0" columnsText="" refreshPeriod="0" name="PowerPro_Release" sizeText="" addressText=""/>
     40  <MemoryWindow addressSpace="" dataSize="1" autoEvaluate="0" viewMode="0" viewType="4" addressOrder="0" columnsText="" refreshPeriod="0" name="smartPro_Debug" sizeText="" addressText=""/>
     41  <MemoryWindow addressSpace="" dataSize="1" autoEvaluate="0" viewMode="0" viewType="4" addressOrder="0" columnsText="" refreshPeriod="0" name="smartPro_Debug125A_12V" sizeText="" addressText=""/>
    3242 </Memory4>
    3343 <Project>
    3444  <ProjectSessionItem path="smartPro"/>
    3545  <ProjectSessionItem path="smartPro;smartPro"/>
    36   <ProjectSessionItem path="smartPro;smartPro;Source Files"/>
     46  <ProjectSessionItem path="smartPro;smartPro;core"/>
     47  <ProjectSessionItem path="smartPro;smartPro;core;inc"/>
     48  <ProjectSessionItem path="smartPro;smartPro;core;src"/>
     49  <ProjectSessionItem path="smartPro;smartPro;HAL"/>
     50  <ProjectSessionItem path="smartPro;smartPro;HAL;inc"/>
     51  <ProjectSessionItem path="smartPro;smartPro;HAL;src"/>
     52  <ProjectSessionItem path="smartPro;smartPro;inc"/>
     53  <ProjectSessionItem path="smartPro;smartPro;Script Files"/>
     54  <ProjectSessionItem path="smartPro;smartPro;src"/>
     55  <ProjectSessionItem path="smartPro;smartPro;System Files_segger"/>
     56  <ProjectSessionItem path="smartPro;smartPro;systemfiles_st"/>
    3757 </Project>
    3858 <Register1>
     
    4060  <RegisterWindow invisibleNodes="" visibleNodes="TIM16/TIM16_CR1;TIM16/TIM16_CR2;TIM16/TIM16_DIER;TIM16/TIM16_SR;TIM16/TIM16_EGR;TIM16/TIM16_CCMR1_input;TIM16/TIM16_CCMR1_output;TIM16/TIM16_CCER;TIM16/TIM16_CNT;TIM16/TIM16_PSC;TIM16/TIM16_ARR;TIM16/TIM16_RCR;TIM16/TIM16_CCR1;TIM16/TIM16_BDTR;TIM16/TIM16_DCR;TIM16/TIM16_DMAR;TIM16/TIM16_AF1;TIM16/TIM16_TISEL;TIM17/TIM17_CR1;TIM17/TIM17_CR2;TIM17/TIM17_DIER;TIM17/TIM17_SR;TIM17/TIM17_EGR;TIM17/TIM17_CCMR1_input;TIM17/TIM17_CCMR1_output;TIM17/TIM17_CCER;TIM17/TIM17_CNT;TIM17/TIM17_PSC;TIM17/TIM17_ARR;TIM17/TIM17_RCR;TIM17/TIM17_CCR1;TIM17/TIM17_BDTR;TIM17/TIM17_DCR;TIM17/TIM17_DMAR;TIM17/TIM17_AF1;TIM17/TIM17_TISEL" binaryNodes="" asciiNodes="" openNodes="TIM16/TIM16_SR;TIM16/TIM16_CCER;TIM16/TIM16_CCR1;TIM17" name="PowerPro_Debug" decimalNodes="TIM17/TIM17_ARR;TIM17/TIM17_CCR1" octalNodes="" unsignedNodes="TIM16/TIM16_CNT;TIM16/TIM16_CCR1"/>
    4161  <RegisterWindow invisibleNodes="" visibleNodes="CPU - Current Context/r0;CPU - Current Context/r1;CPU - Current Context/r2;CPU - Current Context/r3;CPU - Current Context/r4;CPU - Current Context/r5;CPU - Current Context/r6;CPU - Current Context/r7;CPU - Current Context/r8;CPU - Current Context/r9;CPU - Current Context/r10;CPU - Current Context/r11;CPU - Current Context/r12;CPU - Current Context/sp(r13);CPU - Current Context/lr(r14);CPU - Current Context/pc(r15);CPU - Current Context/apsr;CPU/r0;CPU/r1;CPU/r2;CPU/r3;CPU/r4;CPU/r5;CPU/r6;CPU/r7;CPU/r8;CPU/r9;CPU/r10;CPU/r11;CPU/r12;CPU/sp(r13);CPU/lr(r14);CPU/pc(r15);CPU/xpsr;CPU/MSP;CPU/PSP;CPU/PRIMASK;CPU/CONTROL;CPU/internal" binaryNodes="" asciiNodes="" openNodes="CPU - Current Context" name="PowerPro_Release" decimalNodes="" octalNodes="" unsignedNodes=""/>
     62  <RegisterWindow invisibleNodes="" visibleNodes="CPU - Current Context/r0;CPU - Current Context/r1;CPU - Current Context/r2;CPU - Current Context/r3;CPU - Current Context/r4;CPU - Current Context/r5;CPU - Current Context/r6;CPU - Current Context/r7;CPU - Current Context/r8;CPU - Current Context/r9;CPU - Current Context/r10;CPU - Current Context/r11;CPU - Current Context/r12;CPU - Current Context/sp(r13);CPU - Current Context/lr(r14);CPU - Current Context/pc(r15);CPU - Current Context/apsr;CPU/r0;CPU/r1;CPU/r2;CPU/r3;CPU/r4;CPU/r5;CPU/r6;CPU/r7;CPU/r8;CPU/r9;CPU/r10;CPU/r11;CPU/r12;CPU/sp(r13);CPU/lr(r14);CPU/pc(r15);CPU/xpsr;CPU/MSP;CPU/PSP;CPU/PRIMASK;CPU/BASEPRI;CPU/FAULTMASK;CPU/CONTROL;CPU/internal;ADC1/ISR;ADC1/IER;ADC1/CR;ADC1/CFGR;ADC1/CFGR2;ADC1/SMPR1;ADC1/SMPR2;ADC1/TR1;ADC1/TR2;ADC1/TR3;ADC1/SQR1;ADC1/SQR2;ADC1/SQR3;ADC1/SQR4;ADC1/DR;ADC1/JSQR;ADC1/OFR1;ADC1/OFR2;ADC1/OFR3;ADC1/OFR4;ADC1/JDR1;ADC1/JDR2;ADC1/JDR3;ADC1/JDR4;ADC1/AWD2CR;ADC1/AWD3CR;ADC1/DIFSEL;ADC1/CALFACT;ADC1/GCOMP;ADC5/ISR;ADC5/IER;ADC5/CR;ADC5/CFGR;ADC5/CFGR2;ADC5/SMPR1;ADC5/SMPR2;ADC5/TR1;ADC5/TR2;ADC5/TR3;ADC5/SQR1;ADC5/SQR2;ADC5/SQR3;ADC5/SQR4;ADC5/DR;ADC5/JSQR;ADC5/OFR1;ADC5/OFR2;ADC5/OFR3;ADC5/OFR4;ADC5/JDR1;ADC5/JDR2;ADC5/JDR3;ADC5/JDR4;ADC5/AWD2CR;ADC5/AWD3CR;ADC5/DIFSEL;ADC5/CALFACT;ADC5/GCOMP" binaryNodes="" asciiNodes="" openNodes="CPU - Current Context;ADC1;ADC1/DR;ADC5;ADC5/CFGR;ADC5/DR" name="smartPro_Debug" decimalNodes="" octalNodes="" unsignedNodes=""/>
     63  <RegisterWindow invisibleNodes="" visibleNodes="VREFBUF/VREFBUF_CSR;VREFBUF/VREFBUF_CCR;ADC345_Common/CSR;ADC345_Common/CCR;ADC345_Common/CDR" binaryNodes="" asciiNodes="" openNodes="VREFBUF;VREFBUF/VREFBUF_CSR;VREFBUF/VREFBUF_CCR;ADC345_Common;ADC345_Common/CCR" name="smartPro_Debug125A_12V" decimalNodes="" octalNodes="" unsignedNodes=""/>
    4264 </Register1>
    4365 <Register2>
     
    4567  <RegisterWindow invisibleNodes="" visibleNodes="CPU - Current Context/r0;CPU - Current Context/r1;CPU - Current Context/r2;CPU - Current Context/r3;CPU - Current Context/r4;CPU - Current Context/r5;CPU - Current Context/r6;CPU - Current Context/r7;CPU - Current Context/r8;CPU - Current Context/r9;CPU - Current Context/r10;CPU - Current Context/r11;CPU - Current Context/r12;CPU - Current Context/sp(r13);CPU - Current Context/lr(r14);CPU - Current Context/pc(r15);CPU - Current Context/apsr;CPU/r0;CPU/r1;CPU/r2;CPU/r3;CPU/r4;CPU/r5;CPU/r6;CPU/r7;CPU/r8;CPU/r9;CPU/r10;CPU/r11;CPU/r12;CPU/sp(r13);CPU/lr(r14);CPU/pc(r15);CPU/xpsr;CPU/MSP;CPU/PSP;CPU/PRIMASK;CPU/CONTROL;CPU/internal" binaryNodes="" asciiNodes="" openNodes="CPU - Current Context" name="PowerPro_Debug" decimalNodes="" octalNodes="" unsignedNodes=""/>
    4668  <RegisterWindow invisibleNodes="" visibleNodes="CPU - Current Context/r0;CPU - Current Context/r1;CPU - Current Context/r2;CPU - Current Context/r3;CPU - Current Context/r4;CPU - Current Context/r5;CPU - Current Context/r6;CPU - Current Context/r7;CPU - Current Context/r8;CPU - Current Context/r9;CPU - Current Context/r10;CPU - Current Context/r11;CPU - Current Context/r12;CPU - Current Context/sp(r13);CPU - Current Context/lr(r14);CPU - Current Context/pc(r15);CPU - Current Context/apsr;CPU/r0;CPU/r1;CPU/r2;CPU/r3;CPU/r4;CPU/r5;CPU/r6;CPU/r7;CPU/r8;CPU/r9;CPU/r10;CPU/r11;CPU/r12;CPU/sp(r13);CPU/lr(r14);CPU/pc(r15);CPU/xpsr;CPU/MSP;CPU/PSP;CPU/PRIMASK;CPU/CONTROL;CPU/internal" binaryNodes="" asciiNodes="" openNodes="CPU - Current Context" name="PowerPro_Release" decimalNodes="" octalNodes="" unsignedNodes=""/>
     69  <RegisterWindow invisibleNodes="" visibleNodes="CPU - Current Context/r0;CPU - Current Context/r1;CPU - Current Context/r2;CPU - Current Context/r3;CPU - Current Context/r4;CPU - Current Context/r5;CPU - Current Context/r6;CPU - Current Context/r7;CPU - Current Context/r8;CPU - Current Context/r9;CPU - Current Context/r10;CPU - Current Context/r11;CPU - Current Context/r12;CPU - Current Context/sp(r13);CPU - Current Context/lr(r14);CPU - Current Context/pc(r15);CPU - Current Context/apsr;CPU/r0;CPU/r1;CPU/r2;CPU/r3;CPU/r4;CPU/r5;CPU/r6;CPU/r7;CPU/r8;CPU/r9;CPU/r10;CPU/r11;CPU/r12;CPU/sp(r13);CPU/lr(r14);CPU/pc(r15);CPU/xpsr;CPU/MSP;CPU/PSP;CPU/PRIMASK;CPU/BASEPRI;CPU/FAULTMASK;CPU/CONTROL;CPU/internal" binaryNodes="" asciiNodes="" openNodes="CPU - Current Context" name="smartPro_Debug" decimalNodes="" octalNodes="" unsignedNodes=""/>
     70  <RegisterWindow invisibleNodes="" visibleNodes="CPU - Current Context/r0;CPU - Current Context/r1;CPU - Current Context/r2;CPU - Current Context/r3;CPU - Current Context/r4;CPU - Current Context/r5;CPU - Current Context/r6;CPU - Current Context/r7;CPU - Current Context/r8;CPU - Current Context/r9;CPU - Current Context/r10;CPU - Current Context/r11;CPU - Current Context/r12;CPU - Current Context/sp(r13);CPU - Current Context/lr(r14);CPU - Current Context/pc(r15);CPU - Current Context/apsr;CPU/r0;CPU/r1;CPU/r2;CPU/r3;CPU/r4;CPU/r5;CPU/r6;CPU/r7;CPU/r8;CPU/r9;CPU/r10;CPU/r11;CPU/r12;CPU/sp(r13);CPU/lr(r14);CPU/pc(r15);CPU/xpsr;CPU/MSP;CPU/PSP;CPU/PRIMASK;CPU/BASEPRI;CPU/FAULTMASK;CPU/CONTROL;CPU/internal" binaryNodes="" asciiNodes="" openNodes="CPU - Current Context" name="smartPro_Debug125A_12V" decimalNodes="" octalNodes="" unsignedNodes=""/>
    4771 </Register2>
    4872 <Register3>
     
    5074  <RegisterWindow invisibleNodes="" visibleNodes="CPU - Current Context/r0;CPU - Current Context/r1;CPU - Current Context/r2;CPU - Current Context/r3;CPU - Current Context/r4;CPU - Current Context/r5;CPU - Current Context/r6;CPU - Current Context/r7;CPU - Current Context/r8;CPU - Current Context/r9;CPU - Current Context/r10;CPU - Current Context/r11;CPU - Current Context/r12;CPU - Current Context/sp(r13);CPU - Current Context/lr(r14);CPU - Current Context/pc(r15);CPU - Current Context/apsr;CPU/r0;CPU/r1;CPU/r2;CPU/r3;CPU/r4;CPU/r5;CPU/r6;CPU/r7;CPU/r8;CPU/r9;CPU/r10;CPU/r11;CPU/r12;CPU/sp(r13);CPU/lr(r14);CPU/pc(r15);CPU/xpsr;CPU/MSP;CPU/PSP;CPU/PRIMASK;CPU/CONTROL;CPU/internal" binaryNodes="" asciiNodes="" openNodes="CPU - Current Context" name="PowerPro_Debug" decimalNodes="" octalNodes="" unsignedNodes=""/>
    5175  <RegisterWindow invisibleNodes="" visibleNodes="CPU - Current Context/r0;CPU - Current Context/r1;CPU - Current Context/r2;CPU - Current Context/r3;CPU - Current Context/r4;CPU - Current Context/r5;CPU - Current Context/r6;CPU - Current Context/r7;CPU - Current Context/r8;CPU - Current Context/r9;CPU - Current Context/r10;CPU - Current Context/r11;CPU - Current Context/r12;CPU - Current Context/sp(r13);CPU - Current Context/lr(r14);CPU - Current Context/pc(r15);CPU - Current Context/apsr;CPU/r0;CPU/r1;CPU/r2;CPU/r3;CPU/r4;CPU/r5;CPU/r6;CPU/r7;CPU/r8;CPU/r9;CPU/r10;CPU/r11;CPU/r12;CPU/sp(r13);CPU/lr(r14);CPU/pc(r15);CPU/xpsr;CPU/MSP;CPU/PSP;CPU/PRIMASK;CPU/CONTROL;CPU/internal" binaryNodes="" asciiNodes="" openNodes="CPU - Current Context" name="PowerPro_Release" decimalNodes="" octalNodes="" unsignedNodes=""/>
     76  <RegisterWindow invisibleNodes="" visibleNodes="CPU - Current Context/r0;CPU - Current Context/r1;CPU - Current Context/r2;CPU - Current Context/r3;CPU - Current Context/r4;CPU - Current Context/r5;CPU - Current Context/r6;CPU - Current Context/r7;CPU - Current Context/r8;CPU - Current Context/r9;CPU - Current Context/r10;CPU - Current Context/r11;CPU - Current Context/r12;CPU - Current Context/sp(r13);CPU - Current Context/lr(r14);CPU - Current Context/pc(r15);CPU - Current Context/apsr;CPU/r0;CPU/r1;CPU/r2;CPU/r3;CPU/r4;CPU/r5;CPU/r6;CPU/r7;CPU/r8;CPU/r9;CPU/r10;CPU/r11;CPU/r12;CPU/sp(r13);CPU/lr(r14);CPU/pc(r15);CPU/xpsr;CPU/MSP;CPU/PSP;CPU/PRIMASK;CPU/BASEPRI;CPU/FAULTMASK;CPU/CONTROL;CPU/internal" binaryNodes="" asciiNodes="" openNodes="CPU - Current Context" name="smartPro_Debug" decimalNodes="" octalNodes="" unsignedNodes=""/>
     77  <RegisterWindow invisibleNodes="" visibleNodes="CPU - Current Context/r0;CPU - Current Context/r1;CPU - Current Context/r2;CPU - Current Context/r3;CPU - Current Context/r4;CPU - Current Context/r5;CPU - Current Context/r6;CPU - Current Context/r7;CPU - Current Context/r8;CPU - Current Context/r9;CPU - Current Context/r10;CPU - Current Context/r11;CPU - Current Context/r12;CPU - Current Context/sp(r13);CPU - Current Context/lr(r14);CPU - Current Context/pc(r15);CPU - Current Context/apsr;CPU/r0;CPU/r1;CPU/r2;CPU/r3;CPU/r4;CPU/r5;CPU/r6;CPU/r7;CPU/r8;CPU/r9;CPU/r10;CPU/r11;CPU/r12;CPU/sp(r13);CPU/lr(r14);CPU/pc(r15);CPU/xpsr;CPU/MSP;CPU/PSP;CPU/PRIMASK;CPU/BASEPRI;CPU/FAULTMASK;CPU/CONTROL;CPU/internal" binaryNodes="" asciiNodes="" openNodes="CPU - Current Context" name="smartPro_Debug125A_12V" decimalNodes="" octalNodes="" unsignedNodes=""/>
    5278 </Register3>
    5379 <Register4>
     
    5581  <RegisterWindow invisibleNodes="" visibleNodes="CPU - Current Context/r0;CPU - Current Context/r1;CPU - Current Context/r2;CPU - Current Context/r3;CPU - Current Context/r4;CPU - Current Context/r5;CPU - Current Context/r6;CPU - Current Context/r7;CPU - Current Context/r8;CPU - Current Context/r9;CPU - Current Context/r10;CPU - Current Context/r11;CPU - Current Context/r12;CPU - Current Context/sp(r13);CPU - Current Context/lr(r14);CPU - Current Context/pc(r15);CPU - Current Context/apsr;CPU/r0;CPU/r1;CPU/r2;CPU/r3;CPU/r4;CPU/r5;CPU/r6;CPU/r7;CPU/r8;CPU/r9;CPU/r10;CPU/r11;CPU/r12;CPU/sp(r13);CPU/lr(r14);CPU/pc(r15);CPU/xpsr;CPU/MSP;CPU/PSP;CPU/PRIMASK;CPU/CONTROL;CPU/internal" binaryNodes="" asciiNodes="" openNodes="CPU - Current Context" name="PowerPro_Debug" decimalNodes="" octalNodes="" unsignedNodes=""/>
    5682  <RegisterWindow invisibleNodes="" visibleNodes="CPU - Current Context/r0;CPU - Current Context/r1;CPU - Current Context/r2;CPU - Current Context/r3;CPU - Current Context/r4;CPU - Current Context/r5;CPU - Current Context/r6;CPU - Current Context/r7;CPU - Current Context/r8;CPU - Current Context/r9;CPU - Current Context/r10;CPU - Current Context/r11;CPU - Current Context/r12;CPU - Current Context/sp(r13);CPU - Current Context/lr(r14);CPU - Current Context/pc(r15);CPU - Current Context/apsr;CPU/r0;CPU/r1;CPU/r2;CPU/r3;CPU/r4;CPU/r5;CPU/r6;CPU/r7;CPU/r8;CPU/r9;CPU/r10;CPU/r11;CPU/r12;CPU/sp(r13);CPU/lr(r14);CPU/pc(r15);CPU/xpsr;CPU/MSP;CPU/PSP;CPU/PRIMASK;CPU/CONTROL;CPU/internal" binaryNodes="" asciiNodes="" openNodes="CPU - Current Context" name="PowerPro_Release" decimalNodes="" octalNodes="" unsignedNodes=""/>
     83  <RegisterWindow invisibleNodes="" visibleNodes="CPU - Current Context/r0;CPU - Current Context/r1;CPU - Current Context/r2;CPU - Current Context/r3;CPU - Current Context/r4;CPU - Current Context/r5;CPU - Current Context/r6;CPU - Current Context/r7;CPU - Current Context/r8;CPU - Current Context/r9;CPU - Current Context/r10;CPU - Current Context/r11;CPU - Current Context/r12;CPU - Current Context/sp(r13);CPU - Current Context/lr(r14);CPU - Current Context/pc(r15);CPU - Current Context/apsr;CPU/r0;CPU/r1;CPU/r2;CPU/r3;CPU/r4;CPU/r5;CPU/r6;CPU/r7;CPU/r8;CPU/r9;CPU/r10;CPU/r11;CPU/r12;CPU/sp(r13);CPU/lr(r14);CPU/pc(r15);CPU/xpsr;CPU/MSP;CPU/PSP;CPU/PRIMASK;CPU/BASEPRI;CPU/FAULTMASK;CPU/CONTROL;CPU/internal" binaryNodes="" asciiNodes="" openNodes="CPU - Current Context" name="smartPro_Debug" decimalNodes="" octalNodes="" unsignedNodes=""/>
     84  <RegisterWindow invisibleNodes="" visibleNodes="CPU - Current Context/r0;CPU - Current Context/r1;CPU - Current Context/r2;CPU - Current Context/r3;CPU - Current Context/r4;CPU - Current Context/r5;CPU - Current Context/r6;CPU - Current Context/r7;CPU - Current Context/r8;CPU - Current Context/r9;CPU - Current Context/r10;CPU - Current Context/r11;CPU - Current Context/r12;CPU - Current Context/sp(r13);CPU - Current Context/lr(r14);CPU - Current Context/pc(r15);CPU - Current Context/apsr;CPU/r0;CPU/r1;CPU/r2;CPU/r3;CPU/r4;CPU/r5;CPU/r6;CPU/r7;CPU/r8;CPU/r9;CPU/r10;CPU/r11;CPU/r12;CPU/sp(r13);CPU/lr(r14);CPU/pc(r15);CPU/xpsr;CPU/MSP;CPU/PSP;CPU/PRIMASK;CPU/BASEPRI;CPU/FAULTMASK;CPU/CONTROL;CPU/internal" binaryNodes="" asciiNodes="" openNodes="CPU - Current Context" name="smartPro_Debug125A_12V" decimalNodes="" octalNodes="" unsignedNodes=""/>
    5785 </Register4>
    5886 <Threads>
     
    6391 </TraceWindow>
    6492 <Watch1>
    65   <Watches active="1" update="Twice a Second"/>
     93  <Watches active="1" update="Twice a Second">
     94   <Watchpoint expression="adc12Data" name="adc12Data" radix="-1" linenumber="72" filename="src/main.c"/>
     95   <Watchpoint expression="adc1Data" name="adc1Data" radix="-1" linenumber="220" filename="src/main.c"/>
     96   <Watchpoint expression="adc2Data" name="adc2Data" radix="-1" linenumber="82" filename="src/main.c"/>
     97   <Watchpoint expression="adc5Data" name="adc5Data" radix="-1" linenumber="209" filename="src/main.c"/>
     98   <Watchpoint expression="chiptemperature" name="chiptemperature" radix="-1" linenumber="78" filename="src/chip_temperature.c"/>
     99   <Watchpoint expression="data" name="data" radix="-1" linenumber="719" filename="src/eeprom.c"/>
     100   <Watchpoint expression="dataToStore" name="dataToStore" radix="-1" linenumber="403" filename="src/eeprom.c"/>
     101   <Watchpoint expression="Dout" name="Dout" radix="16" linenumber="1008" filename="src/ads1260.c"/>
     102   <Watchpoint expression="huart2" name="huart2" radix="-1" linenumber="28" filename="../Core/Src/usart.c"/>
     103   <Watchpoint expression="modbusData" name="modbusData" radix="-1" linenumber="70" filename="src/main.c"/>
     104   <Watchpoint expression="replyHeader" name="replyHeader" radix="16" linenumber="947" filename="src/ads1260.c"/>
     105   <Watchpoint expression="sys_data" name="sys_data" radix="-1" linenumber="31" filename="src/sysdata.c"/>
     106   <Watchpoint expression="uart" name="uart" radix="16" linenumber="191" filename="src/modbus.c"/>
     107  </Watches>
    66108 </Watch1>
    67109 <Watch2>
     
    74116  <Watches active="0" update="Never"/>
    75117 </Watch4>
    76  <Files/>
    77  <EMStudioWindow activeProject="smartPro" fileDialogDefaultFilter="*" autoConnectTarget="J-Link" buildConfiguration="Debug" sessionSettings="" debugSearchFileMap="" fileDialogInitialDirectory="D:/Projekte/ecsSmartPro/trunk/fw_g473rct/SES/src" debugSearchPath="" autoConnectCapabilities="3199"/>
     118 <Files>
     119  <SessionOpenFile windowGroup="DockEditLeft" x="16" y="48" useTextEdit="1" path="src/main.c" left="0" top="38" codecName="Default"/>
     120  <SessionOpenFile windowGroup="DockEditLeft" x="0" y="217" useTextEdit="1" path="../Core/Src/stm32g4xx_it.c" left="0" top="196" codecName="Default"/>
     121  <SessionOpenFile windowGroup="DockEditLeft" x="0" y="420" useTextEdit="1" path="../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c" left="0" top="393" codecName="Default"/>
     122  <SessionOpenFile windowGroup="DockEditLeft" x="0" y="0" useTextEdit="1" path="../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c" left="0" top="0" codecName="Default"/>
     123  <SessionOpenFile windowGroup="DockEditLeft" x="161" y="1006" useTextEdit="1" path="src/ads1260.c" left="18" top="987" codecName="Default"/>
     124  <SessionOpenFile windowGroup="DockEditLeft" x="0" y="0" useTextEdit="1" path="../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c" left="0" top="0" codecName="Default"/>
     125  <SessionOpenFile windowGroup="DockEditLeft" x="4" y="112" useTextEdit="1" path="../Core/Src/gpio.c" left="0" top="97" codecName="Default"/>
     126  <SessionOpenFile windowGroup="DockEditLeft" x="0" y="410" useTextEdit="1" path="../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c" left="0" top="364" codecName="Default"/>
     127  <SessionOpenFile windowGroup="DockEditLeft" x="57" y="46" useTextEdit="1" path="../Core/Src/spi.c" left="0" top="30" codecName="Default"/>
     128  <SessionOpenFile windowGroup="DockEditLeft" x="25" y="40" useTextEdit="1" path="inc/ads1260.h" left="0" top="27" codecName="Default"/>
     129  <SessionOpenFile windowGroup="DockEditLeft" x="18" y="797" useTextEdit="1" path="../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_spi.h" left="0" top="784" codecName="Default"/>
     130  <SessionOpenFile windowGroup="DockEditLeft" x="9" y="311" useTextEdit="1" path="../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_crc.h" left="0" top="292" codecName="Default"/>
     131  <SessionOpenFile windowGroup="DockEditLeft" x="20" y="50" useTextEdit="1" path="../Core/Src/crc.c" left="0" selected="1" top="30" codecName="Default"/>
     132  <SessionOpenFile windowGroup="DockEditLeft" x="9" y="338" useTextEdit="1" path="../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_crc.c" left="0" top="319" codecName="Default"/>
     133 </Files>
     134 <EMStudioWindow activeProject="smartPro" fileDialogDefaultFilter="*" autoConnectTarget="J-Link" buildConfiguration="Debug125A_12V" sessionSettings="" debugSearchFileMap="" fileDialogInitialDirectory="D:/Projekte/ecsSmartPro/trunk/fw_g473rct/Core/Src" debugSearchPath="" autoConnectCapabilities="3711"/>
    78135</session>
  • trunk/fw_g473rct/SES/src/ads1260.c

    r20 r25  
    6161
    6262#define DEFAULT_ADS1260_TRANSMIT_TIMEOUT            (10)
    63 #define DEFAULT_ADS1260_TRANSMIT_RECEIVE_TIMEOUT    (10)
     63#define DEFAULT_ADS1260_TRANSMIT_RECEIVE_TIMEOUT    (1000)
    6464#define ADS1260_SELF_OFFSET_CALIBRATION_TIMEOUT     (2000)    // > 16 * sampletime muss eingestellt werden
    6565#define ADS1260_SYSTEM_OFFSET_CALIBRATION_TIMEOUT   (2000)
     
    776776
    777777  /* 4*/ //while(HAL_GPIO_ReadPin(ADC_DATA_READY_GPIO_Port, ADC_DATA_READY_Pin) == GPIO_PIN_RESET);
    778          HAL_NVIC_SetPriority(EXTI2_IRQn, 2, 0);
    779          HAL_NVIC_EnableIRQ(EXTI2_IRQn);
     778         //HAL_NVIC_SetPriority(EXTI2_IRQn, 2, 0);
     779         //HAL_NVIC_EnableIRQ(EXTI2_IRQn);
    780780
    781781  /* 5*/ ADS_1260_SetExternalReference(&hspi3);
     
    10051005        //HAL_GPIO_WritePin(ADC_SPI1_NSS_GPIO_Port, ADC_SPI1_NSS_Pin, GPIO_PIN_SET);
    10061006
    1007         if (Dout[0] == replyHeader && Dout[1] == Din[0] && Dout[2] == Din[1] && Dout[3] == Din[2] && Dout[5] == HAL_CRC_Calculate(&hcrc, (uint32_t*)&Dout[4], 1))
     1007        if (Dout[0] == replyHeader && Dout[1] == Din[0] && Dout[2] == Din[1] && Dout[3] == Din[2] && Dout[5] == HAL_CRC_Calculate(&hcrc, (uint32_t*)&Dout[4], 1))               
    10081008        {
    10091009            if ((Dout[4] & (1U << MODE3_STATENB)) && (Dout[4] & (1U << MODE3_CRCENB)))
  • trunk/fw_g473rct/SES/src/battery_voltage.c

    r24 r25  
    2020
    2121
    22 #define BATTERY_VOLTAGE_VOLTAGE_DIVIDER       6.0
    23 #define ADC_RESOLUTION                                            32768.0 //65536/2 da im differential mode
    24 #define ADC_OFFSET                                                        32768.0
    2522
    2623//      --- LOKALE TYPE DEFS - bitte hier dokumentieren-------------------------------
     
    5451
    5552  //Umrechung auf Eingangsspannung am Gerät mit Teiler
    56   sys_data.s.values.batteryVoltage = ((avgVal-ADC_OFFSET) * VREF * BATTERY_VOLTAGE_VOLTAGE_DIVIDER ) / ADC_RESOLUTION;
     53  sys_data.s.values.batteryVoltage = ((avgVal-BATTERY_VOLTAGE_ADC_OFFSET) * VREF * BATTERY_VOLTAGE_VOLTAGE_DIVIDER ) / BATTERY_VOLTAGE_ADC_RESOLUTION;
    5754
    5855 
     
    7673  //Berechnung schnelle Wert ohne Glättung:
    7774  //Umrechung auf Eingangsspannung am Gerät mit Teiler
    78   sys_data.s.values.fast_voltage = ((newVal-ADC_OFFSET) * VREF * BATTERY_VOLTAGE_VOLTAGE_DIVIDER ) / ADC_RESOLUTION;
     75  sys_data.s.values.fast_voltage = ((newVal-BATTERY_VOLTAGE_ADC_OFFSET) * VREF * BATTERY_VOLTAGE_VOLTAGE_DIVIDER ) / BATTERY_VOLTAGE_ADC_RESOLUTION;
    7976
    8077
  • trunk/fw_g473rct/SES/src/eeprom.c

    r20 r25  
    9494  int16_t         uBatEmptyCompStopTemp;                                        // We stop calculating uBatEmpty compensations when cell temperature is lower than this value
    9595  uint16_t        uBatEmptyCompStopVolt;                                        // uBatEmpty Voltage at temperatures lower than lvpCompStopTemp
    96 
    9796  int16_t         extraDischargeStrom_mA;                                       // For example, current that consumes LiPro itself
    98   uint32_t        dischargeTotalAh;
    99   uint32_t        chargeTotalAh;
    100   uint32_t        dischargeTotalWh;                                                     // 154-155      [mAs]
    101   uint32_t        chargeTotalWh;                                                        // 156-157      [mAs]
    102 
    10397  uint16_t        cefW;
    104   uint32_t        onTime;
     98
    10599
    106100} eeprom_data_t;
    107101
    108 typedef struct
    109 {
    110   // Schnittstellenparameter
    111   uint32_t        baudrate;
    112   uint16_t        parityMode;
    113   uint16_t        stopBits;
    114   uint16_t        slave_adress;
    115   uint16_t        ibn_day;
    116   uint16_t        ibn_month;
    117   uint16_t        ibn_year;
    118   uint16_t        user_id;
    119 
    120   // Offset und Gain
    121   int16_t         batteryCurrentOffsetRefTemperatureShunt;
    122   int16_t         batteryCurrentOffsetRefTemperatureChip;
    123   int16_t         batteryCurrentGainRefTempShunt;
    124   int16_t         batteryCurrentGainRefTempChip;
    125   int16_t         batteryCurrentOffsetTemperatureCalibrationTemperature;
    126   int16_t         batteryCurrentGainTemperatureCalibrationShuntTemperature;
    127   int16_t         batteryCurrentGainTemperatureCalibrationChipTemperature;
    128   int32_t         batteryCurrentOffsetRefshuntVoltage;
    129   int32_t         batteryCurrentOffsetCommonModeCalibrationVoltage;
    130   int32_t         batteryCurrentOffsetCommonModeCompensationFactor;
    131   int32_t         batteryCurrentOffsetTemperatureCompensationFactor;
    132   int32_t         batteryCurrentGainRefCurrent;
    133   int32_t         batteryCurrentGainTemperatureCompensationShuntFactor;
    134   int32_t         batteryCurrentGainTemperatureCompensationChipFactor;
    135 
    136   int32_t         currentOffset;
    137   uint32_t        currentGain;
    138 
    139   int64_t         mAsCounter;
    140   int32_t         detectedCapacity;
    141   int32_t         detectedEnergy;
    142   int32_t         mAh_AutoMode;
    143   int32_t         mWh_AutoMode;
    144 
    145   // battery parameter
    146   uint16_t        cef;
    147   uint16_t        peukert;
    148   uint32_t        cellCapacity;
    149   uint32_t        cellEnergy;
    150   uint16_t        iBatFull;
    151   uint16_t        tBatFull;
    152   uint16_t        uBatFull;
    153   uint16_t        uBatEmpty;
    154   uint8_t         socCalcMode;
    155   uint16_t        cellRatedDischargeTime;
    156 
    157   // Schaltausgänge
    158   uint16_t        lvpStart;                                                                     // Spannung ab der die LOW Voltage Protection aktiv wird in mV
    159   uint16_t        lvpStop;                                                                      // Spannung ab der die LOW Voltage Protection wieder inaktiv wird
    160   uint16_t        ovpStart;                                                                     // Spannung ab der die OVER Voltage Protection aktiv wird in mV
    161   uint16_t        ovpStop;                                                                      // Spannung ab der die OVER Voltage Protection wieder inaktiv wird
    162   int16_t         loadCurrentLimit;                                                     // maximaler Laststrom in A wenn der Strom größer ist als der eingestelle Wert dann wird die Laststrom Protection aktiv
    163   int16_t         chargeCurrentLimit;                                           // maximaler Ladestrom in A wenn der Strom größer ist als der eingestelle Wert dann wird die Ladestrom Protection aktiv
    164   int16_t         chargeStopHighTemperatureStart;                       // Abschalttemperatur Ladung wegen zu hoher Temperatur
    165   int16_t         chargeStopHighTemperatureStop;                        // Wiedereinschalttemperatur
    166   int16_t         chargeStopLowTemperatureStart;                        // Abschalttemperatur Ladung wegen zu niedriger Temperatur
    167   int16_t         chargeStopLowTemperatureStop;                         // Wiedereinschalttemperatur
    168   int16_t         dischargeStopHighTemperatureStart;            // Abschalttemperatur Entladung wegen zu hoher Temperatur
    169   int16_t         dischargeStopHighTemperatureStop;                     // Wiedereinschalttemperatur
    170   int16_t         dischargeStopLowTemperatureStart;                     // Abschalttemperatur EntLadung wegen zu niedriger Temperatur
    171   int16_t         dischargeStopLowTemperatureStop;                      // Wiedereinschalttemperatur
    172 
    173   int16_t         uBatEmptyCompStartTemp;                                       // We start calculating uBatEmpty compensations only when cell temperature is lower than this value
    174   int16_t         uBatEmptyCompStopTemp;                                        // We stop calculating uBatEmpty compensations when cell temperature is lower than this value
    175   uint16_t        uBatEmptyCompStopVolt;                                        // uBatEmpty Voltage at temperatures lower than lvpCompStopTemp
    176 
    177   int16_t         extraDischargeStrom_mA;                                       // For example, current that consumes LiPro itself
    178   uint32_t        dischargeTotalAh;
    179   uint32_t        chargeTotalAh;
    180   uint32_t        dischargeTotalWh;                                                     // 154-155      [mAs]
    181   uint32_t        chargeTotalWh;                                                        // 156-157      [mAs]
    182 
    183   uint16_t        cefW;
    184   uint32_t        onTime;
    185 
    186 }eeprom_old_data_t;
     102
    187103
    188104// Substitute for #if sizeof(some_type) == sizeof(another_type) functionality
     
    248164
    249165// muss modulo 8 noch hinzufügen wg 8 byte alignement
    250 static uint64_t eepromData[(SIZE_OF_DATA_TO_STORE / 8) + 1];
     166static uint8_t eepromData[SIZE_OF_DATA_TO_STORE];
    251167
    252168
     
    336252
    337253        /* extraDischargeStrom_mA       */                                                                                      7,                              // mA, current that LiPro consumes itself
    338         /* dischargeTotalAh                     */                                                                                      0,                              // Ah for negative current counter
    339         /* chargeTotalAh                        */                                                                                      0,                              // Ah for total charge counter
    340         /* dischargeTotalWh                     */                                                                                      0,
    341         /* chargeTotalWh                        */                                                                                      0,
    342 
    343254        /* cefW         */                                                                                                                      90,                             // 90% cef for Wh calculations
    344         /* onTime       */                                                                                                                      0
     255       
    345256
    346257};
     
    359270startType_t EEPROM_isFirstStart(void)
    360271{
    361   // sizeof eeprom_new_data_t must not be equal to size of eeprom_old_data_t
    362   BUILD_BUG_ON(sizeof(eeprom_data_t) == sizeof(eeprom_old_data_t));
    363272
    364273  uint8_t firstStartCatcher;
     
    390299{
    391300  eeprom_stored_data_t* dataToStore;
    392   uint32_t PageError;
    393   uint32_t Address;
    394   uint32_t x;
    395 
    396301  printf("EEPROM FULL RESTORE!\n");
    397302
     
    458363
    459364  dataToStore->changedData.extraDischargeStrom_mA                                                                       = defaultEepromData.extraDischargeStrom_mA;
    460   dataToStore->changedData.dischargeTotalAh                                                                                     = defaultEepromData.dischargeTotalAh;
    461   dataToStore->changedData.chargeTotalAh                                                                                        = defaultEepromData.chargeTotalAh;
    462   dataToStore->changedData.dischargeTotalWh                                                                                     = defaultEepromData.dischargeTotalWh;
    463   dataToStore->changedData.chargeTotalWh                                                                                        = defaultEepromData.chargeTotalWh;
    464365  dataToStore->changedData.cefW                                                                                                         = defaultEepromData.cefW;
    465   dataToStore->changedData.onTime                                                                                                       = defaultEepromData.onTime;
    466 
    467   dataToStore->changedData.mAsCounter                                                                                           = defaultEepromData.mAsCounter;
    468   dataToStore->changedData.detectedCapacity                                                                                     = defaultEepromData.detectedCapacity;
    469   dataToStore->changedData.detectedEnergy                                                                                       = defaultEepromData.detectedEnergy;
    470   dataToStore->changedData.mAs_AutoMode                                                                                         = defaultEepromData.mAs_AutoMode;
    471   dataToStore->changedData.mWs_AutoMode                                                                                         = defaultEepromData.mWs_AutoMode;
    472 
     366 
     367
     368 
    473369  // Eeprom Status Infos
    474370  dataToStore->eepromState.writeCounter++;
     
    567463
    568464  dataToStore->changedData.extraDischargeStrom_mA                                                                       = defaultEepromData.extraDischargeStrom_mA;
    569   dataToStore->changedData.dischargeTotalAh                                                                                     = defaultEepromData.dischargeTotalAh;
    570   dataToStore->changedData.chargeTotalAh                                                                                        = defaultEepromData.chargeTotalAh;
    571465  dataToStore->changedData.cefW                                                                                                         = defaultEepromData.cefW;
    572   dataToStore->changedData.onTime                                                                                                       = defaultEepromData.onTime;
    573 
    574   // These fields are new
    575   dataToStore->changedData.mAsCounter                                                                                           = defaultEepromData.mAsCounter;
    576   dataToStore->changedData.detectedCapacity                                                                                     = defaultEepromData.detectedCapacity;
    577   dataToStore->changedData.detectedEnergy                                                                                       = defaultEepromData.detectedEnergy;
    578   dataToStore->changedData.mAs_AutoMode                                                                                         = defaultEepromData.mAs_AutoMode;
    579   dataToStore->changedData.mWs_AutoMode                                                                                         = defaultEepromData.mWs_AutoMode;
    580   dataToStore->changedData.dischargeTotalWh                                                                                     = defaultEepromData.dischargeTotalWh;
    581   dataToStore->changedData.chargeTotalWh                                                                                        = defaultEepromData.chargeTotalWh;
    582 
     466 
     467
     468
     469 
    583470
    584471  dataToStore->eepromState.writeCounter   = dataToStore->eepromState.writeCounter++;
     
    599486{
    600487  eeprom_stored_data_t* dataToStore;
    601   uint32_t PageError;
    602   uint32_t Address;
    603   uint32_t x;
    604488  /****************LESE_WERTE_AUS_SYSDATA*********************/
    605489  printf("EEPROM STORE CONFIG!\n");
     
    669553  dataToStore->changedData.uBatEmptyCompStopTemp = data->s.parameter.uBatEmptyCompStopTemp;
    670554  dataToStore->changedData.uBatEmptyCompStopVolt = data->s.parameter.uBatEmptyCompStopVolt;
    671 
    672555  dataToStore->changedData.extraDischargeStrom_mA = data->s.parameter.extraDischargeStrom_mA;
    673   dataToStore->changedData.dischargeTotalAh = data->s.values.dischargeTotalAh;
    674   dataToStore->changedData.chargeTotalAh = data->s.values.chargeTotalAh;
    675   dataToStore->changedData.dischargeTotalWh = data->s.values.dischargeTotalWh;
    676   dataToStore->changedData.chargeTotalWh = data->s.values.chargeTotalWh;
    677556  dataToStore->changedData.cefW = data->s.parameter.cefW;
    678   dataToStore->changedData.onTime = data->s.values.onTime;
    679 
    680   dataToStore->changedData.mAsCounter = data->s.values.mAsCounter;
    681   dataToStore->changedData.detectedCapacity = data->s.values.detectedCapacity;
    682   dataToStore->changedData.detectedEnergy = data->s.values.detectedEnergy;
    683   dataToStore->changedData.mAs_AutoMode = data->s.values.mAs_AutoMode;
    684   dataToStore->changedData.mWs_AutoMode = data->s.values.mWs_AutoMode;
    685 
     557 
    686558  // Eeprom Status Infos
    687559  dataToStore->eepromState.writeCounter++;
     
    781653
    782654  data->s.parameter.extraDischargeStrom_mA                                                                              = dataToStore->changedData.extraDischargeStrom_mA;
     655  data->s.parameter.cefW                                                                                                                = dataToStore->changedData.cefW;
     656
     657
     658  //  Geräteinformation
     659  data->s.parameter.sn                                                                                                                  = dataToStore->deviceInfo.SN;
     660
     661  // prüfe Eeprom Status Infos
     662  //dataToStore->eepromState.writeCounter ++ ;
     663  if (dataToStore->eepromState.structureSize != sizeof(eeprom_stored_data_t)) return HAL_ERROR;
     664  if (dataToStore->eepromState.revisionInfo != 0) return HAL_ERROR;
     665  if (dataToStore->eepromState.firstStartId != CONFIG_ID) return HAL_ERROR;
     666
     667
     668  return HAL_OK;
     669}
     670
     671/*Entfernte EEPROM Werte
     672
    783673  data->s.values.dischargeTotalAh                                                                                               = dataToStore->changedData.dischargeTotalAh;
    784674  data->s.values.chargeTotalAh                                                                                                  = dataToStore->changedData.chargeTotalAh;
    785675  data->s.values.dischargeTotalWh                                                                                               = dataToStore->changedData.dischargeTotalWh;
    786676  data->s.values.chargeTotalWh                                                                                                  = dataToStore->changedData.chargeTotalWh;
    787   data->s.parameter.cefW                                                                                                                = dataToStore ->changedData.cefW;
    788677  data->s.values.onTime                                                                                                                 = dataToStore->changedData.onTime;
    789 
    790678  data->s.values.mAsCounter                                                                                                             = dataToStore->changedData.mAsCounter;
    791679  data->s.values.detectedCapacity                                                                                               = dataToStore->changedData.detectedCapacity;
     
    793681  data->s.values.mAs_AutoMode                                                                                                   = dataToStore->changedData.mAs_AutoMode;
    794682  data->s.values.mWs_AutoMode                                                                                                   = dataToStore->changedData.mWs_AutoMode;
    795 
    796   //  Geräteinformation
    797   data->s.parameter.sn                                                                                                                  = dataToStore->deviceInfo.SN;
    798 
    799   // prüfe Eeprom Status Infos
    800   //dataToStore->eepromState.writeCounter ++ ;
    801   if (dataToStore->eepromState.structureSize != sizeof(eeprom_stored_data_t)) return HAL_ERROR;
    802   if (dataToStore->eepromState.revisionInfo != 0) return HAL_ERROR;
    803   if (dataToStore->eepromState.firstStartId != CONFIG_ID) return HAL_ERROR;
    804 
    805   return HAL_OK;
    806 }
     683*/
     684
    807685
    808686//--- NEW Functions
  • trunk/fw_g473rct/SES/src/esr.c

    r20 r25  
    44#include "esr.h"
    55#include <stdlib.h>
    6 #include <stdio.h>
     6#include "main.h"
     7#include "battery_voltage.h"
     8#include "fast_current.h"
     9
    710
    811
    912int32_t current_buffer[SAMPLE_ARRAY_SIZE]; 
    1013int32_t voltage_buffer[SAMPLE_ARRAY_SIZE];
    11 int32_t current_buffer_fast[SAMPLE_ARRAY_SIZE]; 
    12 int32_t voltage_buffer_fast[SAMPLE_ARRAY_SIZE];
     14//int32_t current_buffer_fast[SAMPLE_ARRAY_SIZE]; 
     15//int32_t voltage_buffer_fast[SAMPLE_ARRAY_SIZE];
     16
     17extern uint16_t adc12Data[SAMPLE_ARRAY_SIZE][2];
    1318
    1419
     
    105110    for (x=0; x < SAMPLE_ARRAY_SIZE; x++)
    106111    {
    107       sys_data.s.values.current_buffer[(SAMPLE_ARRAY_SIZE-1)-x] = current_buffer[x];
    108       sys_data.s.values.voltage_buffer[(SAMPLE_ARRAY_SIZE-1)-x] = voltage_buffer[x];
     112      sys_data.s.values.current_buffer[(SAMPLE_ARRAY_SIZE-1)-x] = adc12Data[x][0];
     113      sys_data.s.values.voltage_buffer[(SAMPLE_ARRAY_SIZE-1)-x] = adc12Data[x][1];
    109114    }
    110115
     
    126131  sys_data.s.values.esrCalcTime = sys_data.s.values.onTime - last_refresh;
    127132
    128   for (x=SAMPLE_ARRAY_SIZE-1; x>0; x--)
    129   {
    130     current_buffer_fast[x] = current_buffer_fast[x-1];
    131     voltage_buffer_fast[x] = voltage_buffer_fast[x-1];
    132   }
    133 
    134   // Neue Werte ins array aufnehmen
    135   current_buffer_fast[0] = sys_data.s.values.fast_current;
    136   voltage_buffer_fast[0] = sys_data.s.values.shuntVoltage;
    137133
    138134
     
    150146  for (x=0; x < SAMPLE_ARRAY_SIZE; x++)
    151147  {
    152      if (abs(current_buffer_fast[x]) < minI)  { minI = abs(current_buffer_fast[x]); minIPos  = x; }
    153      if (abs(current_buffer_fast[x]) >= maxI) { maxI = abs(current_buffer_fast[x]); maxdIPos = x; } 
    154      if (abs(voltage_buffer_fast[x]) < minU)  { minU = abs(voltage_buffer_fast[x]); minUPos = x; }
    155      if (abs(voltage_buffer_fast[x]) > maxU)  { maxU = abs(voltage_buffer_fast[x]); maxUPos = x; }
     148     if (adc12Data[x][0] < minI)  { minI = adc12Data[x][0]; minIPos  = x; }
     149     if (adc12Data[x][0] >= maxI) { maxI = adc12Data[x][0]; maxdIPos = x; } 
     150     if (adc12Data[x][1] < minU)  { minU = adc12Data[x][1]; minUPos = x; }
     151     if (adc12Data[x][1] > maxU)  { maxU = adc12Data[x][1]; maxUPos = x; }
    156152  }
    157153
     
    160156
    161157  //Delta berechnen
    162   int32_t dI = abs (maxI - minI);
    163   int32_t dU = abs (maxU - minU);
     158  int32_t dI = maxI - minI;
     159  int32_t dU = maxU - minU;
     160
     161  //Umrechnung in mV / mA
     162  dI = dI * ((int64_t) VREF / FAST_CURRENT_SHUNT_RESISTOR /  FAST_CURRENT_I_SENSE_GAIN /  FAST_CURRENT_ADC_RESOLUTION);
     163  dI = dI * (sys_data.s.parameter.batteryCurrentGainCorrectionFaktor / 1000000.0);
     164
     165  dU = dU  * VREF * BATTERY_VOLTAGE_VOLTAGE_DIVIDER / BATTERY_VOLTAGE_ADC_RESOLUTION ;
     166 
    164167
    165168  //Minimale Belastung Prüfen ob es genügent Änderungen gab
     
    168171  int32_t min_dI;
    169172  min_dI = sys_data.s.parameter.cellCapacity /  sys_data.s.parameter.cellRatedDischargeTime; //Nennlaststrom  in mA
    170   min_dI = min_dI / 4 ;
    171 
    172   int32_t min_dU = 100;
    173  
    174   if( dI < min_dI)
     173  min_dI = min_dI / 10 ;
     174 
     175
     176  int32_t min_dU = 10;
     177 
     178  if( abs(dI) < min_dI)
    175179  {
    176180 
     
    180184  //printf("dI change!\r\n");
    181185
    182   if (dU < min_dU) {
     186  if (abs(dU) < min_dU) {
    183187    return -2;
    184188  }
     
    191195  int32_t dIMaxPos=-1;
    192196 
     197
     198
     199  //Finde Position der flanke
    193200  for (x=0; x < (SAMPLE_ARRAY_SIZE-1); x++)
    194201  {
    195     dIx = abs(current_buffer_fast[x+1] - current_buffer_fast[x]);
     202    dIx = adc12Data[x+1][0] - adc12Data[x][0];
    196203    if (dIx > dIMax) { dIMax = dIx; dIMaxPos = x; }
    197204  }
    198205
    199 
    200 
    201   if (dIMaxPos == SAMPLE_ARRAY_SIZE / 2)
    202   {
    203     //ESR berechnen!
    204     sys_data.s.values.esr_fast = ( (double)dU / (double) dI) * 1000;
    205     last_refresh = sys_data.s.values.onTime;
    206      
    207 
    208     for (x=0; x < SAMPLE_ARRAY_SIZE; x++)
    209     {
    210       sys_data.s.values.current_buffer_fast[(SAMPLE_ARRAY_SIZE-1)-x] = current_buffer_fast[x];
    211       sys_data.s.values.voltage_buffer_fast[(SAMPLE_ARRAY_SIZE-1)-x] = voltage_buffer_fast[x];
    212     }
    213 
    214 
    215 
    216 
    217   }
     206  if ((dIMaxPos < 5 ) || (dIMaxPos > (SAMPLE_ARRAY_SIZE-5) ))
     207  {
     208        return -3;
     209  }
     210
     211
     212  //ESR berechnen!
     213  sys_data.s.values.esr_fast = ( (double)dU / (double) dI) * 1000;
     214  last_refresh = sys_data.s.values.onTime;
     215       
     216
     217  for (x=0; x < SAMPLE_ARRAY_SIZE; x++)
     218  {
     219        sys_data.s.values.current_buffer_fast[x] = (int32_t) adc12Data[x][0] - FAST_CURRENT_ADC_OFFSET  ;
     220        sys_data.s.values.voltage_buffer_fast[x] = (int32_t) adc12Data[x][1] - BATTERY_VOLTAGE_ADC_OFFSET ;
     221  }
     222
     223
     224
     225
     226 
    218227  return 0;   
    219228}
  • trunk/fw_g473rct/SES/src/fast_current.c

    r24 r25  
    1717
    1818//      --- LOKALE DEFINES - bitte hier dokumentieren --------------------------------
    19 
    20 #define I_SENSE_GAIN    40.0
    21 #define ADC_OFFSET                                                        32768
    22 #define ADC_RESOLUTION                                            32768 //65536/2 da im differential mode
    23 
    24 
    25   #if (DEVICETYPE == 500)
    26     #define SHUNT_RESISTOR      0.000125       
    27   #elif (DEVICETYPE == 250)
    28     #define SHUNT_RESISTOR      0.000250       
    29   #elif (DEVICETYPE == 125)
    30     #define SHUNT_RESISTOR      0.000500       
    31   #else
    32   #error No valid device type
    33   #endif
    34                
    3519
    3620
     
    5539  //Umrechung auf Strom
    5640  double temp_current;
    57   temp_current = ((int32_t) newVal - ADC_OFFSET) * VREF ;
    58   temp_current = temp_current / ADC_RESOLUTION;
    59   temp_current = temp_current / I_SENSE_GAIN ;
    60   temp_current = temp_current / SHUNT_RESISTOR ;
     41  temp_current = ((int32_t) newVal - FAST_CURRENT_ADC_OFFSET) * VREF ;
     42  temp_current = temp_current / FAST_CURRENT_ADC_RESOLUTION;
     43  temp_current = temp_current / FAST_CURRENT_I_SENSE_GAIN ;
     44  temp_current = temp_current / FAST_CURRENT_SHUNT_RESISTOR ;
    6145  sys_data.s.values.fast_current = temp_current * (sys_data.s.parameter.batteryCurrentGainCorrectionFaktor / 1000000.0);
    6246 
  • trunk/fw_g473rct/SES/src/main.c

    r24 r25  
    4444#include "chip_temperature.h"
    4545#include "shunt_temperature.h"
     46#include "esr.h"
     47#include "ads1260.h"
     48#include "outputs.h"
     49#include "crc.h"
    4650/* USER CODE END Includes */
    4751
     
    139143  MX_USB_PCD_Init();
    140144  /* USER CODE BEGIN 2 */
     145  MX_CRC_Init(); //Cube is not generating this call ?!
    141146  printf("Test debug io\r\n");
    142147  SYS_DATA_Init();
     
    207212     Error_Handler();
    208213  }
     214
     215
     216  // ADS1260 Initialierung
     217  ADS1260_init();
     218  printf("ADS1260 Init\n");
     219  OUTPUTS_Init();
    209220
    210221  /* USER CODE END 2 */
     
    249260      sys_data.s.values.lvp_sense =  (adc5Data[3] * VREF * 21 ) / 65536.0;
    250261        }
     262
     263
     264        if (newCurrentValue == 1)
     265    {
     266      ADS1260_ConversionFinished();
     267      ESR_Exec();
     268
     269      newCurrentValue = 0;
     270
     271    }
    251272
    252273        if(sys_data.s.parameter.command != 0)
  • trunk/fw_g473rct/SES/src/sysdata.c

    r23 r25  
    3737
    3838
    39         sys_data.s.parameter.fw_revision_major     = 2;
    40         sys_data.s.parameter.fw_revision_minor     = 1;
    41         sys_data.s.parameter.fw_revision_revision  = 5;
     39        sys_data.s.parameter.fw_revision_major     = 1;
     40        sys_data.s.parameter.fw_revision_minor     = 0;
     41        sys_data.s.parameter.fw_revision_revision  = 0;
    4242
    4343        sys_data.s.values.batteryCurrentMax = INT32_MIN;
     
    5353        sys_data.s.parameter.test[3] = 5;
    5454
     55        sys_data.s.values.message[0] =  'a';
     56        sys_data.s.values.message[1] =  'b';
     57        sys_data.s.values.message[18] = 'y';
     58        sys_data.s.values.message[19] = 'z';
     59
    5560}
  • trunk/fw_g473rct/cmake/stm32cubemx/CMakeLists.txt

    r20 r25  
    2727    ${CMAKE_CURRENT_SOURCE_DIR}/../../Core/Src/fdcan.c
    2828    ${CMAKE_CURRENT_SOURCE_DIR}/../../Core/Src/i2c.c
     29    ${CMAKE_CURRENT_SOURCE_DIR}/../../Core/Src/rtc.c
    2930    ${CMAKE_CURRENT_SOURCE_DIR}/../../Core/Src/spi.c
    3031    ${CMAKE_CURRENT_SOURCE_DIR}/../../Core/Src/usart.c
     
    6162    ${CMAKE_CURRENT_SOURCE_DIR}/../../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c
    6263    ${CMAKE_CURRENT_SOURCE_DIR}/../../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c
     64    ${CMAKE_CURRENT_SOURCE_DIR}/../../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rtc.c
     65    ${CMAKE_CURRENT_SOURCE_DIR}/../../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rtc_ex.c
    6366    ${CMAKE_CURRENT_SOURCE_DIR}/../../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_spi.c
    6467    ${CMAKE_CURRENT_SOURCE_DIR}/../../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_spi_ex.c
  • trunk/fw_g473rct/fw_g473rct.ioc

    r24 r25  
    106106CAD.pinconfig=
    107107CAD.provider=
     108CRC.CRCLength=CRC_POLYLENGTH_8B
     109CRC.DefaultInitValueUse=DEFAULT_INIT_VALUE_DISABLE
     110CRC.DefaultPolynomialUse=DEFAULT_POLYNOMIAL_DISABLE
     111CRC.IPParameters=DefaultPolynomialUse,DefaultInitValueUse,InitValue,CRCLength
     112CRC.InitValue=0xFF
    108113Dma.ADC1.0.Direction=DMA_PERIPH_TO_MEMORY
    109114Dma.ADC1.0.EventEnable=DISABLE
     
    256261Mcu.IP11=NVIC
    257262Mcu.IP12=RCC
    258 Mcu.IP13=SPI3
    259 Mcu.IP14=SYS
    260 Mcu.IP15=USART1
    261 Mcu.IP16=USART2
    262 Mcu.IP17=USB
     263Mcu.IP13=RTC
     264Mcu.IP14=SPI3
     265Mcu.IP15=SYS
     266Mcu.IP16=USART1
     267Mcu.IP17=USART2
     268Mcu.IP18=USB
    263269Mcu.IP2=ADC3
    264270Mcu.IP3=ADC4
     
    269275Mcu.IP8=FDCAN3
    270276Mcu.IP9=I2C3
    271 Mcu.IPNb=18
     277Mcu.IPNb=19
    272278Mcu.Name=STM32G473R(B-C-E)Tx
    273279Mcu.Package=LQFP64
     
    318324Mcu.Pin49=VP_CRC_VS_CRC
    319325Mcu.Pin5=PC0
    320 Mcu.Pin50=VP_SYS_V_VREFBUF
    321 Mcu.Pin51=VP_SYS_VS_Systick
    322 Mcu.Pin52=VP_SYS_VS_DBSignals
     326Mcu.Pin50=VP_RTC_VS_RTC_Activate
     327Mcu.Pin51=VP_SYS_V_VREFBUF
     328Mcu.Pin52=VP_SYS_VS_Systick
     329Mcu.Pin53=VP_SYS_VS_DBSignals
    323330Mcu.Pin6=PC1
    324331Mcu.Pin7=PA0
    325332Mcu.Pin8=PA1
    326333Mcu.Pin9=PA2
    327 Mcu.PinsNb=53
     334Mcu.PinsNb=54
    328335Mcu.ThirdPartyNb=0
    329336Mcu.UserConstants=
     
    340347NVIC.DMA1_Channel7_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
    341348NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
     349NVIC.EXTI2_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
    342350NVIC.ForceEnableDMAVector=true
    343351NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
     
    380388PA3.Signal=USART2_RX
    381389PA4.GPIOParameters=GPIO_Label
    382 PA4.GPIO_Label=LED_FUNC
     390PA4.GPIO_Label=LED_FUNCTION
    383391PA4.Locked=true
    384392PA4.Signal=GPIO_Output
     
    467475PC12.Signal=SPI3_MOSI
    468476PC13.GPIOParameters=GPIO_Label
    469 PC13.GPIO_Label=AUX_ENABLE
     477PC13.GPIO_Label=AUX_EN
    470478PC13.Locked=true
    471479PC13.Signal=GPIO_Output
     
    486494PC9.Mode=I2C
    487495PC9.Signal=I2C3_SDA
    488 PD2.GPIOParameters=GPIO_Label
     496PD2.GPIOParameters=GPIO_Label,GPIO_ModeDefaultEXTI
    489497PD2.GPIO_Label=ADC_DATA_READY
     498PD2.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_FALLING
    490499PD2.Locked=true
    491500PD2.Signal=GPXTI2
     
    553562RCC.I2C4Freq_Value=100000000
    554563RCC.I2SFreq_Value=100000000
    555 RCC.IPParameters=ADC12CLockSelection,ADC12Freq_Value,ADC345CLockSelection,ADC345Freq_Value,AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CK48CLockSelection,CRSFreq_Value,CortexFreq_Value,EXTERNAL_CLOCK_VALUE,FCLKCortexFreq_Value,FDCANFreq_Value,FamilyName,HCLKFreq_Value,HRTIM1Freq_Value,HSE_VALUE,HSI48_VALUE,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,I2C4Freq_Value,I2SFreq_Value,LPTIM1Freq_Value,LPUART1Freq_Value,LSCOPinFreq_Value,LSI_VALUE,MCO1PinFreq_Value,PLLM,PLLN,PLLP,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLRCLKFreq_Value,PLLSourceVirtual,PWRFreq_Value,QSPIFreq_Value,RNGFreq_Value,SAI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,UART4Freq_Value,UART5Freq_Value,USART1Freq_Value,USART2Freq_Value,USART3Freq_Value,USBFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value
     564RCC.IPParameters=ADC12CLockSelection,ADC12Freq_Value,ADC345CLockSelection,ADC345Freq_Value,AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CK48CLockSelection,CRSFreq_Value,CortexFreq_Value,EXTERNAL_CLOCK_VALUE,FCLKCortexFreq_Value,FDCANFreq_Value,FamilyName,HCLKFreq_Value,HRTIM1Freq_Value,HSE_VALUE,HSI48_VALUE,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,I2C4Freq_Value,I2SFreq_Value,LPTIM1Freq_Value,LPUART1Freq_Value,LSCOPinFreq_Value,LSI_VALUE,MCO1PinFreq_Value,PLLM,PLLN,PLLP,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLRCLKFreq_Value,PLLSourceVirtual,PWRFreq_Value,QSPIFreq_Value,RNGFreq_Value,RTCClockSelection,RTCFreq_Value,SAI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,UART4Freq_Value,UART5Freq_Value,USART1Freq_Value,USART2Freq_Value,USART3Freq_Value,USBFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value
    556565RCC.LPTIM1Freq_Value=100000000
    557566RCC.LPUART1Freq_Value=100000000
     
    569578RCC.QSPIFreq_Value=100000000
    570579RCC.RNGFreq_Value=48000000
     580RCC.RTCClockSelection=RCC_RTCCLKSOURCE_LSE
     581RCC.RTCFreq_Value=32768
    571582RCC.SAI1Freq_Value=100000000
    572583RCC.SYSCLKFreq_VALUE=100000000
     
    582593SH.GPXTI2.0=GPIO_EXTI2
    583594SH.GPXTI2.ConfNb=1
    584 SPI3.CalculateBaudRate=50.0 MBits/s
     595SPI3.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_8
     596SPI3.CLKPhase=SPI_PHASE_2EDGE
     597SPI3.CalculateBaudRate=12.5 MBits/s
     598SPI3.DataSize=SPI_DATASIZE_8BIT
    585599SPI3.Direction=SPI_DIRECTION_2LINES
    586 SPI3.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,VirtualNSS
     600SPI3.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,VirtualNSS,DataSize,CLKPhase,BaudRatePrescaler
    587601SPI3.Mode=SPI_MODE_MASTER
    588602SPI3.VirtualNSS=VM_NSSHARD
     
    604618VP_CRC_VS_CRC.Mode=CRC_Activate
    605619VP_CRC_VS_CRC.Signal=CRC_VS_CRC
     620VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled
     621VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate
    606622VP_SYS_VS_DBSignals.Mode=DisableDeadBatterySignals
    607623VP_SYS_VS_DBSignals.Signal=SYS_VS_DBSignals
Note: See TracChangeset for help on using the changeset viewer.