PICDEM™ Mechatronics Demonstration Board User’s Guide © 2006 Microchip Technology Inc. DS51557C Note the following details of the code protection feature on Microchip devices: • Microchip products meet the specification contained in their particular Microchip Data Sheet. • Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the intended manner and under normal conditions. • There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip’s Data Sheets. Most likely, the person doing so is engaged in theft of intellectual property. • Microchip is willing to work with the customer who is concerned about the integrity of their code. • Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does not mean that we are guaranteeing the product as “unbreakable.” Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of our products. Attempts to break Microchip’s code protection feature may be a violation of the Digital Millennium Copyright Act. If such acts allow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act. Information contained in this publication regarding device applications and the like is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION, INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY OR FITNESS FOR PURPOSE. Microchip disclaims all liability arising from this information and its use. Use of Microchip devices in life support and/or safety applications is entirely at the buyer’s risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights. Trademarks The Microchip name and logo, the Microchip logo, Accuron, dsPIC, KEELOQ, microID, MPLAB, PIC, PICmicro, PICSTART, PRO MATE, PowerSmart, rfPIC and SmartShunt are registered trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. AmpLab, FilterLab, Migratable Memory, MXDEV, MXLAB, SEEVAL, SmartSensor and The Embedded Control Solutions Company are registered trademarks of Microchip Technology Incorporated in the U.S.A. Analog-for-the-Digital Age, Application Maestro, CodeGuard, dsPICDEM, dsPICDEM.net, dsPICworks, ECAN, ECONOMONITOR, FanSense, FlexROM, fuzzyLAB, In-Circuit Serial Programming, ICSP, ICEPIC, Linear Active Thermistor, Mindi, MiWi, MPASM, MPLIB, MPLINK, PICkit, PICDEM, PICDEM.net, PICLAB, PICtail, PowerCal, PowerInfo, PowerMate, PowerTool, REAL ICE, rfLAB, rfPICDEM, Select Mode, Smart Serial, SmartTel, Total Endurance, UNI/O, WiperLock and ZENA are trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. SQTP is a service mark of Microchip Technology Incorporated in the U.S.A. All other trademarks mentioned herein are property of their respective companies. © 2006, Microchip Technology Incorporated, Printed in the U.S.A., All Rights Reserved. Printed on recycled paper. Microchip received ISO/TS-16949:2002 certification for its worldwide headquarters, design and wafer fabrication facilities in Chandler and Tempe, Arizona, Gresham, Oregon and Mountain View, California. The Company’s quality system processes and procedures are for its PICmicro® 8-bit MCUs, KEELOQ® code hopping devices, Serial EEPROMs, microperipherals, nonvolatile memory and analog products. In addition, Microchip’s quality system for the design and manufacture of development systems is ISO 9001:2000 certified. DS51557C-page ii © 2006 Microchip Technology Inc. PICDEMTM MECHATRONICS DEMO BOARD USER’S GUIDE Table of Contents Preface ........................................................................................................................... 1 Chapter 1. PICDEM™ Mechatronics 1.1 Introduction ..................................................................................................... 7 1.2 Highlights ........................................................................................................ 7 1.3 Quick Start Guide ........................................................................................... 8 1.4 PICDEM™ Mechatronics Development Kit Contents ................................... 10 1.5 PICDEM™ Mechatronics Layout .................................................................. 10 1.6 Required Tools ............................................................................................. 12 1.7 PICDEM™ Mechatronics Setup ................................................................... 12 1.7.1 Jumper Settings ........................................................................................ 12 1.7.2 Board Power-Up ........................................................................................ 12 1.8 General PICDEM™ Mechatronics Demonstration Board Information .......... 14 1.8.1 Experimentation ........................................................................................ 14 1.8.2 On-Board Status LEDs .............................................................................. 14 1.8.3 Over-Current Protection Circuit ................................................................. 15 1.8.4 Motor Connection ...................................................................................... 15 1.8.5 Serial Communication ............................................................................... 15 1.8.6 Snap-Off Sensors ...................................................................................... 16 1.8.7 Back EMF Scaling Resistors ..................................................................... 16 1.8.8 Current Sense ........................................................................................... 16 1.8.9 Header/Jumper Functions ......................................................................... 17 Chapter 2. Example Projects 2.1 Introduction ................................................................................................... 19 2.2 Loading Projects in MPLAB® IDE ................................................................. 20 2.3 Example Projects ......................................................................................... 20 2.3.1 Project 1: Hello World (Light a LED) ....................................................................... 21 2.3.2 Project 2: Dusk Indicator Using the Voltage Comparator ........................................ 23 2.3.3 Project 3: Thermometer Using the Analog-to-Digital Converter .............................. 25 2.3.4 Project 4: Digital Clock Using Timer1 ..................................................................... 27 2.3.5 Project 5: Brushed DC Motor Speed Control with Optical Encoder Feedback ....... 29 2.3.6 Project 6: Brushed DC Speed Control with Back EMF Feedback .......................... 32 2.3.7 Project 7: Stepper Motor Control: Single Stepping, Half Stepping and Microstepping ..................................................................................................... 35 2.3.8 Project 8: PC Interface Using the USART .............................................................. 39 2.3.9 Project 9: Brushed DC Motor Control Using the ECCP .......................................... 42 Chapter 3. Troubleshooting 3.1 Introduction ................................................................................................... 47 3.2 Common Problems ....................................................................................... 47 3.2.1 VDD Is Below 5V ........................................................................................ 47 3.2.2 No Voltage On Drive Stage ....................................................................... 47 © 2006 Microchip Technology Inc. DS51557C-page iii PICDEMTM Mechatronics Demo Board User’s Guide 3.2.3 FAULT LED Stays On Or Continues To Trip When SW5 Is Pressed ........47 3.2.4 Microcontroller Does Not Run After Programming By The MPLAB ICD 2 ......................................................................................................48 3.2.5 Back EMF At J16 Is Floating ......................................................................48 3.2.6 Board Is Non-Functional When Microcontrollers Are Installed In Both U1 And U2 .............................................................................................48 3.2.7 Optical Interrupter Is Not Providing The Expected Feedback ....................48 3.2.8 Serial Communication Does Not Appear To Be Working ..........................48 Appendix A. Hardware Schematics A.1 Introduction .................................................................................................. 49 Appendix B. LCD Segment Mapping Worksheet B.1 Introduction .................................................................................................. 57 Worldwide Sales and Service .....................................................................................60 DS51557C-page iv © 2006 Microchip Technology Inc. PICDEMTM MECHATRONICS DEMO BOARD USER’S GUIDE Preface NOTICE TO CUSTOMERS All documentation becomes dated, and this manual is no exception. Microchip tools and documentation are constantly evolving to meet customer needs, so some actual dialogs and/or tool descriptions may differ from those in this document. Please refer to our web site (www.microchip.com) to obtain the latest documentation available. Documents are identified with a “DS” number. This number is located on the bottom of each page, in front of the page number. The numbering convention for the DS number is “DSXXXXXA”, where “XXXXX” is the document number and “A” is the revision level of the document. For the most up-to-date information on development tools, see the MPLAB® IDE on-line help. Select the Help menu, and then Topics to open a list of available on-line help files. INTRODUCTION This chapter contains general information about this user’s guide and customer support that will be useful prior to using the PICDEM™ Mechatronics development kit. Items discussed in this chapter are: • • • • • • • • • Document Layout Conventions Used in this Guide Warranty Registration Recommended Reading The Microchip Web Site Development Systems Customer Notification Service Customer Support Document Revision History Troubleshooting © 2006 Microchip Technology Inc. DS51557C-page 1 PICDEMTM Mechatronics Demo Board User’s Guide DOCUMENT LAYOUT This document describes how to use the PICDEM™ Mechatronics Demonstration Board. The manual layout is as follows: • Chapter 1: PICDEM Mechatronics – An overview of the PICDEM Mechatronics Demo Board. PCB layout, parts and how to connect the provided jumper wires to the board. • Chapter 2: Example Projects – Projects that describe how to read the sensors on the board, drive the LCD and control several motors. These motors include a Brushed DC (BDC) motor and a bipolar stepper motor. • Chapter 3: Troubleshooting – Provides resolutions for solving common problems associated with using the PICDEM Mechatronics Demo Board. • Appendix A: Hardware Schematics – Illustrates the PICDEM Mechatronics Demo Board hardware schematic diagrams. • Appendix B: LCD Segment Mapping Worksheet – Provides the LCD Segment Mapping Worksheet. DS51557C-page 2 © 2006 Microchip Technology Inc. Preface CONVENTIONS USED IN THIS GUIDE This manual uses the following documentation conventions: DOCUMENTATION CONVENTIONS Description Represents Examples Code (Courier font): Plain characters Sample code Filenames and paths #define START c:\autoexec.bat Angle brackets: < > Variables <label>, <exp> Square brackets [ ] Optional arguments MPASMWIN [main.asm] Curly brackets and pipe character: { | } Choice of mutually exclusive arguments; An OR selection errorlevel {0|1} Lowercase characters in Type of data quotes “filename” Ellipses... Used to imply (but not show) additional text that is not relevant to the example list [“list_option..., “list_option”] 0xnnn A hexadecimal number where n is a hexadecimal digit 0xFFFF, 0x007A Italic characters A variable argument; it can be either a char isascii (char, type of data (in lowercase characters) ch); or a specific example (in uppercase characters). Interface (Arial font): Underlined, italic text with right arrow A menu selection from the menu bar File > Save Bold characters A window or dialog button to click OK, Cancel Characters in angle brackets < > A key on the keyboard <Tab>, <Ctrl-C> Referenced books “MPLAB® IDE User’s Guide” Documents (Arial font): Italic characters © 2006 Microchip Technology Inc. DS51557C-page 3 PICDEMTM Mechatronics Demo Board User’s Guide WARRANTY REGISTRATION Please complete the enclosed Warranty Registration Card and mail it promptly. Sending in your Warranty Registration Card entitles you to receive new product updates. Interim software releases are available at the Microchip web site. RECOMMENDED READING It is recommended that you become familiar with the documents listed below, prior to using the PICDEM Mechatronics Demo Board. PICkit™ 2 Microcontroller Programmer User’s Guide (DS51553) Consult this document for instructions on how to use the PICkit 2 Microcontroller Programmer hardware and software. MPLAB® ICD 2 In-Circuit Debugger User’s Guide (DS51331) Consult this document for information pertaining to Microchip’s In-Circuit Debugger, MPLAB ICD 2. MPLAB ICD 2 utilizes the in-circuit debugging capability built into the Flash devices. PIC16F91X Data Sheet (DS41250) Consult this document for information regarding the PIC16F91X 28/40/44-pin Flash-based, 8-bit CMOS Microcontroller with LCD Driver device specifications. PIC16F631/677/685/687/689/690 Data Sheet (DS41262) Consult this document for information regarding the PIC16F631/677/685/687/689/690 20-pin Flash-based, 8-bit CMOS Microcontroller device specifications. PIC12F508/509/16F505 Data Sheet (DS41236) Consult this document for information regarding the PIC12F508/509 8/14-pin Flash-based, 8-bit CMOS Microcontroller device specifications. MPLAB® IDE, Simulator, Editor User’s Guide (DS51025) Consult this document for more information pertaining to the installation and features of the MPLAB Integrated Development Environment (IDE) Software. Mechatronics Design Center The Mechatronics Design Center (www.microchip.com\mechatronics) provides a wealth of information on design applications involving Mechatronics. All documentation is in Adobe® Acrobat® (pdf) format. DS51557C-page 4 © 2006 Microchip Technology Inc. Preface THE MICROCHIP WEB SITE Microchip provides online support via our web site at www.microchip.com. This web site is used as a means to make files and information easily available to customers. Accessible by using your favorite Internet browser, the web site contains the following information: • Product Support – Data sheets and errata, application notes and sample programs, design resources, user’s guides and hardware support documents, latest software releases and archived software • General Technical Support – Frequently Asked Questions (FAQs), technical support requests, online discussion groups, Microchip consultant program member listing • Business of Microchip – Product selector and ordering guides, latest Microchip press releases, listing of seminars and events, listings of Microchip sales offices, distributors and factory representatives DEVELOPMENT SYSTEMS CUSTOMER CHANGE NOTIFICATION SERVICE Microchip’s customer notification service helps keep customers current on Microchip products. Subscribers will receive e-mail notification whenever there are changes, updates, revisions or errata related to a specified product family or development tool of interest. To register, access the Microchip web site at www.microchip.com, click on Customer Change Notification and follow the registration instructions. The Development Systems product group categories are: • Compilers – The latest information on Microchip C compilers and other language tools. These include the MPLAB C18 and MPLAB C30 C compilers; MPASM™ and MPLAB ASM30 assemblers; MPLINK™ and MPLAB LINK30 object linkers; and MPLIB™ and MPLAB LIB30 object librarians. • Emulators – The latest information on Microchip in-circuit emulators. This includes the MPLAB ICE 2000 and MPLAB ICE 4000. • In-Circuit Debuggers – The latest information on the Microchip in-circuit debugger, MPLAB ICD 2. • MPLAB® IDE – The latest information on Microchip MPLAB IDE, the Windows® Integrated Development Environment for development systems tools. This list is focused on the MPLAB IDE, MPLAB SIM simulator, MPLAB IDE Project Manager and general editing and debugging features. • Programmers – The latest information on Microchip programmers. These include the MPLAB PM3 and PRO MATE® II device programmers and the PICSTART® Plus and PICkit™ development programmers. © 2006 Microchip Technology Inc. DS51557C-page 5 PICDEMTM Mechatronics Demo Board User’s Guide CUSTOMER SUPPORT Users of Microchip products can receive assistance through several channels: • • • • • Distributor or Representative Local Sales Office Field Application Engineer (FAE) Technical Support Development Systems Information Line Customers should contact their distributor, representative or field application engineer (FAE) for support. Local sales offices are also available to help customers. A listing of sales offices and locations is included in the back of this document. Technical support is available through the web site at: http://support.microchip.com DOCUMENT REVISION HISTORY Revision A (May 2005) • Initial Release of this Document. Revision B (June 2005) • Changed PIC® Communicator to PIC® MCU Communicator. Revision C (September 2006) • Changed AN0 to C1• Changed J2 to J1 • Changed J12 to J13 TROUBLESHOOTING See Chapter 3 for information on common problems. DS51557C-page 6 © 2006 Microchip Technology Inc. PICDEMTM MECHATRONICS DEMO BOARD USER’S GUIDE Chapter 1. PICDEM™ Mechatronics 1.1 INTRODUCTION The PICDEM™ Mechatronics is intended to be a learning tool for individuals interested in Mechatronic design. Mechatronics refers to integrating electronic controls into mechanical systems or replacing mechanical components with an electronic solution. PICmicro® microcontrollers are ideal for use in Mechatronic systems due to their small size, high efficiency, speed and abundance of peripheral configurations. Mechatronic systems range in complexity from a simple electromechanical switch with output multiplexing to the complex stabilizer control of a supersonic jet. The appliance and automotive markets are notable markets in which mechatronic designs are becoming more common place. The modern washing machine, for instance, once an entirely mechanical design, incorporates microcontrollers to manage cycle times, read human inputs and regulate the speed of the agitate and spin cycles. This chapter introduces the PICDEM™ Mechatronics development board. It describes the PCB layout, parts and electrical connection to the PICkit™ 2 Flash Programmer and MPLAB ICD 2 In-Circuit Debugger. 1.2 HIGHLIGHTS This chapter discusses: • • • • • • Quick Start Guide The PICDEM™ Mechatronics Development Kit Contents The PICDEM™ Mechatronics Layout Required Tools PICDEM™ Mechatronics Setup General PICDEM™ Mechatronics Information © 2006 Microchip Technology Inc. DS51557C-page 7 PICDEMTM Mechatronics Demo Board User’s Guide 1.3 QUICK START GUIDE The PICDEM Mechatronics Demo Board is programmed at the factory with a demonstration program. The board must be configured as described in this chapter in order to use the demonstration program. Once the board is configured and powered up, the speed of the Brushed DC (BDC) motor on the board may be varied using the potentiometer (POT1). The 8-bit hexadecimal interpretation of the position of POT1 is displayed on the LCD. Board Setup Using the provided wire jumpers, screwdriver and shunts (2-pin black hard plastic jumpers), configure the board as shown in Figure 1-1. 1. Attach the leads of the Brushed DC motor to Drive 1 and Drive 2 using the screwdriver. 2. Connect POT1 (on J4) to C1- (on J13) using a wire jumper. 3. Connect P1 (on J1) to RD7 (on J10) using a wire jumper. 4. Connect N2 (on J1) to RD2 (on J10) using a wire jumper. 5. Connect the right and center pins on JP8 using a shunt. Board Power-Up Supply power to the board in one of the following ways: • Connect a 9-12 VDC (0.75 amp minimum) supply using J9 (see note below) • Connect a 9-12 VDC (0.75 amp minimum) supply to the P21 and P20 screw terminals. • Connect a 9 VDC battery to the battery connector. • Connect a 5 VDC (1.2 amp minimum) supply to TP2 or TP3. Note: The power supply part number is AC162039 (see buy.microchip.com). Packaged with the MPLAB ICD 2, the part number is DV164007. Demonstration Program Press CLR FAULT (SW5), which is near the bottom right corner of the board. Turn POT1 clockwise to increase the speed of the motor. Note that the number displayed on the LCD increases as you turn the potentiometer clockwise. Try experimenting with the other sensors on the board: • Move the jumper wire on POT1 (J4) to Light (J4). Vary the intensity of light shining on the light sensor located near the top left corner of the board. Notice what happens to the motor. • Move the jumper to TEMP (J4). Blow on the temperature sensor located on the top left corner of the board. Note what happens to the number displayed on the LCD. • Move the jumper back to POT1. Move the jumper from N2 (J1) to D0 (J14). Watch what happens to the intensity of LED D0 as you turn the potentiometer. DS51557C-page 8 © 2006 Microchip Technology Inc. PICDEM™ Mechatronics QUICK BOARD SETUP TM FIGURE 1-1: © 2006 Microchip Technology Inc. DS51557C-page 9 PICDEMTM Mechatronics Demo Board User’s Guide 1.4 PICDEM™ MECHATRONICS DEVELOPMENT KIT CONTENTS The PICDEM™ Mechatronics Development Kit contains the following items: 1. 2. 3. 4. 5. The PICDEM™ Mechatronics Printed Circuit Board (PCB) with motors Pre-programmed PIC16F917 PICmicro® device 10 wire jumpers 8 2-pin shunts CD-ROM including: • PICDEM™ Mechatronics User’s Guide • Workshop-in-a-Box presentation for training students on the board (speaker notes included) • Data sheets for the PIC16F91X, PIC16F631/677/685/687/689/690 and motors • Application notes and other technical documentation 6. Sample kit including a PIC16F690 and PIC12F509 device 7. Microchip screwdriver 8. Registration Card 1.5 PICDEM™ MECHATRONICS LAYOUT The PICDEM™ Mechatronics is shown in Figure 1-2. A PIC16F917 microcontroller is populated in the 40-pin socket, in which 22 out of the 36 available I/O pins are dedicated connections to several components on the board. The remaining 14 pins are available for the user to connect to the other components on the board, using the provided jumper wires. The dedicated connections connect to the following components: • Switch 1 – 1 pin: MCLR • LCD – 17 pins: VLCD1, VLCD2, VLCD3, COM0, COM1, COM2, COM3, SEG0, SEG1, SEG2, SEG3, SEG6, SEG11, SEG16, SEG21, SEG22, SEG23 • In-Circuit Serial Programming™ Connector – ICSPDAT, ICSPCLK, MCLR • RS-232 COM port – 2 pins: RX, TX A 20-pin socket is provided and is compatible with 8/14/20-pin Flash-based microcontrollers. A PIC16F690 microcontroller is provided to use in the 20-pin socket, in which 5 out of the 18 available I/O pins are dedicated connections to several components on the board. The remaining 13 pins are available for the user to connect to the other components on the board using the provided jumper wires. The dedicated connections connect to the following components: • Switch 1 – 1 pin: MCLR • In-Circuit Serial Programming (ICSP™) Connector – ICSPDAT, ICSPCLK, MCLR • RS-232 COM port: RX, TX Note: Only one microcontroller should be loaded into the board at any given time. Dedicated pins are indicated by a white box enclosing the pin designation next to each socket. Pay close attention to this designation, as the functionality of the dedicated pins are affected by the circuitry these pins are connected to. It is recommended that you use only the pins not designated as dedicated connections in your design. The remaining components on the board must be connected to the microcontroller using the provided wire jumpers. The jumpers connect between the headers on either side of the microcontroller and the header pins next to the respective components on the board. The components on the board are labeled in Figure 1-2. DS51557C-page 10 © 2006 Microchip Technology Inc. © 2006 Microchip Technology Inc. 11 10 9 12 1 2 16 13 4 17 14 3 15 22 18 21 19 20 19. 20. 21. 22. 18. 16. 17. 15. 14. 7. 8. 9. 10. 11. 12. 13. 6. 4. 5. 1. 2. 3. 40-pin socket 20-pin socket On-board voltage regulator and power connections 8 LEDs 39 segment LCD connected to 14 pins on the 40-pin socket RS-232 socket and associated hardware Temperature sensor Light sensor 2 potentiometers 32.768 kHz crystal 4 tactile switches In-Circuit Debugger (ICD) connector In-Circuit Serial Programming™ (ICSP™) connector Over-current protection circuit with Reset switch 4 half-bridge MOSFET drives with associated MOSFET drivers and logic Current sense for output stage Back Electromagnetic Force (EMF) sense Optical Interrupter for detecting the speed of the Brushed DC motor Brushed DC motor Stepper motor Drive screw terminals 9 VDC battery FIGURE 1-2: 8 7 6 5 Legend: PICDEM™ Mechatronics PICDEM MECHATRONICS DEMO BOARD HARDWARE DS51557C-page 11 PICDEMTM Mechatronics Demo Board User’s Guide The reasons for requiring you to use the provided jumpers to connect components to the microcontroller are three-fold. 1. You will gain knowledge and experience by physically connecting components to the microcontroller. 2. There are more peripherals than pins on the microcontrollers so that you can do more with the board. 3. Should you choose to use the board to experiment on your own, the board allows you the flexibility to do so. You can try experimenting with peripherals not covered in the projects in Chapter 2. “Example Projects”. 1.6 REQUIRED TOOLS One of the following programming tools is needed in order to complete the projects in the next chapter: • PICkit™ 2 Microcontroller Programmer (Part# DV164120) • MPLAB® ICD 2 In-Circuit Debugger/Programmer (Part# DV164007 includes a 9 VDC power supply and serial cable) Figures 1-3 and 1-4 illustrate how to connect each of these tools to the PICDEM Mechatronics Demo Board. 1.7 PICDEM™ MECHATRONICS SETUP Please take a moment to review the following steps, prior to using the board. These steps ensure the board is configured correctly before beginning the projects. 1.7.1 Jumper Settings Remove all 2-pin shunts (jumpers), except for JP8. On JP8, the shunt should be connected in the right most position (indicated by the “+5V” label), which ensures that the drive stage is powered by +5 VDC. 1.7.2 Board Power-Up Supply power to the board in one of the following ways: • Connect a 9-12 VDC (0.75 amp minimum) supply via J9. The connector’s polarity is grounded externally and positive internally. • Connect a 9-12 VDC (0.75 amp minimum) supply to the P21 and P20 screw terminals. • Connect a 9 VDC battery to the battery connector. • Connect a 5 VDC (1.2 amp minimum) supply to TP2 or TP3. When power is initially connected, the “PWR ON” LED should light up. The “FAULT” LED in the over-current sense circuit will also be on when the board is powered up. Clear the Fault by pressing SW5 (CLR FAULT) switch. The board is now properly configured for the projects. DS51557C-page 12 © 2006 Microchip Technology Inc. PICDEM™ Mechatronics CONNECTING THE MPLAB ICD 2 TO THE PICDEM MECHATRONICS DEMO BOARD PI CD EM ™ Me c ha tro nic s FIGURE 1-3: D ge ug eb r InCir cu it PO W E ER R RO R BU SY MIC MPL ROCHI P AB ® ICD 2 CONNECTING THE PICkit™ 2 TO THE PICDEM MECHATRONICS DEMO BOARD PI C DE M ™ M ec ha tro nic s FIGURE 1-4: © 2006 Microchip Technology Inc. DS51557C-page 13 PICDEMTM Mechatronics Demo Board User’s Guide 1.8 GENERAL PICDEM™ MECHATRONICS DEMONSTRATION BOARD INFORMATION Power Supply Maximum Ratings Supply voltage: 12 VDC Output current (drive stage): 1.2A (total) 1.8.1 Experimentation The PICDEM Mechatronics Demo Board was designed for your experimentation. After completing the projects in Chapter 2. “Example Projects”, please experiment freely on your own. Voltage power supplies and motors, other than those provided in the kit, may be used. The driver portion of the board (the part that supplies power to the motors) has an over-current sense circuit and will trip should the motor draw more than 1.2 amps. The LM7805 regulator also protects the circuit by limiting the current consumed by the board. Logic has also been put in place to ensure that the P and N-Channel MOSFETs connected to each of the output drives can not be turned on simultaneously. Note: 1.8.2 Although reasonable measures have been taken to protect the board from the occasional mistake, THE BOARD MAY BE DAMAGED if proper design techniques are not used and special attention to the schematic is not made. On-Board Status LEDs There are eight status LEDs on the board specifically provided to assist the user in the developing and debugging of your code. The user can output register values on one of the Ports of the microcontroller and have a binary reading of the value of that register. Connect the LEDs as shown in Figure 1-5. For instance, if it is suspected that the STATUS register is not being set appropriately, move the STATUS value into PORTC. If PORTC is attached as shown in Figure 1-5, the LEDs will show the value of STATUS. DS51557C-page 14 © 2006 Microchip Technology Inc. PICDEM™ Mechatronics FIGURE 1-5: 1.8.3 CONNECTING PORTC PINS TO LEDS FOR DEBUGGING OVER-CURRENT PROTECTION CIRCUIT The over-current protection circuit included on the board shuts down the drive portion of the circuit if the board drives 1.2 amps continually for 100 ms or longer. Upon powering up the board, the “FAULT” LED will be on. The drive circuit must be reset manually by pressing the CLEAR FAULT button in the lower right hand portion of the board every time the board is initially supplied with power. Otherwise, a Fault is present when the “FAULT” LED is illuminated and must be manually reset by pressing the same button. If you use your own motor, keep current draw less than 1.2A, as the over-current protection circuit will not allow driving a motor at or above this rating. 1.8.4 MOTOR CONNECTION The motors provided on the PICDEM Demo Board must be manually connected to the Drive screw terminals. The kit includes a Microchip screwdriver to facilitate in making these connections. Note: 1.8.5 The supplied Brushed DC motor and Bipolar Stepper motor are subject to change as the motor manufacturers cannot guarantee the same model numbers will be available indefinitely. Please refer to Microchip’s web page (www.microchip.com) for the current data sheets for the motors supplied with this kit, if the motor supplied on your board differs from the motor data sheets found on the CD-ROM. SERIAL COMMUNICATION The JP2 jumper is normally not populated with a shunt. With no shunt present, the board is configured for serial communications via the PICmicro® USART (or EUSART). Connecting a shunt between the bottom two pins (TX and RX) allows the user to transmit and receive serial communication via one pin (jumper between the microcontroller and the TX/RX pin on JP2). © 2006 Microchip Technology Inc. DS51557C-page 15 PICDEMTM Mechatronics Demo Board User’s Guide 1.8.6 SNAP-OFF SENSORS The temperature sensor and light sensor can be snapped off to give greater flexibility in using these sensors. For example, the temperature sensor may be snapped off and moved into a more hostile environment, while keeping the board within sight. Once, snapped off, solder wires of the same length between the adjoining holes (i.e., JP3 and JP4 for the temperature sensor) on the PICDEM Mechatronics Demo Board and the sensor board. 1.8.7 BACK EMF SCALING RESISTORS If choosing to drive your own Brushed DC motor with the PICDEM Mechatronics Demo Board at a voltage higher than +5 VDC, the Back EMF must be scaled down into a range of 0-5 VDC. Resistor locations, R55 and R56, are provided for this purpose. These locations may be populated with resistors to create a simple voltage divider circuit. TP1 is the output of this voltage divider. See the schematic in Appendix A. “Hardware Schematics” for further clarification. 1.8.8 CURRENT SENSE The output stage of the board incorporates a simple current sensing circuit, which is assessable at J15 (CURRENT SENSE). At this pin, the voltage is equal to current ± 10%. For instance, if a motor is being driven and it is drawing 0.9 amps, the voltage at the header is 0.9 volts (± 10%). DS51557C-page 16 © 2006 Microchip Technology Inc. PICDEM™ Mechatronics 1.8.9 HEADER/JUMPER FUNCTIONS TABLE 1-1: HEADER/JUMPER FUNCTIONS Header/ Jumper # Description J1* Output MOSFET drive pins. J2 Full-bridge drive circuit (Drives 1 and 2): Place three shunts vertically on these pins to create a full-bridge drive circuit incorporating Drives 1 and 2. J3 Full-bridge drive circuit (Drives 3 and 4): Place three shunts vertically on these pins to create a full-bridge drive circuit incorporating Drives 3 and 4. J4* Temperature sensor, light sensor, potentiometers, 32.768 oscillator and switches signal pins. J5* Right-side signal pins of the 20-pin DIP socket (U2, pins 11-20). J6* Left-side signal pins of the 20-pin DIP socket (U2, pins 1-10). J7* Optical interrupter feedback signal pins. J10* Right-side signal pins of the 40-pin DIP socket (U1, pins 21-40). J13* Left-side signal pins of the 40-pin DIP socket (U1, pins 1-20). J14 LED connect pins. J15* Current sense feedback from the drive stage. J16* Back EMF feedback signal pins. JP2 Single-pin serial communication jumper (see Section 1.8.5 “Serial Communication” for details). JP8 Drive circuit voltage selection. See diagram on board. * On these jumpers, the pins are connected in pairs horizontally. This allows one pin to be used for jumping to/from the microcontroller (using a wire jumper) and the other pin for probing the circuit with test equipment. © 2006 Microchip Technology Inc. DS51557C-page 17 PICDEMTM Mechatronics Demo Board User’s Guide NOTES: DS51557C-page 18 © 2006 Microchip Technology Inc. PICDEMTM MECHATRONICS DEMO BOARD USER’S GUIDE Chapter 2. Example Projects 2.1 INTRODUCTION The following projects cover basic mechatronic principles such as reading a sensor, interfacing to a LCD and driving a motor. These projects also provide examples of how to use the various PICmicro® microcontroller peripherals. The projects are presented sequentially so that you will build knowledge as you progress from one project to the next. Those who are new to programming PIC® microcontrollers should pay special attention to the comments in the source code for each of the projects. Though these projects are not intended to teach you the Microchip Assembly language, you will be able to get a good grasp of Microchip’s Assembly language by reading the source code. Microchip has published application notes and other documents covering the applications in each of these projects. These documents can be found on the provided CD-ROM. Any updates to the applicable documents are available on Microchip’s web site. Please reference these documents while exploring each of the projects. Note: © 2006 Microchip Technology Inc. See Section 1.7 “PICDEM™ Mechatronics Setup” for instructions on how to setup the board to its “initial” condition prior to doing projects. DS51557C-page 19 PICDEMTM Mechatronics Demo Board User’s Guide 2.2 LOADING PROJECTS IN MPLAB® IDE The firmware for the projects is arranged in corresponding project folders in the install directory for the PICDEM Mechatronics CD. If you installed the CD in the default directory, the firmware for Project 1 is located in: C:\PICDEM Mechatronics\firmware\Project1 Opening a Project 1. 2. 3. 4. Start MPLAB IDE. In the menu bar choose File -> Open Workspace. Find the project folder. Open the *.mcw file. The project window for Project 1 is shown in Figure 2-1. FIGURE 2-1: 2.3 PROJECT WINDOW EXAMPLE PROJECTS PIC16F917 Projects: • Project 1: Hello World (Light a LED) • Project 2: Dusk Indicator Using the Voltage Comparator • Project 3: Thermometer Using the Analog-to-Digital Converter • Project 4: Digital Clock Using Timer1 • Project 5: Brushed DC Speed Control with Optical Encoder Feedback • Project 6: Brushed DC Speed Control with Back EMF Feedback • Project 7: Stepper Motor Control; Single Stepping, Half Stepping and Microstepping • Project 8: PC Interface Using the USART PIC16F690 Project: • Project 9: Brushed DC Motor Control Using the ECCP DS51557C-page 20 © 2006 Microchip Technology Inc. Example Projects 2.3.1 Project 1: Hello World (Light a LED) When learning to use a new computer language, the first practical lesson traditionally instructs the user how to print “Hello World” on the screen. Staying with tradition, this project will make your PICDEM Mechatronics Demo Board say “Hello World” in the most practical way a microcontroller can – lighting a LED. Objectives 1. Use the PIC16F917 to read a tactile switch input. 2. Implement switch debouncing. 3. Toggle a LED when a switch is pushed. Applicable Technical Documents PICkit 1™ Flash Starter Kit User’s Guide (DS40051): Exercise 2 Jumper Configuration • RD7 (J10) to D0 (J14) • RA0 (J13) to SW2 (J4) FIGURE 2-2: PROJECT 1: JUMPER DIAGRAM FIGURE 2-3: PROJECT 1: SCHEMATIC VDD VDD PIC16F917 11/32 R4 10 kΩ SW2 R5 VDD RD7 2 RA0 1 kΩ 12/31 VSS © 2006 Microchip Technology Inc. 30 R36 270 Ω D0 DS51557C-page 21 PICDEMTM Mechatronics Demo Board User’s Guide Instructions Pressing SW2 toggles LED (D0) on and off. Discussion Switch debouncing is done to ensure that mechanical contact chatter in the switch is not mistaken for more than one button push. Debouncing also ensures that for every one press of the button, only one function is executed. In this project that function is toggling a LED. Note: DS51557C-page 22 See Section 2.2 “Loading Projects in MPLAB® IDE” for the location of the source files for this project and all subsequent projects. © 2006 Microchip Technology Inc. Example Projects 2.3.2 Project 2: Dusk Indicator Using the Voltage Comparator If you have yard lights or a porch light at home that automatically turns on at dusk then you are familiar with the application we will create in this project. The comparator on the PIC16F917 will be used to compare the voltage level from the potentiometer to the voltage level out from the light sensor. When the intensity of the light to the sensor is reduced below the trip point set by the potentiometer, the LED will turn on. Objectives 1. Use the internal analog comparator module. 2. Implement software hysteresis to stabilize the comparator output. Applicable Technical Documents PICmicro® Comparator Tips ‘n Tricks (DS41215) Jumper Configuration • C1- (J13) to LIGHT (J4) • C1+ (J13) to POT1 (J4) • RD7 (J10) to D0 (J14) FIGURE 2-4: © 2006 Microchip Technology Inc. PROJECT 2: JUMPER DIAGRAM DS51557C-page 23 PICDEMTM Mechatronics Demo Board User’s Guide FIGURE 2-5: PROJECT 2: SCHEMATIC VDD PIC16F917 VDD 11/32 Light Sensor C24 0.1 μF 6 VDD 4 VBAT 7 R31 VDD 2 C1- 1 kΩ GND RD7 30 TSL251RD 5 C1+ VDD POT1 10 kΩ VSS 12/31 R36 270 Ω D0 R10 1 kΩ Instructions Provide a light source for the light sensor and set Potentiometer 1 to the desired trip point. Block the light source and LED1 should turn on. Experiment with the set point and the amount to which you block the light from the sensor. Move your hand slowly in front of the sensor and note that the LED does not flicker. This demonstrates how software hysteresis prevents the output of the comparator from chattering near the trip point. Discussion Comparators are found in many PIC microcontrollers due to the versatility and low cost they offer the user. As you can see, the comparator is one of the more easily used peripherals. Refer to the Comparator Tips ‘n Tricks pamphlet included on the CD in this kit for more information on comparators. DS51557C-page 24 © 2006 Microchip Technology Inc. Example Projects 2.3.3 Project 3: Thermometer Using the Analog-to-Digital Converter This project shows how to read an analog temperature sensor and display the temperature on a LCD. The Analog-to-Digital Converter module is used to read the analog voltage output from the temperature sensor. Then, the resulting value is converted into degrees Celsius and displayed. Objectives 1. Use the Analog-to-Digital Converter module on the PIC16F917 to read the analog voltage output of the TC1047A temperature sensor. 2. Gain knowledge about the LCD module and using the LCD module worksheet. Applicable Technical Documents Precision Temperature-to-Voltage Converter (TC1047/A) Data Sheet (DS21498) Jumper Configuration • AN0 (J13) to TEMP (J4) FIGURE 2-6: PROJECT 3: JUMPER DIAGRAM FIGURE 2-7: PROJECT 3: SCHEMATIC VDD VDD PIC16F917 Temp. Sensor C24 0.1 μF 1 VDD 3 Out 2 VSS TC1047A LCD1 11/32 VDD R19 1 kΩ COMX Common pins SEGX Segment pins 2 AN0 C28 0.1 μF 12/31 VSS VIM-332-DP © 2006 Microchip Technology Inc. DS51557C-page 25 PICDEMTM Mechatronics Demo Board User’s Guide Instructions The LCD displays a temperature reading in degrees Celsius. Breathe on the temperature sensor or introduce another heat source. The displayed temperature should rise. Move the jumper wire from the temperature sensor to the potentiometer (POT1 on J4). Move the potentiometer to view the full range of temperature conversion. Discussion The project introduces you to use of the Analog-to-Digital Converter module. One of the biggest advantages to using a PICmicro® microcontroller in applications that require temperature sensing is that the microcontroller can be used to calibrate the temperature sensor reading automatically (over varying supply voltages and process variations in the parts themselves). This saves the manufacturer costly calibration time at the factory that is typically required by traditional temperature sensing technologies. LCD functions were introduced in this project for displaying data on the provided LCD. Take a look at the LCD worksheet in Appendix B. “LCD Segment Mapping Worksheet”. This is the same worksheet located in the PIC16F91X Data Sheet (DS41250), only it has been filled in using the information from the PICDEM Mechatronics Schematic (see Appendix A. “Hardware Schematics” for the schematic). In the LCD source code provided in this project, you can see that the information in this worksheet has been converted into #define statements for each of the segments. DS51557C-page 26 © 2006 Microchip Technology Inc. Example Projects 2.3.4 Project 4: Digital Clock Using Timer1 Most appliances that have a LCD show a clock readout when the appliance is not in use. In this project, Timer1 is used to create a real-time clock readout on the LCD. Objectives 1. Configure the PIC16F917 to use the 32.768 kHz crystal to clock Timer1. 2. Convert Timer1 into seconds, minutes and hours. Applicable Technical Documents Clock Design Using Low Power/Cost Techniques Application Note, AN615 (DS00615) Jumper Configuration • • • • • T1OSI (J13) to OSI (J4) – See note. T1OSO (J13) to OSO (J4) – See note. RA3 (J13) to SW2 (J4) RA4 (J13) to SW3 (J4) RA5 (J13) to SW4 (J4) FIGURE 2-8: Note: © 2006 Microchip Technology Inc. PROJECT 4: JUMPER DIAGRAM Crystal circuits are very sensitive to noise and stray capacitances. In general, the traces between a crystal and a microcontroller should be as short as possible. The reason the PICDEM Mechatronics Demo Board strayed from good design practice was to give you the option to use pins RA7 and RA6 for other functions. DS51557C-page 27 PICDEMTM Mechatronics Demo Board User’s Guide FIGURE 2-9: PROJECT 4: SCHEMATIC VDD 11/32 LCD1 PIC16F917 13 C35 22 pF Y1 32.768 kHz 14 SEGX Segment pins T1OSO VIM-332-DP VDD R4 10 kΩ R8 10 kΩ R5 2 RA0 1 kΩ VDD RA3 5 SW4 R9 1 kΩ 3 SW3 Common pins C34 22 pF VDD SW2 COMX T1OSI RA1 VSS 12/31 R6 10 kΩ R7 1 kΩ Instructions Use Switch 2 to set the hours and Switch 3 to set the minutes. Pressing and holding either of these switches will make the hours or minutes increment at a fast rate. Toggle between displaying the time (hours and minutes) and displaying the seconds by pressing Switch 4. Discussion The 32.768 kHz crystal is used to take the guess work out of creating a clock display. You may recognize this frequency as being 215 kHz. This makes it very easy to convert clock pulses to seconds in the binary world of a microcontroller. Every time bit 15 in Timer1 changes, one second has elapsed. A crystal is used because an RC oscillator will have an unacceptable degree of error after several days. DS51557C-page 28 © 2006 Microchip Technology Inc. Example Projects 2.3.5 Project 5: Brushed DC Motor Speed Control with Optical Encoder Feedback Motor control is required in many mechatronic applications ranging from power windows to washing machine cycle control. This project will demonstrate speed control of a Brushed DC motor. Brushed DC motor control is simple as the commutation, or sequencing of power to the various windings, is automatically performed by the motor’s brushes. In this project, the Capture Compare PWM (CCP) module will be used in PWM mode to generate a Brushed DC motor drive. Timer1 will measure speed feedback from the optical interrupter on the board. The optical interrupter circuit generates a high signal when light passes through the slots in the encoder disk. By measuring the time between pulses, the speed of the motor can be determined. A real-life application example includes precision speed control of a fan or hard disk drive. Objectives 1. Configure the CCP module to generate a PWM signal. 2. Use a PWM signal to vary the speed of a Brushed DC motor. 3. Configure Timer1 to use the optical interrupter as its clock source. Applicable Technical Documents Brushed DC Motor Fundamentals Application Note, AN905 (DS00905) Low-Cost Bidirectional Brushed DC Motor Control Using the PIC16F684 Application Note, AN893 (DS00893) Jumper Configuration • • • • • • • RD7 (J10) to P1 (J1) CCP2 (J10) to N2 (J1) AN0 (J13) to POT1 (J4) RC5 (J10) to Optical Interrupter (J7) Attach the motor leads to DRIVE1 (P9) and DRIVE2 (P10). J2 and J3 should be unpopulated (no shunts present). Connect the right and center pins of JP8 using a shunt. © 2006 Microchip Technology Inc. DS51557C-page 29 PICDEMTM Mechatronics Demo Board User’s Guide 32.768 kHz CRYSTAL TM BRUSHED DC MOTOR OPTICAL INTERRUPTER PROJECT 5: JUMPER DIAGRAM Brushed DC Lead FIGURE 2-10: DS51557C-page 30 © 2006 Microchip Technology Inc. Example Projects FIGURE 2-11: PROJECT 5: SCHEMATIC VDD LCD1 PIC16F917 11/32 VDD COMX Common pins SEGX Segment pins VDD R10 POT1 10 kΩ 1 kΩ 2 AN0 C26 1000 pF VIM-332-DP VDD VDD VDD U11:B R11 20 kΩ R20 470 Ω Q6 RD7 R22 30 24 RC5 470 Ω 10 kΩ D12 Motor U10:A 12/31 VSS CCP2 21 10 kΩ Simplified circuit shows equivalent functionality Instructions Use POT1 to adjust the speed of the motor. Turn the potentiometer counter-clockwise to reduce speed; turn it clockwise to increase motor speed. Multiply the LCD display by 1000 to obtain speed in RPM. Discussion With the CCP module operating with 8 bits of resolution, the module can output a PWM signal at a frequency of 31.2 kHz. This is sufficiently high frequency that motor whine is outside of the audible frequency for humans. This is especially important in applications where the motor may turn at slow speeds. Using an optical sensor to gather feedback from a motor is an integral part of many mechatronic systems. Some systems require a constant speed over varying loads. An optical encoder is similar to the optical interrupter circuit used in this project. The difference is that an optical encoder uses more than one optical sensor (as many as four) to deduce speed and shaft position. Note: © 2006 Microchip Technology Inc. The optical interrupter circuit is susceptible to interference from outside infrared light sources (i.e., incandescent lights, sunlight, etc.). It may be necessary to cover the optical sensor to obtain an accurate reading. DS51557C-page 31 PICDEMTM Mechatronics Demo Board User’s Guide 2.3.6 Project 6: Brushed DC Speed Control with Back EMF Feedback Project 5 uses an optical encoder to provide motor speed feedback. In this project, another form of speed measurement will be explored, Back Electromotive Force (Back EMF). You may be aware that a Brushed DC motor, when turned by hand, will produce voltage at its leads, becoming a generator. When a Brushed DC motor is being driven, and then the drive voltage is removed for a brief amount of time, the voltage generated by the inertia of the motor will be proportional to its speed. This voltage is the Back EMF. Objectives 1. Effectively read Back EMF using the on-board Analog-to-Digital Converter. 2. Interpret the Back EMF into a speed for the motor. Applicable Technical Documents Low-Cost Bidirectional Brushed DC Motor Control Using the PIC16F684 Application Note, AN893 (DS00893) Jumper Configuration • • • • • • • DS51557C-page 32 RD7 (J10) to P1 (J1) CCP2 (J10) to N2 (J1) AN0 (J13) to POT1 (J4) AN1 (J13) to BACK EMF (J16) Attach the motor leads to DRIVE1 (P9) and DRIVE2 (P10). J2 and J3 should be unpopulated. Connect the right and center pins of JP8 using a shunt. © 2006 Microchip Technology Inc. Example Projects PROJECT 6: JUMPER DIAGRAM TM Brushed DC Lead FIGURE 2-12: © 2006 Microchip Technology Inc. DS51557C-page 33 PICDEMTM Mechatronics Demo Board User’s Guide FIGURE 2-13: PROJECT 6: SCHEMATIC VDD LCD1 PIC16F917 11/32 VDD COMX Common pins SEGX Segment pins VDD R10 POT1 10 kΩ 1 kΩ 2 AN0 C26 1000 pF VIM-332-DP VDD U11:B R32 Back EMF 1 kΩ 7 AN4 RD7 30 C36 1000 pF 10 kΩ Back EMF Motor U10:A 12/31 CCP2 21 VSS 10 kΩ Simplified circuit shows equivalent functionality Instructions POT1 adjusts the speed of the motor. Set POT1 at 100% to run the motor at full speed. The speed indicated on the LCD should be similar to the speed shown in Project 5. Next, run the motor at half speed by setting POT1 to 50% and do the comparison again. Note: Different motors have different speed characteristics. The motor used at the time this manual was written may be different from the motor shipped with your PICDEM Mechatronics Demo Board. Verify that the motor data sheet included on the CD-ROM matches the motor on the board. If they are different, go to Microchip’s web site for updates to this project. Discussion Back EMF is typically not as accurate as speed feedback from an optical encoder. However, in many applications the accuracy does not have to be very precise and measuring Back EMF is more cost effective than any other speed feedback mechanism. DS51557C-page 34 © 2006 Microchip Technology Inc. Example Projects 2.3.7 Project 7: Stepper Motor Control: Single Stepping, Half Stepping and Microstepping This project demonstrates the various ways to drive a bipolar stepper motor. There are several ways to step a stepper motor, the most basic of which is single stepping, or moving the motor in one-step increments. If a motor is specified as a 7.5 degrees-per-step motor, then single stepping the motor will result in moving the shaft of the motor 7.5 degrees per step. Half stepping the same motor would result in a 3.75 degrees step. Torque and current are linearly related for a stepper motor. Therefore, if two sinusoidal currents are applied to the windings, offset by a 90 degree phase shift relative to one another, then the stepper motor will have constant torque as it turns. This results in a very smooth rotation of the shaft. Applying current to the windings in this way is referred to as sine-cosine microstepping. Objectives 1. Single-step a stepping motor. 2. Half-step the motor. 3. Micro-step the motor. Applicable Technical Documents Stepping Motor Fundamentals Application Note, AN907 (DS00907) Stepper Motor Control Using the PIC16F684 Application Note, AN906 (DS00906) Jumper Configuration • • • • • • • • • • • • • • • AN0 (J13) to POT1 (J4) RA4 (J13) to SW2 (J4) RD7 (J10) to P1 (J1) RD6 (J10) to P2 (J1) RD5 (J10) to P3 (J1) RD4 (J10) to P4 (J1) CCP1 (J10) to PWM1 (J1) CCP2 (J10) to PWM3 (J1) Place three shunts (two pin jumpers) vertically on J2 where it is labeled “Connect for Full-Bridge”. Place three shunts (two pin jumpers) vertically on J3 where it is labeled “Connect for Full-Bridge”. Connect the BROWN lead of the stepper motor to Drive 1 (P9). Connect the ORANGE lead of the stepper motor to Drive 2 (P10). Connect the RED lead of the stepper motor to Drive 3 (P12). Connect the YELLOW lead of the stepper motor to Drive 4 (P11). Connect the right and center pins of JP8 using a shunt. © 2006 Microchip Technology Inc. DS51557C-page 35 PICDEMTM Mechatronics Demo Board User’s Guide DS51557C-page 36 Yellow Red Orange PROJECT 7: JUMPER DIAGRAM Brown FIGURE 2-14: © 2006 Microchip Technology Inc. © 2006 Microchip Technology Inc. VDD POT1 10 kΩ SW2 12/31 C26 1000 pF VSS 7 AN0 3 RA1 VDD CCP2 24 * RD4 27 * RD5 28 CCP1 21 * RD6 29 5 kΩ * 5 kΩ 5 kΩ VDD 5 kΩ * 5 kΩ VDD 5 kΩ * * * * = These are simplified circuits that show the equivalent functionality. 1 kΩ R10 1 kΩ R5 11/32 * * VDD Stepper Winding 2 R Y Stepper Winding 1 Br Or VDD VDD * * * * FIGURE 2-15: R4 10 kΩ VDD VDD RD7 30 PIC16F917 VDD Example Projects PROJECT 7: SCHEMATIC DS51557C-page 37 PICDEMTM Mechatronics Demo Board User’s Guide Instructions Adjusting POT1 varies the speed of the motor. Toggle between single stepping, half stepping, and microstepping modes by pressing SW2. At low speeds, the motor should noticeably step in single stepping and half stepping modes. The movement will be quite jerky in both modes, though to a lesser extent in the half stepping mode. In microstepping mode, the jerky motion should be virtually eliminated. Discussion Stepper motors are used in many positioning applications. For example, ink jet printers and smaller CNC machines employ stepper motors. Stepper motors are ideal for these applications because, as long as they are not overloaded, the distance a stepper motor moves is always known. Stepper motors are also brushless, which makes them more reliable than brushed motors. Finally, stepper motors are very responsive to starting and stopping and will produce the highest torque at low speeds. Half stepping is used to give a stepping motor two times its rated step resolution. However, there is a word of caution. A stepper motor is typically not rated to have more than one winding energized at a time. As a result, the motor will heat up if both windings are energized at the rated voltage of the motor. To offset this, when both windings are energized simultaneously, the average current to each winding should be 0.707 times the rated current. Microstepping offers several advantages over single stepping and half stepping. First, torque is fairly constant between steps. This results in smoother rotation and decreased shaft oscillation. Secondly, a higher step resolution is achieved. This means a low-cost motor can be used in an application that would normally require a more expensive, higher resolution motor. Finally, the current in the motor windings is being controlled in a way that prevents the motor from running outside its rated current, thereby eliminating the excess heat associated with half stepping. The drawback to microstepping is that the drive circuitry is more complex. DS51557C-page 38 © 2006 Microchip Technology Inc. Example Projects 2.3.8 Project 8: PC Interface Using the USART Communicating with the serial port on a PC is a very useful tool. Applications include a piece of test equipment that needs to interface to a PC or a design that uses the serial port during development to configure the device. In this project, the PIC16F917 will use the USART to receive commands from a PC application. Another notable feature to this project is that the firmware implements an auto-baud routine to sync up with the application. Objectives 1. Use the provided PIC® MCU Communicator GUI to manipulate the I/O on the PIC16F917. 2. Understand what an auto-baud routine entails. Applicable Technical Documents Asynchronous Communications with the PICmicro® USART Application Note, AN774 (DS00774) Jumper Configuration • Make sure there are no jumpers or shunts on JP2. • RD7 (J10) to D0 (J14) • Connect a serial cable between the board and PC FIGURE 2-16: © 2006 Microchip Technology Inc. PROJECT 8: JUMPER DIAGRAM DS51557C-page 39 PICDEMTM Mechatronics Demo Board User’s Guide FIGURE 2-17: PROJECT 8: SCHEMATIC VDD U18 C17 0.1 μF 16 VCC C17 0.1 μF 2 J19 1 6 2 7 3 8 4 9 5 DE9S-FRS C17 V+ 1 3 4 C21 0.1 μF PIC16F917 11/32 VDD 5 C20 0.1 μF R60 11 25 14 TX 10 300 Ω 7 12 13 8 9 0.1 μF 6 V- GND 15 R61 26 RX MAX3232CUE 300 Ω 12/31 RD7 30 R36 270 Ω D0 VSS Instructions Locate the PIC® MCU Communicator GUI in the PIC MCU Communicator folder in Project 8 on the CD-ROM. Choose the Comm Port and baud rate. Then click “Open Comm.” Enter “TRISD” in the top Label text field. Enter “088” into the top Addr text field. Check the top Hex box. Enter “7F” into the Data field. In the box labeled “Bit Control” enter “PORTD” in the label text field. Enter “008” in the Addr field. Finally, toggle bit 7 using the “T” button under that bit. The LED on your board should toggle on and off. See Figure 2-18. FIGURE 2-18: DS51557C-page 40 PIC® MCU COMMUNICATOR INTERFACE © 2006 Microchip Technology Inc. Example Projects Discussion The firmware for this project implements RS-232 communication between the PC and PIC16F917. The USART is used to perform this communication. If a crystal oscillator were used as the clock source for the PIC16F917, auto-baud would not be necessary. However, because the PIC16F917 is using the internal RC oscillator, it is necessary to perform auto-baud. Auto-baud refers to sending out a known character from the PC, the MCU measures the time it takes to receive the character, interprets this time into bit width, and then sets up the baud rate registers accordingly for the USART. This method allows the RS-232 communication to be free from errors on different microcontrollers and over temperature variations. The PIC MCU Communicator GUI is included in this project as an example GUI. However, it is also a great tool for debugging. Experiment with using the GUI to setup other peripherals on the microcontroller. © 2006 Microchip Technology Inc. DS51557C-page 41 PICDEMTM Mechatronics Demo Board User’s Guide 2.3.9 Project 9: Brushed DC Motor Control Using the ECCP This project is very similar to Project 5, only in this project, we are using the Enhanced Capture Compare PWM (ECCP) module in the PIC16F690 (see note). In PWM mode, the ECCP module has four outputs for directly driving an H-bridge circuit. This makes implementing bidirectional speed control of a Brushed DC motor a simple task. Note: To change microcontrollers, disconnect power from the board. Remove the PIC16F917 microcontroller from U1 and install the PIC16F690 in U2. Reconnect power to the board. Objectives 1. Configure the ECCP module for Full-Bridge mode. 2. Change motor directions. Applicable Technical Documents Low-Cost Bidirectional Brushed DC Motor Control Using the PIC16F684 Application Note, AN893 (DS00893) Jumper Configuration • • • • • • • • • DS51557C-page 42 P1A (J6) to P1 (J1) P1B (J6) to N1 (J1) P1C (J6) to P2 (J1) P1D (J5) to N2 (J1) AN2 (J5) to POT1 (J4) RA5 (J6) to SW2 (J4) Make sure there are no shunts (two pin jumpers) on J2. Attach the Brushed DC motor leads to DRIVE1 (P9) and DRIVE2 (P10). Connect the right and center pins of JP8 using a shunt. © 2006 Microchip Technology Inc. Example Projects PROJECT 9: JUMPER DIAGRAM Brushed DC Lead FIGURE 2-19: © 2006 Microchip Technology Inc. DS51557C-page 43 DS51557C-page 44 VDD POT1 10 kΩ SW2 1 kΩ R10 VDD 17 AN2 2 RA5 7 VSS 20 P1D 14 P1C P1B 6 10 kΩ 10 kΩ 10 kΩ * * = These are simplified circuits that show the equivalent functionality. C26 1000 pF 1 kΩ R5 1 10 kΩ * Motor +5V * * FIGURE 2-20: R4 10 kΩ VDD +5V P1A 5 PIC16F690 +5V PICDEMTM Mechatronics Demo Board User’s Guide PROJECT 9: SCHEMATIC © 2006 Microchip Technology Inc. Example Projects Instructions Use POT1 to adjust the speed of the motor. SW2 toggles between the following four modes of operation: • • • • Motor Off Forward Motor Off Reverse Discussion The ECCP module is ideal for driving a full-bridge circuit. Dead-band Delay Control and Automatic Shutdown are some of the other features of the ECCP module when configured in PWM mode. Dead-band Delay Control allows you to control when the MOSFETs in the full-bridge circuit are turned on and off, in relation to one another. This is done in order to automatically account for the MOSFET turn-on and turn-off times. Automatic Shutdown allows you to define the shutdown state of the ECCP when a shutdown event occurs. © 2006 Microchip Technology Inc. DS51557C-page 45 PICDEMTM Mechatronics Demo Board User’s Guide NOTES: DS51557C-page 46 © 2006 Microchip Technology Inc. PICDEMTM MECHATRONICS DEMO BOARD USER’S GUIDE Chapter 3. Troubleshooting 3.1 INTRODUCTION This chapter describes common problems associated with using the PICDEM™ Mechatronics and steps on how to resolve them. 3.2 COMMON PROBLEMS 3.2.1 VDD Is Below 5V The board must be powered by one of the following: • • • • A 9-12 VDC source at the screw terminals (P20 and P21) A 9-12 VDC source at J9 A 9 VDC battery A 5 VDC power source at TP2 and TP3 Supplying less than 9 VDC at J9 or the screw terminals will not allow the regulator (U3) to function properly causing VDD to be below 5 VDC. 3.2.2 No Voltage On Drive Stage There must be a two-pin shunt present on JP8 connecting the middle pin to +5 VDC or 9-12 VDC. This is the supply reference for the drive stage. If the FAULT LED (D8) is on, the drive stage is disabled. Press the CLR FAULT button (SW5) to enable the drive stage. 3.2.3 FAULT LED Stays On Or Continues To Trip When SW5 Is Pressed Verify that the motor is not drawing over 1.2 amps. Check the voltage at CURRENT SENSE (J15) before the FAULT LED turns on again. Voltage is equal to the current at J15, therefore, if the voltage is 1.2V or greater, the drive is drawing too much current or possibly shorted. Verify the motor is being driven properly. The N-channel and P-channel MOSFETs on any given Drive (DRIVE 1, DRIVE 2, etc.) should not be turned on simultaneously. (See note). J2 connects the MOSFET control lines for DRIVE 1 and DRIVE 2 and J3 connects the control lines for DRIVE 3 and DRIVE 4. If shunts are present on J2 and J3, verify that they are connected intentionally and not from a previous design. Note: © 2006 Microchip Technology Inc. Hardware is in place to ensure the N-channel and P-channel MOSFETs on a given Drive are not turned on at the same time. However, if you are switching the N-channel MOSFET rapidly, it is possible for both MOSFETs to be on at the same time. DS51557C-page 47 PICDEMTM Mechatronics Demo Board User’s Guide 3.2.4 Microcontroller Does Not Run After Programming By The MPLAB ICD 2 When using the MPLAB ICD 2 as a programmer, the microcontroller will not run unless you disconnect the MPLAB ICD 2 or release the MPLAB ICD 2 from Reset. Figure 3-1 shows the “Release From Reset” button. FIGURE 3-1: 3.2.5 RELEASE FROM RESET BUTTON Back EMF At J16 Is Floating Check that a Fault has not occurred by checking that the FAULT LED is off. Verify the Brushed DC motor is connected between DRIVE 1 and DRIVE 2. In order to measure Back EMF, DRIVE 1 must float and DRIVE 2 must be grounded (i.e., the N-channel MOSFET for Drive 2 is the only MOSFET turned on). 3.2.6 Board Is Non-Functional When Microcontrollers Are Installed In Both U1 And U2 Only one microcontroller should be installed on the board at any given time. 3.2.7 Optical Interrupter Is Not Providing The Expected Feedback The optical interrupter circuit is susceptible to interference from outside infrared light sources (i.e., incandescent lights, sunlight, etc.). It may be necessary to block this source or turn off the light source when using the optical interrupter. 3.2.8 Serial Communication Does Not Appear To Be Working If using the USART on the PIC16F690 or PIC16F917, note that the TX and RX pins are already connected. Make sure there is no shunt present on JP2. DS51557C-page 48 © 2006 Microchip Technology Inc. PICDEMTM MECHATRONICS DEMO BOARD USER’S GUIDE Appendix A. Hardware Schematics A.1 INTRODUCTION This appendix contains the PICDEM™ Mechatronics Board Schematic Diagram. SCHEMATIC DIAGRAM (PAGE 1 OF 7) M FIGURE A-1: © 2006 Microchip Technology Inc. DS51557C-page 49 PICDEMTM Mechatronics Demo Board User’s Guide SCHEMATIC DIAGRAM (PAGE 2 OF 7) M FIGURE A-2: DS51557C-page 50 © 2006 Microchip Technology Inc. Hardware Schematics SCHEMATIC DIAGRAM (PAGE 3 OF 7) M FIGURE A-3: © 2006 Microchip Technology Inc. DS51557C-page 51 PICDEMTM Mechatronics Demo Board User’s Guide SCHEMATIC DIAGRAM (PAGE 4 OF 7) DS51557C-page 52 12 9 13 8 GND 15 10 7 6 V- 11 14 16 VCC 2 V+ C1+ C1C2+ C2- 1 3 4 5 M FIGURE A-4: © 2006 Microchip Technology Inc. Hardware Schematics SCHEMATIC DIAGRAM (PAGE 5 OF 7) M FIGURE A-5: 3 1 7, 8 2 6 4 6 5 4 3 2 1 3 2 5 3 5, 6 4 2 5, 6 4 7, 8 1 1 © 2006 Microchip Technology Inc. DS51557C-page 53 PICDEMTM Mechatronics Demo Board User’s Guide SCHEMATIC DIAGRAM (PAGE 6 OF 7) M FIGURE A-6: 2 11 13 12 11 13 12 9 10 8 2 7, 8 3 5, 6 4 4 1 8 3 5, 6 9 7, 8 10 1 DS51557C-page 54 © 2006 Microchip Technology Inc. Hardware Schematics SCHEMATIC DIAGRAM (PAGE 7 OF 7) M FIGURE A-7: © 2006 Microchip Technology Inc. DS51557C-page 55 PICDEMTM Mechatronics Demo Board User’s Guide NOTES: DS51557C-page 56 © 2006 Microchip Technology Inc. PICDEMTM MECHATRONICS DEMO BOARD USER’S GUIDE Appendix B. LCD Segment Mapping Worksheet B.1 INTRODUCTION This appendix contains the LCD Segment Mapping Worksheet. © 2006 Microchip Technology Inc. DS51557C-page 57 © 2006 Microchip Technology Inc. LCDDATA0, 6 LCDDATA0, 7 LCDDATA1, 0 LCDDATA1, 1 LCDDATA1, 2 LCDDATA1, 3 LCDDATA1, 4 LCDDATA1, 5 LCDDATA1, 6 LCDDATA1, 7 LCDDATA2, 0 LCDDATA2, 1 LCDDATA2, 2 LCDDATA2, 3 LCDDATA2, 4 SEG6 SEG7 SEG8 SEG9 SEG10 SEG11 SEG12 SEG13 SEG14 SEG15 SEG16 SEG17 SEG18 SEG19 SEG20 LCDDATA2, 7 LCDDATA0, 5 SEG5 SEG23 LCDDATA0, 4 SEG4 LCDDATA2, 6 LCDDATA0, 3 SEG3 SEG22 LCDDATA0, 2 SEG2 LCDDATA2, 5 LCDDATA0, 1 SEG1 1B 1A 2B S1 3B 2A 3A DH RC A LCD Segment LCDDATA5, 7 LCDDATA5, 6 LCDDATA5, 5 LCDDATA5, 4 LCDDATA5, 3 LCDDATA5, 2 LCDDATA5, 1 LCDDATA5, 0 LCDDATA4, 7 LCDDATA4, 6 LCDDATA4, 5 LCDDATA4, 4 LCDDATA4, 3 LCDDATA4, 2 LCDDATA4, 1 LCDDATA4, 0 LCDDATA3, 7 LCDDATA3, 6 LCDDATA3, 5 LCDDATA3, 4 LCDDATA3, 3 LCDDATA3, 2 LCDDATA3, 1 LCDDATA3, 0 LCDDATAx Address COM1 1G 1F 2G S2 3G 2F 3F RH BATT V LCD Segment LCDDATA8, 7 LCDDATA8, 6 LCDDATA8, 5 LCDDATA8, 4 LCDDATA8, 3 LCDDATA8, 2 LCDDATA8, 1 LCDDATA8, 0 LCDDATA7, 7 LCDDATA7, 6 LCDDATA7, 5 LCDDATA7, 4 LCDDATA7, 3 LCDDATA7, 2 LCDDATA7, 1 LCDDATA7, 0 LCDDATA6, 7 LCDDATA6, 6 LCDDATA6, 5 LCDDATA6, 4 LCDDATA6, 3 LCDDATA6, 2 LCDDATA6, 1 LCDDATA6, 0 LCDDATAx Address COM2 1C 1E 2C m 3C 2E 3E B-C - K LCD Segment LCDDATA11, 7 LCDDATA11, 6 LCDDATA11, 5 LCDDATA11, 4 LCDDATA11, 3 LCDDATA11, 2 LCDDATA11, 1 LCDDATA11, 0 LCDDATA10, 7 LCDDATA10, 6 LCDDATA10, 5 LCDDATA10, 4 LCDDATA10, 3 LCDDATA10, 2 LCDDATA10, 1 LCDDATA10, 0 LCDDATA9, 7 LCDDATA9, 6 LCDDATA9, 5 LCDDATA9, 4 LCDDATA9, 3 LCDDATA9, 2 LCDDATA9, 1 LCDDATA9, 0 LCDDATAx Address COM3 1D 2DP M 3DP 2D 3D 4DP -/10 -/9 -/8 -/30 -/29 -/28 -/27 -/26 5/5 27/39 28/40 2/2 15/23 16/24 17/25 18/26 3/3 14/18 7/7 6/6 24/36 23/35 22/34 21/33 Ω AC 28/40-pin LCD Segment Pin No. RE2 RE1 RE0 RD7 RD6 RD5 RD4 RD3 RA3 RB6 RB7 RA0 RC4 RC5 RC6 RC7 RA1 RC3 RA5 RA4 RB3 RB2 RB1 RB0 PORT AN7 AN6 AN5 AN3/VREF+ ICSPCK/ICDCK ICSPDAT/ICDDAT AN0 T1G/SDO T1CKI/CCP1 TX/CK/SCK/SCL RX/DT/SDI/SDA AN1 C2OUT/AN4/SS C1OUT/T0CKI INT Alternate Functions APPENDIX B: SEG21 LCDDATA0, 0 LCDDATAx Address COM0 SEG0 LCD Function LCD Segment Mapping Worksheet LCD SEGMENT MAPPING WORKSHEET DS51557C-page 58 LCD Segment Mapping Worksheet NOTES: © 2006 Microchip Technology Inc. DS51557C-page 59 WORLDWIDE SALES AND SERVICE AMERICAS ASIA/PACIFIC ASIA/PACIFIC EUROPE Corporate Office 2355 West Chandler Blvd. Chandler, AZ 85224-6199 Tel: 480-792-7200 Fax: 480-792-7277 Technical Support: http://support.microchip.com Web Address: www.microchip.com Asia Pacific Office Suites 3707-14, 37th Floor Tower 6, The Gateway Habour City, Kowloon Hong Kong Tel: 852-2401-1200 Fax: 852-2401-3431 India - Bangalore Tel: 91-80-4182-8400 Fax: 91-80-4182-8422 India - New Delhi Tel: 91-11-4160-8631 Fax: 91-11-4160-8632 Austria - Wels Tel: 43-7242-2244-3910 Fax: 43-7242-2244-393 Denmark - Copenhagen Tel: 45-4450-2828 Fax: 45-4485-2829 India - Pune Tel: 91-20-2566-1512 Fax: 91-20-2566-1513 France - Paris Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79 Japan - Yokohama Tel: 81-45-471- 6166 Fax: 81-45-471-6122 Germany - Munich Tel: 49-89-627-144-0 Fax: 49-89-627-144-44 Atlanta Alpharetta, GA Tel: 770-640-0034 Fax: 770-640-0307 Boston Westborough, MA Tel: 774-760-0087 Fax: 774-760-0088 Chicago Itasca, IL Tel: 630-285-0071 Fax: 630-285-0075 Dallas Addison, TX Tel: 972-818-7423 Fax: 972-818-2924 Detroit Farmington Hills, MI Tel: 248-538-2250 Fax: 248-538-2260 Kokomo Kokomo, IN Tel: 765-864-8360 Fax: 765-864-8387 Los Angeles Mission Viejo, CA Tel: 949-462-9523 Fax: 949-462-9608 Santa Clara Santa Clara, CA Tel: 408-961-6444 Fax: 408-961-6445 Toronto Mississauga, Ontario, Canada Tel: 905-673-0699 Fax: 905-673-6509 Australia - Sydney Tel: 61-2-9868-6733 Fax: 61-2-9868-6755 China - Beijing Tel: 86-10-8528-2100 Fax: 86-10-8528-2104 China - Chengdu Tel: 86-28-8665-5511 Fax: 86-28-8665-7889 Korea - Gumi Tel: 82-54-473-4301 Fax: 82-54-473-4302 China - Fuzhou Tel: 86-591-8750-3506 Fax: 86-591-8750-3521 Korea - Seoul Tel: 82-2-554-7200 Fax: 82-2-558-5932 or 82-2-558-5934 China - Hong Kong SAR Tel: 852-2401-1200 Fax: 852-2401-3431 Malaysia - Penang Tel: 60-4-646-8870 Fax: 60-4-646-5086 China - Qingdao Tel: 86-532-8502-7355 Fax: 86-532-8502-7205 Philippines - Manila Tel: 63-2-634-9065 Fax: 63-2-634-9069 China - Shanghai Tel: 86-21-5407-5533 Fax: 86-21-5407-5066 Singapore Tel: 65-6334-8870 Fax: 65-6334-8850 China - Shenyang Tel: 86-24-2334-2829 Fax: 86-24-2334-2393 Taiwan - Hsin Chu Tel: 886-3-572-9526 Fax: 886-3-572-6459 China - Shenzhen Tel: 86-755-8203-2660 Fax: 86-755-8203-1760 Taiwan - Kaohsiung Tel: 886-7-536-4818 Fax: 886-7-536-4803 China - Shunde Tel: 86-757-2839-5507 Fax: 86-757-2839-5571 Taiwan - Taipei Tel: 886-2-2500-6610 Fax: 886-2-2508-0102 China - Wuhan Tel: 86-27-5980-5300 Fax: 86-27-5980-5118 Thailand - Bangkok Tel: 66-2-694-1351 Fax: 66-2-694-1350 Italy - Milan Tel: 39-0331-742611 Fax: 39-0331-466781 Netherlands - Drunen Tel: 31-416-690399 Fax: 31-416-690340 Spain - Madrid Tel: 34-91-708-08-90 Fax: 34-91-708-08-91 UK - Wokingham Tel: 44-118-921-5869 Fax: 44-118-921-5820 China - Xian Tel: 86-29-8833-7250 Fax: 86-29-8833-7256 08/29/06 DS51557C-page 60 © 2006 Microchip Technology Inc.