Hello guys, since the bipolar mode of the pulse induction metal detector is being discussed very lively here, I decided to see how a simple bipolar detector could be constructed. Since I had three completely free days (my wife is on vacation, along with the granddaughters), I sat down at the computer to see what I could do. It really took me a long time to draw the schematic (the easier part) and make the basic firmware for the job. The detector turned out really simple, I don't think a simpler circuit could be made. I use direct sampling after the amplifiers and everything after is processed virtually.
The first job was to make the TX module. I tried to solve the main problem related to the slow discharge of the input capacitances of the MOSFET, so I did a "hybrid circuit". From the MCU I control powerful bipolar transistors that can be turned off instantly (they are controlled by current). They, in turn, turn on the diagonal MOSFET, which allows me to use very low gate-source resistances. By this way every MOSFET can be turned off for a really very short time. Bipolar transistors are protected from the high voltage of the coil by high-voltage diodes, but if any MOSFET enters in avalanche mode, a high voltage could occur at the bipolar switches. For this, I have put protective zener diodes, they are really necessary (I attach all the circuits).
CHARGE PUMP is a classic circuit, controlled by the MCU on each half-cycle. Since I read somewhere (perhaps Pechkata wrote somewhere) that this method is not successful, on a PCB I left the door open - if it does not work well, due to the relatively low frequency, I can easily "graft" a generator based on 555. True, it will generate higher noise, but it would work.
All parameters are adjustable via the user menu. The current program and all of the corresponding settings can be saved in EEPROM. So when starting the detector, you can choose whether to start it from a basic program or from a saved user program (there are 8 user programs).
The detector uses 7 samples:
Three samples are taken during ON_TIME and four samples during OFF_TIME, respectively:
Atg1 = A1positive + A1negative; ON_TIME
Atg2 = A2positive + A2negative; ON_TIME
CoilCurr = (CoilCurr positive + CoilCurr negative)/2; ON_TIME
Tg1 = Tg1positive + Tg1negative; OFF_TIME
Tg2 = Tg2positive + Tg2negative; OFF_TIME
GB1 = GB1positive + GB1 negative; OFF_TIME
GB2 = GB2positive + GB2 negative; OFF_TIME
For odd cycles (positive+negative) the samples with odd number are taken, and for even cycles the samples with even number. This allows much more flexibility in the settings (e.g. TA1 can have a delay from Tmin to (Timpulse - width of ADC CoilCurr), and not from Tmin to TA2, if they were taken every time).
I'm using a 12-bit MCU, but after summ the positive and negative samples it becomes 13 bits, and after adding the even/odd samples ( or the results of GB channels) it becomes 14 bits. I could further increase the sample resolution during the averaging process, but at least for now I don't see a good reason. The averaging of the samples is performed by a digital LOWPASS FILTER, whose "integration constant" can be set from the menu.
The detector has two modes: Monocoil Mode and Induction Balance Mode.
FERRO/COLOUR discrimination, for the moment, is only done in IB MODE.
There are two independent GB channels, the outputs of which are normalized in such a way, that all unbalanced signals from them are in one direction and in one quadrant, which allows me to simply sum them at the end, and eliminate (I hope) the "functional hole". The ground balance can be turned off (for very light soils) or worked with.
The ground balance is adjusted manually for now, (channel by channel), but it's not difficult to automate it.
The CAT has three adjustable ramps that allow different speeds to be achieved when a target signal is detected and when the target zone is left. Of course, "common ramp" can be used for both events, as in the classic detectors. The CAT can be switched on or off, and by changing the settings the following modes can be implemented:
( NO_MOTION MODE);
(LOW_SPEEDMOTION MODE) or
(NORMAL_SPEEDMOTION MODE).
In general, this detector can be used for searching for coins and larger targets, but it is not suitable for GOLD PROSPECTING. The minimum ADC duration to obtain a result is about 13.5us (75 ksps), and together with the ADC request times it reaches 15us, so it is not possible to take a sample too early.
All simulations were done on PROTEUS, so I don't expect any conflicts with the real detector (moreover, almost all things were implemented on my previous monopolar PI detector).
I have attached the files.
It is true that there is much to be desired in the PCB (some links and elements need to be placed on the side of the foil), but these are my capabilities.
Regards, guys
PS:The sound is monotone and is generated by the PWM module of the MCU, with the strength being proportional to the signal from the target (the other PWM module adjusts the display backlight).
I Schems.rar
The first job was to make the TX module. I tried to solve the main problem related to the slow discharge of the input capacitances of the MOSFET, so I did a "hybrid circuit". From the MCU I control powerful bipolar transistors that can be turned off instantly (they are controlled by current). They, in turn, turn on the diagonal MOSFET, which allows me to use very low gate-source resistances. By this way every MOSFET can be turned off for a really very short time. Bipolar transistors are protected from the high voltage of the coil by high-voltage diodes, but if any MOSFET enters in avalanche mode, a high voltage could occur at the bipolar switches. For this, I have put protective zener diodes, they are really necessary (I attach all the circuits).
CHARGE PUMP is a classic circuit, controlled by the MCU on each half-cycle. Since I read somewhere (perhaps Pechkata wrote somewhere) that this method is not successful, on a PCB I left the door open - if it does not work well, due to the relatively low frequency, I can easily "graft" a generator based on 555. True, it will generate higher noise, but it would work.
All parameters are adjustable via the user menu. The current program and all of the corresponding settings can be saved in EEPROM. So when starting the detector, you can choose whether to start it from a basic program or from a saved user program (there are 8 user programs).
The detector uses 7 samples:
Three samples are taken during ON_TIME and four samples during OFF_TIME, respectively:
Atg1 = A1positive + A1negative; ON_TIME
Atg2 = A2positive + A2negative; ON_TIME
CoilCurr = (CoilCurr positive + CoilCurr negative)/2; ON_TIME
Tg1 = Tg1positive + Tg1negative; OFF_TIME
Tg2 = Tg2positive + Tg2negative; OFF_TIME
GB1 = GB1positive + GB1 negative; OFF_TIME
GB2 = GB2positive + GB2 negative; OFF_TIME
For odd cycles (positive+negative) the samples with odd number are taken, and for even cycles the samples with even number. This allows much more flexibility in the settings (e.g. TA1 can have a delay from Tmin to (Timpulse - width of ADC CoilCurr), and not from Tmin to TA2, if they were taken every time).
I'm using a 12-bit MCU, but after summ the positive and negative samples it becomes 13 bits, and after adding the even/odd samples ( or the results of GB channels) it becomes 14 bits. I could further increase the sample resolution during the averaging process, but at least for now I don't see a good reason. The averaging of the samples is performed by a digital LOWPASS FILTER, whose "integration constant" can be set from the menu.
The detector has two modes: Monocoil Mode and Induction Balance Mode.
FERRO/COLOUR discrimination, for the moment, is only done in IB MODE.
There are two independent GB channels, the outputs of which are normalized in such a way, that all unbalanced signals from them are in one direction and in one quadrant, which allows me to simply sum them at the end, and eliminate (I hope) the "functional hole". The ground balance can be turned off (for very light soils) or worked with.
The ground balance is adjusted manually for now, (channel by channel), but it's not difficult to automate it.
The CAT has three adjustable ramps that allow different speeds to be achieved when a target signal is detected and when the target zone is left. Of course, "common ramp" can be used for both events, as in the classic detectors. The CAT can be switched on or off, and by changing the settings the following modes can be implemented:
( NO_MOTION MODE);
(LOW_SPEEDMOTION MODE) or
(NORMAL_SPEEDMOTION MODE).
In general, this detector can be used for searching for coins and larger targets, but it is not suitable for GOLD PROSPECTING. The minimum ADC duration to obtain a result is about 13.5us (75 ksps), and together with the ADC request times it reaches 15us, so it is not possible to take a sample too early.
All simulations were done on PROTEUS, so I don't expect any conflicts with the real detector (moreover, almost all things were implemented on my previous monopolar PI detector).
I have attached the files.
It is true that there is much to be desired in the PCB (some links and elements need to be placed on the side of the foil), but these are my capabilities.
Regards, guys
PS:The sound is monotone and is generated by the PWM module of the MCU, with the strength being proportional to the signal from the target (the other PWM module adjusts the display backlight).
I Schems.rar

Comment