Synced ultrasonic emission and reception (time triggered)
Posted: Thu Apr 13, 2017 10:53 am
Hello Red Pitaya community,
I have been learning about RP for the last few weeks as part of a small research project. This is my first experience with the RP and with the Zynq, after previous experiences as a student with regular FPGAs.
I am currently working on a project that requires the RP to generate a PWM signal (this I can manage), which is fed into a piezo transducer. On the other end, the receiving piezo signal is amplified and fed back into the RP's fast ADC input for processing in the Linux system. I need to get several samples from the ADC before doing any processing.
I have been reading Anton Potočnik's tutorials to get some familiarity with the RP and then tried to get something together based on Pavel Demin's notes. I have been especially using the ADC recorder (https://github.com/pavel-demin/red-pita ... c_recorder) as a basis.
From what I understood and following some more in-depth reading in the Zynq book, this system is streaming data through AXI directly into the RAM. I added my own state machine for the PWM (bursts) generation (as an AXI IP block) but my issue is that I would need to trigger the ADC at a specific point in time, based on the traveling speed of the waves in the material I am working on, and the distance between the two piezos. The state machine could handle that I guess, by generating a start and stop signal, but I don't have a clear idea of where and how to plug them in to get the behavior I am looking for. I though about resetting the FIFO block, but was not sure and received warning about the timing of my signal which was not properly synced with the clock.
I looked into the ADC recorder trigger project (https://github.com/pavel-demin/red-pita ... er_trigger) but from what I understood, the triggering is done in the sense of an oscilloscope, based on a voltage level, which is not exactly what I am looking for.
So that's it for my main questioning, I hope I've been clear enough with my issues and thanks you in advance for any help you could provide me
Best regards,
Rémi
I have been learning about RP for the last few weeks as part of a small research project. This is my first experience with the RP and with the Zynq, after previous experiences as a student with regular FPGAs.
I am currently working on a project that requires the RP to generate a PWM signal (this I can manage), which is fed into a piezo transducer. On the other end, the receiving piezo signal is amplified and fed back into the RP's fast ADC input for processing in the Linux system. I need to get several samples from the ADC before doing any processing.
I have been reading Anton Potočnik's tutorials to get some familiarity with the RP and then tried to get something together based on Pavel Demin's notes. I have been especially using the ADC recorder (https://github.com/pavel-demin/red-pita ... c_recorder) as a basis.
From what I understood and following some more in-depth reading in the Zynq book, this system is streaming data through AXI directly into the RAM. I added my own state machine for the PWM (bursts) generation (as an AXI IP block) but my issue is that I would need to trigger the ADC at a specific point in time, based on the traveling speed of the waves in the material I am working on, and the distance between the two piezos. The state machine could handle that I guess, by generating a start and stop signal, but I don't have a clear idea of where and how to plug them in to get the behavior I am looking for. I though about resetting the FIFO block, but was not sure and received warning about the timing of my signal which was not properly synced with the clock.
I looked into the ADC recorder trigger project (https://github.com/pavel-demin/red-pita ... er_trigger) but from what I understood, the triggering is done in the sense of an oscilloscope, based on a voltage level, which is not exactly what I am looking for.
So that's it for my main questioning, I hope I've been clear enough with my issues and thanks you in advance for any help you could provide me
Best regards,
Rémi