Announcement

Collapse
No announcement yet.

DSP in commercial prospecting and treasure hunting metal detectors ... and GPZ 7000 speculation

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • scrungy_doolittle
    replied
    update on the STM32F411 etc

    Originally posted by CAS View Post
    I 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.
    Great! I'm currently looking at the ADC. I have the nucleo board, so the examples for the discovery board aren't working.
    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.....

    Leave a comment:


  • CAS
    replied
    Originally posted by scrungy_doolittle View Post
    For the record, I finally got the open STM32 software to work with a project generated with the new STMCUBE on the Nucleo F411 board. It works on my desktop windows 7, but not on a win 8 laptop running classic shell.

    So now it is off to the races.
    1. Download the tool chain from openstm32.org
    2. Download the Latest version of the STMCUBE software from STM.
    Install both.
    If you have a already created project, the secret is the import. Then on the general option in the popup menu, select import an existing project.
    I was able to take the modified project that one of the guys put in this thread, and compile it and download and single step.
    It took the newest version of STMCUBE to make it work. Now I have to climb the learining curve on the STM32 family, but at least I am now able to compile, and build.
    I 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.

    Leave a comment:


  • 6666
    replied
    Thanks for the update.

    Leave a comment:


  • scrungy_doolittle
    replied
    For the record, I finally got the open STM32 software to work with a project generated with the new STMCUBE on the Nucleo F411 board. It works on my desktop windows 7, but not on a win 8 laptop running classic shell.

    So now it is off to the races.
    1. Download the tool chain from openstm32.org
    2. Download the Latest version of the STMCUBE software from STM.
    Install both.
    If you have a already created project, the secret is the import. Then on the general option in the popup menu, select import an existing project.
    I was able to take the modified project that one of the guys put in this thread, and compile it and download and single step.
    It took the newest version of STMCUBE to make it work. Now I have to climb the learining curve on the STM32 family, but at least I am now able to compile, and build.

    Leave a comment:


  • bklein
    replied
    Great! I'll study it more.
    Newbie question though - would there be a way then to use a frequency up-converter or mixer/LO setup to visualize our signals real-time using this software?

    Leave a comment:


  • Davor
    replied
    Originally posted by bklein View Post
    Does this 90 degree sampling scheme help us (or is it applicable?).
    That's precisely how VLF rigs with processors operate. In a way it is also a way analogue VLFs operate, but more often than not the phases are aligned slightly different. Those differences in phases are easily obtained from IQ scheme. On the plus side, the IQ scheme has 2 channels with completely orthogonal noise, so there is a possibility to further improve the S/N of VLF Rx.

    Leave a comment:


  • scrungy_doolittle
    replied
    Originally posted by Daren View Post
    At this point signals will be moved into phase and amplitude space, filtering can be done at this point. The data load will be much smaller as there will be 2 data values (phase, amplitude) per each RX period. That about 10K x 2 values to handle every second (assuming RX freq around 10kHz). Microcontroller should be able to handle it.
    I don't know if this approach will be better than full analog (lIDX for example), but it has two advantages: less parts and easily to evolve firmware. The phase/amplitude changes will be now available instantaneously so uC maybe able to extract some data that is lost on analog.
    Think you need more than just phase to TX and amplitude. It seems to me that you need to digitize both the transmit and receive. Every thing else can be extracted. The mix of analog would just be a filter and amplifier.
    The pic24FJ128GC010 that I was considering using, has two opamps built into it, and 2 comparators in it as well. With maybe two more parts (an audio amp, and a signal amp with a settable gain, and feeding that into the opamps of the part, you basically have 4 parts. Power supply, processor, audio amp, and preamp. And it does 10 msamples per second, with dual dacs and built in oversampling if you want.

    That being said, what success I have had with the STM has been achieved with the latest version of stmcube that knows how to create a project for the openstm.org toolset. I still have some compilation issues to work through, and I am sure Luca Spelgatti will be able to help clear those up. UNFORTUNATELY STMCUBE only generates basic stuff. they drew the line between application and set up at the wrong spot in my opinion. You should be able to specify buffer sizes and modes, but STM thinks that is application specific. shrug.

    Leave a comment:


  • scrungy_doolittle
    replied
    Originally posted by Davor View Post
    I just received a notice on TI part MSP432 which is a micropower, and also features 14-bit ADC that supposedly consumes only 375 µA at 1MSPS. It could work.
    I have no idea what it takes to make them tick. Guess there are no free tools of any kind.
    No quite true, but there are not many easily integrated tools. This is an arm processor. It has been a ***** getting the STM tools to work, but I have been able to use the new stm cube version to create code, compile and download. But now when I try to compile I'm getting redefinition errors, so am not quite certain what is happening.

    I've been dealing with a personal crisis since last thursday. Wife left after 32 years. Went incommunicado until yesterday. The day before I finally had some success with the STM stuff.

    Gnu tools are all free.. The only significant difference between this part and the STM's is a 14 bit sar ADC vs a 12 bit sar ADC. The ti part only runs at 48 mhz, vs 96 mhz for the stm. and it only has 256K of memory, vs 512K. And you can never have enough memory. It might be more power efficient, but specwise other than the ADC, it is not even close to the STMF411. And contrary to a comment above, multiplexing channels into an adc is simple and efficient. 1 sample time skew is not that bad.

    Leave a comment:


  • bklein
    replied
    So new msp432 or tm4c?
    Texas Instruments helps engineers and innovators build smarter, safer, and more efficient systems with semiconductor products across automotive, industrial, data center, and personal electronics.

    Leave a comment:


  • bklein
    replied
    I am not sure how much of this relates but I see the same terms being discussed and I suppose if I were to contemplate what i'm reading and seeing I'd get it after awhile. I have recently been playng with an sdr dongle off ebay on a pc and raspberry pi2 soon. Check this website out for a discussion of I/Q sampling: http://whiteboard.ping.se/SDR/IQ

    Does this 90 degree sampling scheme help us (or is it applicable?).

    Leave a comment:


  • Daren
    replied
    Originally posted by Daren View Post
    Digitizing full raw RX signal is the best, but requires a lot of resources (speed). You can't beat analog's resource efficiency for some things. I think some mix of analog and digital is the answer.
    What are the parameters that need to be extracted from RX signal? Phase to TX and amplitude. Phase can be extracted using microcontroller's comparators detecting zero crossing (maybe with opamp comparator if need be). This operation is super fast. Amplitude can be detected with support of peak detector opamp and ADC.
    At this point signals will be moved into phase and amplitude space, filtering can be done at this point. The data load will be much smaller as there will be 2 data values (phase, amplitude) per each RX period. That about 10K x 2 values to handle every second (assuming RX freq around 10kHz). Microcontroller should be able to handle it.
    I don't know if this approach will be better than full analog (lIDX for example), but it has two advantages: less parts and easily to evolve firmware. The phase/amplitude changes will be now available instantaneously so uC maybe able to extract some data that is lost on analog.

    Leave a comment:


  • Daren
    replied
    Digitizing full raw RX signal is the best, but requires a lot of resources (speed). You can't beat analog's resource efficiency for some things. I think some mix of analog and digital is the answer.
    What are the parameters that need to be extracted from RX signal? Phase to TX and amplitude. Phase can be extracted using microcontroller's comparators detecting zero crossing (maybe with opamp comparator if need be). This operation is super fast. Amplitude can be detected with support of peak detector opamp and ADC.

    Leave a comment:


  • golfnut
    replied
    They have ugraded the Energia IDE for 432

    DL here




    Ti do a Launchpad pcb with this devive on for 12 US

    Leave a comment:


  • golfnut
    replied
    Ti do free tool called code composer studio, Ive used that and its fully featured and quite good. They also have a grphical front end called Grace. IAR systems do a code limited one also free. Some of the more basic devices are on ti dev boards like tiva c etc. There is a high level library funtion rich ide cloned from arduino called Energia, mainly for 430 devices - Ive used that and its real simple

    Leave a comment:


  • Carl-NC
    replied
    This is a Cortex processor, I also just read about it.

    Leave a comment:

Working...
X