PICkit™ Serial Analyzer User’s Guide © 2009 Microchip Technology Inc. DS51647C Note the following details of the code protection feature on Microchip devices: • Microchip products meet the specification contained in their particular Microchip Data Sheet. • Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the intended manner and under normal conditions. • There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip’s Data Sheets. Most likely, the person doing so is engaged in theft of intellectual property. • Microchip is willing to work with the customer who is concerned about the integrity of their code. • Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does not mean that we are guaranteeing the product as “unbreakable.” Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of our products. Attempts to break Microchip’s code protection feature may be a violation of the Digital Millennium Copyright Act. If such acts allow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act. Information contained in this publication regarding device applications and the like is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION, INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY OR FITNESS FOR PURPOSE. Microchip disclaims all liability arising from this information and its use. Use of Microchip devices in life support and/or safety applications is entirely at the buyer’s risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights. Trademarks The Microchip name and logo, the Microchip logo, Accuron, dsPIC, KEELOQ, KEELOQ logo, MPLAB, PIC, PICmicro, PICSTART, rfPIC, SmartShunt and UNI/O are registered trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. FilterLab, Linear Active Thermistor, MXDEV, MXLAB, SEEVAL, SmartSensor and The Embedded Control Solutions Company are registered trademarks of Microchip Technology Incorporated in the U.S.A. Analog-for-the-Digital Age, Application Maestro, CodeGuard, dsPICDEM, dsPICDEM.net, dsPICworks, dsSPEAK, ECAN, ECONOMONITOR, FanSense, In-Circuit Serial Programming, ICSP, ICEPIC, Mindi, MiWi, MPASM, MPLAB Certified logo, MPLIB, MPLINK, mTouch, nanoWatt XLP, PICkit, PICDEM, PICDEM.net, PICtail, PIC32 logo, PowerCal, PowerInfo, PowerMate, PowerTool, REAL ICE, rfLAB, Select Mode, Total Endurance, TSHARC, WiperLock and ZENA are trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. SQTP is a service mark of Microchip Technology Incorporated in the U.S.A. All other trademarks mentioned herein are property of their respective companies. © 2009, Microchip Technology Incorporated, Printed in the U.S.A., All Rights Reserved. Printed on recycled paper. Microchip received ISO/TS-16949:2002 certification for its worldwide headquarters, design and wafer fabrication facilities in Chandler and Tempe, Arizona; Gresham, Oregon and design centers in California and India. The Company’s quality system processes and procedures are for its PIC® MCUs and dsPIC® DSCs, KEELOQ® code hopping devices, Serial EEPROMs, microperipherals, nonvolatile memory and analog products. In addition, Microchip’s quality system for the design and manufacture of development systems is ISO 9001:2000 certified. DS51647C-page ii © 2009 Microchip Technology Inc. PICkit™ SERIAL ANALYZER USER’S GUIDE Table of Contents Preface ........................................................................................................1 Chapter 1. PICkit™ Serial Analyzer Overview 1.1 Introduction ..................................................................................... 5 1.2 Highlights ........................................................................................ 5 1.3 PICkit™ Serial Analyzer Contents .................................................. 5 1.4 PICkit™ Serial Analyzer Development System .............................. 5 1.5 PICkit™ Serial Analyzer Hardware ................................................. 6 1.6 PICkit™ Serial Analyzer Software .................................................. 8 Chapter 2. Getting Started 2.1 Introduction ..................................................................................... 9 2.2 Highlights ........................................................................................ 9 2.3 Installing the PICkit™ Serial Analyzer Software ............................. 9 2.4 Connecting the PICkit™ Serial Analyzer to the PC ........................ 9 2.5 Connecting the PICkit™ Serial Analyzer to the 28-Pin Demo Board.................................................................................. 10 2.6 Starting the PICkit™ Serial Analyzer Program ............................. 10 2.7 Running the 28-Pin Demo I2C™ Demonstration Program ........... 11 2.8 I2C™ Communications – Basic Operations .................................. 14 2.9 28-Pin Demo I2C™ Source Code and Firmware .......................... 15 Chapter 3. PICkit™ Serial Analyzer PC Program 3.1 Introduction ................................................................................... 17 3.2 Highlights ...................................................................................... 17 3.3 Installing the PICkit™ Serial Analyzer Software ........................... 17 3.4 Starting the Program ..................................................................... 17 3.5 Configuration Wizard .................................................................... 18 3.6 Main Window ................................................................................ 21 3.7 Serial Communications Modes ..................................................... 25 © 2009 Microchip Technology Inc. DS51647C-page iii PICkit™ Serial Analyzer User’s Guide Chapter 4. I2C™ Master Communications 4.1 Introduction ...................................................................................27 4.2 Highlights ......................................................................................27 4.3 PICkit Serial Pin Assignments .......................................................27 4.4 Selecting Communications Mode ..................................................28 4.5 Configuring I2C Communications Mode ........................................28 4.6 Communications: Basic Operations ..............................................30 4.7 Script Builder .................................................................................31 4.8 Script Execute ...............................................................................36 Chapter 5. I2C™ Slave Communications 5.1 Introduction ...................................................................................39 5.2 Highlights ......................................................................................39 5.3 PICkit Serial Pin Assignments .......................................................39 5.4 Selecting Communications Mode ..................................................40 5.5 Configuring I2C Slave Communications Mode ..............................40 5.6 Communications: Basic Operations ..............................................43 5.7 Communications: Profile Generator ..............................................44 Chapter 6. Lin Communications 6.1 Introduction ...................................................................................47 6.2 Highlights ......................................................................................47 6.3 PICkit Serial Pin Assignments .......................................................47 6.4 Selecting Communications Mode ..................................................47 6.5 Configuring Lin Slave Communications Mode ..............................48 6.6 Communications: Basic Operations ..............................................50 Chapter 7. SPI and Microwire Master Communications DS51647C-page iv 7.1 Introduction ...................................................................................53 7.2 Highlights ......................................................................................53 7.3 PICkit™ Serial Analyzer Pin Assignments ....................................53 7.4 Selecting Communications Mode ..................................................54 7.5 Configurating SPI Communications Mode ....................................54 © 2009 Microchip Technology Inc. PICkit™ SERIAL ANALYZER USER’S GUIDE Table of Contents 7.6 Communications: Basic Operations .............................................. 56 7.7 Script Builder ................................................................................ 58 7.8 Script Execute ............................................................................... 63 Chapter 8. USART Asynchronous Communications 8.1 Introduction ................................................................................... 65 8.2 Highlights ...................................................................................... 65 8.3 PICkit Serial Pin Assignments ...................................................... 65 8.4 Selecting Communications Mode ................................................. 66 8.5 Configuring USART Asynchronous Communications Mode ......... 66 8.6 Communications: Basic Operations .............................................. 68 8.7 Script Builder ................................................................................ 68 8.8 Script Execute ............................................................................... 73 Chapter 9. USART Master Synchronous Communications 9.1 Introduction ................................................................................... 75 9.2 Highlights ...................................................................................... 75 9.3 PICkit Serial Pin Assignments ...................................................... 75 9.4 Selecting Communications Mode ................................................. 75 9.5 Configuring USART Synchronous Master Communications Mode............................................................................................. 76 9.6 Communications: Basic Operations .............................................. 78 9.7 Script Builder ................................................................................ 78 9.8 Script Execute ............................................................................... 83 Chapter 10. User Defined Templates 10.1 Introduction ................................................................................... 85 10.2 Highlights ...................................................................................... 85 10.3 Creating and Using Templates ..................................................... 86 10.4 My Templates ............................................................................... 87 10.5 Graphing Data .............................................................................. 88 © 2009 Microchip Technology Inc. DS51647C-page v PICkit™ Serial Analyzer User’s Guide Chapter 11. PICkit™ Serial Analyzer Firmware 11.1 Introduction ...................................................................................89 11.2 Highlights ......................................................................................89 11.3 Overview .......................................................................................89 11.4 Exec ..............................................................................................91 11.5 Comm ............................................................................................95 11.6 I2CM Communications ..................................................................98 11.7 I2CS Communications ................................................................104 11.8 SPI Communications ...................................................................114 11.9 USART Communications ............................................................117 11.10 LIN Communications ...................................................................121 Chapter 12. PICkit™ Serial Analyzer DLL 12.1 Introduction .................................................................................129 12.2 Overview .....................................................................................129 Chapter 13. Troubleshooting 13.1 Introduction .................................................................................131 13.2 Frequently Asked Questions .......................................................131 Appendix A. PICkit Serial Analyzer Schematics ............................... 133 A.1 Introduction .................................................................................133 Appendix B. 28-Pin Demo Board I2C™ Demonstration Firmware ... 137 B.1 Introduction .................................................................................137 B.2 Highlights ....................................................................................137 B.3 Hardware .....................................................................................137 B.4 Firmware .....................................................................................137 B.5 I2C Communications ...................................................................138 B.6 Slave Devices .............................................................................139 B.7 Functions .....................................................................................142 Worldwide Sales and Service ............................................................... 146 DS51647C-page vi © 2009 Microchip Technology Inc. PICkit™ SERIAL ANALYZER USER’S GUIDE Preface NOTICE TO CUSTOMERS All documentation becomes dated, and this manual is no exception. Microchip tools and documentation are constantly evolving to meet customer needs, so some actual dialogs and/or tool descriptions may differ from those in this document. Please refer to our web site (www.microchip.com) to obtain the latest documentation available. Documents are identified with a “DS” number. This number is located on the bottom of each page, in front of the page number. The numbering convention for the DS number is “DSXXXXXA”, where “XXXXX” is the document number and “A” is the revision level of the document. For the most up-to-date information on development tools, see the MPLAB® IDE on-line help. Select the Help menu, and then Topics to open a list of available on-line help files. INTRODUCTION This chapter contains general information that will be useful to know before using the PICkit™ Serial Analyzer User’s Guide. Items discussed in this chapter include: • • • • • • • • Document Layout Conventions Used in this Guide Warranty Registration Recommended Reading The Microchip Web Site Development Systems Customer Change Notification Service Customer Support Document Revision History DOCUMENT LAYOUT This document describes how to use the PICkit™ Serial Analyzer as a development tool to communicate with embedded development systems via serial protocols. The manual layout is as follows: • • • • • • • • • • Chapter 1. “PICkit™ Serial Analyzer Overview” Chapter 2. “Getting Started” Chapter 3. “PICkit™ Serial Analyzer PC Program” Chapter 4. “I2C™ Master Communications” Chapter 5. “I2C™ Slave Communications” Chapter 6. “Lin Communications” Chapter 7. “SPI and Microwire Master Communications” Chapter 8. “USART Asynchronous Communications” Chapter 9. “USART Master Synchronous Communications” Chapter 10. “User Defined Templates” © 2009 Microchip Technology Inc. DS51647C-page 1 PICkit™ Serial Analyzer User’s Guide • • • • • Chapter 11. “PICkit™ Serial Analyzer Firmware” Chapter 12. “PICkit™ Serial Analyzer DLL” Chapter 13. “Troubleshooting” Appendix A. “PICkit Serial Analyzer Schematics” Appendix B. “28-Pin Demo Board I2C™ Demonstration Firmware” CONVENTIONS USED IN THIS GUIDE This manual uses the following documentation conventions: DOCUMENTATION CONVENTIONS Description Arial font: Italic characters Initial caps Quotes Underlined, italic text with right angle bracket Bold characters N‘Rnnnn Text in angle brackets < > Courier New font: Plain Courier New Represents Referenced books Emphasized text A window A dialog A menu selection A field name in a window or dialog A menu path MPLAB® IDE User’s Guide ...is the only compiler... the Output window the Settings dialog select Enable Programmer “Save project before build” A dialog button A tab A number in verilog format, where N is the total number of digits, R is the radix and n is a digit. A key on the keyboard Click OK Click the Power tab 4‘b0010, 2‘hF1 Italic Courier New Sample source code Filenames File paths Keywords Command-line options Bit values Constants A variable argument Square brackets [ ] Optional arguments Curly brackets and pipe character: { | } Ellipses... Choice of mutually exclusive arguments; an OR selection Replaces repeated text Represents code supplied by user DS51647C-page 2 Examples File>Save Press <Enter>, <F1> #define START autoexec.bat c:\mcc18\h _asm, _endasm, static -Opa+, -Opa0, 1 0xFF, ‘A’ file.o, where file can be any valid filename mcc18 [options] file [options] errorlevel {0|1} var_name [, var_name...] void main (void) { ... } © 2009 Microchip Technology Inc. Preface WARRANTY REGISTRATION Please complete the enclosed Warranty Registration Card and mail it promptly. Sending in the Warranty Registration Card entitles users to receive new product updates. Interim software releases are available at the Microchip web site. RECOMMENDED READING This user’s guide describes how to use the PICkit™ Serial Analyzer. Other useful documents are listed below. The following Microchip documents are available and recommended as supplemental reference resources. Readme Files For the latest information on using other tools, read the tool-specific Readme files in the Readmes subdirectory of the MPLAB IDE installation directory. The Readme files contain update information and known issues that may not be included in this user’s guide. THE MICROCHIP WEB SITE Microchip provides online support via our web site at www.microchip.com. This web site is used as a means to make files and information easily available to customers. Accessible by using your favorite Internet browser, the web site contains the following information: • Product Support – Data sheets and errata, application notes and sample programs, design resources, user’s guides and hardware support documents, latest software releases and archived software • General Technical Support – Frequently Asked Questions (FAQs), technical support requests, online discussion groups, Microchip consultant program member listing • Business of Microchip – Product selector and ordering guides, latest Microchip press releases, listing of seminars and events, listings of Microchip sales offices, distributors and factory representatives DEVELOPMENT SYSTEMS CUSTOMER CHANGE NOTIFICATION SERVICE Microchip’s customer notification service helps keep customers current on Microchip products. Subscribers will receive e-mail notification whenever there are changes, updates, revisions or errata related to a specified product family or development tool of interest. To register, access the Microchip web site at www.microchip.com, click on Customer Change Notification and follow the registration instructions. The Development Systems product group categories are: • Compilers – The latest information on Microchip C compilers and other language tools. These include the MPLAB® C18 and MPLAB C30 C compilers; MPASM™ and MPLAB ASM30 assemblers; MPLINK™ and MPLAB LINK30 object linkers; and MPLIB™ and MPLAB LIB30 object librarians. • Emulators – The latest information on Microchip in-circuit emulators.This includes the MPLAB ICE 2000 and MPLAB ICE 4000. • In-Circuit Debuggers – The latest information on the Microchip in-circuit debugger, MPLAB ICD 2. © 2009 Microchip Technology Inc. DS51647C-page 3 PICkit™ Serial Analyzer User’s Guide • MPLAB® IDE – The latest information on Microchip MPLAB IDE, the Windows® Integrated Development Environment for development systems tools. This list is focused on the MPLAB IDE, MPLAB SIM simulator, MPLAB IDE Project Manager and general editing and debugging features. • Programmers – The latest information on Microchip programmers. These include the MPLAB PM3 and PRO MATE® II device programmers and the PICSTART® Plus and PICkit™ 2 development programmers. CUSTOMER SUPPORT Users of Microchip products can receive assistance through several channels: • • • • Distributor or Representative Local Sales Office Field Application Engineer (FAE) 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 DOCUMENT REVISION HISTORY Revision A (January 2007) • Initial release of this document. Revision B (November 2007) • Updates throughout; Added new chapters. Revision C (February 2009) • Updates in chapters 5, 7, 8 and 9. DS51647C-page 4 © 2009 Microchip Technology Inc. PICkit™ SERIAL ANALYZER USER’S GUIDE Chapter 1. PICkit™ Serial Analyzer Overview 1.1 INTRODUCTION The PICkit™ Serial Analyzer development system enables a personal computer (PC) to communicate with embedded development systems via serial protocols such as I2C™, SPI, asynchronous and synchronous USART. The PC program uses a graphical interface to enter data and commands to communicate to the target device. Data and commands can be entered using basic or scripting commands. The PICkit™ Serial Analyzer connects to the embedded development system using a 6-pin header. The PICkit™ Serial Analyzer is a sophisticated and highly configurable device. Please take a few moments to familiarize yourself with the hardware interface and PC program by reading this user’s guide. Chapter 2. “Getting Started” will guide you through installing the PC program and running a simple demonstration program on the 28-Pin Demo Board (DM164120-3) using the I2C serial protocol. 1.2 HIGHLIGHTS This chapter discusses: • • • • 1.3 PICkit™ Serial Analyzer Contents PICkit™ Serial Analyzer Development System PICkit™ Serial Analyzer Hardware PICkit™ Serial Analyzer PC Software PICkit™ SERIAL ANALYZER CONTENTS The PICkit™ Serial Analyzer serial communications development system contains the following items: 1. The PICkit™ Serial Analyzer 2. USB cable 3. PICkit™ Serial Analyzer CD-ROM 1.4 PICkit™ SERIAL ANALYZER DEVELOPMENT SYSTEM The PICkit™ Serial Analyzer consists of several components that together make an embedded serial communications development system. The PC program runs on Microsoft® Windows® compatible computers with a USB port. The PICkit™ Serial Analyzer connects to the PC using a USB cable. Finally, the PICkit™ Serial Analyzer interfaces to the target device using a 6-pin header. Figure 1-1 illustrates the PICkit™ Serial Analyzer embedded serial communications development system. © 2009 Microchip Technology Inc. DS51647C-page 5 PICkit™ Serial Analyzer User’s Guide FIGURE 1-1: PICkit™ SERIAL ANALYZER DEVELOPMENT SYSTEM PC Target Device USB I2C™ SPI USART PICkit™ Serial Analyzer 1.5 PICkit™ SERIAL ANALYZER HARDWARE The PICkit™ Serial Analyzer connects to a Microsoft® Windows® compatible computer using a USB port. It interfaces to the target device using a 6-pin header. Figure 1-2 shows an overview of the PICkit™ Serial Analyzer. FIGURE 1-2: PICkit™ SERIAL ANALYZER 3 2 1 4 6 5 Legend: DS51647C-page 6 1 – Status LEDs 3 – Lanyard Connection 5 – Pin 1 Marker 2 – Push Button 4 – USB Port Connection 6 – Communications Connector © 2009 Microchip Technology Inc. PICkit™ Serial Analyzer Overview 1.5.1 Status LEDs The Status LEDs indicate the status of the PICkit™ Serial Analyzer. 1. Power (green) – Power is applied to the PICkit™ Serial Analyzer by the USB port. 2. Target (yellow) – The PICkit™ Serial Analyzer is communicating with the target device. 3. Busy (red) – The PICkit™ Serial Analyzer is communicating with the target device. 1.5.2 Push Button The push button is available for future implementation. 1.5.3 Lanyard Connection To help prevent possible loss of the PICkit™ Serial Analyzer, a convenient lanyard connection is available. 1.5.4 USB Port Connection The USB Port Connection is a USB mini-B connector. Connect the PICkit™ Serial Analyzer to the PC using the supplied cable. 1.5.5 Pin 1 Marker The pin 1 marker assists in aligning the PICkit™ Serial Analyzer with the target device. Pin assignments are shown in Figure 1-3. 1.5.6 Communication Connector The communication connector connects to the target device using an inexpensive 6-pin, 0.100" pitch spacing, 0.025” square pin header. Pin assignments are shown in Figure 1-3. FIGURE 1-3: PICkit™ SERIAL ANALYZER PIN ASSIGNMENTS Pin 1 Indicator Pin Description I 1 2 3 4 5 6 Note: © 2009 Microchip Technology Inc. 2C™ SPI USART Microwire LIN 1 — CS TX CS TX 2 +V +V +V +V — 3 GND GND GND GND GND 4 SDA SDI SDI /Wake 5 SCL SCK — SCK Fault/TXE 6 — SDO RX SDO RX — The 6-pin header (0.100" spacing) accepts 0.025" square pins. DS51647C-page 7 PICkit™ Serial Analyzer User’s Guide 1.6 PICkit™ SERIAL ANALYZER SOFTWARE 1.6.1 PC Program The PICkit™ Serial Analyzer PC program uses a graphical interface to enter data and commands to communicate to the target device. Data and commands can be entered using basic or scripting commands. Chapter 3. “PICkit™ Serial Analyzer PC Program” explains the installation and operation of the program. Following Chapter 3 there are individual chapters that explain the specific serial communications modes and their operation. 1.6.2 Dynamically Linked Library (DLL) The PICkit™ Serial Analyzer DLL is explained in Chapter 12. “PICkit™ Serial Analyzer DLL”. 1.6.3 Firmware The PICkit™ Serial Analyzer firmware is explained in Chapter 11. “PICkit™ Serial Analyzer Firmware”. The latest version of the PICkit™ Serial Analyzer firmware can be downloaded from the Microchip Technology web site. The firmware is updated by selecting PICkit Serial Analyzer > Download PICkit Serial Analyzer Firmware from the menu bar. An open file window will open. Select the *.hex file to be uploaded to the PICkit™ Serial Analyzer and click on the Open button. The Firmware Download window will open as shown in Figure 1-4 to indicate the status of the firmware update. FIGURE 1-4: DS51647C-page 8 FIRMWARE DOWNLOAD WINDOW © 2009 Microchip Technology Inc. PICkit™ SERIAL ANALYZER USER’S GUIDE Chapter 2. Getting Started 2.1 INTRODUCTION This chapter will get you started using the PICkit™ Serial Analyzer with the 28-pin demo board. In this demo, the PICkit™ Serial Analyzer will communicate with the 28-pin demo board using the I2C serial protocol. The PICkit™ Serial Analyzer will be the I2C master and the 28-pin demo board will be the I2C slave device. The 28-pin demo board is programmed to emulate an I2C Real-Time Clock and Serial EEPROM. For more information about the 28-pin demo board hardware, see the “28-Pin Demo Board User’s Guide” (DS41301). For more information about the 28-pin demo board I2C™ demo firmware, see Appendix B. “28-Pin Demo Board I2C™ Demonstration Firmware”. The demo program source code and *.hex file can be found on the PICkit™ Serial CD-ROM at D:\28-pin Demo Board\Firmware\. 2.2 HIGHLIGHTS This chapter discusses: • • • • • • • 2.3 Installing the PICkit™ Serial Analyzer Software Connecting the PICkit Serial Analyzer to the PC Connecting the PICkit Serial Analyzer to the 28-Pin Demo Board Starting the PICkit Serial Analyzer Program Running The 28-Pin Demo I2C™ Demonstration Program I2C Communications – Basic Operations 28-Pin Demo I2C™ Source Code and Firmware INSTALLING THE PICkit™ SERIAL ANALYZER SOFTWARE Insert the PICKit™ Serial Analyzer CD-ROM into the CD-ROM drive. In a few moments the introductory screen should be displayed. Follow the directions on the screen to install the PICkit Serial Analyzer software. If the introductory screen does not appear, browse to the CD-ROM directory and select the AutorunPro.exe program. Note: 2.4 The PICkit™ Serial Analyzer program requires the Microsoft® .NET Framework Version 2.0. If the .NET Framework is not installed on your computer (or if in doubt), select the application plus Microsoft® .NET Framework installation. CONNECTING THE PICkit™ SERIAL ANALYZER TO THE PC Connect the PICkit Serial Analyzer to the PC using the supplied USB cable. There are no USB drivers to install. The green Power indicator should light indicating that the PICkit Serial Analyzer is powered. © 2009 Microchip Technology Inc. DS51647C-page 9 PICkit™ Serial Analyzer User’s Guide 2.5 CONNECTING THE PICkit™ SERIAL ANALYZER TO THE 28-PIN DEMO BOARD Connect the PICkit Serial Analyzer to P3 on the 28-pin demo board as shown in Figure 2-1. The PICkit Serial Analyzer will supply power to the 28-pin demo board and perform a power-on routine: • • • • • • LEDs will flash in sequence DS1, DS2, DS3, DS4, DS3, DS2, and DS1 twice All LEDs will turn off All LEDs will turn on All LEDs will turn off LEDs will display in hexadecimal: A, D, C LEDs will display the top 4 bits of the ADC value read from potentiometer RP1 FIGURE 2-1: 2.6 CONNECTING PICkit™ SERIAL TO THE 28-PIN DEMO BOARD STARTING THE PICkit™ SERIAL ANALYZER PROGRAM You can start the program by: • Clicking on the desktop icon, or • Navigating to Start>All Programs>Microchip>PICkit Serial Analyzer After a few moments, the program will start and display the main window as shown in Figure 2-2. If this is the first time you are running the program, the Configuration Wizard will automatically run. Click on the Next button and accept the default settings for I2C Master mode. For more information about using the I2C Master mode, see Chapter 4. “I2C™ Master Communications.” DS51647C-page 10 © 2009 Microchip Technology Inc. Getting Started FIGURE 2-2: 2.7 PICkit™ SERIAL ANALYZER MAIN WINDOW RUNNING THE 28-PIN DEMO I2C™ DEMONSTRATION PROGRAM Select the 28-pin demo I2C demonstration by clicking on Demo Boards > 28 Pin Demo I2C from the menu bar. The 28-Pin Demo I2C Demonstration window will be displayed as shown in Figure 2-3. The Real-Time Clock (RTC) will be displayed first. Note the tabs to select between the RTC, EEPROM and ADC demonstrations. The demonstration program will constantly poll the 28-pin demo board and display the contents of the Real-Time Clock and the ADC. 2.7.1 Real-Time Clock (RTC) Clicking on the Real-Time Clock tab will display calendar and clock contents of the real-time clock function running on the 28-pin demo board. The 28-pin demo board has been programmed to emulate a stand-alone serial I2C clock-calendar device. The I2C commands are very similar to the commands used in these devices. The demonstration program will constantly poll the 28-pin demo board and display the contents of the real-time clock. The Real-Time Clock window displays calendar and clock controls. Notice the date and time when the 28-pin demo board has first been powered on. The date and time start at January 1, 2000 at midnight (12:00 AM). The user can manually enter calendar and clock values and send the values to the real-time clock by clicking on the Update RTC button. Or the user can click on the Set RTC to System Time button to set the Real-Time Clock to the date and time of the computer. © 2009 Microchip Technology Inc. DS51647C-page 11 PICkit™ Serial Analyzer User’s Guide FIGURE 2-3: 2.7.2 28-PIN DEMO I2C™ – RTC Serial EEPROM (EEPROM) Clicking on the EEPROM tab will display the 256 byte array of EEPROM memory as shown in Figure 2-4. The 28-pin demo board has been programmed to emulate a stand-alone serial I2C EEPROM device such as a 24LC02. The I2C commands are very similar to the commands used in these devices. The Serial EEPROM tab displays the contents of a serial EEPROM implemented on the 28-pin demo board. When this tab is first displayed, the values are grayed out. This means that the display does not match the contents of the emulated serial EEPROM. Click on the Read EE button and the program will read and display the contents of the 28-pin demo board. Notice that the displayed values are now black. Individual memory locations can be changed by clicking on the value and typing in a new value in hexadecimal. Notice that the changed values will be displayed in red. This means the value has changed but has not been written to the emulated serial EEPROM. Click on the Write EE button and the values will be written. The color of the value will turn to black indicating that the value has been written and the display matches the contents of the emulated serial EEPROM. DS51647C-page 12 © 2009 Microchip Technology Inc. Getting Started FIGURE 2-4: 2.7.3 28-PIN DEMO I2C™ – EEPROM Analog-to-Digital Converter (ADC) Clicking on the ADC tab will show a meter gauge displaying the value of the ADC as read from potentiometer RP1 as shown in Figure 2-5. The meter gauge displays the Most Significant 8 bits of the 10-bit ADC internal to the PIC® microcontroller. Rotate potentiometer RP1 and the display changes almost instantaneously. The demonstration program will constantly poll the 28-pin demo board and display the contents of the ADC. FIGURE 2-5: © 2009 Microchip Technology Inc. 28-PIN DEMO I2C™ – ADC DS51647C-page 13 PICkit™ Serial Analyzer User’s Guide 2.8 I2C™ COMMUNICATIONS – BASIC OPERATIONS Individual I2C commands and data can be read and written to the 28-pin demo board from the Basic Operations window as shown in Figure 2-6. Ensure that the PICkit Serial Analyzer program is in I2C Master mode by selecting PICkit Serial Analyzer > Run Configuration Wizard from the menu bar and selecting I2C Master. Note: The 28-Pin Demo I2C window and the Basic Operations window cannot be opened at the same time. When the 28-Pin Demo I2C window is opened, the Basic Operations window will automatically close. FIGURE 2-6: 2.8.1 I2C™ BASIC OPERATIONS Real-Time Clock (RTC) The slave address for the emulated Real-Time Clock on the 28-pin demo board is hexadecimal A2 (0xA2). The Word Address selects the following memory locations: TABLE 2-1: DS51647C-page 14 MEMORY LOCATIONS Word Address Contents 0x00 Configuration 1 0x01 Configuration 2 0x02 Seconds 0x03 Minutes 0x04 Hours 0x05 Days 0x06 Weekdays 0x07 Months 0x08 Years © 2009 Microchip Technology Inc. Getting Started For example, to read seconds from the Real-Time Clock: Step 1 – Enter 0xA2 into the Slave Address[W] block in the Read section of the Basic Operations window (lower third of window) Step 2 – Enter 0x02 into the Word Address block Step 3 – Note that the Slave Address[R] has already been entered for you (the Read bit is set). Step 4 – Enter 0x01 into the Byte Count block Step 5 – Click on the Execute button The I2C combination command (Write then Read) will be sent to the 28-pin demo board. The command and the contents of word address, 0x02 (seconds), will be displayed in the transaction window as shown in Figure 2-7. FIGURE 2-7: 2.8.2 RTC TRANSACTIONS DEMO EEPROM The slave address for the emulated Serial EEPROM on the 28-pin demo board is hexadecimal A8 (0xA8). The word address selects one of 256 8-bit memory locations: TABLE 2-2: WORD ADDRESS CONTENTS Word Address Contents 0x00 Memory Contents … … 0xFF Memory Contents 2.8.3 ADC The slave address for the ADC on the 28-Pin demo board is hexadecimal AA (0xAA). The word address, 0x01, selects the memory location containing the Most Significant 8 bits of the 10-bit ADC of the PIC microcontroller. 2.9 28-PIN DEMO I2C™ SOURCE CODE AND FIRMWARE The demo program source code and *.hex file can be found on the PICkit Serial CD-ROM at D:\28-pin Demo Board\Firmware\. © 2009 Microchip Technology Inc. DS51647C-page 15 PICkit™ Serial Analyzer User’s Guide NOTES: DS51647C-page 16 © 2009 Microchip Technology Inc. PICkit™ SERIAL ANALYZER USER’S GUIDE Chapter 3. PICkit™ Serial Analyzer PC Program 3.1 INTRODUCTION This chapter covers the installation, starting and high-level operations of the PICkit Serial Analyzer program. Detailed information about the entering of data and commands for specific serial communications modes are given in the following chapters. 3.2 HIGHLIGHTS This chapter discusses: • • • • • 3.3 Installing The PICkit Serial Analyzer Software Starting the Program Configuration Wizard Main Window Specific Communications Modes INSTALLING THE PICkit™ SERIAL ANALYZER SOFTWARE Insert the PICKit Serial Analyzer CD-ROM into the CD-ROM drive. In a few moments the introductory screen should be displayed. Follow the directions on the screen to install the PICkit Serial Analyzer software. If the introductory screen does not appear, browse to the CD-ROM directory and select the AutorunPro.exe program. Note: 3.4 The PICkit Serial Analyzer program requires the Microsoft® .NET Framework Version 2.0. STARTING THE PROGRAM You can start the program by • Clicking on the desktop icon, or • Navigating to Start>All Programs>Microchip>PICkit Serial Analyzer After a few moments, the program will start and display the Main window as shown in Figure 3-1. © 2009 Microchip Technology Inc. DS51647C-page 17 PICkit™ Serial Analyzer User’s Guide FIGURE 3-1: 3.5 PICkit™ SERIAL ANALYZER MAIN WINDOW CONFIGURATION WIZARD If it is the first time that the PICkit Serial Analyzer program is run, the Configuration Wizard will run automatically. The Configuration Wizard can be manually invoked by selecting PICkit Serial Analyzer > Run Configuration Wizard from the menu bar. The Configuration Wizard will guide you through the basic steps to configure the PICkit Serial Analyzer program for a specific communications mode (I2C Master, I2C Slave, SPI, USART, LIN, Microwire). Advanced configuration can be done from the Configuration window by selecting PICkit Serial Analyzer > Configure Communications Mode from the menu bar. As an example, Figure 3-2 through Figure 3-7 show how to configure for I2C Master mode. Refer to the specific communications chapter for detailed information on the Configuration Wizard for that communications mode. The Configuration Wizard Welcome window is shown in Figure 3-2. You may choose to continue by clicking on the Next button or canceling the wizard by clicking on the Cancel button. DS51647C-page 18 © 2009 Microchip Technology Inc. PICkit™ Serial Analyzer PC Program FIGURE 3-2: CONFIGURATION WIZARD – WELCOME The Configuration Wizard Page 1 of 4, as shown in Figure 3-3, displays the available communications modes and allows you to choose one of the modes. FIGURE 3-3: CONFIGURATION WIZARD – PAGE 1 OF 4 In this example, I2C Master Communication mode is selected. The Configuration Wizard Page 2 of 4, as shown in Figure 3-4, allows you to select the bus speed. A more comprehensive list of bus speeds can be chosen from the Configuration window by selecting PICkit Serial Analyzer > Configure Communications Mode from the menu bar. FIGURE 3-4: © 2009 Microchip Technology Inc. CONFIGURATION WIZARD – PAGE 2 OF 4 DS51647C-page 19 PICkit™ Serial Analyzer User’s Guide The I2C bus requires pull-up resistors. The PICkit Serial Analyzer has the ability to enable internal 2.2 kΩ pull-up resistors. If the target device does not have pull-up resistors installed, then enable pull-ups by selecting the Yes radio button as shown in Figure 3-5. If the target device has the pull-up resistors installed, you can disable the internal pull-ups by selecting the No radio button. FIGURE 3-5: CONFIGURATION WIZARD – PAGE 3 OF 4 The PICkit Serial Analyzer can power the target device from 0 to 5 VDC at a combined total current limit of 100 mA (PICkit Serial Analyzer plus target device). The Configuration Wizard Page 4 of 4, as shown in Figure 3-6, allows you to choose between powering the target device and selecting the specific target voltage. CAUTION Even though the voltage can be set as low as 0 VDC, it is up to the user to verify the required operating voltage of the target device. CAUTION The USB port current limit is set to 100 mA. If the target plus PICkit Serial Analyzer exceeds this current limit, the USB port will turn off. The target may be powered externally if more power is required. FIGURE 3-6: DS51647C-page 20 CONFIGURATION WIZARD – PAGE 4 OF 4 © 2009 Microchip Technology Inc. PICkit™ Serial Analyzer PC Program Once all pages of the Configuration Wizard are completed, you can choose to not display the wizard at start-up by checking the Do not show this wizard on start-up again check box. FIGURE 3-7: 3.6 CONFIGURATION WIZARD – YOU’RE DONE! MAIN WINDOW 3.6.1 Menu Bar The menu bar selects various functions of the PICkit Serial Analyzer program. A summary of the functions are: FIGURE 3-8: MENU BAR COMMUNICATIONS The Communications menu selections display operation windows to enter data and commands to communicate with the target device. • Basic Operations – Displays the Basic Operations window for the communications mode selected (see PICkit Serial Analyzer -> Select Communications Mode) • Script > - Script Builder – Displays the Script Builder window - Script Execute – Displays the Script Execute window • I2C Slave Profile – Displays the I2C Slave Profile Generator (Enabled only in I2C Slave mode) © 2009 Microchip Technology Inc. DS51647C-page 21 PICkit™ Serial Analyzer User’s Guide PICkit™ SERIAL ANALYZER The PICkit Serial Analyzer menu selection commands the PICkit Serial Analyzer hardware. • Select Communications Mode > - I2C Master – Puts the PICkit Serial Analyzer in I2C Master Communications mode - I2C Slave – Puts the PICkit Serial Analyzer in I2C Slave Communications mode - SPI Master – Puts the PICkit Serial Analyzer in SPI Master Communications mode - USART Asynchronous – Puts the PICkit Serial Analyzer in USART Asynchronous Communications mode - USART Synchronous Master – Puts the PICkit Serial Analyzer in USART Synchronous Master Communications mode - LIN – Puts the PICkit Serial Analyzer in LIN Communications mode - Microwire – Puts the PICkit Serial Analyzer in Microwire Communications mode • Configure Communications Mode – Displays the Configuration Communications Mode window for the communications mode selected (see PICkit Serial Analyzer -> Select Communications Mode) • Download PICkit Serial Analyzer Firmware – Displays the Firmware Download window. Firmware updates are available from the Microchip Technology web site. • Run Configuration Wizard – Displays the Configuration Wizard • Perform System Reset – Closes and then reinitializes USB communications to the PICkit Serial Analyzer • Reset PICkit Serial Analyzer – Resets the PICkit Serial Analyzer if an error condition is present • PICkit Serial Analyzer No. – Up to four PICkit Serial Analyzers can be controlled from the PC software. The number is assigned to the hardware as it enumerates on the USB bus. DEMO BOARDS The demo boards menu selection displays the selected demonstration window. The PICkit Serial Analyzer program will be automatically configured for the communications mode of the selected demonstration. • 28-Pin Demo I2C – Displays the 28-pin demo board I2C demographical user interface. For more information see Appendix B. “28-Pin Demo Board I2C™ Demonstration Firmware”. USER DEFINED TEMPLATES • Display Template – Displays the User Defined Template window • My Templates – Selects and displays template windows created by the user VIEW • Basic – The PICkit Serial Analyzer program will display basic commands and status view • Advanced – The PICkit Serial Analyzer program will display advanced commands and status view DS51647C-page 22 © 2009 Microchip Technology Inc. PICkit™ Serial Analyzer PC Program WINDOW • New Transaction Window – Opens new or additional transaction window. Multiple transaction windows can be opened as needed for logging communications. • Cascade – Cascade windows • Tile Horizontally – Tile windows horizontally • Tile Vertically – Tile windows vertically • Close All – Closes all windows HELP • Show PICkit Serial Analyzer Connections – Displays pinout for current communications mode • Show Event Bytes – Displays Event Marker code for current communication mode • User’s Guide – Displays the PICkit Serial User’s Guide • About – Displays program version information 3.6.2 Tool Bar FIGURE 3-9: TOOL BAR The tool bar gives quick access to often used commands. These commands are also available from the menu bar. • • • • View: Basic/Advanced – toggles between Basic and Advanced views Flash LED – Flashes the Red Busy LED to confirm communications Reset – Resets the PICkit Serial Analyzer if an error condition is present Basic Operations – Displays the Basic Operations window for the communications mode selected • Configure – (Advanced View only) – Displays the Configuration window for the communications mode selected 3.6.3 Status Column The Status Column displays status information for the selected serial communications mode. In Basic View mode, a simplified status is displayed as shown in Figure 3-10. In Advanced View mode additional status information is displayed for the communications mode selected as shown in Figure 3-11. The status information that is displayed depends on the selected communications mode (I2C, SPI, USART, etc.). The following chapters give more detailed explanation of the Status window for the particular serial communications mode. © 2009 Microchip Technology Inc. DS51647C-page 23 PICkit™ Serial Analyzer User’s Guide FIGURE 3-10: STATUS COLUMN (BASIC VIEW) FIGURE 3-11: STATUS COLUMN (ADVANCED VIEW) 3.6.4 Transactions Window The Transactions window, shown in Figure 3-12, keeps a running log of the commands and data that are communicated between the PICkit Serial Analyzer program and target device. From the menu bar on the Transaction window, the contents can be saved (File>Save) to a *.txt or *.rtf file. The file can later be retrieved (File>Open) and displayed in the Transactions window. DS51647C-page 24 © 2009 Microchip Technology Inc. PICkit™ Serial Analyzer PC Program Additional Transactions windows can be displayed. From the PICkit Serial Analyzer menu bar, select Window > New Transaction Window. The active Transactions window will log the current commands and data. FIGURE 3-12: TRANSACTIONS WINDOW FILE • Open – Opens a *.txt or *.rtf file and displays it in the Transactions window • Save – Saves the contents of the Transactions window to a *.txt or *.rtf file • Close – Closes the selected Transactions window EDIT • Copy – The selected contents of the Transactions window will be copied to the clipboard • Paste – The contents of the clipboard will be pasted into the Transactions window • Select All – The contents of the Transactions window will be selected • Clear All – The contents of the Transactions window will be cleared The Transaction window also allows usage of the common keyboard shortcuts Ctrl-X, Ctrl-C, Ctrl-V to cut, copy and paste from the clipboard. CLEAR – The contents of the Transactions window will be cleared RESET TIME – Resets the PICkit Serial clock – applicable only if time markers are enabled on the Configuration page. 3.7 SERIAL COMMUNICATIONS MODES Detailed information about the entering of data and commands for specific serial communications modes are given in the following chapters. © 2009 Microchip Technology Inc. DS51647C-page 25 PICkit™ Serial Analyzer User’s Guide NOTES: DS51647C-page 26 © 2009 Microchip Technology Inc. PICkit™ SERIAL ANALYZER USER’S GUIDE Chapter 4. I2C™ Master Communications 4.1 INTRODUCTION This chapter describes the I2C Master Communications mode. I2C data and commands can be entered using a Basic Communications window or by creating script commands. It is assumed that the user is familiar with the I2C protocol. For more information see: • The I2C Bus Specification Version 2.1 January 2000 is available from NXP Semiconductor (formerly Philips Semiconductor) web site at: http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf • An I2C Master Communications tutorial is available on the Microchip Technology web site. Click on the links: Support -> Getting Started -> PIC MCU Tutorials -> I2C Master Mode • Several application notes are available on the Microchip Technology web site. Click on links: Design -> Technical Documentation -> Tutorials -> I2C Master Mode 4.2 HIGHLIGHTS This chapter discusses: • • • • • • 4.3 PICkit Serial Pin Assignments Selecting Communications Mode Configuring I2C Communications Mode Communications: Basic Operations Script Builder Script Execute PICkit SERIAL PIN ASSIGNMENTS The PICkit Serial Analyzer pin assignments for I2C Master mode are: TABLE 4-1: PIN ASSIGNMENTS Pin Label Type 1 AUX1 Input/Output 2 +V Power Target Power 3 GND Power Ground 4 SDA Input/Output Serial Data Serial Clock 5 SCL Power 6 AUX2 Input/Output © 2009 Microchip Technology Inc. Description Auxiliary I/O port pin No. 1 Auxiliary I/O port pin No. 2 DS51647C-page 27 PICkit™ Serial Analyzer User’s Guide 4.4 SELECTING COMMUNICATIONS MODE The I2C Master Communications mode is selected from the Configuration Wizard or menu bar. Configuration Wizard – Select PICkit Serial Analyzer > Run Configuration Wizard from the menu bar Menu Bar – Select PICkit Serial Analyzer > Select Communications Mode > I2C Master 4.5 CONFIGURING I2C COMMUNICATIONS MODE Once the communications mode has been selected, it is configured from the Configuration Wizard or menu bar. Configuration Wizard – Select PICkit Serial Analyzer > Run Configuration Wizard from the menu bar Menu Bar – Select PICkit Serial Analyzer > Configure Communications Mode The Configure Mode window will open. Depending on the view selected, the Basic View (Figure 4-1) displays a minimum choice of configurations commands. The Advanced View (Figure 4-2) displays an extended choice of configuration commands. Save the configuration by clicking on the Save Changes button. FIGURE 4-1: I2C™ CONFIGURE COMMUNICATIONS MODE – BASIC VIEW OPTIONS • Enable Event Markers – Enable event markers • Enable Time Markers – Enable time-stamp to accompany all event markers • Enable Pullups – Enable internal 2.2 kΩ pull-ups on SDA and SCL communication lines VOLTAGE • PICkit Serial will power my device – Select the check box if the PICkit Serial will power the target device. The target can be powered at 5 VDC or a user selectable variable voltage. CAUTION Even though the voltage can be set as low as 0 VDC, it is up to the user to verify the required operating voltage of the target device. DS51647C-page 28 © 2009 Microchip Technology Inc. I2C™ Master Communications CAUTION The USB port current limit is set to 100 mA. If the target plus PICkit Serial Analyzer exceeds this current limit, the USB port will turn off. The target may be powered externally if more power is required. COMM I2CM BIT RATE Select the desired I2C bus bit rate using the drop down box. FIGURE 4-2: I2C™ CONFIGURE COMMUNICATIONS MODE – ADVANCED VIEW SCRIPT TIME-OUT When sending scripts, the software will wait a maximum of script time-out ms to receive a script complete tag before issuing an error. If your I2C hardware is slow to respond or you are transferring a lot of data, you may need to increase the script time-out to avoid errors. EVENT MARKERS • • • • • • • • • • • • • • • • Abrt Mac Exe – Enable event marker: abort ‘macro’ execution Macro Loop – Enable event marker: top of ‘macro’ loop Mac Lp 65536 – Enable event marker: ‘macro’ loop count overflow (i.e., 65536) Mac Lp Done – Enable event marker: ‘macro’ loop iterations complete Timeout Timer1 – Enable event marker: Timer1 expired Timeout Timer2 – Enable event marker: Timer2 expired Status Error – Enable event marker: change in status byte Start Bit – Enable event marker: Start bit Stop Bit – Enable event marker: Stop bit Restart Bit – Enable event marker: Restart bit Ack/Nack TX – Enable event marker: ACK or NACK byte transmit Ack/Nack RX – Enable event marker: ACK or NACK byte received Write Byte – Enable event marker: write byte Read Byte – Enable event marker: read byte TX Error – Enable event marker: TX error Status Error – Enable event marker: change in I2C status byte © 2009 Microchip Technology Inc. DS51647C-page 29 PICkit™ Serial Analyzer User’s Guide ADVANCED OPTIONS • Disable LED2 Default – Disable default LED2 behavior (LED2 = Yellow ‘Target’ LED) • Disable LED1 Default – Disable default LED1 behavior (LED1 = Red ‘Busy’ LED) • Enable Switch Test – Enable low-level switch test: - Switch Off (not depressed) – blink LED1, LED2 off - Switch ON (depressed) – blink LED2, LED1 off • AUX1 Default State – AUX1 communication line – default state (0 | 1) • AUX2 Default State – AUX2 communication line – default state (0 | 1) • AUX1 Direction – AUX1 communication line – direction: 1: input, 0: output • AUX2 Direction – AUX2 communication line – direction: 1: input, 0: output 4.6 COMMUNICATIONS: BASIC OPERATIONS The I2C Basic Operations window can be opened by selecting: • Communications: Basic Operations from the tool bar, or • Communications > Basic Operations from the menu bar The I2C Basic Operations window is shown in Figure 4-3. There are three basic communications commands, Read and Write and Receive. Read performs a combination Write then Read commands to the target device (refer to the I2C Specification reference in Section 4.1 “Introduction” above). The basic structure of the command is: • Start bit (S_) • Slave Address[W] – Enter the slave address of the device to communicate with. The Write bit should be cleared to indicate a write operation. • Word Address – Enter the word address • Restart (RS), • Slave Address[R] – The slave address with the Write bit set will be automatically entered when the Slave Address[W] has been entered. • Byte Count – Enter the number of bytes to be read • Stop bit (P_) Note: The “x” indicates the value is a hexadecimal number. Clicking on “x” will toggle it to a “d” indicating that the value is a decimal number. Write performs a write operation to the target device (refer to The I2C Specification reference in Section 4.1 “Introduction” above). The basic structure of the command is: • Start bit (S_) • Slave Address[W] – Enter the slave address of the device to communicate with. The Write bit should be cleared to indicate a write operation. • Word Address – Enter the word address • Data – Enter up to eight bytes of data • Stop bit (P_) The command will be logged in the Transactions window. A listing of the command abbreviations is given in Table 4-2. DS51647C-page 30 © 2009 Microchip Technology Inc. I2C™ Master Communications Receive issues a simple Read command to the target device (refer to The I2C Specification reference in Section 4.1 “Introduction”. The basic structure of the command is: • Start bit (S_) • Slave Address[W] – Enter the slave address of the device to communicate with. The Write bit should be set to indicate a read operation. • Byte Count – Enter the number of bytes to receive • Stop bit (P_) FIGURE 4-3: 4.7 I2C™ BASIC OPERATIONS SCRIPT BUILDER I2C commands can be combined into scripts, saved, and used over again. The Script Builder window is opened by selecting Communications > Script > Script Builder from the menu bar. The Script Builder is shown in Figure 4-4. The Script Builder window is divided into four columns as shown in Figures 4-4 through 4-8. FIGURE 4-4: © 2009 Microchip Technology Inc. I2C™ SCRIPT BUILDER DS51647C-page 31 PICkit™ Serial Analyzer User’s Guide 4.7.1 Script Commands The left most column contains the script commands as shown in Figure 4-5. • Script Name – Enter the name of the script • Save Script – Saves the script • Execute Script – Executes (performs) the script displayed in the Script Detail column • Clear Script – Clears the Script Detail column • Del User Scripts – Deletes scripts from the User Scripts column • Show Array – Displays a spreadsheet-like table in which large amounts of data may be entered. This data can be included in the script by right clicking in a Script Detail cell and choosing “Insert Array”. FIGURE 4-5: 4.7.2 I2C™ SCRIPT BUILDER – SCRIPT COMMANDS Script Commands Example Scripts The second column contains Example I2CM Scripts as shown in Figure 4-6. These can be studied to learn how to create or to edit custom scripts. To load the example script into the Script Detail column, either double click or right click and select from the local menu. DS51647C-page 32 © 2009 Microchip Technology Inc. I2C™ Master Communications FIGURE 4-6: I2C™ SCRIPT BUILDER – EXAMPLE SCRIPTS Example Scripts 4.7.3 Script Detail The third column contains Script Detail as shown in Figure 4-7. This column is used to create the script or view an existing script. More information about creating a custom script is discussed in Section 4.7.5 “Creating A Script”. To load a user script from the User Scripts column into the Script Detail column, the user can double click or right click and select from the local menu. Note: The “x” indicates the value is a hexadecimal number. Clicking on “x” will toggle it to a “d” indicating that the value is a decimal number. FIGURE 4-7: I2C™ SCRIPT BUILDER – SCRIPT DETAIL Script Detail 4.7.4 User Scripts The fourth column contains User I2CM Scripts as shown in Figure 4-8. User scripts that are created, named and saved are displayed in the User Scripts column. To load a user script from the User Scripts column into the Script Detail column, the user can double click or right click and select from the local menu. © 2009 Microchip Technology Inc. DS51647C-page 33 PICkit™ Serial Analyzer User’s Guide User Scripts can be deleted by right clicking and selecting Delete Script from the local menu. FIGURE 4-8: I2C™ SCRIPT BUILDER – USER SCRIPTS User Scripts 4.7.5 Creating A Script Scripts are created by placing the cursor into the Script Detail column and right clicking. A local menu will be displayed as shown in Figure 4-9. Select from the choice of commands or script macro commands. The sequence of macro commands are executed from top to bottom. Macro commands are entered by right clicking in the box and selecting from the local menu as shown in Figure 4-9. Macro commands are entered according to the sequence of events as defined by the I2C bus protocol. Studying the example scripts is a good way to learn the sequence of events. The example scripts can also be modified and saved under a different name. CAUTION The choice of macro commands is very flexible. Therefore, the correctness of the script has to be verified by the user. The PICkit Serial Analyzer program does not verify the correctness of the script. A complete listing of the available macro commands is given in Table 4-2. The macro command abbreviation will be displayed in the Transactions window. The Transactions window keeps a running log of the commands and data sent to and from the target device. DS51647C-page 34 © 2009 Microchip Technology Inc. I2C™ Master Communications I2C™ SCRIPT BUILDER – CREATING A SCRIPT FIGURE 4-9: TABLE 4-2: I2C™ SCRIPT MACRO COMMAND Command Abbreviation Macro Command Description I2CINIT [I_] I2C™ Initialization I2TART [S_] I2C™ Start I2TOP [P_] I2C™ Stop I2CRESTART [RS] I2C™ Restart I2CWRTBYT [W_] I2C™ Write Bytes. Next byte is the byte count, followed by the data. I2CRDBYT [R_] I2C™ Read Bytes. Next byte is the byte count. I2CRDBLK [RB] I2C™ Read Block I2CBITRATE [BR] Set I2C™ Bit Rate – min: 0 = 35k, max: 127 = 100k. Next byte is the bit rate. I2CRESET [RE] Reset MSSP module I2CRDBYTNLB [RN] Read bytes – NACK last byte. Next byte is the byte count. I2CRDBLKNLB [RBN] Read block – NACK last byte I2CAUX1RST [A1RST] Reset AUX1 I2CAUX1SET [A1RST] Set AUX1 I2CAUX1OUT [A1OUT] Set AUX1 direction to Output I2CAUX1IN [A1IN] Set AUX1 direction to Input I2CAUX1W0 [A1W0] AUX1 Wait 0 I2CAUX1W1 [A1W1] AUX1 Wait 1 I2CAUX2RST [A2RST] Reset AUX2 I2CAUX2SET [A2RST] Set AUX2 I2CAUX2OUT [A2OUT] Set AUX2 direction to Output I2CAUX2IN [A2IN] Set AUX2 direction to Input I2CAUX2W0 [A2W0] AUX2 Wait 0 I2CAUX2W1 [A2W1] AUX2 Wait 1 © 2009 Microchip Technology Inc. DS51647C-page 35 PICkit™ Serial Analyzer User’s Guide 4.8 SCRIPT EXECUTE The Script Execute window is shown in Figure 4-10. Once scripts are created using the Script Builder, they can be assigned to buttons in the Script Execute window. This makes a convenient window to execute multiple scripts either individually or iteratively. Script executing will be logged in the Transactions window. The Script Execute window is opened by selecting Communications > Script > Script Execute from the menu bar. FIGURE 4-10: 4.8.1 I2C™ SCRIPT EXECUTE Assignable Buttons User created scripts will be displayed in the central I2C Scripts column. To assign a script to a button, click on the script name and drag it to the desired Assignable Buttons in the right column. The script will be executed once each time the button is clicked. The Assignable Buttons can be cleared by clicking on the Clear Buttons button. 4.8.2 Iteration Scripts can be executed a user-defined number of times at a specified interval of time. Figure 4-11 shows an example. A script named Read_Memory has been assigned to the Iteration button in the left column. The number of iterations are entered in the Iterations box and the delay in millisecond in the Delay box. A summary of the iterations is displayed in the left column. The macro is executed when the Iteration button is clicked. DS51647C-page 36 © 2009 Microchip Technology Inc. I2C™ Master Communications FIGURE 4-11: © 2009 Microchip Technology Inc. I2C™ SCRIPT EXECUTE – EXAMPLE DS51647C-page 37 PICkit™ Serial Analyzer User’s Guide NOTES: DS51647C-page 38 © 2009 Microchip Technology Inc. PICkit™ SERIAL ANALYZER USER’S GUIDE Chapter 5. I2C™ Slave Communications 5.1 INTRODUCTION This chapter describes I2C Slave Communications. The I2C Slave mode allows you to mimic an I2C slave by responding to standard Read, Write and Receive commands. You can mimic an I2C slave device from either the PICkit Serial Analyzer PC interface (Interactive mode), or from the PICkit Serial Analyzer itself (Auto mode). Additionally, you can run the Interactive mode from either the Basic Communications page, or from the I2C Slave Profile page. It is assumed that the user is familiar with the I2C protocol. For more information see: • The I2C Bus Specification Version 2.1 January 2000 is available from NXP Semiconductor (formerly Philips Semiconductor) web site at: http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf • An I2C Master Communications tutorial is available on the Microchip Technology web site. Click on the links: Support -> Getting Started -> PIC MCU Tutorials ->I2C Master Mode • Several application notes are available on the Microchip Technology web site. Click on links: Design -> Technical Documentation -> Tutorials -> I2C Master Mode 5.2 HIGHLIGHTS This chapter discusses: • • • • • 5.3 PICkit Serial Pin Assignments Selecting Communications Mode Configuring I2C Communications Mode Communications: Basic Operations I2C Profile Generator PICkit SERIAL PIN ASSIGNMENTS The PICkit Serial Analyzer pin assignments for I2C Slave mode are listed in the following table: TABLE 5-1: PIN ASSIGNMENTS Pin Label Type Description 1 Unused — — 2 +V Power Target Power 3 GND Power Ground 4 SDA Input/Output Serial Data 5 SCL Power Serial Clock 6 Unused — — © 2009 Microchip Technology Inc. DS51647C-page 39 PICkit™ Serial Analyzer User’s Guide 5.4 SELECTING COMMUNICATIONS MODE The I2C Slave Communications mode is selected from the Configuration Wizard or menu bar. Configuration Wizard – Select PICkit Serial Analyzer > Run Configuration Wizard from the menu bar Menu Bar – Select PICkit Serial Analyzer > Select Communications Mode > I2C Slave 5.5 CONFIGURING I2C SLAVE COMMUNICATIONS MODE Once the communications mode has been selected, it is configured from the Configuration Wizard or menu bar. Configuration Wizard – Select PICkit Serial Analyzer > Run Configuration Wizard from the menu bar Menu Bar – Select PICkit Serial Analyzer > Configure Communications Mode The Configure Mode window will open. Depending on the view selected, the Basic View (Figure 5-1) displays a minimum choice of configurations commands. The Advanced View (Figure 5-2) displays an extended choice of configuration commands. Save the configuration by clicking on the Save Changes button. FIGURE 5-1: I2C™ SLAVE CONFIGURE COMMUNICATIONS MODE – BASIC VIEW OPTIONS • Enable Event Markers – Enable event markers • Enable Time Markers – Enable time-stamp to accompany all event markers • Enable Pullups – Enable internal 2.2 kΩ pull-ups on SDA and SCL communication lines VOLTAGE • PICkit Serial will power my device – Select the check box if the PICkit Serial will power the target device. The target can be powered at 5 VDC or a user selectable variable voltage. DS51647C-page 40 © 2009 Microchip Technology Inc. I2C™ Slave Communications I2C SLAVE MODE There are three modes of I2C slave operation: • Default: Basic/mechanical mode of operation in which the PICkit Serial Analyzer blindly accepts any/all ‘write’ data and provides canned/default ‘read’ data in response to any enabled I2C address and all device addresses. • Interactive: This mode allows the host to orchestrate I2C transactions in ‘real time’. This necessarily requires the host to provide ‘read’ and ‘receive’ data as needed while the PICkit Serial Analyzer holds the I2C bus clock line (waiting). ‘Write’ data is reported to the host via transaction event tags. • Automatic: In Auto mode the PICkit Serial Analyzer operates autonomously as defined by a dynamic “slave profile” table stored in PICkit Serial Analyzer RAM. At any time the host can read and/or update the table as needed. SCRIPT TIME-OUT When the slave responds to Read and Receive queries the software will wait a maximum of script time-out ms to receive a script complete tag before issuing an error. If your slave profile is responding with large amounts of data, you may need to increase the script time-out to avoid errors. FIGURE 5-2: I2C™ SLAVE CONFIGURE COMMUNICATIONS MODE – ADVANCED VIEW EVENT MARKERS • • • • • • • • • • • Abrt Mac Exe – Enable event marker: abort ‘macro’ execution Macro Loop – Enable event marker: top of ‘macro’ loop Mac Lp 65536 – Enable event marker: ‘macro’ loop count overflow (i.e., 65536) Mac Lp Done – Enable event marker: ‘macro’ loop iterations complete Timeout Timer1 – Enable event marker: Timer1 expired Timeout Timer2 – Enable event marker: Timer2 expired Status Error – Enable event marker: change in status byte Addr RX – Enable event marker: Slave address received Data RX – Enable event marker: Data received Data TX – Enable event marker: Data transmitted Ack RX – Enable event marker: Ack byte received © 2009 Microchip Technology Inc. DS51647C-page 41 PICkit™ Serial Analyzer User’s Guide • • • • • • Nack RX – Enable event marker: NACK byte received Reg Read – Enable event marker: Register Read Reg Write – Enable event marker: Register Write Status Error – Enable event marker: change in I2C status byte Stop – Enable event marker: I2C Stop Data RQ – Enable event marker: Data request Note: Disabling any of the event markers may cause the software to not respond correctly, or at all. ADVANCED OPTIONS • Disable LED2 Default – Disable default LED2 behavior (LED2 = Yellow ‘Target’ LED) • Disable LED1 Default – Disable default LED1 behavior (LED1 = Red ‘Busy’ LED) • Enable Switch Test – Enable low-level switch test DEFAULT MODE READ DATA • Sets byte 0 and following byte response for Default mode SLAVE ADDRESS/MASK • Sets the I2C slave address to which the PICkit Serial Analyzer will respond Note: DS51647C-page 42 The address mask is not currently implemented due to hardware limitations. It is left in the software for possible future use. © 2009 Microchip Technology Inc. I2C™ Slave Communications 5.6 COMMUNICATIONS: BASIC OPERATIONS The I2C Slave Basic Operations window can be opened by selecting: • Basic Operations from the tool bar, or • Communications > Basic Operations from the menu bar The I2C Slave Basic Operations window is shown in Figures 5-3. There are three basic communications commands, Receive, Write and Read. FIGURE 5-3: I2C™ SLAVE – BASIC OPERATIONS Receive responds to a basic Receive request from the master. In Return Byte Count, enter the number of bytes a Receive request will respond with, then enter the data to be returned in the data array. The Basic page limits you to eight bytes of returned data. Note: The “x” indicates the value is a hexadecimal number. Clicking on “x” will toggle it to a “d” indicating that the value is a decimal number. Write simply displays the byte count and data written by the master. Read responds to a basic Read request by the master. In Return Byte Count, enter the number of bytes a Read request will respond with, then enter the data to be returned in the data array. The Basic page limits you to eight bytes of returned data. Byte Count will display the number of bytes between the slave read address and the slave write address. Data will display the data between the slave read address and the slave write address. PICkit Serial Analyzer Slave Address set the slave address here you wish the software to respond to, then press the Apply button. A confirmation message should appear on the Transactions window. © 2009 Microchip Technology Inc. DS51647C-page 43 PICkit™ Serial Analyzer User’s Guide Show Profile Generator. Press this to close the Basic Operations page and open the I2C Slave Profile Generator page. Note: 5.7 The Basic Operations page and the Profile Generator page cannot both be opened at the same time due to DLL conflict issues. COMMUNICATIONS: PROFILE GENERATOR The I2C Slave Profile Generator allows you to mimic an I2C slave device from either the PICkit Serial Analyzer PC interface, or from the PICkit Serial Analyzer itself. The trade-off between the two methods is flexibility vs. response time. Mimicking a device from the PC allows for a great deal of run time flexibility, while running from the PICkit Serial Analyzer decreases response time. You can mimic up to eight registers in a profile. DISPLAYING THE I2C SLAVE PROFILE GENERATOR The profile generator may be opened by either pressing the Show Profile Generator button on the I2CS Basic Operations page, or by the menu item Communications > I2C Slave Profile Generator. Figure 5-4 shows the Slave Profile Generator with the first two registers activated. FIGURE 5-4: I2C™ SLAVE PROFILE GENERATOR CREATING A PROFILE Create a profile by filling in Inputs for each register: • Active – Allows you to activate or deactivate a register. This must be active before you can fill in the rest of the data. The purpose of this checkbox is to allow run time activation or deactivation of a register. • Comm – Flashes when the register is activated (read from or written to). • Slave Address – Hex representation of the register’s slave address. • Register Name – Enter a register name. This is for reference only and does not affect operation. • Word Address – Hex representation of the word address of the register (will be forced to zero if Memory Block is selected. • Enable Read – Determines whether or not the register is read accessible. • Enable Write – Determines whether or not the register is write accessible. DS51647C-page 44 © 2009 Microchip Technology Inc. I2C™ Slave Communications • Memory Block – Check if the register is to be treated as a contiguous block of memory, such as an EE array. • Data Size – Number of bytes in the register. If the register is not a Memory Block, this many bytes will be returned when the register is read. If the register is a Memory Block, the profile generator will return one byte at a time until it is Nacked. • Data – Stores the data belonging to the register (hex format) • Use Large Data Array – If the data in the register is larger than 8 bytes, press this button to display a 256 byte array into which you may enter data. Once the parameters are entered, they can be saved as an I2C Slave Profile file (*.pfl). • File->Open – Open an existing profile (*.pfl) • File->Save – Save or replace a profile (*.pfl) • Clear All – Resets (clears) all registers PICkit SERIAL SLAVE ADDRESS In the groupbox ‘PICkit Serial Analyzer Slave Address’ enter the hex representation of the slave address you want the PICkit Serial Analyzer to respond to, then press the Apply button. This writes the address into the Analyzer firmware. MODE If you wish to run the slave profile from the PC (GUI) there is nothing more to do. If you wish to run it from the PICkit Serial Analyzer, press the appropriate radio button in the ‘Mode’ groupbox. Note: If you are running the profile from the PICkit Serial Analyzer and you wish to change the profile, you must press the Apply Profile button to load the changes into the firmware. Note: When running the profile from the PICkit Serial Analyzer instead of the PC, you are limited to 255 data and Configuration bytes (profile length). If you attempt to write too large of a profile to the PICkit Serial Analyzer, an error message will be sent to the Transactions window telling you your profile length. © 2009 Microchip Technology Inc. DS51647C-page 45 PICkit™ Serial Analyzer User’s Guide NOTES: DS51647C-page 46 © 2009 Microchip Technology Inc. PICkit™ SERIAL ANALYZER USER’S GUIDE Chapter 6. Lin Communications 6.1 INTRODUCTION This chapter describes the LIN Communications mode. LIN data and commands can be entered using a Basic Communications window. To use LIN communications, you must attach the LIN Adapter to the PICkit Serial Analyzer and supply it power prior to attempting any communications. It is assumed that the user is familiar with the LIN protocol. For more information see: LIN bus Specification Ver. 1.2: http://www.lin-subbus.de/ 6.2 HIGHLIGHTS This chapter discusses: • • • • 6.3 PICkit Serial Pin Assignments Selecting Communications Mode Configuring LIN Communications Mode Communications: Basic Operations PICkit SERIAL PIN ASSIGNMENTS The PICkit Serial Analyzer pin assignments for LIN mode are: TABLE 6-1: 6.4 PIN ASSIGNMENTS Pin Label Type Description 1 TX Output Transmit 2 Unused — — 3 GND Power Ground 4 /Wake Input Chip Select/Wake 5 Fault/TXE Input/Output Fault/TXE 6 RX Input Receive SELECTING COMMUNICATIONS MODE The LIN Communications mode is selected from the Configuration Wizard or menu bar. Configuration Wizard – Select PICkit Serial Analyzer > Run Configuration Wizard from the menu bar Menu Bar – Select PICkit Serial Analyzer > Select Communications Mode > LIN © 2009 Microchip Technology Inc. DS51647C-page 47 PICkit™ Serial Analyzer User’s Guide 6.5 CONFIGURING LIN SLAVE COMMUNICATIONS MODE Once the communications mode has been selected, it is configured from the Configuration Wizard or menu bar. Configuration Wizard – Select PICkit Serial Analyzer > Run Configuration Wizard from the menu bar Menu Bar – Select PICkit Serial Analyzer > Configure Communications Mode The Configure Mode window will open. Depending on the view selected, the Basic View (Figure 6-1) displays a minimum choice of configurations commands. The Advanced View (Figure 6-2) displays an extended choice of configuration commands. Save the configuration by clicking on the Save Changes button. FIGURE 6-1: LIN CONFIGURE COMMUNICATIONS MODE – BASIC VIEW OPTIONS • Enable Event Markers – Enable event markers • Enable Time Markers – Enable time-stamp to accompany all event markers LIN BAUD Enter desired baud rate here. You are limited to a range of 1000 to 20000. SCRIPT TIME-OUT When transmitting frames, the software will wait a maximum of script time-out ms to receive a script complete tag before issuing an error. If your LIN hardware is slow to respond, you may need to increase the script time-out to avoid errors. DS51647C-page 48 © 2009 Microchip Technology Inc. Lin Communications FIGURE 6-2: LIN CONFIGURE COMMUNICATIONS MODE – ADVANCED VIEW EVENT MARKERS • • • • • • • • • • • • • Abrt Mac Exe – Enable event marker: abort ‘macro’ execution Macro Loop – Enable event marker: top of ‘macro’ loop Mac Lp 65536 – Enable event marker: ‘macro’ loop count overflow (i.e., 65536) Mac Lp Done – Enable event marker: ‘macro’ loop iterations complete Timeout Timer1 – Enable event marker: Timer1 expired Timeout Timer2 – Enable event marker: Timer2 expired Status Error – Enable event marker: Change in status byte Data RX – Enable event marker: Data received Data TX – Enable event marker: Data transmitted Break TX – Enable event marker: Break transmitted Break RX – Enable event marker: Break received Auto BAUD – Enable event marker: Automatic baud rate selection Status Error – Enable event marker: Change in LIN status byte Note: Disabling any of the event markers may cause the software to not respond correctly, or at all. ADVANCED OPTIONS • Disable LED2 Default – Disable default LED2 behavior (LED2 = Yellow ‘Target’ LED) • Disable LED1 Default – Disable default LED1 behavior (LED1 = Red ‘Busy’ LED) • Enable Switch Test – Enable low-level switch test • Chip Select Hi – Sets LIN adapter Chip Select high • Receive Enable – Enables f/w to receive data • Auto BAUD detect/set – Enables Auto-Baud Detections and setting © 2009 Microchip Technology Inc. DS51647C-page 49 PICkit™ Serial Analyzer User’s Guide 6.6 COMMUNICATIONS: BASIC OPERATIONS The LIN Basic Operations window can be opened by selecting: • Basic Operations from the tool bar, or • Communications > Basic Operations from the menu bar The LIN Basic Operations window is shown in Figure 6-3. FIGURE 6-3: LIN BASIC OPERATIONS Display Mode: Determines when OnReceive data is displayed. Listen will display when the completed frame is different than the last frame, Transmit will not display data, and Display All will display all OnReceive data. Output Window: Toggles between displaying data on the Transactions window and a specialized LIN display. Baud: Allows the user to get and set the baud rate. Checksum Type: Toggles between Classic, Enhanced or no checksum. Commands: Reset Frame Buffer forces a manual Reset of the working frame in the DLL. Reset Timestamp forces the next frame to be received to start at time 0.0 seconds. Transmit. Allows the user to transmit a frame. Enter the MasterID, and frame data if any. The checksum is automatically calculated. Press the Execute button to transmit the frame. The Clear button will clear the contents of the MasterID and the data text boxes. DS51647C-page 50 © 2009 Microchip Technology Inc. Lin Communications Note: © 2009 Microchip Technology Inc. The “x” indicates the value is a hexadecimal number. Clicking on “x” will toggle it to a “d” indicating that the value is a decimal number. DS51647C-page 51 PICkit™ Serial Analyzer User’s Guide NOTES: DS51647C-page 52 © 2009 Microchip Technology Inc. PICkit™ SERIAL ANALYZER USER’S GUIDE Chapter 7. SPI and Microwire Master Communications 7.1 INTRODUCTION This chapter describes the SPI and Microwire Master Communications mode. Microwire is a subset of the SPI protocol. Data and commands can be entered using a Basic Communications window or by creating script commands. It is assumed that the user is familiar with the SPI protocol. For more information see: An SPI tutorial is available on the Microchip Technology web site. Click on the links: Support -> Getting Started -> PIC MCU Tutorials -> SPI - PICmicro Serial Peripheral Interface Several application notes are available on the Microchip Technology web site. Click on links: Design -> Technical Documentation -> Tutorials -> SPI-PICMicro Serial Peripheral Interface 7.2 HIGHLIGHTS This chapter discusses: • • • • • • 7.3 PICkit Serial Analyzer Pin Assignments Selecting Communications Mode Configurating SPI Communications Mode Communications: Basic Operations Script Builder Script Execute PICkit™ SERIAL ANALYZER PIN ASSIGNMENTS The PICkit Serial Analyzer pin assignments for SPI Master mode are: TABLE 7-1: PIN ASSIGNMENTS Pin Label Type 1 CS Output Chip Select (active-low) 2 +V Power Target Power 3 GND Power Ground 4 SDI Input 5 SCK Output Serial Clock 6 SDO Output Serial Data Out (with respect to the PICkit™ Serial Analyzer) © 2009 Microchip Technology Inc. Description Serial Data In (with respect to the PICkit™ Serial Analyzer) DS51647C-page 53 PICkit™ Serial Analyzer User’s Guide 7.4 SELECTING COMMUNICATIONS MODE The SPI Master Communications mode is selected from the Configuration Wizard or menu bar. Configuration Wizard – Select PICkit Serial Analyzer > Run Configuration Wizard from the menu bar Menu Bar – Select PICkit Serial Analyzer > Select Communications Mode > SPI Master 7.5 CONFIGURATING SPI COMMUNICATIONS MODE Once the Communications mode has been selected, it is configured from the Configuration Wizard or menu bar. Configuration Wizard – Select PICkit Serial Analyzer > Run Configuration Wizard from the menu bar Menu Bar – Select PICkit Serial Analyzer > Configure Communications Mode The Configure Mode window will open. Depending on the view selected, the Basic View (Figure 7-1) displays a minimum choice of configurations commands. The Advanced View (Figure 7-2) displays an extended choice of configuration commands. Save the configuration by clicking on the Save Changes button. FIGURE 7-1: SPI CONFIGURE COMMUNICATIONS MODE – BASIC VIEW OPTIONS • Enable Event Markers – Enable event markers • Enable Time Markers – Enable time-stamp to accompany all event markers VOLTAGE • PICkit Serial will power my device – Select the check box if the PICkit Serial will power the target device. The target will be powered at 5 VDC CAUTION Even though the voltage can be set as low as 0 VDC, it is up to the user to verify the required operating voltage of the target device. DS51647C-page 54 © 2009 Microchip Technology Inc. SPI and Microwire Master Communications CAUTION The USB port current limit is set to 100 mA. If the target plus PICkit Serial Analyzer exceeds this current limit, the USB port will turn off. The target may be powered externally if more power is required. SPI BIT RATE Select the desired SPI bit rate by selecting the radio button for the desired range and then selecting the bit rate using the slider. FIGURE 7-2: SPI CONFIGURE COMMUNICATIONS MODE – ADVANCED VIEW EVENT MARKERS • • • • • • • • • • Abrt Mac Exe – Enable event marker: abort ‘macro’ execution Macro Loop – Enable event marker: top of ‘macro’ loop Mac Lp 65536 – Enable event marker: ‘macro’ loop count overflow (i.e., 65536) Mac Lp Done – Enable event marker: ‘macro’ loop iterations complete Timeout Timer1 – Enable event marker: Timer1 expired Timeout Timer2 – Enable event marker: Timer2 expired Status Error – Enable event marker: change in status byte Write Byte – Enable event marker: write byte Read Byte – Enable event marker: read byte Status Err – Enable event marker: change in SPI status byte ADVANCED OPTIONS • Disable LED2 Default – Disable default LED2 behavior (LED2 = Yellow ‘Target’ LED) • Disable LED1 Default – Disable default LED1 behavior (LED1 = Red ‘Busy’ LED) • Enable Switch Test – Enable low level switch test: - Switch Off (not depressed) – blink LED1, LED2 off - Switch ON (depressed) – blink LED2, LED1 off • Sample Phase – SPI transaction configuration: Sample phase • Clock Edge Select – SPI transaction configuration: Clock Edge • Clock Polarity – SPI transaction configuration: Clock Polarity © 2009 Microchip Technology Inc. DS51647C-page 55 PICkit™ Serial Analyzer User’s Guide • Auto Output Disable – Disables output during input. Allows the SDI lines and the SDO lines to be shorted for 3-wire communication. • Chip Select Polarity – Set chip polarity – active-high or active-low. 7.6 COMMUNICATIONS: BASIC OPERATIONS The SPI Basic Operations window can be opened by selecting: • Communications: Basic Operations from the tool bar, or • Basic Operations from the menu bar The SPI Basic Operations window is shown in Figure 7-3. The Basic Operations window is organized into five columns. Individual columns are enabled by clicking on the Enable check box. The Send button indicates that the column boxes are used to enter data bytes that will be transmitted to the target device. Clicking on the Send button toggles the column mode to Rcv (Receive) and the number of received bytes is entered as shown in Figure 7-4. Clicking on the Execute button will execute the enabled columns in order from left to right. The Clear button clears all boxes. Note: The “x” indicates the value is a hexadecimal number. Clicking on “x” will toggle it to a “d” indicating that the value is a decimal number. The commands will be logged in the Transactions window. A listing of the command abbreviations is given in Table 7-2. FIGURE 7-3: DS51647C-page 56 SPI BASIC OPERATIONS © 2009 Microchip Technology Inc. SPI and Microwire Master Communications FIGURE 7-4: 7.6.1 SPI BASIC OPERATIONS Basic Communications – Serial EEPROM Example Figures 7-5 through 7-7 demonstrate how to communicate with a 25LC020A SPI serial EEPROM. Refer to the 25LC020A Data Sheet (DS21833) for a detailed explanation of its SPI communications. Before data can be written to the 25LC020A, the write enable (WREN) latch must be set. This requires that CS be enabled, command 0x06 transmitted, and CS disabled. Figure 7-5 shows only Group 0 enabled. All other groups are disabled. Clicking on the Execute button will transmit only the WREN command. The command will be logged in the Transactions window. FIGURE 7-5: SEEPROM EXAMPLE – WREN COMMAND Once the WREN latch has been enabled, data can be written to the 25LC020A. Figure 7-6 shows that Group 0 has been disabled, and Group 1 enabled. Clicking on the Execute button will send the Write command (0x02), the memory address (0x00), followed by three bytes of data: 0xAA, 0xBB and 0xCC. The command will be logged in the Transactions window. © 2009 Microchip Technology Inc. DS51647C-page 57 PICkit™ Serial Analyzer User’s Guide FIGURE 7-6: SEEPROM EXAMPLE – WRITE BYTES Figure 7-7 shows how to read data from the 25LC020A. Groups 0 and 1 are disabled, and Groups 2 and 3 are enabled. This example shows how data is transmitted and received in one transaction (Chip Select, CS, active) between Groups. Clicking on the Execute button will send the Read command (0x03) and memory address (0x00) of Group 2 followed by a Read Ten Bytes command in Group 3. The commands and received data are displayed in the Transactions window. FIGURE 7-7: 7.7 SEEPROM EXAMPLE – READ BYTES SCRIPT BUILDER SPI commands can be combined into scripts, saved, and used over again. The Script Builder window is opened by selecting Communications > Script > Script Builder from the menu bar. The Script Builder is shown in Figure 7-8. The Script Builder window is divided into four columns as shown in Figures 7-9 through 7-12. DS51647C-page 58 © 2009 Microchip Technology Inc. SPI and Microwire Master Communications FIGURE 7-8: 7.7.1 SPI SCRIPT BUILDER Script Commands The left most column contains the script commands as shown in Figure 7-9. • Script Name – Enter the name of the script • Save Script – Saves the script • Execute Script – Executes (performs) the script displayed in the Script Detail column • Clear Script – Clears the Script Detail column • Del User Scripts – Deletes scripts from the User Scripts column • Show Array – Displays a spreadsheet-like table in which large amounts of data may be entered. This data can be included in the script by right clicking in a Script Detail cell and choosing “Insert Array”. FIGURE 7-9: SPI SCRIPT BUILDER – SCRIPT COMMANDS Script Commands © 2009 Microchip Technology Inc. DS51647C-page 59 PICkit™ Serial Analyzer User’s Guide 7.7.2 Example Scripts The second column contains Example Scripts as shown in Figure 7-10. These can be studied to learn how to create or to edit custom scripts. To load the example script into the Script Detail column, either double click or right click and select from the local menu. FIGURE 7-10: 7.7.3 SPI SCRIPT BUILDER – EXAMPLE SCRIPTS Example Scripts Script Detail The third column contains Script Detail as shown in Figure 7-11. This column is used to create the script or view an existing script. More information about creating a customer script is discussed in Section 7.7.5 “Creating A Script”. To load a user script from the User Scripts column into the Script Detail column, the user can double click or right click and select from the local menu. Note: DS51647C-page 60 The “x” indicates the value is a hexadecimal number. Clicking on “x” will toggle it to a “d” indicating that the value is a decimal number. © 2009 Microchip Technology Inc. SPI and Microwire Master Communications FIGURE 7-11: SPI SCRIPT BUILDER – SCRIPT DETAIL Script Detail 7.7.4 User Scripts The fourth column contains User Scripts as shown in Figure 7-12. User scripts that are created, named and saved are displayed in the User Scripts column. To load a user script from the User Scripts column into the Script Detail column, the user can double click or right click and select from the local menu. User Scripts can be deleted by right clicking and selecting Delete Script from the local menu. FIGURE 7-12: SPI SCRIPT BUILDER – USER SCRIPTS User Scripts © 2009 Microchip Technology Inc. DS51647C-page 61 PICkit™ Serial Analyzer User’s Guide 7.7.5 Creating A Script Scripts are created by placing the cursor into the Script Detail column and right clicking. A local menu will be displayed as shown in Figure 7-13. Select from the choice of commands or script macro commands. The sequence of macro commands are executed from top to bottom. Macro commands are entered by right clicking in the box and selecting from the local menu as shown in Figure 7-13. Macro commands are entered according to the sequence of events as defined by the SPI bus protocol. Studying the example scripts is a good way to learn the sequence of events. The example scripts can also be modified and saved under a different name. CAUTION The choice of macro commands is very flexible. Therefore, the correctness of the script has to be verified by the user. The PICkit Serial Analyzer program does not verify the correctness of the script. A complete listing of the available macro commands is given in Table 7-2. The macro command abbreviation will be displayed in the Transactions window. The Transactions window keeps a running log of the commands and data sent to and from the target device. FIGURE 7-13: TABLE 7-2: SPI SCRIPT BUILDER – CREATING A SCRIPT SPI SCRIPT MACRO COMMAND Macro Command DS51647C-page 62 Command Abbreviation Description SPIBITRATE [BR] Set Bit Rate. Next byte is the scaler, followed by the pre-scaler. SPIDATIN [DI] Input data. Next byte is the byte count. SPIDATOUT [DO] Output data. Next byte is the byte count, followed by the data. SPIDATIO [DIO] Simultaneous data in and out. Next byte is byte count, followed by the data. SPISDOIN [SI] Set SDO pin to Input (tri-state) SPISDOOUT [SO] Set SDO pin to Output SPIINIT [I_] Initialize SPI controller SPICSON [CSON] Assert CS (active-low) SPICSOFF [CSOF] De-assert CS (active-low) © 2009 Microchip Technology Inc. SPI and Microwire Master Communications 7.8 SCRIPT EXECUTE The Script Execute window is shown in Figure 7-14. Once scripts are created using the Script Builder, they can be assigned to buttons in the Script Execute window. This makes a convenient window to execute multiple scripts either individually or iteratively. Script executing will be logged in the Transactions window. FIGURE 7-14: 7.8.1 SPI SCRIPT EXECUTE Assignable Buttons User created scripts will be displayed in the central SPI Scripts column. To assign a script to a button, click on the script name and drag it to the desired Assignable Buttons in the right column. The script will be executed once each time the button is clicked. The Assignable Buttons can be cleared by clicking on the Clear Buttons button. 7.8.2 Iteration Scripts can be executed a user defined number of times at a specified interval of time. Figure 7-15 shows an example. A script named Read_Memory has been assigned to the Iteration button in the left column. The number of iterations are entered in the Iterations box and the delay in millisecond in the Delay box. A summary of the iterations is displayed in the left column. The macro is executed when the Iteration button is clicked. FIGURE 7-15: © 2009 Microchip Technology Inc. SPI SCRIPT EXECUTE – EXAMPLE DS51647C-page 63 PICkit™ Serial Analyzer User’s Guide NOTES: DS51647C-page 64 © 2009 Microchip Technology Inc. PICkit™ SERIAL ANALYZER USER’S GUIDE Chapter 8. USART Asynchronous Communications 8.1 INTRODUCTION This chapter describes the USART Asynchronous Communications mode. USART asynchronous data and commands can be entered using a Basic Communications window or by creating script commands. It is assumed that the user is familiar with the USART asynchronous protocol. For more information see: • USART, AUSART or EUSART chapter of the PIC® microcontroller data sheet of interest • A USART Asynchronous Communications tutorial is available on the Microchip Technology web site. Click on the links: Support -> Getting Started -> PIC MCU Tutorials -> USART - Using Asynchronous Mode • Several application notes are available on the Microchip Technology web site. Click on links: Design -> Technical Documentation -> Tutorials -> USART - Using Asynchronous Mode 8.2 HIGHLIGHTS This chapter discusses: • • • • • • 8.3 PICkit Serial Pin Assignments Selecting Communications Mode Configuring USART Asynchronous Communications Mode Communications: Basic Operations Script Builder Script Execute PICkit SERIAL PIN ASSIGNMENTS The PICkit Serial Analyzer pin assignments for USART Asynchronous Communications mode are: TABLE 8-1: USART ASYNCHRONOUS PIN ASSIGNMENTS Pin Label Type 1 TX Output Transmit Data (with respect to the PICkit™ Serial Analyzer) 2 +V Power Target Power 3 GND Power Ground 4 AUX1 Input/Output Auxiliary I/O port pin No. 1 5 AUX2 Input/Output Auxiliary I/O port pin No. 2 6 RX Input © 2009 Microchip Technology Inc. Description Receive Data (with respect to the PICkit™ Serial Analyzer) DS51647C-page 65 PICkit™ Serial Analyzer User’s Guide 8.4 SELECTING COMMUNICATIONS MODE The USART Asynchronous Communications mode is selected from the Configuration Wizard or menu bar. Configuration Wizard – Select PICkit Serial Analyzer > Run Configuration Wizard from the menu bar Menu Bar – Select PICkit Serial Analyzer > Select Communications Mode > USART Asynchronous 8.5 CONFIGURING USART ASYNCHRONOUS COMMUNICATIONS MODE Once the communications mode has been selected, it is configured from the Configuration Wizard or menu bar. Configuration Wizard – Select PICkit Serial Analyzer > Run Configuration Wizard from the menu bar Menu Bar – Select PICkit Serial Analyzer > Configure Communications Mode The Configure Mode window will open. Depending on the view selected, the Basic View (Figure 8-1) displays a minimum choice of configurations commands. The Advanced View (Figure 8-2) displays an extended choice of configuration commands. Save the configuration by clicking on the Save Changes button. FIGURE 8-1: USART ASYNCHRONOUS CONFIGURE COMMUNICATIONS MODE – BASIC VIEW OPTIONS • Enable Event Markers – Enable event markers • Enable Time Markers – Enable time-stamp to accompany all event markers VOLTAGE • PICkit Serial will power my device – Select the check box if the PICkit Serial will power the target device. The target can be powered at 5 VDC or a user selectable variable voltage. CAUTION Even though the voltage can be set as low as 0 VDC, it is up to the user to verify the required operating voltage of the target device. DS51647C-page 66 © 2009 Microchip Technology Inc. USART Asynchronous Communications CAUTION The USB port current limit is set to 100 mA. If the target plus PICkit Serial Analyzer exceeds this current limit, the USB port will turn off. The target may be powered externally if more power is required. USART BAUD Enter the desired USART symbol rate (Baud) in the text box. FIGURE 8-2: USART ASYNCHROUNOUS CONFIGURE COMMUNICATIONS MODE – ADVANCED VIEW SCRIPT TIME-OUT When sending scripts, the software will wait a maximum of script time-out ms to receive a script complete tag before issuing an error. If your hardware is slow to respond or you are transferring a lot of data, you may need to increase the script time-out to avoid errors. EVENT MARKERS • • • • • • • • • • • Abrt Mac Exe – Enable event marker: abort ‘macro’ execution Macro Loop – Enable event marker: top of ‘macro’ loop Mac Lp 65536 – Enable event marker: ‘macro’ loop count overflow (i.e., 65536) Mac Lp Done – Enable event marker: ‘macro’ loop iterations complete Timeout Timer1 – Enable event marker: Timer1 expired Timeout Timer2 – Enable event marker: Timer2 expired Status Error – Enable event marker: change in status byte Read Byte – Enable event marker: read byte Write Byte – Enable event marker: write byte Status Error – Enable event marker: change in USART status byte Break TX – Enable event marker: A “Break” has been transmitted ADVANCED OPTIONS • Disable LED2 Default – Disable default LED2 behavior (LED2 = Yellow ‘Target’ LED) • Disable LED1 Default – Disable default LED1 behavior (LED1 = Red ‘Busy’ LED) • Enable Switch Test – Enable low-level switch test © 2009 Microchip Technology Inc. DS51647C-page 67 PICkit™ Serial Analyzer User’s Guide • • • • • 8.6 AUX1 Default State – AUX1 communication line – default state (0 | 1) AUX2 Default State – AUX2 communication line – default state (0 | 1) AUX1 Direction – AUX1 communication line – direction: 1: input, 0: output AUX2 Direction – AUX2 communication line – direction: 1: input, 0: output Async Receive Disabled – Received data is disabled COMMUNICATIONS: BASIC OPERATIONS The USART Asynchronous Operations window can be opened by selecting: • Communications: Basic Operations from the tool bar, or • Basic Operations from the menu bar The USART Asynchronous Basic Operations window is shown in Figure 8-3. There are two basic communications commands, Read and Write. Data can be transmitted to the target device as 7-bit ASCII or 8-bit byte. 7-bit ASCII data is entered in the left-hand window. 8-bit byte is entered in the right-hand column. Both transmitted and received data is displayed in the Transaction window. Note: The “x” indicates the value is a hexadecimal number. Clicking on “x” will toggle it to a “d” indicating that the value is a decimal number. The command will be logged in the Transactions window. A listing of the command abbreviations is given in Table 8-2. FIGURE 8-3: 8.7 USART ASYNCHRONOUS BASIC OPERATIONS SCRIPT BUILDER USART Asynchronous commands can be combined into scripts, saved, and used over again. The Script Builder window is opened by selecting Communications > Script > Script Builder from the menu bar. The Script Builder is shown in Figure 8-4. The Script Builder window is divided into four columns as shown in Figures 8-5 through 8-8. DS51647C-page 68 © 2009 Microchip Technology Inc. USART Asynchronous Communications FIGURE 8-4: 8.7.1 USART ASYNCHRONOUS SCRIPT BUILDER Script Commands The left most column contains the script commands as shown in Figure 8-5. • Script Name – Enter the name of the script • Save Script – Saves the script • Execute Script – Executes (performs) the script displayed in the Script Detail column • Clear Script – Clears the Script Detail column • Del User Scripts – Deletes scripts from the User Scripts column • Show Array – Displays a spreadsheet-like table in which large amounts of data may be entered. This data can be included in the script by right clicking in a Script Detail cell and choosing “Insert Array”. FIGURE 8-5: USART ASYNCHRONOUS SCRIPT BUILDER – SCRIPT COMMANDS Script Commands © 2009 Microchip Technology Inc. DS51647C-page 69 PICkit™ Serial Analyzer User’s Guide 8.7.2 Example Scripts The second column contains Example Scripts as shown in Figure 8-6. These can be studied to learn how to create or to edit custom scripts. To load the example script into the Script Detail column, either double click or right click and select from the local menu. FIGURE 8-6: USART ASYNCHRONOUS SCRIPT BUILDER – EXAMPLE SCRIPTS Example Scripts 8.7.3 Script Detail The third column contains Script Detail as shown in Figure 8-7. This column is used to create the script or view an existing script. More information about creating a customer script is discussed in Section 8.7.5 “Creating A Script”. To load a user script from the User Scripts column into the Script Detail column, the user can double click or right click and select from the local menu. Note: DS51647C-page 70 The “x” indicates the value is a hexidecimal number. Clicking on “x” will toggle it to a “d” indicating that the value is a decimal number. © 2009 Microchip Technology Inc. USART Asynchronous Communications FIGURE 8-7: 8.7.4 USART ASYNCHRONOUS SCRIPT BUILDER – SCRIPT DETAIL Script Detail User Scripts The fourth column contains User Scripts as shown in Figure 8-8. User scripts that are created, named and saved are displayed in the User Scripts column. To load a user script from the User Scripts column into the Script Detail column, the user can double click or right click and select from the local menu. User Scripts can be deleted by right clicking and selecting Delete Script from the local menu. FIGURE 8-8: USART ASYNCHRONOUS SCRIPT BUILDER – USER SCRIPTS User Scripts 8.7.5 Creating A Script Scripts are created by placing the cursor into the Script Detail column and right clicking. A local menu will be displayed as shown in Figure 8-9. Select from the choice of commands or script macro commands. © 2009 Microchip Technology Inc. DS51647C-page 71 PICkit™ Serial Analyzer User’s Guide The sequence of macro commands are executed from top to bottom. Macro commands are entered by right clicking in the box and selecting from the local menu as shown in Figure 8-9. Macro commands are entered according to the sequence of events as defined by the USART asynchronous protocol. Studying the example scripts is a good way to learn the sequence of events. The example scripts can also be modified and saved under a different name. CAUTION The choice of macro commands is very flexible. Therefore, the correctness of the script has to be verified by the user. The PICkit Serial Analyzer program does not verify the correctness of the script. A complete listing of the available macro commands is given in Table 8-2. The macro command abbreviation will be displayed in the Transactions window. The Transactions window keeps a running log of the commands and data sent to and from the target device. FIGURE 8-9: TABLE 8-2: USART ASYNCHRONOUS SCRIPT BUILDER – CREATING A SCRIPT USART SCRIPT MACRO COMMANDS Macro Command DS51647C-page 72 Command Abbreviation Description USDATATX [TX] Transmit data. Next byte is the byte count, followed by the data. USDATARXEN [ER] Enable receive data monitor USDATARXDS [DR] Disable receive data monitor USBREAKTX [BK] Send Break USBRKDATTX [BKD] Send Break, then data byte. Next byte is the data byte. USBAUD [BD] Set BAUD Rate. Next byte is baud (LSB) followed by baud (MSB). USINIT [I_] Initialize USART controller USAUX1RST [A1RST] Reset Aux1 USAUX1SET [A1RST] Set Aux1 USAUX1OUT [A1OUT] Set Aux1 direction to Output © 2009 Microchip Technology Inc. USART Asynchronous Communications TABLE 8-2: 8.8 USART SCRIPT MACRO COMMANDS (CONTINUED) USAUX1IN [A1IN] Set Aux1 direction to Input USAUX1W0 [A1W0] Aux1 Wait 0 USAUX1W1 [A1W1] Aux1 Wait 1 USAUX2RST [A2RST] Reset Aux2 USAUX2SET [A2RST] Set Aux2 USAUX2OUT [A2OUT] Set Aux2 direction to Output USAUX2IN [A2IN] Set Aux2 direction to Input USAUX2W0 [A2W0] Aux2 Wait 0 USAUX2W1 [A2W1] Aux2 Wait 1 SCRIPT EXECUTE The Script Execute window is shown in Figure 8-10. Once scripts are created using the Script Builder, they can be assigned to buttons in the Script Execute window. This makes a convenient window to execute multiple scripts either individually or iteratively. Script executing will be logged in the Transactions window. FIGURE 8-10: 8.8.1 USART ASYNCHRONOUS SCRIPT EXECUTE Assignable Buttons User created scripts will be displayed in the central USART Scripts column. To assign a script to a button, click on the script name and drag it to the desired Assignable Buttons in the right column. The script will be executed once each time the button is clicked. The Assignable Buttons can be cleared by clicking on the Clear Buttons button. © 2009 Microchip Technology Inc. DS51647C-page 73 PICkit™ Serial Analyzer User’s Guide 8.8.2 Iteration Scripts can be executed a user defined number of times at a specified interval of time. Figure 8-11 shows an example. A script named TX_Data has been assigned to the Iteration button in the left column. The number of iterations is entered in the Iterations box and the delay in milliseconds in the Delay box. A summary of the iterations is displayed in the left column. The macro is executed when the Iteration button is clicked. FIGURE 8-11: DS51647C-page 74 USART ASYNCHRONOUS SCRIPT EXECUTE – EXAMPLE © 2009 Microchip Technology Inc. PICkit™ SERIAL ANALYZER USER’S GUIDE Chapter 9. USART Master Synchronous Communications 9.1 INTRODUCTION This chapter describes the USART Synchronous Master Communications mode. USART Synchronous Master data and commands can be entered using a Basic Communications window or by creating script commands. It is assumed that the user is familiar with the USART synchronous protocol. For more information see: • USART, AUSART or EUSART chapter of the PIC® microcontroller data sheet of interest 9.2 HIGHLIGHTS This chapter discusses: • • • • • • 9.3 PICkit Serial Pin Assignments Selecting Communications Mode Configuring USART Synchronous Master Communications Mode Communications: Basic Operations Script Builder Script Execute PICkit SERIAL PIN ASSIGNMENTS The PICkit Serial Analyzer pin assignments for USART Synchronous Master Communications mode are: TABLE 9-1: 9.4 USART SYNCHRONOUS MASTER PIN ASSIGNMENTS Pin Label Type Description 1 CK Output Clock 2 +V Power Target Power 3 GND Power Ground 4 AUX1 Input/Output Auxiliary I/O port pin No. 1 5 AUX2 Input/Output Auxiliary I/O port pin No. 2 6 DT Input/Output Data SELECTING COMMUNICATIONS MODE The USART Synchronous Master Communications mode is selected from the Configuration Wizard or menu bar. Configuration Wizard – Select PICkit Serial Analyzer > Run Configuration Wizard from the menu bar Menu Bar – Select PICkit Serial Analyzer > Select Communications Mode > USART Synchronous Master © 2009 Microchip Technology Inc. DS51647C-page 75 PICkit™ Serial Analyzer User’s Guide 9.5 CONFIGURING USART SYNCHRONOUS MASTER COMMUNICATIONS MODE Once the communications mode has been selected, it is configured from the Configuration Wizard or menu bar. Configuration Wizard – Select PICkit Serial Analyzer > Run Configuration Wizard from the menu bar Menu Bar – Select PICkit Serial Analyzer > Configure Communications Mode The Configure Mode window will open. Depending on the view selected, the Basic View (Figure 9-1) displays a minimum choice of configurations commands. The Advanced View (Figure 9-2) displays an extended choice of configuration commands. Save the configuration by clicking on the Save Changes button. FIGURE 9-1: USART SYNCHRONOUS MASTER CONFIGURE COMMUNICATIONS MODE – BASIC VIEW OPTIONS • Enable Event Markers – Enable event markers • Enable Time Markers – Enable time-stamp to accompany all event markers VOLTAGE • PICkit Serial will power my device – Select the check box if the PICkit Serial will power the target device. The target can be powered at 5 VDC or a user selectable variable voltage. CAUTION Even though the voltage can be set as low as 0 VDC, it is up to the user to verify the required operating voltage of the target device. CAUTION The USB port current limit is set to 100 mA. If the target plus PICkit Serial Analyzer exceeds this current limit, the USB port will turn off. The target may be powered externally if more power is required. USART BAUD Enter the desired USART symbol rate (Baud) in the text box. DS51647C-page 76 © 2009 Microchip Technology Inc. USART Master Synchronous Communications FIGURE 9-2: USART SYNCHRONOUS MASTER CONFIGURE COMMUNICATIONS MODE – ADVANCED VIEW SCRIPT TIME-OUT When sending scripts, the software will wait a maximum of script time-out ms to receive a script complete tag before issuing an error. If your hardware is slow to respond or you are transferring a lot of data, you may need to increase the script time-out to avoid errors. EVENT MARKERS • • • • • • • • • • • Abrt Mac Exe – Enable event marker: abort ‘macro’ execution Macro Loop – Enable event marker: top of ‘macro’ loop Mac Lp 65536 – Enable event marker: ‘macro’ loop count overflow (i.e., 65536) Mac Lp Done – Enable event marker: ‘macro’ loop iterations complete Timeout Timer1 – Enable event marker: Timer1 expired Timeout Timer2 – Enable event marker: Timer2 expired Status Error – Enable event marker: change in status byte Read Byte – Enable event marker – read byte Write Byte – Enable event marker – write byte Status Error – Enable event marker – change in USART status byte Break TX – Enable event marker – A “Break” has been transmitted ADVANCED OPTIONS • Disable LED2 Default – Disable default LED2 behavior (LED2 = Yellow ‘Target’ LED) • Disable LED1 Default – Disable default LED1 behavior (LED1 = Red ‘Busy’ LED) • Enable Switch Test – Enable low-level switch test: - Switch Off (not depressed) – blink LED1, LED2 off - Switch ON (depressed) – blink LED2, LED1 off • AUX1 Default State – AUX1 communication line – default state (0 | 1) • AUX2 Default State – AUX2 communication line – default state (0 | 1) • AUX1 Direction – AUX1 communication line – direction: 1: input, 0: output • AUX2 Direction – AUX2 communication line – direction: 1: input, 0: output • Clock Polarity – Checked means the polarity is inverted, unchecked means it is not © 2009 Microchip Technology Inc. DS51647C-page 77 PICkit™ Serial Analyzer User’s Guide 9.6 COMMUNICATIONS: BASIC OPERATIONS The USART Asynchronous Operations window can be opened by selecting: • Communications: Basic Operations from the tool bar, or • Basic Operations from the menu bar The USART Synchronous Master Basic Operations window is shown in Figure 9-3. There are two basic communications commands, Read and Write. Data can be transmitted to the target device as 7-bit ASCII or 8-bit byte. 7-bit ASCII data is entered in the left-hand window. 8-bit byte is entered in the right-hand column. Both transmitted and received data is displayed in the Transaction window. Note: The “x” indicates the value is a hexadecimal number. Clicking on “x” will toggle it to a “d” indicating that the value is a decimal number. The command will be logged in the Transactions window. A listing of the command abbreviations is given in Table 9-2. FIGURE 9-3: 9.7 USART SYNCHRONOUS MASTER BASIC OPERATIONS SCRIPT BUILDER USART Asynchronous commands can be combined into scripts, saved, and used over again. The Script Builder window is opened by selecting Communications > Script > Script Builder from the menu bar. The Script Builder is shown in Figure 9-4. The Script Builder window is divided into four columns as shown in Figures 9-5 through 9-8. DS51647C-page 78 © 2009 Microchip Technology Inc. USART Master Synchronous Communications FIGURE 9-4: 9.7.1 USART SYNCHRONOUS MASTER SCRIPT BUILDER Script Commands The left most column contains the script commands as shown in Figure 9-5. • Script Name – Enter the name of the script • Save Script – Saves the script • Execute Script – Executes (performs) the script displayed in the Script Detail column • Clear Script – Clears the Script Detail column • Del User Scripts – Deletes scripts from the User Scripts column • Show Array – Displays a spreadsheet-like table in which large amounts of data may be entered. This data can be included in the script by right clicking in a Script Detail cell and choosing “Insert Array”. FIGURE 9-5: USART SYNCHRONOUS MASTER SCRIPT BUILDER – SCRIPT COMMANDS Script Commands © 2009 Microchip Technology Inc. DS51647C-page 79 PICkit™ Serial Analyzer User’s Guide 9.7.2 Example Scripts The second column contains Example Scripts as shown in Figure 9-6. These can be studied to learn how to create or to edit custom scripts. To load the example script into the Script Detail column, either double click or right click and select from the local menu. FIGURE 9-6: USART SYNCHRONOUS MASTER SCRIPT BUILDER – EXAMPLE SCRIPTS Example Scripts 9.7.3 Script Detail The third column contains Script Detail as shown in Figure 9-7. This column is used to create the script or view an existing script. More information about creating a customer script is discussed in Section 9.7.5 “Creating a Script”. To load a user script from the User Scripts column into the Script Detail column, the user can double click or right click and select from the local menu. Note: DS51647C-page 80 The “x” indicates the value is a hexadecimal number. Clicking on “x” will toggle it to a “d” indicating that the value is a decimal number. © 2009 Microchip Technology Inc. USART Master Synchronous Communications FIGURE 9-7: USART SYNCHRONOUS MASTER SCRIPT BUILDER – SCRIPT DETAIL Script Detail 9.7.4 User Scripts The fourth column contains User Scripts Detail as shown in Figure 9-8. User scripts that are created, named and saved are displayed in the User Scripts column. To load a user script from the User Scripts column into the Script Detail column, the user can double click or right click and select from the local menu. User Scripts can be deleted by right clicking and selecting Delete Script from the local menu. FIGURE 9-8: USART SYNCHRONOUS MASTER SCRIPT BUILDER – USER SCRIPTS User Scripts 9.7.5 Creating a Script Scripts are created by placing the cursor into the Script Detail column and right clicking. A local menu will be displayed as shown in Figure 9-9. Select from the choice of commands or script macro commands. © 2009 Microchip Technology Inc. DS51647C-page 81 PICkit™ Serial Analyzer User’s Guide The sequence of macro commands are executed from top to bottom. Macro commands are entered by right clicking in the box and selecting from the local menu as shown in Figure 9-9. Macro commands are entered according to the sequence of events as defined by the USART Synchronous Master protocol. Studying the example scripts is a good way to learn the sequence of events. The example scripts can also be modified and saved under a different name. CAUTION The choice of macro commands is very flexible. Therefore, the correctness of the script has to be verified by the user. The PICkit Serial Analyzer program does not verify the correctness of the script. A complete listing of the available macro commands is given in Table 9-2. The macro command abbreviation will be displayed in the Transactions window. The Transactions window keeps a running log of the commands and data sent to and from the target device. FIGURE 9-9: TABLE 9-2: USART SYNCHRONOUS MASTER SCRIPT BUILDER – CREATING A SCRIPT USART SCRIPT MACRO COMMANDS Macro Command DS51647C-page 82 Command Abbreviation Description USDATATX [TX] Transmit data. Next byte is the byte count, followed by the data. USDATARX [RX] Receive data. Next byte is the byte count. USBAUD [BD] Set BAUD Rate. Next byte is baud (LSB) followed by baud (MSB). USCLKPOLSET [CS] Set Clock Polarity bit USCLKPOLRST [CR] Reset Clock Polarity bit USINIT [I_] Initialize USART controller USAUX1RST [A1RST] Reset Aux1 USAUX1SET [A1RST] Set Aux1 USAUX1OUT [A1OUT] Set Aux1 direction to Output USAUX1IN [A1IN] Set Aux1 direction to Input USAUX1W0 [A1W0] Aux1 Wait 0 © 2009 Microchip Technology Inc. USART Master Synchronous Communications TABLE 9-2: 9.8 USART SCRIPT MACRO COMMANDS (CONTINUED) USAUX1W1 [A1W1] Aux1 Wait 1 USAUX2RST [A2RST] Reset Aux2 USAUX2SET [A2RST] Set Aux2 USAUX2OUT [A2OUT] Set Aux2 direction to Output USAUX2IN [A2IN] Set Aux2 direction to Input USAUX2W0 [A2W0] Aux2 Wait 0 USAUX2W1 [A2W1] Aux2 Wait 1 SCRIPT EXECUTE The Script Execute window is shown in Figure 9-10. Once scripts are created using the Script Builder, they can be assigned to buttons in the Script Execute window. This makes a convenient window to execute multiple scripts either individually or iteratively. Script executing will be logged in the Transactions window. FIGURE 9-10: 9.8.1 USART SYNCHRONOUS MASTER SCRIPT EXECUTE Assignable Buttons User created scripts will be displayed in the central USART Scripts column. To assign a script to a button, click on the script name and drag it to the desired Assignable Buttons in the right column. The script will be executed once each time the button is clicked. The Assignable Buttons can be cleared by clicking on the Clear Buttons button. © 2009 Microchip Technology Inc. DS51647C-page 83 PICkit™ Serial Analyzer User’s Guide 9.8.2 Iteration Scripts can be executed a user defined number of times at a specified interval of time. Figure 9-11 shows and example. A script named TX_Data has been assigned to the Iteration button in the left column. The number of iterations is entered in the Iterations box and the delay in millisecond in the Delay box. A summary of the iterations is displayed in the left column. The macro is executed when the Iteration button is clicked. FIGURE 9-11: DS51647C-page 84 USART SYNCHRONOUS MASTER SCRIPT EXECUTE – EXAMPLE © 2009 Microchip Technology Inc. PICkit™ SERIAL ANALYZER USER’S GUIDE Chapter 10. User Defined Templates 10.1 INTRODUCTION User Defined Templates extend user scripts by interpreting the data read from the target device and displaying it in a human readable form. The conversion formula is: EQUATION 10-1: CONVERSION FORMULA Read Value * Slope + Offset = Display Value For example, an 8-bit ADC value is read, and we desire a displayed value in voltage, 0 to 5 Volts. The 8-bit ADC value (read value) can be 0 to 256 decimal. The ADC reference voltage is 5 VDC. The slope is the constant value used to convert between the ADC read value and the desired display value. In this example: EQUATION 10-2: SLOPE EXAMPLE Slope = ADC Reference Voltage/8-bit ADC = 5/256 = 0.01953125 Using a User Defined Template, the interpretation of the ADC value can be displayed in volts DC. 10.2 HIGHLIGHTS This chapter discusses: • Creating and Using Templates • My Templates • Graphing Data © 2009 Microchip Technology Inc. DS51647C-page 85 PICkit™ Serial Analyzer User’s Guide 10.3 CREATING AND USING TEMPLATES Create a User Define Template by selecting User Define Templates > Display Template from the menu bar. The User Defined Template window is displayed as shown in Figure 10-1, showing three active scripts. Note: First, a user define script(s) must be created using the Script Builder window for the selected serial communications mode. Refer to the respective serial communications chapter under the Script Builder section. FIGURE 10-1: THE USER DEFINED TEMPLATE Create the Parameter Template by filling in each line. Each line is a single parameter, a value read converted to value displayed. The inputs below define how a particular parameter is interpreted. • Active – Allows you to activate or deactivate a parameter. This must be active before you can fill in the rest of the data. The purpose of this checkbox is to allow run time activation or deactivation of a script. • Run – Press this button to run your script and display data after you have completed filling out the parameter template line. • Script – Select a user defined script from the drop down box. This script must first be created using the Script Builder for the respective communications mode. • Return Data – Indicate if data is received (Yes) or not (No) • Parameter Name – Enter a parameter name. This is for reference only and does not affect the data retrieved or displayed. • Parameter Byte Count – The number of bytes read (1, 2, or 4) • Start Byte – Select which byte (of a possible series of bytes) that will be used for the display • Byte Order – Select Least Significant to Most Significant or Most Significant to Least Significant. If the parameter is only one byte long, this option will not be available. • Slope – Conversion value (read value * slope + offset = displayed value) • Offset – Offset of read value (read value * slope + offset = displayed value) • Signed/Unsigned – Select between Signed or Unsigned read value (this option is only available if the format is set to Dec) • Format – Binary, Decimal, Hexadecimal, or BCD (Binary Coded Decimal) • # of Dec. pts – Select number of decimal points in the displayed value (this option is only available if the format is set to Dec) DS51647C-page 86 © 2009 Microchip Technology Inc. User Defined Templates • Graph – allows the data to be graphed during run time. The pop-up graph may be resized as needed. Once the parameter(s) are entered, they can be saved as a User Defined Parameter file (*.udp). • File->Open – Open an existing User Defined Parameter file (*.udp) • File->Save – Save or replace a User Defined Parameter file (*.udp) • Clear All – Resets (clears) all parameter boxes OPTIONS • • • • 10.4 Run All – Runs all parameter scripts above that are marked as active. Iterations – How many times you wish to run the set of active parameters. Delay – Time in between each parameter. Error Timeout – Time the GUI will wait for a completed response to the script. If you are running long scripts – you may wish to increase this value. MY TEMPLATES When the User Defined Parameter file has been saved, it will be displayed under the User Defined Templates > My Templates on the menu bar, as shown in Figure 10-2. Note: The User Defined Parameter file (*.udp) must be stored in the same directory as the PICkit Serial Analyzer executable (by default C:\Program Files\Microchip\PICkit Serial Analyzer). Otherwise, it will not be displayed under the My Templates menu selection. FIGURE 10-2: SELECTING MY TEMPLATES This implementation of the User Defined Template differs from the one in the prior release of PICkit Serial Analyzer in that you create and run the template on the same form. This allows for a great deal of run time flexibility. For example, you can change any of the inputs from Section 10.3 “Creating and Using Templates” while you are running the scripts in a loop. © 2009 Microchip Technology Inc. DS51647C-page 87 PICkit™ Serial Analyzer User’s Guide 10.5 GRAPHING DATA You may also graph any of the data being displayed in real time; simply press the Graph button for the corresponding parameter. The graph may be resized as desired. See Figure 10-3. The Style button on the bottom of the graph toggles the view between an area, line, column, or point plot. FIGURE 10-3: DS51647C-page 88 GRAPHING DATA © 2009 Microchip Technology Inc. PICkit™ SERIAL ANALYZER USER’S GUIDE Chapter 11. PICkit™ Serial Analyzer Firmware 11.1 INTRODUCTION This chapter explains the internal operations of the PICkit™ Serial Analyzer firmware. The source code is available on the PICkit Serial Analyzer CD-ROM at D:\PICkit Serial Analyzer\Firmware. 11.2 HIGHLIGHTS This chapter discusses: • • • • • • • 11.3 Exec Comm I2CM Communications I2 Communications SPI/Microwire Communications USART Communications LIN Communications OVERVIEW Internally, the PICkit™ Serial Analyzer operates two firmware state controllers running in parallel – Exec (executive) and Comm (communication). The Exec controller is responsible for overall PICkit™ Serial Analyzer configuration, moving data to/from the host (via USB) and moving data to/from the Comm controller (via RAM buffers). The Comm controller supervises serial communication with the target device. This includes both configuring the necessary communication hardware and executing a sequential ‘script’ defining a serial ‘transaction’. FIGURE 11-1: ARCHITECTURE ARCHITECTURE Exec H O S T Control USB Status EP0-OUT Circular Buffers EP0-IN CBUF (scratch) EP1-OUT CBUF1 Comm Control I2C™ SPI (script/data) EP1-IN CBUF2 USART D E V I C E (output/data) © 2009 Microchip Technology Inc. DS51647C-page 89 PICkit™ Serial Analyzer User’s Guide Data streams associated with PICkit™ Serial Analyzer are formatted with markers called “Tag” bytes. A Tag may be stand-alone or accompanied by data. As seen in Table 11-1, the data stream for each state controller has a set of associated Tag bytes defined in detail later in the document. Exec manages the interface with the host. The data stream sent to PICkit™ Serial Analyzer from the host is encoded with ECMD Tags and the data stream returned to the host from PICkit™ Serial Analyzer uses EDATA Tags. Likewise, the Comm controller utilizes another set of predefined Tag(s) - CCMD Tags (outgoing scripts) and CDATA Tags (returning data). Exec has no knowledge of Comm Tag(s) but simply transports data blindly between the host and Comm using Exec Tag(s). RAM buffers are used as conduits to exchange data with Comm. Data destined for Comm is queued in RAM buffer 1 (CBUF1). Data returning from Comm is funneled through RAM buffer 2 (CBUF2). The PICkit™ Serial Analyzer is designed to facilitate continuous ‘spooling’ of data to/from the external serial device. Separate 255-byte circular buffers are maintained for both outgoing data (scripts/data) and returning data. The USB interface is not permitted to be a bottleneck in the PICkit™ Serial Analyzer operation. Exec processes each USB packet immediately. If data is destined for a RAM buffer, the host is responsible to insure adequate room is available in the buffer before the data is sent to avoid a fatal ‘overrun’ error. Returning data is queued in the appropriate circular buffer until retrieved by Exec, tagged and sent to the host. It is possible to overrun the return buffer under some circumstances but should be rare. Exec can interleave Exec data with Comm data as necessary. The PICkit™ Serial Analyzer maintains fixed-length blocks of data for control and status. The CONTROL_BLOCK provides ‘static’ configuration information. The STATUS_BLOCK is a snapshot of the PICkit™ Serial Analyzer operation. Each block is divided into three sections corresponding to Exec, Comm (common to all protocols) and Comm (specific to the active serial protocol). TABLE 11-1: TAG BYTE TYPES Tag Types Definition ECMD Exec command Tag(s) – interpreted by Exec EDATA Exec data Tag(s) – generated by Exec CCMD Comm command Tag)(s) – interpreted by Comm CDATA Comm data Tag(s) – generated by Comm The other major blocks are the control memory block and the status memory block. The control block is used to configure the PICkit™ Serial Analyzer. The control block is divided into the following three sections: • Exec module configuration • Generic Comm module configuration • Protocol specific communication configuration This third section will change depending on the protocol. The status block keeps the status of various flags and is similarly divided into three sections. TABLE 11-2: CONTROL BLOCK Tag Bytes DS51647C-page 90 Definition 0-7 Exec section 8-15 Generic Comm section 16-23 Protocol specific communication section © 2009 Microchip Technology Inc. PICkit™ Serial Analyzer Firmware TABLE 11-3: STATUS BLOCK Tag Bytes 11.4 Definition 0-3 Exec section 4-11 Generic Comm section 12-19 Protocol specific communication section EXEC The Exec module will directly decode the data stream from the host. The list of different commands is shown in Table 11-4. Every data stream from the software to the PICkit™ Serial Analyzer begins with one of the following Exec command Tag bytes. TABLE 11-4: EXEC COMMAND (ECMD) TAG BYTES Tag/ECMD LEN 0x00 1 Name END OF DATA Description Marks the end of valid data 0 0x01 0x02 1 25 COMMAND CONTROL_BLOCK_WRITE Executive command 0 Tag 1 Command byte (see Table 11-5) Write control block to PIC® MCU 0 1:24 0x03 N+2 CBUF1_WRITE Tag Tag Control block Write data to circular buffer 1 0 Tag 1 Byte count (N) 2 : N+1 Data 0x04 N+2 CBUF2_WRITE Write data to circular buffer 2 0 Tag 1 Byte count (N) 2 : N+1 Data 0x05 N+2 CBUF3_WRITE Write data to circular buffer 3 0 Tag 1 Byte count (N) 2 : N+1 Data 0x06 0x07 2 2 LED1_CONFIG LED2_CONFIG Configure LED 1 0 Tag 1 Configuration Byte Configure LED 2 0 Tag 1 Configuration byte Tag byte 0x01 signifies that the following byte is one of the commands listed in Table 11-5. © 2009 Microchip Technology Inc. DS51647C-page 91 PICkit™ Serial Analyzer User’s Guide TABLE 11-5: TAG BYTE 0x01 COMMAND CODES CMD Description 0x00 Master Reset: Exec Reset, Comm Reset (idled) 0x01 Comm initialization: Comm is initialized as defined by CONTROL_BLOCK 0x02 Request EXEC_STATUS_PACKET (Ref. Table 11-6) 0x03 Save CONTROL_BLOCK to EEPROM 0x04 Restore CONTROL_BLOCK from EEPROM 0x05 Flush CBUF2 0x06 Comm Reset: rest buffers, clear status block (Comm hardware is not re-initialized) TABLE 11-6: EXEC STATUS PACKET Byte 0 1 LEN Type 2 0x88 Description Packet ID = 0x01 2 4 3 0x81 Firmware Version 5 29 25 0x82 Control Block 30 50 21 0x83 Status Block 51 57 7 0x84 CBUF Status Tag byte 0x02 writes the 24-byte CONTROL_BLOCK (the Exec portion of the control block appears in Table 11-7). TABLE 11-7: EXEC CONTROL BLOCK Byte Bit 0 7:0 Description Exec control bits 0 1 2 3 1 DS51647C-page 92 4 1 = Disable default behavior – LED2 5 1 = Disable default behavior – LED1 6 1 = Flush CBUF2 on count (e.g., CBUF2 >= N bytes then flush) 7 1 = Flush CBUF2 on time intervals 7:0 0 1 = Enable switch test 1 n/a 2 n/a 3 n/a 4 n/a 5 n/a 6 n/a 7 n/a 2 7:0 3 7:0 CBUF2 flush count threshold (e.g., CBUF2 > N bytes then flush) 4 7:0 CBUF2 flush interval [res: 409 μs, min: 409 μs, max: 104 msec] a value of ‘0’ defaults to ‘1’, (i.e., the minimum) 5 7:0 6 7:0 7 7:0 © 2009 Microchip Technology Inc. PICkit™ Serial Analyzer Firmware Tag bytes 0x03, 0x04 and 0x05 write data bytes to their respective script buffers. In the current architecture, Script Buffer 1 (CBUF1) is used to store communication commands that will be fetched and executed by the Comm block. So, Tag byte 0x03 is used to delineate data that is to be sent to the script buffer including communication protocols to be sent to the unit under test. Tag bytes 0x04 and 0x05 are typically not used. Tag bytes 0x06 and 0x07 configure the LEDs as follows: TABLE 11-8: LED CONFIGURATION Description Mode M = CFG[7:6] State S = CFG[5] Time T = CFG[4:0] Set immediate 00 1 = On, 0 = Off N/A Blink once – On or Off 10 1 = On, 0 = Off T + 1 units Blink continuous 11 Initial state: 1 = On, 0 = Off T + 1 units Reserved 01 Legend: Time “unit” = 50 ms Note: Set LED to blink continuously, on/off time = 100 ms. CFG = 0xC1 (M = b’11’, S = 0, T = 1) Exec data Tag bytes identify data streams sent from the Exec block back to the host software. TABLE 11-9: EXEC TAG (EDATA) BYTES Tag/EDATA LEN Name Description 0x80 1 END OF DATA Marks the end of valid data 0x81 1 FIRMWARE_VERSION Firmware version 0 0x82 25 CONTROL_BLOCK_DATA 0 Tag 1 Data: 20-byte STATUS_BLOCK 2 Date: major version Control block contents 0 1:24 0x83 21 STATUS_BLOCK_DATA 0 0x85 7 N+2 CBUF_STATUS CBUF1_DATA N+2 CBUF2_DATA Tag Data: minor version 0 Tag 1 Data: CBUF1: # bytes used 2 Data: CBUF1: # bytes unused 3 Data: CBUF2: # bytes used 4 Data: CBUF2: # bytes unused 5 Data: CBUF3: # bytes used 6 Data: CBUF3: # bytes unused Data from CBUF1 0 Tag 1 Byte count Data: from CBUF1 Data from CBUF2 0 Tag 1 Byte count 2 : N+1 © 2009 Microchip Technology Inc. Data: CONTROL_BLOCK Status block contents 2 : N+1 0x86 Tag Status block contents 1:20 0x84 Tag Data: from CBUF2 DS51647C-page 93 PICkit™ Serial Analyzer User’s Guide TABLE 11-9: EXEC TAG (EDATA) BYTES (CONTINUED) Tag/EDATA LEN 0x87 N+2 0x88 2 Name Description Data from CBUF3 CBUF3_DATA 0 Tag 1 Configuration byte 2 : N+1 Data: from CBUF3 Packet number PACKET_ID 0 Tag 1 Data: arbitrary packet ID# Tag byte 0x80 means the transaction is over. Tag byte 0x81 signifies that the following data is the firmware version. 0x82 signifies that the data following is the control block (CONTROL_BLOCK). 0x83 signifies that the data following data is the status block (STATUS_BLOCK). The Exec portion of STATUS_BLOCK is shown in Table 11-10. TABLE 11-10: EXEC STATUS BLOCK Byte Bit Description Exec 0 7:0 Exec status 0 1 CBUF1 overflow 2 CBUF2 overflow 3 CBUF3 overflow 4 Data error (e.g., illegal Tag, missing Tag-dependent data, etc.) 5 Restore control block failed – defaults used 6 7 1 Composite error 7:0 Exec status flags 0 SWITCH test active 1 SWITCH state (i.e., 0: depressed, 1: released) 2 3 4 5 6 7 2 7:0 3 7:0 Tag byte 0x84 is the script buffer status which shows availability of memory in each buffer. Tag bytes 0x85, 0x86 and 0x87 identify data streams coming from RAM buffers CBUF1, CBUF2 and CBUF3, respectively. RAM buffer 2 (CBUF2) is used in this architecture to queue the data stream from the Comm module to be sent to the host software, thus Tag byte 0x86 identifies this stream. Tag bytes 0x85 and 0x87 are typically unused. DS51647C-page 94 © 2009 Microchip Technology Inc. PICkit™ Serial Analyzer Firmware 11.5 COMM The Comm module will decode Tag bytes from the data stream in the script buffer. The Tag bytes may represent commands to internally configure the PICkit™ Serial Analyzer and report status, or the Tag bytes may be protocol specific identification that needs to be translated into the device under test’s protocol and communicated to the device. The Comm module performs both of these functions. This section will describe the Comm Tags common to all supported serial protocols. Table 11-11 describes the Tags (CCMD) used in the data stream to the Comm controller. Table 11-12 describes Tags (CDATA) used in the data stream from the Comm controller. . TABLE 11-11: COMM SCRIPT COMMAND TAG BYTES Tag/CCMD LEN 0x00 – 0x0F 16 RESERVED Reserved 0x10 3 Wait-1 Wait for time interval 0x12 0x13 0x15 2 2 3 Name LED1 LED2 TIMEOUT_AB0_SET Description 0 Tag 1 Time (LSB) 2 Time (MSB) [res: 409.6 μsec, max: 26.843 sec] Configure LED1 0 Tag 1 LED Configuration byte Configure LED2 0 Tag 1 LED Configuration byte Set time-out AB0 0 Tag 1 Time-out value (LSB) 2 Time-out value (MSB) [res: 409.5 ms, max: 26.843 sec] 0x16 1 TIMEOUT_AB0_KILL Kill/disable time-out AB0 0x17 3 TIMEOUT_AB1_SET Set time-out AB1 0 Tag 0 Tag 1 Time-out value (LSB) 2 Time-out value (MSB) [res: 409.6 ms, max: 26.843 sec] 0x18 1 TIMEOUT_AB1_KILL Kill/disable time-out AB1 0x19 1 MACRO_CLEAR Start macro definition 0x1A N+2 MACRO_DATA_ADD Add bytes to macro 0 0 0x1B 0x1C © 2009 Microchip Technology Inc. 3 1 Tag Tag 0 Tag 1 Byte count (N) 2 Data N+1 Data 0 Tag 1 Loop count [0 = indefinitely] 2 Loop count [0 = indefinitely] 0 Tag Run macro MACRO_RUN Mark end of script END_OF_SCRIPT DS51647C-page 95 PICkit™ Serial Analyzer User’s Guide TABLE 11-11: COMM SCRIPT COMMAND TAG BYTES (CONTINUED) Tag/CCMD LEN 0x1D 1 MACRO_DATA_START Name Mark start of “macro” data block Description 0x1E 1 MACRO_DATA_END Mark end of “macro” data block 0x1F 2 MARKER Script “marker” 0 Tag 0 0x20 1 EVENT_TIMER_RESET Tag 0 Tag 1 Marker Event timer Reset 0 Tag TABLE 11-12: COMM SCRIPT DATA TAG BYTES Tag/CDATA LEN 0x00 – 0x0F 16 RESERVED RESERVED 0x10 2 DATA_BYTE Data byte follows 0x11 0x12 0x13 N+2 2 3 Name DATA_BYTES EVENT_MACRO_LOOP EVENT_TIME Description 0 Tag 1 data Data bytes follow 0 Tag 1 Byte count (N) 2 Data N+1 Data Macro loop count milestone message 0 Tag 1 Loop number Time marker for previous event 0 Tag 1 Time LSB 2 Time MSB [res: 409 usec, max: 26.8 sec] 0x14 1 EVENT_TIME_ROLLOVER Event timer rollover 0x15 3 EVENT_MACRO_DONE Macro loop complete 0 0 Tag 1 Loop count (LSB) 2 Loop count (MSB) 0x16 1 EVENT_MACRO_ROLLOVER Macro loop count rollover (65536) (useful with infinite loop count) 0x17 1 EVENT_MACRO_ABORT Macro execution was aborted by bit in command block 0x18 1 EVENT_TIMEOUT_AB0 Timer AB0 time-out 0x19 1 EVENT_TIMEOUT_AB1 Timer AB1 time-out 0x1A 2 EVENT_STATUS_ERR Status error 0 0 0 0 Tag Tag Tag Tag 0 Tag 1 STATUS_BLOCK[04] 0x1B 1 EVENT_END_OF_SCRIPT “End-of-Script” Tag encountered 0x1C 2 MARKER “Marker” tag encountered 0 DS51647C-page 96 Tag Tag 0 Tag 1 Marker © 2009 Microchip Technology Inc. PICkit™ Serial Analyzer Firmware TABLE 11-13: COMM SCRIPT CONTROL BLOCK Byte Bit Description Comm: GENERAL 8 7:0 9 7:0 Comm mode: 00: IDLE 01: I2CM 02: SPI-M 04: USART-A 05: USART-SM 07: I2 0A: LIN 0B: MWIRE-M Comm control bits 0 1 2 3 4 5 6 7 7:0 0 1 2 3 4 5 6 7 7:0 7:0 7:0 7:0 7:0 1 = Enable event markers – global 1 = Enable event markers – time-stamp n/a n/a 1 = Enable Pull-ups 1 = VSRC: On 1 = VSRC: variable 1 = Abort macro execution Bit flags 1 = Event marker enable: macro loop 1 = Event marker enable: macro loop 65536 1 = Event marker enable: macro loop done 1 = Event marker enable: time-out AB0 1 = Event marker enable: time-out AB1 1 = Event marker enable: status error (STATUS_BLOCK[04] ! = 0) 1 = (Unassigned) 1 = (Unassigned) N/A VSRC 8-bit setting VSRC Fault Threshold N/A N/A 10 11 12 13 14 15 © 2009 Microchip Technology Inc. DS51647C-page 97 PICkit™ Serial Analyzer User’s Guide TABLE 11-14: COMM SCRIPT STATUS BLOCK Byte Bit Description Comm: GENERAL 4 5 6 7 8 9 10 11 11.6 7:0 0 1 2 3 4 5 6 7 7:0 0 1 2 3 4 5 6 7 7:0 7:0 7:0 7:0 7:0 7:0 Comm status: error Time-out AB0 Time-out AB1 Comm initialization error VSRC fault Data error (e.g., unrecognized Tag, missing data, etc.) Output buffer overrun (CBUF2) Output buffer overrun (CBUF3) Composite error Comm status: informational Controller busy Executing MACRO Executing MACRO – infinite loop Executing WAIT instruction “End-of-Script” Tag encountered Comm mode VSRC Measurement (0-255) I2CM COMMUNICATIONS I2CM refers to the Master mode of the I2C protocol. See the I2C specification for protocol details. In this mode, the PICkit™ Serial Analyzer will master the I2C bus only. It will not respond as a slave. The control block of memory dedicated to communication allows for setting of the bit rate and displaying event markers in the software windows. TABLE 11-15: CONNECTOR PINOUT IN I2CM MODE DS51647C-page 98 Pin Description 1 — 2 +V 3 GND 4 SDA 5 SCL 6 — © 2009 Microchip Technology Inc. PICkit™ Serial Analyzer Firmware TABLE 11-16: I2CM CONTROL BLOCK Byte Bit Description Comm: I2CM 16 17 18 19 20 21 22 23 © 2009 Microchip Technology Inc. 7:0 0 1 2 3 4 5 6 7 7:0 0 1 2 3 4 5 6 7 7:0 7:0 7:0 7:0 0 1 2 3 4 5 6 7 7:0 7:0 Bit flags 1 = event marker enable: Start bit 1 = event marker enable: Stop bit 1 = event marker enable: Restart bit 1 = event marker enable: ACK/NACK tx n/a 1 = event marker enable: ACK/NACK rx n/a 1 = event marker enable: write byte Bit flags 1 = event marker enable: read byte 1 = event marker enable: transaction error 1 = event marker enable: status error (STATUS_BLOCK[12] != 0) AUX1 – default state (0 | 1) AUX2 – default state (0 | 1) AUX1 – direction (1=IN, 0=OUT) AUX2 – direction (1=IN, 0=OUT) n/a n/a n/a n/a BIT RATE = (FOSC/(4 * (X + 1)) min: 0, max: 127 49 => 100k bps 127 => 39k bps DS51647C-page 99 PICkit™ Serial Analyzer User’s Guide TABLE 11-17: I2CM STATUS BLOCK Byte Bit Description Comm: I2CM 12 13 14 15 16 17 18 19 7:0 0 1 2 3 4 5 6 7 7:0 0 1 2 3 4 5 6 7 7:0 7:0 7:0 0 1 2 3 4 5 6 7 7:0 7:0 7:0 Bit flags: error status WCOL error SSPOV error received NACK when ACK was expected Composite error Bit flags: info status AUX1 – state (0 | 1) AUX2 – state (0 | 1) AUX1 – direction (1=IN, 0=OUT) AUX2 – direction (1=IN, 0=OUT) n/a n/a n/a n/a SDA Line Voltage (255 = 5V) SCL Line Voltage (255 = 5V) BIT RATE CODE currently in use The I2CM Tag/CCMND bytes are used by the host (software) to describe an I2C transaction in ‘script’ form. The script is sent via USB to the script buffer (CBUF1) and interpreted by the Comm controller to execute the transaction on the I2C bus. The return data stream contains I2C read data as well as ‘event marker’ tags that mark the occurrence of each entity of the I2C transaction (e.g., Tag: 0x81 indicates a Start bit) DS51647C-page 100 © 2009 Microchip Technology Inc. PICkit™ Serial Analyzer Firmware . TABLE 11-18: I2CM ‘CMD’ TAG BYTES Tag/CCMD 0x80 LEN Name 2 1 I CM_INIT 1 I2 1 2 I CM_STOP 1 I2 N+2 I2 Description Initialize master 0 0x81 CM_START Tag 2 Issue I C™ Start 0 0x82 Tag 2 Issue I C™ Stop 0 0x83 CM_RESTART Tag 2 Issue I C™ Restart 0 0x84 0x85 0x86 2 CM_WRITE_BYTES I2CM_READ_BYTES 1 I2CM_READ_BLOCK 2 I2CM_BIT_RATE Write bytes 0 Tag 1 byte count (N) 2 data byte N+1 data byte Read bytes – ACK all bytes 0 Tag 1 byte count (N) Read block – ACK all bytes 0 0x87 0x88 1 I2CM_RESET 2 I2CM_READ_BYTES_NLB Set 0x8A 1 I2 1 I2CM_AUX1_RST 1 I2CM 1 I2CM 1 I2CM 1 I2CM CM_READ_BLOCK_NLB 1 bit rate Reset MSSP module _AUX1_SET 0 Tag 1 byte count (N) Read block – NACK last byte _AUX1_OUT _AUX1_IN _AUX1_WAIT_0 Tag AUX1 direction: INPUT Tag wait AUX1 == 0 0 © 2009 Microchip Technology Inc. Tag AUX1 direction: OUTPUT 0 0x94 Tag AUX1: 1 0 0x93 Tag AUX1: 0 0 0x92 Tag Read bytes – NACK last byte 0 0x91 bit rate Tag 0 0x90 Tag I2C™ 0 0 0x89 Tag Tag DS51647C-page 101 PICkit™ Serial Analyzer User’s Guide TABLE 11-18: I2CM ‘CMD’ TAG BYTES (CONTINUED) 0x95 1 I2CM _AUX1_WAIT_1 wait AUX1 == 1 0 0x96 2 1 I CM _AUX2_RST 1 I2 1 I2 1 2 I CM _AUX2_IN 1 I2 1 I2CM AUX2: 0 0 0x97 CM _AUX2_SET CM _AUX2_OUT CM _AUX2_WAIT_0 _AUX2_WAIT_1 Tag wait AUX2 == 0 0 0x9B Tag AUX2 direction: INPUT 0 0x9A Tag AUX2 direction: OUTPUT 0 0x99 Tag AUX2: 1 0 0x98 Tag Tag wait AUX2 == 1 0 Tag An example of a data stream in the script buffer that would direct the Comm back to communicate in I2C to the unit. Under test is as follows: 0x81 I2CM_START 0x84 I2CM_WRITE_BYTES 0x02 Number of bytes 0xA8 I2C™ address for writing 0x01 I2C™ command code 0x83 I2CM_RESTART 0x84 I2CM_WRITE_BYTES 0x01 Number of bytes 0xA9 I2C™ address for reading 0x89 I2CM_READ_BYTES_NLB 0x01 Number of bytes 0x82 I2CM_STOP The script (above) is interpreted as follows. Tag 0x81 instructs the Comm module to generate an I2C Start bit on the I2C bus. Tag 0x84 indicates 2 bytes will be transmitted following the start – 0xA8 and 0x01. The first byte is the I2C slave address (with Write/Read bit Reset) and a data/command byte of 0x01. The Comm module does not place any significance on the value of the data bytes but merely transmits them ‘blindly’ – as instructed. The next Tag 0x83 instructs the Comm module to issue a Restart bit on the I2C bus. Tag and data bytes - 0x84, 0x01, 0xA9 – will cause 1 byte (0xA9) to be transmitted. Here again, the Comm module does not interpret the data – the I2C slave will interpret 0xA9 as an address with Write/Read bit set. Tag 0x89 followed by data byte 0x01 instructs the Comm module to attempt to read 1 byte from the slave then issue a NACK on the bus. Finally, an I2C Stop bit is issued according to Tag 0x82. The resulting I2C transaction looks like this on the bus: [START][A8][01][RESTART][A9][data byte received][STOP] As the script is executed, a data stream will be developed using Tags/CDATA (described in Table 11-19) and returned to the host software via CBUF2. DS51647C-page 102 © 2009 Microchip Technology Inc. PICkit™ Serial Analyzer Firmware TABLE 11-19: I2CM ‘DATA’ TAG BYTES Tag/ CDATA LEN 0x80 1 Name I2CM_EVENT_START_TX Description Start bit event 0 2 CDATA-Tag 0x81 1 I CM_EVENT_STOP_TX Stop bit event 0x82 1 I2CM_EVENT_RESTART_TX Restart bit event 0 0 2 CDATA-Tag CDATA-Tag 0x83 1 I CM_EVENT_ACK_TX ACK bit event 0x84 1 I2CM_EVENT_NACK_TX NACK bit event 0x85 1 2CM_EVENT_ACK_RX I ACK bit event 0x86 1 I2CM_EVENT_NACK_RX NACK bit event 2 2CM_EVENT_BYTE_TX 0 0 0 0 0x87 0x88 0x89 0x8A © 2009 Microchip Technology Inc. 2 2 2 I 2CM_EVENT_BYTE_RX I I2CM_EVENT_XACT_ERR 2CM_EVENT_STATUS_ERR I CDATA-Tag CDATA-Tag CDATA-Tag CDATA-Tag BYTE transmit 0 CDATA-Tag 1 data BYTE transmit 0 CDATA-Tag 1 data transaction error 0 CDATA-Tag 1 error byte status error 0 CDATA-Tag 1 error byte DS51647C-page 103 PICkit™ Serial Analyzer User’s Guide 11.7 I2CS COMMUNICATIONS The I2CS Communication mode is a flexible I2C slave that can be configured to respond to one or more bus addresses. Three operating modes (described below) provide several levels of sophistication and operability. In all modes, transactions can be reported to the host using optional PICkit Serial Analyzer event tags. Additionally, mode-dependant data is available as described below. TABLE 11-20: MODE NAME DESCRIPTION 0 Default Basic/mechanical mode of operation in which the PICkit Serial Analyzer blindly accepts any/all ‘write’ data and provides canned/default ‘read’ data in response to any enabled I2C™ address and all device registers/addresses (data defined in CONTROL_BLOCK). 1 Interactive This mode allows the host to orchestrate I2C™ transactions in ‘real time’. This necessarily requires the host to provide ‘read’ data as needed while the PICkit Serial Analyzer holds the I2C bus clock line (waiting). ‘Write’ data is reported to the host via transaction event tags. 2 Auto In Auto mode the PICkit Serial Analyzer operates autonomously as defined by a ‘soft’ “Slave Profile” table stored in PICkit Serial Analyzer RAM (described below). At any time the host can read and/or update the table contents as needed. Note: The ability to service multiple slave addresses is hampered by a bug in silicon – versions A3 and before. Slave address Mask should be set to zero (“0”). 11.7.1 Modes 11.7.1.1 MODE: DEFAULT As stated in the introduction, the Default mode requires little/no configuration and results in minimal transaction latencies. This mode is of limited use in that it does not provide for address-dependant (dynamic) read data. The CONTROL_BLOCK is the source of ‘read’ data for any/all addresses. Of course optional Event markers report I2C transactions to the host. DS51647C-page 104 © 2009 Microchip Technology Inc. PICkit™ Serial Analyzer Firmware FIGURE 11-2: PICkit™ Serial Analyzer Exec Control B Comm I2CS Status H O S T I2C™ USB CBUF1 CBUF2 D E V I C E A CBUF3 A – event data B – I2C™ read data 11.7.1.1.1 Operation The Default mode requires very little configuration/initialization. 1. Issue Cold Start 2. Write Configuration Block (with Comm = I2CS and Mode = 0) 3. Issue Warm Start 11.7.1.2 MODE: INTERACTIVE The Interactive mode provides the greatest flexibility but at the expense of transaction latencies. The host monitors I2C transactions near real time using EVENT markers. Should a transaction require ‘read’ data (to return to the I2C master), the I2C bus is suspended (by holding the clock line low) until the host supplies data via the standard ‘script’ buffer. FIGURE 11-3: PICkit™ Serial Analyzer Exec Control Comm I2CS Status H O S T I2C™ USB CBUF1 CBUF2 B D E V I C E A CBUF3 A – event data B – I2C™ read data © 2009 Microchip Technology Inc. DS51647C-page 105 PICkit™ Serial Analyzer User’s Guide 11.7.1.2.1 Operation Execute the following sequence for initialization: 1. Issue Cold Start (Reset) 2. Write Configuration Block (with Comm = I2CS, Mode = 1, Event Markers enabled) 3. Issue Warm Start The host must monitor I2C transactions via the Event Markers. Should the I2C Master request ‘read’ data, the PICkit Serial Analyzer will hold the I2C SCK line low and alert the host with SDATA Tag: I2CS_DATA_RQ. The host must supply data to the PICkit Serial Analyzer to be returned to the I2CS Master using SCMND Tag: I2CS_SEND_BYTES. If more data is supplied than is required for the transaction, the remaining data will be discarded. If an insufficient number of bytes are supplied by the host, the PICkit Serial Analyzer will return all data supplied then hold SCK line low and re-issue SCMND Tag: I2CS_DATA_RQ to the host. 11.7.1.3 MODE: AUTO Auto is the most sophisticated mode allowing the PICkit Serial Analyzer to operate ‘autonomously’ from a ‘slave profile’ loaded in PICkit Serial Analyzer RAM (CBUF3). The slave profile defines one or more I2C slave addresses and a unique set of device registers for each. The device registers can be defined in two ways – (1) discrete, non-contiguous registers of various lengths or (2) a block of contiguous addresses with flexible access to 1 or more bytes within that block in a single transaction. Additionally, each register can be defined as Read/Write, Read-only or Write-only. The 2 bytes in the PICkit Serial Analyzer control block, address and mask, defines the set of slave addresses that the PICkit Serial Analyzer will ‘Acknowledge’. All addresses excluded by the address and mask will be automatically ‘Not Acknowledged’. For all acknowledged addresses the pre-loaded slave profile dictates the response/behavior. For I2C transactions involving slave addresses or registers not defined in the slave profile, write data is discarded and a read data is defaulted (0xFF). Similarly, writing to a ‘read-only’ register or attempting to write beyond the addressable limits of the register will cause the write data to be discarded. Reading from a ‘write-only’ register or attempting to read beyond the addressable limits of the register will result in default data (0xFF). DS51647C-page 106 © 2009 Microchip Technology Inc. PICkit™ Serial Analyzer Firmware FIGURE 11-4: PICkit™ Serial Analyzer Exec Control Comm I2CS Status H O S T I2C™ USB CBUF1 CBUF2 CBUF3 D E V I C E A B (Profile) A - event data B - I2C™ read data 11.7.1.3.1 Operation: The host configures the Auto mode as follows: 1. Issue Cold Start (Reset) 2. Write Configuration Block (Comm = I2CS, Mode = 2, appropriate Event Markers enabled) 3. Write Slave Profile to CBUF3 4. Issue Warm Start The Auto mode allows the PICkit Serial Analyzer to operate autonomously (i.e., without host intervention). Practically speaking, the host GUI will most likely want to reflect activity with the slave registers as it occurs. A couple of options can be employed. Option 1 would call for the host to enable I2C transaction Event Markers detailing each I2C transaction in which the PICkit Serial Analyzer participated. This requires that the host decode/interpret the transactions on a byte-by-byte basis. Option 2 utilizes the ‘register access’ event markers (I2CS_EVENT_REG_READ and I2CS_EVENT_REG_WRITE) fired to the host when a register within the slave profile is accessed. The fact that a slave register was read is an ‘event’ but does not represent a change in the data loaded in the slave profile. In the event that a register within the slave profile was written, it may be important for the host monitoring the slave profile to fetch the ‘new’ data from that register for processing/display. Data is retrieved from a register using SCMND Tag: I2CS_REGDATA_READ. The register contents are returned with SDATA Tag: I2CS_REGDATA. The register contents can be written or read by the host. To insure data integrity of multi-byte registers, the contents are accessed only ‘between’ I2C transactions. This may cause a slight delay in executing the request or in servicing the next/pending I2C transactions. 11.7.1.3.2 Slave Profile In Auto mode the PICkit Serial Analyzer personality is defined by a “slave profile” downloaded by the host to PICkit Serial Analyzer RAM (i.e., CBUF3). The profile defines one or more I2C slave addresses and a set of one or more device registers for each. The profile must begin with a Slave Address Tag and be terminated by an ‘End’ Tag. © 2009 Microchip Technology Inc. DS51647C-page 107 PICkit™ Serial Analyzer User’s Guide TABLE 11-21: Table-Tag(1) DESCRIPTION 0x10 Slave Address 0x2X Register Definition 0x40 End of Slave Profile Note 1: The upper nibble defines the Table-Tag, the lower nibble is reserved for option flags TABLE 11-22: TABLE-TAG: SLAVE ADDRESS (0X20) Table-Tag: SLAVE ADDR: 0x20 Data: Slave Address Data: (Reserved) Data: (Reserved) The slave definition is 4 bytes long (including the tag). Two bytes are reserved for firmware operation. TABLE 11-23: TABLE-TAG: REGISTER DEFINITION Table-Tag: REG DEF: 0x4X Data: Register ID / # / Address Data: Byte Count = N Data: Data[0] ... Data: Data[N-3] The length of a register definition is flexible. Lower nibble of Table-Tag is defined as option bits (refer to table below): TABLE 11-24: Table-Tag[3] ‘memory block’ of sequential locations beginning with register # Table-Tag[2] Table-Tag[1] disable Read Table-Tag[0] disable Write A ‘memory block’ is a set of N contiguous addresses beginning with ‘Register ID’. An I2C transaction is permitted to access one or more bytes anywhere within the block. TABLE 11-25: TABLE-TAG: END Table-Tag: END: 0x80 DS51647C-page 108 © 2009 Microchip Technology Inc. PICkit™ Serial Analyzer Firmware EXAMPLE The following slave profile defines 2 slave addresses – 2 registers for 1 and 1 register block for the other. TABLE 11-26: Table-Tag SLAVE ADDR 0x20 Data: Slave Addr 0x16 Data: (Reserved) 0x00 Data: (Reserved) 0x00 Data: Table-Tag: REGISTER DEF 0x41 Data: Register # 0x21 Data: Byte Count 0x02 Data: 0x34 Data: 0x12 Data: Table-Tag: REGISTER DEF 0x40 Data: Register # 0x22 Data: Byte Count 0x01 Data: 0x56 Table-Tag SLAVE ADDR 0X20 Data: Slave Addr 0x18 Data: (Reserved) 0x00 Data: (Reserved) 0x00 Data: Table-Tag: REGISTER DEF 0x48 Data: Register ID 0x00 Data: Byte Count 0x04 Data: 0x12 Data: 0x34 Data: 0x56 Data: 0x78 Table-Tag: END 0x80 © 2009 Microchip Technology Inc. DS51647C-page 109 PICkit™ Serial Analyzer User’s Guide 11.7.2 Configuration/Status 11.7.2.1 CONTROL_BLOCK TABLE 11-27: BYTE BIT DESCRIPTION Comm: I2CS 16 7:0 Mode: 0=default 1=interactive 2=automatic (register table) 17 7:0 bit flags – Event Markers 0 1= event marker enable: ADDR RX 1 1= event marker enable: DATA RX 2 1= event marker enable: DATA TX 3 1= event marker enable: ACK RX 4 1= event marker enable: NACK RX 5 1= event marker enable: REG READ 6 1= event marker enable: REG WRITE 7 1= event marker enable: status error 18 7:0 0 1= event marker enable: START (reserved – not implemented) 1 1= event marker enable: STOP 2 1= event marker enable: DATA RQ 3 4 5 6 7 DS51647C-page 110 19 7:0 20 7:0 MODE 0 read data (bytes 1 thru N) 21 7:0 MODE 0 read data (byte 0) 22 7:0 Slave Address 23 7:0 Slave Address Mask © 2009 Microchip Technology Inc. PICkit™ Serial Analyzer Firmware 11.7.2.2 STATUS_BLOCK TABLE 11-28: BYTE BIT DESCRIPTION Comm: I2CS 12 7:0 bit flags: error status 0 Slave profile malformed (mode 2) 1 2 3 4 13 5 SSPOV 6 WCOL 7 composite error 7:0 bit flags: info status 0 SCK line state (0 | 1) 1 SDA line state (0 | 1) 2 3 4 5 6 7 14 7:0 15 7:0 16 7:0 17 7:0 18 7:0 19 7:0 © 2009 Microchip Technology Inc. DS51647C-page 111 PICkit™ Serial Analyzer User’s Guide 11.7.3 Communication Tags 11.7.3.1 TAG: SCMND TABLE 11-29: Tag/SCMND LEN NAME 0xC0 1 I2 0xC1 N+2 I2CS_SEND_BYTES (mode 1) CS_INIT DESCRIPTION 2 initialize I C controller 0 0xC2 0xC3 DS51647C-page 112 N+3 3 2 I CS_REGDATA_LOAD (mode 2) I2CS_REGDATA_RETURN (mode 2) Tag send/provide ‘read’ bytes 0 Tag 1 byte count (N) 2 data N+1 data write/load register definition 0 Tag 1 Slave address 2 Register ID 3 Byte count(N) 4 Data N+3 Data read/return register definition 0 Tag 1 Slave Address 2 Register ID © 2009 Microchip Technology Inc. PICkit™ Serial Analyzer Firmware 11.7.3.2 TAG: SDATA TABLE 11-30: Tag/SDATA 0xC0 0xC1 0xC2 LEN 2 2 2 NAME I2CS_EVENT_ADDR I2CS_EVENT_DATA_RX I2CS_EVENT_DATA_TX DESCRIPTION ADDRESS byte received 0 SDATA-Tag 1 data (address) DATA byte received (Master write) 0 SDATA-Tag 1 data DATA byte sent (Master read) 0 SDATA-Tag 1 data 0xC3 1 I2CS_EVENT_ACK_RX ACK received 0xC4 1 I2CS_EVENT_NACK_RX NACK received 0 0 0xC5 1 I2CS_EVENT_START SDATA-Tag SDATA-Tag START bit received 0 SDATA-Tag 0xC6 1 I2CS_EVENT_STOP STOP bit received 0xC7 2 I2CS_EVENT_STATUS_ERR Status error 0 SDATA-Tag 0 SDATA-Tag 1 error status byte 0xC8 1 I2CS_DATA_RQ (mode 1) DATA request (master read) 0xC9 1 I2CS_EVENT_REG_READ (mode 2) REG READ 0xCA 0xCB © 2009 Microchip Technology Inc. 1 N+3 I2CS_EVENT_REG_WRITE (mode 2) I2CS_REGDATA (mode 2) 0 SDATA-Tag 0 SDATA-Tag 1 Slave Address 2 Register ID REG WRITE 0 SDATA-Tag 1 Slave Address 2 Register ID register data 0 Tag 1 Slave Address 2 Register ID 3 Byte count = N 4 Data N+3 Data DS51647C-page 113 PICkit™ Serial Analyzer User’s Guide 11.8 SPI COMMUNICATIONS SPI is a 4-wire serial protocol that uses data in, data out, clock and Chip Select pins. It is a very basic protocol using a clock edge to capture data. The CONTROL_BLOCK is used to enable SPI event markers, set the bit rate and configure transaction/protocol options. TABLE 11-31: CONNECTOR PINOUT IN SPI MODE Pin Description 1 CS 2 +V 3 GND 4 SDI 5 SCK 6 SDO TABLE 11-32: SPI CONTROL BLOCK Byte Bit Description Comm: SPI 16 17 18 19 20 21 22 23 7:0 0 1 2 3 4 5 6 7 7:0 0 1 2 3 4 5 6 7 7:0 7:0 7:0 7:0 7:0 7:0 Bit flags 1 = Event marker enable: read byte 1 = Event marker enable: write byte 1 = Event marker enable: status error 1= 1= 1= 1= 1= SPI Configuration bits 1 = SMP (sample phase) 1 = CKE (clock edge select) 1 = CKP (clock polarity) 1 = DAOD (disable auto output disable on data input) n/a n/a n/a CSPOL (Chip Select Polarity), 0=Low TRUE, 1=High TRUE (1) BIT RATE: Pre-scale code BIT RATE: Scaling code Note 1: CSPOL determines the ‘active’ state of CS, if CSPOL=0, CS is active-low if CSPOL=1, CS is active-high upon initialization, CS is set ‘inactive’ DS51647C-page 114 © 2009 Microchip Technology Inc. PICkit™ Serial Analyzer Firmware TABLE 11-33: BIT RATE CODES FOSC 20 MHz 20 MHz 20 MHz 20 MHz 20 MHz 20 MHz Pre-Scale Code Pre-Scale Value Scale Code Scale Value Total Scale Value 0x00 0x00 0x01 0x01 0x02 0x02 8 8 32 32 128 128 0x00 0xFF 0x00 0xFF 0x00 0xFF 1 256 1 256 1 256 8 2048 32 8192 128 32768 Bit Rate 2.500 MHz 9.766 kHz 0.625 MHz 2.441 kHz 0.156 MHz 0.610 kHz TABLE 11-34: SPI STATUS BLOCK Byte Bit Description Comm: SPI 12 13 14 15 16 17 18 19 © 2009 Microchip Technology Inc. 7:0 0 1 2 3 4 5 6 7 7:0 0 1 2 3 4 5 6 7 7:0 7:0 7:0 7:0 7:0 7:0 Bit flags: error status WCOL error SSPOV error Composite error SPI Configuration bits 1 = SMP (sample phase) 1 = CKE (clock edge select) 1 = CKP (clock polarity) 1 = AOD (auto output disable on data input) 1 = SS 1= 1 = SLAVE 1 = MASTER BIT RATE: Pre-scale (ref: section: x.x.x) BIT RATE: Scaling (ref: section: x.x.x) DS51647C-page 115 PICkit™ Serial Analyzer User’s Guide TABLE 11-35: SPI ‘CMD’ TAG BYTES Tag/CCMD LEN 0x83 3 SPI_BITRATE 0x84 2 SPI_DATAIO_IN 0x85 N+2 SPI_DATAIO_OUT 0x86 N+2 SPI_DATAIO_INOUT 0x87 1 SPI_SDO_IN 0x88 1 SPI_SDO_OUT 0x8A 1 SPI_INIT 0x8B 1 SPI__ON Assert CS(1) 0 Tag 0x8C 1 SPI__OFF De-assert CS(1) 0 Tag Note 1: Name Description Set bit rate 0 Tag 1 scaler 2 pre-scaler (ref section x.x.x) Input data 0 Tag 1 byte count (N) Output data 0 Tag 1 byte count (N) 2 data N+1 data Output data 0 Tag 1 byte count (N) 2 data N+1 data Set SDO pin to Input (tri-state) 0 Tag Set SDO pin to Output 0 Tag Initialize SPI controller per Control Block 0 Tag CS polarity is determined by control block Configuration bit CSPOL CSPOL=0, asserting sets CS= 0, de-asserting sets CS= 1 CSPOL=1, asserting sets CS= 1, de-asserting sets CS= 0 TABLE 11-36: SPI ‘DATA’ TAG BYTES DS51647C-page 116 Tag/CDATA LEN Name 0x80 2 SPI_EVENT_BYTE_TX 0x81 2 SPI_EVENT_BYTE_RX 0x82 2 SPI_EVENT_STATUS_ERR Description Byte transmit 0 Tag 1 data Byte transmit 0 Tag 1 data Status error 0 Tag 1 error byte © 2009 Microchip Technology Inc. PICkit™ Serial Analyzer Firmware 11.9 USART COMMUNICATIONS Universal Synchronous Asynchronous Receive Transmit (USART) protocol is a standard 2-wire serial communication. In Asynchronous mode, there is a transmit line and a receive line. In Synchronous mode, the transmit line becomes the clock line and the receive line becomes the bidirectional data line. In Asynchronous mode, 8 bits are framed by a Start and Stop bit. A ninth bit can be included to use as a parity bit. To configure the protocol, set the clock polarity to rising edge or falling edge if using Synchronous mode. Select the baud rate according to the BRG table. TABLE 11-37: CONNECTOR PINOUT IN USART ASYNCHRONOUS MODE Pin Description 1 TX 2 +V 3 GND 4 — 5 — 6 RX TABLE 11-38: CONNECTOR PINOUT IN USART SYNCHRONOUS MODE © 2009 Microchip Technology Inc. Pin Description 1 Clock 2 +V 3 GND 4 — 5 — 6 Data DS51647C-page 117 PICkit™ Serial Analyzer User’s Guide TABLE 11-39: USART CONTROL BLOCK Byte Bit Description Comm: USART 16 17 7:0 7:0 0 1 2 3 4 5 6 7 7:0 0 1 2 3 4 5 6 7 7:0 7:0 7:0 0 1 2 3 4 5 6 7 7:0 7:0 18 19 20 21 22 23 n/a 1 = clock polarity (dflt) 1 = high-low at Start bit cell, 0 = low-high (USART-SM only, ignored otherwise) 1 = n/a 1 = Async receive disable (USART-A only, ignored otherwise) 1 = n/a 1 = n/a 1 = n/a 1 = n/a 1 = n/a 1 = Event marker enable: read byte 1 = Event marker enable: write byte 1 = Event marker enable: status error 1 = Event marker enable: break tx 1 = n/a 1 = n/a 1 = n/a 1 = n/a n/a n/a bit flags AUX1 – default state (0 | 1) AUX2 – default state (0 | 1) AUX1 – direction (1=IN, 0=OUT) AUX2 – direction (1=IN, 0=OUT) n/a n/a n/a n/a BRG (Baud) default (LSB) BRG (Baud) default (MSB) TABLE 11-40: BRG BAUD RATE TABLE Baud = FOSC/(4*(BRG + 1)) DS51647C-page 118 BAUD BRG ACTUAL ERR 300 16666 300.0 0.00% 1200 4166 1199.9 -0.01% 4800 1041 4798.5 -0.03% 9600 520 9596.9 -0.03% 19200 259 19230.8 0.16% 28800 173 28735.6 -0.22% 57600 86 57471.3 -0.22% 115200 42 116279.1 0.94% © 2009 Microchip Technology Inc. PICkit™ Serial Analyzer Firmware TABLE 11-41: USART STATUS BLOCK Byte Bit Description Comm: USART 12 13 14 7:0 0 1 2 3 4 5 6 7 7:0 7:0 0 1 2 15 16 17 18 19 © 2009 Microchip Technology Inc. 3 4 5 6 7 7:0 7:0 0 1 2 3 4 5 6 7 7:0 7:0 7:0 Bit flags: error status FERR – framing error OERR – overrun error INIT error (bad “mode”) n/a n/a n/a n/a Composite error 1= clock polarity (dflt) 1= high-low at start bit cell, 0= low-high (USART-SM only, ignored otherwise) 1 = n/a 1 = Async receive disabled (USART-A only, ignored otherwise) n/a n/a n/a n/a n/a AUX1 – state (0 | 1) AUX2 – state (0 | 1) AUX1 – direction (1=IN, 0=OUT) AUX2 – direction (1=IN, 0=OUT) n/a n/a n/a n/a n/a BRG (Baud) default (LSB) BRG (Baud) default (MSB) DS51647C-page 119 PICkit™ Serial Analyzer User’s Guide TABLE 11-42: USART ‘CMD’ TAG BYTES Tag/ CCMD LEN 0x80 1 Name USART_INIT Description Initialize USART controller 0 0x82 0x83 N+2 2 USART_DATA_XMT USART _DATA_SRCV (USART-SM only) Transmit data 0 Tag 1 Byte count = N 2 Data N+1 Data Receive data 0 Tag 1 Byte count = N 0x84 1 USART_DATA_ARCV_ENABLE (USART-A only) Enable receive data monitor 0x85 1 USART_DATA_ARCV_DISABLE (USART-A only) Disable receive data monitor 0x86 1 USART_BREAK_XMT (USART-A only) send Break USART_BREAK_DATA_XMT (USART-A only) send Break then Data byte 0x87 0x88 2 3 USART_BAUD 0 0 0 Tag Tag Tag 0 Tag 1 Data byte (TYP: 0x55) set BAUD rate 0 Tag 1 Baud value (LSB) 2 Baud value (MSB) (Reference section x x x) 0x89 1 USART_SCKP_SET (USART-SM only) set “Clock Polarity” bit 0x8A 1 USART_SCKP_RST (USART-SM only) reset “Clock Polarity” bit 0x90 1 USART_AUX1_RST AUX1: 0 0x91 1 USART_AUX1_SET AUX1: 1 0x92 1 USART_AUX1_OUT AUX1 direction: Output 0x93 1 USART_AUX1_IN AUX1 direction: Input 0x94 1 USART_AUX1_WAIT_0 wait AUX1 == 0 0x95 1 USART_AUX1_WAIT_1 wait AUX1 == 1 0x96 1 USART_AUX2_RST AUX2: 0 0 0 0 0 0 0 0 0 0 DS51647C-page 120 Tag Tag Tag Tag Tag Tag Tag Tag Tag Tag © 2009 Microchip Technology Inc. PICkit™ Serial Analyzer Firmware TABLE 11-42: USART ‘CMD’ TAG BYTES (CONTINUED) 0x97 1 USART_AUX2_SET AUX2: 1 0x98 1 USART_AUX2_OUT AUX2 direction: Output 0x99 1 USART_AUX2_IN AUX2 direction: Input 0x9A 1 USART_AUX2_WAIT_0 wait AUX2 == 0 0x9B 1 USART_AUX2_WAIT_1 wait AUX2 == 1 Tag 0 Tag 0 Tag 0 Tag 0 Tag 0 TABLE 11-43: USART ‘DATA’ TAG BYTES Tag/CDATA LEN 0x80 2 0x81 0x82 0x83 2 2 1 Name USART_EVENT_BYTE_TX USART_EVENT_BYTE_RX USART_EVENT_STATUS_ERR USART_EVENT_BREAK_TX Description Byte transmit 0 Tag 1 data Byte received 0 Tag 1 data Status error 0 Tag 1 error byte Break transmitted 0 Tag 11.10 LIN COMMUNICATIONS 11.10.1 Introduction The PICkit Serial Analyzer LIN support is confined to master and monitor functionality. As a master, the PICkit Serial Analyzer accepts instruction from the host in the form of script tag(s). Execution of the script results in the PICkit Serial Analyzer transmitting on the LIN bus as a master. In practice, the transmission would constitute a LIN frame header or an entire LIN frame (i.e., message). As a LIN bus monitor, the PICkit Serial Analyzer can detect and report all events/transactions on the bus generated by other devices on the bus or generated by the PICkit Serial Analyzer master module. The ‘event marker’ tag(s) are used to report bus activity in its variety of forms but must be enabled, individually, using CONTROL_BLOCK Configuration bits as seen below. © 2009 Microchip Technology Inc. DS51647C-page 121 PICkit™ Serial Analyzer User’s Guide 11.10.2 Configuration/Status 11.10.2.1 CONTROL_BLOCK TABLE 11-44: BYTE BIT DESCRIPTION Comm: LIN 16 17 DS51647C-page 122 7:0 bit flags 0 1= n/a 1 1= n/a 2 1= n/a 3 1= set LIN adapter Chip Select line High 4 1= n/a 5 1= n/a 6 1= receive enable 7 1= enable Auto-Baud Detect/set 7:0 bit flags 0 1= event marker enable: data RX 1 1= event marker enable: data TX 2 1= event marker enable: break TX 3 1= event marker enable: break RX 4 1= event marker enable: auto-baud 5 n/a 6 n/a 7 1= event marker enable: status error 18 7:0 n/a 19 7:0 n/a 20 7:0 n/a 21 7:0 n/a 22 7:0 Baud rate (BRG code) default (LSB) 23 7:0 Baud rate (BRG code) default (MSB) © 2009 Microchip Technology Inc. PICkit™ Serial Analyzer Firmware 11.10.2.2 STATUS_BLOCK TABLE 11-45: BYTE BIT DESCRIPTION Comm: LIN 12 7:0 bit flags: error 0 FERR – framing error 1 OERR – overrun error 2 FAULT – from LIN bus adapter 3 Auto-Baud Detect error (e.g., overflow) 4 n/a 5 n/a 6 INIT error 7 composite error 7:0 bit flags: status 0 PIN state: Fault 1 PIN state: 2 Auto-Baud Detect in progress 3 n/a 4 n/a 5 n/a 6 n/a 7 n/a 14 7:0 n/a 15 7:0 n/a 16 7:0 n/a 17 7:0 n/a 18 7:0 currently active Baud rate (BRG code) (LSB) 19 7:0 currently active Baud rate (BRG code) (MSB) 13 11.10.2.3 CONFIGURATION CONSIDERATIONS The PICkit Serial Analyzer can be configured to operate as LIN bus master, monitor or both. MASTER To configure the PICkit Serial Analyzer to perform as LIN bus master, the host must write the CONTROL_BLOCK to specify: 1. Default baud rate 2. LIN adapter ‘Chip Select’ line state Optionally, 1. Set ‘receive enable’ Configuration bit to allow the PICkit Serial Analyzer to receive RX data and report it to the host 2. Enable desired event markers © 2009 Microchip Technology Inc. DS51647C-page 123 PICkit™ Serial Analyzer User’s Guide MONITOR To configure the PICkit Serial Analyzer to perform as LIN bus monitor, the host must write the CONTROL_BLOCK to specify: 1. LIN adapter ‘Chip Select’ line state 2. Set ‘receive enable’ Configuration bit to allow the PICkit Serial Analyzer to receive RX data and report it to the HOST 3. Set ‘auto-baud enable’ Configuration bit to allow PICkit Serial Analyzer to track baud rate of bus transactions Optionally, 1. Enable desired combination of event markers 11.10.3 Communication Tags 11.10.3.1 TAG: SCMND Tag commands and data sent to the PICkit Serial Analyzer. TABLE 11-46: Tag/ SCMND 0x80 LEN 1 NAME DESCRIPTION initialize USART controller LIN_INIT 0 0x81 N+2 (1) LIN_XMT_DATA 0x82 1 LIN_XMT_BRK 0x83 N+2 LIN_XMT_BRK_DATA(1) transmit Data byte(s) 0 Tag 1 Byte count = N 2 Data N+1 Data transmit Break 0 0x84 0x85 Note 1: DS51647C-page 124 N+2 3 LIN_XMT_FRAME(1) LIN_BAUD_SET Tag Tag transmit Break then Data bytes (the data must include Sync char) 0 Tag 1 Byte count = N 2 Data (Sync character) N+1 Data transmit Data byte(s) (implied leading Break and Sync) 0 Tag 1 Byte count = N 2 Data N+1 Data set BAUD rate 0 Tag 1 Baud code (LSB) 2 Baud code (MSB) Data bytes (i.e., ‘frame’ to be published) must include the appropriate checksum – ‘enhanced’ checksum if frame is destined for a LIN 2.0 slave. The PICkit Serial Analyzer has no comprehension of data content or ‘format’ – data bytes are simply transmitted verbatim. © 2009 Microchip Technology Inc. PICkit™ Serial Analyzer Firmware 11.10.3.2 TAG: SDATA Tag commands and data returned from the PICkit Serial Analyzer. TABLE 11-47: Tag/ SDATA 0x80 0x81 0x82 0x83 LEN 2 2 2 1 NAME LIN_EVENT_BYTE_RX LIN _EVENT_BYTE_TX LIN _EVENT_STATUS_ERR LIN _EVENT_BREAK_RX DESCRIPTION Byte received 0 Tag 1 data Byte transmitted 0 Tag 1 data Status error 0 Tag 1 error byte Break received 0 0x84 1 LIN _EVENT_BREAK_TX Break transmitted 0 0x85 3 LIN _EVENT_AUTOBAUD Tag Tag Auto-baud event 0 Tag 1 Baud code (LSB) 2 Baud code (MSB) Those tags (above) identified as ‘Event’, generally mark the occurrence of LIN bus activity. As with all other supported PICkit Serial Analyzer serial protocols, the ‘Event’ tags are generated when/as are detected in real time and queued in a circular buffer for transmission to the host. Each tag can be individually enabled/disabled using the appropriate Configuration bit in the control block. 11.10.4 Parameter Detail 11.10.4.1 BAUD The PICkit Serial Analyzer baud rate is configured by a 2-byte code as detailed in the table(s) below. Upon initialization, the PICkit Serial Analyzer is configured with the ‘default’ baud specified in the control block (bytes 22 and 23) as documented in the table above. Additionally, the baud rate can be changed in the context of script execution (real time) using the appropriate script/SCMND Tag. At all times the status block reflects the currently active baud rate. This baud rate applies to all data transmitted by the PICkit Serial Analyzer. Auto-Baud The PICkit Serial Analyzer LIN ‘monitor’ function has the flexibility to Auto-Baud Detect and modify the PICkit Serial Analyzer hardware configuration to receive ‘messages’ from the LIN bus at the baud rate being transmitted. This ‘flexibility’ must be enabled using the Configuration bit in the control block (byte 16 bit 7). The host can be apprised of the Auto-Baud Detect action through an event marker tag. © 2009 Microchip Technology Inc. DS51647C-page 125 PICkit™ Serial Analyzer User’s Guide The auto-baud operation depends on receiving a ‘Break’ (13 bits of 0’s) followed by a ‘Sync’ (byte 0x55). Referring to the timing diagram below – the Break begins at ‘A’. At ‘B’ the PICkit Serial Analyzer expected a Stop bit – the USART interrupts the PICkit Serial Analyzer (RCIF – receive interrupt flag) and sets FERR (framing error). The PICkit Serial Analyzer interprets (1) DATA = 0 and (2) FERR (framing error) as having received a Break; therefore, the FERR is automatically reset and not reported to the host. If Auto-Baud Detection is enabled, the PICkit Serial Analyzer will wait a maximum of ‘WAIT-BRK’ for the Break to complete at ‘C’. The duration of WAIT-BRK must be set to accommodate the slowest baud rate supported (6 msec was chosen to support 1000 baud +/- 50%). If the end of Break is not seen in that time, the Auto-Baud Error bit is set in the STATUS_BLOCK and the operation is aborted. If the end of Break is seen, the auto-baud mechanism is enabled and the baud rate of the Sync character is measured. At the second interrupt (RCIF (2)) at ‘E’, the operation is complete and the new/measured baud rate is used for subsequent transactions. If the auto-baud measurement experienced an overflow, the Auto-Baud Error bit is set in the STATUS_BLOCK and the default baud rate from the CONTROL_BLOCK is reloaded into the USART. In either case, the resultant baud rate is reflected in the STATUS_BLOCK. After the Break, the PICkit Serial Analyzer will wait indefinitely for the Sync character to begin with the USART receiver disabled. WARNING The Sync character is not actually ‘received’ by the PICkit Serial Analyzer during an auto-baud operation; therefore, it is not reflected/reported to the host. The event marker sequence would be BREAK_RX and auto-baud followed by BAUD_L, BAUD_H. If auto-baud was not enabled, the event marker sequence would be BREAK_RX then BYTE_RX followed by 0x55. FIGURE 11-5: A B C D E F S 0 1 2 3 4 5 6 7 P RCIF (1) RCIF (2) WAIT-BRK Break DS51647C-page 126 Sync © 2009 Microchip Technology Inc. PICkit™ Serial Analyzer Firmware LIN specifications limit the baud rate to 20k (Reference the following table for examples). Baud = FOSC/(4 * (BRG_CODE + 1)) where: FOSC = 20 MHz TABLE 11-48: © 2009 Microchip Technology Inc. BAUD CODE ACTUAL ERROR 100 49999 100.0 0.00% 200 24999 200.0 0.00% 300 16666 300.0 0.00% 400 12499 400.0 0.00% 500 9999 500.0 0.00% 600 8332 600.0 0.00% 700 7142 700.0 0.00% 800 6249 800.0 0.00% 900 5555 899.9 -0.01% 1000 4999 1000.0 0.00% 2000 2499 2000.0 0.00% 3000 1666 2999.4 -0.02% 4000 1249 4000.0 0.00% 5000 999 5000.0 0.00% 6000 832 6002.4 0.04% 7000 713 7002.8 0.04% 8000 624 8000.0 0.00% 9000 555 8992.8 -0.08% 10000 499 10000.0 0.00% 11000 454 10989.0 -0.10% 12000 416 11990.4 -0.08% 13000 384 12987.0 -0.10% 14000 356 14005.6 0.04% 15000 332 15015.0 0.10% 16000 312 15974.4 -0.16% 17000 293 17006.8 0.04% 18000 277 17985.6 -0.08% 19000 262 19011.4 0.06% 20000 249 20000.0 0.00% DS51647C-page 127 PICkit™ Serial Analyzer User’s Guide NOTES: DS51647C-page 128 © 2009 Microchip Technology Inc. PICkit™ SERIAL ANALYZER USER’S GUIDE Chapter 12. PICkit™ Serial Analyzer DLL 12.1 INTRODUCTION Custom software programs can be created by accessing the Dynamically Linked Library (DLL), PICkitS.dll, with the software language of your choice. All of the functionality to create tag byte scripts that will be converted to protocol scripts is built into the DLL and is very easy to use. Any programming language that can access functions from a DLL can be used, however, a Microsoft.NET framework language is recommended. 12.2 OVERVIEW The name of the DLL is PickitS.dll and is included in the PICkit Serial Analyzer installation. The functions used to create custom GUI apps are divided into logical classes inside the DLL. The classes are listed below: • • • • • • • • I2C Master (class PICkitS.I2CM) I2C Slave (class PICkitS.I2CS) SPI Master (class PICkitS.SPIM) Microwire Master (class PICkitS.MicrowireM) USART (class PICkitS.USART) LIN (class PICkitS.LIN) Device (class PICkitS.Device) USBRead (Class PICkitS.USBRead) Applications call functions from class ‘Device’ for initialization and cleanup, and from a specific protocol class for input and output. Example projects (written in Visual Basic® .NET Express – a free download from Microsoft) and detailed documentation for each protocol are available for download from the PICkit Serial web site. © 2009 Microchip Technology Inc. DS51647C-page 129 PICkit™ Serial Analyzer User’s Guide NOTES: DS51647C-page 130 © 2009 Microchip Technology Inc. PICkit™ SERIAL ANALYZER USER’S GUIDE Chapter 13. Troubleshooting 13.1 INTRODUCTION This chapter describes questions and answers to common problems associated with using the PICkit™ Serial Analyzer and how to resolve them. 13.2 FREQUENTLY ASKED QUESTIONS PICkit™ Serial Analyzer could not be found Question I am receiving the error message, “PICkit™ Serial Analyzer could not be found” in the Transactions window, but the PICkit™ Serial Analyzer is plugged in. What is wrong? Answer Open the Windows® operating system Device Manger by clicking on Control Panel > System, selecting the Hardware tab and clicking on Device Manger button. Check if there is an error displayed under Human Interface Devices as shown in Figure 13-1. If an error is displayed, try unplugging and the re-plugging the USB cable until the error goes away (this may take 3 or 4 tries). If the error persists, try another USB port or hub. Try plugging the PICkit™ Serial Analyzer into another computer to verify that the USB port is working. FIGURE 13-1: WINDOWS® DEVICE MANAGER Current Limit Exceeded Question I received the error message “USB Hub Current Limit Exceeded” from the Windows® operating system. What is wrong? Answer The USB port current limit is set to 100 mA. If the target device plus PICkit™ Serial Analyzer exceeds this current limit, the USB port will shut down. Check for shorts. The target device can be externally powered if more power is needed. Microsoft® Windows® 98 SE Question After plugging the PICkit™ Serial Analyzer into the USB port, Windows® 98 SE asks for a driver. Where is the driver? Answer PICkit™ Serial Analyzer uses the Human Interface Device (HID) driver included with the Windows® Operating System. When Windows® 98 SE prompts for a driver, select “Search for the best driver for your device.” Then select the check box next to “Microsoft Windows Update” and click Next. Windows will automatically install the appropriate driver. Do not use Microchip’s MPLAB® ICD 2 USB driver. © 2009 Microchip Technology Inc. DS51647C-page 131 PICkit™ Serial Analyzer User’s Guide Microsoft® Windows® 95/98/NT Question Can I run on Windows® 95/98/NT? Answer No. These operating systems either do not support USB or have drivers that are not compatible. DS51647C-page 132 © 2009 Microchip Technology Inc. PICkit™ SERIAL ANALYZER USER’S GUIDE Appendix A. PICkit Serial Analyzer Schematics A.1 INTRODUCTION This appendix contains the PICkit Serial Management hardware diagrams. FIGURE A-1: PICkit™ SERIAL ANAYLZER SCHEMATIC (SHEET 1 OF 2) © 2009 Microchip Technology Inc. DS51647C-page 133 PICkit™ Serial Analyzer User’s Guide FIGURE A-2: DS51647C-page 134 PICkit™ SERIAL ANALYZER SCHEMATIC (SHEET 2 OF 2) © 2009 Microchip Technology Inc. PICkit Serial Analyzer Schematics FIGURE A-3: SILKSCREEN FIGURE A-4: TOP COPPER FIGURE A-5: BOTTOM COPPER © 2009 Microchip Technology Inc. DS51647C-page 135 PICkit™ Serial Analyzer User’s Guide NOTES: DS51647C-page 136 © 2009 Microchip Technology Inc. PICkit™ SERIAL ANALYZER USER’S GUIDE Appendix B. 28-Pin Demo Board I2C™ Demonstration Firmware B.1 INTRODUCTION The 28-Pin Demo Board I2C™ demonstration firmware communicates with the PICkit™ Serial Analyzer using the I2C serial protocol. The PICkit Serial Analyzer will be the I2C master and the 28-pin demo board will be the I2C slave device. The 28-pin demo board is programmed to emulate an I2C Real-Time Clock (RTC) and Serial EEPROM. B.2 HIGHLIGHTS This chapter discusses: • • • • • B.3 Hardware Firmware I2C Communications Slave Devices Functions HARDWARE The 28-Pin Demo Board (DM164120-3) is populated with and configured for: • • • • • PIC16F886 configured using the 8 MHz internal clock 32 kHz Tuning Fork Crystal connected to Timer1 Low-power Oscillator Four LEDs (DS1 through DS4) connected to RB0 through RB3 Potentiometer (RP1) connected to RA0/AN0 Push button (SW1) connected to RE3/MCLR For more information about the 28-pin demo board hardware, see the “28-Pin Demo Board User’s Guide” (DS41301). B.4 FIRMWARE The demo program source code and *.hex file can be found on the PICkit Serial CD-ROM at D:\28-pin Demo Board\Firmware\. The firmware is structured as multiple ‘modules’ representing functional components. Each module contains, at minimum, an “initialization” routine (MODULE_INIT) and a “service” routine (MODULE_SVC). Each initialization routine is called from MAIN once on Reset. Each Interrupt Service Routine is called sequentially and continuously from the MAIN Idle loop. Interrupt Service Routine is provided for the I2C module only. All other modules are serviced in turn from the MAIN ‘Idle loop’. © 2009 Microchip Technology Inc. DS51647C-page 137 PICkit™ Serial Analyzer User’s Guide TABLE B-1: FIRMWARE MODULES MODULE B.5 DESCRIPTION adc.asm ADC service – measuring channel AN0, connected to potentiometer RP1, and post results to register in shared memory device.asm Basic device (microcontroller) configuration ee_util.asm EEPROM Read/Write routines exec.asm “Executive” feature set – provides functionality for test and demonstration of PICkit™ Serial Analyzer and 28-pin demo board i2c_slave_pksd.a sm I2C™ service for three slave devices: 0xA2: Real-Time Clock (RTC) 0xA8: EEPROM 0xAA: Executive (Exec) led.asm LED management, set/reset LEDs per state register main.asm Initialization, Idle loop and Interrupt Service Routine context management pksi.asm Monitor PICkit Serial Analyzer interface I/O pins – post results to state register rtc.asm I2C™ device: real-time clock emulation maintains 16 locations for register-based I/O timer0.asm Utilizes TMR0 as a source for multiple “soft” timers timer1.asm Utilizes TMR1 with external 32 kHz crystal for RTC 1-second ‘ticks’ I2C COMMUNICATIONS B.5.1 Overview The 28-pin demo board I2C™ demo responds to three I2C slave addresses: TABLE B-2: DEVICE SLAVE ADDRESSES ADDR NAME DESCRIPTION 0xA2 RTC 0xA8 EEPROM Device emulation: Real-Time Clock Device emulation: EEPROM 0xAA Exec Supervisory features All devices (slave addresses) respond to the I2C protocols described below. Each slave device supports a fixed number of word addresses (see section B.6 Slave Devices below). The word address is automatically incremented during a transaction for sequential access of the device registers. If the word address is incremented beyond the end of the supported address range, the address will “wrap”. B.5.2 Protocols Figure B-1 shows the Master and Slave legend used for Figures B-2 through B-4. FIGURE B-1: MASTER/SLAVE DEVICE LEGEND Master Slave Write Byte(s) – This transaction is used to write one or more bytes. The maximum number of bytes is slave-dependant. DS51647C-page 138 © 2009 Microchip Technology Inc. 28-Pin Demo Board I2C™ Demonstration Firmware I2C™ WRITE BYTE(S) FIGURE B-2: SLAVE-ADR [W] S A DATA WORD-ADR DATA A DATA A A P Read Byte(s) with Word Address – The word address is set to begin at a given value and incremented sequentially during the transaction. I2C™ READ BYTE(S) WITH WORD ADDRESS FIGURE B-3: S SLAVE-ADR [W] A DATA WORD-ADR A RS SLAVE-ADR A DATA DATA N A P [R] Read Byte(s) without Word Address – The word address will continue in sequence from the previous transaction to the I2C slave. On Reset the device address for all three slave devices are reset to zero. I2C™ READ BYTE(S) WITHOUT WORD ADDRESS FIGURE B-4: S B.6 SLAVE-ADR [R] A DATA A DATA P N SLAVE DEVICES The 28-Pin Demo Board I2C™ demonstration firmware responds to three I2C slave devices: RTC, Serial EEPROM and Executive. B.6.1 Slave Address: 0xA2 – Real-Time Clock Emulation The 28-Pin Demo Board I2C™ demonstration emulates an I2C Real-Time Clock (RTC). Table B-3 list the word addresses. TABLE B-3: REG REAL-TIME CLOCK (RTC) WORD ADDRESSES NAME DESCRIPTION 0x00 RTC_CONFIG_1 7: 0 6: 0 5: STOP – stop time function (0: RUN, 1: STOP) 4: 0 3: 0 2: 0 1: 0 0: 0 0x01 RTC_CONFIG_2 7: 0 6: 0 5: 0 4: 0 3: AF – Alarm flag 2: 0 1: AE – Alarm enable 0: 0 0x02 RTC_SECONDS 00-59 seconds, coding: BCD, bit 7: VL? 0x03 RTC_MINUTES 00-59 minutes, coding: BCD 0x04 RTC_HOURS 00-23 hours, coding: BCD 0x05 RTC_WEEKDAY 00-06 weekday 0x06 RTC_DAYS 01-31 day of the month 0x07 RTC_MONTHS 01-12 month of the year, coding: BCD © 2009 Microchip Technology Inc. DS51647C-page 139 PICkit™ Serial Analyzer User’s Guide TABLE B-3: REAL-TIME CLOCK (RTC) WORD ADDRESSES (CONTINUED) 0x08 RTC_YEARS 00-99 year, coding: BCD 0x09 RTC_ALARM_MIN 00-59 minute of alarm, coding: BCD bit 7: enable 0x0A RTC_ALARM_HOUR 00-23 hour of alarm, coding: BCD bit 7: enable 0x0B RTC_ALARM_DAY 01-31 day of alarm, coding BCD bit 7: enable 0x0C RTC_ALARM_WEEK 00-06 weekday of alarm bit 7: enable 0x0D (not assigned) 0x0E (not assigned) 0x0F (not assigned) B.6.2 Slave Address: 0xA8 – EEProm Emulation The 28-Pin Demo Board I2C™ demonstration emulates a serial EEPROM. Device emulation provides for 256 bytes. A newly-programmed 28-pin demo board defaults the first 8 bytes to 0x00 to 0x07 sequentially. The value of the remaining bytes is undefined/unknown. A read operation is executed during the transaction. The write operation begins after the Stop bit is received. The firmware will not respond to I2C communications during the write. FIGURE B-5: SERIAL EEPROM OPERATION Write Operation Send Start Bit Send Control Byte w/Write Bit NO ACK YES (continue) B.6.3 Slave Address: 0xAA – Executive (EXEC) The “Executive” I2C pseudo device provides features convenient for testing and demonstrating the PICkit™ Serial Analyzer and the 28-Pin Demo Board I2C™ firmware. The I2C word addresses are listed in Table B-4. DS51647C-page 140 © 2009 Microchip Technology Inc. 28-Pin Demo Board I2C™ Demonstration Firmware TABLE B-4: REG TABLE B-4 EXECUTIVE (EXEC) WORD ADDRESSES NAME DESCRIPTION 0x00 EXEC_STATE State of executive state controller bit 7 == 1: force state controller to one of eight “entry points” specified by bits[2:0] 0x01 EXEC_ADC_CH0 ADC results of CHANNEL AN0 (potentiometer RP1) 0x02 EXEC_RTC_SE binary value representation of RTC “SECONDS” 0x03 EXEC_STATUS state of communications connector pins: bit 0: PIN 1 (AUX1) bit 1: PIN 4 (SDA) bit 2: PIN 5 (SCL) bit 3: PIN 6 (AUX2) bits[5:4]: undefined bit 6: operation error bit 7: operation busy 0x04 EXEC_04 undefined (can be read/written with no operational effect) 0x05 EXEC_05 undefined (can be read/written with no operational effect) 0x06 EXEC_06 undefined (can be read/written with no operational effect) 0x07 EXEC_VERSION Firmware version number State Controller – The Executive state controller manages background functions. The host enacts a function by writing to EXEC_STATE with a valid “state entry value” (i.e., 0x80-0x87). Writing values outside this range will cause unknown results. TABLE B-5: EXEC STATE ENTRY VALUES VALUE NAME DESCRIPTION 0x80 EXEC_DISPLAY_PING_PONG display PING-PONG LED pattern: DS1,2,3,4,3,2,1,2 ... 0x81 EXEC_TIMER1_TEST operation: timer1 test 0x82 EXEC_DISPLAY_ADC display of Most Significant 4 bits of ADC results measuring variable resistor 0x83 EXEC_DISPLAY_RTC display of RTC SECONDS (binary) – 0-15 0x84 EXEC_DISPLAY_PKSI display of state of communications connector pins: LED1: PIN 1 (AUX1) LED2: PIN 4 (SDA) LED3: PIN 5 (SCA) LED4: PIN 6 (AUX2) 0x85 EXEC_DISPLAY_RESET display ‘RESET’ sequence 0x86 EXEC_DISPLAY_1SEC display – blink all LEDs – 1 sec ON, 1 sec OFF, ... 0x87 EXEC_0x87 undefined © 2009 Microchip Technology Inc. DS51647C-page 141 PICkit™ Serial Analyzer User’s Guide B.7 FUNCTIONS B.7.1 Ping-Pong Display The Ping-Pong display is useful in testing the four LEDs which are illuminated individually and in sequence as seen below. The following pattern is executed at a 100-millisecond step interval. FIGURE B-6: B.7.2 PING-PONG LED PATTERN DS1 DS2 DS3 DS3 On Off Off Off Off On Off Off Off Off On Off Off Off Off On Off Off On Off Off On Off Off On Off Off Off Timer1 Test Timer1 Test provides a basic test of the auxiliary clock used for the RTC. The 28-pin demo board employs a 32 kHz crystal on Timer1 LP Oscillator to provide a 1-second interval for the RTC emulated device. The test begins by clearing the one-second flag, then waits a maximum of 1.1 seconds to see if the flag is reset. Alternatively, the host can test the RTC clock by examining Exec register, 0x02, at logically timed intervals. FIGURE B-7: TIMER1 TEST Write 0x81 to EXEC_REG_00 BUSY? YES EXEC_REG_03[bit 7] NO ERROR? YES EXEC_REG_03[bit 6] NO PASSED DS51647C-page 142 FAILED © 2009 Microchip Technology Inc. 28-Pin Demo Board I2C™ Demonstration Firmware B.7.3 ADC Display The ADC Display begins by displaying hex values 0x0A, 0x0D and 0x0C in sequence to signify “ADC” test. After the opening display sequence, the LEDs displays the Most Significant 4 bits of the ADC result measuring channel AN0 (potentiometer RP1). As RP1 is manually turned from one extreme to the other, the LED display should range from binary 0000 to 1111. The firmware must be forced from this mode by command or Reset. B.7.4 RTC Display The RTC Display displays the Least Significant 4 bits of EXEC_REG_02 (RTC Seconds). The LEDs should be seen to increment once per second in a binary progression (0x0-0xF) three times, then (0x0-0xB) once as the RTC Seconds value increments from 0x00 to 0x3B (59 decimal). The firmware must be forced from this mode by command or Reset. B.7.5 Communications Connector Display This feature displays the state of the 4 signal pins on the communications connector. LED1: PIN 1 (AUX1) LED2: PIN 4 (SDA) LED3: PIN 5 (SCL) LED4: PIN 6 (AUX2) Normally, LED2 and LED3 should be illuminated if the I2C bus has active pull-ups and the SCK is not held low. The firmware must be forced from this mode by command or Reset. B.7.6 RESET Display The Reset display is executed on Reset/power-up or by command. The sequence is a series of individual displays as follows: 1. Ping-Pong display: cycles: 2 (i.e., LED1,2,3,4,3,2,1,2,3,4,3,2,1) 2. Blink all LEDs in unison: cycles: 1 (i.e., 1 sec OFF, 1 sec ON, 1 sec OFF) 3. ADC display (described above): cycles: perpetual B.7.7 1 Second Blink Blink all LEDs in unison at 1-second intervals (i.e., 1 sec OFF, 1 sec ON, 1 sec OFF),...This feature uses time based on the Timer1 low-power oscillator and external 32 kHz tuning fork crystal. © 2009 Microchip Technology Inc. DS51647C-page 143 PICkit™ Serial Analyzer User’s Guide NOTES: DS51647C-page 144 © 2009 Microchip Technology Inc. PICkit™ Serial Analyzer User’s Guide NOTES: © 2009 Microchip Technology Inc. DS51647C-page 145 WORLDWIDE SALES AND SERVICE AMERICAS ASIA/PACIFIC ASIA/PACIFIC EUROPE Corporate Office 2355 West Chandler Blvd. Chandler, AZ 85224-6199 Tel: 480-792-7200 Fax: 480-792-7277 Technical Support: http://support.microchip.com Web Address: www.microchip.com Asia Pacific Office Suites 3707-14, 37th Floor Tower 6, The Gateway Harbour City, Kowloon Hong Kong Tel: 852-2401-1200 Fax: 852-2401-3431 India - Bangalore Tel: 91-80-3090-4444 Fax: 91-80-3090-4080 India - New Delhi Tel: 91-11-4160-8631 Fax: 91-11-4160-8632 Austria - Wels Tel: 43-7242-2244-39 Fax: 43-7242-2244-393 Denmark - Copenhagen Tel: 45-4450-2828 Fax: 45-4485-2829 India - Pune Tel: 91-20-2566-1512 Fax: 91-20-2566-1513 France - Paris Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79 Japan - Yokohama Tel: 81-45-471- 6166 Fax: 81-45-471-6122 Germany - Munich Tel: 49-89-627-144-0 Fax: 49-89-627-144-44 Atlanta Duluth, GA Tel: 678-957-9614 Fax: 678-957-1455 Boston Westborough, MA Tel: 774-760-0087 Fax: 774-760-0088 Chicago Itasca, IL Tel: 630-285-0071 Fax: 630-285-0075 Cleveland Independence, OH Tel: 216-447-0464 Fax: 216-447-0643 Dallas Addison, TX Tel: 972-818-7423 Fax: 972-818-2924 Detroit Farmington Hills, MI Tel: 248-538-2250 Fax: 248-538-2260 Kokomo Kokomo, IN Tel: 765-864-8360 Fax: 765-864-8387 Los Angeles Mission Viejo, CA Tel: 949-462-9523 Fax: 949-462-9608 Santa Clara Santa Clara, CA Tel: 408-961-6444 Fax: 408-961-6445 Toronto Mississauga, Ontario, Canada Tel: 905-673-0699 Fax: 905-673-6509 Australia - Sydney Tel: 61-2-9868-6733 Fax: 61-2-9868-6755 China - Beijing Tel: 86-10-8528-2100 Fax: 86-10-8528-2104 China - Chengdu Tel: 86-28-8665-5511 Fax: 86-28-8665-7889 Korea - Daegu Tel: 82-53-744-4301 Fax: 82-53-744-4302 China - Hong Kong SAR Tel: 852-2401-1200 Fax: 852-2401-3431 Korea - Seoul Tel: 82-2-554-7200 Fax: 82-2-558-5932 or 82-2-558-5934 China - Nanjing Tel: 86-25-8473-2460 Fax: 86-25-8473-2470 Malaysia - Kuala Lumpur Tel: 60-3-6201-9857 Fax: 60-3-6201-9859 China - Qingdao Tel: 86-532-8502-7355 Fax: 86-532-8502-7205 Malaysia - Penang Tel: 60-4-227-8870 Fax: 60-4-227-4068 China - Shanghai Tel: 86-21-5407-5533 Fax: 86-21-5407-5066 Philippines - Manila Tel: 63-2-634-9065 Fax: 63-2-634-9069 China - Shenyang Tel: 86-24-2334-2829 Fax: 86-24-2334-2393 Singapore Tel: 65-6334-8870 Fax: 65-6334-8850 China - Shenzhen Tel: 86-755-8203-2660 Fax: 86-755-8203-1760 Taiwan - Hsin Chu Tel: 886-3-6578-300 Fax: 886-3-6578-370 China - Wuhan Tel: 86-27-5980-5300 Fax: 86-27-5980-5118 Taiwan - Kaohsiung Tel: 886-7-536-4818 Fax: 886-7-536-4803 China - Xiamen Tel: 86-592-2388138 Fax: 86-592-2388130 Taiwan - Taipei Tel: 886-2-2500-6610 Fax: 886-2-2508-0102 China - Xian Tel: 86-29-8833-7252 Fax: 86-29-8833-7256 Thailand - Bangkok Tel: 66-2-694-1351 Fax: 66-2-694-1350 Italy - Milan Tel: 39-0331-742611 Fax: 39-0331-466781 Netherlands - Drunen Tel: 31-416-690399 Fax: 31-416-690340 Spain - Madrid Tel: 34-91-708-08-90 Fax: 34-91-708-08-91 UK - Wokingham Tel: 44-118-921-5869 Fax: 44-118-921-5820 China - Zhuhai Tel: 86-756-3210040 Fax: 86-756-3210049 03/26/09 DS51647C-page 146 © 2009 Microchip Technology Inc.