Unless the load is being performed to Device or Strongly-Ordered memory, there should be no
implications from the repetition of the load. In the unlikely event that the load is being
performed to Device or Strongly-Ordered memory, the repeated read can result in the final
stack-pointer value being different than had only a single load been performed.
Interruption of the two write-back forms of the instruction can result in both the base register
value and final stack-pointer value being incorrect. This can result in apparent stack corruption
and subsequent unintended modification of memory.
Workaround: Both issues may be worked around by replacing the direct load to the stack-pointer, with an
intermediate load to a general-purpose register followed by a move to the stack-pointer.
If repeated reads are acceptable, then the base-update issue may be worked around by
performing the stack pointer load without the base increment followed by a subsequent ADD or
SUB instruction to perform the appropriate update to the base register.
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.
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].
Mask Set Errata for Mask 5N22D, Rev 19 DEC 2013
4 Freescale Semiconductor, Inc.
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.
e4710: FTM: FTMx_PWMLOAD register does not support 8-/16-bit accesses
Errata type: Errata
Description: The FTM PWM Load register should support 8-bit and 16-bit accesses. However, the
FTMx_PWMLOAD[LDOK] bit is cleared automatically by FTM with these sized accesses, thus
disabling the loading of the FTMx_MOD, FTMx_CNTIN, and FTMx_CnV registers.
Workaround: Always use a 32-bit write access to modify contents of the FTMx_PWMLOAD register.
e6484: FTM: The process of clearing the FTMx_SC[TOF] bit does not work as expected
under a certain condition when the FTM counter reaches FTM_MOD value.
Errata type: Errata
Description: The process of clearing the TOF bit does not work as expected when
FTMx_CONF[NUMTOF] != 0 and the current TOF count is less than FTMx_CONF[NUMTOF],
if the FTM counter reaches the FTM_MOD value between the reading of the TOF bit and the
writing of 0 to the TOF bit. If the above condition is met, the TOF bit remains set, and if the
TOF interrupt is enabled (FTMx_SC[TOIE] = 1), the TOF interrupt also remains asserted.
Workaround: Two possible workarounds exist for this erratum and the decision on which one to use is based
on the requirements of your particular application.
1) Repeat the clearing sequence mechanism until the TOF bit is cleared.
Below is a pseudo-code snippet that would need to be included in the TOF interrupt routine.
while (FTM_SC[TOF]!=0)
{
void FTM_SC() ; // Read SC register
FTM_SC[TOF]=0 ; // Write 0 to TOF bit
}
2) With FTMx_CONF[TOFNUM] = 0 and a variable in the software, count the number of times
that the TOF bit is set. In the TOF interrupt routine, clear the TOF bit and increment the
variable that counts the number of times that the TOF bit was set.
e5641: FlexCAN: Module does not transmit a message that is enabled to be
transmitted at a specific moment during the arbitration process.
Errata type: Errata
Description: FlexCAN does not transmit a message that is enabled to be transmitted in a specific moment
during the arbitration process. The following conditions are necessary to have the issue.
- Only one MB is configured to be transmitted
Mask Set Errata for Mask 5N22D, Rev 19 DEC 2013
Freescale Semiconductor, Inc. 5
- The write which enables the MB to be transmitted (write on Control status word) happens
during a specific clock during the arbitration process.
After this arbitration process occurs, the bus goes to Idle state and no new message is
received on bus.
For example:
1) MB13 is deactivated on RxIntermission (write 0x0 on CODE field from Control Status word)
- First write on CODE
2) Reconfigure the ID and data fields
3) Enable the MB13 to be transmitted on BusIdle (write 0xC on Code field) - Second write on
code
4) CAN bus keeps in Idle state
5) No write on Control status from any MB happens.
During the second write on code (step 3), the write must happen one clock before the current
MB13 is to be scanned by arbitration process. In this case, it does not detect the new code
(0xC) and no new arbitration is scheduled.
The problem can be detectable only if the message traffic ceases and the CAN bus enters into
Idle state after the described sequence of events.
There is NO ISSUE if any of the conditions below holds:
a) Any MB (either Tx or Rx) is reconfigured (by writing its CS field) just after the Intermission
field.
b) There is other configured MB to be transmitted
c) A new incoming message sent by any external node starts just after the Intermission field.
Workaround: To transmit a CAN frame, the CPU must prepare a Message Buffer for transmission by
executing the following standard 5 step procedure:
1. Check if the respective interrupt bit is set and clear it.
2. If the MB is active (transmission pending), write the ABORT code (0b1001) to the CODE
field of the Control and Status word to request an abortion of the transmission.Wait for the
corresponding IFLAG to be asserted by polling the IFLAG register or by the interrupt request if
enabled by the respective IMASK. Then read back the CODE field to check if the transmission
was aborted or transmitted. If backwards compatibility is desired (MCR[AEN] bit negated), just
write the INACTIVE code (0b1000) to the CODE field to inactivate the MB but then the pending
frame may be transmitted without notification.
3. Write the ID word.
4. Write the data bytes.
5. Write the DLC, Control and CODE fields of the Control and Status word to activate the MB.
The workaround consists of executing two extra steps:
6. Reserve the first valid mailbox as an inactive mailbox (CODE=0b1000). If RX FIFO is
disabled, this mailbox must be MB0. Otherwise, the first valid mailbox can be found by using
table "RX FIFO filters" on FlexCAN3 chapter.
7. Write twice INACTIVE code (0b1000) into the first valid mailbox.
Note: The first mailbox cannot be used for reception or transmission process.
Mask Set Errata for Mask 5N22D, Rev 19 DEC 2013
6 Freescale Semiconductor, Inc.

MK50DN512CLL10

Mfr. #:
Manufacturer:
NXP / Freescale
Description:
ARM Microcontrollers - MCU Kinetis 512K
Lifecycle:
New from this manufacturer.
Delivery:
DHL FedEx Ups TNT EMS
Payment:
T/T Paypal Visa MoneyGram Western Union