Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Teensy 3.6 #402

Merged
merged 4 commits into from
Feb 17, 2017
Merged

Teensy 3.6 #402

merged 4 commits into from
Feb 17, 2017

Conversation

kcouck
Copy link
Contributor

@kcouck kcouck commented Jan 15, 2017

Add support for ARM MK66FX1M0 processor in Teensy 3.6.
Probably works for MK64FX512 in Teensy 3.5 (same pin layout and SPI capabilities)

Only tested with WS2811 led strip (+ 16-way parallel)

@kcouck
Copy link
Contributor Author

kcouck commented Jan 20, 2017

The code was mostly copied from the k20.
The code for the k64 (Teensy 3.5) would almost be identical with the k66 code as well. I'd like to create some m4xxx files (like m0clockless) in the arm/common dir as well to group common code for the ARM Cortex-M4 line.
And maybe instead of creating 3 dirs (k20, k64, k66) for the remaining files, put the specific parts (mostly the pin mappings) into a "teensy" folder?

@focalintent
Copy link
Contributor

Thank you for this! I hope to spend some time merging this back in this weekend. I'll take care of figuring out what's common and splitting it all together. (I want to do a little bit more datasheet digging to see how close the k20, k64, and k66's are). I'm not sure yet on an m4 common - mostly because the exact registers used for clocking are different on some chipsets (the m0 common is possible because it's all hand cycle counted asm (with adjustments for m0+) so there's no io registers that'd be different between platforms)

@kcouck
Copy link
Contributor Author

kcouck commented Jan 20, 2017

Ok; I'll wait with that part then :)

I'll just try and check now if the 3rd byte of PORTB can be used as well for parallel processing :)

@kcouck
Copy link
Contributor Author

kcouck commented Jan 21, 2017

PORTB output added with some bit shifting to get the output byte into the third byte of the port.
Differentiation is needed between the MASK for the lanes (always on the first x bits of 'width'), and the MASK when actually pushing the data out.

I can't seem to get a decompile listing, but I hope that bitshift is getting optimized out incase we shift 0 bits (for PORT C and D) :)

@focalintent focalintent merged commit 22c830b into FastLED:master Feb 17, 2017
@kcouck
Copy link
Contributor Author

kcouck commented Feb 17, 2017

Any idea on how you'd like to have T3.5 support added?

@adammhaile
Copy link

@kcouck You have instructions for using the Teensy 3.6? Used pins 11 and 13 which should be the main SPI, but no luck. Trying to figure out if I'm missing something.

@kcouck
Copy link
Contributor Author

kcouck commented Jun 29, 2017

Hello Adam, I haven't tested it with SPI (I only have WS2811's), but the code is almost identical to that for the Teensy 3.2, so I don't see any reason why it wouldn't work...

@adammhaile
Copy link

adammhaile commented Jun 30, 2017 via email

@kcouck kcouck deleted the Teensy_3.6 branch February 11, 2023 00:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants