Alternative option for GPIO External Interrupt for fast signals
Hello,
I'm using Nucleo H723ZG.
In my project, i need to detect a rising edge to trigger a callback. What i have done is that i setup a GPIO as external interrupt, and i verified the code by manually connecting and releasing from 3v3 pin. The actual signal i want to trigger is high for approx 38ns , and the callback is not triggering.
What is the best solution for this?
System operating at - 480MHz
Peripheral clocks - 60MHz
Timer clocks - 120MHz
edit : Can i use Timer input capture for that, does using it in one pulse mode mean it detects a rising edge and then resets until next trigger (as a slave timer)
edit: I tried the timer input capture too, but still same effect, I used the HAL_TIM_IC_CaptureCallback , One pulse mode is enabled, it is in slave mode, I even applied a 1MHz signal still callback is not triggering, when i applied a 100KHz signal the callback triggers properly.
edit: upto 400KHz signal the below callback is properly triggering
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim){
if(htim == &htim4){
strcpy(uart_buf,"triggering - meh\n\r");
HAL_UART_Transmit_DMA(&huart3,(uint8_t*)uart_buf, sizeof(uart_buf));
}
}edit: It seem the Interrupts were triggering, but due to large number of interrupts, the MCU was not able to execute anything. What i want to achieve is that i want to initiate SPI in DMA mode after it overflows (update event), will enabling DMA for timer help?
