Announcement

Collapse
No announcement yet.

chipKIT uno32 Arduino MD experiments

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

  • chipKIT uno32 Arduino MD experiments

    Hello

    I'm starting this thread to open a discussion on using the chipkit uno32 / Arduino microcontrollers.

    for additional information on the Arduino, a good place to visit is :

    http://www.arduino.cc/

    another good source of fun projects and tutorials is:

    http://tronixstuff.wordpress.com/

    My main focus will be on the Chipkit uno32, IMHO, i think it's best suited for a easy to learn, high performance micro controller.

    The chipkit uno32 platform (mpide) is the same as the arduino platform, as matter of fact, I can have my arduino plugged in and my chipKIT plugged in at the same time, and write a program, compile it, download it to my arduino, then change the board selection to chipkit uno32 , compile it and download it. pretty neat!!

    we all know theirs alot of different and better microcontrollers available, but i doubt their as easy to work with.

    All software will be free for everyone to use!!! and designs also.....


    well to start it off, here's a picture of my Chipkit uno32 with the nokia 5110 display attached

    if you noticed, I ran my wires to the bottom of the board, that way it frees up the top of the board. also the 4 pins coming out of the side are for power. more room for experments.

    oh, one more item, to give credit to where it's due, would be to
    Moodz, he told me about this board

    also, everyone on this forum for your ideas, i may be usuing..............
    Attached Files

  • #2
    Originally posted by hdphilip View Post
    Hello

    I'm starting this thread to open a discussion on using the chipkit uno32 / Arduino microcontrollers.

    for additional information on the Arduino, a good place to visit is :

    http://www.arduino.cc/

    another good source of fun projects and tutorials is:

    http://tronixstuff.wordpress.com/

    My main focus will be on the Chipkit uno32, IMHO, i think it's best suited for a easy to learn, high performance micro controller.

    The chipkit uno32 platform (mpide) is the same as the arduino platform, as matter of fact, I can have my arduino plugged in and my chipKIT plugged in at the same time, and write a program, compile it, download it to my arduino, then change the board selection to chipkit uno32 , compile it and download it. pretty neat!!

    we all know theirs alot of different and better microcontrollers available, but i doubt their as easy to work with.

    All software will be free for everyone to use!!! and designs also.....


    well to start it off, here's a picture of my Chipkit uno32 with the nokia 5110 display attached

    if you noticed, I ran my wires to the bottom of the board, that way it frees up the top of the board. also the 4 pins coming out of the side are for power. more room for experments.

    oh, one more item, to give credit to where it's due, would be to
    Moodz, he told me about this board

    also, everyone on this forum for your ideas, i may be usuing..............
    Well, for starters, for VLF IB projects, I think you could drive a TX section, provide clocking for ADCs, provide tone ID and VDI without too much trouble. I'm interested in what you can do with a Nokia 5110. Is there a graphics library for it?

    I would like to see more folks jump on board to see what kind of things we can do as well. Maybe when the weather gets cold again and I'm stuck inside I'll play a little more with mine.

    I knew nothing about C programming but picked up the basics pretty easily :
    http://www.youtube.com/watch?v=b93lfFtUSFs

    Don

    Comment


    • #3
      hi don,

      i seen your software for your arduino based VDI, truly impressed!

      will have to put a link to it, well here it is:


      http://www.geotech1.com/forums/showthread.php?t=18958

      The graphics library I'm using for the Nokia 5110 can be found here:

      http://www.henningkarlsen.com/electr...rary.php?id=48

      I'm not a seasoned graphic programmer but it'll work for now.

      I ordered a Nokia 6110 LCD (color) it'll be insteresting to make that work.


      just to let you know whats coming up,

      I just got my 16 bit adc (ads8319) working on
      my chipkit, i do want to try it on my Arduino, which i will, but the device is 3.3 volts

      also. I'm not sure if the arduino SPI clock is fast enough.

      heres the data sheet on my adc :

      This adc is one I picked mainly for the experience of programming
      Attached Files

      Comment


      • #4
        Building a simple pulse induction detector should be easy with the arduino platform. In fact, you could choose an atmega168 or even an atmega8 variant to build one. Make sure you are using a high resolution ADC. The atmega's 1024 bits is not enough.

        There is a good example what can be achieved in the russian CHANCE project, it uses a 12 bit MCP3201 for measuring coil voltages.

        Anyway, the UNO32 is a good platform but way to much power for a metal detector. Unless you want to perform FFT analysis and display it in colour on your display in real time...

        Comment


        • #5
          joop

          The chance project looks like a very nice project indeed, and using a 12 bit adc is going to be a step up from the on board 10 bit adc's.

          Anyway, the UNO32 is a good platform but way to much power for a metal detector. Unless you want to perform FFT analysis and display it in color on your display in real time...
          I'll take the at least 6x the power for about the same cost and ease of programming any day.


          Philip

          Comment


          • #6
            ADC Experiment

            well here's my first hardware experiment for my chipkit uno32, it's based on the ADS8319
            16 bit analog to digital converter.

            500 khz sampling rate
            Conversion time 1.4 us
            Acquisition time 600 ns


            The topic's I plan to cover are:,

            How i wrote the software to interface the ads8319 on my uno,

            screen shots of my logic analyzer showing the timing diagrams
            relative to the data sheet (figure 46 on the data sheet).
            Attached Files

            Comment


            • #7
              Good going Philip I look forward to your results.

              Just been reading the bugwhiskers UPIM thread. He was getting some good results with a less spec'd ADC hooked to an Atmega644 back in 2008 so would be good to see if you can squeeze out some more performance with your rig. You have probably seen it, but if you haven't the schematics are there just need to search a bit because they are scatted throughout the thread.

              Are your sampling directly from after preamp or amplifying more again? Any noise problems, yet?

              rickodetrader

              Comment


              • #8
                hi rick,

                yes I've looked at bugwhisker's project, i like the way he wrote it in ASM, good project.

                another project that I've built is moodz unpi project, I'll tell ya that's a excellent project
                when it came to adjusting all of your timing. it was right on! his menu system work excellent.

                Are your sampling directly from after preamp or amplifying more again? Any noise problems, yet?
                I haven't really put any thought into that, one of the curiosities i have is what kind of sample rate i can achieve using MPIDE.

                As far a noise goes, so far it seem pretty good, been thing about stepping up to a 24 bit ADC chip

                On my test board you see a number of IC's I'll be posting the schematic soon, basically I'm feeding the ads8319 chip using a THS4281 buffer, and a ref5040 for the voltage reference.

                I also put a 7660 as a voltage multiplier to take the 3.3volts to about 5 volts, that didn't work out as well as i planed, so i ran a jumper to the +5 volts, it powers the voltage reference and the op amp and the analog voltage feeding the adc chip,

                The gray trimmer is used for testing it's just a 50k pot between the +5 and ground. i did put a 1 uf cap on the bottom of the board between gnd and the wiper the clean up the test voltage.

                The lower left i included a n-channel moset, the input isn't hooked up yet, the idea being if everything works out i could use it to drive another circuit for a coil.

                Above the mosfet, you can see a little 6 pin chip, that's a audio switch DG4157, I got that idea from forum member jon-ecm's project . here's the idea, it's a 1 ohm spdt analog switch, one side of the switch would go to the preamp/coil, and the other side of the switch goes to ground,
                it just a way to use software to control the input, and i am curious to see it work, with it's 1 ohm rating, it may be better than the commonly used 4066's

                all of the 2 pin jumpers are for testing.

                attached is a PDF from Texas instruments, it gave me a few ideas

                Philip
                Attached Files

                Comment


                • #9
                  Cool Philip I'll check out moodz' PI project next.

                  I ordered a AD7892AR-3 LC2MOS Single Supply 12-Bit 600 kSPS ADC off eBay last night. I know it's only 12-bit, but it's also only $4.50! Conversion time 1.47 uS similar to your one so it should cure the sample time problem.

                  Keep us posted, keen to see how you get on!

                  rickodetrader

                  Comment


                  • #10
                    hey rick

                    just looked at the data sheet, on the serial mode it inserts 4 leading zeros, see

                    Figure 3. Serial Mode Timing Diagram

                    thats kinda handy for the software to drive it

                    Philip

                    Comment


                    • #11
                      Hmmm... sorry Philip I'm not sure what that means, will need to do some more learning and get back to you.

                      rickodetrader

                      Comment


                      • #12
                        rickodetrader

                        microcomputers like to transfer information in 8,16,32 bits format, so with when you have a 12 bit device, such as your adc converter, somehow you'd have to shift the bits to the proper place for the computer to understand, cause the ad7892 inserts "0" in the right place, you wouldn't need to have additional programming to do this in the computer.


                        Philip

                        Comment


                        • #13
                          Hi hdphilip,

                          Thank you for explaining that to me. Will still need to learn a bit more but that has pointed me in the right direction. As obviously I haven't hooked an arduino up to an ADC before, is it relatively easy? ie. Serial.begin(); (a serial connection of 384kbps)? Just seeing what I have ahead, can't wait really!! Just got the remaining bits for my Surf PI Pro, soldered them in and it is WORKING. Not the best depth or sensitivity with the 4 inch test coil but... encouraging. So looking forward to digitalising things soon.

                          How is your project going?

                          Comment


                          • #14
                            rick,

                            is it relatively easy? ie. Serial.begin(); (a serial connection of 384kbps)?
                            no, not exactly, more like

                            spi.begin(); that might be a something to research

                            http://en.wikipedia.org/wiki/Serial_..._Interface_Bus just glance at this.....

                            http://www.gammon.com.au/forum/?id=10892 know this, this is how i learned it


                            i just got a oled display in the mail today, can't wait to try it out.

                            i'm putting together a arduino experiment (works on the chipkit too)


                            Philip

                            Comment


                            • #15
                              Here's a fun program for the Arduino/chipkit.

                              This program will display the elapsed time in microsecond for 10 ADC samples. I didn't write this program, i found it on the web, i don't remember where.

                              my results:

                              Arduino: 1124 microseconds for 10 conversions , so that would be about 112.4 microseconds per analog read. (usuing internal ADC)

                              Chipkit : 51 microseconds for 10 conversions, so that would be about 5.1 microseconds microseconds per analog read. (usuing internal ADC)

                              both ADC's are 10 bits

                              anyone get any similar results?

                              does this rule out the arduino? maybe not, i'm thinking an externial adc on the spi bus is worth a try.

                              Philip





                              Code:
                              /***************************************************** 
                               This program display the time required to take 10
                                ADC samples. 
                               
                               *******************************************************/
                               
                              int val;
                              unsigned long time, time2;
                              void setup()
                              {
                                Serial.begin(9600);
                                Serial.println("hello");
                                  delay(2000);
                              }
                              void loop()
                              {
                                int i;
                                time = micros();
                                for(i=0; i <10 ;i++) // do 10 conversions for better time estimate
                                  val=analogRead(A0);
                                time2 = micros();
                                Serial.print("\n time elapsed for 10 conversions (microseconds): ");
                                Serial.print((time2-time));
                               
                                Serial.print("\n Analog value: ");
                                Serial.print(val);
                                delay(1000);
                              }
                              Last edited by hdphilip; 04-27-2012, 02:24 AM. Reason: typo

                              Comment

                              Working...
                              X