Compare commits
2 Commits
5b6405cf29
...
b47d71cf42
| Author | SHA1 | Date | |
|---|---|---|---|
| b47d71cf42 | |||
| 533a09e5dd |
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[submodule "Core/Lib/FT_CAN_AL"]
|
||||||
|
path = Core/Lib/FT_CAN_AL
|
||||||
|
url = ssh://git@git.fasttube.de:313/FaSTTUBe/FT_CAN_AL.git
|
||||||
@ -46,6 +46,7 @@
|
|||||||
/* #define HAL_DCMI_MODULE_ENABLED */
|
/* #define HAL_DCMI_MODULE_ENABLED */
|
||||||
#define HAL_DMA2D_MODULE_ENABLED
|
#define HAL_DMA2D_MODULE_ENABLED
|
||||||
/* #define HAL_ETH_MODULE_ENABLED */
|
/* #define HAL_ETH_MODULE_ENABLED */
|
||||||
|
/* #define HAL_ETH_LEGACY_MODULE_ENABLED */
|
||||||
/* #define HAL_NAND_MODULE_ENABLED */
|
/* #define HAL_NAND_MODULE_ENABLED */
|
||||||
/* #define HAL_NOR_MODULE_ENABLED */
|
/* #define HAL_NOR_MODULE_ENABLED */
|
||||||
/* #define HAL_OTFDEC_MODULE_ENABLED */
|
/* #define HAL_OTFDEC_MODULE_ENABLED */
|
||||||
@ -220,8 +221,8 @@
|
|||||||
#define USE_HAL_WWDG_REGISTER_CALLBACKS 0U /* WWDG register callback disabled */
|
#define USE_HAL_WWDG_REGISTER_CALLBACKS 0U /* WWDG register callback disabled */
|
||||||
|
|
||||||
/* ########################### Ethernet Configuration ######################### */
|
/* ########################### Ethernet Configuration ######################### */
|
||||||
#define ETH_TX_DESC_CNT 4 /* number of Ethernet Tx DMA descriptors */
|
#define ETH_TX_DESC_CNT 4U /* number of Ethernet Tx DMA descriptors */
|
||||||
#define ETH_RX_DESC_CNT 4 /* number of Ethernet Rx DMA descriptors */
|
#define ETH_RX_DESC_CNT 4U /* number of Ethernet Rx DMA descriptors */
|
||||||
|
|
||||||
#define ETH_MAC_ADDR0 (0x02UL)
|
#define ETH_MAC_ADDR0 (0x02UL)
|
||||||
#define ETH_MAC_ADDR1 (0x00UL)
|
#define ETH_MAC_ADDR1 (0x00UL)
|
||||||
@ -286,6 +287,10 @@
|
|||||||
#include "stm32h7xx_hal_eth.h"
|
#include "stm32h7xx_hal_eth.h"
|
||||||
#endif /* HAL_ETH_MODULE_ENABLED */
|
#endif /* HAL_ETH_MODULE_ENABLED */
|
||||||
|
|
||||||
|
#ifdef HAL_ETH_LEGACY_MODULE_ENABLED
|
||||||
|
#include "stm32h7xx_hal_eth_legacy.h"
|
||||||
|
#endif /* HAL_ETH_LEGACY_MODULE_ENABLED */
|
||||||
|
|
||||||
#ifdef HAL_EXTI_MODULE_ENABLED
|
#ifdef HAL_EXTI_MODULE_ENABLED
|
||||||
#include "stm32h7xx_hal_exti.h"
|
#include "stm32h7xx_hal_exti.h"
|
||||||
#endif /* HAL_EXTI_MODULE_ENABLED */
|
#endif /* HAL_EXTI_MODULE_ENABLED */
|
||||||
|
|||||||
1
Core/Lib/FT_CAN_AL
Submodule
1
Core/Lib/FT_CAN_AL
Submodule
Submodule Core/Lib/FT_CAN_AL added at dc60f07b4a
@ -174,10 +174,6 @@ void SystemClock_Config(void) {
|
|||||||
while (!__HAL_PWR_GET_FLAG(PWR_FLAG_VOSRDY)) {
|
while (!__HAL_PWR_GET_FLAG(PWR_FLAG_VOSRDY)) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Macro to configure the PLL clock source
|
|
||||||
*/
|
|
||||||
__HAL_RCC_PLL_PLLSOURCE_CONFIG(RCC_PLLSOURCE_HSE);
|
|
||||||
|
|
||||||
/** Initializes the RCC Oscillators according to the specified parameters
|
/** Initializes the RCC Oscillators according to the specified parameters
|
||||||
* in the RCC_OscInitTypeDef structure.
|
* in the RCC_OscInitTypeDef structure.
|
||||||
*/
|
*/
|
||||||
@ -308,7 +304,7 @@ static void MX_FDCAN1_Init(void) {
|
|||||||
hfdcan1.Init.DataTimeSeg1 = 1;
|
hfdcan1.Init.DataTimeSeg1 = 1;
|
||||||
hfdcan1.Init.DataTimeSeg2 = 1;
|
hfdcan1.Init.DataTimeSeg2 = 1;
|
||||||
hfdcan1.Init.MessageRAMOffset = 0;
|
hfdcan1.Init.MessageRAMOffset = 0;
|
||||||
hfdcan1.Init.StdFiltersNbr = 1;
|
hfdcan1.Init.StdFiltersNbr = 32;
|
||||||
hfdcan1.Init.ExtFiltersNbr = 0;
|
hfdcan1.Init.ExtFiltersNbr = 0;
|
||||||
hfdcan1.Init.RxFifo0ElmtsNbr = 16;
|
hfdcan1.Init.RxFifo0ElmtsNbr = 16;
|
||||||
hfdcan1.Init.RxFifo0ElmtSize = FDCAN_DATA_BYTES_8;
|
hfdcan1.Init.RxFifo0ElmtSize = FDCAN_DATA_BYTES_8;
|
||||||
@ -689,6 +685,8 @@ static void MX_TIM4_Init(void) {
|
|||||||
*/
|
*/
|
||||||
static void MX_GPIO_Init(void) {
|
static void MX_GPIO_Init(void) {
|
||||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
|
/* USER CODE BEGIN MX_GPIO_Init_1 */
|
||||||
|
/* USER CODE END MX_GPIO_Init_1 */
|
||||||
|
|
||||||
/* GPIO Ports Clock Enable */
|
/* GPIO Ports Clock Enable */
|
||||||
__HAL_RCC_GPIOE_CLK_ENABLE();
|
__HAL_RCC_GPIOE_CLK_ENABLE();
|
||||||
@ -768,6 +766,9 @@ static void MX_GPIO_Init(void) {
|
|||||||
|
|
||||||
HAL_NVIC_SetPriority(EXTI9_5_IRQn, 0, 0);
|
HAL_NVIC_SetPriority(EXTI9_5_IRQn, 0, 0);
|
||||||
HAL_NVIC_EnableIRQ(EXTI9_5_IRQn);
|
HAL_NVIC_EnableIRQ(EXTI9_5_IRQn);
|
||||||
|
|
||||||
|
/* USER CODE BEGIN MX_GPIO_Init_2 */
|
||||||
|
/* USER CODE END MX_GPIO_Init_2 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* USER CODE BEGIN 4 */
|
/* USER CODE BEGIN 4 */
|
||||||
|
|||||||
@ -84,6 +84,7 @@ HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)
|
|||||||
htim6.Instance = TIM6;
|
htim6.Instance = TIM6;
|
||||||
|
|
||||||
/* Initialize TIMx peripheral as follow:
|
/* Initialize TIMx peripheral as follow:
|
||||||
|
|
||||||
+ Period = [(TIM6CLK/1000) - 1]. to have a (1/1000) s time base.
|
+ Period = [(TIM6CLK/1000) - 1]. to have a (1/1000) s time base.
|
||||||
+ Prescaler = (uwTimclock/1000000 - 1) to have a 1MHz counter clock.
|
+ Prescaler = (uwTimclock/1000000 - 1) to have a 1MHz counter clock.
|
||||||
+ ClockDivision = 0
|
+ ClockDivision = 0
|
||||||
|
|||||||
@ -1,75 +1,29 @@
|
|||||||
#include "vehicle.h"
|
#include "vehicle.h"
|
||||||
|
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
#include "ui.h"
|
||||||
|
|
||||||
|
#include "FT_CAN_AL.h"
|
||||||
|
|
||||||
#include "stm32h7xx.h"
|
#include "stm32h7xx.h"
|
||||||
#include "stm32h7xx_hal.h"
|
#include "stm32h7xx_hal.h"
|
||||||
#include "stm32h7xx_hal_fdcan.h"
|
#include "stm32h7xx_hal_fdcan.h"
|
||||||
#include "stm32h7xx_hal_gpio.h"
|
#include "stm32h7xx_hal_gpio.h"
|
||||||
#include "tx_api.h"
|
#include "tx_api.h"
|
||||||
#include "ui.h"
|
|
||||||
|
|
||||||
FDCAN_HandleTypeDef *hcan;
|
|
||||||
|
|
||||||
void vehicle_thread_entry(ULONG hfdcan_addr) {
|
void vehicle_thread_entry(ULONG hfdcan_addr) {
|
||||||
hcan = (void *)hfdcan_addr;
|
ftcan_init((void *)hfdcan_addr);
|
||||||
|
ftcan_add_filter(0x123, 0x7FF);
|
||||||
|
|
||||||
FDCAN_FilterTypeDef filter;
|
|
||||||
filter.IdType = FDCAN_STANDARD_ID;
|
|
||||||
filter.FilterIndex = 0;
|
|
||||||
filter.FilterType = FDCAN_FILTER_MASK;
|
|
||||||
filter.FilterConfig = FDCAN_FILTER_TO_RXFIFO0;
|
|
||||||
filter.FilterID1 = 0x123;
|
|
||||||
filter.FilterID2 = 0x7FF;
|
|
||||||
|
|
||||||
if (HAL_FDCAN_ConfigFilter(hcan, &filter) != HAL_OK) {
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
// Reject non-matching messages
|
|
||||||
if (HAL_FDCAN_ConfigGlobalFilter(hcan, FDCAN_REJECT, FDCAN_REJECT,
|
|
||||||
FDCAN_REJECT_REMOTE,
|
|
||||||
FDCAN_REJECT_REMOTE) != HAL_OK) {
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
if (HAL_FDCAN_Start(hcan)) {
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
if (HAL_FDCAN_ActivateNotification(hcan, FDCAN_IT_RX_FIFO0_NEW_MESSAGE, 0) !=
|
|
||||||
HAL_OK) {
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
FDCAN_TxHeaderTypeDef tx_header;
|
|
||||||
tx_header.IdType = FDCAN_STANDARD_ID;
|
|
||||||
tx_header.TxFrameType = FDCAN_DATA_FRAME;
|
|
||||||
tx_header.ErrorStateIndicator = FDCAN_ESI_PASSIVE;
|
|
||||||
tx_header.BitRateSwitch = FDCAN_BRS_OFF;
|
|
||||||
tx_header.FDFormat = FDCAN_CLASSIC_CAN;
|
|
||||||
tx_header.TxEventFifoControl = FDCAN_NO_TX_EVENTS;
|
|
||||||
tx_header.MessageMarker = 0;
|
|
||||||
while (1) {
|
while (1) {
|
||||||
tx_header.Identifier = 0x456;
|
|
||||||
tx_header.DataLength = FDCAN_DLC_BYTES_2;
|
|
||||||
uint8_t data[] = {0xFF, 0xEE};
|
uint8_t data[] = {0xFF, 0xEE};
|
||||||
if (HAL_FDCAN_GetTxFifoFreeLevel(hcan) != 0) {
|
ftcan_transmit(0x456, data, 2);
|
||||||
HAL_FDCAN_AddMessageToTxFifoQ(hcan, &tx_header, data);
|
|
||||||
}
|
|
||||||
tx_thread_sleep(10);
|
tx_thread_sleep(10);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void HAL_FDCAN_RxFifo0Callback(FDCAN_HandleTypeDef *hfdcan,
|
void ftcan_msg_received_cb(uint16_t id, size_t datalen, const uint8_t *data) {
|
||||||
uint32_t RxFifo0ITs) {
|
if (id == 0x123) {
|
||||||
if (hfdcan != hcan || (RxFifo0ITs & FDCAN_IT_RX_FIFO0_NEW_MESSAGE) == RESET) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
static FDCAN_RxHeaderTypeDef header;
|
|
||||||
static uint8_t data[8];
|
|
||||||
if (HAL_FDCAN_GetRxMessage(hcan, FDCAN_RX_FIFO0, &header, data) != HAL_OK) {
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (header.IdType != FDCAN_STANDARD_ID || header.Identifier == 0x123) {
|
|
||||||
HAL_GPIO_TogglePin(STATUS2_GPIO_Port, STATUS2_Pin);
|
HAL_GPIO_TogglePin(STATUS2_GPIO_Port, STATUS2_Pin);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
2
Makefile
2
Makefile
@ -1,5 +1,5 @@
|
|||||||
##########################################################################################################################
|
##########################################################################################################################
|
||||||
# File automatically-generated by tool: [projectgenerator] version: [3.18.0-B7] date: [Wed Mar 08 21:28:20 CET 2023]
|
# File automatically-generated by tool: [projectgenerator] version: [3.19.2] date: [Thu Mar 16 22:32:27 CET 2023]
|
||||||
##########################################################################################################################
|
##########################################################################################################################
|
||||||
|
|
||||||
# ------------------------------------------------
|
# ------------------------------------------------
|
||||||
|
|||||||
@ -23,6 +23,8 @@ ldscript: STM32H7A3ZITx_FLASH.ld # linker script
|
|||||||
cDefinitions:
|
cDefinitions:
|
||||||
- USE_HAL_DRIVER
|
- USE_HAL_DRIVER
|
||||||
- STM32H7A3xx
|
- STM32H7A3xx
|
||||||
|
- STM32H7
|
||||||
|
- FTCAN_NUM_FILTERS=32
|
||||||
|
|
||||||
cxxDefinitions:
|
cxxDefinitions:
|
||||||
- USE_HAL_DRIVER
|
- USE_HAL_DRIVER
|
||||||
|
|||||||
@ -37,6 +37,7 @@ BUILD_DIR = build
|
|||||||
# C sources
|
# C sources
|
||||||
C_SOURCES = \
|
C_SOURCES = \
|
||||||
AZURE_RTOS/App/app_azure_rtos.c \
|
AZURE_RTOS/App/app_azure_rtos.c \
|
||||||
|
Core/Lib/FT_CAN_AL/FT_CAN_AL.c \
|
||||||
Core/Src/app.c \
|
Core/Src/app.c \
|
||||||
Core/Src/app_threadx.c \
|
Core/Src/app_threadx.c \
|
||||||
Core/Src/hx8357d.c \
|
Core/Src/hx8357d.c \
|
||||||
@ -446,6 +447,8 @@ AS_DEFS =
|
|||||||
|
|
||||||
# C defines
|
# C defines
|
||||||
C_DEFS = \
|
C_DEFS = \
|
||||||
|
-DFTCAN_NUM_FILTERS=32 \
|
||||||
|
-DSTM32H7 \
|
||||||
-DSTM32H7A3xx \
|
-DSTM32H7A3xx \
|
||||||
-DTX_INCLUDE_USER_DEFINE_FILE \
|
-DTX_INCLUDE_USER_DEFINE_FILE \
|
||||||
-DUSE_HAL_DRIVER
|
-DUSE_HAL_DRIVER
|
||||||
@ -465,6 +468,7 @@ AS_INCLUDES = \
|
|||||||
C_INCLUDES = \
|
C_INCLUDES = \
|
||||||
-IAZURE_RTOS/App \
|
-IAZURE_RTOS/App \
|
||||||
-ICore/Inc \
|
-ICore/Inc \
|
||||||
|
-ICore/Lib/FT_CAN_AL \
|
||||||
-IDrivers/CMSIS/Device/ST/STM32H7xx/Include \
|
-IDrivers/CMSIS/Device/ST/STM32H7xx/Include \
|
||||||
-IDrivers/CMSIS/Include \
|
-IDrivers/CMSIS/Include \
|
||||||
-IDrivers/STM32H7xx_HAL_Driver/Inc \
|
-IDrivers/STM32H7xx_HAL_Driver/Inc \
|
||||||
|
|||||||
@ -15,7 +15,7 @@ FDCAN1.NominalSyncJumpWidth=1
|
|||||||
FDCAN1.NominalTimeSeg1=63
|
FDCAN1.NominalTimeSeg1=63
|
||||||
FDCAN1.NominalTimeSeg2=16
|
FDCAN1.NominalTimeSeg2=16
|
||||||
FDCAN1.RxFifo0ElmtsNbr=16
|
FDCAN1.RxFifo0ElmtsNbr=16
|
||||||
FDCAN1.StdFiltersNbr=1
|
FDCAN1.StdFiltersNbr=32
|
||||||
FDCAN1.TxFifoQueueElmtsNbr=1
|
FDCAN1.TxFifoQueueElmtsNbr=1
|
||||||
File.Version=6
|
File.Version=6
|
||||||
GPIO.groupedBy=Show All
|
GPIO.groupedBy=Show All
|
||||||
@ -139,8 +139,8 @@ Mcu.ThirdParty1=STMicroelectronics.X-CUBE-TOUCHGFX.4.21.2
|
|||||||
Mcu.ThirdPartyNb=2
|
Mcu.ThirdPartyNb=2
|
||||||
Mcu.UserConstants=
|
Mcu.UserConstants=
|
||||||
Mcu.UserName=STM32H7A3ZITx
|
Mcu.UserName=STM32H7A3ZITx
|
||||||
MxCube.Version=6.7.0
|
MxCube.Version=6.8.0
|
||||||
MxDb.Version=DB.6.0.70
|
MxDb.Version=DB.6.0.80
|
||||||
NRST.Locked=true
|
NRST.Locked=true
|
||||||
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
||||||
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
||||||
@ -414,12 +414,13 @@ ProjectManager.PreviousToolchain=
|
|||||||
ProjectManager.ProjectBuild=false
|
ProjectManager.ProjectBuild=false
|
||||||
ProjectManager.ProjectFileName=steering-wheel.ioc
|
ProjectManager.ProjectFileName=steering-wheel.ioc
|
||||||
ProjectManager.ProjectName=steering-wheel
|
ProjectManager.ProjectName=steering-wheel
|
||||||
|
ProjectManager.ProjectStructure=
|
||||||
ProjectManager.RegisterCallBack=
|
ProjectManager.RegisterCallBack=
|
||||||
ProjectManager.StackSize=0x400
|
ProjectManager.StackSize=0x400
|
||||||
ProjectManager.TargetToolchain=Makefile
|
ProjectManager.TargetToolchain=Makefile
|
||||||
ProjectManager.ToolChainLocation=
|
ProjectManager.ToolChainLocation=
|
||||||
ProjectManager.UnderRoot=false
|
ProjectManager.UnderRoot=false
|
||||||
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA2D_Init-DMA2D-false-HAL-true,4-MX_FDCAN1_Init-FDCAN1-false-HAL-true,5-MX_LTDC_Init-LTDC-false-HAL-true,6-MX_JPEG_Init-JPEG-false-HAL-true,7-MX_OCTOSPI1_Init-OCTOSPI1-false-HAL-true,8-MX_SPI3_Init-SPI3-false-HAL-true,9-MX_TIM1_Init-TIM1-false-HAL-true,10-MX_TIM2_Init-TIM2-false-HAL-true,11-MX_TIM4_Init-TIM4-false-HAL-true,12-MX_CRC_Init-CRC-false-HAL-true,13-MX_TouchGFX_Init-STMicroelectronics.X-CUBE-TOUCHGFX.4.21.2-false-HAL-false,14-MX_TouchGFX_Process-STMicroelectronics.X-CUBE-TOUCHGFX.4.21.2-false-HAL-false,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true
|
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA2D_Init-DMA2D-false-HAL-true,4-MX_FDCAN1_Init-FDCAN1-false-HAL-true,5-MX_LTDC_Init-LTDC-false-HAL-true,6-MX_JPEG_Init-JPEG-false-HAL-true,7-MX_OCTOSPI1_Init-OCTOSPI1-false-HAL-true,8-MX_SPI3_Init-SPI3-false-HAL-true,9-MX_TIM1_Init-TIM1-false-HAL-true,10-MX_TIM2_Init-TIM2-false-HAL-true,11-MX_TIM4_Init-TIM4-false-HAL-true,12-MX_CRC_Init-CRC-false-HAL-true,14-MX_TouchGFX_Init-STMicroelectronics.X-CUBE-TOUCHGFX.4.21.2-false-HAL-false,15-MX_TouchGFX_Process-STMicroelectronics.X-CUBE-TOUCHGFX.4.21.2-false-HAL-false,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true
|
||||||
RCC.ADCFreq_Value=24000000
|
RCC.ADCFreq_Value=24000000
|
||||||
RCC.AHB12Freq_Value=160000000
|
RCC.AHB12Freq_Value=160000000
|
||||||
RCC.AHB4Freq_Value=160000000
|
RCC.AHB4Freq_Value=160000000
|
||||||
|
|||||||
Reference in New Issue
Block a user