| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
Add support for the Kinetis SDHC peripheral
|
| |
| |
| |
| | |
Updated some comments and some trace statements.
|
| |
| |
| |
| |
| |
| |
| | |
a failed data transfer; translate card status bits into HLD error
bits. Set BLKATTR_BLKCNT even when it's not being used, which seems to
avoid errors when alternating between multi-block and single-block
transfers. Some comments.
|
| |
| |
| |
| | |
and other members of the Kinetis family.
|
|\ \
| | |
| | | |
Added support for additional UARTs (up to six on the K64F).
|
| |/
| |
| |
| |
| | |
Also moved some code that is duplicated per-UART into
local functions to reduce the amount of duplication.
|
|\ \
| | |
| | | |
Fix Kinetis usb databank synchronization problems
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
USB control transfers are structured as the following.
For incoming transfers
Setup (Data0 out)
Data (Data1/Data0 in) - starting with data 1
Status (Data1 out)
For outgoing transfers
Setup (Data0 out)
Data (Data1/Data0 out) - starting with data 1
Status (Data1 in)
The in buffers (device to host) are always correctly synchronized, since
they can always be reset to Data1 each setup packet without any
synchronization problems.
The problem occured for outgoing transfers (host to device). For
incoming transfers the data banks always alternates, and will
automatically stay in sync. Outgoing transfers also stays in sync when
there's an odd number of data packets. However when the number is even,
including zero, then the last packet received by the device will be
data0 and the next setup packet also has to be data0, so there's a
synchronization problem.
This itself is not a problem since data toggle synchronization(DTS) is
ignored for setup packets, however if the follwoing packet after that
is also an out packet, then the data bank will be wrong and the packet
dropped. In this case the USB spec don't allow sending a nack, so it
will only recover after a timeout, when the host tries to send a new
setup packet.
The old code tried to take care of this situation by reinitializing
both data banks when a setup packet is received. The problem is that the
next packet might already have been received or is in progress of being
received at this point, so the fixup comes to late. The new code does
the fixup when a status packet is about to be sent from the device to
avoid this problem.
|
| |/
|/| |
|
|/ |
|
| |
|
| |
|
|\
| |
| | |
[KINETIS] I2C update (timeouts, KL27Z)
|
| | |
|
| | |
|
| | |
|
| | |
|
|/ |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
New entries in kinetis_registry.h to support new MCUs.
Moved registers to ext/CMSIS, like it is done for STM32.
Move the same drivers to LLD.
Add USB driver.
|
|
|