I have been working on a project that needs to record the timing of a pin being toggled and have reached the limits of arduino controllers available to me. The basic setup is a timer counting up and an isr that stores the current timer value into a ring buffer, anytime the intrupt pin goes high.
A variable delay has shown up in the timer values from the start of this project. Caused by a delay between when the pin goes high, to the start of the isr. As the frequency of intrupts increase, this varable has become my limiting factor, lowering the precision of the results stored in memory.
I needed more processing power, so the project was ported into an esp32 with faster timers than arduino nano, but the variable delay in isr execution increased aswell. I am really looking foward to moving this from the 10KHz into the MHz range. After reviewing what it would take to construct a circuit that would perform this task, that quickly became unreasonable.
The next step being considered is moving to an fpga. I have never worked with one but have my eye set on something like the tang nano 9k and other entry-level kit that is ready to plug-n-play. Before I spend the money and time leaning a new programming language, and from the reads a completely new architecture and style, I would like to ask the people here, if this type of component would be appropriate for the task or is their something better?
The final parameters I am aiming for are data logging of the timer up to 50MHz, with timer clock speed at 1GHz or more