Teensy 4.0 (hypothetical) pin assignments

Going back over the recent posts was wondering if a future version of T4 would have CAN FD and that extra pin breakout for the video lines that was mentioned in an earlier post. Know it kind of early when the first T4 isn't even off the production line yet. Sorry - couldn't help myself again.
 
Going back over the recent posts was wondering if a future version of T4 would have CAN FD and that extra pin breakout for the video lines that was mentioned in an earlier post. Know it kind of early when the first T4 isn't even off the production line yet. Sorry - couldn't help myself again.

Likely - comments seemed to have indicated ... will be based on 1060 or follow on footprint compatible where the 1060 has 1 CANFD
 
I haven't been partaking in this discussion very much up to now. As a classic "mixed signal" guy, I've been deeply disappointed to see that the T4.0 wouldn't have any DAC outputs. After the T3.1/2 with one, the T3.5/6 with two, I had secretly expected to see at least four of these on a newer and more powerful MCU. A higher bit depth for the ADCs and DACs would have been a "nice to have", too. I'm perhaps late with everything, but I started only a few years ago to think about re-creating all that pure analog and sometimes discrete CMOS stuff which I had created in the audio and music domain until 2013 on a mixed signal MCU, where the Teensy product line appeared the most appealing to me. My (naive) idea was to have really everything in one.single.chip.
You probably are aware of MAX98357A's, but if not, I noticed Sparkfun just announced an i2s -> analog output device today, presumably similar to the SGTL5000 in the Audio board, except it only does a single channel:

 
You probably are aware of MAX98357A's, but if not, I noticed Sparkfun just announced an i2s -> analog output device today, presumably similar to the SGTL5000 in the Audio board, except it only does a single channel:


@MM - I saw that today too, looks interesting with AMP onboard - and $5.

I posted in another thread links to some of Paul's past notes on the silicon design for MCU's that probably explain why the T_4's processor can/cannot do what the slower old one's did:
 
You probably are aware of MAX98357A's, but if not, I noticed Sparkfun just announced an i2s -> analog output device today, presumably similar to the SGTL5000 in the Audio board, except it only does a single channel:

I’ve done a lot of market research and data sheet and specifications reading in the last few months, to find suitable high quality audio peripherals. As someone who could make a huge pocket money as a student from optimizing bias and symmetry of other people’s audiophile tube amps by ear, I just can’t see how such a PWM device like the MAX98357A could sound natural and warm. Mathematically, there is nothing to say against class D amps. These can theoretically do a perfect analog reconstruction if the speaker’s reactance curve over the whole frequency range is well known and defined and if that is taken into account either in the preceding interpolation filter or in an analog RLC network at the output.
But this kind of inductorless one-chip class D amplifiers gives in the best case an impressive sound pressure level for a few pennies, but nothing you’d want to listen a string quartet by Beethoven through.
 
Will it have a 2nd USB (HOST) ?

Yes, but only as 2 small pads for D+ & D-. There isn't room for a 5 pin header as on Teensy 3.6, and we're not putting the host current limit switch & capacitor on the board (because there also isn't room, and to keep the cost low). Another larger & more expensive board in late 2019 or early 2020 will be meant to provide lots of features...

DIY cable soldering required. More DIY effort needed if you want to hotplug devices while running only from power over a USB cable.

Both USB ports are 480 Mbit/sec.
 
The planned i.MX RT1052 seems to be only available in BGA packages. This makes it very difficult, if not impossible, for hobbyists to build their own boards.
I know it's not the right place, and the right time for such suggestions, but a simple breakout board that provides as many pins as possible (with a minimum of components on it - crystal and capacitors?) would be great for many users. In addition to the planned teensy boards.

The only other i.MX RT boards I could find today are the development kits with way too much hardware on board.
I wanted to buy a simple board, to play with it, and to help you with the software, but I found nothing.
 
Will it still use a bootloader-cpu, or do you just copy the bootloader to the flash, in a secured area? I guess the existing factory bootloader-rom will not be used?
 
As Paul mentioned in several threads recently, most of his time goes actually into T4 development. Is there already a final pin layout, now? I’m asking because I’m actually working on a PCB with a 24pin socket for a Teensy and some I2C and I2S hardware, a few rotary encoders, and push buttons. The first batch is intended to be shipped in Q1/2019 with a Teensy 3.2 but I hope to be able to use the same PCB later with a T4, too, with extended software. It will be a product for a small niche market, thus deployment will go slowly over several years. But since one can only get reasonable prices when ordering PCBs with soldered SMD components in fairly huge quantities, I want to make sure that the next MCU generation will fit in the 28pin socket, not only from the number of pins, but also from the pin functions.
 
The short answer is no, nothing is really finalized. In some sense, it won't be truly "final" until we're shipping the actual products.

I'm a bit reluctant to share too much at this stage. Months ago, I really was looking for feedback. Right now, a lot more conversation is only a distraction. I do want everyone to feel free to comment here. This forum is about discussion. Just please don't expect me to really active right now.

But I will say the pinout is very likely to look like the info in messages #20 and #85. So far I've been working only with larger form factor prototypes, similar to the early beta and ref board for Teensy 3.6. My intention is certainly to cram it all into the same form factor as Teensy 3.2, but that work has not yet been done. Like with Teensy 3.6, that part will probably come quite close to the end.

One thing I'd like to point out, which you've probably already noticed in those messages, is this pinout means the I2S signals move to other pins. There simply isn't any way to assign the pins to preserve the locations of all the other traditional Arduino compatibility (SPI on pins 10-13, analog on pins 14-23, I2C on pins 18-19, Serial1 on pins 0-1, PWM on pins 3,5,6) and also end up with the I2S pins at 9,11,13,22,23 as we've had with Teensy 3.x. Hopefully knowing about this can help you plan your PCB?
 
Paul, thank you for having taken the time to reply. Although it means that I might most probably not create an universal PCB layout, it’s better to know now than later. I have actually already moved the I2S signals from pins 22 and 23 to 4 and 3 because I need 4 pins 20 to 23 for FTM capture on the T3.2. And I see now that Pins 20 and 21 will (as I understand it) not be PWM capable on the T4, so they won‘t be able to do pulse capture, too.
Either I go back o the drawing board and try to rearrange everything or I drop the idea of a pin compatible solution. If I only had an idea of how long the T3.2 will still be available, seen that people have already now reported problems to order the MK20DX256...
 
Ok, here's a couple hypothetical questions for everyone still following this pin assignment thread.

If we were to use the 1060 chip rather than the 1050, should access to some features be sacrificed to gain the 2 signals for the 3rd CAN port (the only one capable of CANFD)?

If so, which 2 pins should get cut out? A couple likely candidates might be AD_B1_14 and AD_B1_15, which are present mostly just to give access to a second SPI port and have 2 more analog inputs, or B0_04 & B0_05, which give 2 more PWM, 2 more FlexIO pin (programmable hardware peripherals) and access to a 4th I2C port.

Or, if we stay with the 1050 chip, would this sort of change make sense anyway for the possible future of stepping up to the larger part?
 
I would like to see the use of the 1060 chip. With CAN FD this will enable T4 to run a new set of applications.
 
Perhaps a naive question from a non CanBus expert... On one bus, several tenths of nodes can already be connected. Thus, where is the interest of having multiple CanBuses on a Teensy? If that third CanBus is FD capable, why not keep just that one and drop the others if needed, so that other more popular features like PWM or analog input would not have to be sacrificed. The same question would apply to I2C. On one bus, 127 slaves are possible. Who would need a second or third bus? With SPI, it’s a little different since each slave would need its own CS pin, thus I’d put some priority on bringing out the maximum of native h/w CS pins to handle a maximum of slaves optimally with a single hardware instance.
The only exception I see is Serial where multiple instances are needed because of the 1:1 topology.
 
A couple of folks were hopeful about the CAN_FD support. DigiKey shows this part a few dimes more expensive - though still cheaper than the T_3.5's K64? It doubles the RAM to 1024 KB ? - though only half can be on no wait TCM bus, would still allow for more data or uncompromised no wait RAM and code pulled in would free up the SPI contention and not pollute the 32K cache blocks. Perhaps versus FASTRUN for RAM code in TCM area at no_wait, QuickRUN could load to the slower wait stated RAM for rare/non-critical code that would load once on boot? 2X Larger RAM in some fashion could allow better full use of the 600 MHz speed.

Any way to have this base pin set map directly to a T_4++ follow on device would make good sense. A second SPI takes 4 pins (versus one for another CS) the T_3.2 got by without two - though a second bus allows for a dedicated DMA device. Post #105 "If I need more PWM I'll just use a TLC59711 if I just had too. " - similar would apply to any need for more IO digital or analog.

This thread was about the topside pins - do bottom pads allow any help to offset the change?

Go 1060. In the end seems it will be more in line with interchange between T_4 and T_4++ capabilities - and ideally offer better use of the full 600 MHz with more RAM in the T_4 for more data or faster code exec. It seems the 1060 released after the 1050 - so all the Rev 0/1 1050 errata are fixed - maybe more?
 
If that third CanBus is FD capable, why not keep just that one and drop the others if needed, so that other more popular features like PWM or analog input would not have to be sacrificed.

Oh, if only it were that easy. If we axe CAN1 or CAN2 signals, we also lose other really important must-have features.

For CAN1, we get it in 2 places - one shares with SPI & 2 PWM - the other shares with 2 of the analog pins and 2 PWM, and also MCLK for the main I2S. We can't sacrifice the main SPI port, nor MCLK for the main I2S.

For CAN2, the pins share with Serial1, 2 PWM, and 2 XBAR access pins. This could be abandoned, but then we'd have only 7 serial ports instead of 8. Maybe that's not so bad? But people do use serial ports. Getting all 8 ports (5 on the breadboard pins, 3 on the bottom) seems pretty attractive.

Unfortunately, the pins where the CANFD signals can be accessed don't have much else going for them. They come to 3 locations. The first shares only with CAN2 (why NXP would choose that, I have no idea) and the other shares with part of the 3rd I2S and a couple pins from a GPT timer and a couple XBAR inputs. The XBAR signals are probably the only interesting thing someone not using CAN3 might do with those pins. The 3rd location can't be used since they're JTAG pins needed by the bootloader.

FWIW, on the chip's timers, my general plan is to make the 16 FlexPWM and 16 Quadtimers available for general signal usage (at least the subset routing to pins - though others can route though the XBAR to pins). I'm planning to use all 3 channels from both GPT timers to augment the PIT timers, so Teensy 4.0 will be able to support 10 IntervalTimer instances. Only the PIT & GPT have the option to clock directly from the 24 MHz crystal, and I'm going to make that the default, so all IntervalTimer will remain on the same time base when you dynamically change the F_CPU speed.
 
It seems the 1060 released after the 1050 - so all the Rev 0/1 1050 errata are fixed - maybe more?

I doubt it. My hunch is they're very likely the exact same silicon, just tested differently.

The 1050 docs have references to a 3rd CAN port in places (and the whole 3563 page document is riddled with obvious errors, mostly sloppy copy-paste stuff, even lots of spelling mistakes). It's common practice in the design of these chips to aggressively size optimize the RAM cells and then over-provision, where the chip testing process figures out which rows in the RAM are error free and creates the final memory allocation map by writing to fuses.

My guess on the 3rd CAN is they probably didn't have test vectors for CANFD ready to go, so they just removed it from the feature list for the 1050. It might be just sitting there, able to be used. Or they might be setting fuses during test to mask its address space to return bus errors or other wise disable it.

Then again, they might be actually different silicon. I have some 1062s on order, and it's probably going to take a week or more until I can get them soldered to boards. My opinion on this will evolve after I've had a few weeks to actually work with both chips....
 
'Maybe More?' - was just a hope … critical part was the main errata were all fixed.

Seems my other notes were not offbase - just looking for fastrun I see the mk##.ld breaks out FLASH and RAM so that might allow controlled loading of something like 'printf' (for example - big and already slow) - or secondary storage RAM - to move to non-TCM RAM address space - though that might cause fragmentation and need to adjust?

Hopefully worth investigating and getting chips on boards to see the 1062's run.

Odd the 1060 Ref Man is 1.2 MB smaller and 6 months newer and 82 pages longer. The 'Key Features' diff only calls out added: RAM, CANFD, 2nd Ethernet.
 
It also seems to have a second flexspi. I honestly haven't done much more digging into the details, but there are a bunch of obviously wrong pin names in the pin assignments chapter, so I stopped there.
 
How the fuse map & locking bits work on 1050 for the mac addresses is also a unsolved mystery. Obvious errors in the documentation!
 
It also seems to have a second flexspi. I honestly haven't done much more digging into the details, but there are a bunch of obviously wrong pin names in the pin assignments chapter, so I stopped there.

'bunch of obviously wrong' - ick! Even 'obvious' to you doesn't help you with your practice in reading these things, to the casual reader :confused:

Second flexspi might be handy with the first tied to 'Quad SPI (FlexSPI)'? Though quick search doesn't show what 2nd flexspi offers - just a second way to do the first?

The two manuals don't look to have the same ordering? Detail in the index and 'Figure 1-2 Simplified Block Diagram' is page 30 ( 1060 ) versus page 210 ( 1050 ). That shows the Internal 512 kb RAM added separate from the TCM's 512 area. The 1060 RM (ch 29/30) suggests the RAM controller can only see up to 512 KB - suggests there is a [2nd] controller not in evidence … or the numbers weren't updated? … such fun … good luck.
 
To me it would be hard choices. Since I have never used Can bus it is hard to say that would over weigh 2nd SpI port. I would more likely sacrifice 4th I2C...
 
Back
Top