Home
MPLAB® ICD 2 In-Circuit Debugger User's Guide
Contents
1. Requirements Sequence of Operations ococonccccinoccccnocccononcnnonccnanccnninncnnana 15 Debug TOO 3er A es 31 Debugger 55 36 6 Demo Board 4 A T E 54 Device S l ction viii tie arret re 31 Download 006660000666 66 75 8 Drivers Not Found 1 a a 110 dsPIC Silicon Version Information 34 E EE Data ura dia 111 EEPROM instan across dia 38 EEPROM Data Memory Start Of 000660000066 69 Environment Setup 0 34 1 1 10 0 0 00006 41 77 Erase All Before Programming 53 111 External Memory ROMless Devices coooococcccnoccccccconconcnnccnnnnnos 71 DS51331B page 132 O 2005 Microchip Technology Index F Fast Calc ada total 101 113 O 101 0 113 andadas 97 Firmware Upgrades ccccoonoocccccnonoccccnconnnnncnnnnnencnnnnnnnnnccnnnnnnnnnnn 67 Frequently Vio dais 107 G Getting Started necio lala 27 GPO GP Mini aran dana 19 CGPURAL 1 1 1 1 1 1 1 1 1 a 1 1 1 r ent 2 12 are mr ste 112 620 ies 112 Te 31 45 H O 74 Header Board 00000
2. 0060 18 A A 1 1 1 1 bank 1 1 1 1 1 1 1 1 2 2 Or 38 51 68 Hold in Reset 77 How MPLAB ICD 2 Works ss 8 l a dia 97 Cable 1 1 0000000000000 10 Header Adapters 108 ICD DEVICES icc a a aaen 72 IGE 8 ESP aa AR a re 14 18 20 22 Installation asia aiii 29 Interconnections coronada aladas if 10 Internal Buffer Circuits aier aranira een aa ia iai 98 Internet Address Microchip 3 INterrUpiS ce 112 A TO 101 High Prior scared 113 O 2005 Microchip Technology Inc DS51331B page 133 MPLAB ICD 2 User s Guide L inket Script File ovina taras 69 Loading Program and Debug Code 2 00 6666 0660 54 LOW Voltage oiea sonir li 109 rA m 1 110 M MGLR icons A 19 20 22 26 77 Modular Interface Cable 10 14 28 MPASM Assembler cocococccccoccconoccncnnnccnanonoconncananennnnnn nn naar 47 MPLAB cfs coves ae aio dotan tt eae 7 Mplab EX RE retiens 30 0 Operating System Upgrades 0 6066 06600060 67 Oscillator Target ini 99 P PGC POD andanada da a e Aea 1
3. a ii 12 RET PEE unan atroz 113 RETURN FAS Ti 02 113 AER A dupevenateed 70 815 2327 A alee tanta eee 28 RU in aras 74 5 Selecting Device and Development Mode 45 Self TEST iniciada ada 113 Set Breakpoint asise osie edian anri iat enaa tiaina hanes tase 56 Setting Program and Debug Options 600066006600666 51 Setting Up Hardware and Software 44 Settings Dialog 1 1 1 1 1 1 Aaa AREIA aE 35 Setup Wizara 1 1 1 1 1 1 1 1 45 4 Shadow carolina a 101 Single Stepping esse iio ae 114 aia 19 20 2 Status Register accionista 113 Sinaloa daa id tas 74 Step Mode Execution occooccccincccconocccononcnnannccnannnnnnnn nn nana nananannnne 38 SUPPOM iia 1 System Components coccccoccccccnoccconnncaconnnonanoncncnnncanannnnnana ca rannnanas 28 O 2005 Microchip Technology Inc DS51331B page 135 MPLAB ICD 2 User s Guide T Table Read Protect 14 1 Target 061 166 ni 97 OSCIATOT sereine en 000 99 POWER iia aiii 98 Tim rs ss 1 1 1 1 1 1 1 1 1 1 tn dre te 112 4 Toolbar B T ONS sii i 1 eaaa aAA aia 55 TOS atada todito 22 TroUbleshooting sirro eni 95 t t452 A SM ns 55 Source COG aia AT acetates 62 Tutorial ia Pa E ed aa 43 U Updat
4. PC to MPLAB ICD 2 MPLAB ICD 2 Target MPLAB ico2 W Firmware to Target Power Communication PICmicro MCU Target 050 In Circuit In Giroult Debug Application N Debug Resources Debug Registers Executive Code Sc O 2005 Microchip Technology Inc DS51331B page 95 MPLAB ICD 2 User s Guide Functional links are covered as follows e Link PC to ICD Communications e Link ICD Firmware Link ICD to Target PICmicro Device Link Target Power e Link Target Oscillator Link Application Code e Link Debug Executive e Link In Circuit Debug Registers e Link In Circuit Debug Resources 6 2 LINK PC TO ICD COMMUNICATIONS This link is the foundation for all subsequent links If it doesn t work MPLAB IDE will issue communications errors Make sure that the MPLAB USB drivers are installed according to the instruc tions Look at the Windows hardware manager dialog under the USB section to see that the MPLAB ICD 2 driver is properly installed on the PC If using RS 232 make sure that the FIFO buffers are turned off and flow control is set for hardware in the COMM driver dialog If the MPLAB ICD 2 USB driver is not visible in the USB section of the Hardware Manager go to the MPLAB IDE installation directory and open the Driversxxx folder Xxx corresponds to the operating system i e 98 NT XP etc Open the htm files with
5. DS51331B page 4 2005 Microchip Technology Customer Support CONTACT INFORMATION Users of Microchip products can receive assistance through several channels Distributor or Representative Local Sales Office Field Application Engineer FAE e Technical Support 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 EEE 2005 Microchip Technology Inc DS51331B page 5 MPLAB ICD 2 User s Guide NOTES DS51331B page 6 O 2005 Microchip Technology AN MPLAB ICD 2 MICROCHIP USER S GUIDE Chapter 1 MPLAB ICD 2 Overview 1 1 INTRODUCTION An overview of the MPLAB ICD 2 development tool is given here MPLAB ICD 2 is defined and its operation explained Additionally device resources used during debugging are listed Topics covered in this chapter are What is MPLAB ICD 2 How MPLAB ICD 2 Helps You How MPLAB ICD 2 Works e Resources Used By MPLAB ICD 2 1 2 WHAT IS MPLAB ICD 2 The MPLAB ICD 2 is a low cost In Circuit Debugger ICD and In Circuit Serial Programmer ICSP MPLAB ICD 2 is intended to be used as an evaluation debugging and programming aid in a laborator
6. MICROCHIP MPLAB ICD 2 In Circuit Debugger User s Guide eee 2005 Microchip Technology Inc DS51331B 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 s products as critical components in life support systems is not authorized except with express written approval by Micro chip No licenses are conveyed implicitly or otherwise under any Microchip intel lectual property rights Trademarks The Microchip name and logo the Microchip logo Accuron dsPIC KEELoa 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 Amp Lab FilterLab Migratable Memory MXDEV MXLAB PICMASTER 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 M
7. 2005 Microchip Technology Inc DS51331B page 97 MPLAB ICD 2 User s Guide FIGURE 6 2 MPLAB ICD 2 INTERNAL BUFFER CIRCUITS Target VDD to pin 2 of the ICD Connector If MPLAB ICD 2 does not have voltage on its VDD line pin 2 of the ICD connector it will not operate Using a scope communications on PGC and PGD with a full target VDD to Vss peak to peak waveform should be seen VPP should show 12 5 and OV levels depending upon the operation being performed Signals should be seen on those lines only after performing an MPLAB ICD 2 function from the MPLAB user interface Otherwise all these lines should be idle and noise free 6 5 LINK TARGET POWER MPLAB ICD 2 can work within a range of about 2V to 5 5V on the target PICmicro MCU s VDD The application must be powered by its own power supply Remember that the PGC and PGD 1 0 drivers in MPLAB ICD 2 are powered from the target VDD see Figure 6 2 DS51331B page 98 2005 Microchip Technology Troubleshooting Tips 6 6 LINK TARGET OSCILLATOR When programming a device it will program without a running oscillator but the debug function will not work unless the target oscillator is functioning Unlike an in circuit emulator while debugging MPLAB ICD 2 requires that the target PICmicro MCU is running Testing may be necessary to make sure that the target system is executing instructions properly For instance a small program could be
8. 00 Pass Ground can be provided to target VPP MCLR pin 80 Max error Ground level too high for target VPP MCLR pin An error can indicate The target VPP MCLR pin is not correctly wired AAA AA AAA nn SSO DS51331B page 104 O 2005 Microchip Technology Self Test 7 5 MCLR VDD Test the ability of the MPLAB ICD 2 to provide VDD to the target VPP MCLR pin during normal operation such as Run Pass Fail codes 00 Pass VDD can be provided to target VPP MCLR pin 01 Minerror VDD too low for target VPP MCLR pin 80 Max error VDD too high for target VPP MCLR pin An error can indicate e Target voltage current mismatch from provided voltage current MPLAB ICD 2 pod hardware problems 7 6 MCLR VPP Test the ability of the MPLAB ICD 2 to provide VPP to the target VPP MCLR pin during programming operations Pass Fail codes 00 Pass VPP can be provided to target VPP MCLR pin 01 Min error VPP too low for target VPP MCLR pin 80 Max error VPP too high for target VPP MCLR pin An error can indicate The target VPP MCLR pin is not correctly wired A eee 2005 Microchip Technology Inc DS51331B page 105 MPLAB ICD 2 User s Guide 7 7 FAILED SELF TEST ERROR VPP VDD HIGH LOW Symptom When connecting to the MPLAB ICD2 in MPLAB IDE or running a self test Debugger Programmer gt Settings gt Status gt Self Test MPLAB IDE may report a self test error in the Output window
9. Aaii 104 TA MCLR GND srt 104 TS MGLR VDD 1 ennemies age teeta 105 1 6 MCER N PP dead Aint 105 7 7 Failed Self Test Error VPP VDD High Low 106 Chapter 8 General Troubleshooting 8 1 Introduction coooococccoccccccncnccccnnannnnnnnnnnccnnnnncnnannnnnnnnnncnos 107 8 2 Frequently Asked Questions 107 8 3 Common Communication Problems 114 8 4 COMMON Problems UV 119 8 5 Error and Warning Messages 122 8 6 LiMitationS neioii aaa 123 Chapter 9 Hardware Specifications 9 1 INTRODUCTION vesical 125 9 2 MPLAB ICD 2 Module 0 6 0606 660666 125 9 3 Modular Cable and Connector 126 9 4 Power SUpPIy 4 000000 1 1 129 e AAA 131 Worldwide Sales and Service 138 O 2005 Microchip Technology Inc DS51331B page v MPLAB ICD 2 User s Guide NOTES DS51331B page vi 2005 Microchip Technology Inc xX MPLAB ICD 2 MICROCHIP USER S GUIDE Customer Support 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 docu
10. 70 4 6 Special ICD Devices s s s 72 Chapter 5 ICD Function Summary 5 1 Introduction cnn 73 5 2 Debugging FUNCTIONS coocoocccccnoconcninonanancnnnonanrncnncnannn nos 73 5 3 Programming Functions 77 5 4 Settings Dialog ooooconcccnnnncicnnncccnoncncnancnnnanancnana nn rnnncanna 79 5 5 84 5 6 Advanced Breakpoints Dialog 87 Chapter 6 Troubleshooting Tips 61 Introduction iodo 95 6 2 Link PC to ICD Communications cooococcnncccnnoccccnnncccnns 96 6 3 Link ICD Firmware ooooococnnccconocccconcncnnnncanonccnanananinnncnnns 97 6 4 Link ICD to Target PlCmicro Device 97 6 5 Link Target Power 98 6 6 Link Target Oscillator 99 6 7 Link Application Code ooococonoccconoccccnncccconacananananinanana 100 6 8 Link Debug Executive oooooocccccnncoccccconononccoccnnnancnncnnnnon 100 6 9 Link In Circuit Debug Registers 101 6 10 Link In Circuit Debug Resources s 101 DS51331B page iv O 2005 Microchip Technology Inc Table of Contents Chapter 7 Self Test Lol INTOQUCHION urea nig ig 103 L 2 Target VDD it 1 1 1 1100 103 7 3 Module VPP
11. To set manually select Configure gt Configuration Bits and set the oscillator and other configuration bit settings appropriate to the target 3 If desired set the ID bits by selecting Configure gt ID Memory 4 Select Programmer gt Blank Checkto check thatthe device is blank has been erased and is ready to program 5 Select Programmer gt Programto download your code to the device in the application or demo board that is connected to the MPLAB ICD 2 Download time will depend on the memory used i e program memory EEPROM size of program and voltage 2 7 5 Additional Programming Options As a programmer MPLAB ICD 2 has several other programmer functions besides simply programming the target device 2 7 5 1 VERIFYING THE PROGRAMMING Select Verify from the Programmer menu or toolbar to verify that the device was programmed correctly based on the hex code in MPLAB IDE memory and the settings on the Program tab of the Settings dialog 2 7 5 2 READING A DEVICE Select Read from the Programmer menu or toolbar to read the device memory based on the settings on the Program tab of the Settings dialog into MPLAB IDE memory Memory read from a device into MPLAB IDE memory may then be saved to a file The type of file saved will depend on the type of memory read If you attempt to read a code protected device you will get a warning indicating that the device is code protected and that the program memory may be invalid If this h
12. Cause This could be due to the firmware routines used to determine minimum and maximum voltages a less than compare is used in one place while a less than or equal to is used in another Solution Check the actual voltages measured by the ICD This can be found at Programmer Debugger gt Settings gt Power The Update button will cause these voltages to be remeasured and displayed As long as the voltages displayed are within tolerance for the target device the MPLAB ICD 2 unit can still be used for programming and debugging operations The firmware will be changed for better support of self test functions DS51331B page 106 2005 Microchip Technology AN MPLAB ICD 2 MICROCHIP USER S GUIDE Chapter 8 General Troubleshooting 8 1 INTRODUCTION Frequently Asked Questions FAQs and common problems are documented here to help you as you use the MPLAB ICD 2 Also messages generated by the ICD and its tool limitations are referenced Topics covered in this chapter are Frequently Asked Questions Common Communication Problems Common Problems Error and Warning Messages e Limitations 8 2 FREQUENTLY ASKED QUESTIONS Questions are listed in the order of most to least frequently asked 8 2 1 Q Why does my system fail to program or verify A Check the PGC PGD and VPP connections and voltages as described in Chapter 2 Getting Started Make sure the target PICmicro MCU has power applied
13. Enable Automatic OS Download Step 4 Enable autodownload of operating systems Automatically download the correct OS for the selected device Note There are different operating systems for different devices Required operating system automatically downloaded to MPLAB ICD 2 Check to automatically download the correct OS for your selected device The OS will be downloaded when MPLAB IDE detects that the current MPLAB ICD 2 operating system is not correct for the selected device or there is a newer version of this operating system Uncheck to be prompted to download the OS If you choose not to download the OS it may be downloaded manually later using Debugger gt Download ICD Operating System Note Downloading an incorrect operating system will cause unknown errors lt is recommended that you allow MPLAB IDE to automatically download the OS Click Next to continue 5 5 6 Setup Wizard External Memory Note This page will only appear if you have selected a ROMless device PIC18C601 801 Step 5 Specify amount of external memory Specify the amount of external memory you will use for your ROMless device The Start Address is always zero 0 Enter an End Address value in decimal or hex use 0x before number Click Next to continue DS51331B page 86 2005 Microchip Technology ICD Function Summary 5 5 7 Setup Wizard Summary Check the summarized information If anything is incorrect u
14. ICD 2 User s Guide 8 4 11 Program keeps resetting See Section 8 2 12 Q Why does my program keep resetting 8 4 12 Execute Reset or MCLR command program does not rerun When you select Debugger gt Resetto reset the program it will go to zero and halt The Reset command will not rerun the program when the MPLAB ICD 2 is in Debug mode 8 4 13 File Register window does not display Top of Stack Registers The three Top Of Stack registers TOSU TOSH and TOSL are not displayed in the File Registers window when using the MPLAB ICD 2 8 4 14 Power and busy LED blink on and off See Section 8 2 17 Q What would make the power and busy LED blink on and off 8 5 ERROR AND WARNING MESSAGES MPLAB ICD 2 generates several error and warning messages Details on the meanings of most messages may be found in on line help for MPLAB ICD 2 Warning messages may be selected to display or not display using the Warnings tab of the Settings dialog All messages may be output to a file for debugging by selecting the Output to Debug File checkbox on the Status tab of the Settings dialog DS51331B page 122 2005 Microchip Technology General Troubleshooting 8 6 LIMITATIONS MPLAB ICD 2 has limitations for both its debugger and programmer modes These and additional device specific limitations may be found in on line help for MPLAB ICD 2 LLP eee eee 2005 Microchip Technology Inc DS51331B page 123 MPL
15. Los Angeles Tel 949 263 1888 Fax 949 263 1338 San Jose Tel 650 215 1444 Fax 650 961 0286 Toronto Tel 905 673 0699 Fax 905 673 6509 ASIA PACIFIC Australia Sydney Tel 61 2 9868 6733 Fax 61 2 9868 6755 China Beijing Tel 86 10 85282100 Fax 86 10 85282104 China Chengdu Tel 86 28 86766200 Fax 86 28 86766599 2005 Microchip Technology Inc DS51331B page 138
16. Program cycle A voltage level on pin 1 VPP of 7 8 volts is too low If the target was wired backwards protection circuitry in the MPLAB ICD 2 will prevent damage to the module Normal operation should be seen when the target is wired correctly 8 2 18 Q What does the MPLAB ICD 2 Self Test do A The MPLAB ICD 2 Self Test is helpful in determining problems with the MPLAB ICD 2 module or target connection See Chapter 7 Self Test for more details 8 2 19 Q Why are the W STATUS and BSR registers getting changed when using high priority interrupts with the RETFTE instruction A The shadow registers which are used for high priority interrupts and CALL FAST are used by MPLAB ICD 2 These are reserved resources for MPLAB ICD 2 operation A problem will be encountered if a breakpoint is set inside a CALL FAST subroutine or inside the service routine for a high priority interrupt that uses the shadow registers with the RETURN FAST or RETFIE instruction 8 2 20 Q When setting a breakpoint at the first location in my program why does it stop at address 0001 rather than 0000 A MPLAB ICD 2 stops at the instruction afterthe breakpoint This means that a breakpoint at address 0000 will be executed then the program counter will be pointing at address 0001 when it gets a breakpoint If a user needs to stop at the first instruction in their code they must put a NOP at address 0000 O 2005 Microchip Technology Inc
17. gt 200 mA Check the PICmicro MCU data sheet to verify the operational voltage range for the device being used 1 Apply power to MPLAB ICD 2 DO NOT power the target 2 Start MPLAB IDE 3 Under the Debugger menu of MPLAB IDE select Connect 4 After establishing communications with the MPLAB ICD 2 select Debugger gt Settings 5 Inthe Settings dialog click the Power tab and ensure that the check box for Power target circuit from MPLAB ICD 2 is NOT checked Click OK 6 Power the target system and then select Debugger gt Connect Note If any of the self tests on the Status tab of the Settings dialog do not pass it may not be possible to erase and program chips See Section 7 7 Failed Self Test Error VPP VDD High Low for more information 2005 Microchip Technology Inc DS51331B page 33 MPLAB ICD 2 User s Guide 2 5 CONNECTION OPTIONS Once you have initially connected with the MPLAB ICD 2 you may continue to manually connect each time you select the ICD as a debugger by using Debugger gt Connect or you may set the ICD to connect automatically by checking Automatically connect at start up on the Status tab of Debugger gt Settings On connection for dsPIC devices silicon version information will be displayed in the Output window 2 6 SETTING UP THE ENVIRONMENT This section provides a quick summary on MPLAB ICD 2 operation Setting Debugging and Programming Options
18. recommended to be connected from the VPP MCLR line to VDD so that the line may be strobed low to reset the PICmicro MCU DS51331B page 10 2005 Microchip Technology MPLAB ICD 2 Overview FIGURE 1 2 MPLAB ICD 2 CONNECTIONS TO TARGET BOARD VDD PICXXXX VPP MCLR PGC PGD vss AVDD MPLAB Connector Although pin 2 VDD can supply a limited amount of power to the target application under certain conditions for the purposes of these descriptions pins 2 and 3 VSs are omitted They are shown on the diagram for completeness but in the following descriptions only three lines are active and relevant to core MPLAB ICD 2 operation VPP MCLR PGC and PGD Note In the following discussions VDD is ignored But be aware that the target VDD is also used to power the output drivers in MPLAB ICD 2 This allows level translation for target low voltage operation If MPLAB ICD 2 does not have voltage on its VDD line pin 2 of the ICD connector either from power being supplied to the target by MPLAB ICD 2 or from a separate target power supply it will not operate Not all PICmicro MCUs have the AVDD and AVSs lines but if they are present on the target PICmicro MCU all must be connected in order for MPLAB ICD 2 to operate 2005 Microchip Technology Inc DS51331B page 11 MPLAB ICD 2 User s Guide The interconnection is very simple any problems experienced are oft
19. 0331 466781 Netherlands Drunen Tel 31 416 690399 Fax 31 416 690340 England Berkshire Tel 44 118 921 5869 Fax 44 118 921 5820 06 29 05 China Fuzhou Tel 86 591 7503506 Fax 86 591 7503521 China Hong Kong SAR Tel 852 2401 1200 Fax 852 2401 3431 China Shanghai Tel 86 21 6275 5700 Fax 86 21 6275 5060 China Shenyang Tel 86 24 2334 2829 Fax 86 24 2334 2393 China Shenzhen Tel 86 755 82901380 Fax 86 755 8295 1393 China Shunde Tel 86 757 28395507 Fax 86 757 28395571 China Qingdao Tel 86 532 5027355 Fax 86 532 5027205 China Xian Tel 86 29 8833 7250 Fax 86 29 8833 7256 China Wuhan Tel 86 27 5980 5300 Fax 86 27 5980 5118 India Bangalore Tel 91 80 2229 0061 Fax 91 80 2229 0062 India New Delhi Tel 91 11 5160 8631 Fax 91 11 5160 8632 India Pune Tel 91 20 2566 1512 Fax 91 20 2566 1513 Japan Yokohama Tel 81 45 471 6166 Fax 81 45 471 6122 Korea Seoul Tel 82 2 554 7200 Fax 82 2 558 5932 or 82 2 558 5934 AMERICAS Corporate Office Tel 480 792 7200 Fax 480 792 7277 Technical Support 480 792 7627 Web Address http www microchip com Atlanta Tel 770 640 0034 Fax 770 640 0307 Boston Tel 978 692 3848 Fax 978 692 3821 Chicago Tel 630 285 0071 Fax 630 285 0075 Dallas Tel 972 818 7423 Fax 972 818 2924 Detroit Tel 248 538 2250 Fax 248 538 2260 Kokomo Tel 765 864 8360 Fax 765 864 8387
20. 15 007 O Ti Typ 2 places A ES DS51331B page 128 2005 Microchip Technology Hardware Specifications 9 4 POWER SUPPLY The MPLAB ICD 2 module requires a 9 0 V 750 mA power supply The demo board or your target application may also require an additional power supply if it is drawing too much power from the MPLAB ICD 2 module The MPLAB ICD 2 module can power a demo board target application of up to 200 mA for 5 VDC A power adapter is included in the following product kits Part Number Description Includes these Components DV164006 MPLAB ICD 2 MPLAB ICD 2 module USB Evaluation Kit MPLAB ICD 2 interface and RS 232 cables PICDEM 2 Plus demo board power adapter MPLAB IDE CD ROM DV164007 ICD 2 Module SW MPLAB ICD 2 module USB ICD 2 interface and RS 232 cables power adapter MPLAB IDE CD ROM AC162048 RS 232 Desk Top Kit Power adapter and RS 232 cable The power supply specifications for the MPLAB ICD 2 module and the PICDEM 2 Plus demo board are DC power supply 9 VDC 0 75A e With barrel connector ID 2 5 mm OD 5 5 mm barrel length 10 0 mm inside positive 2005 Microchip Technology Inc DS51331B page 129 MPLAB ICD 2 User s Guide NOTES DS51331B page 130 O 2005 Microchip Technology AN MPLAB ICD 2 MICROCHIP USER S GUIDE Index A ADORA 75 78 AVANCE NET aaa iaa 67 Advanced Breakpoint Dialog aASPICIDEVICOS iia tas 91
21. Creating and Building a Project 2 6 1 Setting Debugging and Programming Options The easiest way to set up the MPLAB ICD 2 for operation is to use the MPLAB ICD 2 Setup Wizard Debugger gt MPLAB ICD 2 Setup Wizard Additionally these dialogs allow you to set or reset debugging and programming options e Configuration Bits dialog Configure gt Configuration Bits Select the configuration bits on the PICmicro processor For complete details about these options see the Special Features Configuration Bits section of the data sheet for the device being programmed Note Configuration bits can be specified in the source code instead of setting them in this dialog When doing this every time the project is rebuilt the configuration bits will get reset to the values specified in the source code DS51331B page 34 2005 Microchip Technology Getting Started ICD Settings dialog Debugger gt Settings or Programmer gt Settings Set up communications power pro gramming and warning message output as well as view status limitations and version information You have previously used the Communications and Power tabs when setting up the MPLAB ICD 2 hardware The follow ing tabs are useful for completing the ICD setup For detailed information on these and the other tabs on the Settings dialog see Section 5 4 Settings Dialog Program tab Set up programming options Select Memories Program and External Mem
22. DS51331B page 47 MPLAB ICD 2 User s Guide 5 Proceed to the next dialog of the wizard where project files can be added Files can also be added later if something is missed For this example go to C Program Files Microchip MPASM Suite Example TUT452 ASM Click on TUT452 ASM to highlight it then Click on ADD gt gt to add it to the right pane Then click in the checkbox next to the file in this pane to copy it into the project directory FIGURE 3 4 WIZARD ADD FILES x Step Four B Add any existing files to your project Lo C Program Files Microchip MPA Messenger Microchip MPASM Suite EU Example Remove Example asm Example2 asm IDASM16 4SM IDASM17 4SM tut452 asm LKR H Template E _MPLINK EXE A Check the box to copy the file to the project directory gt Back Cancel Help Add lt lt DS51331B page 48 2005 Microchip Technology MPLAB ICD 2 Tutorial 6 The second file needed for this project is the linker script Click on the C Program Files Microchip MPASM Suite LkR folder to expand it and then scroll down to select the file 1884521 1kr Make sure that the file name has an i Press ADD gt gt to move the linker script to the list on the right You will not be copying this file into the project directory FIGURE 3 5 WIZARD ADD FILES LINKER SCRIPT x Step Four B Add any existing files to y
23. Design Advisory DS51566 for hardware configuration issues Topics covered in this chapter MPLAB ICD 2 System Components Installing and Configuring MPLAB IDE for MPLAB ICD 2 Applying Power Connection Options Setting Up the Environment MPLAB ICD 2 Development Process 2005 Microchip Technology Inc DS51331B page 27 MPLAB ICD 2 User s Guide 2 2 MPLAB ICD 2 SYSTEM COMPONENTS In addition to the MPLAB ICD 2 module the following components are required MPLAB IDE software version 6 20 or later Installed on the PC to control MPLAB ICD 2 RS 232 or USB cable To connect the MPLAB ICD 2 module to a COM or USB port on the PC Note Do not connect the USB cable until installation of the MPLAB IDE software and instructions for configuring the USB driver have been completed Modular interface cable To connect the MPLAB ICD 2 module to a demo board or the user s application Demo board or target application To connect the PICmicro MCU with on board debug capabilities to the modular interface and the MPLAB ICD 2 Although the serial or USB communications from the MPLAB IDE to the MPLAB ICD 2 can be set up without a target connection MPLAB ICD 2 will not function as a debugger without being connected to a target Power adapter s To power MPLAB ICD 2 and the target application DS51331B page 28 2005 Microchip Technology Getting Started 2 3 INSTALLING AND CONFIGURING
24. MODE EXECUTION Step mode execution can be accessed after the processor is halted Step Mode Execution occurs when you single step the processor or execute Debugger gt Step Into Step mode execution allows you to step through the code one instruction at a time to watch the program flow and to see the register contents at each instruction as set in the dialog box Note While single stepping the MPLAB ICD 2 will not respond to interrupts 2 7 2 4 WRITING DATA EEPROM If data EEPROM is written during program execution the EEPROM window of MPLAB IDE will not reflect the changes You will need to perform a READ of EEPROM memory in order to update the values in the window If some register or memory values do not seem correct in other windows remember that MPLAB ICD 2 has reserved resources 2 7 3 Modifying Target Application Code and Rebuilding the Hex File To modify the code and rebuild the hex file 1 Open the source file double click on the file name in the Project Window or use File gt Open 2 Make the necessary changes to debug the code Rebuild the hex file using Project gt Build All 4 Select Debugger gt Program to program the device with the updated hex file oo DS51331B page 38 2005 Microchip Technology Getting Started 2 7 4 Finishing the Application Using MPLAB ICD 2 as a Programmer Once the code has been debugged and the application is running as designed the device can be programmed
25. MPLAB IDE FOR MPLAB ICD 2 Note When using the USB cable do not connect it before installing MPLAB IDE software To install the MPLAB IDE software first acquire the latest MPLAB IDE installation executable MPxxxxx exe Where xxxxx represents the version of MPLAB IDE from either the Microchip web site www microchip com or the MPLAB IDE CD ROM DS51123 e Setting Up Communications Starting MPLAB IDE Select the Device Set MPLAB ICD 2 as the Debug Tool e Configure the Interface 2 3 1 Setting Up Communications MPLAB ICD 2 can communicate with the PC serially or using USB Note Do not connect both RS 232 and USB cables to MPLAB ICD 2 2 3 1 1 SERIAL COMMUNICATIONS If using the RS 232 cable connect it to the MPLAB ICD 2 and the PC A ns SSS Sa 2005 Microchip Technology Inc DS51331B page 29 MPLAB ICD 2 User s Guide 2 3 1 2 USB COMMUNICATIONS Instructions are supplied with MPLAB IDE to install the USB drivers These instructions will pop up during MPLAB IDE installation If you accidentally close these instructions they may be found at MPLAB IDE installation directory ICD2 Drivers Ddicd2nn htm where nn represents the version of Windows OS If the instruc tions support more than one version no OS version nn will be specified 2 3 2 Starting MPLAB IDE After installing the MPLAB IDE software invoke it by using any of these methods Select Start gt Programs gt Microchip gt MPLA
26. PIC12F629 ICD 0x300 0x3FF 0x54 0x5F 0xD4 0xDF PIC12F635 ICD 0x300 0x3FF Ox65 0x6F 0x70 OxFO 0x170 10 PIC12F675 ICD 0x300 0x3FF 0x54 0x5F 0xD4 0xDF PIC12F683 ICD 0x700 0x7FF 0x65 0x6F 0x70 OxFO 2005 Microchip Technology Inc DS51331B page 19 MPLAB ICD 2 User s Guide 1 5 2 Resources Used for PIC16F Devices General Device Resources e MCLR pin reserved for debugging except for ICD devices i e you cannot use this pin as digital I O while debugging MCLR VPP shared for programming Low voltage ICSP programming disabled for devices that support this type of programming Note MPLAB ICD 2 does not support Low Voltage Programming MPLAB ICD 2 will disable this function You cannot enable it through programming using the MPLAB ICD 2 However you can enable it through another programmer e g PICSTART Plus development programmer RB6 and RB7 reserved for programming and in circuit debugging Exception RAO and RA1 reserved on PIC16F630 676 Therefore other functions multiplexed on these pins will not be available during debug One stack level not available Program and Data Memory Resources The MPLAB ICD 2 uses the following program memory file regis ter and data memory locations in the target device In MPLAB IDE registers marked with an R in register displays represent reserved registers Device Program Memory Used File Registers Used PIC16F627A ICD 0x30
27. The LED should shine brightly If it is dim only USB may be connected and the user may need to connect the power supply The RS 232 connection from the PC cannot supply power to MPLAB ICD 2 but a USB connection can Note that some USB hubs cannot supply power Check the on line help for current troubleshooting hints Are the USB drivers installed properly The MPLAB ICD 2 USB driver should be visible in the Windows Device Manager dialog see Figure 8 1 Some USB hubs cannot supply power to the attached USB devices A power supply will need to be connected to MPLAB ICD 2 with these hubs DS51331B page 108 2005 Microchip Technology General Troubleshooting FIGURE 8 1 SYSTEM PROPERTIES DIALOG System Proportens Ux Gereral Device Manager Hardwan Profiles Pretermance View devices by yoe I View devices by connection yA e ICO 2 2 0 Properties Refresh Remove Pit ema 8 2 4 Q MPLAB ICD 2 responds with Target not in debug mode error What does this mean A Usually this means that MPLAB ICD 2 cannot communicate with the debug executive The debug executive can only be downloaded by programming the target PICmicro MCU with the user s application from the Debugger gt Program menu selection There are other reasons that the debug executive might not be able to communicate such as target clock or power supply problems Check the configuration bits to see that the Background Debug is
28. User s Guide The MPLAB ICD 2 interface cable must be plugged into a modular connector on the application circuit with the appropriate connec tions to the PICmicro MCU device The interface cable carries the signals necessary to allow in circuit debugging of the target application 9 3 MODULAR CABLE AND CONNECTOR A modular cable connects the MPLAB ICD 2 and the target application The specifications for this cable and its connectors are listed below 9 3 1 Modular Connector Specification e Manufacturer Part Number AMP Incorporated 555165 1 Distributor Part Number Digikey A9031ND The following table shows how the modular connector pins on an application correspond to the microcontroller pins This configuration provides the full MPLAB ICD 2 functionality DS51331B page 126 O 2005 Microchip Technology Hardware Specifications FIGURE 9 1 MODULAR CONNECTOR PINOUT OF DESIGNER S BOARD Modular Microcontroller Connector Pin Pin Not Used RB6 RB Ground Vdd Vpp A 0 0 1 Bottom View of Modular Connector Pinout on Designer s Board O 2005 Microchip Technology Inc DS51331B page 127 MPLAB ICD 2 User s Guide 9 3 2 Modular Plug Specification e Manufacturer Part Number AMP Incorporated 5 554710 3 Distributor Part Number Digikey A9117ND 9 3 3 Modular Cable Specification e Manufacturer Part Number Microchip Technology 07 00024
29. devices 4 5 2 Additional Reference Documents PIC18C601 801 Datasheet DS39541 e PIC18CXXX OTP In Circuit Serial Programming DS39028 PIC18XXXX MCU Family Product Overview DS30327 DS51331B page 70 2005 Microchip Technology Advanced Usage 4 5 3 External Memory This section only applies to ROMless PIC18C601 801 devices File Click the Browse button to select the location of the WriteProgramWord and EraseProgramMemory files See PICDEM 18R Files You must use a different memory routine file for the 8 bit bus width and the 16 bit bus width devices The memory routine files must match the following naming conventions lt Memory Type gt lt Bus Width gt lt extension gt where lt Memory Type gt lt Bus Width gt does not exceed 8 characters Valid 16 bit filename examples 29F16016 hex SRAM16 hex Valid 8 bit filename examples 29F16008 hex SRAMO8 hex See the ICD801 Source folder for information on writing your custom routines These code routines will be used to program memory They must be relocatable and comply with the format used in the included source files Use Default Pro Select this option to use the default memory routines gram Routines provided with MPLAB IDE instead of providing your own memory routines See PICDEM 18R Files 4 5 4 PICDEM 18R Files There is a folder called ICD2 that was copied into the MPLAB IDE installation directory This folder has two files which can be used
30. enabled Look at Configure gt Configuration Bits to make sure that the Watchdog Tlmer is disabled code protection is turned off and that the oscillator setting is correct 8 2 5 Q Can MPLAB ICD 2 operate with a target device running at low voltage A Yes As long as the target PICmicro MCU supports low voltage operation it can run down to about 2 volts VDD There are level converters in the input output buffers of the MPLAB ICD 2 These are powered from the VDD of the target device Also MPLAB ICD 2 will sense the operating voltage of the target and correctly adjust its functionality to deal with this operation i e using the correct Flash erase algorithms VDD needs to be selected From Target in the MPLAB ICD 2 Settings dialog and have a power supply on the target for low voltage operation 2005 Microchip Technology Inc DS51331B page 109 MPLAB ICD 2 User s Guide 8 2 6 Q Does MPLAB ICD 2 support Low Voltage Programming LVP A No But this does not mean that it will not work correctly when running at low voltage VDD on the target It just means that the programming voltages applied to VPP will always be 12V 8 2 7 Q Why do have problems when configuring the PLL Oscillator MPLAB ICD 2 gets hung up A This is a requirement of the actual PICmicro MCU After programming the configuration bits for the PLL Oscillator power needs to be removed then reapplied to the target If
31. text box under the device For more detailed limitations click Details 5 4 4 Power Tab This tab of the ICD Programmer dialog allows you to view MPLAB ICD 2 and target power parameters and set the MPLAB ICD 2 to power the target View values for Target VDD Target VPP and MPLAB ICD 2 VPP If you know the values have changed since you opened the dialog you may click Update to see these values update immediately or wait for one of the conditions specified on the dialog Click in the checkbox to enable disable Power target circuit from MPLAB ICD 2 5V VDD DS51331B page 80 2005 Microchip Technology ICD Function Summary 5 4 5 Program Tab This tab of the ICD Programmer dialog allows you to set up debug programming options Allow ICD to select memories and ranges MPLAB ICD 2 uses your selected device and default settings to determine what to program e Manually select memories and ranges you select the type and range of memory to program TABLE 5 1 MANUAL SELECTION OPTIONS Memories Program Check to program Program Memory into target Configuration Check to program Configuration Bits into target Note This memory is always programmed when in Debug mode EEPROM Check to erase and then program EEPROM memory on target Uncheck to erase EEPROM memory on target ID Check to program ID Memory into target External Check to program External Memory into target Note To select External your dev
32. that the RS 232 or USB cable is connected securely to the MPLAB ICD 2 and the host computer 2 Check that the modular cable is connected securely to the demo board target application and the MPLAB ICD 2 module 3 Make sure there is power to the demo board target application Check VDD Source in the ICD Settings dialog Power tab 4 Check that the device is plugged into the demo board target application correctly e g all pins are plugged into the socket and the device is correctly oriented 8 3 1 2 SERIAL COMMUNICATIONS 1 Make sure the power supply is connected and the Power LED on the MPLAB ICD 2 module is on 2 There may be a driver hardware incompatibility try changing Flow Control to Hardware and or turning off the FIFO for the serial port For specific instructions see Changing Serial Port Settings 3 Check the settings on the ICD Setting dialog Communica tion tab Make sure you selected the correct COM port and baud rate for your application Note If you are having problems at a COM port baud rate speed of 57600 switch back to the initial speed of 19200 4 Try connecting the MPLAB ICD 2 module to a different port When first connecting to the MPLAB ICD 2 the default COM port is COM1 If you are using the MPLAB ICD 2 on another COM port select Debugger gt Settings and then click the Communications tab Set your COM port and baud rate here 2005 Microchip Technology Inc DS51331B page 115 MP
33. the various ways you can set up MPLAB ICD 2 hardware MPLAB ICD 2 Header DS51292 A small booklet describing how to install and use MPLAB ICD 2 headers Headers are used to better debug selected devices using special ICD device versions without the loss of pins or resources Universal Programming Module Instruction Sheet DS51280 A sheet describing how to use the UPM DS51331B page 2 2005 Microchip Technology Customer Support 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 e 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 O 2005 Microchip Technology Inc DS51331B page 3 MPLAB ICD 2 User s Guide DEVELOPMENT SYSTEMS CUSTOMER CHANGE NOTIFICATION Micro
34. this is not done the target PICmicro MCU will not have a clock With no clock Debug mode will not function Also if power is not removed and reconnected when switching to PLL mode the device may run but without the PLL multiplier 8 2 8 Q When try to install why are the drivers not found even though can see them in the driver folders and point the driver wizard to the correct folder A This problem can be solved by exiting from the driver install wizard and going to the Control Panel Add New Hardware selection After the system searches for new hardware choose No the device isn t in the list Then choose No want to select the hardware from a list Then choose Universal Serial Bus Controller and when the Have Disk button appears go to the driver folder and select the proper driver 8 2 9 Q Can use code protection with MPLAB ICD 2 A No Code protection especially table read protection on any area in program memory will prevent MPLAB ICD 2 from function ing Do not use any code protection or table read protection configuration settings when debugging with MPLAB ICD 2 Code protection can be enabled when programming a part for testing without MPLAB ICD 2 DS51331B page 110 2005 Microchip Technology General Troubleshooting 8 2 10 Q How does MPLAB ICD 2 deal with Calibration Data A It is automatically handled Any values that are in program memory that are used by t
35. with the PICDEM 18R demo board DM163006 SRAM16 HEX allows program download to the static RAM e 29F16016 HEX allows program download to the Flash memory 2005 Microchip Technology Inc DS51331B page 71 MPLAB ICD 2 User s Guide When using PICDEM 18R you must use one of the above files in the Location of WriteProgramWord and EraseProgramMemory dialog on the MPLAB ICD 2 Advanced Dialog Also you must remember to do an erase before programming as this is not done automatically For your own design which probably has different programming algorithms for the memory on your target you must substitute your own memory read write routine in order for the MPLAB ICD 2 to download code See the PICDEM 18R documentation for informa tion on writing your custom routines These code routines will be used to program your memory and care must be taken to ensure they are relocatable and comply with the format used in the included source files 4 6 SPECIAL ICD DEVICES Some devices have special ICD versions e g PIC12F629 ICD for the PIC12F629 to limit the number of device resources that must be used for debugging Only the ICD version of the device may be used for debugging the actual device does not have the built in circuitry necessary to work with MPLAB ICD 2 DS51331B page 72 2005 Microchip Technology AN MPLAB ICD 2 MICROCHIP USER S GUIDE Chapter 5 ICD Function Summary 5 1 INTRO
36. without the debugger enabled The device resources reserved for ICD operation then will be free for other use Note MPLABICD 2 may be selected as either a debug tool or a programmer Do not select both To change MPLAB ICD 2 mode from debug to program 1 Setthe Debugger to None from the Debugger gt Select Tool menu 2 Select Programmer gt Select Programmer gt MPLAB ICD 2 to choose MPLAB ICD 2 as a programmer The Programmer menu and MPLAB IDE toolbar will change to display pro grammer options once the tool is selected Also the Output window will open and messages concerning ICD status and communications will be displayed on the MPLAB ICD 2 tab The project should rebuild now so that all debugging modes will be disabled and the configuration bits as defined in the source code will be programmed into the target To program the application project s code into the device follow these steps Note If you are using the Universal Programming Module UPM MPLAB ICD 2 must be powered with a power supply to be used as a programmer Also the option Power target circuit from MPLAB ICD 2 on the Power tab of Programmer gt Settings must be checked 1 Select Programmer gt Settings and then click the Program tab to set the programming options for your application 2005 Microchip Technology Inc DS51331B page 39 MPLAB ICD 2 User s Guide 2 Configuration bits will be set as defined in the source files
37. 0 0x3FF 0x70 OxFO PIC16F628A ICD 0x700 0x7FF 0x165 0x16F 0x170 10 PIC16F630 ICD 0x300 0x3FF 0x54 0x5F 0xD4 0xDF PIC16F636 ICD 0x700 0x7FF 0x65 0x6F PIC16F639 ICD 0x70 OxFO 0x170 0x1FO DS51331B page 20 2005 Microchip Technology File Registers Used 0x70 OxFO 0x165 0x16F 0x170 0x1FO 0x54 0x5F 0xD4 0xDF 0x65 0x6F 0x70 OxFO 0x165 0x16F 0x170 0x1FO 0x70 OxFO 0x165 0x16F 0x170 0x1FO 0x65 0x6F 0x70 OxFO 0x170 0x1FO 0x65 0x6F 0x70 OxFO 0x70 OxFO 0x165 0x16F 0x170 0x1FO 0x65 0x6F 0x70 OxFO 0x170 0x1FO 0x70 OxFO 0x170 0x1FO 0x1E7 0x1EF 0x65 0x70 OxE5 0xF0 0x165 0x170 0x1E5 0x1FO 0x65 0x70 OxFO 0x170 0x1E5 0x1FO MPLAB ICD 2 Overview Program Memory Used OxF00 0xFFF 0x300 0x3FF 0x700 0x7FF OxF00 0xFFF 0x700 0x7FF OxF00 0xFFF 0x700 0x7FF Ox0F00 0x0FFF 0x1F00 0x1FFF 0x700 0x7FF OxF00 OxFFF 0x300 0x3FF 0x700 0x7FF Device PIC16F648A ICD PIC16F676 ICD PIC16F684 ICD PIC16F685 ICD PIC16F687 ICD PIC16F688 ICD PIC16F689 ICD PIC16F690 ICD PIC16F716 PIC16F 737 747 PIC16F 767 777 PIC16F785 PIC16F87 88 PIC16F818 PIC16F819 DS51331B page 21 2005 Microchip Technology Inc MPLAB ICD 2 User s Guide Device Program Memory Used File Registers Used PIC16F870 871 872 0x700 0x7FF 0x70 OxFO 0xB5 0xBF 0x170 0x1FO 0x1B5
38. 0x1BF PIC16F873 873A OxFOO OxFFF Ox7E 0x7F PIC16F874 874A OxF4 0xFF 0x17E 0x17F 0x1F4 0x1FF PIC16F876 876A 0x1F00 0x1FFF 0x70 OxFO PIC16F877 877A 0x170 0x1FO 0x1E5 0x1EF PIC16F913 914 OxF00 OxFFF 0x70 OxFO PIC16F916 917 0x1 FFO 0x1 FFF 0x165 0x16F PIC16F946 0x170 0x1FO 1 5 3 Resources Used for PIC18X Devices General Device Resources e MCLR pin reserved for debugging except for ICD devices i e you cannot use this pin as digital I O while debugging MCLR VPP shared for programming Low voltage ICSP programming disabled for devices that support this type of programming Note MPLAB ICD 2 does not support Low Voltage Programming MPLAB ICD 2 will disable this function You cannot enable it through programming using the MPLAB ICD 2 However you can enable it through another programmer e g PICSTART Plus development programmer RB6 and RB7 reserved for programming and in circuit debugging Therefore other functions multiplexed on these pins will not be available during debug Two stack levels not available Also because MPLAB ICD 2 needs to control the stack TOS registers TOSL TOSH TOSU are reserved DS51331B page 22 2005 Microchip Technology MPLAB ICD 2 Overview Program and Data Memory Resources The MPLAB ICD 2 uses some program memory file register and data memory locations in the target device as specified below In MPLAB IDE registers mark
39. 1 26 107 PIGT8F452 due ae ne deri ir ea 43 PICDEM 1 1 1 1 0 70 PICDEM 2 Plus demo board 6 0066 0600066000 43 POB 112 00000 108 1 1 1 1 32 TAJET ini ales re erie 98 Aeee LEE LL PR died ETTE 75 77 Device 01010 36 Mode ciutat 18 Tab Settings Dialog iaeiiai 53 2181101 ie 39 Programming er 00 61 Programming Options cooococonoccccnoccnnoncnnonncnnono non nnnnnnnnnn cn ranncannno 52 PO Odia a 35 Project Wizard ainia Need iremnatres ie tenne 47 Pull UPS iran dit leida 12 DS51331B page 134 O 2005 Microchip Technology 8 RBG RBZ sieste 1 tna 20 2 O ma tete 75 77 Read a Device gorn 40 Real Time Execution ssssssssssesseierrrenseeerrrrrrnnrntnnteesrrrrrrnnnnn 37 Red Light fret E ment none st 31 Release from Reset 77 Reserved ReSQurcCes ccccconooccccnonononcnnnnnnnnnnnnnonnnnncnnnnnann rn nrnnnnn nn 18 Reset Hold Miera aho 77 75 re ik ren 82706655611 Release from citada ea 77 88651516187 ic
40. 1FFF 0x3DC0 0x3FFF 0x3DC0 0x3FFF 0x5DC0 0x5FFF 0x3DC0 0x3FFF 0x7DC0 0x7FFF 0xBD80 0xBFFF 0x7DC0 0x7FFF 0xBD80 0xBFFF 0x7DC0 0x7FFF 0x7DC0 0x7FFF 0x7DC0 0x7FFF 0xBD80 0xBFFF OxFD80 OxFFFF OxFD80 OxFFFF Device PIC18F2220 4220 PIC18F2221 4221 PIC18F2320 4320 PIC18F2321 4321 PIC18F2331 4331 PIC18F2410 4410 PIC18F2420 4420 PIC18F2431 4431 PIC18F2439 PIC18F4439 PIC18F2455 4455 PIC18F2480 4480 PIC18F2510 4510 PIC18F2515 4515 PIC18F2520 4520 PIC18F2525 4525 PIC18F2539 4539 PIC18F2550 4550 PIC18F2580 4580 PIC18F2585 4585 PIC18F2610 4610 PIC18F2620 4620 PIC18F2680 4680 PIC18F2681 4681 2005 Microchip Technology DS51331B page 24 MPLAB ICD 2 Overview 1 5 3 3 PIC18F6XXX 8XXX DEVICES Below are the program and data memory resources used by MPLAB ICD 2 for PIC18F6XXX 8XXX devices Device Program Memory Used File Registers Used 0x2F4 0x2FF 0x2F4 0x2FF 0x7F4 0x7FF OxCF4 0xCFF OxEF4 0xEFF OxCF4 0xCFF Ox7F4 0x7FF OxCF4 0xCFF OxEF4 OxEFF Ox7F4 0x7FF 0x1DC0 0x1FFF 0x3DC0 0x3FFF 0x7D80 0x7FFF 0xBD80 0xBFFF OxFD80 OxFFFF 0x17D80 0x17FFF OxFD80 OxFFFF 0x1FD80 0x1FFFF 0x1FD80 0x1FFFF 0x1FDB8 0x1FFF7 PIC18F6310 8310 PIC18F6390 8390 PIC18F6410 8410 PIC18F6490 8490 PIC18F6520 8520 PIC18F6525 8525 PIC18F6585 8585 PIC18F6620 8620 PIC18F6621 8621 PIC18F6627 8627 PIC18F6680 8680 PIC18F6720
41. 8720 PIC18F6722 8722 PIC18F67J10 87J10 DS51331B page 25 2005 Microchip Technology Inc MPLAB ICD 2 User s Guide 1 5 4 Resources Used for dsPIC30F Devices General Device Resources e MCLR pin reserved for debugging except for ICD devices i e you cannot use this pin as digital I O while debugging MCLR VPP shared for programming PGC and PGD reserved for programming Therefore other functions multiplexed on these pins will not be available during debug Program and Data Memory Resources The MPLAB ICD 2 uses the following program memory file register and data memory locations in the target device In MPLAB IDE registers marked with an R in register displays represent reserved registers Device Program Memory Used File Registers Used dsPIC30Fxxxx None 0x800 0x822 No user program memory space used for ICD DS51331B page 26 O 2005 Microchip Technology AN MPLAB ICD 2 MICROCHIP USER S GUIDE Chapter 2 Getting Started 2 1 INTRODUCTION The use of MPLAB ICD 2 with MPLAB IDE software and an expla nation of power options and recommended power up sequences are discussed here Following this is a step by step tutorial using MPLAB ICD 2 Before continuing on to the tutorial be sure that the software and hardware is configured according to the instructions given here In addition please refer to the MPLAB ICD 2
42. AB ICD 2 User s Guide NOTES DS51331B page 124 O 2005 Microchip Technology AN MPLAB ICD 2 MICROCHIP USER S GUIDE Chapter 9 Hardware Specifications 9 1 INTRODUCTION Hardware specifications for MPLAB ICD 2 system components are listed here In addition please refer to the MPLAB ICD 2 Design Advisory DS51566 for hardware configuration issues Topics covered in this chapter are MPLAB ICD 2 Module e Modular Cable and Connector Power Supply 9 2 MPLAB ICD 2 MODULE The MPLAB ICD 2 module contains all debugging programming and control logic It is connected to either a PC s serial port via a 9 pin serial cable or a USB port via a USB cable and to the PICDEM 2 Plus demo board or target application using a 6 wire modular cable The module contains the firmware to provide serial communica tions to the PC to drive the MPLAB ICD 2 communications to the target application or demo board and to program a supported PICmicro MCU device using ICSP all from the MPLAB IDE The module can provide power to the demo board target application VDD source is selected in the ICD Settings dialog Power tab If the target application draws over 200 mA an additional power adapter must be connected to the demo board or target applica tion The target application also provides power to the module only for the purpose of logic level conversion 2005 Microchip Technology Inc DS51331B page 125 MPLAB ICD 2
43. AB ICD 2 is connected 4 Select the Port Settings tab 5 Inthe Flow Control field select Hardware 6 Click the Advanced button deselect the Use FIFO box and click OK 7 Reboot the PC to implement the change DS51331B page 118 2005 Microchip Technology General Troubleshooting Windows 2000 XP Note You may need administrator privileges on your computer to change these settings 1 On your PC select Start gt Settings gt Control Panel 2 Inthe Control Panel double click the System Icon 3 In the Systems Properties dialog click the Hardware tab and click the Device Manager button 4 Double click Ports COM 8 LPT to expand the Ports selection 5 Double click the I O port to which the MPLAB ICD 2 is connected 6 Select the Port Settings tab 7 Inthe Flow Control field select Hardware 8 Click the Advanced button deselect the Use FIFO box and click OK 9 Reboot the PC to implement the change 8 4 COMMON PROBLEMS The following are a list of common problems you may encounter 8 4 1 Debug Mode Not Working 1 Make sure you have selected all of the areas of the device that you want to program Select Debugger gt Settings and click on the Program tab Select Memories as desired 2 If you are using the Start End Address fields in the Memory Addresses section of the ICD Settings dialog Debugger gt Settings Program tab ensure that the Start Address is set to the beginni
44. AB IDE s Halt button the pause symbol to the right of the Run arrow This tog gles the PGC and PGD lines in such a way that the in circuit debug mechanism of the target PICmicro MCU switches the program counter from the user s code in program memory to the debug executive Again the target application program is effectively halted and MPLAB IDE uses MPLAB ICD 2 communications with the debug executive to interrogate the state of the target PICmicro MCU 1 4 6 Debug Reserved Resources When developing with MPLAB ICD 2 you must be aware of the device resources reserved for debugging See Section 1 5 Resources Used By MPLAB ICD 2 for a list of reserved resources by device type 2005 Microchip Technology Inc DS51331B page 17 MPLAB ICD 2 User s Guide 1 4 7 Programmer Mode When using the Programmer gt Program selection to program a device the in circuit debug registers should be disabled in the MPLAB IDE so the MPLAB ICD 2 will program only the target application code and the configuration bits and EEPROM data if available and selected into the target PICmicro MCU The debug executive will not be loaded In this mode the MPLAB ICD 2 can only toggle the MCLR line to reset and start the target A breakpoint cannot be set and register contents cannot be seen or altered The MPLAB ICD 2 programs the target using ICSP No clock is required while programming and all modes of the processor can be programmed i
45. B IDE vx xx gt MPLAB IDE where vx xx is the version number Double click the MPLAB IDE desktop icon Execute the file mp1ab exe in the core subdirectory of the MPLAB IDE installation directory For more information on using the MPLAB IDE software see MPLAB IDE User s Guide DS51519 Comprehensive guide for using MPLAB IDE MPLAB IDE Quick Start Guide DS51281 Chapters 1 and 2 of the user s guide The on line help for MPLAB IDE The most up to date information on MPLAB IDE The file Readme for MPLAB IDE txt Last minute information on each release Included in the MPLAB IDE installation directory Also see the file Readme for MPLAB ICD 2 txt for the most current information about MPLAB ICD 2 DS51331B page 30 2005 Microchip Technology Getting Started After starting MPLAB IDE it will need to be configured for MPLAB ICD 2 use 1 Select a device supported by MPLAB ICD 2 2 Set MPLAB ICD 2 as the current debugger 3 Configure the MPLAB ICD 2 RS 232 or USB interface 2 3 3 Select the Device Use the Device Selection dialog Configure gt Select Device to select the device to be debugged with the MPLAB ICD 2 Devices supported by MPLAB ICD 2 will have a green light icon next to MPLAB ICD 2 under Microchip Tool Support Devices not supported will have a red light icon A yellow light icon indicates that a part may be selected but it is available with possible lim
46. CD 2 with the changes When the MPLAB ICD 2 dialog indicates Programming succeeded the program is ready to run again 15 Right click on the line of code that previously had the breakpoint now indicated by a red stop sign outline Select Remove Breakpoint 16 Select Debugger gt Run or click the Run toolbar button to run the program in Real Time mode Turn the potentiometer RAO to change the value displayed on the LEDs The source code in this tutorial contained only one bug However real code may have more Using the MPLAB ICD 2 and MPLAB IDE debugging functions users can successfully find and fix the problems in their code 3 11 PROGRAMMING THE APPLICATION When the program is successfully debugged and running usually the next step is to program the PICmicro MCU for stand alone operation in the finished design When doing this the resources reserved by the ICD are released for use by the application To program the application follow these steps 1 Disable MPLAB ICD 2 as a debug tool by selecting Debugger gt Select Tool gt None 2 Select MPLAB ICD 2 as the programmer in Programmer gt Select Tool menu 3 Optional Set up the ID in Configure gt ID Memory Figure 3 14 2005 Microchip Technology Inc DS51331B page 61 MPLAB ICD 2 User s Guide FIGURE 3 14 USER ID MEMORY DIALOG x User ID 64100000 ri 1 Cancel Help 4 Setup the parameters for programming on the Programmer gt Set
47. CD 2 before applying power to the target There are two power up sequences for the ICD e Power Sequence when MPLAB ICD 2 is Providing Power to the Target Power Sequence when Target has a Separate Power Supply 2 4 1 Power Sequence when MPLAB ICD 2 is Providing Power to the Target Use this sequence to power the target board from MPLAB ICD 2 This configuration allows up to 200 mA of current at 5 volts only 1 Apply power to MPLAB ICD 2 DO NOT power the target 2 Start MPLAB IDE 3 Under the Debugger menu of MPLAB IDE select Connect 4 After establishing communications with the MPLAB ICD 2 select Debugger gt Settings z amp E amp amp a E DS51331B page 32 2005 Microchip Technology Getting Started 5 Inthe Settings dialog click the Power tab and ensure that the check box for Power target circuit from MPLAB ICD 2 is checked Click OK If any of the self tests on the Status tab of the Settings dialog do not pass it may not be possible to erase and program chips See Section 7 7 Failed Self Test Error VPP VDD High Low for more information 2 4 2 Power Sequence when Target has a Separate Power Supply Use this sequence to power the target board from its own power supply For this configuration the target power can be 2 5 volts at higher currents than can be provided by the MPLAB ICD 2
48. DS51331B page 113 MPLAB ICD 2 User s Guide 8 2 21 Q Why is my calibration memory displayed as the erase value A MPLAB IDE is displaying the default memory value A device read must be performed with MPLAB ICD 2 to display the actual value on the device 8 2 22 Q When single stepping through the code my timer times out but why does my timer interrupt routine not execute A When single stepping the in circuit debugger will not allow the PICmicro MCU to respond to interrupts If it did and users had external interrupts then single stepping would almost always end up in interrupt routines To debug an interrupt set a breakpoint inside the Interrupt Service Routine and Run to get a breakpoint after the interrupt 8 2 23 Q How do I program a ROMless PIC18C601 801 device A For these devices you must create the routines that read write memory See Section 4 5 ROMless Device Considerations for details 8 3 COMMON COMMUNICATION PROBLEMS The following are a list of common problems with MPLAB ICD 2 communications both USB and serial 8 3 1 Communications cannot be established with MPLAB ICD 2 First click Debugger gt Connect If you cannot establish communi cations with MPLAB ICD 2 follow the steps below If communica tions still cannot be established contact Microchip Engineering Support DS51331B page 114 2005 Microchip Technology General Troubleshooting 8 3 1 1 IN GENERAL 1 Check
49. DUCTION When you select MPLAB ICD 2 from the Debugger menu debug ging functions will be added to MPLAB IDE When you select MPLAB ICD 2 from the Programmer menu pro gramming functions will be added to MPLAB IDE The functions made available are summarized here MPLAB ICD 2 functions are added to MPLAB IDE as follows Debugging Functions e Programming Functions Settings Dialog Setup Wizard Advanced Breakpoints Dialog 5 2 DEBUGGING FUNCTIONS When you select MPLAB ICD 2 from the Debugger menu debug items will be added to the following MPLAB IDE functions Debugger Menu e Toolbars Right Mouse Button Menus 2005 Microchip Technology Inc DS51331B page 73 MPLAB ICD 2 User s Guide 5 2 1 Debugger Menu Run F9 Execute program code until a breakpoint is encountered or until Halt is selected Execution starts at the current program counter as displayed in the status bar The current program counter location is also represented as a pointer in the Program Memory window While the program is running several other functions are disabled Animate Animate causes the debugger to actually execute single steps while running updating the values of the registers as it runs Animate runs slower than the Run function but allows you to view changing register values in the Special Function Register window or in the Watch window To Halt Animate use the menu option Debugger gt Halt instead of the tool
50. ES DS51331B page 102 O 2005 Microchip Technology AN MPLAB ICD 2 MICROCHIP USER S GUIDE Chapter 7 Self Test 7 1 INTRODUCTION The Run Self Test button Settings dialog Status tab is helpful in determining problems with the MPLAB ICD 2 module or target connection Self Test features covered are Target VDD e Module VPP e MCLR GND e MCLR VDD e MCLR VPP Failed Self Test Error VPP VDD High Low 7 2 TARGET VDD Tests the VDD provided from the MPLAB ICD 2 5 volts only if Power target circuit from MPLAB ICD 2 is selected Pass Fail codes 0 0 Pass VDD is within specified limits 01 Minerror VDD is below specified limits 80 Max error VDD is above specified limits An error can indicate e Target voltage current mismatch from provided voltage current MPLAB ICD 2 pod hardware problems 2005 Microchip Technology Inc DS51331B page 103 MPLAB ICD 2 User s Guide 7 3 MODULE Tests the programming voltage VPP provided from the MPLAB ICD 2 to the target VPP MCLR pin during a programming cycle Pass Fail codes 00 Pass VPP is within specified limits 01 Min error VPP is below specified limits 80 Max error VPP is above specified limits An error can indicate The target VPP MCLR pin is not correctly wired 7 4 MCLR GND Test the ability of the MPLAB ICD 2 to provide a ground level to the target VPP MCLR pin for target reset Pass Fail codes
51. Extended PIC18F Devices cooocononnnnnnccccnnnnnaninononononononononos 88 Extended PIC18F Devices V2 o0oooccccccncccncnocaninononononononononos 89 0181 06116887 iii ii AAA 87 ANIMALE Tendre denis lada 74 Application Code A 100 O A A A 11 100 ANSS ne 1 1 1 1 1 1 4 ia a a ti A TA AA A 11 100 B Blank Check ai dae 41 77 Blinking LED uc aan diarias er cola 112 ia 37 75 AVANCE store 87 88 89 91 SO aes a lada 56 3 BSR REGIStC rinconcito 113 6 Calibration Data a 111 114 CATE PAST alone 101 113 09086110157 euclidiana 12 Circuits that Interfere with MPLAB ICD 2 12 Code Protect iii 14 101 110 COMMUNICATIONS iss 1 tere eetine 29 Configuration Bits 14 34 2 2005 Microchip Technology Inc DS51331B page 131 MPLAB ICD 2 User s Guide 601156 61158 heer 32 33 34 45 75 8 Connections e a allan ia ai 10 Contact Information iii 5 Creating a Hex File us 51 Customer Notification Service ccococccnnnnnonnnnnaccnananananonanannnnnnns 4 D Debug EXECUTIVE ect 17 100 109 A brain 18 1 Registers Reserved Resources occcccccncccnncncncncnnnnononononnnnnnnnnnnnnnnnnnnononos 18 Resource Saia Tan art e Re AA A E 101 Debug Mode 14
52. File Register Address Enter location of breakpoint e File Register Value If File Register Must be Equal to Following Value check the checkbox and then enter File Register Value Additional Breakpoint Setup In addition to breakpoint memory setup you may select the following Break on Stack Over Underflow Break on stack overflow or underflow e Pass Count For the breakpoint set above break for the entered pass count value 0 255 5 6 2 Extended PIC18F Devices V1 The Advanced Breakpoints Dialog for Extended PIC18F devices version 1 contains the following options Breakpoint Number These devices support up to three breakpoints Enter a number and then set up that breakpoint below Change the number to set up another breakpoint Breakpoint is in Program Memory Check this checkbox if the breakpoint will be located in program memory Then enter the Program Memory Address as the location of the breakpoint AAA AA nn A nn DS51331B page 88 O 2005 Microchip Technology ICD Function Summary Breakpoint is in File Registers Check this checkbox if the breakpoint will be located in data memory file registers Then e Read Access Write Access Specify file register access File Register Address Enter location of breakpoint e File Register Value If File Register Must be Equal to Following Value check the checkbox and then enter File Register Value Additio
53. ICD2 Operating System Download ICD operating system Settings Opens the ICD Programmer dialog Set up communication output file power and program options Also find out information about the current system configuration and device limitations 5 3 2 Toolbar Program target device Program specified memory areas program memory configuration bits ID locations and or EEPROM data Read target device Read specified memory areas program memory configuration bits ID locations and or EEPROM data Verify target device memory Verify programming of specified memory areas program memory configuration bits ID locations and or EEPROM data Erase target device Erase all data on the PICmicro MCU device including memory ID and configuration bits Verify target device is erased Check to see that all device memory is erased blank Reset and Connect to ICD Establish communications between the ICD and PC DS51331B page 78 O 2005 Microchip Technology ICD Function Summary 5 4 SETTINGS DIALOG Select either Debugger gt Settings or Programmer gt Settings to open the Settings dialog and set up the MPLAB ICD 2 Status Tab Communication Tab e Limitations Tab Power Tab Program Tab Versions Tab e Warnings Tab 5 4 1 Status Tab This tab of the ICD Programmer dialog allows you to set connection and message options Connect Status Connect Status Shows the current connection status Automatic
54. If the target PICmicro MCU has AVss and AVDD pins verify that these are all connected properly Es 2005 Microchip Technology Inc DS51331B page 107 MPLAB ICD 2 User s Guide 8 2 2 Q Why do I need the ICD header adapters A The low pin count parts that are supported by MPLAB ICD 2 could not be used very effectively if in circuit debug pins are reserved imagine losing three out of six I O lines on an eight pin part For this reason special bond out PICmicro MCUs have been manufactured that can emulate these low pin count parts with an adapter and which will allow the use of all pins in the target application The bond out PICmicro MCU has the in circuit communications pins to interface to MPLAB ICD 2 The advantage of this is that the low pin parts can be used in development with MPLAB ICD 2 The disadvantage is that these parts cannot simply have an ICD 2 connector on the target application for in circuit debugging These bond out PICmicro MCUs are similar to emulator chips They can support more than one device Jumpers are available on the header boards to con figure the chip to match the device under development These low pin count devices can be programmed with MPLAB ICD 2 using the Universal Programmer Adapter or by putting an ICD 2 connec tor on the target application to connect VPP PGC and PGD on these parts 8 2 3 Q can t connect to MPLAB ICD 2 What do I do now A the MPLAB ICD 2 power light on
55. LAB ICD 2 User s Guide 5 Make sure that a COM port is properly set up exclusively for use by the debugger Check the resources to ensure they are operating properly and that there are no conflicts with other devices This commonly happens when you have a modem or other serial device that is improperly configured Consult your Windows manual or other reference literature You can try removing reconfiguring or disabling the con flicting device but only do so if you are familiar with those procedures 6 Ifyou have a COM port but MPLAB IDE will not let you select it the option is grayed out you may be able to assign the port manually by editing the mplab ini file Typically this occurs if you have a gap in your COM port list i e you have a COM1 COM2 and a COM4 but no COM In this case you may be able to fix it by opening mplab ini use Find to locate this file and editing the section called MPLAB ICD 2 so that the setting CommPort 1 is set to the port you want selected This is just a work around to a deeper problem in which Windows is incorrectly reporting port availability through the 16 bit driver 8 3 1 3 USB COMMUNICATIONS CAUTION If the Windows OS picked a USB driver MPLAB ICD 2 will not work Follow the instructions in Driversnn iCD2_USB MPUsbClean htm nn Windows OS version of the MPLAB IDE installation directory to remove the Windows drivers and replace them with the correct USB drivers 1 If
56. MPLAB ICD 2 is powering a target application make sure a power supply is connected and the Power LED on the MPLAB ICD 2 module is on 2 Make sure you have used the MPLAB IDE supplied USB driver for MPLAB ICD 2 DS51331B page 116 2005 Microchip Technology General Troubleshooting 8 3 2 Connection failure occurs when using a COM port 2 3 or 4 When first connecting to the MPLAB ICD 2 the default COM port is COM1 If you are using the MPLAB ICD 2 on another COM port select Debugger gt Settings and then click the Communications tab Set your COM port and baud rate here 8 3 3 MPLAB ICD 2 Connects But Target Operations Fail This can indicate that the VDD setting is incorrect The MPLAB ICD 2 can provide VDD to the target 5 volts only This is set in the ICD Debugger Settings dialog Power tab If Power target circuit from MPLAB ICD 2 is selected the MPLAB ICD 2 will provide VDD to the target the target does not need to be powered However if the target needs a voltage other than 5V or more than 200mA of current then the target cannot be powered by MPLAB ICD 2 and will require its own power source When you click the Reset button in Debug mode to reset the program it will go to zero and halt The Reset command will not rerun the program when the MPLAB ICD 2 is in Debug mode 8 3 4 Command to program erase target memory failed Make sure that you have selected the appropriate Bus Width and Osci
57. SM PRR RAR RR RRE RRE kkk list p 18f452 include p18f452 inc Reset_Vector Put a GOTO at code 0x0 reset address goto Start Start code 0x0002A Start app beyond vector area clrf PORTB Clear PORTB clrf TRISB PORTB all outputs display 4 MSB s of A D result on LEDs movlw B 01000000 Fosc 8 A D enabled movw ADCONO movlw B 00001110 Left justify 1 analog channel movwt ADCON1 VDD and VSS ref s movlw B 11000111 TMRO prescaler 1 256 movw TOCON Main btfss INTCON TMROIF Wait for Timer0 to timeout goto Main bcf INTCON TMROIF bsf ADCONO GO Start A D conversion DS51331B page 64 2005 Microchip Technology MPLAB ICD 2 Tutorial Wait btfss PIR1 ADIF Wait for conversion goto Wait to complete swapf ADRESH W Swap A D result nibbles andlw Ox0f Mask off lower 4 bits movw PORTB Write A D result to PORTB Clret PORTB WaitPush Pause while switch btfss PORTA 4 jis pressed goto WaitPush movwf PORTB goto Main Do it again end O 2005 Microchip Technology Inc DS51331B page 65 MPLAB ICD 2 User s Guide NOTES DS51331B page 66 O 2005 Microchip Technology AN MPLAB ICD 2 MICROCHIP USER S GUIDE Chapter 4 Advanced Usage 4 1 INTRODUCTION As you work with MPLAB ICD 2 to develop your application the
58. User s Guide FIGURE 3 13 PROGRAM HALTED AFTER BREAK gt CATUTAS2ATUTAS2 ASM Jay nop Start clrf PORTB Clear PORTB gt clrf 58 PORTB all outputs display 4 1158 5 of A D result on LEDs B 01000000 Fosc 8 A D enabled ADCONO B 00001110 Left justify 1 analog channel ADCON1 VDD and 1755 references B 11000111 TMRO prescaler 1 256 TOCON 10 Single step five times select Debugger gt Step or click the Step toolbar button to single step through the program The following line of code should be indicated when finished movlw B 11000111 TMRO prescaler 1 256 11 Examine the values of the registers ADCONO and ADCON1 in the Watch window Notice that ADCONO has a value of 40 HEX This corresponds to the binary value designated in the program but is this value correct A review of the PIC18F452 Data Sheet DS39564 section on A D indicates that the last bit should be a one not a zero to turn the A D module on To fix this bug change movlw B 01000000 Fosc 8 A D enabled to movlw B 01000001 Fosc 8 A D enabled 12 Select File gt Save to save the changes 13 Select Project gt Build All to rebuild the project A message will indicate that the program has been rebuilt The MPLAB ICD 2 must be reprogrammed for the changes to take effect DS51331B page 60 2005 Microchip Technology MPLAB ICD 2 Tutorial 14 Select Debugger gt Program to reprogram the MPLAB I
59. a web browser to view details on driver installation for the appropriate operating system See Section 2 3 1 Setting Up Communications for more information DS51331B page 96 2005 Microchip Technology Troubleshooting Tips 6 3 LINK ICD FIRMWARE Be sure that the latest version of firmware is loaded in the MPLAB ICD 2 Updated firmware can be downloaded with the MPLAB IDE software The latest production software should always be downloaded from the Microchip web site The version of firmware will determine which target PICmicro MCUs are supported See the README file for the latest information on the firmware and on MPLAB ICD 2 6 4 LINK ICD TO TARGET PlCmicro DEVICE Verify that all lines are connected and that no other signals or components are interfering with ICD signals on VPP PGC and PGD If MPLAB ICD 2 s VDD and Vss lines are not connected to the target power and ground it will not work MPLAB ICD 2 can provide VDD to the target lt 200mA 5 volts only and to these output buffers when providing power to the target circuit selected by the Debugger gt Settings dialog Power tab Power target circuit from MPLAB ICD 2 Otherwise the target s VDD will be used VDD is sensed by MPLAB ICD 2 to check that voltage levels are correct Powering from the target VDD allows level translation for target low voltage operation A simplified circuit for the internal buffer circuits of MPLAB ICD 2 is shown in Figure 6 2
60. aestro dsPICDEM dsPICDEM net dsPICworks ECAN ECONOMONITOR FanSense FlexROM fuzzyLAB In Circuit Serial Programming ICSP ICEPIC Linear Active Thermistor microPort MPASM MPLIB MPLINK MPSIM PICC PICkit PICDEM PICDEM net PICLAB PICtail PowerCal Powerlnfo PowerMate PowerTool rfLAB rfPICDEM Select Mode Smart Serial SmartTel Total Endurance and WiperLock 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 2005 Microchip Technology Incorporated Printed in the U S A All Rights Reserved 2 Printed on recycled paper DS51331B page ii 2005 Microchip Technology Inc AN MPLAB ICD 2 MICROCHIP USER S GUIDE Table of Contents Customer SUD 1 Chapter 1 MPLAB ICD 2 Overview 1 4 INtrOdUCtION aone eie ae E a 7 1 2 What is MPLAB ICD 2 0 0 6606 7 1 3 How MPLAB ICD 2 Helps You naseer 8 1 4 How MPLAB ICD 2 Works 006600666 00660006 8 1 5 Resources Used By MPLAB ICD 2 esee 18 Chapter 2 Getting Started 211100106116132 son aaee ai 27 2 2 MPLAB ICD 2 System Component 28 2 3 Installing and Configuring MPLAB IDE for MPEAB ICD 2 ai A 29 2 4 Applying POWE c occcoooccccccononoccncnonnnanoncnonnnnnnnnnnnncc
61. ally Connect at Enable disable autoconnect on startup Startup between MPLAB IDE and MPLAB ICD 2 Automatically download __ If checked the correct firmware for the firmware if needed selected device will automatically be down loaded to the MPLAB ICD 2 If unchecked you will be prompted before firmware is downloaded Messages Output to Debug File Enable disable the outputting of messages to a file Self Test Run Self Test Execute a self test on the MPLAB ICD 2 Self Test Results The results of the self test are displayed in Target VDD Module VPP MCLR Gnd MCLR VDD and MCLR VPP O 2005 Microchip Technology Inc DS51331B page 79 MPLAB ICD 2 User s Guide 5 4 2 Communication Tab This tab of the ICD Programmer dialog allows you to set how the MPLAB ICD 2 and the PC communicate COM Port Select the COM port COM1 COM2 COM3 or COMA4 for serial communications or USB for universal serial bus communications Default COM1 Baud Rate The initial COM port baud rate for MPLAB ICD 2 communications is 19200 After communications have been established you may wish to select the 57600 option for improved performance lf you have increased communication errors at this speed change back to the default Default 19200 5 4 3 Limitations Tab This tab of the ICD Programmer dialog allows you to view MPLAB ICD 2 limitations for your selected device Brief limitations are shown in the
62. appens obtain the original hex code from a file or a non protected device A A Se DS51331B page 40 O 2005 Microchip Technology Getting Started 2 7 5 3 ERASE BLANK CHECK A DEVICE From the Programmer menu or toolbar select the following items to erase and then blank check a device Erase Device Select Erase to erase the device memory Note Internal oscillator and bandgap calibration bits are always preserved by MPLAB ICD 2 for the erase cycle Only during programming may their values be changed e Blank Check Select Blank Check to verify that the device is erased blank a SSS Sa 2005 Microchip Technology Inc DS51331B page 41 MPLAB ICD 2 User s Guide NOTES DS51331B page 42 O 2005 Microchip Technology AN MPLAB ICD 2 MICROCHIP USER S GUIDE Chapter 3 MPLAB ICD 2 Tutorial 3 1 INTRODUCTION This tutorial walks you through the process of developing a simple project using the sample program TUT452 asm found in the directory C Program Files Microchip MPASM Suite Example This program is an implementation of the PIC18F452 analog to digital A D converter using the PICDEM 2 Plus Demo Board DM163022 The program configures the A D module to convert input from A D channel O connected to the potentiometer on the demo board and display the results on the four PORTB LEDs RB3 RBO Topics covered in this chapter Setting Up The Environment Running the Projec
63. ation 3 Modifying Target Application Code and Rebuilding the Hex File 4 Finishing the Application Using MPLAB ICD 2 as a Programmer 5 Additional Programming Options 2 7 1 Programming the Target Processor for Debugging To program the application project s code into the MPLAB ICD 2 for debugging follow these steps 1 Select Debugger gt Settings and then click the Program tab to set the programming options for your application 2 Select Configure gt Configuration Bits and set the oscillator and other configuration bit settings appropriate to the target 3 Select Debugger gt Program to download your code and debug executive to the device in the application or demo board that is connected to the MPLAB ICD 2 Download time will depend on the memory used i e program memory EEPROM size of program and voltage 2 7 2 Debugging The Application To debug your code you must execute run it Real Time Execution Breakpoints Step Mode Execution Writing Data EEPROM DS51331B page 36 O 2005 Microchip Technology Getting Started 2 7 2 1 REAL TIME EXECUTION Real time execution occurs when the device in the demo application board is put in MPLAB IDE s Run mode When the MPLAB ICD 2 is run in real time instructions execute just as the processor would without the debugger While in the Run mode register displays on the screen will not update To execute the code in real time 1 Open the sour
64. ation Note To select External your device must sup port external memory and you must have enabled Use External Memory in the External Memory Settings dialog Configure gt External Memory If you receive a programming error due to an incorrect End address you need to perform a reconnect correct the End address and program again Note The address range does not apply to the Erase function The Erase function will erase all data on the device Preserve EEPROM on Program Program Memory Start End Full Range External Memory Start End 2005 Microchip Technology DS51331B page 82 ICD Function Summary TABLE 5 1 MANUAL SELECTION OPTIONS CONT Full Range Enter the full range of device program memory in hex TABLE 5 2 BOOTLOADER OPTIONS Enter your own bootloader or Browse for the file in User Memory Routines TABLE 5 3 AUTOMATIC OPTIONS Program after successful If the project builds successfully no errors build automatically program the device Run after successful If the device programs successfully no program errors run the program 5 4 6 Versions Tab This tab of the ICD Programmer dialog allows you to view the version numbers for MPLAB ICD 2 elements MPLAB ICD 2 Version PC software DLL version Firmware ICD operating system Firmware Type Device type for firmware Firmware Version ICD operating system version Bootloader Version ICD b
65. bar Halt or F5 Halt F5 Halt stop the execution of program code When you click Halt status information is updated Step Into F7 Single step through program code For assembly code this command executes one instruction single or multiple cycle instructions and then halts After execution of one instruction all the windows are updated For C code this command executes one line of C code which may mean the execution of one or more assembly instruction and then halts After execution all the windows are updated Note Do not step into a SLEEP instruction Step Over F8 Not available on MPLAB ICD 2 Performs the same as Step Into DS51331B page 74 2005 Microchip Technology ICD Function Summary Step Out Not available on MPLAB ICD 2 Reset F6 Issue a Reset sequence to the target processor This issues a MCLR to reset the Program Counter to the Reset vector If the processor is running it will continue running from the Reset vector address Breakpoints F2 Open the Breakpoint dialog Set multiple breakpoints in this dialog however only one breakpoint is enabled at a time Note You may also right click on a line of code to set a breakpoint Advanced Breakpoints Open the Advanced Breakpoint dialog Setup advanced breakpoint features for devices that support this ICD feature MPLAB ICD 2 Setup Wizard Launch the wizard to help you set up the MPLAB ICD 2 Program Download the debug executive mo
66. breakpoints and run If the target PICmicro MCU cannot be programmed correctly MPLAB ICD 2 will not be able to debug Figure 1 4 shows the basic interconnections required for programming Note that this is the same as Figure 1 2 but for the sake of clarity the VDD and Vss lines from MPLAB ICD 2 are not shown FIGURE 1 4 PROPER CONNECTIONS FOR PROGRAMMING Programming VDD Voltage MPLAB ICD 2 VeP MOLR Internal Circuits O 2005 Microchip Technology Inc DS51331B page 13 MPLAB ICD 2 User s Guide A simplified diagram of some of the internal interface circuitry of the MPLAB ICD 2 is shown For programming no clock is needed on the target PICmicro MCU but power must be supplied When programming MPLAB ICD 2 puts programming levels on VPP sends clock pulses on PGC and serial data via PGD To verify that the part has been programmed correctly clocks are sent to PGC and data is read back from PGD This conforms to the ICSP protocol of the PICmicro MCU under development 1 4 5 Requirements For Debug Mode To debug set breakpoints see registers etc with the MPLAB ICD 2 there are critical elements that must be working correctly MPLAB ICD 2 must be connected to a PC It must be powered by an external power supply or the PC via the USB cable and it must be communicating with MPLAB IDE software via the RS 232 or USB cable See the on line help for details The MPLAB ICD 2 must be connected as show
67. bug and or program your code 4 3 1 Creating a Hex File If you need to create your hex code MPLAB IDE offers a complete development environment To create a hex file in MPLAB IDE e Set up a project and related workspace to develop your application For information on using projects and workspaces please see MPLAB IDE Help Use MPLAB Editor to create or import source code Use language tools specified under the Project menu to assemble compile your source code into hex code 4 3 2 Loading a Hex File If you already have a hex code file that you would like to program into your device i e you have used a tool other than the MPLAB IDE to generate your hex code you may load the hex code to MPLAB IDE To load a hex file into MPLAB IDE e Use the File gt Import command DS51331B page 68 O 2005 Microchip Technology Advanced Usage 4 3 3 Hex File Requirements Whatever tool you use to develop your hex code please keep in mind the following Your code should be limited depending on the device because a portion of program memory on the device is reserved The start of EEPROM data memory needs to be specified For most PICmicro MCU s the start should be at 0x2100 org H 2100 For PIC18FXXXX devices the start should be at 0500000 org H F00000 Please check the programming specification for your selected device to determine the correct address 4 4 SPECIAL LINKER SCRIPT FILES MPLAB IDE provides
68. bugger gt Reset The first instruction should be indicated with a green arrow 7 Open a new Watch window to watch the A D register value change as the program executes Select View gt Watch The Watch dialog opens with the Watch_1 tab selected Select ADCONO from the list next to Add SFR and then click the button ADCONO is added to the Watch window Repeat for ADCON1 The selected symbols should now be visible in the Watch window as shown in Figure 3 12 DS51331B page 58 O 2005 Microchip Technology MPLAB ICD 2 Tutorial FIGURE 3 12 WATCH WINDOW ia Quay Add SFR ADCON1 El Add Symbol _18F452 J Address Symbol Name Value OFC2 ADCONO 00 OFC1 ADCON1 00 Watch1 Watch2 Watch 3 Watch 4 8 Inthe TUT452 asm source code set a breakpoint at the first instruction after Start Highlight or place the cursor in the following line of code from TUT452 asm clrf PORTB Clear PORTB Right click to display a shortcut menu Select Set Breakpoint from the shortcut menu This line will now be marked as a breakpoint 9 Select Debugger gt Run or click the Run toolbar button to run the program in Real Time mode This time the program will stop after it executes the breakpoint line of code and the instruction after the breakpoint will be indicated as shown in Figure 3 13 e o O 2005 Microchip Technology Inc DS51331B page 59 MPLAB ICD 2
69. ce file double click on the file name in the Project Window or use File gt Open or program memory window View gt Program Memory for viewing 2 Select Debugger gt Run or click the toolbar Run button The processor will run until a breakpoint is reached or until the processor is halted by selecting Debugger gt Halt or clicking the toolbar Halt button 2 7 2 2 BREAKPOINTS Breakpoints allow you to specify conditional program halts so that you may observe memory register or variable values after a run time execution You may set breakpoints in either the file editor window the program memory window or the disassembly window You may set a breakpoint using either Right mouse button menu click on the line in code at which you wish to set a breakpoint and select Set Breakpoint Breakpoint dialog open the dialog and enter a breakpoint at a specific address Note For most devices only one breakpoint will be set active at a time although you may specify more than one breakpoint in the breakpoint dialog i e one breakpoint will be active and the others will be inactive Breakpoints are a function of the MPLAB IDE and discussed in more detail in documentation for that tool 2005 Microchip Technology Inc DS51331B page 37 MPLAB ICD 2 User s Guide Advanced breakpoints are a function of the MPLAB ICD 2 For more information see Section 5 6 Advanced Breakpoints Dialog 2 7 2 3 STEP
70. cessarily valid and writes to these two pins will be ignored In addition if interrupts are enabled for changes on Port B signals on PGC and PGD will not cause an interrupt 8 2 15 Q Why are the timers behaving erratically when single stepping A This is one of the drawbacks of using the in circuit debugger Since code is actually running in the debug executive timers can continue to run during the operation of the debug executive even when the user s application program is halted 8 2 16 Q Why am I getting warnings and errors when using the PIC12F629 675 or PIC16F630 676 A The GP1 RA1 pins on these parts cannot be pulled high while using MPLAB ICD 2 Refer to the MPLAB ICD 2 Header document for more information on using ICD 2 for these parts DS51292 8 2 17 Q What would make the power and busy LED blink on and off A This may indicate that the target MPLAB ICD 2 connector is wired backwards opposite from the wiring diagram The blinking indicates that the MPLAB ICD 2 is shutting down due to high current The following tests indicate that the target is connected backwards Look for blinking Power and Busy LEDs power may go out altogether Ea DS51331B page 112 O 2005 Microchip Technology General Troubleshooting e Execute a Self Test and look for a min error on MCLR VPP all other tests will probably pass Use the default address range for the target controller and execute a
71. chip 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 e 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 IDE Project Manager MPLAB Editor and MPLAB SIM simulator as well as general editing and debugging features Programmers The latest information on Microchip pro grammers These include the MPLAB PM3 and PRO MATE Il device programmers and the PICSTART Plus and PICkit 1 development programmers
72. d Rate For a serial port select a baud rate of 19200 or 57600 Note You may wish to try the higher baud rate to see if you can communicate at this speed If you experience errors return to the lower baud rate Click Next to continue XX DS51331B page 84 2005 Microchip Technology ICD Function Summary 5 5 3 Setup Wizard Select Target Power Step 2 Select target power source Choose from where the target board will get its power Target has own power supply The target board will use its own power supply Power target from the MPLAB ICD 2 You may use the MPLAB ICD 2 to power the target board as long as MPLAB ICD 2 has a power supply the USB cannot provide enough power for both the MPLAB ICD 2 and a target board Target board power requirements are within what the MPLAB ICD 2 provide Click Next to continue 5 5 4 Setup Wizard Enable Auto Connect Step 3 Enable autoconnection Set up MPLAB IDE to automatically connect to MPLAB ICD 2 on project start up MPLAB IDE automatically connects to MPLAB ICD 2 Check to connect on project start up Uncheck to connect manually i e using Debugger gt Connect CAUTION If there is a device other than the MPLAB ICD 2 on the port when you autoconnect damage to that device may result Click Next to continue 2005 Microchip Technology Inc DS51331B page 85 MPLAB ICD 2 User s Guide 5 5 5 Setup Wizard
73. do many things that were previously done only with more expensive hardware but the cost benefits come with a trade off of some of the conveniences of an in circuit emulator If users are willing to design their application to be ICD compatible they can enjoy the benefits of a low cost hardware debugger A OOOO ee DS51331B page 8 O 2005 Microchip Technology MPLAB ICD 2 Overview As opposed to an ICE some of the requirements of the in circuit debugger are The in circuit debugger requires exclusive use of some hardware and software resources of the target The target PICmicro 9 MCU must have a functioning clock and be running The ICD can debug only when all the links in the system are fully functional An emulator provides memory and a clock and can run code even without being connected to the target application board During the development and debugging cycle an ICE provides the most power to get the system fully functional whereas an ICD may not be able to debug at all if the application does not run On the other hand an in circuit debug connector can be placed on the application board and connected to an ICD even after the system is in production allowing easy testing debugging and reprogram ming of the application Even though an ICD has some drawbacks in comparison to an ICE in this situation it has some distinct advantages Aconnection to the application after the production cycle does not require
74. dule if selected in Program tab and your code to the target device Read Read target memory Information uploaded to MPLAB IDE Abort Operation Abort any programming operation e g program read etc Terminating an operation will leave the device in an unknown state Connect Establish communications between the MPLAB ICD 2 and PC Download ICD2 Operating System Download MPLAB ICD 2 operating system 2005 Microchip Technology Inc DS51331B page 75 MPLAB ICD 2 User s Guide Settings Opens the MPLAB ICD 2 Settings dialog Set up communication output file power and program options Also find out information about the current system configuration and device limitations 5 2 2 Toolbars When the MPLAB ICD 2 is selected as a debugger these toolbars are displayed in MPLAB IDE Standard debug toolbar Run Halt Step Into Step Over Reset See MPLAB IDE Help for more information MPLAB ICD 2 debug toolbar Program Target Device Read Target Device Reset and Connect to ICD 5 2 3 Right Mouse Button Menus The following will appear on the right mouse menus in code displays such as program memory and source code files Set Remove Breakpoint Set or remove a breakpoint at the currently selected line Enable Disable Breakpoint Enable or disable a breakpoint at the currently selected line Breakpoints Remove enable or disable all breakpoints Run To Cursor Run the program to the current cur
75. e target device MPLAB ICD 2 will execute a verify function after programming to confirm that the data in the target PICmicro MCU matches the MPLAB ICD 2 program memory Programmer gt Verify can also be selected manually to compare the target PICmicro MCU s memory with the MPLAB IDE image If the target PICmicro MCU has AVDD and AVss ensure that they are connected properly These lines should be connected to power VDD and ground Vss respectively Consult the device data sheet for details MPLAB ICD 2 will not operate if any of these are available and not connected Make sure that Low Voltage Programming is disabled Configure gt Configuration Bits 6 8 LINK DEBUG EXECUTIVE When using the Debugger gt Program function from MPLAB IDE the debug executive will be downloaded and the in circuit debug registers in the target PICmicro MCU will be enabled Program ming should always be done from the Debug menu not the Programmer menu when debugging When programming from the Programmer menu after turning MPLAB ICD 2 off as a debugger the debug executive will not be downloaded and the in circuit debug registers will be disabled By looking at the Configure gt Configuration Bits menu selection it can be determined whether MPLAB is going to download the debug executive If the bits labeled Background Debug are enabled then the debug executive will be downloaded when the device is programmed DS51331B page 100 2005 Microchip T
76. echnology Troubleshooting Tips 6 9 LINK IN CIRCUIT DEBUG REGISTERS Make sure that debug is enabled on the MPLAB ICD 2 dialog in MPLAB IDE before programming a device By looking at the Configure gt Configuration Bits dialog it can be verified that the in circuit debug registers are enabled The line labeled Back ground Debug should say Enabled Programming should be done from the Debug menu not the Programmer Menu 6 10 LINK IN CIRCUIT DEBUG RESOURCES Look at the specific registers used for a device in the on line help The file registers or program memory areas reserved by MPLAB ICD 2 can not be used If using the xxxxxi 1kr linker script name ends in i then unless the script has been modified these resources will be marked reserved and will not be available to the application If the linker is not being used use CBLOCK or EQUs for variable storage in the code make sure that registers required by MPLAB ICD 2 are not used The in circuit debugger will not work if code protect or table read protect is enabled if the Watchdog Timer is running or if the oscillator is not set to the correct mode by the configuration bits If using fast interrupts or the CALL FAST instruction MPLAB ICD 2 uses the shadow stack and users will not be able to exit properly from the fast interrupt routine or CALL FAST function 2005 Microchip Technology Inc DS51331B page 101 MPLAB ICD 2 User s Guide NOT
77. ed with an R in register displays windows in MPLAB IDE represent reserved registers Select the PIC18X device you are using to see the reserved resources e PIC18CXXX FXXX PIC18F1XXX Devices e PIC18F2XXX 4XXX Devices e PIC18F6XXX 8XXX Devices 1 5 3 1 PIC18CXXX FXXX PIC18F1XXX DEVICES Below are the program and data memory resources used by MPLAB ICD 2 for PIC18CXXX FXXX devices Device Program Memory Used File Registers Used PIC18C601 0x1FFE00 0x1FFFFF 0x3F4 0x3FF PIC18C801 Boot RAM PIC18F242 0x3DC0 0x3FFF 0x2F4 0x2FF PIC18F248 PIC18F442 PIC18F448 PIC18F252 0x7DCO0 0x7FFF Ox5F4 0x5FF PIC18F258 PIC18F452 PIC18F458 Below are the program and data memory resources used by MPLAB ICD 2 for PIC18F1XXX devices Device Program Memory Used File Registers Used PIC18F1220 Ox0E40 0x0FFF OxF0 0xFF PIC18F1320 0x1E40 0x1FFF O 2005 Microchip Technology Inc DS51331B page 23 MPLAB ICD 2 User s Guide PIC18F2XXX 4XXX DEVICES 1 5 3 2 Below are the program and data memory resources used by MPLAB ICD 2 for PIC18F2XXX 4XXX devices 0x1F4 0x1FF 0x2F4 0x2FF 0x2F4 0x2FF 0x5F4 0x5FF 0x2F4 0x2FF 0x3F4 0x3FF 0x2F4 0x2FF 0x5F4 0x5FF OxEF4 OxEFF 0x5F4 0x5FF OxEF4 OxEFF 0x5F4 0x5FF 0x3F4 0x3FF 0x5F4 0x5FF OxCF4 0xCFF OxEF4 OxEFF OxCF4 0xCFF Program Memory Used File Registers Used 0x0DC0 0x0FFF 0x1DC0 0x1 FFF 0x1DC0 0x1 FFF Ox0DCO 0x0FFF 0x1DC0 0x
78. en caused by other connections or components on these critical lines that interfere with the operation of MPLAB ICD 2 as discussed in Section 1 4 3 1 4 3 Circuits That Will Prevent MPLAB ICD 2 From Functioning Figure 1 3 shows the active MPLAB ICD 2 lines with some components that will prevent MPLAB ICD 2 from functioning FIGURE 1 3 IMPROPER CIRCUIT COMPONENTS VPP MCLR Specifically these guidelines must be followed No pull ups on PGC PGD they will divide the voltage levels since these lines have 4 7KQ pull down resistors in MPLAB ICD 2 No capacitors on PGC PGD they will prevent fast transitions on data and clock lines during programming and debug communications No capacitors on MCLR they will prevent fast transitions of VPP A simple pull up resistor is generally sufficient DS51331B page 12 2005 Microchip Technology MPLAB ICD 2 Overview e No diodes on PGC PGD they will prevent bidirectional communication between MPLAB ICD 2 and the target PICmicro MCU 1 4 4 Debug Mode There are two steps to using MPLAB ICD 2 as a debugger The first requires that an application be programmed into the target PICmicro MCU The second uses the internal in circuit debug hardware of the target Flash PICmicro MCU to run and test the application program These two steps are directly related to the MPLAB IDE operations 1 Programming the code into the target 2 Using the debugger to set
79. extraction of the microcontroller in order to insert an ICE probe The ICD can re program the firmware in the target application without any other connections or equipment Note An ICE uses custom hardware to emulate the target microcontroller An ICD uses hardware on the target microcontroller to do some of the functions of an ICE An ICD also employs software running on the target to do ICE like functions and as a result relies upon the target microcontroller for some memory space CPU control stack storage and I O pins for communication 2005 Microchip Technology Inc DS51331B page 9 MPLAB ICD 2 User s Guide 1 4 2 Modular Interface Connections MPLAB ICD 2 15 connected to the target PICmicro MCU with the modular interface cable a six conductor cable The pin numbering for the MPLAB ICD 2 connector is shown from the bottom of the target PC board in Figure 1 1 Note The ICD cable has mirror imaged connections on each end and connections on the MPLAB ICD 2 module are the opposite of connections shown here FIGURE 1 1 PIN NUMBERING FOR MODULAR CONNECTOR MPLAB ICD 2 Connector Figure 1 2 shows the interconnections of the MPLAB ICD 2 to the modular connector on the target board There are six pins on the ICD connector but only five are used The diagram also shows the wiring from the connector to the PICmicro MCU device on the target PC board A pull up resistor usually around 10k Ohm is
80. g is attached to the EEData whether a programmer or EEData Display will read back the entire range after each step in case the data was modified while running DS51331B page 120 2005 Microchip Technology General Troubleshooting 8 4 5 When single stepping the program runs too quickly OR some registers are not updated This is an upload of data issue See Section 8 4 3 When single stepping the program runs too slowly 8 4 6 When halting single stepping or stopping on a breakpoint MPLAB IDE seems to lock up Your program may not have locked up but may be running very slowly This is an upload of data issue See Section 8 4 3 When single stepping the program runs too slowly Also if you are using PIC16F87X device the first program memory location address 0x0000 must be a NOP instruction or you will not be able to single step past location zero 8 4 7 The following I O pins are not functioning correctly RB6 or RB7 These pins are reserved for debugging 8 4 8 One or more of my memory addresses Program or GPR is not correct Several GPR s and Program Memory locations are reserved for debugging 8 4 9 EEPROM window does not reflect changes In order to see the changes in the window you must do a read of the memory 8 4 10 Stack window does not reflect changes is blank This is a tool limitation See Chapter 11 Limitations 2005 Microchip Technology Inc DS51331B page 121 MPLAB
81. he VPP MCLR line to allow the target to run the target will start from address zero and execute until the program counter reaches the breakpoint address previously stored in the internal debug registers DS51331B page 16 2005 Microchip Technology MPLAB ICD 2 Overview After the instruction at the breakpoint address is executed the in circuit debug mechanism of the target PICmicro MCU fires and transfers the PICmicro MCU s program counter to the debug executive much like an interrupt and the user s application is effectively halted MPLAB ICD 2 communicates with the debug executive via PGC and PGD gets the breakpoint status information and sends it back to the MPLAB IDE The MPLAB IDE then sends a series of queries to MPLAB ICD 2 to get information about the target PICmicro MCU such as file register contents and the state of the CPU These queries are ultimately performed by the debug executive The debug executive runs just like an application in program memory It uses some locations on the hardware stack usually just one or two and typically about fourteen file registers for its temporary variables If the PICmicro MCU does not run for whatever reason such as no oscillator a faulty power supply connection shorts on the target board etc then the debug executive cannot communicate to MPLAB ICD 2 and MPLAB IDE will issue an error message Another way to get a breakpoint is to press the MPL
82. he PICmicro MCU for calibration data will be read and preserved by MPLAB ICD 2 when erasing programming and debugging No action is required to protect this data 8 2 11 Q Why am getting erratic values from my EEData area A MPLAB ICD 2 can read the EEData areas directly without going through the EECON register s required TABLRD sequence of instructions The buffers that MPLAB uses can sometimes interfere with the user s code Avoid going back and forth from program reads of data to MPLAB ICD 2 reads of the EEData area when single stepping code 8 2 12 00 Why does my program keep resetting A Check the configuration bits settings Configure gt Configuration Bits for your selected device Some reset functions such as Watchdog Timer Reset are enabled by default 8 2 13 Q Why is Erase All Before Programming grayed out A In some of the newer Flash parts the programming algorithm requires that non contiguous areas of program memory are programmed in banks For these parts all memory must be erased before programming 2005 Microchip Technology Inc DS51331B page 111 MPLAB ICD 2 User s Guide 8 2 14 Q Can my program read and write from Port B or GPIO without interfering with MPLAB ICD 2 A Yes When the in circuit debug facilities are enabled PGC and PGD are always used by MPLAB ICD 2 and user code that reads or writes from PORT B will not interfere Note that the values read from PGC and PGD are not ne
83. ice must support external memory and you must have enabled Use External Memory in the External Memory Settings dialog Configure gt External Memory Program Options Freeze on Halt Set clear all peripherals to freeze on halt Erase all before Check to erase all memory before programming Program begins Unless programming new or already erased devices it is important to have this box checked If not checked the device is not erased and pro gram code will be merged with the code already in the device 2005 Microchip Technology Inc DS51331B page 81 MPLAB ICD 2 User s Guide TABLE 5 1 MANUAL SELECTION OPTIONS CONT Check to keep EEPROM memory on target from being overwritten on programming Target EEPROM memory values are read into MPLAB IDE erased from the target and then written back to the target Uncheck to use EEPROM checkbox functionality under Memories The starting and ending hex address range in program memory for programming reading or verification If you receive a programming error due to an incorrect End address you need to perform a reconnect correct the End address and program again Note The address range does not apply to the Erase function The Erase function will erase all data on the device Enter the full range of device program memory in hex The starting and ending hex address range in program memory for programming reading or verific
84. indow and select Build All from the popup menu MPASM assembler always makes a hex file with the same name as the source asm file FIGURE 3 7 OUTPUT WINDOW CO ls Build Version Control Find in Files MPLAB ICD 2 Clean Deleting intermediary and output files Clean Done Executing C Program Files MPLAB IDE MCHIP_Tools mpasmwin exe q p18F452 TUT 452 ASM Executing C Program Files MPLAB IDE MCHIP_Toolsimplink exe C Program Files MPLAB MPLINK 3 60 02 Linker Copyright c 2004 Microchip Technology Inc Errors 0 MP2COD 3 60 02 COFF to COD File Converter Copyright c 2004 Microchip Technology Inc 0 Errors E MP2HEX 3 60 02 COFF to HEX File Converter Copyright c 2004 Microchip Technology Inc Errors 0 Loaded DAProjects321PIC18F452 Tut452 cof BUILD SUCCEEDED Thu Mar 18 14 18 49 2004 2005 Microchip Technology Inc DS51331B page 51 MPLAB ICD 2 User s Guide 3 6 SETTING DEBUG OPTIONS Before you begin debugging your code you will need to set up or check the default settings of several items 3 6 1 Configuration Bits To set configuration bits to be programmed into the device select Configure gt Configuration Bits By clicking on the text in the Settings column these can be changed In this dialog the following configuration bits should be set for this tutorial e Oscillator EC OS2 as RA6 this is for PICDEM 2 Plus if using a
85. ing Firmware ou 46 ST E EEE AE A T 28 Drivers iaa 96 108 P E E A E ia tacts nace 108 V O 11 AY o O 40 77 W Register te aii 113 Watch Window 666666006666060 58 Watchdog 001010000010 14 Web Site Microchip 3 Windows Device Manager 108 Y Yellow Lights ick deel aon ted na 31 DS51331B page 136 2005 Microchip Technology Index NOTES O 2005 Microchip Technology Inc DS51331B page 137 MICROCHIP Worldwide Sales and Service Malaysia Penang Tel 604 646 8870 Fax 604 646 5086 Philippines Manila Tel 011 632 634 9065 Fax 011 632 634 9069 Singapore Tel 65 6334 8870 Fax 65 6334 8850 Taiwan Kaohsiung Tel 886 7 536 4818 Fax 886 7 536 4803 Taiwan Taipei Tel 886 2 2717 7175 Fax 886 2 2545 0139 Taiwan Hsinchu Tel 886 3 572 9526 Fax 886 3 572 6459 Thailand Bangkok Tel 66 2 694 1351 Fax 66 2 694 1350 EUROPE Austria Weis Tel 43 7242 2244 399 Fax 43 7242 2244 393 Denmark Ballerup Tel 45 4450 2828 Fax 45 4485 2829 France Massy Tel 33 1 69 53 63 20 Fax 33 1 69 30 90 79 Germany Ismaning Tel 49 89 627 144 0 Fax 49 89 627 144 44 Italy Milan Tel 39 0331 742611 Fax 39
86. ing the steps in Section 4 2 Upgrading the MPLAB ICD 2 Firmware Operating System DS51331B page 46 2005 Microchip Technology MPLAB ICD 2 Tutorial 3 3 RUNNING THE PROJECT WIZARD The MPASM assembler will be used in this project 1 To set up the first project select Project gt Project Wizard 2 Proceed to the second dialog of the wizard The PIC18F452 should be selected 3 Proceed to the next dialog of the wizard to set up MPASM assembler as the language tool In the Active Toolsuite pull down select Microchip MPASM Toolsuite Make sure that the tools are set to the proper executables by default located in the directory C Program Files Microchip MPASM Suite MPASM assembler should be pointing to mpasmwin exe MPLINK linker should be pointing to mplink exe and MPLIB librarian should be pointing to mplib exe FIGURE 3 3 WIZARD TOOLSUITE DIALOG x Step Two B Select a language toolsuite Active Toolsuite Microchip MPASM Toolsuite Toolsuite Contents Assembler mpasmwin exe MPLINK Object Linker mplink exe MPLIB Librarian mplib exe U0 OY Location C Program Files Microchip MPASM Suite MPAsmWin exe Browse Help My Suite Isn t Listed J Show all installed toolsuites coca 4 Proceed to the next dialog of the wizard to give a name and location to your project You may Browse to find a location O 2005 Microchip Technology Inc
87. itations and may not be suitable for production work but is released for preliminary use with MPLAB ICD 2 2 3 4 Set MPLAB ICD 2 as the Debug Tool Select Debugger gt Select Tool gt MPLAB ICD 2 to choose MPLAB ICD 2 as the debug tool The Debugger menu and MPLAB IDE toolbar will change to display debug options once the tool is selected Also the Output window will open and messages concerning ICD status and communications will be displayed on the MPLAB ICD 2 tab Note MPLABICD 2 may be selected as either a debug tool Debugger Menu or a programmer Programmer menu Do not select both 2 3 5 Configure the Interface Go to the Debugger gt Settings Communications tab to select the USB interface or the correct COM port for RS 232 communications 2005 Microchip Technology Inc DS51331B page 31 MPLAB ICD 2 User s Guide 2 4 APPLYING POWER There are a number of configurations for powering MPLAB ICD 2 and the target The following are configuration essentials When using the USB connection MPLAB ICD 2 can be powered from the PC but a power supply must be connected to the target When using the RS 232 connection to the PC MPLAB ICD 2 must have a power supply connected to it When MPLAB ICD 2 has its own power supply it can provide a limited amount of current up to 200 mA at five volts to a small target board MPLAB ICD 2 cannot be powered from the target board Power should be applied to MPLAB I
88. llator settings for the device you are programming 8 3 5 Programming error occurs when programming a range of memory on PIC18C601 801 For the PIC18C601 801 you need to align the End Address 1 so it can be divided by 8 For example Ox7FF or Ox1FFF7 If you receive a programming error due to an incorrect End Address you need to perform a reconnect correct the End Address and select Program again 2005 Microchip Technology Inc DS51331B page 117 MPLAB ICD 2 User s Guide Changing Serial Port Settings Complete the following steps to change the Flow Control and FIFO settings for a serial communications port on a PC running the Windows operating system Windows 98 ME 1 On your PC select Start gt Settings gt Control Panel 2 Inthe Control Panel double click the System Icon 3 Inthe Systems Properties dialog click the Device Manager tab 4 If necessary expand the Ports selection by clicking the sign next to it 5 Double click the I O port to which the MPLAB ICD 2 is connected 6 Inthe Flow Control field select Hardware 7 Click the Advanced button deselect the Use FIFO box and click OK 8 Reboot the PC to implement the change Windows NT Note You may need administrator privileges on your computer to change these settings 1 On your PC select Start gt Settings gt Control Panel 2 Inthe Control Panel double click the Ports Icon 3 Double click the I O port to which the MPL
89. lt to PORTE clrf PORTE WaitPush Pause while switch is pressed btfss 4 goto WaitPush movwf PORTB goto Main Do it again end 4 Select Debugger gt Run or click the Run toolbar button to run the program once again in Real Time mode A breakpoint stops a program s execution when the program executes the line marked as a breakpoint However the sample program is not halting 5 Select Debugger gt Halt or click the Halt button on the toolbar to halt the program now In the source code window the sample program will have halted on one of the two lines in the Wait routine as shown in Figure 3 11 at the arrow 2005 Microchip Technology Inc DS51331B page 57 MPLAB ICD 2 User s Guide FIGURE 3 11 PROGRAM HALTED gt CATUTAS2VTUTAS2 ASM Quay bsf ADCONO GO Start A D conversion Wait btfss PIRI ADIF Wait for conversion to complete gt goto Wait swapf ADRESH W Swap A D result nibbles andlw 0 Mask off lower 4 bits O mourf PORTE Write A D result to PORTE clrf PORTE WaitPush Pause while switch is pressed btfss PORTA 4 goto WaitPush Based on the halt location and the fact that the program never reaches the breakpoint it can be concluded that the problem is in the A D conversion The A D flag for conversion complete is not being set A D conversion initialization and setup occurs at the beginning of the program 6 To reset the program select De
90. mentation 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 ey 2005 Microchip Technology Inc DS51331B page 1 MPLAB ICD 2 User s Guide INTRODUCTION The support information discussed here can help you when using the MPLAB ICD 2 in circuit debugger Topics covered in this chapter e Reference Documents The Microchip Web Site Development Systems Customer Change Notification Contact Information REFERENCE DOCUMENTS This document describes how to use MPLAB ICD 2 Other useful documents are listed below MPLAB ICD 2 Design Advisory DS51566 Please read this first Contains important information about using the MPLAB ICD 2 with your target design Readme for MPLAB ICD 2 For the latest information on using MPLAB ICD 2 read the Readme for MPLAB ICD 2 txt file an ASCII text file in the MPLAB IDE directory The README file contains update information and known issues that may not be included in this on line help file Using MPLAB ICD 2 DS51265 A poster showing
91. n to the VPP PGC and PGD pins of the target PICmicro MCU with the modular interface cable or equivalent VSS and VDD are also required to be connected between the MPLAB ICD 2 and target PICmicro MCU The target PICmicro MCU must have power and a functional running oscillator If the target PICmicro MCU does not run for whatever reason MPLAB ICD 2 cannot debug The target PICmicro MCU must have its configuration words programmed correctly The oscillator configuration bits should correspond to RC XT etc depending upon the target design The target PICmicro MCU must not have the Watchdog Timer enabled The target must not have code protection enabled The target must not have table read protection enabled DS51331B page 14 2005 Microchip Technology MPLAB ICD 2 Overview Once the above conditions are met you may proceed to the ollowing e Sequence of Operations Leading to Debug Mode Debug Mode Details 1 4 5 1 SEQUENCE OF OPERATIONS LEADING TO DEBUG MODE Given that the Requirements For Debug Mode are met these actions can be performed when MPLAB ICD 2 is set as the current debugger Debugger gt Select Tool When Debugger gt Program is selected the application code is programmed into the PICmicro MCU s memory via the ICSP protocol as described above A small debug executive program is loaded into the high area of program memory of the target PICmicro MCU Since the debug executi
92. nal Breakpoint Setup In addition to breakpoint memory setup you may select the following Break on Stack Over Underflow Break on stack overflow or underflow e Pass Count For the breakpoint set above break for the entered pass count value 0 255 5 6 3 Extended PIC18F Devices V2 The Advanced Breakpoints Dialog for Extended PIC18F devices version 2 contains the following options 5 6 3 1 BREAKPOINT PARAMETERS These options apply to the breakpoint specified in Breakpoint Breakpoint Number These devices support up to three breakpoints Enter a number and then set up that breakpoint below Change the number to set up another breakpoint Breakpoint is in Program Memory Check this checkbox if the breakpoint will be located in program memory Then enter the Program Memory Address as the location of the breakpoint O 2005 Microchip Technology Inc DS51331B page 89 MPLAB ICD 2 User s Guide Breakpoint is in File Registers Check this checkbox if the breakpoint will be located in data memory file registers Then e Read Access Write Access Specify file register access File Register Address Enter location of breakpoint e File Register Value If File Register Must be Equal to Following Value check the checkbox and then enter File Register Value Additional Breakpoint Setup In addition to the above breakpoint setup you may select the following at the bo
93. ncluding code protect Watchdog Timer enabled and table read protect Note A header board is required to debug smaller pin count parts with the MPLAB ICD 2 These parts can be programmed without the header by connecting the VPP PGC and PGD lines as described previously 1 5 RESOURCES USED BY MPLAB ICD 2 Due to the built in in circuit debugging capability of ICD devices and the ICSP function offered by the debugger the MPLAB ICD 2 uses the following on chip resources when debugging e Resources Used for PIC10F 12F Devices Resources Used for PIC16F Devices e Resources Used for PIC18X Devices e Resources Used for dsPIC30F Devices DS51331B page 18 2005 Microchip Technology MPLAB ICD 2 Overview 1 5 1 Resources Used for PIC10F 12F Devices General Device Resources MCLR pin reserved for debugging except for ICD devices i e you cannot use this pin as digital I O while debugging MCLR VPP shared for programming GPO and GP1 reserved for programming and in circuit debugging Therefore other functions multiplexed on these pins will not be available during debug One stack level not available Program and Data Memory Resources The MPLAB ICD 2 uses the following program memory file regis ter and data memory locations in the target device In MPLAB IDE registers marked with an R in register displays represent reserved registers Device Program Memory Used File Registers Used
94. ng of an 8 byte block and the End Address is set to the end of an 8 byte block For example a Start Address of 0x10 and an End Address of 0x1F 2005 Microchip Technology Inc DS51331B page 119 MPLAB ICD 2 User s Guide 8 4 2 Can t uncheck programming of configuration bits in Debug mode For MPLAB ICD 2 to function in Debug mode the ICD must ensure that the Background Debug configuration bit is pro grammed on the target Therefore configuration memory is always programmed when in Debug mode 8 4 3 When single stepping the program runs too slowly Upload of Data Issue Data is uploaded from the MPLAB ICD 2 depending on the amount of data displayed in the IDE i e the size and amount of open debug windows e If your program is running slow consider closing some windows or using Watch windows to view specific registers If not all register data is being updated you probably do not have all the registers visible when you run step That is if you step then scroll to find a register it will not have the updated data from the step execution 8 4 4 Single Stepping Slow when Programmer Enabled If you have a programmer enabled when using MPLAB ICD 2 to debug a part with EEData your stepping through code will be very slow Disable the programmer to speed up stepping time The slowdown occurs because the programmer must attach to the entire range of EEData so it can be programmed The debugger seeing that somethin
95. nnnnnnns 32 2 5 Connection Options 006 34 2 6 Setting Up the Environment sses 34 2 7 MPLAB ICD 2 Development Process 06600060 36 Chapter 3 MPLAB ICD 2 Tutorial 3 1 Introduction m0 43 3 2 Setting Up The Environment oooocconoccccnoccccnnacininnncnnnnnno 44 3 3 Running the Project Wizard 47 3 4 Viewing the Project 50 3 5 Creating a Hex File 51 3 6 Setting Debug Options 0 00 6600 6600 52 3 7 Setting Up the Demo Board 0 6000 600660 54 3 8 Loading Program Code For Debugging s 54 3 9 Running TUT452 oo 6606 55 3 10 Debugging TUT452 006666600666660 000666000066600 0 56 2005 Microchip Technology Inc DS51331B page iii MPLAB ICD 2 User s Guide 3 11 Programming the Application 61 3 12 TUT452 Main Routine and Source Code seeeseee 62 Chapter 4 Advanced Usage Al Introduction ardid 67 4 2 Upgrading the MPLAB ICD 2 Firmware Operating System ococonncccnnnccconocccconaccnonacaninrnc non no nonnncannnos 67 4 3 Creating Loading a Hex File 68 4 4 Special Linker Script Files 69 4 5 ROMless Device Considerations
96. nother target change to match e OSC Switch Enable Disabled Power Up Timer Enabled Brown Out Detect Disabled Watchdog Timer Disabled e CCP2 MUX RC1 Stack Overflow Reset Disabled Low Voltage Programming Disabled All other configuration bits should be disabled 3 6 2 Programming Options To set program options select Debugger gt Settings and click on the Program tab AAA DS51331B page 52 O 2005 Microchip Technology MPLAB ICD 2 Tutorial FIGURE 3 8 MPLAB ICD 2 SETTINGS DIALOG PROGRAM TAB 2x Status Communication Limitations Power Program Versions Wamings Allow ICD 2 to select memories and ranges f Manually select memories and ranges Memories Program Options gt T Program M Freeze on Halt M Configuration M Erase all before Program FT EEPROM Preserve EEPROM on Program r Program Memory T hex Stat CS EF Ee E era Oe A Bits Full Range Automatically T Program after successful build T Run after successful program OK Cancel Apply Help The Memories section should have Program checked and EEPROM and ID unchecked When using MPLAB ICD 2 as a debugger configuration bits will always be programmed and the Configuration box will be checked and grayed out e For the PIC18FXX2 devices all memory will be erased each time the chip is
97. o board turn the arrow on the potentiometer RAO Observe the LEDs If the program were working correctly the user would see a binary representation of the voltage value across the potentiometer However there is a bug in the TUT452 program Section 3 10 Debugging TUT452 will detail debugging the code and correcting it 4 Select Debugger gt Halt or click the Halt toolbar button to stop the program execution 5 Select Debugger gt Reset to reset the program 3 10 DEBUGGING TUT452 Any of the following can prevent the TUT452 program from working The A D converter value is not being properly written to PORTB LEDs The A D converter is not on or has not been set to convert A typing error in the source code is causing the program to function improperly To explore the first possibility set a breakpoint at the line of the file that writes the value of A D result to PORTE 1 Highlight or place the cursor on the following line of code from TUT452 asm movwf PORTB Write A D result to PORTB 2 Right click to display a shortcut menu 3 Select Set Breakpoint from the shortcut menu This line is now marked as a breakpoint B in red stop sign as shown in Figure 3 10 DS51331B page 56 O 2005 Microchip Technology MPLAB ICD 2 Tutorial FIGURE 3 10 SET BREAKPOINT Fr 2 CATUT452 TUT452 ASM uy swapf ADRESH W Swap A D result nibbles andlw Ox0f Mask off lover 4 bits movwf PORTE Write A D resu
98. oints The options are Both breakpoints must occur at the same time to cause a break e Breakpoint 0 1 does not break until after breakpoint 1 0 occurs Click Swap BPs to change the order 2005 Microchip Technology Inc DS51331B page 91 MPLAB ICD 2 User s Guide Select a breakpoint to set up either 0 or 1 Select the type of breakpoint Options below will change depending on the selection made here Disabled Breakpoint disabled default Other options grayed out Other Selections See tables below PROGRAM MEMORY Program Memory Execution TBLWT Program Memory TBLRD Program Memory PSV Read Enter the Program Memory Address of the breakpoint Enter the pass count type if desired Pass counting disabled default Event must occur pass count times Break occurs pass count instructions after event Enter a pass count value a number between 0 and 255 Breakpoints Breakpoint Breakpoint Type TABLE 5 4 Breakpoint Type Program Memory Address Pass Count Type Pass Count O 2005 Microchip Technology DS51331B page 92 ICD Function Summary TABLE 5 5 DATA MEMORY BYTE OR WORD Breakpoint Type X Bus Write Specific Byte X Bus Read Specific Byte Y Bus Read Specific Word X Bus Write Specific Word X Bus Read Specific Word Data Memory Enter the Data Memory Address of the Address breakpoint Data Value Specify a value that the Byte
99. ootloader version Debug Exec Version Debug executive module version 5 4 7 Warnings Tab This tab of the ICD Programmer dialog allows you to select which MPLAB ICD 2 warning messages you wish to display in the Output window This is useful for disabling warnings that you know you will ignore and do not want to view Click in the checkbox next to a warning in the list to alternately enable disable the warning Checked is enabled unchecked is disabled 2005 Microchip Technology Inc DS51331B page 83 MPLAB ICD 2 User s Guide 5 5 SETUP WIZARD A setup wizard is available from Debugger gt MPLAB ICD 2 Setup Wizard to help walk you through setting up your ICD e Setup Wizard Welcome e Setup Wizard Select a Port Setup Wizard Select Target Power Setup Wizard Enable Auto Connect Setup Wizard Enable Automatic OS Download Setup Wizard External Memory Setup Wizard Summary 5 5 1 Setup Wizard Welcome When you first select MPLAB ICD 2 as a debugger or programmer the MPLAB ICD 2 Setup Wizard will open Follow the dialogs in the MPLAB ICD 2 Wizard to set up MPLAB ICD 2 for use with MPLAB IDE Click Next to continue 5 5 2 Setup Wizard Select a Port Step 1 Select a communications method Select a communications port to which you will attach the ICD COM Port Select either a serial port COM1 COM4 or a USB port USB Bau
100. or Word must be equal to before breaking Pass Count Type Enter the pass count type if desired Pass counting disabled default Event must occur pass count times Break occurs pass count instructions after event Pass Count Enter a pass count value a number between O and 255 TABLE 5 6 DATA MEMORY Breakpoint Type Y Bus Read X Bus Write X Bus Read Data Memory Enter the Data Memory Address of the Address breakpoint Pass Count Type Enter the pass count type if desired Pass counting disabled default Event must occur pass count times Break occurs pass count instructions after event Pass Count Enter a pass count value a number between O and 255 As nn AAA O 2005 Microchip Technology Inc DS51331B page 93 MPLAB ICD 2 User s Guide NOTES DS51331B page 94 O 2005 Microchip Technology AN MPLAB ICD 2 MICROCHIP USER S GUIDE Chapter 6 Troubleshooting Tips 6 1 INTRODUCTION Since many things in MPLAB IDE MPLAB ICD 2 and the PICmicro MCU target application circuit can affect the operation of MPLAB ICD 2 it is important to understand the operation of each link in the chain of ICD functionality Figure 6 1 is a diagram showing the various links Each link must be functional for MPLAB ICD 2 to program and debug This section discusses these links to help find and fix problems if they occur FIGURE 6 1 CHAIN OF MPLAB ICD 2 FUNCTIONALITY
101. ory Ranges ID and Program Options Erase All If programming the ID bits is desired set the value to be programmed in the Configure gt ID Memory dialog Warning tab Determine which warning messages will be displayed Can be useful to select messages if they are to be outputted to a file see Status tab Status tab In addition to autoconnect on startup and self test control output messages may be selected to be logged to a file These messages may assist users or if necessary Microchip technical support in finding errors 2 6 2 Creating and Building a Project The easiest way to create a new project is to select Project gt Project Wizard With the help of the Project Wizard anew project and the language tools for building that project can be created The wizard will guide you through the process of adding source files libraries linker scripts etc to the various nodes on the project window See MPLAB IDE documentation for detailed steps on using this wizard After the project is created choose Project gt Build All to build the application This will create object code for the application that can be programmed into the target with MPLAB ICD 2 2005 Microchip Technology Inc DS51331B page 35 MPLAB ICD 2 User s Guide 2 7 MPLAB ICD 2 DEVELOPMENT PROCESS The development process with MPLAB ICD 2 consists of these steps 1 Programming the Target Processor for Debugging 2 Debugging The Applic
102. our project Yo 184481 kr E 184515 kr E 1814515_e kr E 181452 lkr E 1814525 kr Renove E 18 4525 elkr E 184539 E 181453911 B C Program Files MPLAB IDE MCH O C Program Files MPLAB IDE MCH Add gt gt 2 181458 Ikr 2 1864585 kr gt E 1814585_e Ikr A Check the box to copy the file to the project directory lt Back Cancel Help 7 Proceed to the Summary screen If you have made any errors click lt Back to return to a previous wizard dialog If everything is correct click Finish 2005 Microchip Technology Inc DS51331B page 49 MPLAB ICD 2 User s Guide VIEWING THE PROJECT 3 4 After exiting the wizard the MPLAB IDE desktop will again be visible Close all other windows on the desktop to see the Project PROJECT WINDOW E Tut452 mcp Source Files TUT452 45M Header Files Object Files Library Files Linker Scripts 18f452i lkr Other Files window FIGURE 3 6 Additional files can be added to the project using the project window Right click on any line in the project window tree to pop up a menu with additional options for adding and removing files 2005 Microchip Technology DS51331B page 50 MPLAB ICD 2 Tutorial 3 5 CREATING A HEX FILE To create a hex file for debugging select Project gt Build All or right click on the project name in the project w
103. p to the MPLAB ICD 2 but fails because a USB port or a COM port other than COM is being used allow the connection to fail The communications port will be setup in the next step 2 Select Debugger gt MPLAB ICD 2 Setup Wizard to set up ICD operation a Select a port COM or USB b Select target power supply c Enable auto connection feature d Enable automatic OS download feature e For ROMless devices set up external memory 3 Select Debugger gt Connect to connect to the MPLAB ICD 2 EEE Se 2005 Microchip Technology Inc DS51331B page 45 MPLAB ICD 2 User s Guide 3 2 2 Updating MPLAB ICD 2 Firmware Operating System Depending on the version of MPLAB IDE or the device selected a message may appear indicating that the firmware needs to be updated MPLAB IDE will automatically install new firmware The update dialog may look like this FIGURE 3 2 UPDATING MPLAB ICD 2 FIRMWARE ICD Wam0030 ICD2 is about to download a new operating system If MPLAB is just starting it will appear to hang at the splash screen Please be patient MPLAB will finish it s intialization after the OS is downloaded Note You may wish to select to ignore this warning in the future I Don t display this warning again OK Also since different MPLAB ICD 2 firmware is used for different families of devices this dialog may appear when switching to a different device The firmware can be manually changed by follow
104. programmed Therefore in the Program Options section Erase all before Program will have no effect O 2005 Microchip Technology Inc DS51331B page 53 MPLAB ICD 2 User s Guide The Program Memory addresses Start and End address set the range of program memory that will be read programmed or verified Click Full Range to set the address range to the maximum program memory available based on the device selected The end of program memory is adjusted to leave room for the MPLAB ICD 2 debug executive Programs cannot extend beyond this upper limit while using MPLAB ICD 2 as a debugger 3 7 SETTING UP THE DEMO BOARD Before beginning to debug make sure the PICDEM 2 Plus Demo Board is set up as follows EC OSC option has been selected using jumper J7 LEDs have been enabled using jumper 6 e Power is supplied 3 8 LOADING PROGRAM CODE FOR DEBUGGING Select Debugger gt Program to program TUT452 hex into the PIC18F452 in the PICDEM 2 Plus demo board Note The debug executive code is automatically programmed in upper program memory for MPLAB ICD 2 debug functions Debug code must be programmed into the target PICmicro MCU to use the in circuit debugging capabilities of the MPLAB ICD 2 Programming may take a couple of minutes During programming the MPLAB ICD 2 tab of the Output dialog shows the current phase of operation When programming is complete the dialog
105. se Back to return to the dialog you need and change the information Click Finish when you are satisfied with the MPLAB ICD 2 setup 5 6 ADVANCED BREAKPOINTS DIALOG In addition to the basic breakpoints that you may set right mouse menu and standard Breakpoint dialog MPLAB ICD 2 has an Advanced Breakpoints dialog Debugger gt Advanced Breakpoints The options on the Advanced Breakpoint Dialog are dependent on your selected device PIC18F Devices Regular PIC18F MCU devices e Extended PIC18F Devices V1 Version 1 extended PIC18F devices have an extended instruction set available for MPLAB C18 C compiler use that may be enabled through a configuration bit XINST Extended PIC18F Devices V2 Version 2 extended PIC18F devices have the version 1 extended instruction set as well as additional Breakpoint capabilities dsPIC Devices dsPIC DSC devices 5 6 1 PIC18F Devices The Advanced Breakpoints Dialog for PIC18F devices contains the following options Breakpoint is in Program Memory Check this checkbox if the breakpoint will be located in program memory Then enter the Program Memory Address as the location of the breakpoint O 2005 Microchip Technology Inc DS51331B page 87 MPLAB ICD 2 User s Guide Breakpoint is in File Registers Check this checkbox if the breakpoint will be located in data memory file registers Then Read Access Write Access Specify file register access
106. se are some additional topics that you may find useful Topics covered in this chapter are Upgrading the MPLAB ICD 2 Firmware Operating System Creating Loading a Hex File Special Linker Script Files ROMless Device Considerations Special ICD Devices 4 2 UPGRADING THE MPLAB ICD 2 FIRMWARE OPERATING SYSTEM By default MPLAB IDE will automatically download the correct and most up to date operating system for your selected device to the MPLAB ICD 2 This feature is selected from the Settings dialog Status tab by checking the checkbox Automatically download firmware if needed If you have unchecked this checkbox you may manually download the operating system not recommended as follows 1 Select Debugger gt Download ICD2 Operating System or Programmer gt Download_ICD2 Operating System The Select ICD Firmware File dialog will open 2005 Microchip Technology Inc DS51331B page 67 MPLAB ICD 2 User s Guide 2 Select the firmware file to download from the list or browse for it The file will be of the form icdxxxxxx hex where xxxxxx is the version number See the readme file for information on which file supports which devices 3 Click Open MPLAB IDE will download the new operating system to the MPLAB ICD 2 Note If the wrong firmware is selected MPLAB ICD 2 will experience unknown errors 4 3 CREATING LOADING A HEX FILE Once the hex file is created imported you can use MPLAB ICD 2 to de
107. separate linker script files that reserve the resources used by the MPLAB ICD 2 There is a separate linker file for each supported device The filenames contain the name of CRE the device followed by an i Examples 18F452i 1kr for the PIC18F452 device 18F4580i e lkr for the PIC18F4580 device with extended memory Customers that are using the MPLAB ICD 2 should use the linker file supplied for the device they are programming instead of the standard linker files 2005 Microchip Technology Inc DS51331B page 69 MPLAB ICD 2 User s Guide 4 5 ROMLESS DEVICE CONSIDERATIONS Working with ROMless no on chip program memory devices is different from working with regular devices You must create the routines that read write memory For more information please see Implementing the External Memory Interface on PIC18C601 801 Application Note AN778 4 5 1 PICDEM 18R There is a Microchip demonstration board PICDEM 18R avail able for development using ROMless devices Even if you do not purchase the demo board kit DM163006 you can download the software and documentation for free from the Microchip web site and use it to help you develop your own code PICDEM 18R Demonstration Board User s Guide DS39565 PICDEM 18R Schematics PICDEM 18R Software MPLAB IDE contains files that may be used with MPLAB ICD 2 and PICDEM 18R in the IcD2 subdirectory when mapping External Memory for ROMless
108. should look similar to Figure 3 9 EE EE z 7 lt zz a aE amp Z_ DS51331B page 54 2005 Microchip Technology MPLAB ICD 2 Tutorial FIGURE 3 9 OUTPUT WINDOW MPLAB ICD 2 TAB Build Findin Files MPLAB ICD 2 Erasing Part Programming Program Memory Loading DebugExecutive Programming DebugExecutive Programming Debug Vector Programming RSBUG Programming Configuration Bits Verifying Program Memory Debug Executive eS Vector Verify Succeeded 5 Config Henory Programming succeeded C gt MPLAB ICD 2 Ready 3 9 RUNNING TUT452 MPLAB ICD 2 executes in Real Time or in Step mode e Real time execution occurs when the PIC18F 452 in the PICDEM 2 Plus demo board is put in the MPLAB IDE s Run mode Step mode execution can be accessed after the processor is halted These toolbar buttons can be used for quick access to commonly used debug operations Debugger Toolbar Menu Buttons Run o Halt DD Animate po Step Into e Step Over Step Out gt Reset EF 2005 Microchip Technology Inc DS51331B page 55 MPLAB ICD 2 User s Guide Begin in Real Time mode 1 Open the TUT452 asm file double click on the file name in the Project Window or use File gt Open 2 Select Debugger gt Run or click the Run toolbar button 3 On the dem
109. sor location Formerly Run to Here Set PC at Cursor Set the Program Counter PC to the cursor location EEE E zz amp lt amp amp z gt _ amp _Z__ DS51331B page 76 2005 Microchip Technology ICD Function Summary 5 3 PROGRAMMING FUNCTIONS When you select MPLAB ICD 2 from the Programmer menu program items will be added to the following MPLAB IDE functions Programmer Menu Toolbar 5 3 1 Programmer Menu MPLAB ICD 2 Setup Wizard Launch the ICD setup wizard Program Program specified memory areas program memory configuration bits ID locations and or EEPROM data Read Read specified memory areas program memory configuration bits ID locations and or EEPROM data Verify Verify programming of specified memory areas program memory configuration bits ID locations and or EEPROM data Erase Part Erase all data on the PICmicro MCU device including memory ID and configuration bits Blank Check Check to see that all device memory is erased blank Release from Reset Set MCLR to VDD Hold in Reset Set MCLR to ground zero O 2005 Microchip Technology Inc DS51331B page 77 MPLAB ICD 2 User s Guide Abort Operation Abort any programming operation e g program read etc Terminating an operation will leave the device in an unknown state Connect Establish communications between the ICD and PC Download
110. t Wizard Viewing the Project Creating a Hex File Setting Debug Options Setting Up the Demo Board Loading Program Code For Debugging Running TUT452 Debugging TUT452 e Programming the Application TUT452 Main Routine and Source Code 2005 Microchip Technology Inc DS51331B page 43 MPLAB ICD 2 User s Guide 3 2 SETTING UP THE ENVIRONMENT Before beginning this tutorial follow the steps in Chapter 2 Getting Started to set up the hardware and MPLAB IDE software Some of the initial settings covered in this tutorial may already be in place as a result of the previous set up Once launched the MPLAB IDE desktop should appear FIGURE 3 1 MPLAB IDE 4 MPLAB 10 3 File Edit View Project Debugger Programmer Tools Configure Window Help DS51331B page 44 2005 Microchip Technology MPLAB ICD 2 Tutorial 3 2 1 Selecting the Device and Development Mode To select the device for this tutorial 1 Select Configure gt Select Device 2 Inthe Device Selection dialog choose PIC18F452 from the Device list box The light icon next to MPLAB ICD 2 in the Microchip Tool Support section should be green 3 Click OK To select MPLAB ICD 2 as a debugger 1 Select Debugger gt Select Tool gt MPLAB ICD 2 The Debugger menu will then show the other debug options available Also the Output window will open to display connection information If MPLAB IDE attempts to connect on start u
111. tings Program tab 5 Select Programmer gt Program Now MPLAB ICD 2 can reset and run the target MPLAB ICD 2 can also be disconnected from the target after selecting the Reset button the application will run 3 12 TUT452 MAIN ROUTINE AND SOURCE CODE The main routine of TUT452 asm Figure 3 14 begins by configuring PORTB the A D module and Timero It then waits for a Timer0 overflow to start the A D conversion of the value from the potentiometer When the conversion is complete the value is displayed on the LEDs and the program loops back to wait for another TimerO overflow to start another A D conversion For more information on A D module operation and a list of related application notes refer to the PlCmicro 18C MCU Family Reference Manual DS39500 EE SSS DS51331B page 62 2005 Microchip Technology MPLAB ICD 2 Tutorial FIGURE 3 15 TUT452 MAIN ROUTINE FLOW START Configure PORTB as All Outputs Configure A D left justify Fosc 8 clock 1 analog channel y Configure TimerO Prescaler assigned to TimerO 1 256 prescale TimerO Overflow Start A D Conversion Conversion Complete Write A D Result to PORTB 2005 Microchip Technology Inc DS51331B page 63 MPLAB ICD 2 User s Guide PRR RARE RAR ARRE RRA kkk Cu TUT452 A
112. ttom of the dialog e Pass Count For the breakpoint set above break for the entered pass count value 0 255 5 6 3 2 EMULATOR FEATURES The following features apply independent of the breakpoint setup above Event Breakpoints For the breakpoint set above e Break on Stack Over Underflow Break on stack overflow or underflow Future feature Break on Watchdog Timer Break on a WDT time out Future feature e Break on SLEEP Break on a SLEEP instruction The SLEEP instruction will NOT be executed Running or stepping from this point will execute the instruction after SLEEP DS51331B page 90 2005 Microchip Technology ICD Function Summary Enable Stopwatch Check to coordinate breakpoints with Stopwatch operation Halt on Start Condition Breakpoint 2 If checked halt program breakpoint 2 enabled and program Stopwatch go on Run If unchecked program continues to run breakpoint 2 disabled and Stopwatch is started Halt on Stop Condition Breakpoint 3 If checked halt program breakpoint 3 enabled and Stopwatch If unchecked program continues to run breakpoint 3 disabled but Stopwatch halted e Reset Stopwatch on Run Any time you run the program reset the stopwatch to zero 5 6 4 dsPIC Devices The Advanced Breakpoints Dialog for dsPIC DSC devices contains the following options Breakpoint Combinations This section is grayed out unless there are two breakp
113. ve must reside in program memory the application program must not use this reserved space The debug executive typically needs about 0x120 words of program memory Special in circuit debug registers in the target PICmicro MCU are enabled These allow the debug executive to be activated by the MPLAB ICD 2 The target PICmicro MCU is held in reset by keeping the VPP MCLR line low 2005 Microchip Technology Inc DS51331B page 15 MPLAB ICD 2 User s Guide 1 4 5 2 DEBUG MODE DETAILS Figure 1 5 illustrates the MPLAB ICD 2 ready for debugging FIGURE 1 5 MPLAB ICD 2 READY FOR DEBUGGING Internal Target L must Debug U be Registers T Running Tam for Debug MPLAB ICD 2 ce to Function Internal Circuits a uncti be f Area Reserved for Debug Program Executive Memory Hardware Stack Shared by Debug Exec Abell 0 E ytes Used by i Debug Exec Registers Typically in order to find out if an application program will run correctly a breakpoint is set early in the program code When a breakpoint is set from the user interface of the MPLAB IDE the address of the breakpoint is stored into the special internal debug registers of the target PICmicro MCU Commands on PGC and PGD communicate directly to these registers to set the breakpoint address Next the Debugger gt Run function or the Run icon forward arrow is usually pressed from MPLAB IDE MPLAB ICD 2 will raise t
114. written to flash an LED and then programmed into the target PICmicro MCU with MPLAB ICD 2 debug disabled Disconnect the ICD and reset the target If the LED does not flash check the circuitry to find out why it s not operating If MPLAB ICD 2 is connected after programming the target with debug disabled MPLAB can still toggle the Reset If it runs stand alone but not with ICD connected after selecting Debugger gt Run in the MPLAB IDE then the interconnections may be suspicious Use a scope to look at PGC PGD and VPP Make sure that the oscillator starts up quickly If it takes too long to get the target oscillator started then MPLAB ICD 2 can time out and give errors Make sure that the correct Oscillator mode is selected look at Contfigure gt Configuration Bits The Oscillator mode will depend upon the oscillator selected Try HS mode for a crystal and RC mode for an external resistor capacitor oscillator These settings may need to be changed for the final design but they are some of the easiest modes to start with Oscillator operation can be checked on OSC2 after configuration bits are set at programming time and power is applied in debug or normal mode 2005 Microchip Technology Inc DS51331B page 99 MPLAB ICD 2 User s Guide 6 7 LINK APPLICATION CODE Verify that MPLAB ICD 2 is programming properly by either running an LED blink test similar to that described in Link Target Oscillator or by programming code into th
115. y environment The MPLAB ICD 2 offers these features Real time and single step code execution e Breakpoints Register and Variable Watch Modify e In circuit debugging Target VDD monitor Diagnostic LEDs MPLAB IDE user interface RS 232 serial or USB interface to a host PC O 2005 Microchip Technology Inc DS51331B page 7 MPLAB ICD 2 User s Guide 1 3 HOW MPLAB ICD 2 HELPS YOU The MPLAB ICD 2 allows you to e Debug your source code in your own application Debug your hardware in real time Program a supported device using Microchip s ICSP protocol 1 4 HOW MPLAB ICD 2 WORKS A simplified description of how MPLAB ICD 2 works is provided here It is intended to provide enough information so a target board can be designed that is compatible with MPLAB ICD 2 for both programming and debugging operations The basic theory of programming and in circuit debugging is described so that problems if encountered are quickly resolved This section provides an overview of MPLAB ICD 2 followed by a description of MPLAB ICD 2 programming and debugging modes The following topics are covered ICD vs ICE e Modular Interface Connections Circuits That Will Prevent MPLAB ICD 2 From Functioning Debug Mode e Requirements For Debug Mode Debug Reserved Resources Programmer Mode 1 4 1 ICD vs ICE The In Circuit Debugger ICD is a cost efficient alternative to an In Circuit Emulator ICE It can
Download Pdf Manuals
Related Search
Related Contents
Voigtlander Bessa R4M User's Manual ロベリア 医療事故情報収集等事業第20回報告書の公表について BTS IP Media Converter LG D959 Brochure 19” Slimline Digital Advertising Display Hotpoint - ImageBank Lennox International Inc. MERIT SERIES GAS FURNACE DOWNFLOW AIR DISCHARGE Electric Heater User Manual Copyright © All rights reserved.
Failed to retrieve file