Ignore:
Timestamp:
Feb 7, 2025, 1:40:58 PM (3 months ago)
Author:
Zed
Message:

Modbus Master and Slave Hardware were tested.

Location:
ctrl/firmware/Main/CubeMX
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • ctrl/firmware/Main/CubeMX/Core/Src/freertos.c

    r79 r83  
    2323#include "main.h"
    2424#include "cmsis_os.h"
     25#include "queue.h"
    2526
    2627/* Private includes ----------------------------------------------------------*/
    2728/* USER CODE BEGIN Includes */
    2829
    29 #include "stdio.h"
     30#include <stdio.h>
    3031
    3132#include "keys_task.h"
    3233#include "eth_task.h"
     34#include "mb_slave_task.h"
     35#include "beeper_task.h"
    3336
    3437/* USER CODE END Includes */
     
    4346/* USER CODE BEGIN PD */
    4447
    45 #define KEYS_TASK_STACK_DEPTH_WORDS                               (128U)
    46 #define ETH_TASK_STACK_DEPTH_WORDS                                (2048U)
     48#define KEYS_TASK_STACK_DEPTH_WORDS                                     (128U)
     49#define ETH_TASK_STACK_DEPTH_WORDS                                      (2048U)
     50#define MB_SLAVE_TASK_STACK_DEPTH_WORDS                         (1024U)
     51#define BEEPER_TASK_STACK_DEPTH_WORDS                           (128U)
    4752
    4853/* USER CODE END PD */
     
    5661/* USER CODE BEGIN Variables */
    5762
    58 static StackType_t keysTaskStackBuffer[KEYS_TASK_STACK_DEPTH_WORDS]                             __attribute__((section(".DTCM_RAM")));
    59 static StackType_t ethTaskStackBuffer[ETH_TASK_STACK_DEPTH_WORDS]                               __attribute__((section(".DTCM_RAM")));
     63static StackType_t keysTaskStackBuffer[KEYS_TASK_STACK_DEPTH_WORDS]                                             __attribute__((section(".DTCM_RAM")));
     64static StackType_t ethTaskStackBuffer[ETH_TASK_STACK_DEPTH_WORDS]                                               __attribute__((section(".DTCM_RAM")));
     65static StackType_t mbSlaveTaskStackBuffer[MB_SLAVE_TASK_STACK_DEPTH_WORDS]                              __attribute__((section(".DTCM_RAM")));
     66static StackType_t beeperTaskStackBuffer[BEEPER_TASK_STACK_DEPTH_WORDS]                                 __attribute__((section(".DTCM_RAM")));
     67static uint8_t beeperQueueStorageArea[BEEPER_QUEUE_SIZE * BEEPER_QUEUE_ITEM_SIZE]               __attribute__((section(".DTCM_RAM")));
     68
    6069static StaticTask_t keysTaskBuffer;
    6170static StaticTask_t ethTaskBuffer;
     71static StaticTask_t mbSlaveTaskBuffer;
     72static StaticTask_t beeperTaskBuffer;
     73static StaticQueue_t beeperQueueBuffer;
     74
    6275static const char* const keysTaskName = "ScanKeysTask";
    6376static const char* const ethTaskName = "EthTask";
     77static const char* const mbSlaveTaskName = "MBSlaveTask";
     78static const char* const beeperTaskName = "BeeperTask";
     79
     80
    6481
    6582/* USER CODE END Variables */
     
    133150
    134151  /* USER CODE BEGIN RTOS_QUEUES */
    135   /* add queues, ... */
     152
     153  beeperQueue = xQueueCreateStatic(BEEPER_QUEUE_SIZE, BEEPER_QUEUE_ITEM_SIZE, beeperQueueStorageArea, &beeperQueueBuffer);
     154  if (beeperQueue == NULL) printf("Cannot create Beeper Queue!\n");
     155
    136156  /* USER CODE END RTOS_QUEUES */
    137157
     
    148168  r = xTaskCreateStatic(ethTaskStart, ethTaskName, ETH_TASK_STACK_DEPTH_WORDS, NULL, 25, ethTaskStackBuffer, &ethTaskBuffer);
    149169  if (r == NULL) printf("Cannot create %s!\n", ethTaskName);
     170
     171  r = xTaskCreateStatic(mbSlaveTaskStart, mbSlaveTaskName, MB_SLAVE_TASK_STACK_DEPTH_WORDS, NULL, 25, mbSlaveTaskStackBuffer, &mbSlaveTaskBuffer);
     172  if (r == NULL) printf("Cannot create %s!\n", mbSlaveTaskName);
     173
     174  r = xTaskCreateStatic(beeperTaskStart, beeperTaskName, BEEPER_TASK_STACK_DEPTH_WORDS, NULL, 25, beeperTaskStackBuffer, &beeperTaskBuffer);
     175  if (r == NULL) printf("Cannot create %s!\n", beeperTaskName);
    150176
    151177  /* USER CODE END RTOS_THREADS */
     
    167193{
    168194  /* USER CODE BEGIN mainTaskStart */
     195
     196  UNUSED(argument);
     197
    169198  /* Infinite loop */
    170199  for(;;)
  • ctrl/firmware/Main/CubeMX/Core/Src/main.c

    r82 r83  
    125125  MX_GPIO_Init();
    126126  MX_DMA_Init();
    127   MX_MDMA_Init();
     127  //MX_MDMA_Init();
    128128  MX_RTC_Init();
    129129  MX_SPI4_Init();
  • ctrl/firmware/Main/CubeMX/Core/Src/sdmmc.c

    r75 r83  
    4646  hsd1.Init.BusWide = SDMMC_BUS_WIDE_4B;
    4747  hsd1.Init.HardwareFlowControl = SDMMC_HARDWARE_FLOW_CONTROL_ENABLE;
    48   hsd1.Init.ClockDiv = 1;
     48  hsd1.Init.ClockDiv = 2;
    4949  /* USER CODE BEGIN SDMMC1_Init 2 */
    5050
  • ctrl/firmware/Main/CubeMX/Core/Src/stm32h7xx_it.c

    r82 r83  
    298298  /* USER CODE BEGIN USART2_IRQn 0 */
    299299
     300  extern modbus_t lb_mbData;
     301  MODBUS_UART_IRQHandler(&huart2, &lb_mbData);
     302  return;
     303
    300304  /* USER CODE END USART2_IRQn 0 */
    301305  HAL_UART_IRQHandler(&huart2);
     
    395399{
    396400  /* USER CODE BEGIN USART10_IRQn 0 */
    397   extern modbus_t lb_mbData;
    398   MODBUS_UART_IRQHandler(&huart10, &lb_mbData);
    399   return;
    400 
     401
     402  //extern modbus_t lb_mbData;
     403  //MODBUS_UART_IRQHandler(&huart10, &lb_mbData);
     404  //return;
    401405
    402406  /* USER CODE END USART10_IRQn 0 */
  • ctrl/firmware/Main/CubeMX/Core/Src/usart.c

    r81 r83  
    3838  /* USER CODE BEGIN USART2_Init 0 */
    3939
     40  // This USART is responsible for Modbus Slave operations
     41
    4042  /* USER CODE END USART2_Init 0 */
    4143
  • ctrl/firmware/Main/CubeMX/charger.ioc

    r82 r83  
    348348NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:true\:false
    349349NVIC.TIM3_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
    350 NVIC.TIM7_IRQn=true\:15\:0\:false\:false\:true\:false\:false\:true\:true
     350NVIC.TIM7_IRQn=true\:15\:0\:true\:false\:true\:false\:false\:true\:true
    351351NVIC.TIM8_CC_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
    352352NVIC.TimeBase=TIM7_IRQn
     
    620620RCC.I2C123Freq_Value=100000000
    621621RCC.I2C4Freq_Value=100000000
    622 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,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
     622RCC.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
    623623RCC.LPTIM1Freq_Value=100000000
    624624RCC.LPTIM2Freq_Value=100000000
     
    629629RCC.MCO2PinFreq_Value=100000000
    630630RCC.PLL2FRACN=0
     631RCC.PLL2_VCI_Range-AdvancedSettings=RCC_PLL2VCIRANGE_3
    631632RCC.PLLFRACN=0
    632633RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
Note: See TracChangeset for help on using the changeset viewer.