Teensy 3.x SPI hardware bugs - trying to get an overview

Status
Not open for further replies.

christoph

Well-known member
Back then there was a bug in the Teensy 3.0 chip which made the SPI's hardware chip select pins useless for DMA usage. IIRC I read somewhere here that this has changed in newer chips.

Does anyone have an overall picture of the situation? Which hardware SPI features (especially chip select) work with DMA, which don't?
 
This is the oldest errata for the original Teensy 3.0, using the oldest 1N86B silicon rev.

I don't see SPI mentioned. But that chip did have a DMA scatter-gather bug, which has been fixed in the newer chips.
 

Attachments

  • KINETIS50MHZ_1N86B_10may12.pdf
    121.4 KB · Views: 146
Something must be different between T3.5 and 3.6, too
If I remember correctly, I was not successful to get the video for ILI9341-SPI-DMA running last year and had wandering pixels. I've never found the reason. Code identical - worked on 3.6, problems on 3.5 - same F_CPU.
 
There are some obvious differences between the different chips with their usage of DMA and SPI... I remember running into different behavior depending on the different chips.

Again from memory... More info in some of the other threads.

a) T3.5 - SPI1/SPI2 only have one DMA source for SPI, which can either be for Read or Write (both not both at same time)...

b) With T3.6 you could setup SPI dma transfers, where you could write 32 bits to the PUSHR register, which includes both your output as well as things like which CTAR to use and Chip select pins... But this does not work on T3.5 or 3.2...
 
Something must be different between T3.5 and 3.6, too

The DMA controller in Teensy 3.6 has 32 channels, twice as many as the other chips. The config register and channel priority stuff is arranged in 2 groups of 16. That's a pretty minor difference, but I remember during the beta test DMAChannel was broken on 3.6 until I put in a tiny bit of code to deal with those differences.
 
Status
Not open for further replies.
Back
Top