Errata Sheet Rel. 1.2, 17.01.2013 Device XC878CLM Series Marking/Step AC Package PG-LQFP-64 This Errata Sheet describes the deviations from the current user documentation.The module oriented classification and numbering system uses an ascending sequence over several derivatives, including already solved deviations. So gaps inside this enumeration can occur. This Errata Sheet covers the following devices: • • XC878CM-13/16FF XC878CLM-13/16FF Table 1 Current Documentation XC878CLM User’s Manual V1.1 Apr 2009 XC87xCLM Data Sheet V1.5 Mar 2011 Each erratum identifier follows the pattern Module_Arch.TypeNumber: • • • Module: subsystem or peripheral affected by the erratum Arch: microcontroller architecture where the erratum was firstly detected. – AI: Architecture Independent (detected on module level) – CIC: Companion ICs – TC: TriCore (32 bit) – X: XC1xx / XC2000 (16 bit) – XC8: XC800 (8 bit) – none: C16x (16 bit) Type: none - Functional Deviation; 'P' - Parametric Deviation; 'H' Application Hint; 'D' - Documentation Update XC878CLM Series, AC 1/38 Rel. 1.2, 17.01.2013 Errata Sheet • Number: ascending sequencial number within the three previous fields. As this sequence is used over several derivatives, including already solved deviations, gaps inside this enumeration can occur. Note: Devices marked with EES or ES are engineering samples which may not be completely tested in all functional and electrical characteristics, therefore they should be used for evaluation only. The specific test conditions for EES and ES are documented in a separate Status Sheet. XC878CLM Series, AC 2/38 Rel. 1.2, 17.01.2013 Errata Sheet History List / Change Summary 1 History List / Change Summary Table 2 History List Version Date 1.0 11.09.2009 1.1 26.05.2010 Table 3 Errata fixed in this step Remark Errata Short Description T2CCU_XC8.001 External Trigger of ADC when CCT of T2CCU Fixed overflows Table 4 Chg Functional Deviations Functional Deviation Short Description BROM_XC8.006 IRAM data is corrupted after any warm reset 7 CD_XC8.001 Set and Clear of Error Bit in CORDIC Linear Vectoring Mode 7 CD_XC8.002 Data Fetch to CD_STATC Register may capture an incorrect error status 8 MultiCAN_AI.040 Remote frame transmit acceptance filtering error 8 MultiCAN_AI.041 Dealloc Last Obj 9 XC878CLM Series, AC 3/38 Chg Pg Rel. 1.2, 17.01.2013 Errata Sheet History List / Change Summary Table 4 Functional Deviations (cont’d) Functional Deviation Short Description Chg Pg MultiCAN_AI.042 Clear MSGVAL during transmit acceptance filtering 9 MultiCAN_AI.043 Dealloc Previous Obj 10 MultiCAN_AI.044 RxFIFO Base SDT 11 MultiCAN_AI.045 OVIE Unexpected Interrupt 11 MultiCAN_AI.046 Transmit FIFO base Object position 11 MultiCAN_TC.025 RXUPD behavior 12 MultiCAN_TC.026 MultiCAN Timestamp Function 12 MultiCAN_TC.027 MultiCAN Tx Filter Data Remote 13 MultiCAN_TC.028 SDT behavior 13 MultiCAN_TC.029 Tx FIFO overflow interrupt not generated 14 MultiCAN_TC.030 Wrong transmit order when CAN error at start of CRC transmission 16 MultiCAN_TC.031 List Object Error wrongly triggered 16 MultiCAN_TC.032 MSGVAL wrongly cleared in SDT mode 17 MultiCAN_TC.035 Different bit timing modes 17 MultiCAN_TC.037 Clear MSGVAL 19 MultiCAN_TC.038 Cancel TXRQ 20 SYS_XC8.001 MOV (direct, direct) instruction might cause a wrong value to be written to the destination register 20 SYS_XC8.003 Brownout Reset T2CCU_XC8.003 T2CCU Capture Functions 26 UART_XC8.002 Bits FDEN and FDM in UART1_FDCON SFR cannot be Written by Read-ModifyWrite Instructions 26 XC878CLM Series, AC 4/38 New 26 Rel. 1.2, 17.01.2013 Errata Sheet History List / Change Summary Table 5 Deviations from Electrical- and Timing Specification AC/DC/ADC Deviation Table 6 Short Description Chg Pg Application Hints Hint Short Description Chg Pg ADC_XC8.H001 Arbitration mode when using external trigger at the selected input line REQTR 29 BROM_XC8.H001 SYSCON0.RMAP handling in ISR 29 CCU6_XC8.H001 Pin Configuration of CCU6 Functions 30 CCU6_XC8.H002 CCU6 PM event in center-aligned mode 30 EVR_XC8.H002 Enhancement for Noise Immunity 31 FLASH_XC8.H004 Disable TRAP When Calling ROM Flash Routine 32 LIN_XC8.H001 LIN BRK field detection logic 32 MultiCAN_AI.H005 TxD Pulse upon short disable request MultiCAN_AI.H007 Alert Interrupt Behavior in case of BusOff 33 New 33 MultiCAN_TC.H002 Double Synchronization of receive input 34 MultiCAN_TC.H003 Message may be discarded before transmission in STT mode 34 MultiCAN_TC.H004 Double remote request 35 PIN_XC8.H001 Current over GPIO pin must not source VDDP higher than 0.3V 35 PM_XC8.H001 Clock source selection before entering power-down mode 36 PM_XC8.H002 SAK product variant does not support power-down mode 36 SYS_XC8.H001 Usage of the Bit Protection Scheme 36 XC878CLM Series, AC 5/38 Rel. 1.2, 17.01.2013 Errata Sheet History List / Change Summary Table 6 Application Hints (cont’d) Hint Short Description SYS_XC8.H002 External Clock switching routine after a WDT reset 37 SYS_XC8.H003 Effective write for Read-Modify-Write instructions of two bytes, one machine cycle New 37 T2_XC8.H003 Accessing Timer 21 registers XC878CLM Series, AC 6/38 Chg Pg 38 Rel. 1.2, 17.01.2013 Errata Sheet Functional Deviations 2 Functional Deviations BROM_XC8.006 IRAM data is corrupted after any warm reset After any warm reset (i.e. reset without powering off the device), boot up via User Mode affects certain IRAM data. The affected IRAM address ranges are: (1) 00H - 07H Workaround None CD_XC8.001 Set and Clear of Error Bit in CORDIC Linear Vectoring Mode In linear vectoring mode, the Error bit of register CD_STATC is set immediately on detecting overflow. When detected between iterations – the Error status is not held internally till the end of the calculation. As the Error bit is defined such that it is cleared on any read access to the register (e.g. JB BSY), SW checking of the Error bit only at the end of calculation may miss to detect an overflow error condition. Workaround Especially in linear vectoring mode, if the error condition setting of Error bit must be detected, any read access should be done on the whole CD_STATC register (e.g. MOV) and the Error bit checked in all read instances. XC878CLM Series, AC 7/38 Rel. 1.2, 17.01.2013 Errata Sheet Functional Deviations CD_XC8.002 Data Fetch to CD_STATC Register may capture an incorrect error status The error bit CD_STATC.ERROR is defined such that the bit is cleared on any read access to the register. Therefore, it is necessary to perform a data fetch on the register and check for the error bit in order not to lose the error status. However, if CORDIC is clocked at two times PCLK and the execution time of the read instruction is more than one machine cycle, multiple read accesses will be performed on the CD_STATC register and the error bit will be cleared by the time the CPU performs the final read. As a result, the CPU does not capture the correct error status. There is no problem if the CORDIC is clocked at the same frequency as PCLK. Workaround The following workarounds can be used to avoid incorrect data fetching from the CD_STATC register: • • The PUSH dir and POP dir instructions can be used to read the CD_STATC register in all conditions; The following one-machine cycle MOV instruction can be used to read the CD_STATC register when the CORDIC is clocked at two times of PCLK: – MOV A, dir MultiCAN_AI.040 Remote frame transmit acceptance filtering error Correct behaviour: Assume the MultiCAN message object receives a remote frame that leads to a valid transmit request in the same message object (request of remote answer), then the MultiCAN module prepares for an immediate answer of the remote request. The answer message is arbitrated against the winner of transmit acceptance filtering (without the remote answer) with a respect to the priority class (MOARn.PRI). Wrong behaviour: XC878CLM Series, AC 8/38 Rel. 1.2, 17.01.2013 Errata Sheet Functional Deviations Assume the MultiCAN message object receives a remote frame that leads to a valid transmit request in the same message object (request of remote answer), then the MultiCAN module prepares for an immediate answer of the remote request. The answer message is arbitrated against the winner of transmit acceptance filtering (without the remote answer) with a respect to the CAN arbitration rules and not taking the PRI values into account. If the remote answer is not sent out immediately, then it is subject to further transmit acceptance filtering runs, which are performed correctly. Workaround Set MOFCRn.FRREN=1B and MOFGPRn.CUR to this message object to disable the immediate remote answering. MultiCAN_AI.041 Dealloc Last Obj When the last message object is deallocated from a list, then a false list object error can be indicated. Workaround • Ignore the list object error indication that occurs after the deallocation of the last message object. or • Avoid deallocating the last message object of a list. MultiCAN_AI.042 Clear MSGVAL during transmit acceptance filtering Assume all CAN nodes are idle and no writes to MOCTRn of any other message object are performed. When bit MOCTRn.MSGVAL of a message object with valid transmit request is cleared by software, then MultiCAN may not start transmitting even if there are other message objects with valid request pending in the same list. XC878CLM Series, AC 9/38 Rel. 1.2, 17.01.2013 Errata Sheet Functional Deviations Workaround • Do not clear MOCTRn.MSGVAL of any message object during CAN operation. Use bits MOCTRn.RXEN, MOCTRn.TXEN0 instead to disable/reenable reception and transmission of message objects. or • Take a dummy message object, that is not allocated to any CAN node. Whenever a transmit request is cleared, set MOCTRm.TXRQ of the dummy message object thereafter. This retriggers the transmit acceptance filtering process. MultiCAN_AI.043 Dealloc Previous Obj Assume two message objects m and n (message object n = MOCTRm.PNEXT, i.e. n is the successor of object m in the list) are allocated. If message m is reallocated to another list or to another position while the transmit or receive acceptance filtering run is performed on the list, then message object n may not be taken into account during this acceptance filtering run. For the frame reception message object n may not receive the message because n is not taken into account for receive acceptance filtering. The message is then received by the second priority message object (in case of any other acceptance filtering match) or is lost when there is no other message object configured for this identifier.For the frame transmission message object n may not be selected for transmission, whereas the second highest priority message object is selected instead (if any). If there is no other message object in the list with valid transmit request, then no transmission is scheduled in this filtering round. If in addition the CAN bus is idle, then no further transmit acceptance filtering is issued unless another CAN node starts a transfer or one of the bits MSGVAL, TXRQ, TXEN0, TXEN1 is set in the message object control register of any message object. Workaround • After reallocating message object m, write the value one to one of the bits MSGVAL, TXRQ, TXEN0, TXEN1 of the message object control register of any message object in order to retrigger transmit acceptance filtering. XC878CLM Series, AC 10/38 Rel. 1.2, 17.01.2013 Errata Sheet Functional Deviations • For frame reception, make sure that there is another message object in the list that can receive the message targeted to n in order to avoid data loss (e.g. a message object with an acceptance mask=0D and PRI=3D as last object of the list). MultiCAN_AI.044 RxFIFO Base SDT If a receive FIFO base object is located in that part of the list, that is used for the FIFO storage container (defined by the top and bottom pointer of this base object) and bit SDT is set in the base object (CUR pointer points to the base object), then MSGVAL of the base object is cleared after storage of a received frame in the base object without taking the setting of MOFGPRn.SEL into account. Workaround Take the FIFO base object out of the list segment of the FIFO slave objects, when using Single Data Transfer. MultiCAN_AI.045 OVIE Unexpected Interrupt When a gateway source object or a receive FIFO base object with MOFCRn.OVIE set transmits a CAN frame, then after the transmission an unexpected interrupt is generated on the interrupt line as given by MOIPRm.RXINP of the message object referenced by m=MOFGPRn.CUR. Workaround Do not transmit any CAN message by receive FIFO base objects or gateway source objects with bit MOFCRn.OVIE set. MultiCAN_AI.046 Transmit FIFO base Object position If a message object n is configured as transmit FIFO base object and is located in the list segment that is used for the FIFO storage container (defined by XC878CLM Series, AC 11/38 Rel. 1.2, 17.01.2013 Errata Sheet Functional Deviations MOFGPRn.BOT and MOFGPRn.TOP) but not at the list position given by MOFGPRn.BOT, then the MultiCAN uses incorrect pointer values for this transmit FIFO. Workaround The transmit FIFO works properly when the transmit FIFO base object is either at the bottom position within the list segment of the FIFO (MOFGPRn.BOT=n) or outside of the list segment as described above. MultiCAN_TC.025 RXUPD behavior When a CAN frame is stored in a message object, either directly from the CAN node or indirectly via receive FIFO or from a gateway source object, then bit MOCTR.RXUPD is set in the message object before the storage process and is automatically cleared after the storage process. Problem description When a standard message object (MOFCR.MMC) receives a CAN frame from a CAN node, then it processes its own RXUPD as described above (correct). In addition to that, it also sets and clears bit RXUPD in the message object referenced by pointer MOFGPR.CUR (wrong behavior). Workaround The “foreign” RXUPD pulse can be avoided by initializing MOFGPR.CUR with the message number of the object itself instead of another object (which would be message object 0 by default, because MOFGPR.CUR points to message object 0 after reset initialization of MultiCAN). MultiCAN_TC.026 MultiCAN Timestamp Function The timestamp functionality does not work correctly. XC878CLM Series, AC 12/38 Rel. 1.2, 17.01.2013 Errata Sheet Functional Deviations Workaround Do not use timestamp. MultiCAN_TC.027 MultiCAN Tx Filter Data Remote Message objects of priority class 2 (MOAR.PRI = 2) are transmitted in the order as given by the CAN arbitration rules. This implies that for 2 message objects which have the same CAN identifier, but different DIR bit, the one with DIR = 1 (send data frame) shall be transmitted before the message object with DIR = 0, which sends a remote frame. The transmit filtering logic of the MultiCAN leads to a reverse order, i.e the remote frame is transmitted first. Message objects with different identifiers are handled correctly. Workaround None. MultiCAN_TC.028 SDT behavior Correct behavior Standard message objects: MultiCAN clears bit MOCTR.MSGVAL after the reception/transmission of a CAN frame if bit MOFCR.SDT is set. successful Transmit Fifo slave object: MultiCAN clears bit MOCTR.MSGVAL after the successful reception/transmission of a CAN frame if bit MOFCR.SDT is set. After a transmission, MultiCAN also looks at the respective transmit FIFO base object and clears bit MSGVAL in the base object if bit SDT is set in the base object and pointer MOFGPR.CUR points to MOFGPR.SEL (after the pointer update). Gateway Destination/Fifo slave object: MultiCAN clears bit MOCTR.MSGVAL after the storage of a CAN frame into the object (gateway/FIFO action) or after the successful transmission of a CAN frame if bit MOFCR.SDT is set. After a reception, MultiCAN also looks at the respective FIFO base/Gateway source object and clears bit MSGVAL in the base XC878CLM Series, AC 13/38 Rel. 1.2, 17.01.2013 Errata Sheet Functional Deviations object if bit SDT is set in the base object and pointer MOFGPR.CUR points to MOFGPR.SEL (after the pointer update). Problem description Standard message objects: After the successful transmission/reception of a CAN frame, MultiCAN also looks at message object given by MOFGPR.CUR. If bit SDT is set in the referenced message object, then bit MSGVAL is cleared in the message object CUR is pointing to. Transmit FIFO slave object: Same wrong behaviour as for standard message object. As for transmit FIFO slave objects CUR always points to the base object, the whole transmit FIFO is set invalid after the transmission of the first element instead after the base object CUR pointer has reached the predefined SEL limit value. Gateway Destination/Fifo slave object: Correct operation of the SDT feature. Workaround Standard message object: Set pointer MOFGPR.CUR to the message number of the object itself. Transmit FIFO: Do not set bit MOFCR.SDT in the transmit FIFO base object. Then SDT works correctly with the slaves, but the FIFO deactivation feature by CUR reaching a predefined limit SEL is lost. MultiCAN_TC.029 Tx FIFO overflow interrupt not generated Specified behaviour After the successful transmission of a Tx FIFO element, a Tx overflow interrupt is generated if the FIFO base object fulfils these conditions: • • Bit MOFCR.OVIE=1, AND MOFGPR.CUR becomes equal to MOFGPR.SEL XC878CLM Series, AC 14/38 Rel. 1.2, 17.01.2013 Errata Sheet Functional Deviations Real behaviour A Tx FIFO overflow interrupt will not be generated after the transmission of the Tx FIFO base object. Workaround If Tx FIFO overflow interrupt needed, take the FIFO base object out of the circular list of the Tx message objects. That is to say, just use the FIFO base object for FIFO control, but not to store a Tx message. List X TOP base object: MO s BOTTOM MO c MO n MO l MO a MO z TxFiFo Figure 1 FIFO structure XC878CLM Series, AC 15/38 Rel. 1.2, 17.01.2013 Errata Sheet Functional Deviations MultiCAN_TC.030 Wrong transmit order when CAN error at start of CRC transmission The priority order defined by acceptance filtering, specified in the message objects, define the sequential order in which these messages are sent on the CAN bus. If an error occurs on the CAN bus, the transmissions are delayed due to the destruction of the message on the bus, but the transmission order is kept. However, if a CAN error occurs when starting to transmit the CRC field, the arbitration order for the corresponding CAN node is disturbed, because the faulty message is not retransmitted directly, but after the next transmission of the CAN node. crc field CAN bus error Figure 2 Workaround None. MultiCAN_TC.031 List Object Error wrongly triggered If the first list object in a list belonging to an active CAN node is deallocated from that list position during transmit/receive acceptance filtering (happening during message transfer on the bus), then a "list object" error may occur (NSRx.LOE=1B), which will cause that effectively no acceptance filtering is performed for this message by the affected CAN node. As a result: • for the affected CAN node, the CAN message during which the error occurs will not be stored in a message object. This means that although the message is acknowledged on the CAN bus, its content will be ignored. XC878CLM Series, AC 16/38 Rel. 1.2, 17.01.2013 Errata Sheet Functional Deviations • • the message handling of an ongoing transmission is not disturbed, but the transmission of the subsequent message will be delayed, because transmit acceptance filtering has to be started again. message objects with pending transmit request might not be transmitted at all due to failed transmit acceptance filtering. Workaround EITHER: • • Avoid deallocation of the first element on active CAN nodes. Dynamic reallocations on message objects behind the first element are allowed, OR Avoid list operations on a running node. Only perform list operations, if CAN node is not in use (e.g. when NCRx.INIT=1B) MultiCAN_TC.032 MSGVAL wrongly cleared in SDT mode When Single Data Transfer Mode is enabled (MOFCRn.SDT=1B), the bit MOCTRn.MSGVAL is cleared after the reception of a CAN frame, no matter if it is a data frame or a remote frame. In case of a remote frame reception and with MOFCR.FRREN = 0B, the answer to the remote frame (data frame) is transmitted despite clearing of MOCTRn.MSGVAL (incorrect behaviour). If, however, the answer (data frame) does not win transmit acceptance filtering or fails on the CAN bus, then no further transmission attempt is made due to cleared MSGVAL (correct behaviour). Workaround • To avoid a single trial of a remote answer in this case, set MOFCR.FRREN = 1B and MOFGPR.CUR = this object. MultiCAN_TC.035 Different bit timing modes Bit timing modes (NFCRx.CFMOD=10B) do not conform to the specification. XC878CLM Series, AC 17/38 Rel. 1.2, 17.01.2013 Errata Sheet Functional Deviations When the modes 001B-100B are set in register NFCRx.CFSEL, the actual configured mode and behaviour is different than expected. Table 7 Bit timing mode (NFCR.CFSEL) according to spec Value to be written to NFCR.CFSEL instead 001B Mode is missing (not Whenever a recessive edge implemented) in (transition from 0 to 1) is monitored MultiCAN on the receive input the time (measured in clock cycles) between this edge and the most recent dominant edge is stored in CFC. 010B 011B Whenever a dominant edge is received as a result of a transmitted dominant edge the time (clock cycles) between both edges is stored in CFC. 011B 100B Whenever a recessive edge is received as a result of a transmitted recessive edge the time (clock cycles) between both edges is stored in CFC. 100B 001B Whenever a dominant edge that qualifies for synchronization is monitored on the receive input the time (measured in clock cycles) between this edge and the most recent sample point is stored in CFC. Measurement Workaround None. XC878CLM Series, AC 18/38 Rel. 1.2, 17.01.2013 Errata Sheet Functional Deviations MultiCAN_TC.037 Clear MSGVAL Correct behaviour: When MSGVAL is cleared for a message object in any list, then this should not affect the other message objects in any way. Message reception (wrong behaviour): Assume that a received CAN message is about to be stored in a message object A, which can be a standard message object, FIFO base, FIFO slave, gateway source or gateway destination object. If during of the storage action the user clears MOCTR.MSGVAL of message object B in any list, then the MultiCAN module may wrongly interpret this temporarily also as a clearing of MSGVAL of message object A. The result of this is that the message is not stored in message object A and is lost. Also no status update is performed on message object A (setting of NEWDAT, MSGLST, RXPND) and no message object receive interrupt is generated. Clearing of MOCTR.MSGVAL of message object B is performed correctly. Message transmission (wrong behaviour): Assume that MultiCAN is about to copy the message content of a message object A into the internal transmit buffer of the CAN node for transmission. If during of the copy action the user clears MOCTR.MSGVAL of message object B in any list, then the MultiCAN module may wrongly interpret this also as a clearing of MSGVAL of message object A. The result of this is that the copy action for message A is not performed, bit NEWDAT is not cleared and no transmission takes place (clearing MOCTR.MSGVAL of message object B is performed correctly). In case of idle CAN bus and the user does not actively set the transmit request of any message object, this may lead to not transmitting any further message object, even if they have a valid transmit request set. Single data transfer feature: When the MultiCAN module clears MSGVAL as a result of a single data transfer (MOFCR.SDT = 1 in the message object), then the problem does not occur. The problem only occurs if MSGVAL of a message object is cleared via CPU. XC878CLM Series, AC 19/38 Rel. 1.2, 17.01.2013 Errata Sheet Functional Deviations Workaround Do not clear MOCTR.MSGVAL of any message object during CAN operation. Use bits MOCTR.RXEN, MOCTR.TXEN0 instead to disable/reenable reception and transmission of message objects. MultiCAN_TC.038 Cancel TXRQ When the transmit request of a message object that has won transmit acceptance filtering is cancelled (by clearing MSGVAL, TXRQ, TXEN0 or TXEN1), the CAN bus is idle and no writes to MOCTR of any message object are performed, then MultiCAN does not start the transmission even if there are message objects with valid transmit request pending. Workaround To avoid that the CAN node ignores the transmission: • take a dummy message object, that is not allocated to any CAN node. Whenever a transmit request is cleared, set TXRQ of the dummy message object thereafter. This retriggers the transmit acceptance filtering process. or: • whenever a transmit request is cleared, set one of the bits TXRQ, TXEN0 or TXEN1, which is already set, again in the message object for which the transmit request is cleared or in any other message object. This retriggers the transmit acceptance filtering process. SYS_XC8.001 MOV (direct, direct) instruction might cause a wrong value to be written to the destination register The MOV (direct, direct) instruction (hex code 85H) that access registers (direct address ranging from 80H to FFH), does not write the correct value of the source register to the destination register if the destination register is a register listed in the table below. The source register can be any register from the direct address range 80H to FFH. XC878CLM Series, AC 20/38 Rel. 1.2, 17.01.2013 Errata Sheet Functional Deviations Table 8 Module Register SFR Address RMA P Page Products Affected SCU IRCON0 B4H 0 0 XC88x, XC878 IRCON1 B5H 0 0 XC88x, XC878 IRCON2 B6H 0 0 XC88x, XC878 IRCON3 B4H 0 3 All IRCON4 B5H 0 3 All NMISR BCH 0 0 XC88x, XC878 FDCON E9H 0 0 XC88x, XC878 PMCON0 B4H 0 1 XC88x, XC878 OSC_CON B6H 0 1 XC88x, XC878 PLL_CON B7H 0 1 XC88x MISC_CON E9H 0 1 XC88x, XC878 WDTCON BBH 1 - XC88x, XC878 CORDIC CD_STATC A0H 1 - XC88x, XC878 MDU MDUSTAT B0H 1 - XC88x, XC878 SSC CONH (Operating Mode) ABH 0 - All UART1 SCON C8H 1 - XC88x, XC878 FDCON CCH 1 - XC88x, XC878 T2 T2CON C0H 0 - All T21 T2CON C0H 1 - XC88x, XC878 OCDS MMCR2 E9H 1 - All MMCR F1H 1 - All MMSR F2H 1 - All MMICR F4H 1 - All WDT XC878CLM Series, AC 21/38 Rel. 1.2, 17.01.2013 Errata Sheet Functional Deviations Table 8 Module Register SFR Address RMA P Page Products Affected T2CCU CCTCON C6H 0 1 XC878 COSHDW C0H 0 2 XC878 COCON C0H 0 3 XC878 CC0L C1H 0 2 XC878 CC0H C2H 0 2 XC878 CC1L C3H 0 2 XC878 CC1H C4H 0 2 XC878 CC2L C5H 0 2 XC878 CC2H C6H 0 2 XC878 CC3L C1H 0 3 XC878 CC3H C2H 0 3 XC878 CC4L C3H 0 3 XC878 CC4H C4H 0 3 XC878 CC5L C5H 0 3 XC878 CC5H C6H 0 3 XC878 CC63SRL 9AH 0 0 All CC63SRH 9BH 0 0 All MCMOUTSL 9EH 0 0 All MCMOUTSH 9FH 0 0 All CC60SRL FAH 0 0 All CC60SRH FBH 0 0 All CC61SRL FCH 0 0 All CCU6 XC878CLM Series, AC 22/38 Rel. 1.2, 17.01.2013 Errata Sheet Functional Deviations Table 8 Module Register SFR Address RMA P Page Products Affected CCU6 (cont’d) CC61SRH FDH 0 0 All CC62SRL FEH 0 0 All CC62SRH FFH 0 0 All T12PRL 9CH 0 1 All T12PRH 9DH 0 1 All T13PRL 9EH 0 1 All T13PRH 9FH 0 1 All T12DTCL A4H 0 1 All T12DTCH A5H 0 1 All TCTR0L A6H 0 1 All TCTR0H A7H 0 1 All T12MSELL 9AH 0 2 All T12MSELH 9BH 0 2 All IENL 9CH 0 2 All IENH 9DH 0 2 All INPL 9EH 0 2 All INPH 9FH 0 2 All PSLR A6H 0 2 All MCMCTR A7H 0 2 All TCTR2L FAH 0 2 All TCTR2H FBH 0 2 All MODCTRL FCH 0 2 All MODCTRH FDH 0 2 All TRPCTRL FEH 0 2 All TRPCTRH FFH 0 2 All PISEL0L 9EH 0 3 All PISEL0H 9FH 0 3 All PISEL2 A4H 0 3 All XC878CLM Series, AC 23/38 Rel. 1.2, 17.01.2013 Errata Sheet Functional Deviations Table 8 Module Register SFR Address RMA P Page Products Affected CCU6 (cont’d) T13L FCH 0 3 All T13H FDH 0 3 All CMPSTATH FFH 0 3 All GLOBCTR CAH 0 0 All PRAR CCH 0 0 All LCBR CDH 0 0 All INPCR0 CEH 0 0 All ETRCR CFH 0 0 All CHCTR0 CAH 0 1 All CHCTR1 CBH 0 1 All CHCTR2 CCH 0 1 All CHCTR3 CDH 0 1 All CHCTR4 CEH 0 1 All CHCTR5 CFH 0 1 All CHCTR6 D2H 0 1 All CHCTR7 D3H 0 1 All RCR0 CAH 0 4 All RCR1 CBH 0 4 All RCR2 CCH 0 4 All RCR3 CDH 0 4 All CHINPR CDH 0 5 All EVINPR D3H 0 5 All CRCR1 CAH 0 6 All CRPR1 CBH 0 6 All CRMR1 CCH 0 6 All QMR0 CDH 0 6 All ADC XC878CLM Series, AC 24/38 Rel. 1.2, 17.01.2013 Errata Sheet Functional Deviations For example, in the sample code below, there are two MOV (direct, direct) instructions that write the value of one register into another. All the source and destination registers in these two instructions are from the direct address range 80H to FFH. The P1_DATA register is not one of the affected registers listed in the table above and therefore, it is written with the correct value of the CC60SRL register. On the other hand, the CC60SRH register is one of the affected registers and therefore, it is written with the wrong value of the B register. Sample Code: interrupt: MUL A, B MOV CC60SRL, A MOV P1_DATA, CC60SRL MOV CC60SRH, B RETI Workaround Instead of using the MOV (direct, direct) instruction, use other instructions or an intermediate variable to write to the targeted register. For example, the two MOV (direct, direct) instructions in the earlier sample code can be replaced with MOV (direct, A) instructions (hex code F5H). Both the P1_DATA and CC60SRH registers will now be written with the correct source register values. Sample Code: interrupt: MUL A, B MOV CC60SRL, A MOV P1_DATA, A XCH A, B MOV CC60SRH, A RETI XC878CLM Series, AC 25/38 Rel. 1.2, 17.01.2013 Errata Sheet Functional Deviations SYS_XC8.003 Brownout Reset Brownout reset may not be triggered when the core supply voltage (VDDC) drops below operating limit. It is recommended to use an external voltage detector and perform a power-on reset when the core supply voltage drops below 2.2V (minimum). Workaround None. T2CCU_XC8.003 T2CCU Capture Functions Capture mode 1 is the only T2CCU capture mode in XC878 AC step. Capture mode 0 of T2CCU is not functioning. In mode 1, a capture will occur upon writing to the low byte of the corresponding channel capture register, CCxL. Workaround None. UART_XC8.002 Bits FDEN and FDM in UART1_FDCON SFR cannot be Written by Read-Modify-Write Instructions The bits FDEN and FDM in UART1_FDCON SFR are not updated when written with the read-modify-write instructions listed in the table below: Table 9 Affected Read-Modify-Write Instructions Hex Code INC dir 05 DEC dir 15 ANL dir,A 52 ANL dir,#data 53 ORL dir,A 42 ORL dir,#data 43 XC878CLM Series, AC 26/38 Rel. 1.2, 17.01.2013 Errata Sheet Functional Deviations Table 9 Affected Read-Modify-Write Instructions Hex Code XRL dir,A 62 XRL dir,#data 63 XCH A,dir C5 DJNZ dir,rel D5 Workaround Use MOV instructions, except MOV dir, dir (Hex Code: 85), when writing to the bits FDEN and FDM in UART1_FDCON SFR. XC878CLM Series, AC 27/38 Rel. 1.2, 17.01.2013 Errata Sheet Deviations from Electrical- and Timing Specification 3 Deviations from Electrical- and Timing Specification XC878CLM Series, AC 28/38 Rel. 1.2, 17.01.2013 Errata Sheet Application Hints 4 Application Hints ADC_XC8.H001 Arbitration mode when using external trigger at the selected input line REQTR If an external trigger is expected at the selected input line REQTR to trigger a pending request, the arbitration mode should be set (PRAR.ARBM=1) where the arbitration is started by pending conversion request. This selection will minimize the jitter between asynchronous external trigger with respect to the arbiter and the start of the conversion. The jitter can only be minimized while no other conversion is running and no higher priority conversion can cancel the triggered conversion. In this case, a constant delay (no jitter) has to be taken into account between the trigger event and the start of the conversion. BROM_XC8.H001 SYSCON0.RMAP handling in ISR The ISR has to handle SYSCON0.RMAP correctly when Flash user routines provided in the Boot ROM are used together with the interrupt system. Any ISR with the possibility of interrupting these user routines has to do the following in the interrupt routine: save the value of the RMAP bit at the beginning restore the value before the exit This is to prevent access of the wrong address map upon return to the Flash user routine since the RMAP bit may be changed within the interrupt routine. The critical point is when Flash user routines sets RMAP to ‘1’ and the interrupt occurs that needs RMAP at ‘0’ in the ISR. Please note that NMI is an interrupt as well. XC878CLM Series, AC 29/38 Rel. 1.2, 17.01.2013 Errata Sheet Application Hints CCU6_XC8.H001 Pin Configuration of CCU6 Functions Table 10 shows the updated pin configuration of CCU6 pins in XC878. Table 10 Updated CCU6 Pin Configuration CCU6 Functions Pin Symbol CCPOS0_0 CCU6 Hall Input 0 P5.4 CCPOS1_0 CCU6 Hall Input 1 P5.3 CC60_3 Input of Capture/Compare Channel 0 P5.3 CC61_3 Input of Capture/Compare Channel 1 P5.4 CC62_3 Input of Capture/Compare Channel 2 P5.5 CCU6_XC8.H002 CCU6 PM event in center-aligned mode After detecting a period match (PM A) in centre-aligned mode, T12 counts down from PM + 1 as shown below: 0x201 0x200 PM A 0x200 PM B 0x1FF 0x1FF Period Match (PM) 0x1FE Figure 3 0x1FE Counting sequence of T12 in center-aligned mode This means a second PM event (PM B) will occur during the counting down. If ADC is triggered externally via ETRx2 (T12PM), it will be triggered twice in succession. Depending on how real-time the application code is running as well XC878CLM Series, AC 30/38 Rel. 1.2, 17.01.2013 Errata Sheet Application Hints as the T12 count rate and ADC conversion rate, the application could observe two ADC interrupts - once at PM A and once at PM B. To avoid triggering twice the ADC interrupts, it is suggested to use ETRx6 from multi-channel mode instead of ETRx2 as the trigger source for ADC. Additional initialization are as follows: • • • Configure MCMCTR.SWSEL = 101B (Transfer on T12 period match) Configure MCMCTR.SWSYN = 00B (Direct transfer) Write to MCMOUTSTL = CFH (To enable multi-Channel PWM pattern on CC6x and COUT6x) Note: Independent of the external trigger, the CCU6 internal triggers based on T12 PM (e.g. T12 PM interrupt or shadow transfer) are only activiated once while T12 is counting up. EVR_XC8.H002 Enhancement for Noise Immunity During power up, the EVR functionality may be affected due to injected noise from any functional pin. In order to enhance the noise immunity, the external reset pin RESET must be asserted until VDDC reaches 0.9 * VDDC. The delay of external reset can be realized by an external capacitor at RESET pin. This capacitor value must be selected so that VRESET reaches 0.4 V, but not before VDDC reaches 0.9 * VDDC. A typical application example is shown in Figure 4. A 220 nF capacitor is connected to VDDP pin, VDDC pin and RESET pin. In addition, it is also essential to put it as close as possible to the chip. XC878CLM Series, AC 31/38 Rel. 1.2, 17.01.2013 Errata Sheet Application Hints 3.3V/5V 220nF 220nF VSSP 220nF VDDC VDDP VSSC RESET XC878 Figure 4 Noise Immunity Enhancement Circuitry FLASH_XC8.H004 Disable TRAP When Calling ROM Flash Routine User code has to disable TRAP by clearing EO.TRAP_EN bit before any CALL to ROM Flash routines, and to restore the bit after that. LIN_XC8.H001 LIN BRK field detection logic Based on the hardware implementation, the maximum number of bits in the BRK field must follow the formula: Maximum number of bits in BRK field = Baud Rate x 4095 Sample Frequency PCLK Sample Frequency = 8x 2 BGSEL For example, if LIN baudrate is 19.2kbps, BGSEL = 0 and CPU frequency is 24MHz, the maximum number of bits in BRK field would be: XC878CLM Series, AC 32/38 Rel. 1.2, 17.01.2013 Errata Sheet Application Hints 19.2k x 4095 / (24M / 8) = ~26.2 bits If the maximum number of bits in the BRK field exceeded, the internal counter will overflow which results in baudrate detection error. Therefore, the user is advised to choose the appropriate BGSEL value for the required baudrate detection range. The calculated value above does not consider sample error and transmission error, nevertheless it can be used as a guideline. MultiCAN_AI.H005 TxD Pulse upon short disable request If a CAN disable request is set and then canceled in a very short time (one bit time or less) then a dominant transmit pulse may be generated by MultiCAN module, even if the CAN bus is in the idle state. Example for setup of the CAN disable request: PMCON1.CAN_DIS = 1 and then PMCON1.CAN_DIS = 0 Workaround Set all INIT bits to 1 before requesting module disable. MultiCAN_AI.H007 Alert Interrupt Behavior in case of Bus-Off The MultiCAN module shows the following behavior in case of a bus-off status: TEC=0x60 or REC=0x60 EWRN Figure 5 REC=0x1, TEC=0x1 BOFF INIT REC=0x60, TEC=0x1 EWRN+BOFF INIT REC=0x0, TEC=0x0 ALERT INIT Alert Interrupt Behavior in case of Bus-Off XC878CLM Series, AC 33/38 Rel. 1.2, 17.01.2013 Errata Sheet Application Hints When the threshold for error warning (EWRN) is reached (default value of Error Warning Level EWRN = 0x60), then the EWRN interrupt is issued. The bus-off (BOFF) status is reached if TEC > 255 according to CAN specification, changing the MultiCAN module with REC and TEC to the same value 0x1, setting the INIT bit to 1B, and issuing the BOFF interrupt. The bus-off recovery phase starts automatically. Every time an idle time is seen, REC is incremented. If REC = 0x60, a combined status EWRN+BOFF is reached. The corresponding interrupt can also be seen as a pre-warning interrupt, that the bus-off recovery phase will be finished soon. When the bus-off recovery phase has finished (128 times idle time have been seen on the bus), EWRN and BOFF are cleared, the ALERT interrupt bit is set and the INIT bit is still set. MultiCAN_TC.H002 Double Synchronization of receive input The MultiCAN module has a double synchronization stage on the CAN receive inputs. This double synchronization delays the receive data by 2 module clock cycles. If the MultiCAN is operating at a low module clock frequency and high CAN baudrate, this delay may become significant and has to be taken into account when calculating the overall physical delay on the CAN bus (transceiver delay etc.). MultiCAN_TC.H003 Message may be discarded before transmission in STT mode If MOFCRn.STT=1 (Single Transmit Trial enabled), bit TXRQ is cleared (TXRQ=0) as soon as the message object has been selected for transmission and, in case of error, no retransmission takes places. Therefore, if the error occurs between the selection for transmission and the real start of frame transmission, the message is actually never sent. Workaround In case the transmission shall be guaranteed, it is not suitable to use the STT mode. In this case, MOFCRn.STT shall be 0. XC878CLM Series, AC 34/38 Rel. 1.2, 17.01.2013 Errata Sheet Application Hints MultiCAN_TC.H004 Double remote request Assume the following scenario: A first remote frame (dedicated to a message object) has been received. It performs a transmit setup (TXRQ is set) with clearing NEWDAT. MultiCAN starts to send the receiver message object (data frame), but loses arbitration against a second remote request received by the same message object as the first one (NEWDAT will be set). When the appropriate message object (data frame) triggered by the first remote frame wins the arbitration, it will be sent out and NEWDAT is not reset. This leads to an additional data frame, that will be sent by this message object (clearing NEWDAT). There will, however, not be more data frames than there are corresponding remote requests. C AN Bus r e m o te re q u e s t r e m o te re q u e s t d a ta d a ta lo s s o f a rb itra tio n s e tu p M u ltiC A N d a ta o b je c t c le a r NEW DAT by H W Figure 6 s e tu p c le a r s e t NEW DAT by H W d a ta s e tu p o b je c t d a ta o b je c t c le a r NEW DAT by H W Loss of Arbitration PIN_XC8.H001 Current over GPIO pin must not source VDDP higher than 0.3V When VDDP is not powered on, the current over a GPIO pin has to be limited in such a way that VDDP - VSSP ? 0.3V. This prevents the supply of the device via the ESD diode between the GPIO pin and VDDP. XC878CLM Series, AC 35/38 Rel. 1.2, 17.01.2013 Errata Sheet Application Hints However, for applications with strict low power-down current requirements, it is mandatory that no active voltage source is supplied at any GPIO pin when VDDP is not powered on. PM_XC8.H001 Clock source selection before entering power-down mode There are two oscillator sources available in the clock system: on-chip oscillator and external oscillator via XTAL pad. When external oscillator is selected to be the clock source (OSC_CON.OSCSS=1), the XTAL pad will not be shut down automatically during power-down mode. If optimal power-down current is required, on-chip oscillator should be chosen as the clock source before entering power-down mode. Note: SAK product variant does not support power-down mode. PM_XC8.H002 SAK product variant does not support power-down mode Power-down mode is not available in the SAK product variant. It is only supported in SAF and SAX product variants. The profile of these variants is described in Table 11. Table 11 Temperature Profile Variant Type Temperature Profile (°C) SAF -40 to 85 SAX -40 to 105 SAK -40 to 125 SYS_XC8.H001 Usage of the Bit Protection Scheme When the bit protection scheme is enabled, bit field PASSWD.PASS should always be used to open and close write access to the protected bits. The scheme should be disabled only if it is not required in the application. XC878CLM Series, AC 36/38 Rel. 1.2, 17.01.2013 Errata Sheet Application Hints In the unlikely event that the scheme is enabled again after disabling it while the write access is still open, the write access will remain open until the count of 32 CCLK cycles is completed. SYS_XC8.H002 External Clock switching routine after a WDT reset When a WDT reset happens, the clock system will not be reset. If user needs to run the clock switching routine after a WDT reset, the bit field OSC_CON.OSCSS should be clear to 0 before activating the routine. SYS_XC8.H003 Effective write for Read-Modify-Write instructions of two bytes, one machine cycle When read-modify-write instructions requiring 2 bytes and 1 machine cycle (equivalent to 2 CCLK cycles) for execution, such as INC dir, are executed from memories without any wait states1), the actual write to the destination is delayed by the internal bus for up to one CCLK cycle. This means that even though the CPU completes the instruction execution after 2 CCLK cycles, the write through the internal bus may take effect only after a further CCLK cycle. The list of affected read-modify-write instructions is shown below: Table 12 Mnemonic Hex Code Bytes No. of CCLK cycles (without wait states) INC dir 05 2 2 DEC dir 15 2 2 ANL dir, A 52 2 2 ORL dir, A 42 2 2 XRL dir, A 62 2 2 XCH A, dir C5 2 2 CLR bit C2 2 2 1) Applicable also to Flash memory with parallel read feature. XC878CLM Series, AC 37/38 Rel. 1.2, 17.01.2013 Errata Sheet Application Hints Table 12 Mnemonic Hex Code Bytes No. of CCLK cycles (without wait states) SETB bit D2 2 2 CPL bit B2 2 2 T2_XC8.H003 Accessing Timer 21 registers To access Timer 21 registers, T2 page needs to be setup by clearing bit field T2_PAGE.PAGE to 000B. XC878CLM Series, AC 38/38 Rel. 1.2, 17.01.2013