Announcement

Collapse
No announcement yet.

HH3 premises

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

  • #31
    No separate ADC required

    I do not believe that a separate ADC chip is required - the ADC's built into suitable PIC's are sufficient. The required dynamic range can be achieved with a suitable analogue preamp, and by adjusting the amplitude of the transmit pulse. Also can not make out the necessary details from the schematic posted.

    Comment


    • #32
      Originally posted by matabele View Post
      I do not believe that a separate ADC chip is required - the ADC's built into suitable PIC's are sufficient. The required dynamic range can be achieved with a suitable analogue preamp, and by adjusting the amplitude of the transmit pulse. Also can not make out the necessary details from the schematic posted.
      Sorry about the bad picture. For some unknown reason the .pdf does not transform into a quality picture, (this may be due to the fact that I still have a lot to learn about the CAD software. It is TARGET3001, FULL, FREE AND UNRESTRICTED for 250 pins.
      So here is the .pdf.
      I had posted it already here:http://www.geotech1.com/forums/showp...56&postcount=1

      The board is a basic PSU with a TX and a PIC used as timer. I use the PIC16F690, because it comes with the PICkit2, that I use to learn. However, I admit that my programming learning progress goes very, very slow.
      I also have a PIC18F4550 that has some advantages. I think it would be a good MCU to use.

      Tinkerer
      Attached Files

      Comment


      • #33
        This might be easier to read.

        Tinkerer - There are a few strange component values that you might want to take a look at.
        For example, 2.2mF and 1mF. Presumably these should be 2.2nF and 1uF.
        Attached Files

        Comment


        • #34
          Pinguino

          OK thanks for the link. Have you had a look at the Pinguino project: http://www.hackinglab.org/pinguino/index_pinguino.html - this way you get to program a PIC4550 with Arduino like code - a much easier task than learning assembler.

          Comment


          • #35
            Hi Qiaozhi,

            thanks for the observations.
            I am always glad when somebody points out my mistakes of clarifies doubts.

            I am still in the struggling phase with this CAD software. Actually I have not decided yet if I will stay with it or look for another one. It is free and unrestricted for 250 pins, but I have some difficulties with the components.
            The Capacitors C11 and C15 are 2200uF and 1000uF. The TX delivers 5A pulses.
            On the 3 D picture some parts are not represented (C11) or with the wrong shapes like the toroid inductors L1,2,3, there are no toroids in 3D available.

            The choice of components used on the board is conditioned by what I have in my parts box or can cannibalize from old equipment. Once the board has run and proved itself, I will redesign it for the final version, using good quality, easily obtainable components.

            Any suggestions for design and layout improvements are most welcome.

            Tinkerer

            Comment


            • #36
              Originally posted by matabele View Post
              OK thanks for the link. Have you had a look at the Pinguino project: http://www.hackinglab.org/pinguino/index_pinguino.html - this way you get to program a PIC4550 with Arduino like code - a much easier task than learning assembler.
              matabele,

              thanks for the feedback and the link. I looked at it.
              One reason I would like to use the PIC18F4550, is the max clock speed of 48MHz. The precision of the sample timing is helpful for resolving the discrimination and target identification. Even more important than the precision is a jitter free sampling.

              I know just about nothing about programming, but in general people say that assembler is best for precision timing.
              What is your opinion about that?
              Do you have some experience using the Pinguino for precision timing (better than 400nS)?

              Tinkerer

              Comment


              • #37
                Tinkerer,

                I've done lots of machine or assembly code, since the early 1970s. But that faded after getting into more complex code, using C language. From that standpoint I say this...

                I would agree that assembly code may be potentially more precise and efficient for this. I've done several applications which were in assembly code, and used code based timing for D/A, or hardware control. But there are other factors to consider. I list these, not knowing any of the fancy benefits of your PIC chip (I am completely ignorant of PIC firmware or its capabilities).

                If the A/D is purely a software based timed I/O operation, then assembly should give you precise timing. But if it has any hardware interrupts or DMA for this A/D I/O, then you can get by with a higher level language. But in the latter case, you may still need some low level code to handle the interrupts.

                But, if there are other things causing interrupts with this PIC, apart from the HH3 application (why or where from?), those could confuse things.

                But beyond that, that's all I can offer. And I don't do machine code anymore, it get's me too mixed up!

                Kevco

                Comment


                • #38
                  Assembly language code only way

                  The PIC assembly code is simple and really is easy to control the PIC, read the A2D, interface to high speed clock, etc. etc. AND it is fastest. I find that controlling down to the clock cycle is easy, just add or delete code to control the timing which is critical doing DSP algorithms.

                  The basic problem w/ higher order languages is they have lots of slop and are topically 15 times slower that assembler because of the added overhead.

                  With a metal detector you want as much direct control of the analog hardware as possible and that is best w/ assembler and many times impossible w/ high level languages like C, Fortran, etc..

                  So lets put this to be and move on!

                  Goldfinder

                  PS - I second the motion to use a pic with its own A2D. Saves a lot of programming headaches (interfacing etc.). I haven't checked out their chips for several yars. Been using the 12F675 and it has only a 10 bit but for what I've been doing it is adequate. With a metal detector though probably need 16 bits or more. It all depends of the amount of accuracy you need to analyze the decay signal of the incoming coil field collapse signal as that is where the information is for detection. So sampling speed and required accuracy combine to determine A2D bit length.
                  GF

                  Comment


                  • #39
                    Originally posted by goldfinder View Post
                    The PIC assembly code is simple and really is easy to control the PIC, read the A2D, interface to high speed clock, etc. etc. AND it is fastest. I find that controlling down to the clock cycle is easy, just add or delete code to control the timing which is critical doing DSP algorithms.

                    The basic problem w/ higher order languages is they have lots of slop and are topically 15 times slower that assembler because of the added overhead.

                    With a metal detector you want as much direct control of the analog hardware as possible and that is best w/ assembler and many times impossible w/ high level languages like C, Fortran, etc..

                    So lets put this to be and move on!

                    Goldfinder

                    PS - I second the motion to use a pic with its own A2D. Saves a lot of programming headaches (interfacing etc.). I haven't checked out their chips for several yars. Been using the 12F675 and it has only a 10 bit but for what I've been doing it is adequate. With a metal detector though probably need 16 bits or more. It all depends of the amount of accuracy you need to analyze the decay signal of the incoming coil field collapse signal as that is where the information is for detection. So sampling speed and required accuracy combine to determine A2D bit length.
                    GF
                    There is always some signal conditioning and filtering needed before any A2D. It is a matter of how much. With a 10bit A2D we need some more amplification. With a 16bit one we need less, but if the amplification goes together with the filtering and signal conditioning the difference in the end may be small.

                    The PIC18F4550 has a10bit A2D, but it is good for USB update or changing the software. This is a useful feature for an experimental design.
                    It also runs on up to 48MHz clock speed, this allows for very precise sample timing, that can help for differentiating different metals.
                    Let's get started!!!!!!!!!!!!!!!
                    Monolith

                    Comment


                    • #40
                      Goldfinder's points are valid. PIC assembly is rather simple, and is best for fast code and accurate timing. If you can program well in C, then you should have no issue learning PIC assembly in short order.

                      Also, what he said about a 10-bit A/D is accurate as well, assuming you are sampling at the preamp stage. A higher resolution A/D is required for low noise and sensitivity. If you include a differential/integration stage and sample after that, then 10 bits would likely be fine, but then you may as well do it all analog after that point anyway.

                      I currently have a pinpointer running on a breadboard using a dsPIC30f3010. It has a 10-bit A/D converter, and I'm sampling right after the preamp, which has a gain of ~1000. It's not very sensitive, partially due to the small signal in the noise, but mostly due to the lower resolution of the A/D.

                      Take a look at the AD7690 18-bit A/D. It looks like a good alternative, and should be relatively simple to interface to a PIC. I'm going to experiment with this option once I get this pinpointer project off of my desk.

                      Comment


                      • #41
                        uC selection possibilities

                        Been looking at PICs - this is one w/ 12 ADC and 28 pin PDIP ( I tried surface mount and not much good at it) and 28 DIP fits in the PICSTART Plus programmer. I bolded most important features. Not sure why some like the USB interface. Just puts more programming in higher level language burden and in the PC - a really lousy architecture. I rather stay w/ PIC and use their software MPLAB which is great, FREE, and runs in PCs and programs the PICSTART. Not too expensive (`$3.00) either.

                        PIC18F2423
                        Program Memory Type Flash
                        Program Memory (KB) 16
                        CPU Speed (MIPS) 10
                        RAM Bytes 768
                        Data EEPROM (bytes) 256
                        Digital Communication Peripherals 1-A/E/USART, 1-MSSP(SPI/I2C)
                        Capture/Compare/PWM Peripherals 2 CCP
                        Timers 1 x 8-bit, 3 x 16-bit
                        ADC 10 ch, 12-bit
                        Comparators 2
                        Temperature Range (C) -40 to 125
                        Operating Voltage Range (V) 2 to 5.5
                        Pin Count 28

                        I am open to other suggestions on PICs.

                        I'll think about a system block diagram next. This will allow allocation of architecture to hardware and software.

                        Goldfinder

                        Comment


                        • #42
                          Any chance of getting a Ground balance into the HH design .. would be ideal then for a gold hunting unit in the heavy mineralised grounds. Or is it too late for this project ?
                          tks

                          Comment


                          • #43
                            Originally posted by goldfinder View Post
                            Been looking at PICs - this is one w/ 12 ADC and 28 pin PDIP ( I tried surface mount and not much good at it) and 28 DIP fits in the PICSTART Plus programmer. I bolded most important features. Not sure why some like the USB interface. Just puts more programming in higher level language burden and in the PC - a really lousy architecture. I rather stay w/ PIC and use their software MPLAB which is great, FREE, and runs in PCs and programs the PICSTART. Not too expensive (`$3.00) either.

                            PIC18F2423
                            Program Memory Type Flash
                            Program Memory (KB) 16
                            CPU Speed (MIPS) 10
                            RAM Bytes 768
                            Data EEPROM (bytes) 256
                            Digital Communication Peripherals 1-A/E/USART, 1-MSSP(SPI/I2C)
                            Capture/Compare/PWM Peripherals 2 CCP
                            Timers 1 x 8-bit, 3 x 16-bit
                            ADC 10 ch, 12-bit
                            Comparators 2
                            Temperature Range (C) -40 to 125
                            Operating Voltage Range (V) 2 to 5.5
                            Pin Count 28

                            I am open to other suggestions on PICs.

                            I'll think about a system block diagram next. This will allow allocation of architecture to hardware and software.

                            Goldfinder
                            The way I understand it, the USB interface would make it possible to download updated software directly from the Laptop, in the field, using nothing more than a USB cable.
                            For an experimental platform this seems to be very useful.
                            The PIC18F4550 has 40 pins, still can be programmed with a PICSTART PLUS programmer, but it can also be programmed directly via USB.

                            More pins make it easier to use all the different functions.

                            I have run the PSU and TX board that Tinkerer posted above. Besides a few small mistakes, it runs well.

                            I suggest we change only the PIC on it for the PIC18F4550 and we have already half of out circuit running.

                            Monolith

                            Comment


                            • #44
                              Originally posted by gef12 View Post
                              Any chance of getting a Ground balance into the HH design .. would be ideal then for a gold hunting unit in the heavy mineralised grounds. Or is it too late for this project ?
                              tks
                              It is not too late to include a Ground Balance. For it to work in your extreme mineralized soil, you need to have some information on the actual response of the soil where you want to use the detector.

                              It is mostly a matter of dynamic range. Can you give us something to compare, something that e could use to simulate the response you get from the soil?

                              Monolith

                              Comment


                              • #45
                                For a worst case scenario extreme mineralized soil here would be ironstone .. you could run a magnet across the ground and pick up ironstone pebbles.

                                Comment

                                Working...
                                X