MICROCHIP PIC18F4680

PIC18F2585/2680/4585/4680
PIC18F2585/2680/4585/4680 Rev. A1 Silicon Errata
The PIC18F2585/2680/4585/4680 Rev. A1 parts you
have received conform functionally to the Device Data
Sheet (DS39625C), except for the anomalies
described below. Any Data Sheet Clarification issues
related to the PIC18F2585/2680/4585/4680 will be
reported in a separate Data Sheet errata. Please check
the Microchip web site for any existing issues.
All of the issues listed here will be addressed in future
revisions of the PIC18F2585/2680/4585/4680 silicon.
The following silicon errata apply only to
PIC18F2585/2680/4585/4680 devices with these
Device/Revision IDs:
Part Number
Device ID
Revision ID
PIC18F2585
0001 1010 100
0 0010
PIC18F2680
0001 1010 110
0 0010
PIC18F4585
0001 1010 101
0 0010
PIC18F4680
0001 1010 111
0 0010
The Device IDs (DEVID1 and DEVID2) are located at
addresses 3FFFFEh:3FFFFFh in the device’s
configuration space. They are shown in binary in the
format “DEVID2 DEVID1”.
2. Module: ECCP
When a shutdown condition occurs, the output port
is made inactive for the duration of the event. After
the event that caused the shutdown ends, the
ECCP module immediately enables the PWM output and does not wait until the beginning of the
next PWM cycle.
Work around
Disable the auto-restart feature in software, poll
the Timer2 Interrupt Flag (TMR2IF) and do not
clear the ECCPASE bit until TMR2IF is set.
Date Codes that pertain to this issue:
All engineering and production devices.
3. Module: ECCP
ECCP1, configured for auto-shutdown with
Comparator 1, corrupts the PWM duty cycle pulse.
In addition, it does not consistently synchronize
the pulse to the beginning of the period, and the
end of the pulse can occur at any time within the
period.
Work around
1. Module: ECCP
When monitoring a shutdown condition using a bit
test on the ECCPASE bit (ECCP1AS<7>) or
performing a bit operation on the ECCPASE bit,
the device may produce unexpected results.
Work around
Before performing a bit test or bit operation on the
ECCPASE bit, copy the ECCP1AS register to the
working register and perform the test or operation
there.
By avoiding these operations on the ECCPASE bit
in the ECCP1AS register, the module will operate
normally.
In Example 1, ECCPASE bit operations are
performed on the W register.
None.
Date Codes that pertain to this issue:
All engineering and production devices.
4. Module: ECCP
The auto-shutdown event will cause the ECCP
pins (P1A, P1B, P1C, P1D) to draw higher current
than expected. This occurs when the ECCPAS1 or
ECCPAS0 bits are set and an auto-shutdown
event occurs.
Work around
None.
Date Codes that pertain to this issue:
All engineering and production devices.
EXAMPLE 1:
MOVF
BTFSC
BRA
ECCP1AS, W
WREG, ECCPASE
SHUTDOWN_ROUTINE
Date Codes that pertain to this issue:
All engineering and production devices.
© 2007 Microchip Technology Inc.
DS80202G-page 1
PIC18F2585/2680/4585/4680
5. Module: ECCP
The auto-shutdown source, FLT0, has inverse
polarity from the description in Section 16.4.7
“Enhanced PWM Auto-Shutdown” of the Device
Data Sheet. A logic, high-voltage level on FLT0 will
generate a shutdown on ECCP1.
Work around
Invert the logic in the program’s source code.
Date Codes that pertain to this issue:
All engineering and production devices.
6. Module: ECCP
If a Halt command is issued while debugging with
the In-Circuit Debugger (MPLAB® ICD 2), the
ECCP module may freeze completely. However, if
a shutdown is enabled and triggered by the FLT0
pin, the ECCPASE bit is set and the outputs are
driven to their shutdown state, as defined by the
PSSAC1:PSSAC0 and PSSBD1:PSSBD0 bits,
regardless of the debugging process being
stopped.
Work around
None.
Date Codes that pertain to this issue:
All engineering and production devices.
7. Module: ECCP
In 10-Bit Addressing mode, when a Repeated Start
is issued followed by the high address byte and a
Write command, an ACK is not issued.
Work around
There are two work arounds available:
1. Single-Master Environment:
In a single-master environment, the user must
issue a Stop, then a Start, followed by a write
to the address high, then the address low
followed by the data.
2. Multi-Master Environment:
In a multi-master environment, the user must
issue a Repeated Start, send a dummy Write
command to a different address, issue another
Repeated Start and then send a write to the
original address. This procedure will prevent
loss of the bus.
8. Module: ECCP and CCP
When ECCP1 and CCP1 are configured for PWM
mode, with 1:1 Timer2 prescaler and duty cycle set
to the period minus 1, this may result in the PWM
output(s) remaining at a logic low level.
Clearing the PR2 register to select the fastest
period may also result in the output(s) remaining at
a logic low output level.
Work around
To ensure a reliable waveform, verify that the
selected duty cycle does not equal the 10-bit
period minus 1 prior to writing these locations, or
use 1:4 or 1:16 Timer2 prescale. Also, verify the
PR2 register is not written to 00h.
All other duty cycle and period settings will function
as described in the Device Data Sheet.
The ECCP and CCP modules remain capable of
10-bit accuracy.
Date Codes that pertain to this issue:
All engineering and production devices.
9. Module: Timer1/Timer3
When Timer1 or Timer3 is configured for an
external clock source and the CCP1CON or
ECCP1CON register is configured with 0x0B
(Compare mode, trigger special event), the timer is
not reset on a Special Event Trigger.
Work around
Modify firmware to reset the Timer registers upon
detection of the compare match condition – TMRxL
and TMRxH.
Date Codes that pertain to this issue:
All engineering and production devices.
10. Module: Timer1/Timer3
When the Timer1/Timer3 is in External Clock
Synchronized mode and the external clock period
is between 1 and 2 TCY, interrupts may
occasionally be skipped.
Work around
None
Date Codes that pertain to this issue:
All engineering and production devices.
Date Codes that pertain to this issue:
All engineering and production devices.
DS80202G-page 2
© 2007 Microchip Technology Inc.
PIC18F2585/2680/4585/4680
11. Module: MSSP
Work around
Avoid writing SSPBUF until the data transfer is
complete, indicated by the setting of the SSPIF bit
(PIR1<3>).
When the MSSP is configured for SPI Master
mode, the SDO pin cannot be disabled by setting
the TRISC<5> bit. The SDO pin always outputs
the content of SSPBUF regardless of the state of
the TRIS bit.
Verify the WCOL bit (SSPCON1<7>) is clear after
writing SSPBUF to ensure any potential transfer in
progress is not corrupted.
In Slave mode with slave select enabled,
SSPM3:SSPM0 = 0010 (SSPCON1<3:0>), the
SDO pin can be disabled by placing a logic high
level on the SS pin (RA5).
Date Codes that pertain to this issue:
All engineering and production devices.
Work around
13. Module: MSSP
None.
In its current implementation, the I2C Master mode
operates as follows:
Date Codes that pertain to this issue:
1. The Baud Rate Generator for I2C in Master
mode is slower than the rates specified in
Table 17-3 of the Device Data Sheet.
For this revision of silicon, use the values
shown in Table 1 in place of those shown in
Table 17-3 of the Device Data Sheet. The
differences are shown in bold text.
2. Use the following formula in place of the one
shown in Register 17-4 (SSPCON1) of the
Device Data Sheet for bit description,
SSPM3:SSPM0 = 1000.
All engineering and production devices
12. Module: MSSP
After an I2C™ transfer is initiated, the SSPBUF
register may be written for up to 10 TCY before
additional writes are blocked. The data transfer
may be corrupted if SSPBUF is written to during
this time.
The WCOL bit is set anytime an SSPBUF write
occurs during a transfer.
SSPADD = INT((FCY/FSCL) – (FCY/1.111 MHz)) – 1
I2C™ CLOCK RATE w/BRG
TABLE 1:
FOSC
FCY
FCY * 2
BRG Value
FSCL
(2 Rollovers of BRG)
40 MHz
10 MHz
20 MHz
0Eh
400 kHz(1)
40 MHz
10 MHz
20 MHz
15h
312.5 kHz
40 MHz
10 MHz
20 MHz
59h
100 kHz
16 MHz
4 MHz
8 MHz
05h
400 kHz(1)
16 MHz
4 MHz
8 MHz
08h
308 kHz
16 MHz
4 MHz
8 MHz
23h
100 kHz
4 MHz
1 MHz
2 MHz
01h
333 kHz(1)
4 MHz
1 MHz
2 MHz
08h
100 kHz
1 MHz
2 MHz
00h
1 MHz(1)
4 MHz
Note 1:
I2C™
I2C
The
interface does not conform to the 400 kHz
specification (which applies to rates greater than
100 kHz) in all details, but may be used with care where higher rates are required by the application.
© 2007 Microchip Technology Inc.
DS80202G-page 3
PIC18F2585/2680/4585/4680
14. Module: MSSP
RCEN becomes set when the system is idle. In
normal operation, the setting of RCEN should be
ignored by the module while the system is not idle.
Work around
Wait for the system to become idle. This requires
a check for the following bits to be reset:
ACKEN, RCEN, PEN, RSEN and SEN.
Date Codes that pertain to this issue:
All engineering and production devices.
15. Module: MSSP
18. Module: ECCP
When operating either Timer1 or Timer3 as a
counter, with a prescale value other than 1:1, and
operating the ECCP in Compare mode, with the
Special
Event
Trigger
(CCP1CON
bits
CCP1M3:CCP1M0 = 1011), the Special Event
Trigger Reset of the timer occurs as soon as there
is a match between TMRxH:TMRxL and
CCPR1H:CCPR1L.
This differs from the PIC18F458, where the Special
Event Trigger Reset of the timer occurs on the next
rollover of the prescale counter, after the match
between TMRxH:TMRxL and CCPR1H:CCPR1L.
Work around
In SPI mode, the SDO output may change after the
inactive clock edge of the bit ‘0’ output. This may
affect some SPI components that read data over
300 ns after the inactive edge of SCK.
To achieve the same timer Reset period on the
PIC18F4680 family as the PIC18F458 family for a
given clock source, add 1 to the value in
CCPR1H:CCPR1L.
Work around
In other words, if CCPR1H:CCPR1L = x for the
PIC18F458, to achieve the same Reset period on
the PIC18F4680 family, CCPR1H:CCPR1L = x + 1,
where the prescale is 1, 2, 4 or 8 depending on the
T1CKPS1:T1CKPS0 bit values.
None
Date Codes that pertain to this issue:
All engineering and production devices.
16. Module: DC Characteristics (BOR)
The values for parameter D005 (VBOR) in
Section 27.1 “DC Characteristics: Supply
Voltage” of the Device Data Sheet, when the trip
point for BORV1:BORV0 = 11, are not applicable
as the device may reset below the minimum
operating voltage for the device.
Date Codes that pertain to this issue:
All engineering and production devices
Work around
None.
Date Codes that pertain to this issue:
All engineering and production devices.
17. Module: BOR/HLVD
Due to production tolerances, selecting the lowest
setting for Brown-out Reset (BORV1:BORV0 = 11)
or Low-Voltage Reset (LVV = 0000) is not recommended, since it may result in an actual Brown-out
Reset or Low-Voltage Detect below the minimum
allowable VDD of 2.0V.
Work around
Use the next highest BOR or HLVD voltage threshold to ensure a low VDD is detected before it drops
below 2.0V.
Date Codes that pertain to this issue:
All engineering and production devices.
DS80202G-page 4
© 2007 Microchip Technology Inc.
PIC18F2585/2680/4585/4680
19. Module: Interrupts
Work around
If an interrupt occurs during a two-cycle instruction
that modifies the STATUS, BSR or WREG register,
the unmodified value of the register will be saved
to the corresponding Fast Return (Shadow)
register. Upon a fast return from the interrupt, the
unmodified value will be restored to the STATUS,
BSR or WREG register.
For example, if a high priority interrupt occurs during the instruction “MOVFF TEMP, WREG”, the
MOVFF instruction will be completed and WREG
will be loaded with the value of TEMP before
branching to ISR. However, the previous value of
WREG will be saved to the Fast Return register
during ISR branching. Upon return from the interrupt with a fast return, the previous value of WREG
in the Fast Return register will be written to WREG.
This results in WREG containing the value it had
before execution of MOVFF TEMP, WREG.
Affected instructions are:
MOVFF
Fs, Fd
1. Assembly Language Programming:
a) If any two-cycle instruction is used to
modify the WREG, BSR or STATUS
register, do not use the RETFIE FAST
instruction to return from the interrupt.
Instead, save/restore WREG, BSR and
STATUS via software per Example 8-1
in the Device Data Sheet. Alternatively,
in the case of MOVFF, use the MOVF
instruction to write to WREG instead.
For example, use:
MOVF
TEMP, W
MOVWF BSR
instead of MOVFF TEMP, BSR.
b)
As another alternative, the following
work around shown in Example 2 can
be used. This example overwrites the
Fast Return register by making a
dummy call to Foo with the fast option
in the high priority service routine.
where Fd is WREG, BSR or STATUS;
MOVSF
Zs, Fd
where Fd is WREG, BSR or STATUS; and
MOVSS
[Zs], [Zd]
where the destination is WREG, BSR or STATUS.
EXAMPLE 2:
ISR @ 0x0008
CALL
Foo:
POP
:
:
RETFIE
Foo, FAST
; store current value of WREG, BSR, STATUS for a second time
; clears return address of Foo call
; insert high priority ISR code here
FAST
2. C Language Programming: The exact work
around depends on the compiler in use. Please
refer to your C compiler documentation for
more details.
If using the Microchip MPLAB® C18 C Compiler,
define both high and low priority interrupt handler functions as “low priority” by using the
pragma interruptlow directive.
This directive instructs the compiler to not use
the RETFIE FAST instruction. If the proper high
priority interrupt bit is set in the IPRx register,
then the interrupt is treated as high priority in
spite of the pragma interruptlow directive.
The code segment, shown in Example 3 on the
next page, demonstrates the work around
using the C18 compiler.
© 2007 Microchip Technology Inc.
DS80202G-page 5
PIC18F2585/2680/4585/4680
EXAMPLE 3:
#pragma interruptlow MyLowISR
void MyLowISR(void)
{
// Handle low priority interrupts.
}
// Although MyHighISR is a high priority interrupt, use interruptlow pragma so that
// the compiler will not use retfie FAST.
#pragma interruptlow MyHighISR
void MyHighISR(void)
{
// Handle high priority interrupts.
}
#pragma code highVector=0x08
void HighVector (void)
{
_asm goto MyHighISR _endasm
}
#pragma code /* return to default code section */
#pragma code lowVector=0x18
void LowVector (void)
{
_asm goto MyLowISR _endasm
}
#pragma code /* return to default code section */
An optimized C18 version is provided in
Example 4.
Date Codes that pertain to this issue:
All engineering and production devices.
This example illustrates how it reduces the
instruction cycle count from 10 cycles to 3.
EXAMPLE 4:
#pragma code high_vector_section=0x8
void high_vector (void)
{
_asm
CALL high_vector_branch, 1
_endasm
}
void high_vector_branch (void)
{
_asm
POP
GOTO high_isr
_endasm
}
#pragma interrupt high_isr
void high_isr (void)
{
...
}
DS80202G-page 6
© 2007 Microchip Technology Inc.
PIC18F2585/2680/4585/4680
20. Module: EUSART
When performing back-to-back transmission in
9-bit mode (TX9D bit in the TXSTA register is
set), an ongoing transmission’s timing can be
corrupted if the TX9D bit (for the next transmission) is not written immediately following the
setting of TXIF. This is because any write to the
TXSTA register results in a reset of the Baud
Rate Generator which will effect any ongoing
transmission.
23. Module: EUSART
In rare situations, one or more extra zero bytes
have been observed in a packet transmitted by the
module operating in Asynchronous mode. The
actual data is not lost or corrupted, only unwanted
(extra) zero bytes are observed in the packet.
Work around
This situation has only been observed when the
contents of the transmit buffer TXREG are transferred to the TSR during the transmission of a Stop
bit. For this to occur, three things must happen in
the same instruction cycle:
Load TX9D just after TXIF is set, either by polling
TXIF or by writing TX9D at the beginning of the
Interrupt Service Routine, or only write to TX9D
when a transmission is not in progress
(TRMT = 1).
• TXREG is written to,
• the baud rate counter overflows (at the end of
the bit period), and
• a Stop bit is being transmitted (shifted out of
TSR).
Date Codes that pertain to this issue:
Work around
All engineering and production devices.
If possible, do not use the module’s double buffer
capability. Instead, load the TXREG register when
the TRMT bit (TXSTA<1>) is set, indicating the
TSR is empty.
21. Module: Timer1/Timer3
When Timer1/Timer3 is operating in 16-bit mode
and the prescale setting is not 1:1, a write to the
TMR1H/TMR3H Buffer registers may lengthen the
duration of the period between the increments of
the timer for the period in which TMR1H/TMR3H
was written. It does not change the actual prescale
value.
Work around
Do not write to TMR1H/TMR3H while Timer1/
Timer3 is running, or else write to TMR1L/TMR3L
immediately following a write to TMR1H/TMR3H.
Do not write to TMR1H/TMR3H and then wait for
another event before also updating TMR1L/TMR3L.
Date Codes that pertain to this issue:
All engineering and production devices.
If double-buffering is used and back-to-back
transmission is performed, then load TXREG
immediately after TXIF is set or wait 1-bit time after
TXIF is set. Both solutions prevent writing TXREG
while a Stop bit is transmitted. Note that TXIF is set
at the beginning of the Stop bit transmission.
If transmission is intermittent, then do the
following:
• Wait for the TRMT bit to be set before loading
TXREG.
• Alternatively, use a free timer resource to time
the baud period. Set up the timer to overflow at
the end of the Stop bit, then start the timer
when you load the TXREG. Do not load the
TXREG when timer is about to overflow.
Date Codes that pertain to this issue:
22. Module: EUSART
All engineering and production devices.
The EUSART auto-baud feature may periodically
measure the incoming baud rate incorrectly. The
rate of incorrect baud rate measurements will
depend on the frequency of the incoming
synchronization byte and the system clock
frequency.
Work around
None.
Date Codes that pertain to this issue:
All engineering and production devices.
© 2007 Microchip Technology Inc.
DS80202G-page 7
PIC18F2585/2680/4585/4680
24. Module: EUSART
With the auto-wake-up option enabled by setting
the WUE (BAUDCON<1>) bit, the RCIF
(PIR1<5>) bit will become set on a high-to-low
transition on the RX pin. However, the WUE bit
may not clear within 1 TCY of a low-to-high transition on RX. While the WUE bit is set, reading the
receive buffer, RCREG, will not clear the RCIF
interrupt flag. Therefore, the first opportunity to
automatically clear RCIF by reading RCREG may
take longer than expected.
Note:
RCIF can only be cleared by reading
RCREG.
26. Module: MSSP
In an I2C system with multiple slave nodes, an
unaddressed slave may respond to bus activity
when data on the bus matches its address. The
first occurrence will set the BF bit. The second
occurrence will set the BF and the SSPOV bits. In
both situations, the SSPIF bit is not set and an
interrupt will not occur. The device will vector to the
Interrupt Service Routine only if the interrupt is
enabled and an address match occurs.
Work around
The I2C slave must clear the SSPOV bit after each
I2C event to maintain normal operation.
Work around
Date Codes that pertain to this issue:
There are two work arounds available:
All engineering and production devices.
1. After the wake-up event has occurred, clear
the WUE bit in software before reading the
receive buffer RCREG.
2. Poll the WUE bit and read RCREG after the
WUE bit is automatically cleared.
Date Codes that pertain to this issue:
All engineering and production devices.
25. Module: Timer1
In 16-Bit Asynchronous Counter mode (with or
without use of the Timer1 oscillator), the TMR1H
and TMR3H buffers do not update when TMRxL is
read.
This issue only affects reading the TMRxH registers. The timers increment and set the interrupt
flags as expected. The timer registers can also be
written as expected.
Work around
1. Use 8-bit mode by clearing the RD16 bit
(T1CON<7>).
2. Use the internal clock synchronization option
by clearing the T1SYNC bit (T1CON<2>).
27. Module: MSSP
It has been observed that following a Power-on
Reset, I2C mode may not initialize properly by just
configuring the SCL and SDA pins as either inputs
or outputs. This has only been seen in a few
unique system environments.
A test of a statistically significant sample of preproduction systems, across the voltage and
current range of the application’s power supply,
should indicate if a system is susceptible to this
issue.
Work around
Before configuring the module for I2C operation:
1. Configure the SCL and SDA pins as outputs by
clearing their corresponding TRIS bits.
2. Force SCL and SDA low by clearing the
corresponding LAT bits.
3. While keeping the LAT bits clear, configure
SCL and SDA as inputs by setting their TRIS
bits.
Date Codes that pertain to this issue:
Once this is done, use the SSPCON1 and
SSPCON2 registers to configure the proper I2C
mode as before.
All engineering and production devices.
Date Codes that pertain to this issue:
All engineering and production devices.
DS80202G-page 8
© 2007 Microchip Technology Inc.
PIC18F2585/2680/4585/4680
28. Module: MSSP
When the MSSP is configured for SPI mode, the
Buffer Full Status bit, BF (SSPSTAT<0>), should
not be polled in software to determine when the
transfer is complete.
Work around
Copy the SSPSTAT register into a variable and
perform the bit test on the variable. In Example 5,
SSPSTAT is copied into the working register
where the bit test is performed.
30. Module: ECAN™ Technology
Under specific conditions, the first five bits of a
transmitted identifier may not match the value in
the Transmit Buffer ID register, TXBnSIDH. The
following conditions must exist for the corruption to
occur:
1. A transmit message must be pending.
2. The ECAN module must detect a Start-OfFrame (SOF) in the third bit of interframe
space.
Work around
EXAMPLE 5:
loop_MSB:
MOVF
BTFSS
BRA
None.
SSPSTAT, W
WREG, BF
loop_MSB
Date Codes that pertain to this issue:
All engineering and production devices.
31. Module: ECAN™ Technology
A second option is to poll the Master Synchronous
Serial Port Interrupt Flag bit, SSPIF (PIR1<3>).
This bit can be polled and will set when the transfer
is complete.
Date Codes that pertain to this issue:
All engineering and production devices.
29. Module: Reset
This version of silicon does not support the functionality described in Note 1 of parameter D002 in
Section 27.1 “DC Characteristics: Supply
Voltage” of the Device Data Sheet. The RAM
content may be altered during a Reset event if the
following conditions are met.
• Device is accessing RAM.
• Asynchronous Reset (i.e., WDT, BOR or MCLR
occurs when a write operation is being
executed (start of a Q4 cycle).
The Error Interrupt Flag, ERRIF (PIR3<5>), may
not be able to clear in software after either of the
following counter registers exceeds 127.
• Transmit Error Counter Register TXERRCNT
• Receive Error Counter Register RXERRCNT
Work around
Monitor the EWARN (COMSTAT<0>) bit to determine if either the TXERRCNT or the RXERRCNT
exceeds 95 and clear the ERRIF flag before either
counter reaches 127.
Date Codes that pertain to this issue:
All engineering and production devices.
32. Module: ECAN™ Technology
Following an error on the bus, the ECAN module is
unable to switch from Listen Only mode directly to
Configuration mode.
Work around
Work around
None.
Use the REQOP (CANCON<7:5>) bits to select
Normal mode as an intermediate step when
switching from Listen Only mode to Configuration
mode.
Date Codes that pertain to this issue:
All engineering and production devices.
Date Codes that pertain to this issue:
All engineering and production devices.
© 2007 Microchip Technology Inc.
DS80202G-page 9
PIC18F2585/2680/4585/4680
33. Module: ECAN™ Technology
Work around
Under specific conditions, the TXBxSIDH register
of the pending message for transmission may be
corrupted. The following conditions must exist for
this event to occur:
Ensure that a receive buffer overflow condition
does not occur, and/or ensure that a transmit
request is not pending, if a receive buffer overflow
condition does exist.
1. A transmit message must be pending.
2. All of the receive buffers must be full and a
received message is in the Message Assembly
Buffer (MAB).
3. A receiver buffer must be made available
(RXBxCON<RXFUL> set to ‘0’) when a Startof-Frame (SOF) is recognized on the CAN bus,
or on the instruction cycle prior to the SOF for
the TXBxSIDH corruption event to occur. The
timing of this event is crucial.
The pseudo-code segment in Example 6 is an
example of how to disable a pending transmission.
This code is for illustration purposes only.
Date Codes that pertain to this issue:
All engineering and production devices.
EXAMPLE 6:
If (RXBnOVFL == 1)
// Has an overflow occurred?
{
If (TXREQ == 1)// Is a transmission pending?
{
TXREQ = 0; // Clear transmit request
If (TXABT == 1)// Store transmission aborted status value
MyFlag = 1;
}
}
Temp_RXREG = RXBx; // Read receive buffer
If (MyFlag)
// Was previous transmission aborted?
{
TXREQ = 1;
// Set transmit request
MyFlag = 0;
// Reset stored transmission aborted status
}
34. Module: 10-Bit Analog-to-Digital
Converter
When the AD clock source is selected as 2 TOSC or
RC (when ADCS2:ADCS0 = 000 or x11), in
extremely rare cases, the EIL (Integral Linearity
Error) and EDL (Differential Linearity Error) may
exceed the data sheet specification at codes 511
and 512 only.
Work around
Select the AD clock source as 4 TOSC, 8 TOSC,
16 TOSC, 32 TOSC or 64 TOSC and avoid selecting
2 TOSC or RC.
Date Codes that pertain to this issue:
All engineering and production devices.
DS80202G-page 10
© 2007 Microchip Technology Inc.
PIC18F2585/2680/4585/4680
REVISION HISTORY
Rev A Document (9/2004)
First revision of this document which includes silicon
issues 1-7 (ECCP), 8 (ECCP and CCP), 9-10 (Timer1/
Timer3), 11-14 (MSSP), 15 (A/D), 16 (DC
Characteristics – BOR) and 17 (BOD/HLVD). Added
data sheet clarification issue 1 (DC Characteristics)
and 2 (MOVFF Instruction).
Rev B Document (11/2004)
Added silicon issues 18 (ECCP), 19 (Interrupts),
20 (EUSART) and 21 (Timer1/Timer3).
Rev C Document (7/2006)
Split of errata into separate silicon and data sheet
documents; previous data sheet issues 1 and 2
removed to create “PIC18F2585/2680/4585/4680
Data Sheet Errata” (DS80272). Updated silicon issue
19 (Interrupts). Added silicon issues 22-24 (EUSART),
25 (Timer1), 26-28 (MSSP), 29 (Reset), and 30-33
(ECAN). Added Date Code information to existing
issues from revision B (issues 1-21).
Rev D Document (12/2006)
Updated silicon issues 15 (MSSP) and 32-33 (ECAN™
Technology).
Rev E Document (2/2007)
Updated issue 31 (ECAN™ Technology). Corrected
code comment in Example 6 for silicon issue
34 (ECAN™ Technology).
Rev F Document (5/2007)
Added silicon issue 35 (10-Bit Analog-to-Digital
Converter).
Rev G Document (10/2007)
Removed silicon issue 16 (A/D).
© 2007 Microchip Technology Inc.
DS80202G-page 11
PIC18F2585/2680/4585/4680
NOTES:
DS80202G-page 12
© 2007 Microchip Technology Inc.
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, microID, MPLAB, PIC,
PICmicro, PICSTART, PRO MATE, rfPIC and SmartShunt are
registered trademarks of Microchip Technology Incorporated
in the U.S.A. and other countries.
AmpLab, FilterLab, Linear Active Thermistor, Migratable
Memory, MXDEV, MXLAB, SEEVAL, SmartSensor and The
Embedded Control Solutions Company are registered
trademarks of Microchip Technology Incorporated in the
U.S.A.
Analog-for-the-Digital Age, Application Maestro, CodeGuard,
dsPICDEM, dsPICDEM.net, dsPICworks, dsSPEAK, ECAN,
ECONOMONITOR, FanSense, FlexROM, fuzzyLAB,
In-Circuit Serial Programming, ICSP, ICEPIC, Mindi, MiWi,
MPASM, MPLAB Certified logo, MPLIB, MPLINK, PICkit,
PICDEM, PICDEM.net, PICLAB, PICtail, PowerCal,
PowerInfo, PowerMate, PowerTool, REAL ICE, rfLAB, Select
Mode, Smart Serial, SmartTel, Total Endurance, UNI/O,
WiperLock and ZENA are trademarks of Microchip
Technology Incorporated in the U.S.A. and other countries.
SQTP is a service mark of Microchip Technology Incorporated
in the U.S.A.
All other trademarks mentioned herein are property of their
respective companies.
© 2007, 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.
© 2007 Microchip Technology Inc.
DS80202G-page 13
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-4182-8400
Fax: 91-80-4182-8422
India - New Delhi
Tel: 91-11-4160-8631
Fax: 91-11-4160-8632
Austria - Wels
Tel: 43-7242-2244-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
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 - Fuzhou
Tel: 86-591-8750-3506
Fax: 86-591-8750-3521
Korea - Seoul
Tel: 82-2-554-7200
Fax: 82-2-558-5932 or
82-2-558-5934
China - Hong Kong SAR
Tel: 852-2401-1200
Fax: 852-2401-3431
Malaysia - Kuala Lumpur
Tel: 60-3-6201-9857
Fax: 60-3-6201-9859
China - Nanjing
Tel: 86-25-8473-2460
Fax: 86-25-8473-2470
Malaysia - Penang
Tel: 60-4-227-8870
Fax: 60-4-227-4068
China - Qingdao
Tel: 86-532-8502-7355
Fax: 86-532-8502-7205
Philippines - Manila
Tel: 63-2-634-9065
Fax: 63-2-634-9069
China - Shanghai
Tel: 86-21-5407-5533
Fax: 86-21-5407-5066
Singapore
Tel: 65-6334-8870
Fax: 65-6334-8850
China - Shenyang
Tel: 86-24-2334-2829
Fax: 86-24-2334-2393
Taiwan - Hsin Chu
Tel: 886-3-572-9526
Fax: 886-3-572-6459
China - Shenzhen
Tel: 86-755-8203-2660
Fax: 86-755-8203-1760
Taiwan - Kaohsiung
Tel: 886-7-536-4818
Fax: 886-7-536-4803
China - Shunde
Tel: 86-757-2839-5507
Fax: 86-757-2839-5571
Taiwan - Taipei
Tel: 886-2-2500-6610
Fax: 886-2-2508-0102
China - Wuhan
Tel: 86-27-5980-5300
Fax: 86-27-5980-5118
Thailand - Bangkok
Tel: 66-2-694-1351
Fax: 66-2-694-1350
Italy - Milan
Tel: 39-0331-742611
Fax: 39-0331-466781
Netherlands - Drunen
Tel: 31-416-690399
Fax: 31-416-690340
Spain - Madrid
Tel: 34-91-708-08-90
Fax: 34-91-708-08-91
UK - Wokingham
Tel: 44-118-921-5869
Fax: 44-118-921-5820
China - Xian
Tel: 86-29-8833-7252
Fax: 86-29-8833-7256
10/05/07
DS80202G-page 14
© 2007 Microchip Technology Inc.