Close

Not a member yet? Register now and get started.

lock and key

Sign in to your account.

Account Login

Forgot your password?

Nuts and Volts Dec 2009

Introducing the 16 bit Micro Experimenter for Solderless Breadboards

Introduction

Isn’t it about time you moved on from 8 bit to 16 bit Microcontrollers? Why 16 bits? Well, simply, the performance is there: speed, memory, larger compliment of on-chip peripherals, and a growing set of software libraries applications. The libraries are free, and support applications that can do everything from high resolution LCD graphics, File management for logging to a Flash Smart Card, and HTTP web service!  This is just the kind of incentive needed to tackle more the challenging ideas where 8 bit machines may have been limiting. In this and a upcoming series of articles we will be introducing to you a new solderless bread boarding capability based upon 16 bit technology – “The 16 bit Micro Experimenter”. The 16 bit Micro Experimenter (or “Experimenter” for short) will be offered as a kit to Nuts and Volts Readership from their Web Site. The kit (shown assembled and unassembled in figure 1) comes with a CD-ROM that contains details on assembly, operation, as well as an assortment of ready made applications. All new applications will be posted at www.KibaCorp.com for free download.  Well, let’s get started!  In this article we will introduce you to the Experimenter, show some quick experiments that can be done “right –out-of-box “and introduce a really neat Christmas application for the Holidays that you can build.

kit
Figure 1  the kit unassembled and the assembled 16 bit Micro Experimenter shown with PICKIT2
I know what you’re thinking, this is cool, but do I need to learn a whole new set of tools to get started? Not at all, if you have been following Nuts and Volts articles on Embedded C programming and the PICKIT2   then a lot of what you learned for those 8 bit developments extends very neatly into the 16 bit world.

Overview of the Experimenter

The Experimenter was borne out of the need to use 16 bit machines yet still stay in a Solderless bread board environment.  For us hobbyists solderless bread boarding is an great way to prototype and test your ideas, and basically just to have fun without a lot of assembly. However, when I first started to breadboard 16 bit designs, I found myself first adding a lot of I/O in the form of display, pushbuttons, and other supporting IC’s. In the end, a significant part of the larger solderless breadboard reality was already occupied before I could even get started. The 16 Bit Micro Experimenter helped me get around all that. It is a complete microcontroller with user interface that plugs into the solderless breadboard. With the Experimenter you not only have an LCD display, pushbuttons, long term storage EEPROM, but also the Microchip ICSP interface for program and debug on board (See figure 2 for Experimenter Block Diagram). In addition the Experimenter has its own regulated power source, on/off switch that supplies power to the module from either a DC power source or wall transformer. This power source can also feed you other solderless breadboard components. Finally the Experimenter supports an I/O expansion bus to allow you to easily hook up this system with other components on the breadboard you may need as part of your experiment.  In short the Experimenter captures all the basic support needs for using 16 bit Microcontrollers on solderless breadboards.


Figure 2 Block Diagram

The center piece is Microchip PIC24F Microcontroller. The PIC24F is the lowest cost 16 MIPS (Million Instructions per Second) microcontroller available from Microchip, and is their advertised entry point from 8 bit microcontrollers.
Companion to the PIC24F is a 32KB Serial EEPROM (25LC256) that allows for flexible non-volatile storage as required during program operation to store those necessary items for some applications like calibration data, password or even miniature web page content.
The Experimenter is also equipped with a clock crystal to insure accurate time keeping with the PIC24F internal Real Time Clock Calendar peripheral (RTCC).
The PIC24F is a +3.3V part as well as all the other components on the Experimenter. However, not to worry, all inputs on the I/O expansion Bus are +5V volt tolerant, and all the digital only I/O Expansion Bus outputs can be configurable as well to be Open Drain (open ended CMOS outputs). These outputs can be tied to external pull up resistors to +5V to achieve +5 volt levels. The whole scheme allows easily transition when interfacing the Experimenter with +5V logic families.
The Experimenter assembly is 4.25” x 3.3” and is recommended for use with the larger solderless breadboard (3260 contact).  A schematic for the Experimenter is shown.

Development Tools

The development tool set to use with the Experimenter is Microchip’s Inexpensive Integrated Development Environment (MPLAB), Microchip free student edition of their PIC24 ‘C’ compiler, and the Microchip PICKIT 2 debugger and programmer kit, and. Links are provided.
Free Microchip’s MPLAB
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002
Free Microchip evaluation version C complier.
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en535364
Code debug, download and programming were done using Microchip inexpensive PICKIT2. A product description can be found at
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en023805
The PICKIT2 kit is available from Nuts and Volts web site.

I/O Expansion Bus

The Experimenter I/O bus is used to connect your breadboard board hardware to the Experimenter Module. There are a total of ten pins available. Each pin is programmable and allows access to any of the internal peripherals with the PIC24F. There is a complete write-up available on the associated CD-ROM  and the web site, but more details on this later.

The Experimenter in Operation

Download Demo Software

Download just Demo HEX file with configuration

Once assembled and the powered is the Experimenter will work “out-of-the-box” with a series of preprogrammed demos. Immediately the Experimenter” “introduces” itself and its capabilities through a series of “Flash” screens on the LCD. There are a total of eleven screens, each last about 4 seconds, with the entire sequence continuously repeating itself. This is a good indication that the unit is up and working just after your assembly, but now the fun is just beginning. By pushing S1, S2, S3 pushbuttons you can now elect one of the three built-in demos to explore the Experimenter even further.  Keep in mind that to run some of these experiments will require you to use some additional hardware to work along side the Experimenter on the solderless breadboard. You can exit any demo and return to Flash Displays any time by simply pressing S4.

Button S1-Thermometer


Figure 3 Thermometer Demo

This demo configures I/O Expansion Bus  pin 1 of I/O expansion bus to be an analog input and then continuously digitizing this input using the PIC24F internal 10 bit ADC. The results are displayed in degrees Fahrenheit. You need to connect a LM34Z sensor as shown. Please use a raw input of +5VDC for input power to power the sensor. This can be done simply by apply power to the board through the RAW + and – inputs rather then using a wall transformer.

Button S2 – An RGB Color Generator.


Figure 4 RGB Demo

This Demo configures I/O Expansion Bus pins 7, 8, 10 to be independent Pulse Generators (using the PIC24F Output Compare Modules) to PWM separately each of the three LEDS (Read, Green and Blue) of an RGB LED. Each PWM output has a setting of 0-255 which can be set via the LCD and pushbuttons so that you can get 255x255x255 or 16M different colors under this arrangement. You need to connect a RGB LED as indicated, using 470 ohm resistors in series with each LED anode, and common cathode to ground. My RGB LED source was SPARKFUN (www.sparkfun.com) Enjoy the show! To exit and go back to the flash screens simply press S4.

Button S3-Clock Calendar


Figure 5 Clock/Calendar
This demo enters a mode where pushbuttons assume clock setting and control operations for internal 100 year real time clock calendar with alarm. User options are: change mode from clock display to clock setting and enter clock changes, stay in clock mode to simply display clock, or exit clock mode back to “Flash Screens”.   Designated button functions are as follows:

  • Button S1         toggle between clock run mode and clock setting mode
  • Button S2         if in clock setting mode increment current data field
  • Button S3         if in clock setting mode decrement current data field
  • Button S4         advance to next allowable data field if in clock setting mode or if pressed in clock run mode exit to “Flash Screens”

A  Holiday Application!

Just to round things off for the holidays we put together a Holiday lights and sound application using the experimenter. The Experimenter powers up wishing you a “Merry Christmas and Happy Holiday” on the LCD screen while randomly flashing 8 LEDS connected to the I/O Expansion Port (see photo).  I used a variety of colored LEDS to make it more interesting and changed the series resistor associated with a particular  LED as needed to make it brighter ( suggest anything from 1K to 330 Ohms). I then hooked up a +3.3V PIEZO beeper (using All Electronics cat # SBZ-203) to I/O Bus Expansion pin 10 and configured that pin as a  PIC24F PWM generator for sound. When the user depresses SW1 the Experimenter plays a stanza of Jingle Bells while showing lyrics on LCD. When finished it returns to the “Merry Christmas” display. Enjoy!


Figure 6  Christmas Application


Figure 7 Christmas Application Hookup

Programming the Experimenter Holiday Application

Download Christmas demo

Download Christmas demo HEX file with configuration

The Demo application code for this project is downloadable .  Make sure to install all tools before hand. Please download, unzip, and place the project folder Christmas on your desktop and put these in a convenient location on your computer. Now connect the PICKIT2 to USB of you computer and the other end to the ICSP on the Experimenter. Switch on power to the Experimenter. Open the folder containing our application code, and double click project file Christmas.mcp. You should see the MPLAB GUI with the demo project directory visible, C code for Main function is open, and the output window should display PICKIT2 ready, PIC24FJ64GA002 found, and show that target power is applied.
We are almost there. On the IDE toolbar click the Build button, and watch IDE and PIC 24 C Compiler compile the program.  The output window should indicate no compile error. Use Program option pull down list and select  program. The PICKIT2 will then actively program the PIC24F flash on your breadboard through ICSP.
At the completion of this your Experimenter ought to automatically come up with Christmas Application. You can now either remove the PICKIT2 from the ICSP or leave it connected. The Experimenter will now work independently on each power up cycle.