Freescale Semiconductor Mask Set Errata KINETIS_4N30D Rev 07 AUG 2013 Mask Set Errata for Mask 4N30D Introduction This report applies to mask 4N30D for these products: • KINETIS Errata ID Errata Title 2550 ADC: ADC abort conversion logic error 2776 CRC: May have incorrect CRC result when performing CRC 8-bit or 16-bit writes with transpose enabled. 2547 DAC: 12-bit DAC buffer registers cannot be read. 4588 DMAMUX: When using PIT with "always enabled" request, DMA request does not deassert correctly 2579 ENET: No support for IEEE 1588, TS_TIMER, timestamp timer overflow interrupt 6358 ENET: Write to Transmit Descriptor Active Register (ENET_TDAR) is ignored 2687 FMC: Flash clock divider setting for divide-by-1 not allowed 2590 FMC: Master Access Protection encoding for write only access does not work as specified. 6189 FTFL: ERSSRC (Erase Sector) command does not change the Swap System status from UPDATE to UPDATE-ERASED on devices in this product family with 256KB of total P-Flash. 3372 FTFL: Reset during an EEE program operation may result in an invalid EEE read access 5751 FTFx: Launching the Read 1's Section command (RD1SEC) on an entire flash block results in access error (ACCER). 5706 FTFx: MCU security is inadvertently enabled (secured) if a mass erase is executed when the flash blocks/ halves are swapped. This issue only affects applications that use the flash swap feature. 2781 FlexBus: False bus error on back-to-back writes when flash memory is secure 2616 FlexCAN: Module receives data frames sent by itself although the self reception feature is disabled 3402 GPIO: XTAL pin cannot be used as GPIO if the ERCLKEN bit is set. 2793 I2C: MCU does not wake as expected from STOP or VLPS mode on subsequent address matches if previous address is mismatched 3795 I2S: Fractional divider in SIM_CLKDIV2 is not reset when recovering from VLLSx low power modes 3714 I2S: MCLK output is disabled in asynchronous mode 2674 LLWU: The LLWU glitch filter for pin and reset is not supported Table continues on the next page... © 2013 Freescale Semiconductor, Inc. Errata ID Errata Title 2678 MC: The MC_SRS[PIN] is not always set after exiting a VLLS mode due to a RESET pin assertion 2676 MC: When waking the system from VLLS modes via a RESET pin, the I/O are not immediately released to their reset state. 6665 Operating requirements: Limitation of the device operating range 6328 PMC: Incorrect exit from VLLSx modes 4482 PMC: STOP mode recovery unstable 2542 PMC: Very Low Power Run (VLPR) and Very Low Power Wait (VLPW) power modes are not supported 2576 RTC: When the RTC is configured to allow supervisor access only, the write and read access registers can be modified in user mode 4949 Reset and Boot: Device may not exit the power on reset (POR) event correctly with fast ramp-up slew rates. 3981 SDHC: ADMA fails when data length in the last descriptor is less or equal to 4 bytes 3982 SDHC: ADMA transfer error when the block size is not a multiple of four 4624 SDHC: AutoCMD12 and R1b polling problem 3977 SDHC: Does not support Infinite Block Transfer Mode 4627 SDHC: Erroneous CMD CRC error and CMD Index error may occur on sending new CMD during data transfer 3980 SDHC: Glitch is generated on card clock with software reset or clock divider change 3983 SDHC: Problem when ADMA2 last descriptor is LINK or NOP 3978 SDHC: Software can not clear DMA interrupt status bit after read operation 3984 SDHC: eSDHC misses SDIO interrupt when CINT is disabled 5708 SLCD: LCD waveforms can exceed voltage specification for 3V or 5V glass 2591 TSI: TSI_SCANC[SMOD] behaves as an inactive time instead of a scan period value 2638 TSI: The counter registers are not immediately updated after the EOSF bit is set. 2582 UART: Flow control timing issue can result in loss of characters 4945 UART: ISO-7816 T=1 mode receive data format with a single stop bit is not supported 3892 UART: ISO-7816 automatic initial character detect feature not working correctly 2584 UART: Possible conflicts between UART interrupt service routines and DMA requests 5704 UART: TC bit in UARTx_S1 register is set before the last character is sent out in ISO7816 T=0 mode 5928 USBOTG: USBx_USBTRC0[USBRESET] bit does not operate as expected in all cases 3796 USBREG: Cannot use USB Regulator standby mode when output is powering MCU via VDD. 2686 WDOG: A watchdog reset while the system is in STOP or VLPS modes causes an incorrect wakeup sequence e2550: ADC: ADC abort conversion logic error Errata type: Errata Description: The ADC abort conversion logic does not function as specified. Writes to the ADC CV1, CV2, OFS, PG, MG, CLPx, and CLMx registers will not abort a conversion. Workaround: The abort conversion logic protects against changes to the ADC configuration during a conversion. To avoid this issue, do not change ADC settings during a conversion. Mask Set Errata for Mask 4N30D, Rev 07 AUG 2013 2 Freescale Semiconductor, Inc. e2776: CRC: May have incorrect CRC result when performing CRC 8-bit or 16-bit writes with transpose enabled. Errata type: Errata Description: If performing CRC 8-bit or 16-bit writes with transpose enabled, the final checksum may have an incorrect CRC result. Workaround: Write accesses to the CRC when transpose is enabled should always be 32-bit. e2547: DAC: 12-bit DAC buffer registers cannot be read. Errata type: Errata Description: The 12-bit DAC buffer registers, DACx_DAT[1:15]L and DACx_DAT[1:15]H, cannot be read. The data that is written to these registers cannot be read. Only DACx_DAT0L and DACx_DAT0H can be read correctly. Workaround: Treat the DACx_DAT[1:15]L and DACx_DAT[1:15]H registers as write-only registers because reads may return invalid data. The DAC buffer can still be used since the values written to these registers are valid. e4588: DMAMUX: When using PIT with "always enabled" request, DMA request does not deassert correctly Errata type: Errata Description: The PIT module is not assigned as a stand-alone DMA request source in the DMA request mux. Instead, the PIT is used as the trigger for the DMAMUX periodic trigger mode. If you want to use one of the PIT channels for periodic DMA requests, you would use the periodic trigger mode in conjunction with one of the "always enabled" DMA requests. However, the DMA request does not assert correctly in this case. Instead of sending a single DMA request every time the PIT expires, the first time the PIT triggers a DMA transfer the "always enabled" source will not negate its request. This results in the DMA request remaining asserted continuously after the first trigger. Workaround: Use of the PIT to trigger DMA channels where the major loop count is greater than one is not recommended. For periodic triggering of DMA requests with major loop counts greater than one, we recommended using another timer module instead of the PIT. If using the PIT to trigger a DMA channel where the major loop count is set to one, then in order to get the desired periodic triggering, the DMA must do the following in the interrupt service routine for the DMA_DONE interrupt: 1. Set the DMA_TCDn_CSR[DREQ] bit and configure DMAMUX_CHCFGn[ENBL] = 0 2. Then again DMAMUX_CHCFGn[ENBL] = 1, DMASREQ=channel in your DMA DONE interrupt service routine so that "always enabled" source could negate its request then DMA request could be negated. This will allow the desired periodic triggering to function as expected. Mask Set Errata for Mask 4N30D, Rev 07 AUG 2013 Freescale Semiconductor, Inc. 3 e2579: ENET: No support for IEEE 1588, TS_TIMER, timestamp timer overflow interrupt Errata type: Errata Description: The TS_TIMER interrupt signal is not connected to the NVIC and will not generate an interrupt event. This interrupt is set when the 1588 counter matches the period register. Workaround: One of the 1588 counter channels can be configured in output compare software-only mode to generate the periodic interrupt events. This can be used to generate a counter periodic interrupt: Initialize the timer: 1) Set the ENET_ATPER to the desired value 2) Set the ENET_ATINC register to match the selected 1588 clock. 3) Set the ENET_TCCRn register with ENET_ATPER – ENET_ATINC[INC] value. The ENET_ATINC[INC] offset is needed to match the internal 1588 clock synchronization. 4) Set the ENET_TCSRn[TMODE] register with the 0100 encoding for output compare software-only mode and the ENET_TCSRn[TIE] to enable the timer interrupt. 5) Set the ENET_TCCRn register again with ENET_ATPER – ENET_ATINC[INC] value because output compare value is double buffered. 6) Set the ENET_ATCR[PEREN] to enable periodical event and set the ENET_ATCR[EN] to start the timer Configure inside the ISR: 1) 1588 interrupts are generated via the NVIC vector 91 using the periodic timer. For each interrupt event, load the output compare buffer (ENET_TCCRn register) with ENET_ATPER – ENET_ATINC[INC] value. 2) Clear ENET_TCSRn[TF] flag 3) Clear ENET_TGSRn respective channel flag. e6358: ENET: Write to Transmit Descriptor Active Register (ENET_TDAR) is ignored Errata type: Errata Description: If the ready bit in the transmit buffer descriptor (TxBD[R]) is previously detected as not set during a prior frame transmission, then the ENET_TDAR[TDAR] bit is cleared at a later time, even if additional TxBDs were added to the ring and the ENET_TDAR[TDAR] bit is set. This results in frames not being transmitted until there is a 0-to-1 transition on ENET_TDAR[TDAR]. Workaround: Code can use the transmit frame interrupt flag (ENET_EIR[TXF]) as a method to detect whether the ENET has completed transmission and the ENET_TDAR[TDAR] has been cleared. If ENET_TDAR[TDAR] is detected as cleared when packets are queued and waiting for transmit, then a write to the TDAR bit will restart TxBD processing. e2687: FMC: Flash clock divider setting for divide-by-1 not allowed Errata type: Errata Mask Set Errata for Mask 4N30D, Rev 07 AUG 2013 4 Freescale Semiconductor, Inc. Description: If the Flash clock divider is set for divide-by-1 and a system reset occurs the Flash may be clocked at too high a frequency (>25MHz) and the system may access bad data from the Flash array during reset recovery sequencing. Workaround: The Flash Controller should enable buffering to offset improve performance when Flash clock is configured for divide-by-2 or greater. e2590: FMC: Master Access Protection encoding for write only access does not work as specified. Errata type: Errata Description: The Access Protection Register (FMC_PFAPR) in the Flash Memory Controller provides write and/or read access control to the FlexRAM space on a per master granularity. The eight two bit Master Access Protection fields in the FMC_PFAPR are encoded as follows: 00 - No access may be performed by this master 01 - Read only accesses may be performed by this master 10 - Write only accesses may be performed by this master 11 - Read and Write accesses may be performed by this master The "10" encoding (write only accesses) does not work as specified. This encoding blocks all accesses. So, the "10" encoding functions the same as the "00" encoding. Due to this error, it is not possible to designate the FMC memory space as "write only" for any master. Note that the only writable portion of the FMC memory space is the FlexRAM space. Workaround: The "11" encoding, allowing read and write accesses, must be programmed to allow writes for a given master. e6189: FTFL: ERSSRC (Erase Sector) command does not change the Swap System status from UPDATE to UPDATE-ERASED on devices in this product family with 256KB of total P-Flash. Errata type: Errata Description: The Swap System flow requires a transition from UPDATE to UPDATE-ERASED state. This is typically accomplished using either the ERSBLK (Erase Block) or ERSSCR (Erase Sector) command to erase the Swap Indicator address in the non-active P-Flash block. However, on devices with 256 KB of P-Flash, the ERSSCR (Erase Sector) command is not correctly transitioning the Swap System to the UPDATE-ERASED state. The Swap System must be in the UPDATE-ERASED state in order to use the Swap command to transition to the COMPLETE state which enables the Swap System to "swap" flash blocks on a subsequent reset. Workaround: There are two options to get the Swap System into the UPDATE-ERASED state. Option 1. Use the ERSBLK (Erase Block) command to erase the Swap Indicator address and transition the Swap System into the UPDATE-ERASED state. This option requires the user to reprogram their software application into the non-active P-Flash block after erasing the block. Mask Set Errata for Mask 4N30D, Rev 07 AUG 2013 Freescale Semiconductor, Inc. 5 Option 2. If option 1 is undesirable, you can still use the ERSSCR command to erase the Swap Indicator address in the non-active block. However, a System Reset must then be issued to force the transition of the Swap System to the UPDATE-ERASED state. The System Reset can be initiated by software via the SYSRESETREQ bit in the NVIC application interrupt and reset control register. e3372: FTFL: Reset during an EEE program operation may result in an invalid EEE read access Errata type: Errata Description: In rare occurrences, a reset during an EEE program operation may result in invalid EEE read access. Workaround: Avoid a reset during EEE programming. e5751: FTFx: Launching the Read 1's Section command (RD1SEC) on an entire flash block results in access error (ACCER). Errata type: Errata Description: FTFx: Launching the Read 1's Section command on an entire flash block (i.e. with flash address = flash block base address & number of longwords = total number of longwords in the flash block) results in an incorrectly asserted access error (ACCER). Workaround: To verify an entire flash block, use the Read 1's Block command. Use the Read 1's Section command only to verify sections that are smaller than an entire flash block. e5706: FTFx: MCU security is inadvertently enabled (secured) if a mass erase is executed when the flash blocks/halves are swapped. This issue only affects applications that use the flash swap feature. Errata type: Errata Description: When the logical addresses of the flash blocks (halves) are swapped via the flash swap control command sequence and a mass erase is executed (via the MDM-AP or EzPort), the MCU security can go from un-secure to secure. Thus, when using a debugger to erase the entire flash memory and re-download a software application, the debugger may report that the device is secure after the erase completes. This issue only affects applications that use the flash swap feature. Workaround: Issue the mass erase request (via the MDM-AP or EzPort) a second time to un-secure the device. e2781: FlexBus: False bus error on back-to-back writes when flash memory is secure Errata type: Errata Mask Set Errata for Mask 4N30D, Rev 07 AUG 2013 6 Freescale Semiconductor, Inc. Description: During back-to-back writes, the FlexBus incorrectly responds with a bus error on the second write when both of these conditions apply: the flash memory is secure (per the value of the FTFL module's FSEC[SEC] field), and the SIM's SOPT2[FBSL] field is 10b. This setting of the SOPT2[FBSL] field disallows instruction accesses but allows data accesses on the FlexBus interface when the flash memory is secure. Workaround: When the flash memory is secure and FlexBus instruction accesses are inhibited but data accesses are allowed, do not use back-to-back writes. Insert a delay or NOP instruction between the write operations. e2616: FlexCAN: Module receives data frames sent by itself although the self reception feature is disabled Errata type: Errata Description: The FlexCAN receives frames transmitted by itself although the self reception feature is disabled (MCR[SRX_DIS] is asserted). As a result, the transmitted data is moved into Mailbox and the IFLAG is asserted. The error occurs when there is at least one reception Mailbox whose ID matches a frame that is being transmitted and the FlexCAN requests Freeze mode during the frame transmission. The occurrence of this error depends on the software strategy used to request Freeze Mode and how often Freeze Mode is requested during module operation. Workaround: If the self reception feature is disabled (MCR[SRX_DIS] = 1), in order to avoid receiving a self transmitted frame, Freeze Mode should only be requested when all Mailboxes that are configured as TX have been transmitted or aborted. e3402: GPIO: XTAL pin cannot be used as GPIO if the ERCLKEN bit is set. Errata type: Errata Description: XTAL pin cannot be used as GPIO if the ERCLKEN bit is set. Errata applies only when an external clock is being used (the crystal oscillator is not being used) and OSC_CR[ERCLKEN] bit set to 1. In this specific case, the analog block of the crystal oscillator is enabled and the oscillator output is driving the XTAL pin even if the respective pin control register has been configured as a GPIO. This prevents the pin from being used as either an input or an ouput. Workaround: If an external clock is not being used, then the OSCERCLK is not available and there is no need to set the ERCLKEN bit. If the ERCLKEN bit is not set then the XTAL pin can be used as a GPIO. If an external clock is being used but the OSCERCLK is not required, then the ERCLKEN bit should not be set and the XTAL pin can be used as a GPIO. If an external clock is being used and the OSCERCLK is required and the ERCLKEN bit is set, then there is no workaround and the XTAL pin cannot be used as a GPIO. e2793: I2C: MCU does not wake as expected from STOP or VLPS mode on subsequent address matches if previous address is mismatched Errata type: Errata Mask Set Errata for Mask 4N30D, Rev 07 AUG 2013 Freescale Semiconductor, Inc. 7 Description: The I2C module, acting as a slave on the I2C bus, does not wake as expected from normal STOP mode or VLPS mode on a valid address match if the previous address was not a match. When the external I2C master sends a non-matching address, the I2C slave state machine does not look for a start bit past the first start bit on the bus. Consequently, subsequent transmissions by the I2C master with a matching address do not, on the first matching address, wake the MCU from stop mode or VLPS via the I2C interrupt. Workaround: There are multiple workarounds: (1) The master must continually re-transmit the MCU's slave address upon not receiving a NACK from the slave device during the slave addressing phase of the transmission. For clarification, the master must perform the following: a) Send slave device address b) Check for ACK bit c) If ACK was received, continue with data transmission. Else, send repeated start signal and repeat steps a-c. NOTE: Due to the nature of the errata, the maximum number of retransmissions needed to wake the part is nine times. (2) When the MCU, operating as an I2C slave, is in STOP or VLPS mode: Ensure that the external I2C master sends a matching address to wake the slave MCU before it sends any transaction to other I2C slaves. The user must also ensure that MCU does not return to STOP or VLPS until after all packets to non-matching addresses have been sent. (3) Use a pin interrupt (any pin, whether that pin is or is not being used by the active I2C module) to wake up the part before receiving I2C packets. NOTE: If using the SDA or SCL pin that the active I2C module is using, the part will wake-up on every I2C transaction on the bus. (4) Use Wait mode instead of STOP or VLPS mode. e3795: I2S: Fractional divider in SIM_CLKDIV2 is not reset when recovering from VLLSx low power modes Errata type: Errata Description: The Fractional divider in the SIM_CLKDIV2 register is not reset when recovering from VLLSx low power modes. Workaround: In order to reset the Fractional divider when recovering from VLLSx low power modes, the I2S clock gate must be enabled, then disabled, and re-enabled after exiting any VLLSx mode. e3714: I2S: MCLK output is disabled in asynchronous mode Errata type: Errata Description: When using I2S MCLK output in asynchronous mode, the output is disabled. Workaround: In order to output MCLK, use synchronous mode (I2Sx_CR[SYN]) along with setting the transmit direction to use an internally generated clock output through the serial transmit clock port (I2Sx_TCR[TXDIR]). Mask Set Errata for Mask 4N30D, Rev 07 AUG 2013 8 Freescale Semiconductor, Inc. e2674: LLWU: The LLWU glitch filter for pin and reset is not supported Errata type: Errata Description: LLWU glitch filter for pin and reset is not supported. Do not enable the filters. Writing a 1 to FLTEP or FLTR bits in the LLWU_CS register will result in abnormal LLWU behavior. Workaround: It is recommended that the glitch filter functionality is not used. Always write a zero to the FLTEP or FLTR bits in the LLWU_CS register. If filtering is required, external components or software filters are required. e2678: MC: The MC_SRS[PIN] is not always set after exiting a VLLS mode due to a RESET pin assertion Errata type: Errata Description: When waking the device from VLLS low power modes via a RESET pin, the MC_SRSL[PIN] bit is not reliably set on recovery and cannot be used to differentiate VLLS wakeup from the RESET pin from other low power mode wakeup sources enabled in the LLWU module. This condition is encountered when the device is in a VLLS low power mode and the RESET pin is held asserted for greater than 100us to initiate a VLLS wakeup. Workaround: When using the RESET pin as a wakeup trigger for exit from VLLS, ensure that the wakeup pulse is short in duration (<100us). An alternate workaround is to only use the MC_SRS[WAKEUP] bit to indicate VLLS exit recoveries and reset initialization routines to not distinguish between RESET pin triggered recoveries and other sources of VLLS wakeup. e2676: MC: When waking the system from VLLS modes via a RESET pin, the I/O are not immediately released to their reset state. Errata type: Errata Description: When waking the system from VLLS modes via a RESET pin, the I/O are not immediately released to their reset state. Workaround: The reset initialization/recovery software must set the LLWU_CS[ACKISO] bit just as it would due to a low power wakeup via any of the other low power mode wakeup sources. e6665: Operating requirements: Limitation of the device operating range Errata type: Errata Description: Some devices, when power is applied, may not consistently begin to execute code under certain voltage and temperature conditions. Applications that power up with either VDD >= 2.0 V or temperature >= -20C are not impacted. Entry and exit of low-power modes is not impacted. Workaround: To avoid this unwanted behavior, one or both of these conditions must be met: a) Perform power on reset of the device with a supply voltage (VDD) equal-to or greater-than 2.0 V , or Mask Set Errata for Mask 4N30D, Rev 07 AUG 2013 Freescale Semiconductor, Inc. 9 b) Perform power on reset of the device at a temperature at or above -20 C. e6328: PMC: Incorrect exit from VLLSx modes Errata type: Errata Description: When VDD < 1.9V, device may not return to run mode when exiting VLLSx modes. The device will remain in a non-operational state until VDD is lowered to force either an low-voltage detect (LVD) reset or a power-on-reset (POR) event. Workaround: Either use VLLSx with VDD > 1.9V or use another low power mode such as LLS. e4482: PMC: STOP mode recovery unstable Errata type: Errata Description: Recovery from STOP mode is not guaranteed if STOP mode is used for a period of time longer than 50ms. Workaround: There are two methods that can be used: 1. Use a different low power mode such as VLPS. 2. Periodically exit STOP mode every 50ms and wait 16us before entering STOP mode again. e2542: PMC: Very Low Power Run (VLPR) and Very Low Power Wait (VLPW) power modes are not supported Errata type: Errata Description: Very Low Power Run (VLPR) and Very Low Power Wait (VLPW) power modes are not supported. Workaround: Do not use the part in these two power modes. e2576: RTC: When the RTC is configured to allow supervisor access only, the write and read access registers can be modified in user mode Errata type: Errata Description: When the RTC is configured to allow supervisor access only, the write and read access registers can be modified in user mode. A bus error is still generated. Workaround: RTC supervisor mode access only option is not supported. e4949: Reset and Boot: Device may not exit the power on reset (POR) event correctly with fast ramp-up slew rates. Errata type: Errata Description: Device may not exit the power on reset (POR) event correctly when the Vdd ramp-up slew rate is greater than 17 kV/sec as VDD is raised from 0V to 1.7V. Mask Set Errata for Mask 4N30D, Rev 07 AUG 2013 10 Freescale Semiconductor, Inc. Workaround: Keep instantaneous slew rate of VDD below 17 kV/sec. Status: This errata will be fixed on future mask sets. e3981: SDHC: ADMA fails when data length in the last descriptor is less or equal to 4 bytes Errata type: Errata Description: A possible data corruption or incorrect bus transactions on the internal AHB bus, causing possible system corruption or a stall, can occur under the combination of the following conditions: 1. ADMA2 or ADMA1 type descriptor 2. TRANS descriptor with END flag 3. Data length is less than or equal to 4 bytes (the length field of the corresponding descriptor is set to 1, 2, 3, or 4) and the ADMA transfers one 32-bit word on the bus 4. Block Count Enable mode Workaround: The software should avoid setting ADMA type last descriptor (TRANS descriptor with END flag) to data length less than or equal to 4 bytes. In ADMA1 mode, if needed, a last NOP descriptor can be appended to the descriptors list. In ADMA2 mode this workaround is not feasible due to ERR003983. e3982: SDHC: ADMA transfer error when the block size is not a multiple of four Errata type: Errata Description: Issue in eSDHC ADMA mode operation. The eSDHC read transfer is not completed when block size is not a multiple of 4 in transfer mode ADMA1 or ADMA2. The eSDHC DMA controller is stuck waiting for the IRQSTAT[TC] bit in the interrupt status register. The following examples trigger this issue: 1. Working with an SD card while setting ADMA1 mode in the eSDHC 2. Performing partial block read 3. Writing one block of length 0x200 4. Reading two blocks of length 0x22 each. Reading from the address where the write operation is performed. Start address is 0x512 aligned. Watermark is set as one word during read. This read is performed using only one ADMA1 descriptor in which the total size of the transfer is programmed as 0x44 (2 blocks of 0x22). Workaround: When the ADMA1 or ADMA2 mode is used and the block size is not a multiple of 4, the block size should be rounded to the next multiple of 4 bytes via software. In case of write, the software should add the corresponding number of bytes at each block end, before the write is initialized. In case of read, the software should remove the dummy bytes after the read is completed. For example, if the original block length is 22 bytes, and there are several blocks to transfer, the software should set the block size to 24. The following data is written/stored in the external memory: 4 Bytes valid data Mask Set Errata for Mask 4N30D, Rev 07 AUG 2013 Freescale Semiconductor, Inc. 11 4 Bytes valid data 4 Bytes valid data 4 Bytes valid data 4 Bytes valid data 2 Bytes valid data + 2 Byte dummy data 4 Bytes valid data 4 Bytes valid data 4 Bytes valid data 4 Bytes valid data 4 Bytes valid data 2 Bytes valid data + 2 Byte dummy data In this example, 48 (24 x 2) bytes are transferred instead of 44 bytes. The software should remove the dummy data. e4624: SDHC: AutoCMD12 and R1b polling problem Errata type: Errata Description: Occurs when a pending command which issues busy is completed. For a command with R1b response, the proper software sequence is to poll the DLA for R1b commands to determine busy state completion. The DLA polling is not working properly for the ESDHC module and thus the DLA bit in PRSSTAT register cannot be polled to wait for busy state ompletion. This is relevant for all eSDHC ports (eSDHC1-4 ports). Workaround: Poll bit 24 in PRSSTAT register (DLSL[0] bit) to check that wait busy state is over. e3977: SDHC: Does not support Infinite Block Transfer Mode Errata type: Errata Description: The eSDHC does not support infinite data transfers, if the Block Count register is set to one, even when block count enable is not set. Workaround: The following software workaround can be used instead of the infinite block mode: 1. Set BCEN bit to one and enable block count 2. Set the BLKCNT to the maximum value in Block Attributes Register (BLKATTR) (0xFFFFfor 65535 blocks) e4627: SDHC: Erroneous CMD CRC error and CMD Index error may occur on sending new CMD during data transfer Errata type: Errata Mask Set Errata for Mask 4N30D, Rev 07 AUG 2013 12 Freescale Semiconductor, Inc. Description: When sending new, non data CMD during data transfer between the eSDHC and EMMC card, the module may return an erroneous CMD CRC error and CMD Index error. This occurs when the CMD response has arrived at the moment the FIFO clock is stopped. The following bits after the start bit of the response are wrongly interpreted as index, generating the CRC and Index errors. The data transfer itself is not impacted. The rate of occurrence of the issue is very small, as there is a need for the following combination of conditions to occur at the same cycle: • The FIFO clock is stopped due to FIFO full or FIFO empty • The CMD response start bit is received Workaround: The recommendation is to not set FIFO watermark level to a too small value in order to reduce frequency of clock pauses. The problem is identified by receiving the CMD CRC error and CMD Index error. Once this issue occurs, one can send the same CMD again until operation is successful. e3980: SDHC: Glitch is generated on card clock with software reset or clock divider change Errata type: Errata Description: A glitch may occur on the SDHC card clock when the software sets the RSTA bit (software reset) in the system control register. It can also be generated by setting the clock divider value. The glitch produced can cause the external card to switch to an unknown state. The occurrence is not deterministic. Workaround: A simple workaround is to disable the SD card clock before the software reset, and enable it when the module resumes the normal operation. The Host and the SD card are in a masterslave relationship. The Host provides clock and control transfer across the interface. Therefore, any existing operation is discarded when the Host controller is reset. The recommended flow is as follows: 1. Software disable bit[3], SDCLKEN, of the System Control Register 2. Trigger software reset and/or set clock divider 3. Check bit[3], SDSTB, of the Present State Register for stable clock 4. Enable bit[3], SDCLKEN, of the System Control Register. Using the above method, the eSDHC cannot send command or transfer data when there is a glitch in the clock line, and the glitch does not cause any issue. e3983: SDHC: Problem when ADMA2 last descriptor is LINK or NOP Errata type: Errata Description: ADMA2 mode in the eSDHC is used for transfers to/from the SD card. There are three types of ADMA2 descriptors: TRANS, LINK or NOP. The eSDHC has a problem when the last descriptor (which has the End bit '1') is a LINK descriptor or a NOP descriptor. In this case, the eSDHC completes the transfers associated with this descriptor set, whereas it does not even start the transfers associated with the new data command. For example, if a WRITE transfer operation is performed on the card using ADMA2, and the last descriptor of Mask Set Errata for Mask 4N30D, Rev 07 AUG 2013 Freescale Semiconductor, Inc. 13 the WRITE descriptor set is a LINK descriptor, then the WRITE is successfully finished. Now, if a READ transfer is programmed from the SD card using ADMA2, then this transfer does not go through. Workaround: Software workaround is to always program TRANS descriptor as the last descriptor. e3978: SDHC: Software can not clear DMA interrupt status bit after read operation Errata type: Errata Description: After DMA read operation, if the SDHC System Clock is automatically gated off, the DINT status can not be cleared by software. Workaround: Set HCKEN bit before starting DMA read operation, to disable SDHC System Clock autogating feature; after the DINT and TC bit received when read operation is done, clear HCKEN bit to re-enable the SDHC System Clock auto-gating feature. e3984: SDHC: eSDHC misses SDIO interrupt when CINT is disabled Errata type: Errata Description: An issue is identified when interfacing the SDIO card. There is a case where an SDIO interrupt from the card is not recognized by the hardware, resulting in a hang. If the SDIO card lowers the DAT1 line (which indicates an interrupt) when the SDIO interrupt is disabled in the eSDHC registers (that is, CINTEN bits in IRQSTATEN and IRQSIGEN are set to zero), then, after the SDIO interrupt is enabled (by setting the CINTEN bits in IRQSTATEN and IRQSIGEN registers), the eSDHC does not sense that the DAT1 line is low. Therefore, it fails to set the CINT interrupt in IRQSTAT even if DAT1 is low. Generally, CINTEN bit is disabled in interrupt service. The SDIO interrupt service steps are as follows: 1. Clear CINTEN bit in IRQSTATEN and IRQSIGEN. 2. Reset the interrupt factors in the SDIO card and write 1 to clear the CINT interrupt in IRQSTAT. 3. Re-enable CINTEN bit in IRQSTATEN and IRQSIGEN. If a new SDIO interrupt from the card occurs between step 2 and step 3, the eSDHC skips it. Workaround: The workaround interrupt service steps are as follows: 1. Clear CINTEN bit in IRQSTATEN and IRQSIGEN. 2. Reset the interrupt factors in the SDIO card and write 1 to clear CINT interrupt in IRQSTAT. 3. Clear and then set D3CD bit in the PROCTL register. Clearing D3CD bit sets the reverse signal of DAT1 to low, even if DAT1 is low. After D3CD bit is re-enabled, the eSDHC can catch the posedge of the reversed DAT1 signal, if the DAT1 line is still low. 4. Re-enable CINTEN bit in IRQSTATEN and IRQSIGEN. e5708: SLCD: LCD waveforms can exceed voltage specification for 3V or 5V glass Errata type: Errata Mask Set Errata for Mask 4N30D, Rev 07 AUG 2013 14 Freescale Semiconductor, Inc. Description: The LCD controller power supply can be sourced using VDD, internal regulated voltage VIREG, or an external supply on the VLL3. Using the internal Vireg (VSUPPLY[1:0] = 11, LCD_GCR [RVEN] = 1, and LCD_GCR[CPSEL] =1) to generate the LCD bias voltages can cause the generated LCD waveform voltages to go out of specification for 3V and 5V glass. For LCD_GCR[HREFSEL] = 0, Vireg = 1V, but bias voltages can exceed specificationVLL1 > 1V, VLL2 > 2V, and VLL3 >3V. For LCD_GCR[HREFSEL] = 1 Vireg = 1.67V, but the bias voltages can exceed specification VLL1>1.67, VLL2 >3.3V, and VLL3>5V. Workaround: Use an alternate LCD power supply configuration. 1. Vdd can be used as the LCD controller power supply. a. For VSUPPLY[1:0] = 00 and LCD_GCR[CPSEL1] = 1, Vdd is used to drive VLL2. For 3V glass Vdd must be 2V and for 5V glass Vdd must be 3.3V. b. For VSUPPLY[1:0] = 01 and LCD_GCR[CPSEL1] = 1, Vdd is used to drive VLL3. For 3V glass Vdd must be 3V and for 5V glass Vdd must be 5V. 2. Drive VLL3 with an external supply VSUPPLY[1:0] = 11 and LCD_GCR [RVEN] = 0. a. For 3V glass VLL3 must equal 3V. The resistor bias network or charge pump can be used to generate VLL1 and VLL2. Note, VLL3 should never be externally driven to any level other than VDD. e2591: TSI: TSI_SCANC[SMOD] behaves as an inactive time instead of a scan period value Errata type: Errata Description: TSI_SCANC[SMOD] should configure the scanning interval. TSI_SCANC[SMOD] interacts with the TSI_SCANC[AMCLKS] prescaler to configure this interval: Reference clock -> AMCLKS -> SMOD. So the interval frequency should be: Reference clock / AMCLKS prescaler / SMOD. However, it is working as an inactive time. Therefore, when an SMOD value is configured, the TSI will scan all the enabled electrodes and then be inactive for as much time as the SMOD and AMCLKS registers are configured. Workaround: TSI_SCANC[SMOD] is designed to provide a predictable and configurable scanning interval. Depending on the scenario, there are three possible workarounds: 1. When SMOD = 0, the TSI will continuously scan without a pause between scans. This scan time is dependent on the electrode capacitance value and the current configured for the electrode. If the application will use only the out-of-range interrupt and it is not necessary to continually log each measured value after each scan, then an adequate threshold configuration and SMOD = 0 will cause the TSI to only interrupt or enable the out-of-range flag whenever there is a touch detected. 2. Manually control scanning time: use a time base to trigger single scans with the TSI_GENCS[SWTS] bit with the desired period. This workaround is recommended when a stable, predictable scan period is desired. 3. Use SMOD as a complement to the scanning time. The scanning time depends on the capacitance of the external electrodes. As mentioned above, the SMOD will currently control how much time the TSI is inactive after a scan so assumming the normal scan and the inactive time SMOD is currently determining will give a variable scanning period. If the application doesn't require an exact scanning period, this mode is recommended because adding inactive time after each scan will save power between scans. Mask Set Errata for Mask 4N30D, Rev 07 AUG 2013 Freescale Semiconductor, Inc. 15 e2638: TSI: The counter registers are not immediately updated after the EOSF bit is set. Errata type: Errata Description: The counter registers are not immediately updated after the end of scan event (EOSF is set). The counter registers will become available 0.25 ms after the EOSF flag is set. This also applies for the end-of-scan interrupt, as it is triggered with the EOSF flag. This behavior will occur both in continuous scan and in software triggered scan modes. Workaround: Insert a delay of 0.25 ms or greater prior to accessing the counter registers after an end of scan event or an end of scan interrupt that is triggered by the EOSF flag. This delay does not need to be a blocking delay, so it can be executing other actions before reading the counter registers. Notice that the out-of-range flag (OUTRGF) and interrupt occur after the counters have been updated, so if the OUTRGF flag is polled or the out-of-range interrupt is used, the workaround is not necessary. e2582: UART: Flow control timing issue can result in loss of characters Errata type: Errata Description: When /RTS flow control signal is used in receiver request-to-send mode, the /RTS signal is negated if the number of characters in the Receive FIFO is equal to or greater than the receive watermark. The /RTS signal will not negate until after the last character (the one that makes the condition for /RTS negation true) is completely received and recognized. This creates a delay between the end of the STOP bit and the negation of the /RTS signal. In some cases this delay can be long enough that a transmitter will start transmission of another character before it has a chance to recognize the negation of the /RTS signal (the /CTS input to the transmitter). Workaround: For UARTs that implement an eight entry FIFO: When the FIFO is enabled, the receive watermark should be set to seven or less. This will ensure that there is space for at least one more character in the FIFO when /RTS negates. So in this case no data would be lost. For UARTs without a FIFO (or if the FIFO is disabled): Delay might need to be added between characters on the transmit side in order to allow time for the negation of /RTS to be recognized before the next character is sent. e4945: UART: ISO-7816 T=1 mode receive data format with a single stop bit is not supported Errata type: Errata Description: Transmission of ISO-7816 data frames with single stop bit is supported in T=1 mode. Currently in order to receive a frame, two or more stop bits are required. This means that 11 ETU reception based on T=1 protocol is not supported. T=0 protocol is unaffected. Workaround: Do not send T=1, 11 ETU frames to the UART in ISO-7816 mode. Use 12 ETU transmissions for T=1 protocol instead. e3892: UART: ISO-7816 automatic initial character detect feature not working correctly Errata type: Errata Mask Set Errata for Mask 4N30D, Rev 07 AUG 2013 16 Freescale Semiconductor, Inc. Description: The ISO-7816 automatic initial character detection feature does not work. The direct convention initial character can be detected correctly, but the inverse convention initial character will only be detected if the S2[MSBF] and S2[RXINV] bits are set. This defeats the purpose of the initial character detection and automatic configuration of the S2[MSBF], S2[RXINV], and C3[TXINV] bits. Workaround: Use software to manually detect initial characters. Configure the UART with S2[MSBF] and S2[RXINV] cleared. Then check UART receive characters looking for 0x3B or 0x03. If 0x3B is received, then the connected card is direct convention. If 0x03 is received, then the connected card is inverse convention. If an inverse convention card is detected, then software should set S2[MSBF], S2[RXINV], and C3[TXINV]. e2584: UART: Possible conflicts between UART interrupt service routines and DMA requests Errata type: Errata Description: If the UARTn_S1[RDRF] and/or UARTn_S1[TDRE] flags are being used to generate DMA requests, there is a possible conflict that could occur if an interrupt service routine (ISR) or other code is used to clear any of the other flags in the UARTn_S1 register. The flags in the UARTn_S1 register use a side effect clearing mechanism where the procedure is to read the status register and then perform a read or write of the data register to clear the flag. If a DMA request for a flag bit is asserted while an ISR for another flag bit is executing, then in the process of clearing the ISR's flag bit, the ISR can also clear the flag bit for the DMA request, thereby negating the DMA request before the DMA responds to it. This could potentially cause servicing of the DMA event to be missed. For example, assume a DMA request is being asserted for the RDRF flag. At the same time, the parity error flag (PF) sets and triggers an ISR. To clear the PF flag bit, the ISR must read the status register and read the data register. In the process, the RDRF flag would also be cleared, causing the DMA request to negate. If the DMA request asserts after the DMA has already prepared its next transfer, then it might still read from the data register, potentially causing an underflow. Workaround: When possible, avoid enabling the UART for DMA requests and interrupts simultaneously. If error interrupts are needed while DMA requests are active, then the error ISR can be used to abort the current DMA transfer (by disabling the DMA request inside the UART and/or disabling the external request for the DMA channel) before clearing any error flags in the UARTn_S1 register. e5704: UART: TC bit in UARTx_S1 register is set before the last character is sent out in ISO7816 T=0 mode Errata type: Errata Description: When using the UART in ISO-7816 mode, the UARTx_S1[TC] flag sets after a NACK is received, but before guard time expires. Workaround: If using the UART in ISO-7816 mode with T=0 and a guard time of 12 ETU, check the UARTn_S1[TC] bit after each byte is transmitted. If a NACK is detected, then the transmitter should be reset. The recommended code sequence is: UART0_C2 &= ~UART_C2_TE_MASK; //make sure the transmitter is disabled at first Mask Set Errata for Mask 4N30D, Rev 07 AUG 2013 Freescale Semiconductor, Inc. 17 UART0_C3 |= UART_C3_TXDIR_MASK; //set the TX pin as output UART0_C2 |= UART_C2_TE_MASK; //enable TX UART0_C2 |= UART_C2_RE_MASK; //enable RX to detect NACK for(i=0;i<length;i++) { while(!(UART0_S1&UART_S1_TDRE_MASK)){} UART0_D = data[i]; while(!(UART0_S1&UART_S1_TC_MASK)){}//check for NACK if(UART0_IS7816 & UART_IS7816_TXT_MASK)//check if TXT flag set { /* Disable transmit to clear the internal NACK detection counter */ UART0_C2 &= ~UART_C2_TE_MASK; UART0_IS7816 = UART_IS7816_TXT_MASK;// write one to clear TXT UART0_C2 |= UART_C2_TE_MASK; // re-enable transmit } } UART0_C2 &= ~UART_C2_TE_MASK; //disable after transmit e5928: USBOTG: USBx_USBTRC0[USBRESET] bit does not operate as expected in all cases Errata type: Errata Description: The USBx_USBTCR0[USBRESET] bit is not properly synchronized. In some cases using the bit can cause the USB module to enter an undefined state. Workaround: Do not use the USBx_USBTCR0[USBRESET] bit. If USB registers need to be written to their reset states, then write those registers manually instead of using the module reset bit. e3796: USBREG: Cannot use USB Regulator standby mode when output is powering MCU via VDD. Errata type: Errata Description: Cannot use USB Regulator standby mode when output is powering MCU via VDD. Workaround: This feature is not supported. e2686: WDOG: A watchdog reset while the system is in STOP or VLPS modes causes an incorrect wakeup sequence Errata type: Errata Description: A watchdog reset while the system is in STOP or VLPS modes causes an incorrect wakeup sequence Mask Set Errata for Mask 4N30D, Rev 07 AUG 2013 18 Freescale Semiconductor, Inc. Workaround: The watchdog should not be configured to continue operation when the system has entered STOP or VLPS. Mask Set Errata for Mask 4N30D, Rev 07 AUG 2013 Freescale Semiconductor, Inc. 19 How to Reach Us: Home Page: freescale.com Web Support: freescale.com/support Information in this document is provided solely to enable system and software implementers to use Freescale products. There are no express or implied copyright licenses granted hereunder to design or fabricate any integrated circuits based on the information in this document. Freescale reserves the right to make changes without further notice to any products herein. Freescale makes no warranty, representation, or guarantee regarding the suitability of its products for any particular purpose, nor does Freescale assume any liability arising out of the application or use of any product or circuit, and specifically disclaims any and all liability, including without limitation consequential or incidental damages. “Typical” parameters that may be provided in Freescale data sheets and/or specifications can and do vary in different applications, and actual performance may vary over time. All operating parameters, including “typicals,” must be validated for each customer application by customer's technical experts. Freescale does not convey any license under its patent rights nor the rights of others. Freescale sells products pursuant to standard terms and conditions of sale, which can be found at the following address: freescale.com/ SalesTermsandConditions. Freescale, the Freescale logo, AltiVec, C-5, CodeTest, CodeWarrior, ColdFire, ColdFire+, C-Ware, Energy Efficient Solutions logo, Kinetis, mobileGT, PowerQUICC, Processor Expert, QorIQ, Qorivva, StarCore, Symphony, and VortiQa are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. Airfast, BeeKit, BeeStack, CoreNet, Flexis, Layerscape, MagniV, MXC, Platform in a Package, QorIQ Qonverge, QUICC Engine, Ready Play, SafeAssure, SafeAssure logo, SMARTMOS, Tower, TurboLink, Vybrid, and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2013 Freescale Semiconductor, Inc.