[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/db/driver/mysqli.php on line 258: mysqli_fetch_assoc(): Couldn't fetch mysqli_result
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/db/driver/mysqli.php on line 320: mysqli_free_result(): Couldn't fetch mysqli_result
rusefi.com The most advanced open source ECU 2025-09-03T08:09:58 https://rusefi.com/forum/app.php/feed/topic/2967 2025-09-03T08:09:58 2025-09-03T08:09:58 https://rusefi.com/forum/viewtopic.php?t=2967&p=50829#p50829 <![CDATA[Re: UAEFI connection to STM32G474 VIA CAN]]> I will test it now. Signal on CAN line looks as it should.

Statistics: Posted by franc — Wed Sep 03, 2025 8:09 am


]]>
2025-09-02T22:33:27 2025-09-02T22:33:27 https://rusefi.com/forum/viewtopic.php?t=2967&p=50828#p50828 <![CDATA[Re: UAEFI connection to STM32G474 VIA CAN]]>
looked at this?: https://github.com/STMicroelectronics/STM32CubeG4/blob/master/Projects/STM32G474E-EVAL/Examples/FDCAN/FDCAN_Classic_Frame_Networking/Src/main.c#L296

for debug you might want to disable the filter to get all packets

if you have scope try transmitting to check if the clock and bit rate is setup correctly

Statistics: Posted by langwadt — Tue Sep 02, 2025 10:33 pm


]]>
2025-09-02T16:40:50 2025-09-02T16:40:50 https://rusefi.com/forum/viewtopic.php?t=2967&p=50827#p50827 <![CDATA[UAEFI connection to STM32G474 VIA CAN]]> I have some trouble for 2 weeks now :? trying to connect UA ecu to STM32 dev board (I want to make simple dash screen). STM32G474 has FDCAN peripheral but it is cross compatible with old CAN BUS. I can't identify exact problem one of them is that NVIC doesn't run RXcallback function. Is there any specific CAN BUS setting in Tuner studio MS or am I doing something wrong with filter settings.

My settings in Tuner studio MS are:
image.png
Here is code for FDCAN initialization (36MHz FDCAN Clock) -> 500kbps :

Code:

static void MX_FDCAN2_Init(void){  /* USER CODE BEGIN FDCAN2_Init 0 */// Omogoči prekinitev za FDCAN2 v NVICFDCAN_FilterTypeDef sFilterConfig; //DeclareS CAN filter structure  /* USER CODE END FDCAN2_Init 0 */  /* USER CODE BEGIN FDCAN2_Init 1 */  /* USER CODE END FDCAN2_Init 1 */  hfdcan2.Instance = FDCAN2;  hfdcan2.Init.ClockDivider = FDCAN_CLOCK_DIV1;  hfdcan2.Init.FrameFormat = FDCAN_FRAME_CLASSIC;  hfdcan2.Init.Mode = FDCAN_MODE_NORMAL;  hfdcan2.Init.AutoRetransmission = DISABLE;  hfdcan2.Init.TransmitPause = DISABLE;  hfdcan2.Init.ProtocolException = DISABLE;  hfdcan2.Init.NominalPrescaler = 1;  hfdcan2.Init.NominalSyncJumpWidth = 3;  hfdcan2.Init.NominalTimeSeg1 = 3;  hfdcan2.Init.NominalTimeSeg2 = 68;  hfdcan2.Init.DataPrescaler = 2;  hfdcan2.Init.DataSyncJumpWidth = 12;  hfdcan2.Init.DataTimeSeg1 = 23;  hfdcan2.Init.DataTimeSeg2 = 12;  hfdcan2.Init.StdFiltersNbr = 1;  hfdcan2.Init.ExtFiltersNbr = 0;  hfdcan2.Init.TxFifoQueueMode = FDCAN_TX_FIFO_OPERATION;  if (HAL_FDCAN_Init(&hfdcan2) != HAL_OK)  {    Error_Handler();  }  /* USER CODE BEGIN FDCAN2_Init 2 */  sFilterConfig.IdType = FDCAN_STANDARD_ID;  sFilterConfig.FilterIndex = 0;  sFilterConfig.FilterType = FDCAN_FILTER_MASK;  sFilterConfig.FilterConfig = FDCAN_FILTER_TO_RXFIFO0;  sFilterConfig.FilterType = FDCAN_FILTER_RANGE;  sFilterConfig.FilterID1 = 0x321;  // Spodnja meja  sFilterConfig.FilterID2 = 0x7FF ;  // Zgornja meja    if(HAL_FDCAN_ConfigFilter(&hfdcan2, &sFilterConfig) != HAL_OK){ Error_Handler();}    if(HAL_FDCAN_Start(&hfdcan2) != HAL_OK){ Error_Handler();}  if(HAL_FDCAN_ActivateNotification(&hfdcan2, FDCAN_IT_RX_FIFO0_NEW_MESSAGE, 0) != HAL_OK){  Error_Handler();  }    // Optional: Activate error notifications (highly recommended for debugging)  if(HAL_FDCAN_ActivateNotification(&hfdcan2, FDCAN_IT_RX_FIFO0_MESSAGE_LOST | FDCAN_IT_ERROR_WARNING | FDCAN_IT_BUS_OFF, 0) != HAL_OK){ Error_Handler(); }  /* USER CODE END FDCAN2_Init 2 */}
And part of code that never executes:

Code:

void HAL_FDCAN_RxFifo0Callback(FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo0ITs){HAL_GPIO_TogglePin(LED_CAN_RX_GPIO_Port, LED_CAN_RX_GPIO_Port);  if((RxFifo0ITs & FDCAN_IT_RX_FIFO0_NEW_MESSAGE) != RESET)  {    // Retrieve Rx messages from RX FIFO0     if (HAL_FDCAN_GetRxMessage(hfdcan, FDCAN_RX_FIFO0, &RxHeader, RxData) != HAL_OK) {Error_Handler();}    if (HAL_FDCAN_ActivateNotification(&hfdcan2, FDCAN_IT_RX_FIFO0_NEW_MESSAGE, 0) != HAL_OK) { Error_Handler();}  }}
Additionally NVIC is initialized automaticaly:

Code:

static void MX_NVIC_Init(void){  /* FDCAN2_IT0_IRQn interrupt configuration */  HAL_NVIC_SetPriority(FDCAN2_IT0_IRQn, 0, 0);  HAL_NVIC_EnableIRQ(FDCAN2_IT0_IRQn);  /* FDCAN2_IT1_IRQn interrupt configuration */  HAL_NVIC_SetPriority(FDCAN2_IT1_IRQn, 0, 0);  HAL_NVIC_EnableIRQ(FDCAN2_IT1_IRQn);}
Thank you!

Statistics: Posted by franc — Tue Sep 02, 2025 4:40 pm


]]>