A goldmine for the PIC programmer

Discussion in 'Embedded Systems and Microcontrollers' started by t06afre, Oct 28, 2010.

  1. t06afre

    Thread Starter AAC Fanatic!

    May 11, 2009
    I guess many in the forum know about the "Compiled Tips ‘N Tricks Guide" That is free documents full of golden nuggets for the PIC user. It will help you get most out of your 8 bit PIC MCU. It explain the the different methods and tricks in detail. Rather than giving program examples. So it will be very helpful to all who use PIC MCUs. It is about 137 pages long. If you have not read it yet. Give it a try. Ideal for students
    A programmer is useless, unless he/she are able to utelize the power of the availible tools. And herby be able to debug and simulate code. The hobbyist may not have accsess to fancy (and expensive) hardware debugging tools. But the fact is that many errors can be tracked down with the software simulator tool named MPLAB SIM.
    Microchip do have something named Webseminars. The are located here http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2795 Sorry to say but the selection menue is very awkward to use and select from. I have compiled a list. That I think will be useful for the MPLAB novice. The list include both using MPLAB and debugging. Start on top of the list and work yourself downwards. My last tips for the beginner. Then you are starting on a new project. Always use the project wizard in MPLAB. Never program without confering with the datasheet. Keep attention to details.
    http://www.youtube.com/watch?v=py6s0ivnlmY :D
    http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2813&dDocName=en528144 (Introduction to MPLAB IDE)
    http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2813&dDocName=en542701 (Introduction to the MPLAB SIM Software Simulator)
    http://www.youtube.com/watch?v=HwdllrufnOA (Using Asynchronous Stimulus with the MPLAB Simulator video only at this moment)
    http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2813&dDocName=en542928 (Using Stimulus for Algorithm Verification with the MPLAB IDE Simulator)
    http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en534868 (Roadmap and downloads links for the Microchip owned brands of C compilers)
    Last edited: Sep 14, 2011
  2. PRS

    Well-Known Member

    Aug 24, 2008
    Thanks to6. That is a goldmine. I studied microprocessors at the university, using the M68000, but I've never played with microcontrollers. I bought a PicKit 3 and I was enthusiastic at first, then I realized I had to learn C and MPLAB IDE, and I got slowed down. I have yet to make an LED turn on and off. But I keep working at it. ;)
  3. thatoneguy

    AAC Fanatic!

    Feb 19, 2009
    That is a great source of some information that would otherwise take a lot of datasheet reading to find out!

    PRS, Try out SourceBoost C, I posted the code to make a blinking LED in the other thread on that topic currently in Embedded Systems, I think. I even included a .hex file for 16F627 stupidbot.
  4. PRS

    Well-Known Member

    Aug 24, 2008
    Thanks for the tip. This morning I just went over the examples using MP-LAB C18, which is free in the student version. It includes a program that blinks an LED. I've looked over the data sheet for PIC18f45k20, which is on a board that came with PIC-KIT 3 and I am in awe. I'll never go back to microprocessors! For 70 bucks I got a complete development system. For me it's like Christmas. ;)
    Rohit khamdekar likes this.
  5. bertus


    Apr 5, 2008

    That is a usefull find there.
    Lets make it sticky.

  6. Markd77

    Senior Member

    Sep 7, 2009
    I'd also recommend:
    AN556 Table read
    AN526 Math utilities
    Search for AN526 or AN556 on the Microchip website.
  7. bertus


    Apr 5, 2008
    m47tyCode and Humberto Marques like this.
  8. PRS

    Well-Known Member

    Aug 24, 2008
    Thanks, I'll look into it.
  9. PRS

    Well-Known Member

    Aug 24, 2008
    Microchip seems to be the king of the micro-controller industry. They seem to be to micro-controllers what Intel and Microsoft are to home computers. I'll check out your links. Thanks.
  10. jpanhalt


    Jan 18, 2008
    I have been very happy with Microchip. What have they done bad to you? :D

  11. PRS

    Well-Known Member

    Aug 24, 2008
    Nothing jpanhalt. I'm happy to have bought their stuff. What made you think I was criticizing Microchip?
  12. Potato Pudding

    Well-Known Member

    Jun 11, 2010
    Im glad somebody mentioned getting stalled on their PIC progress.

    Documentation for Microchip is thorough. A single datasheet can be easily over 300 pages and they have a lot of controller families available. Doing some ballpark figures Microchip have more than 10000 pages of current documentation - updated regularly. The 16F887 family datasheet for my 44 pin dev/demo board is at version F!

    Look at their website and you can find tutorial videos and nuggets like their circuity sim Mindi - which is pretty good.

    The application notes?
    TB081 - Soft-Start Controller for Switching Power Supplies using a PIC10F
    TB079 - Programming Baseline Flash Devices with PICkit(tm) 1
    TB050 - Monitoring Multiple Temperature nodes using TC74 and PIC16C505
    TB029 - Complementary LED Drive
    TB028 - Technique to Calculate Day of Week
    TB013 - How to Implement ICSP Using PIC16CXXX OTP MCUs
    TB008 - TechBrief Tranformerless Power Supply

    PICREF-4 - PICDIM Lamp Dimmer for the PIC12C508
    AN1104 - Capacitive Multibutton Configurations
    AN1103 - Software Handling for Capacitive Sensing
    AN1101 - Introduction to Capacitive Sensing
    AN1095 - Emulating Data EEPROM for PIC18 and PIC24 MCUs dsPICDSCs
    AN1094 - Bootloader for dsPIC30F/33F and PIC24F/24H Devices
    AN1071 - IrDA Standard Stack for Microchip 16-Bit MCUs
    AN1066 - MiWi Wireless Networking Protocol Stack
    AN1050 - Increase the Frequency Resolution\PIC MCU
    PWM Modules
    AN1045 - Implementing File I/O Functions Using Microchip’s Memory Disk
    Drive File System Library
    AN1035 - Designing with HV Microcontrollers
    AN1003 - USB Mass Storage Device Using a PIC MCU
    AN1000 - Using the MSSP Module to Interface SPI Serial EEPROMs with
    PIC18 Devices
    AN995 - Using the C18 Compiler and the MSSP to Interface SPI EEPROMS
    with PIC18 Devices
    AN991 - Using the C18 Compiler and the MSSP to Interface I2C EEPROMS
    with PIC18 Devices
    AN989 - Using the MSSP Module to Interface I2C Serial EEPROMs with
    PIC18 Devices
    AN982 - Interfacing I2C Serial EEPROMs to PIC10 and PIC12 Devices
    AN979 - Interfacing I2C Serial EEPROMs to PIC18 Devices
    AN976 - Using the MSSP Module to Interface I2C Serial EEPROMS with
    PIC16 Devices
    AN974 - Interfacing I2C Serial EEPROMs to PIC® Microcontrollers
    AN964 - Software PID Control of an Inverted Pendulum Using the PIC16F684
    AN951 - Amplifying High-Impedance Sensors – Photodiode Example
    AN940 - Interfacing the TC72 SPItm Digital Temperature Sensor to a PICmicro
    AN938 - Interfacing the TC1047A Analog Output Temperature Sensor to a
    PICmicro Microcontroller
    AN913 - Interfacing the TC77 Thermal Sensor to a PICmicro Microcontroller
    AN910 - PICmicro Device Programming: What You Always Wanted to Know (But
    didn’t know who to ask)
    AN907 - Stepping Motors Fundamentals
    AN906 - Stepper Motor Control Using the PIC16F684
    AN905 - Brushed DC Motor Fundamentals
    AN897 - Thermistor Temperature Sensing with MCP6S2X PGA
    AN893 - Low-Cost Bidirectional Brushed DC Motor Control using the PIC16F684
    AN892 - Fail-Safe Monitoring and Clock Frequency Switching using the
    AN879 - Using the Microchip Ultra Low-power Wake-up Module
    AN874 - Buck Configuration High-Power LED Driver
    AN871 - Using the TC72 and TC77 Temperature Sensors
    AN867 - Temperature Sensing with a Programmable Gain Amplifier
    AN850 - Inductively Coupled Thermistor
    AN847 - RC Model Aircraft Motor Control
    AN844 - Simplified Thermocouple Interfaces and PICmicro® MCUs
    AN820 - System Supervisors in ICSP™ Architectures
    AN826 - Crystal Oscillator Basics and Crystal Selection for rfPIC and
    PICmicro® Devices
    AN740 - Decoding the HCS101 for Non-Secure Applications
    AN727 - Credit Card Reader Using PIC12C509
    AN720 - Measuring Temperature Using the Watch Dog Timer (WDT)
    AN712 - RS-232 Autobaud for the PIC16C5X Devices
    AN709 - System Level Design Considerations
    AN700 - Make a Delta-Sigma Converter Using a Microcontroller's Analog
    Comparator Module
    AN693 - Understanding A/D Converter Performance Specifications
    AN690 - I2C™ Memory Autodetect
    AN686 - Understanding and Using Supervisory Circuits
    AN685 - Thermistors in Single Supply Temperature Sensing Circuits
    AN679 - Temperature Sensing Technologies
    AN670 - Floating Point to ASCII Conversion
    AN669 - Embedding Assembly Routines into C Language Using A Floating Point
    Routine as an Example
    AN665 - Using KEELOQ to Generate Hopping Passwords
    AN660 - Floating Point Routines
    AN657 - Decoding Infrared Remote Controls Using a PIC16C5X Microcontroller
    AN656 - In-Circuit Serial Programming of Calibration Parameters Using
    PICmicro® Microcontrollers
    AN655 - D/A Conversion Using PWM and R-2R Ladders to Generate Sine and
    DTMF Waveforms
    AN654 - PWM, A Software Solution for the PIC16CXXX
    AN643 - Adaptive Differential Pulse Code Modulation using PIC®
    AN617 - Fixed Point Routines
    AN607 - Power-up Trouble Shooting
    AN606 - Low Power Design Using PICmicro® Microcontrollers
    AN597 - Implementing Ultrasonic Ranging
    AN595 - Improving the Susceptibility of an Application to ESD
    AN593 - Serial Port Routines Without Using Timer Ø
    AN592 - Frequency Counter Using PIC16C5X
    AN588 - PICmicro® Microcontroller Oscillator Design Guide

  13. Potato Pudding

    Well-Known Member

    Jun 11, 2010
    Continued (and this list is actually out of date so look for more)

    AN586 - Macros for Page and Bank Switching

    AN581 - Implementing Long Calls
    AN580 - Using Timer1 in Asynchronous Clock Mode
    AN575 - IEEE 754 Compliant Floating Point Routines
    AN566 - Using the PORT B Interrupt on Change as an External Interrupt
    AN556 - Implementing a Table Read
    AN555 - Software Implementation of Asynchronous Serial I/O
    AN554 - Software Implementation of I2CT Bus Master
    AN552 - Implementing Wake-up on Key Stroke
    AN546 - Using the Analog to Digital A/D Converter
    AN541 - Using a PIC16C5X as a Smart I2CT Peripheral
    AN535 - Logic Powered Serial EEPROMs
    AN531 - Intelligent Remote Positioner (Motor Control)
    AN529 - Multiplexing LED Drive and 4x4 Keypad Sampling
    AN528 - Implementing Wake-up on Key Stroke
    AN527 - Software Stack Management
    AN526 - PIC16C5X/PIC16CXXX Utility Math Routines
    AN522 - Power-Up Considerations
    AN521 - Interfacing to AC Power Lines
    AN519 - Implementing a Simple Serial Mouse Controller
    AN515 - Communicating with the I2C™ Bus Using the PIC16C5X
    AN514 - Software Interrupt Techniques
    AN513 - Analog to Digital Conversion Using a PIC16C5X
    AN511 - PLD Replacement
    AN510 - Implementation of an Asynchronous Serial I/O
    AN258 - Low Cost USB Microcontroller Programmer (the building of the
    PICkit 1 Flash Starter Kit)
    AN239 - Bit Banged LIN Slave Node for PIC16 & PIC18
    AN236 - X-10 Home Automation Using the PIC16F877A
    AN217 - KEELOQ HCS30X, HCS200 Stand-Alone Programmer
    AN216 - DC/DC Converter Controller Using a PICmicro Microcontroller
    m47tyCode likes this.
  14. thatoneguy

    AAC Fanatic!

    Feb 19, 2009

    Comparing any company to Microsoft is about the highest insult one can throw.
  15. PRS

    Well-Known Member

    Aug 24, 2008
    Microchip is very good at documenting their products and illustrating them with examples. I'm in awe, quite frankly. I had to go to the Microchip website to fetch a download of C18 and I saw all of this documentation.

    I feel like I did when at the university, overwhelmed with concepts I had never even imagined. But I like the feeling and I know that if I keep studying I'll eventually become a microcomputer guy.

    I used to play with microprocessors, esp. the M6800 8 bit chip and its supporting hardware. Now it's obsolete! I even developed a general purpose computer and had modeled a math emulator using floating point algorithms using Microsoft's MASM and its IDE. But I never did rewrite the emulator for the 6800 uproc. This was a hobby and I lost interest in it when I got severely depressed. Story of my life.

    Microchip and the Pickit I bought has revived this interest. I feel like a dinosaur when I read over the manuals and realize how much power is in a modern micro-controller.
  16. PRS

    Well-Known Member

    Aug 24, 2008
    I agree with you. I had the experience of talking with Microsoft technicians for about 3 months before they got to the bottom of my early version of Vista's problems. I think Microsoft jumped the gun with Vista and put it on the market before it was really ready. But it works just fine now, so I'm happy.

    However, I participate in another forum, and in an economics thread dealing with monopoly I brought up the issue of Microsoft's near monopoly with regard to the operating system. I offered up the idea that there should be a universal operating system agreed upon by the nations just like any other standard. I think some copyrights are merely legal fictions, and this is a good case for it. What if someone had a copyright on the Metric System and charged for its use? There are many many cases of universal codes and standardizations such that a universal OS for computers is not that unusual an idea.
  17. atferrari

    AAC Fanatic!

    Jan 6, 2004
    Their datasheets are not all exactly right. An example: the 18F4585 has the access to CAN-specific register messed up and misdescribed.

    It took me several entries to a ticket and more than 1 month to get an incomplete answer on the matter. ("The guy who knows is in vacations...")

    BTW, sorry to tell this here but transcribing the list of TBs and ANs is pretty useless. When you want to see what they have on a certain subject you go to heir site.

    Why to duplicate?
    Last edited: Nov 12, 2010
  18. Potato Pudding

    Well-Known Member

    Jun 11, 2010
    The application notes list was mostly an example of how much documentation they have available. I was suggesting that the readers try to find the PIC information they are looking for by checking the Microchip website.

    I also mentioned that the posted list was not complete and you should check for more Application notes and Tech Briefs.

    I know that having the list here is not that useful on its own.
  19. Potato Pudding

    Well-Known Member

    Jun 11, 2010
    Their silicon can have errors - not just their datasheets.

    I would be interested to know how your problem turned out or if maybe your PIC had been beamed to silicon with a buggy mask. Some times the datasheets might be vague because of silicon with issues that won't behave if you were ngiven the full instructions. That is more likely if your PIC was still in the yellow early adopters phase.

    I don't know when the problems you described occurred - because if you are like me then a problem from years ago, would still not be forgotten.
  20. t06afre

    Thread Starter AAC Fanatic!

    May 11, 2009
    I kind of agree with atferrari. I think it would be more useful to just post say this link. http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1431
    Then perhaps give the link to some notes that you have used and found worth to recommend to others.