Datasheet
Table Of Contents
- Low-Power Features:
- LCD Driver Module Features:
- Special Microcontroller Features:
- Flexible Oscillator Structure:
- Peripheral Highlights:
- Pin Diagrams
- Pin Diagrams (Continued)
- Table of Contents
- Most Current Data Sheet
- Errata
- Customer Notification System
- 1.0 Device Overview
- 1.1 Core Features
- 1.2 LCD Driver
- 1.3 Other Special Features
- 1.4 Details on Individual Family Members
- TABLE 1-1: Device Features for the PIC18F85J90 family (64-pin Devices)
- TABLE 1-2: Device Features for the PIC18F85J90 family (80-pin Devices)
- FIGURE 1-1: PIC18F6XJ90 (64-pin) Block Diagram
- FIGURE 1-2: PIC18F8XJ90 (80-pin) Block Diagram
- TABLE 1-3: PIC18F6XJ90 Pinout I/O Descriptions
- TABLE 1-4: PIC18F8XJ90 Pinout I/O Descriptions
- 2.0 Guidelines for Getting Started with PIC18FJ Microcontrollers
- 3.0 Oscillator Configurations
- 3.1 Oscillator Types
- 3.2 Control Registers
- 3.3 Clock Sources and Oscillator Switching
- 3.4 External Oscillator Modes
- 3.5 Internal Oscillator Block
- 3.6 Effects of Power-Managed Modes on the Various Clock Sources
- 3.7 Power-up Delays
- 4.0 Power-Managed Modes
- 5.0 Reset
- 6.0 Memory Organization
- 6.1 Program Memory Organization
- 6.2 PIC18 Instruction Cycle
- 6.3 Data Memory Organization
- 6.4 Data Addressing Modes
- 6.5 Program Memory and the Extended Instruction Set
- 6.6 Data Memory and the Extended Instruction Set
- 7.0 Flash Program Memory
- 7.1 Table Reads and Table Writes
- 7.2 Control Registers
- 7.3 Reading the Flash Program Memory
- 7.4 Erasing Flash Program Memory
- 7.5 Writing to Flash Program Memory
- 7.6 Flash Program Operation During Code Protection
- 8.0 8 X 8 Hardware Multiplier
- 8.1 Introduction
- 8.2 Operation
- EXAMPLE 8-1: 8 x 8 Unsigned Multiply Routine
- EXAMPLE 8-2: 8 x 8 Signed Multiply Routine
- TABLE 8-1: Performance Comparison for Various Multiply Operations
- EQUATION 8-1: 16 x 16 Unsigned Multiplication Algorithm
- EXAMPLE 8-3: 16 x 16 Unsigned Multiply Routine
- EQUATION 8-2: 16 x 16 Signed Multiplication Algorithm
- EXAMPLE 8-4: 16 x 16 Signed Multiply Routine
- 9.0 Interrupts
- 10.0 I/O Ports
- FIGURE 10-1: Generic I/O Port Operation
- 10.1 I/O Port Pin Capabilities
- 10.2 PORTA, TRISA and LATA Registers
- 10.3 PORTB, TRISB and LATB Registers
- 10.4 PORTC, TRISC and LATC Registers
- 10.5 PORTD, TRISD and LATD Registers
- 10.6 PORTE, TRISE and LATE Registers
- 10.7 PORTF, LATF and TRISF Registers
- 10.8 PORTG, TRISG and LATG Registers
- 10.9 PORTH, LATH and TRISH Registers
- 10.10 PORTJ, TRISJ and LATJ Registers
- 11.0 Timer0 Module
- 12.0 Timer1 Module
- 13.0 Timer2 Module
- 14.0 Timer3 Module
- 15.0 Capture/Compare/PWM (CCP) Modules
- 16.0 Liquid Crystal Display (LCD) Driver Module
- FIGURE 16-1: LCD Driver Module Block Diagram
- 16.1 LCD Registers
- 16.2 LCD Clock Source
- 16.3 LCD Bias Generation
- 16.4 LCD Multiplex Types
- 16.5 Segment Enables
- 16.6 Pixel Control
- 16.7 LCD Frame Frequency
- 16.8 LCD Waveform Generation
- FIGURE 16-6: Type-A/Type-B Waveforms in Static Drive
- FIGURE 16-7: Type-A Waveforms in 1/2 MUX, 1/2 Bias Drive
- FIGURE 16-8: Type-B Waveforms in 1/2 MUX, 1/2 Bias Drive
- FIGURE 16-9: Type-A Waveforms in 1/2 MUX, 1/3 Bias Drive
- FIGURE 16-10: Type-B Waveforms in 1/2 MUX, 1/3 Bias Drive
- FIGURE 16-11: Type-A Waveforms in 1/3 MUX, 1/2 Bias Drive
- FIGURE 16-12: Type-B Waveforms in 1/3 MUX, 1/2 Bias Drive
- FIGURE 16-13: Type-A Waveforms in 1/3 MUX, 1/3 Bias Drive
- FIGURE 16-14: Type-B Waveforms in 1/3 MUX, 1/3 Bias Drive
- FIGURE 16-15: Type-A Waveforms in 1/4 MUX, 1/3 Bias Drive
- FIGURE 16-16: Type-B Waveforms in 1/4 MUX, 1/3 Bias Drive
- 16.9 LCD Interrupts
- 16.10 Operation During Sleep
- 16.11 Configuring the LCD Module
- 17.0 Master Synchronous Serial Port (MSSP) Module
- 17.1 Master SSP (MSSP) Module Overview
- 17.2 Control Registers
- 17.3 SPI Mode
- FIGURE 17-1: MSSP Block Diagram (SPI Mode)
- 17.3.1 Registers
- 17.3.2 Operation
- 17.3.3 Enabling SPI I/O
- 17.3.4 Open-Drain Output Option
- 17.3.5 Typical Connection
- 17.3.6 Master Mode
- 17.3.7 Slave Mode
- 17.3.8 Slave Select Synchronization
- 17.3.9 Operation in Power-Managed Modes
- 17.3.10 Effects of a Reset
- 17.3.11 Bus Mode Compatibility
- 17.4 I2C Mode
- FIGURE 17-7: MSSP Block Diagram (I2C™ Mode)
- 17.4.1 Registers
- 17.4.2 Operation
- 17.4.3 Slave Mode
- EXAMPLE 17-2: Address Masking Examples
- FIGURE 17-8: I2C™ Slave Mode Timing with SEN = 0 (Reception, 7-bit Address)
- FIGURE 17-9: I2C™ Slave Mode Timing with SEN = 0 and ADMSK<5:1> = 01011 (Reception, 7-bit Address)
- FIGURE 17-10: I2C™ Slave Mode Timing (Transmission, 7-bit Address)
- FIGURE 17-11: I2C™ Slave Mode Timing with SEN = 0 (Reception, 10-bit Address)
- FIGURE 17-12: I2C™ Slave Mode Timing with SEN = 0 and ADMSK<5:1> = 01001 (Reception, 10-bit Address)
- FIGURE 17-13: I2C™ Slave Mode Timing (Transmission, 10-bit Address)
- 17.4.4 Clock Stretching
- 17.4.5 General Call Address Support
- 17.4.6 Master Mode
- 17.4.7 Baud Rate
- 17.4.8 I2C Master Mode Start Condition Timing
- 17.4.9 I2C Master Mode Repeated Start Condition Timing
- 17.4.10 I2C Master Mode Transmission
- 17.4.11 I2C Master Mode Reception
- 17.4.12 Acknowledge Sequence Timing
- 17.4.13 Stop Condition Timing
- 17.4.14 Sleep Operation
- 17.4.15 Effects of a Reset
- 17.4.16 Multi-Master Mode
- 17.4.17 Multi -Master Communication, Bus Collision and Bus Arbitration
- FIGURE 17-27: Bus Collision Timing for Transmit and Acknowledge
- FIGURE 17-28: Bus Collision During Start Condition (SDA Only)
- FIGURE 17-29: Bus Collision During Start Condition (SCL = 0)
- FIGURE 17-30: BRG Reset Due to SDA Arbitration During Start Condition
- FIGURE 17-31: Bus Collision During a Repeated Start Condition (Case 1)
- FIGURE 17-32: Bus Collision During Repeated Start Condition (Case 2)
- FIGURE 17-33: Bus Collision During a Stop Condition (Case 1)
- FIGURE 17-34: Bus Collision During a Stop Condition (Case 2)
- TABLE 17-4: Registers Associated with I2C™ Operation
- 18.0 Enhanced Universal Synchronous Asynchronous Receiver Transmitter (EUSART)
- 18.1 Control Registers
- 18.2 EUSART Baud Rate Generator (BRG)
- 18.3 EUSART Asynchronous Mode
- 18.4 EUSART Synchronous Master Mode
- 18.5 EUSART Synchronous Slave Mode
- 19.0 Addressable Universal Synchronous Asynchronous Receiver Transmitter (AUSART)
- 19.1 Control Registers
- 19.2 AUSART Baud Rate Generator (BRG)
- 19.3 AUSART Asynchronous Mode
- 19.4 AUSART Synchronous Master Mode
- 19.5 AUSART Synchronous Slave Mode
- 20.0 10-bit Analog-to-Digital Converter (A/D) Module
- Register 20-1: ADCON0: A/D Control Register 0
- Register 20-2: ADCON1: A/D Control Register 1
- Register 20-3: ADCON2: A/D Control Register 2
- FIGURE 20-1: A/D Block Diagram(1,2)
- FIGURE 20-2: Analog Input Model
- 20.1 A/D Acquisition Requirements
- 20.2 Selecting and Configuring Automatic Acquisition Time
- 20.3 Selecting the A/D Conversion Clock
- 20.4 Configuring Analog Port Pins
- 20.5 A/D Conversions
- 20.6 Use of the CCP2 Trigger
- 20.7 A/D Converter Calibration
- 20.8 Operation in Power-Managed Modes
- 21.0 Comparator Module
- Register 21-1: CMCON: Comparator Module Control Register
- 21.1 Comparator Configuration
- 21.2 Comparator Operation
- 21.3 Comparator Reference
- 21.4 Comparator Response Time
- 21.5 Comparator Outputs
- 21.6 Comparator Interrupts
- 21.7 Comparator Operation During Sleep
- 21.8 Effects of a Reset
- 21.9 Analog Input Connection Considerations
- 22.0 Comparator Voltage Reference Module
- 23.0 Special Features of the CPU
- 23.1 Configuration Bits
- 23.1.1 Considerations for Configuring the PIC18F85J90 family Devices
- TABLE 23-1: Mapping of the Flash Configuration Words to the Configuration Registers
- TABLE 23-2: Configuration Bits and Device IDs
- Register 23-1: CONFIG1L: Configuration Register 1 Low (Byte Address 300000h)
- Register 23-2: CONFIG1H: Configuration Register 1 High (Byte Address 300001h)
- Register 23-3: CONFIG2L: Configuration Register 2 Low (Byte Address 300002h)
- Register 23-4: CONFIG2H: Configuration Register 2 High (Byte Address 300003h)
- Register 23-5: CONFIG3H: Configuration Register 3 High (Byte Address 300005h)
- Register 23-6: DEVID1: Device ID Register 1 for PIC18F85J90 family Devices
- Register 23-7: DEVID2: Device ID Register 2 for PIC18F85J90 family Devices
- 23.1.1 Considerations for Configuring the PIC18F85J90 family Devices
- 23.2 Watchdog Timer (WDT)
- 23.3 On-Chip Voltage Regulator
- 23.4 Two-Speed Start-up
- 23.5 Fail-Safe Clock Monitor
- 23.6 Program Verification and Code Protection
- 23.7 In-Circuit Serial Programming
- 23.8 In-Circuit Debugger
- 23.1 Configuration Bits
- 24.0 Instruction Set Summary
- 24.1 Standard Instruction Set
- 24.2 Extended Instruction Set
- 25.0 Development Support
- 25.1 MPLAB Integrated Development Environment Software
- 25.2 MPLAB C Compilers for Various Device Families
- 25.3 HI-TECH C for Various Device Families
- 25.4 MPASM Assembler
- 25.5 MPLINK Object Linker/ MPLIB Object Librarian
- 25.6 MPLAB Assembler, Linker and Librarian for Various Device Families
- 25.7 MPLAB SIM Software Simulator
- 25.8 MPLAB REAL ICE In-Circuit Emulator System
- 25.9 MPLAB ICD 3 In-Circuit Debugger System
- 25.10 PICkit 3 In-Circuit Debugger/ Programmer and PICkit 3 Debug Express
- 25.11 PICkit 2 Development Programmer/Debugger and PICkit 2 Debug Express
- 25.12 MPLAB PM3 Device Programmer
- 25.13 Demonstration/Development Boards, Evaluation Kits, and Starter Kits
- 26.0 Electrical Characteristics
- Absolute Maximum Ratings(†)
- 26.1 DC Characteristics: Supply Voltage PIC18F85J90 Family (Industrial)
- 26.2 DC Characteristics: Power-Down and Supply Current PIC18F85J90 Family (Industrial)
- 26.3 DC Characteristics: PIC18F84J90 Family (Industrial)
- 26.4 AC (Timing) Characteristics
- 26.4.1 Timing Parameter Symbology
- 26.4.2 Timing Conditions
- 26.4.3 Timing Diagrams and Specifications
- FIGURE 26-4: External Clock Timing
- TABLE 26-7: External Clock Timing Requirements
- TABLE 26-8: PLL Clock Timing Specifications (Vdd = 2.15V to 3.6V)
- TABLE 26-9: Internal RC Accuracy (INTOSC and INTRC Sources)
- FIGURE 26-5: CLKO and I/O Timing
- TABLE 26-10: CLKO and I/O Timing Requirements
- FIGURE 26-6: Reset, Watchdog Timer, Oscillator Start-up Timer and Power-up Timer Timing
- TABLE 26-11: Reset, Watchdog Timer, Oscillator Start-up Timer, Power-up Timer and Brown-out Reset Requirements
- FIGURE 26-7: Timer0 and Timer1 External Clock Timings
- TABLE 26-12: Timer0 and Timer1 External Clock Requirements
- FIGURE 26-8: Capture/Compare/PWM Timings (CCP1, CCP2 Modules)
- TABLE 26-13: Capture/Compare/PWM Requirements (CCP1, CCP2 Modules)
- FIGURE 26-9: Example SPI Master Mode Timing (CKE = 0)
- TABLE 26-14: Example SPI Mode Requirements (Master Mode, Cke = 0)
- FIGURE 26-10: Example SPI Master Mode Timing (CKE = 1)
- TABLE 26-15: Example SPI Mode Requirements (Master Mode, CKE = 1)
- FIGURE 26-11: Example SPI Slave Mode Timing (CKE = 0)
- TABLE 26-16: Example SPI Mode Requirements (Slave Mode Timing, CKE = 0)
- FIGURE 26-12: Example SPI Slave Mode Timing (CKE = 1)
- TABLE 26-17: Example SPI Slave Mode Requirements (CKE = 1)
- FIGURE 26-13: I2C™ Bus Start/Stop Bits Timing
- TABLE 26-18: I2C™ Bus Start/Stop Bits Requirements (Slave Mode)
- FIGURE 26-14: I2C™ Bus Data Timing
- TABLE 26-19: I2C™ Bus Data Requirements (Slave Mode)
- FIGURE 26-15: MSSP I2C™ Bus Start/Stop Bits Timing Waveforms
- TABLE 26-20: MSSP I2C™ Bus Start/Stop Bits Requirements
- FIGURE 26-16: MSSP I2C™ Bus Data Timing
- TABLE 26-21: MSSP I2C™ Bus Data Requirements
- FIGURE 26-17: EUSART/AUSART Synchronous Transmission (Master/Slave) Timing
- TABLE 26-22: EUSART/AUSART Synchronous Transmission Requirements
- FIGURE 26-18: EUSART/AUSART Synchronous Receive (Master/Slave) Timing
- TABLE 26-23: EUSART/AUSART Synchronous Receive Requirements
- TABLE 26-24: A/D Converter Characteristics: PIC18F85J90 family (Industrial)
- FIGURE 26-19: A/D Conversion Timing
- TABLE 26-25: A/D Conversion Requirements
- 27.0 Packaging Information
- Appendix A: Revision History
- Appendix B: Migration Between High-End Device Families
- Index
- The Microchip Web Site
- Customer Change Notification Service
- Customer Support
- Reader Response
- Product Identification System
- Worldwide Sales and Service

PIC18F85J90 FAMILY
DS39770C-page 78 2010 Microchip Technology Inc.
PORTJ
(2)
RJ7 RJ6 RJ5 RJ4 RJ3 RJ2 RJ1 RJ0 xxxx xxxx 60, 136
PORTH
(2)
RH7 RH6 RH5 RH4 RH3 RH2 RH1 RH0 xxxx xxxx 60, 134
PORTG RDPU REPU RJPU
(2)
RG4 RG3 RG2 RG1 RG0 000x xxxx 60, 132
PORTF RF7 RF6 RF5 RF4 RF3 RF2 RF1
— xxxx xxx- 60, 130
PORTE RE7 RE6 RE5 RE4 RE3
—RE1RE0xxxx x-xx 61, 127
PORTD RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0 xxxx xxxx 61, 125
PORTC RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0 xxxx xxxx 61, 123
PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 xxxx xxxx 61, 120
PORTA RA7
(5)
RA6
(5)
RA5RA4RA3RA2RA1RA0xx0x 0000 61, 117
SPBRGH1 EUSART Baud Rate Generator High Byte 0000 0000 61, 240
BAUDCON1 ABDOVF RCIDL RXDTP TXCKP BRG16
— WUE ABDEN 0100 0-00 61, 238
LCDDATA23
(2)
S47C3 S46C3 S45C3 S44C3 S43C3 S42C3 S41C3 S40C3 xxxx xxxx 61, 167
LCDDATA22 S39C3
(2)
S38C3
(2)
S37C3
(2)
S36C3
(2)
S35C3
(2)
S34C3
(2)
S33C3
(2)
S32C3 xxxx xxxx 61, 167
LCDDATA21 S31C3 S30C3 S29C3 S28C3 S27C3 S26C3 S25C3 S24C3 xxxx xxxx 61, 167
LCDDATA20 S23C3 S22C3 S21C3 S20C3 S19C3 S18C3 S17C3 S16C3 xxxx xxxx 61, 167
LCDDATA19 S15C3 S14C3 S13C3 S12C3 S11C3 S10C3 S09C3 S08C3 xxxx xxxx 61, 167
LCDDATA18 S07C3 S06C3 S05C3 S04C3 S03C3 S02C3 S01C3 S00C3 xxxx xxxx 61, 167
LCDDATA17
(2)
S47C2 S46C2 S45C2 S44C2 S43C2 S42C2 S41C2 S40C2 xxxx xxxx 61, 167
LCDDATA16 S39C2
(2)
S38C2
(2)
S37C2
(2)
S36C2
(2)
S35C2
(2)
S34C2
(2)
S33C2
(2)
S32C2 xxxx xxxx 61, 167
LCDDATA15 S31C2 S30C2 S29C2 S28C2 S27C2 S26C2 S25C2 S24C2 xxxx xxxx 61, 167
LCDDATA14 S23C2 S22C2 S21C2 S20C2 S19C2 S18C2 S17C2 S16C2 xxxx xxxx 61, 167
LCDDATA13 S15C2 S14C2 S13C2 S12C2 S11C2 S10C2 S09C2 S08C2 xxxx xxxx 61, 167
LCDDATA12 S07C2 S06C2 S05C2 S04C2 S03C2 S02C2 S01C2 S00C2 xxxx xxxx 61, 167
LCDDATA11
(2)
S47C1 S46C1 S45C1 S44C1 S43C1 S42C1 S41C1 S40C1 xxxx xxxx 61, 167
LCDDATA10 S39C1
(2)
S38C1
(2)
S37C1
(2)
S36C1
(2)
S35C1
(2)
S34C1
(2)
S33C1
(2)
S32C1 xxxx xxxx 61, 167
LCDDATA9 S31C1 S30C1 S29C1 S28C1 S27C1 S26C1 S25C1 S24C1 xxxx xxxx 61, 167
LCDDATA8 S23C1 S22C1 S21C1 S20C1 S19C1 S18C1 S17C1 S16C1 xxxx xxxx 61, 167
LCDDATA7 S15C1 S14C1 S13C1 S12C1 S11C1 S10C1 S09C1 S08C1 xxxx xxxx 61, 167
LCDDATA6 S07C1 S06C1 S05C1 S04C1 S03C1 S02C1 S01C1 S00C1 xxxx xxxx 61, 167
LCDDATA5
(2)
S47C0 S46C0 S45C0 S44C0 S43C0 S42C0 S41C0 S40C0 xxxx xxxx 61, 167
CCPR1H Capture/Compare/PWM Register 1 High Byte xxxx xxxx 61, 154
CCPR1L Capture/Compare/PWM Register 1 Low Byte xxxx xxxx 61, 154
CCP1CON
— — DC1B1 DC1B0 CCP1M3 CCP1M2 CCP1M1 CCP1M0 --00 0000 61, 153
CCPR2H Capture/Compare/PWM Register 2 High Byte xxxx xxxx 61, 154
CCPR2L Capture/Compare/PWM Register 2 Low Byte xxxx xxxx 62, 154
CCP2CON
— — DC2B1 DC2B0 CCP2M3 CCP2M2 CCP2M1 CCP2M0 --00 0000 62, 153
SPBRG2 AUSART Baud Rate Generator Register 0000 0000 62, 260
RCREG2 AUSART Receive Register 0000 0000 62, 265
TXREG2 AUSART Transmit Register 0000 0000 62, 263
TXSTA2 CSRC TX9 TXEN SYNC
— BRGH TRMT TX9D 0000 -010 62, 258
RCSTA2 SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000x 62, 259
TABLE 6-3: PIC18F85J90 FAMILY REGISTER FILE SUMMARY (CONTINUED)
File Name Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Value on
POR, BOR
Details
on page
Legend: x = unknown, u = unchanged, - = unimplemented, q = value depends on condition, r = reserved, do not modify
Note 1: Bit 21 of the PC is only available in Test mode and Serial Programming modes.
2: These registers and/or bits are available only on 80-pin devices; otherwise, they are unimplemented and read as ‘0’. Reset states shown
are for 80-pin devices.
3: Alternate names and definitions for these bits when the MSSP module is operating in I
2
C™ Slave mode. See Section 17.4.3.2 “Address
Masking” for details.
4: The PLLEN bit is only available in specific oscillator configurations; otherwise, it is disabled and reads as ‘0’. See Section 3.4.3 “PLL
Frequency Multiplier” for details.
5: RA6/RA7 and their associated latch and direction bits are configured as port pins only when the internal oscillator is selected as the default
clock source (FOSC2 Configuration bit = 0); otherwise, they are disabled and these bits read as ‘0’.