Documents

Join the membership
for readers

Description
Independent Study Report for ECE 4999 at Cornell University, Spring 2014.
Categories
Published
of 15
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Related Documents
Share
Transcript
  CORNELL UNIVERSITY   ECE 4999: INDEPENDENT STUDY REPORT Under the supervision of Professor Bruce R. Land Syed Tahmid Mahbub   Spring 2014   A further study into the use of the PIC32MX250F128B, with side projects using the AT91SAM3X8E (Arduino Due) and the Intel Galileo    Page 2  of 15   TABLE OF CONTENTS 1.   INTRODUCTION ……………………………………………………………………….  3 2.    AT91SAM3X8E TESTS ……………………………………………………………………….  3 3.   PIC32 TESTS ……………………………………………………………………….  3 a.   PROTOTYPE BOARD …………………………………………………………..  3 b.   OTHER TESTS …………………………………………………………..  4 c.   CLOCK SWITCHING …………………………………………………………..  5 d.   CORE TIMER …………………………………………………………..  5 e.   32-BIT TIMER …………………………………………………………..  6  f.   FURTHER I/O …………………………………………………………..  6 g.   DAC WITH ANALOG COMPARATOR REFERENCE MODULE ……….  7 h.    ADC ……………………………………………………………………….  8 i.   DMA ……………………………………………………………………….  8  j.   PWM ……………………………………………………………………….  9 k.   INTERRUPT ……………………………………………………………………….  11 l.   CAPTURE AND ANALOG COMPARATOR MODULES: CAPACITANCE METER 12 m.   PERIPHERAL LIBRARY AND LOW-LEVEL ACCESS ………..  13   4.   TESTS WITH INTEL GALILEO ………………………………………………………….  14 5.   FURTHER EXPANSION ………………………………………………………………………  15 6.    ACKNOWLEDGEMENT ………………………………………………………………………  15  Page 3  of 15   INTRODUCTION The independent study for this semester  –  Spring 2014  –  is a continuation of the independent study from last semester: a comparative study between the Atmel AT91SAM3X8E and Microchip PIC32MX250F128B 32-bit microcontrollers. However, this semester I shifted my focus mostly to the PIC32MX250F128B over the AT91SAM3X8E in order to get a better understanding of the PIC32 as this has better promise in terms of applicability especially in a hobbyist or classroom setting. Beyond working with just the PIC32, I experimented a bit with the Intel Galileo due to its “Arduino compatibility”. While the Arduino Due was used mostly for the convenient platform (instead of having to deal with the surface mount AT91 microcontroller, or its programmer and basic connection) provided for experimenting with the AT91SAM3X8E , the “Arduino compatibility” feature of the Intel Galileo presented an interesting opportunity to perform some simple basic tests to compare performance between the 84MHz AT91 platform and the 400MHz Intel Quark platform.  AT91SAM3X8E TESTS I did not work much with the AT91SAM3X8E this semester. However, I did work on a simple mini oscilloscope that used the internal ADC along with a small TFT display obtained from Adafruit. That is as far as my experiments went with the AT91. It is still a nice option for quick prototyping or quick circuit design, given its plethora of hardware peripherals and available library functions. However, since this is not likely to be used in an educational (eg a microcontroller course) or a commercial (due to price of platform compared to microcontroller itself) setting, I chose to pursue the PIC32 in more detail (the PDIP package of the PIC32 also makes it an attractive option for hobbyist/prototyping purposes). PIC32 TESTS PROTOTYPE BOARD  I initially made a verroboard prototype board for experimenting with the PIC32. This had the basic power connections along with connectors on the board to make it easy to take connections to other circuits. The idea was to be able to power it externally (without using the USB port of the laptop, which I did not like) along with the ability to have a more “sturdy” board  (the Microstick II appeared a bit flimsy especially the connectors at the bottom that would come off the breadboard very easily). I then worked on the design of the simple proto board to make a finalized version on PCB. I ended up designing a simple small PCB that incorporates the PIC mounted on a DIP socket, along with the basic connections for power, optional connections for an external crystal oscillator, USB connector, a variable resistor whose wiper can be connected (via a jumper) to an analog pin, a programmer (PICKIT3)  Page 4  of 15  header and an array of pins along the edge of the board that can easily be plugged into a breadboard. The pins consist of all the IO pins of the PIC32 along with the power (VDD, GND and VIN) connections. A detailed description of the verroboard prototype can be found on my blog at: http://tahmidmc.blogspot.com/2014/02/pic32-development-proto-board-on.html Details of the finalized prototype board, along with the design files (schematic + PCB designed with ExpressPCB) and images of the final mounted/assembled board can be found on my blog at the following link: http://tahmidmc.blogspot.com/2014/02/pic32-proto-board-details-schematic-pcb.html Here is a picture of the final prototype board that I have been using for all my experiments (connected to the PICKIT3 programmer): OTHER TESTS  I spent some time just trying to understand the PIC32 internal architecture to get a grip of what’s happening inside and why.   While my independent study’s focus was mainly on the PIC32 peripherals, I felt like I had to understand what was going on inside especially when I could get a port pin to toggle at only about 5MHz with the PIC running at a 40MHz clock. This led me to learn a bit about the internal architecture of the PIC32, of not just the peripherals but also of the MIPS core. This, additional to the inspected assembly code, enabled me to understand why a lot of things were happening as they were (for example the 5MHz pin toggle). Besides that, it was pretty cool learning how the MIPS core
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks