Presentation on theme: "Getting Started with PIC Microcontrollers Kelly Flowers – NN8E April 18 th, 2011."— Presentation transcript:
Getting Started with PIC Microcontrollers Kelly Flowers – NN8E April 18 th, 2011
My Background Licensed in 1979 Education – BSEE 1981 Licensed Professional Engineer (Ohio) Former NOARS member (80’s and 90’s) Worked for Allen-Bradley/Rockwell for 25yrs Worked with computers and microprocessors since 1979 Began working with PICs in late 90’s
What am I going to cover tonight? PIC background, purpose, value proposition PIC architecture (what’s it look like inside one) How can you use one? PIC system overview(dev s/w, programmer, target or protoboard) Programming language choices(Assy, Basic, C) Simple examples / hands on Recommended resources Just want to whet your appetite tonight!
The 411 on PICs Peripheral Interface Controllers came along in the 90’s from Microchip Small pin count microcontrollers intended to be ‘smart’ and ‘fast’ I/O front ends for more traditional microprocessors Not intended to have big number-crunching ability Hundreds of PIC’s and dsPIC’s
Why are they so popular? Cost! – Per piece cost is low, typically under $5 – Software development environment needed to program the devices is FREE (MPLAB IDE) – Programmers are low cost Learning curve is fast(low # of instructions) Proliferation of hardware, software, books Backward compatibility Higher level language compilers(Basic, C) ‘Canned’ serial comms (RS232, SPI, I2C) Flash memory based, quickly re-programmable Minimal support parts needed
The simplest of PIC’s This even has analog input capability!!!
General PIC project overview INPUTS Digital Analog PIC OUTPUTS Digital SERIAL DEVICES (displays, EEPROM, RTC, smart sensors)
What do you need to get started? PC to load development software(MPLAB) on to Programmer which connects between PC and your PIC Target or protoboard or your actual project board to test your program!
The simplest of PIC projects Even the 12F675 supports ICSP!
What is MPLAB IDE? This is the program you download to your PC to get started with writing your first program Integrated Development Environment – Free integrated software tool set for developing and troubleshooting programs for embedded applications using PIC’s – Easily integrates with 3 rd party software such as high level language compilers – Really high quality, professional grade software The bad news is Microchip upgrades it a lot and every few generations changes the look and feel!
Programming Language Choices Assembly language is the lowest level – No extra cost to use – Fastest – Manipulating things at the ‘bit level’ – Not easy to do higher level tasks like serial comm and math
35 Assembly instructions (mid-range)
Two Higher Level Choices BASIC – Micro Engineering Labs C – Multiple vendors (I use CCS) – Free ‘light’ versions – Popular with scientists and engineers High level languages are used to simplify more complicated tasks like math and serial communications Microchip made using these with MPLAB a breeze! Typically execute more slowly than Assembly programs doing the same thing, but this is not usually a problem The full versions cost $100 to $300
You’re gonna need a Programmer…
Putting it all together Picture your final project(I like to do the hardware design first) Download MPLAB or install it off supplied disc Connect programmer with blank PIC installed Launch MPLAB and set up for proper PIC and the type of programmer you are using Write your program(or use an example) and ‘build’ till you have no errors! (the hard part) Try it out! Do this as many times as needed since you can keep erasing and reprogramming in seconds! I recommend the PICkit 2 + ARRL Book
Project Thoughts…. Keyer Test equipment – Freq counter – Signal gen (DC to Daylight with DDS board!!!) – SWR / power meter Repeater control Automatic control of anything! Hobby servo control Any timing and/or counting applications Holiday lights Home automation
Resources Microchip website – MPLAB, PICkit 2&3, ICD 2&3, datasheets, app notes ARRL “PIC Programming for Beginners” Hellebuyck “Beginner’s Guide to Embedded C Programming” Square 1 website(www.sq-1.com)www.sq-1.com Wilmshurst “Designing Embedded Systems with PIC Microcontrollers Nuts and Volts magazine – Programmers, proto boards, parts – Tutorials, projects – Excellent cheap proto boards(available at sparkfun) PIC-EL II proto board, docs PICs and parts GOOGLE!!! EBAY!!!