Ignore:
Timestamp:
Feb 11, 2025, 4:00:08 PM (3 months ago)
Author:
Zed
Message:

BME280 data transfer works ok. Device returns its ID 0x60.

Location:
ctrl/firmware/Main/CubeMX
Files:
4 added
5 edited

Legend:

Unmodified
Added
Removed
  • ctrl/firmware/Main/CubeMX/Core/Inc/main.h

    r84 r88  
    126126#define ETH_SPI_NSS_Pin GPIO_PIN_4
    127127#define ETH_SPI_NSS_GPIO_Port GPIOB
     128#define BME_I2C_SCL_Pin GPIO_PIN_6
     129#define BME_I2C_SCL_GPIO_Port GPIOB
     130#define BME_I2C_SDA_Pin GPIO_PIN_7
     131#define BME_I2C_SDA_GPIO_Port GPIOB
    128132#define ETH_SPI_INT_Pin GPIO_PIN_8
    129133#define ETH_SPI_INT_GPIO_Port GPIOB
  • ctrl/firmware/Main/CubeMX/Core/Src/freertos.c

    r87 r88  
    3636#include "beeper_task.h"
    3737#include "onewire_task.h"
     38#include "bme_task.h"
    3839
    3940/* USER CODE END Includes */
     
    5354#define BEEPER_TASK_STACK_DEPTH_WORDS                           (128U)
    5455#define ONEWIRE_TASK_STACK_DEPTH_WORDS                          (128U)
     56#define BME_TASK_STACK_DEPTH_WORDS                                      (256U)
    5557
    5658/* USER CODE END PD */
     
    6971static StackType_t beeperTaskStackBuffer[BEEPER_TASK_STACK_DEPTH_WORDS]                                 __attribute__((section(".DTCM_RAM")));
    7072static StackType_t onewireTaskStackBuffer[ONEWIRE_TASK_STACK_DEPTH_WORDS]                               __attribute__((section(".DTCM_RAM")));
     73static StackType_t bmeTaskStackBuffer[BME_TASK_STACK_DEPTH_WORDS]                                               __attribute__((section(".DTCM_RAM")));
    7174
    7275static uint8_t beeperQueueStorageArea[BEEPER_QUEUE_SIZE * BEEPER_QUEUE_ITEM_SIZE]               __attribute__((section(".DTCM_RAM")));
     
    7881static StaticTask_t beeperTaskBuffer                                                                                                    __attribute__((section(".DTCM_RAM")));
    7982static StaticTask_t onewireTaskBuffer                                                                                                   __attribute__((section(".DTCM_RAM")));
     83static StaticTask_t bmeTaskBuffer                                                                                                               __attribute__((section(".DTCM_RAM")));
    8084
    8185static StaticQueue_t beeperQueueBuffer                                                                                                  __attribute__((section(".DTCM_RAM")));
     
    8791static const char* const beeperTaskName = "BeeperTask";
    8892static const char* const onewireTaskName = "1WireTask";
    89 
     93static const char* const bmeTaskName = "BMETask";
    9094
    9195/* USER CODE END Variables */
     
    190194  if (r == NULL) printf("Cannot create %s!\n", onewireTaskName);
    191195
     196  r = xTaskCreateStatic(bmeTaskStart, bmeTaskName, BME_TASK_STACK_DEPTH_WORDS, NULL, 24, bmeTaskStackBuffer, &bmeTaskBuffer);
     197  if (r == NULL) printf("Cannot create %s!\n", bmeTaskName);
     198
    192199  /* USER CODE END RTOS_THREADS */
    193200
  • ctrl/firmware/Main/CubeMX/Core/Src/gpio.c

    r84 r88  
    128128
    129129  /*Configure GPIO pins : PB0 PB1 PB2 PB11
    130                            PB12 PB13 PB3 PB5
    131                            PB6 PB7 */
     130                           PB12 PB13 PB3 PB5 */
    132131  GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_11
    133                           |GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_3|GPIO_PIN_5
    134                           |GPIO_PIN_6|GPIO_PIN_7;
     132                          |GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_3|GPIO_PIN_5;
    135133  GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
    136134  GPIO_InitStruct.Pull = GPIO_NOPULL;
  • ctrl/firmware/Main/CubeMX/Core/Src/main.c

    r86 r88  
    2222#include "dma.h"
    2323#include "fatfs.h"
     24#include "i2c.h"
    2425#include "mdma.h"
    2526#include "memorymap.h"
     
    140141  MX_USART10_UART_Init();
    141142  MX_TIM6_Init();
     143  MX_I2C1_Init();
    142144  /* USER CODE BEGIN 2 */
    143145
     
    193195  * in the RCC_OscInitTypeDef structure.
    194196  */
    195   RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE|RCC_OSCILLATORTYPE_LSE;
     197  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_HSE
     198                              |RCC_OSCILLATORTYPE_LSE;
    196199  RCC_OscInitStruct.HSEState = RCC_HSE_ON;
    197200  RCC_OscInitStruct.LSEState = RCC_LSE_ON;
     201  RCC_OscInitStruct.HSIState = RCC_HSI_DIV1;
     202  RCC_OscInitStruct.HSICalibrationValue = 64;
    198203  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
    199204  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
     
    246251  PeriphClkInitStruct.PLL3.PLL3P = 2;
    247252  PeriphClkInitStruct.PLL3.PLL3Q = 8;
    248   PeriphClkInitStruct.PLL3.PLL3R = 2;
     253  PeriphClkInitStruct.PLL3.PLL3R = 4;
    249254  PeriphClkInitStruct.PLL3.PLL3RGE = RCC_PLL3VCIRANGE_0;
    250255  PeriphClkInitStruct.PLL3.PLL3VCOSEL = RCC_PLL3VCOMEDIUM;
  • ctrl/firmware/Main/CubeMX/charger.ioc

    r87 r88  
    210210Mcu.IP0=CORTEX_M7
    211211Mcu.IP1=DEBUG
    212 Mcu.IP10=SDMMC1
    213 Mcu.IP11=SPI2
    214 Mcu.IP12=SPI4
    215 Mcu.IP13=SYS
    216 Mcu.IP14=TIM3
    217 Mcu.IP15=TIM6
    218 Mcu.IP16=TIM8
    219 Mcu.IP17=USART2
    220 Mcu.IP18=USART3
    221 Mcu.IP19=USART10
     212Mcu.IP10=RTC
     213Mcu.IP11=SDMMC1
     214Mcu.IP12=SPI2
     215Mcu.IP13=SPI4
     216Mcu.IP14=SYS
     217Mcu.IP15=TIM3
     218Mcu.IP16=TIM6
     219Mcu.IP17=TIM8
     220Mcu.IP18=USART2
     221Mcu.IP19=USART3
    222222Mcu.IP2=DMA
     223Mcu.IP20=USART10
    223224Mcu.IP3=FATFS
    224225Mcu.IP4=FREERTOS
    225 Mcu.IP5=MDMA
    226 Mcu.IP6=MEMORYMAP
    227 Mcu.IP7=NVIC
    228 Mcu.IP8=RCC
    229 Mcu.IP9=RTC
    230 Mcu.IPNb=20
     226Mcu.IP5=I2C1
     227Mcu.IP6=MDMA
     228Mcu.IP7=MEMORYMAP
     229Mcu.IP8=NVIC
     230Mcu.IP9=RCC
     231Mcu.IPNb=21
    231232Mcu.Name=STM32H723ZETx
    232233Mcu.Package=LQFP144
     
    277278Mcu.Pin49=PB4(NJTRST)
    278279Mcu.Pin5=PH0-OSC_IN
    279 Mcu.Pin50=PB8
    280 Mcu.Pin51=PB9
    281 Mcu.Pin52=VP_FATFS_VS_SDIO
    282 Mcu.Pin53=VP_FREERTOS_VS_CMSIS_V2
    283 Mcu.Pin54=VP_RTC_VS_RTC_Activate
    284 Mcu.Pin55=VP_RTC_VS_RTC_Calendar
    285 Mcu.Pin56=VP_SYS_VS_tim7
    286 Mcu.Pin57=VP_TIM3_VS_ClockSourceINT
    287 Mcu.Pin58=VP_TIM6_VS_ClockSourceINT
    288 Mcu.Pin59=VP_TIM8_VS_ControllerModeReset
     280Mcu.Pin50=PB6
     281Mcu.Pin51=PB7
     282Mcu.Pin52=PB8
     283Mcu.Pin53=PB9
     284Mcu.Pin54=VP_FATFS_VS_SDIO
     285Mcu.Pin55=VP_FREERTOS_VS_CMSIS_V2
     286Mcu.Pin56=VP_RTC_VS_RTC_Activate
     287Mcu.Pin57=VP_RTC_VS_RTC_Calendar
     288Mcu.Pin58=VP_SYS_VS_tim7
     289Mcu.Pin59=VP_TIM3_VS_ClockSourceINT
    289290Mcu.Pin6=PH1-OSC_OUT
    290 Mcu.Pin60=VP_TIM8_VS_ClockSourceINT
    291 Mcu.Pin61=VP_MEMORYMAP_VS_MEMORYMAP
     291Mcu.Pin60=VP_TIM6_VS_ClockSourceINT
     292Mcu.Pin61=VP_TIM8_VS_ControllerModeReset
     293Mcu.Pin62=VP_TIM8_VS_ClockSourceINT
     294Mcu.Pin63=VP_MEMORYMAP_VS_MEMORYMAP
    292295Mcu.Pin7=PF15
    293296Mcu.Pin8=PG0
    294297Mcu.Pin9=PG1
    295 Mcu.PinsNb=62
     298Mcu.PinsNb=64
    296299Mcu.ThirdParty0=STMicroelectronics.X-CUBE-AZRTOS-H7.3.3.0
    297300Mcu.ThirdPartyNb=1
     
    395398PB4(NJTRST).PinState=GPIO_PIN_SET
    396399PB4(NJTRST).Signal=GPIO_Output
     400PB6.GPIOParameters=GPIO_Label
     401PB6.GPIO_Label=BME_I2C_SCL
     402PB6.Locked=true
     403PB6.Mode=I2C
     404PB6.Signal=I2C1_SCL
     405PB7.GPIOParameters=GPIO_Label
     406PB7.GPIO_Label=BME_I2C_SDA
     407PB7.Locked=true
     408PB7.Mode=I2C
     409PB7.Signal=I2C1_SDA
    397410PB8.GPIOParameters=GPIO_Label,GPIO_ModeDefaultEXTI
    398411PB8.GPIO_Label=ETH_SPI_INT
     
    620633RCC.DIVR2=10
    621634RCC.DIVR2Freq_Value=25000000
    622 RCC.DIVR3Freq_Value=100000000
     635RCC.DIVR3=4
     636RCC.DIVR3Freq_Value=50000000
    623637RCC.FDCANFreq_Value=100000000
    624638RCC.FMCFreq_Value=100000000
     
    626640RCC.HCLK3ClockFreq_Value=100000000
    627641RCC.HCLKFreq_Value=100000000
    628 RCC.I2C123Freq_Value=100000000
     642RCC.I2C123CLockSelection=RCC_I2C1235CLKSOURCE_HSI
     643RCC.I2C123Freq_Value=64000000
    629644RCC.I2C4Freq_Value=100000000
    630 RCC.IPParameters=ADCFreq_Value,AHB12Freq_Value,AHB4Freq_Value,APB1Freq_Value,APB2Freq_Value,APB3Freq_Value,APB4Freq_Value,AXIClockFreq_Value,CECFreq_Value,CKPERFreq_Value,CortexFreq_Value,CpuClockFreq_Value,D1CPREFreq_Value,DFSDMACLkFreq_Value,DFSDMFreq_Value,DIVM1,DIVM2,DIVM3,DIVN1,DIVN2,DIVN3,DIVP1Freq_Value,DIVP2Freq_Value,DIVP3Freq_Value,DIVQ1Freq_Value,DIVQ2,DIVQ2Freq_Value,DIVQ3,DIVQ3Freq_Value,DIVR1Freq_Value,DIVR2,DIVR2Freq_Value,DIVR3Freq_Value,FDCANFreq_Value,FMCFreq_Value,FamilyName,HCLK3ClockFreq_Value,HCLKFreq_Value,I2C123Freq_Value,I2C4Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM345Freq_Value,LPUART1Freq_Value,LTDCFreq_Value,MCO1PinFreq_Value,MCO2PinFreq_Value,PLL2FRACN,PLL2_VCI_Range-AdvancedSettings,PLLFRACN,PLLSourceVirtual,QSPIFreq_Value,RNGFreq_Value,RTCClockSelection,RTCFreq_Value,SAI1Freq_Value,SAI4AFreq_Value,SAI4BFreq_Value,SDMMCFreq_Value,SPDIFRXFreq_Value,SPI123CLockSelection,SPI123Freq_Value,SPI45Freq_Value,SPI6Freq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,Spi45ClockSelection,Tim1OutputFreq_Value,Tim2OutputFreq_Value,TraceFreq_Value,USART16CLockSelection,USART16Freq_Value,USART234578CLockSelection,USART234578Freq_Value,USBFreq_Value,VCO1OutputFreq_Value,VCO2OutputFreq_Value,VCO3OutputFreq_Value,VCOInput1Freq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value
     645RCC.IPParameters=ADCFreq_Value,AHB12Freq_Value,AHB4Freq_Value,APB1Freq_Value,APB2Freq_Value,APB3Freq_Value,APB4Freq_Value,AXIClockFreq_Value,CECFreq_Value,CKPERFreq_Value,CortexFreq_Value,CpuClockFreq_Value,D1CPREFreq_Value,DFSDMACLkFreq_Value,DFSDMFreq_Value,DIVM1,DIVM2,DIVM3,DIVN1,DIVN2,DIVN3,DIVP1Freq_Value,DIVP2Freq_Value,DIVP3Freq_Value,DIVQ1Freq_Value,DIVQ2,DIVQ2Freq_Value,DIVQ3,DIVQ3Freq_Value,DIVR1Freq_Value,DIVR2,DIVR2Freq_Value,DIVR3,DIVR3Freq_Value,FDCANFreq_Value,FMCFreq_Value,FamilyName,HCLK3ClockFreq_Value,HCLKFreq_Value,I2C123CLockSelection,I2C123Freq_Value,I2C4Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM345Freq_Value,LPUART1Freq_Value,LTDCFreq_Value,MCO1PinFreq_Value,MCO2PinFreq_Value,PLL2FRACN,PLL2_VCI_Range-AdvancedSettings,PLLFRACN,PLLSourceVirtual,QSPIFreq_Value,RNGFreq_Value,RTCClockSelection,RTCFreq_Value,SAI1Freq_Value,SAI4AFreq_Value,SAI4BFreq_Value,SDMMCFreq_Value,SPDIFRXFreq_Value,SPI123CLockSelection,SPI123Freq_Value,SPI45Freq_Value,SPI6Freq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,Spi45ClockSelection,Tim1OutputFreq_Value,Tim2OutputFreq_Value,TraceFreq_Value,USART16CLockSelection,USART16Freq_Value,USART234578CLockSelection,USART234578Freq_Value,USBFreq_Value,VCO1OutputFreq_Value,VCO2OutputFreq_Value,VCO3OutputFreq_Value,VCOInput1Freq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value
    631646RCC.LPTIM1Freq_Value=100000000
    632647RCC.LPTIM2Freq_Value=100000000
    633648RCC.LPTIM345Freq_Value=100000000
    634649RCC.LPUART1Freq_Value=100000000
    635 RCC.LTDCFreq_Value=100000000
     650RCC.LTDCFreq_Value=50000000
    636651RCC.MCO1PinFreq_Value=64000000
    637652RCC.MCO2PinFreq_Value=100000000
Note: See TracChangeset for help on using the changeset viewer.