Announcement

Collapse
No announcement yet.

Announcement

Collapse
No announcement yet.

TX Cascade for Multi-Frequency

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

  • Sean_Goddard
    replied
    Originally posted by Altra View Post
    You could do a fft/dft. I'm no expert but have dabbled and believe its a valid approach.

    FFT of your samples will give you the (R)eal and (I)maginary numbers. Which you can then derive the magnitude and phase for each IR pair in each frequency bin. Requires a fixed sample rate that obeys Nyquest. The more samples and twiddle factors the higher the frequency resolution.

    In metal detectors the "Real" is the resistive and the Imaginary the reactive components. Phase = atan(I/R) and the magnitude = sqrt(IxI+RxR). Once you have these for each frequency of interest, you can do as Carl suggested, the mixing across frequencies to get your GBs, vdi's.

    Using Microchips dsp functions. I did a audio spectrum analyser a long time ago. I also did an analog dual freq detector where I learned how to mix the various signals to disc, gb or even null salt water response.

    Here's a app note for 16bit dsp functions, they have similar functions for pic32

    https://ww1.microchip.com/downloads/.../90003141a.pdf

    All the other processor brands have dsp libraries.

    Then again maybe its as simple running your samples through a set of firmware BP filters?​

    Add: pic32 example
    http://hades.mech.northwestern.edu/i...f_Analog_Input
    I proposed a detector using this methodology way back in 1989. I sent it to Garrett proposing the name "Garret Digidec GTi" a few months later the GTi series was released

    Leave a comment:


  • JoyJo
    replied
    By the way. Earlier I wrote that the TX cascade was built on the DRW8833 chip. Well ... It also does not work correctly in this cascade. It has its own fixed value of dead time. 450ns So it doesn't fit either. Now, as I wrote, the full bridge works on two mosfet assemblies (IRF7105) and the IR4428S driver

    Leave a comment:


  • JoyJo
    replied
    Thanks! Thank you for the advice. This is very interesting and valuable information. At the moment we have settled on a scheme with a full H-bridge.
    ____
    By the way, the use of 199 did not justify itself: if the output signal form is still acceptable at a low frequency, then at a high frequency (after 20 kHz) there are already small signal distortions "in the switching places" of mosfets.​

    Leave a comment:


  • Sean_Goddard
    replied
    Just a heads up, there are PIC Micros with 3 or more NCO's. If you use TWO, driven from the same clock source, you could use one with the NCO's giving 100 times each frequency of the output of the NCO's of the OTHER PIC. These X100 frequencies can be used to drive tuneable switched capacitor bandpass filters to extract the fundamental sine wave from the NCO square wave thus giving up to 3 FULLY programmable Tx frequencies. Demodulation can be done using quadrature generators made from two 7474 flip-flops again X3. I have sample code to setup the NCO's if anyone would like it, it's written in Positron BASIC for PIC Micros.

    BEST of ALL, these PIC's also have CWG's (Complementary Waveform Generators) which can drive a full H bridge with adjustable dead band. These things are ideal for MF detectors like the MF PI I build in an afternoon using one. Poor depth, but then it was a "will this work" exercise.



    ----------------------------------------------------------------------------

    Device = 16F1507
    Declare Xtal = 20

    '-------------------------------------------------------------------------------
    '**** Added by Fuse Configurator ****
    ' Use the Fuses Tab to change these settings

    Config1 FOSC_ECH, WDTE_OFF, PWRTE_OFF, MCLRE_ON, CP_OFF, BOREN_ON, CLKOUTEN_OFF
    Config2 WRT_OFF, STVREN_ON, BORV_LO, LPBOR_OFF, LVP_ON

    '**** End of Fuse Configurator Settings ****
    '-------------------------------------------------------------------------------

    Dim MySFR1 As Byte
    dim CLK_src as byte
    dim increment as word

    increment = $5565

    '-------------------------------------------------------------------------------
    '**** NCO clock source Mask ****

    symbol NCO_CLKsrcmask = %11111100
    '-------------------------------------------------------------------------------

    '-------------------------------------------------------------------------------
    '**** NCO Pulse Width Mask (Depends on NCO1_MODE) ****

    symbol NCO_PWmask = %00011111
    '-------------------------------------------------------------------------------

    '-------------------------------------------------------------------------------
    '**** NCO Enable bit ****

    symbol NCO1_EN = NCO1CON.7
    '-------------------------------------------------------------------------------

    '-------------------------------------------------------------------------------
    '**** NCO EXTERNAL OUTPUT (to physical PIN) Enable bit ****

    symbol NCO1_OE = NCO1CON.6
    '-------------------------------------------------------------------------------

    '-------------------------------------------------------------------------------
    '**** NCO OUTPUT Polarity ****

    symbol NCO1_POL = NCO1CON.4
    '-------------------------------------------------------------------------------

    '-------------------------------------------------------------------------------
    '**** NCO INTERNAL OUTPUT (to INTERNAL peripherals) bit ****

    symbol NCO1_OUT = NCO1CON.5
    '-------------------------------------------------------------------------------

    '-------------------------------------------------------------------------------
    '**** NCO Mode OUTPUT mode 50/50 or Pulwe Frequency Modulation ****

    symbol NCO1_PFM = NCO1CON.0
    '-------------------------------------------------------------------------------

    '-------------------------------------------------------------------------------
    '**** NCO INCREMENT ****

    'symbol NCO1_INCmsb = NCO1INCH
    'symbol NCO1_INCLSB = NCO1INCL

    '**** ALWAYS write NCO_INCmsb first, THEN NCO_INCLSB ****
    '-------------------------------------------------------------------------------

    '-------------------------------------------------------------------------------
    '**** ****
    '**** ****
    '**** Remember to SET NCO1_OP if using NCOx to drive interrupts ****
    '**** ****
    '**** ****
    '-------------------------------------------------------------------------------

    '-------------------------------------------------------------------------------
    '**** INTERRUPT Control setup ****

    symbol gie = intcon.7
    symbol PEIE = intcon.6
    symbol NCO1_IntEN = pie2.2
    symbol NCO1_FLAG = pir2.2

    trisc = %00000000

    symbol Led1 = porta.0

    delayms 500

    high led1

    'clk_src = %01

    NCO1CON = %11110000
    NCO1CLK = %00000001
    NCO1INCH = $00
    NCO1INCL = $34

    delayms 1000

    LOW led1


    increment = $1077

    NCO1INCH = increment.byte1
    NCO1INCL = increment.byte0

    delayms 2000

    CWG1CON0 = %11100000
    CWG1CON1 = %01010110
    CWG1CON2 = %01000000
    CWG1DBR = %00101011
    CWG1DBF = %00101011
    stop

    increment = $2222

    NCO1INCH = increment.byte1
    NCO1INCL = increment.byte0

    delayms 2000

    increment = $3333

    NCO1INCH = increment.byte1
    NCO1INCL = increment.byte0

    delayms 2000

    increment = $4444

    NCO1INCH = increment.byte1
    NCO1INCL = increment.byte0

    delayms 2000

    increment = $5555

    NCO1INCH = increment.byte1
    NCO1INCL = increment.byte0

    delayms 2000

    increment = $6666

    NCO1INCH = increment.byte1
    NCO1INCL = increment.byte0

    delayms 2000

    increment = $7777

    NCO1INCH = increment.byte1
    NCO1INCL = increment.byte0

    delayms 2000

    increment = $8888

    NCO1INCH = increment.byte1
    NCO1INCL = increment.byte0

    delayms 2000

    increment = $9999

    NCO1INCH = increment.byte1
    NCO1INCL = increment.byte0

    delayms 2000

    increment = $AAAA

    NCO1INCH = increment.byte1
    NCO1INCL = increment.byte0

    delayms 2000

    increment = $1111

    NCO1INCH = increment.byte1
    NCO1INCL = increment.byte0

    delayms 2000

    increment = $BBBB

    NCO1INCH = increment.byte1
    NCO1INCL = increment.byte0

    delayms 2000

    increment = $CCCC

    NCO1INCH = increment.byte1
    NCO1INCL = increment.byte0

    delayms 2000

    increment = $DDDD

    NCO1INCH = increment.byte1
    NCO1INCL = increment.byte0

    delayms 2000

    increment = $EEEE

    NCO1INCH = increment.byte1
    NCO1INCL = increment.byte0

    delayms 2000

    increment = $FFFF

    NCO1INCH = increment.byte1
    NCO1INCL = increment.byte0

    delayms 2000

    stop​

    Leave a comment:


  • JoyJo
    replied
    Greetings. Studying further the question of constructing (repeating, to be honest) a TX cascade for the possibility of working both on resonance and with full bridge mode, I did not find anything better than this solution: https://www.geotech1.com/forums/foru...gle-full/page2
    as they say: all the best was invented before us. There is no need to reinvent the wheel.
    But there are questions....

    Click image for larger version

Name:	image.png
Views:	632
Size:	51.0 KB
ID:	412118
    1. Figure 1: I understand that this is a RC-snubber for quenching bursts. This chain is optional: can it not be installed?
    2. Figure 2: Is this capacitor provided for the possibility of operation in the sequential resonance mode? If the need arises. So?​
    3. I understand that mosfets should be chosen not only according to the permissible voltage and current, but also according to the minimum gate capacity in order to ensure the best performance of the cascade. Right?
    4. As a voltage regulator, I can consider such a circuit. This solution allows you to adjust the voltage from 3.3V to 9V, providing quite a good current. Is this voltage range enough for a multi frequency of 2-3 frequencies? I understand that with such a small voltage range, it will not be possible to implement a single field for all frequencies using a single coil. But nevertheless.
    Click image for larger version

Name:	image.png
Views:	404
Size:	52.6 KB
ID:	412119
    4. Looking at the board from Minelab Vanquish 540, I saw 6 elements in the sot23 case. I understand that in this metal detector, such a cascade scheme of the TX that we are talking about is implemented. Right?Click image for larger version

Name:	image.png
Views:	413
Size:	426.7 KB
ID:	412120
    The highlighted element is probably a driver for management? Like a ТС4428 chip?

    Leave a comment:


  • ArchibaldSTM
    replied
    .

    Leave a comment:


  • JoyJo
    replied
    Thank you. It's really not that scary. We have encountered various situations with hacking keys to activate the firmware of the microcontroller. Therefore, the developer of the reality is so secure his work. There is no question about mailings: who wants to buy a microcontroller - there will be no problems on our part.

    Leave a comment:


  • Carl-NC
    replied
    Everyone is free to ask whatever questions they want to ask; everyone is free to respond or not; and everyone is free to do whatever they want with information they get here. That includes a commercial venture. No big deal.

    Leave a comment:


  • JoyJo
    replied
    I don't share your point of view. Having the ability to assemble a metal detector that is not inferior to branded analogues for the cost of components only is not the same as building a car and making money on it. The example you have given is similar to the argument of a small offended child.

    Leave a comment:


  • ArchibaldSTM
    replied
    I know these arguments about intellectual property --- they are made by all commercial vehicle developers. I just said that you forgot to say that the project is paid. Then many who want to repeat it will not be disappointed when they learn that you have to pay money. That's all

    Leave a comment:


  • JoyJo
    replied
    TheYou are both right and also wrong. The project has a share of commerce. You need to buy a counter-controller with a pre-installed loader only from the developer. All updates are free. Our region (Russia, Belarus, Kazakhstan and a number of other countries) knows the well-known metal detector Quasar. The developer of the quasar is a genius. But a lot of dishonest sellers began to earn on its development. Therefore, buying a microcontroller is copyright protection. In addition, the diagrams of the device are freely available. The cost of the microcontroller is not large. 30% of this cost is the purchase of a microcontroller, which the developer carries out for his own money. Therefore, this is just a protection against theft of the developer's intellectual property.

    Leave a comment:


  • Carl-NC
    replied
    Originally posted by JoyJo View Post
    So far, for the single-frequency version, the question is how to optimize the fight against the influence of soil.​
    Are you familiar with how ground balance is achieved in analog detectors?

    Leave a comment:


  • ArchibaldSTM
    replied
    Dear JoyJo ... You forgot to say that the project Stalker IB is commercial... $$$

    Leave a comment:


  • JoyJo
    replied
    Originally posted by Altra View Post
    You could do a fft/dft. I'm no expert but have dabbled and believe its a valid approach.

    FFT of your samples will give you the (R)eal and (I)maginary numbers. Which you can then derive the magnitude and phase for each IR pair in each frequency bin. Requires a fixed sample rate that obeys Nyquest. The more samples and twiddle factors the higher the frequency resolution.

    In metal detectors the "Real" is the resistive and the Imaginary the reactive components. Phase = atan(I/R) and the magnitude = sqrt(IxI+RxR). Once you have these for each frequency of interest, you can do as Carl suggested, the mixing across frequencies to get your GBs, vdi's.

    Using Microchips dsp functions. I did a audio spectrum analyser a long time ago. I also did an analog dual freq detector where I learned how to mix the various signals to disc, gb or even null salt water response.

    Here's a app note for 16bit dsp functions, they have similar functions for pic32

    https://ww1.microchip.com/downloads/.../90003141a.pdf

    All the other processor brands have dsp libraries.

    Then again maybe its as simple running your samples through a set of firmware BP filters?​

    Add: pic32 example
    http://hades.mech.northwestern.edu/i...f_Analog_Input
    We, in fact, also use FFT. The metal detector of us is built on a microcontroller from STM: STM32F407
    So far, for the single-frequency version, the question is how to optimize the fight against the influence of soil. The microcontroller is now loaded with the main algorithm by about 20%, so there is enough power for mathematical calculations. It remains to understand how and what to calculate. How can you only get a signal from the ground? In real time, we have a mixed target+ground signal. And how to get or calculate only the ground signal?​

    Leave a comment:


  • JoyJo
    replied
    Originally posted by Carl-NC View Post
    I've never compared the two methods so I can't say if one works better than the other. I suggest starting off with the SF method because it's easier to understand.
    The off-frequency method is already working. In deel checked. Now there is just an optimization of work with the soil. Video, however, in Russian.
    https://www.youtube.com/watch?v=z7_JB6_nPFE
    https://www.youtube.com/watch?v=oA_TS8IAh4U
    https://www.youtube.com/watch?v=DC0fO4tO77k
    https://www.youtube.com/watch?v=TVZkgTvEmU8
    https://www.youtube.com/watch?v=eFgT06boolk
    Not for advertising, but for the sake of demonstrating the achieved results.

    Leave a comment:

Working...
X