Originally posted by scrungy_doolittle
View Post
Announcement
Collapse
No announcement yet.
DSP in commercial prospecting and treasure hunting metal detectors ... and GPZ 7000 speculation
Collapse
X
-
-
update on the STM32F411 etc
Originally posted by CAS View PostI also have managed to get my STM32F411 discovery board up and running. At this stage I am only switching gates but ADC is next. Its nice to have a debug facility built in to IDE. Great advantage over Arduino. This means I can look at the ADC samples in real time and check/change calculations on the fly.
I'll try to zip the project and put it here for anyone who needs it. It is a complete definition for the nucleo board, with pins selected and code generated for the following:
The SainSmart LCD 1602 shield for the arduino. It has also been configure so that the adafruit shield will work. It supports 3 sample lines, two rotary encoders, two toggle switches, a pushbutton
for pinpointing, USB AND SD card, a pwm for transmit, Two analog channels to support the addafruit 1.8 lcd shied and the Sainsmart. (these use to different channels for the push buttons). The pushbuttons on the shields are handled by switching resistors into an analog channel. It supports in addition, an analog channel for receive, an analog channel to digitize the transmit signal, and 3 other channels, one for the X,Y and G channels on a whites IDX/6000/5900 detector, so it can be used as a VDI, among other items. There are at least 2 spare I/O's. Going off memory at the moment.
Now I have to get the ADC running in continous mode, with dma control into a buffer. The demo code uses ADC3 which is not on the F411, so I have to change that to ADC1. It uses DMA to move the data into 1 memory location instead of a buffer.
Intention is to alternate channel samples between two channels, one for transmit, one for receive. Since it take about 15 cycles at 96 mhz to do a sample, this will allow digitizing the transmit and the receive with only 1 sample worth of skew between them. That way the channels will be interleaved in the buffer, with one being on even locations, the other on odd locations.
If you want to simply sample the data 8 times like the original code I posted, then grab the appropriate indexes into the array for one cycle. To integrate them, capture 10 cycles into the buffer, and process that.
The adc has a channel sequencer, so you can program it to digitize any of the channels in any sequence, and it will digitize 1 channel, move to the next, and digitize that one etc. By setting two channels, it will switch automatically between the channels. So tie one to the receive and one to the transmit, and let it rip. Now you have both, and can determine very accurately, the relationship between them....
I think that it might be possible with a resistor and cap on an I/O line, feeding into the amplifier after the receive signal has been amplified, to inject a bit's worth of noise, so that you can use decimation to increase the resolution.
I am guessing that is what the KROT3 is doing by using the DAC to feed into the amplifier. Been trying to figure out what he hell he was doing, but I think he is using that to inject a slight bit of
noise, which can be used to increase the resolution.....
Comment
Comment