Guidance on transitioning from Teensy to bare metal

Status
Not open for further replies.

BlueTurtle

Active member
Hello everyone,
I’m working on a product and my prototype phase is about to be over. I’m currently using T4.0 but I’m finding myself a bit constrained with amount of IO pins I’m able to use. For that reason I need guidance on a couple of issues.

First: Is making my own board is as easy as just ditching the boot-loader and loading the .hex file via JTAG line?

Second: If I wanted to utilize more IO (10 or so) pins of the chip, how hard would it be to extend the core libraries to work with those pins? I’ve never done something like that so I don’t even know where to begin to add more IO pins to my package.

Thank you very much for your help.
 
> utilize more IO (10 or so) pins of the chip

What kind of IO do you need? Digital input, output, analog? How fast?

For example, a "PCF8575 IO Expander Module I2C To 16IO" might work at far less effort.
 
perhaps 15 depending on what is needed and how particular one is about connecting:

T_4.1:
Code:
#elif defined(__IMXRT1062__) && defined(ARDUINO_TEENSY41)

#define CORE_NUM_TOTAL_PINS	55
#define CORE_NUM_DIGITAL	55
#define CORE_NUM_INTERRUPT	55
#define CORE_NUM_ANALOG		18
#define CORE_NUM_PWM		31
pins 0-54 shown here : KurtE/TeensyDocuments/blob/master/Teensy4.1%20Pins.pdf


T_4.0:
Code:
#if defined(__IMXRT1062__) && defined(ARDUINO_TEENSY40)

#define CORE_NUM_TOTAL_PINS	40
#define CORE_NUM_DIGITAL	40
#define CORE_NUM_INTERRUPT	40
#define CORE_NUM_ANALOG		14
#define CORE_NUM_PWM		27
pins 0-39 shown here : KurtE/TeensyDocuments/blob/master/Teensy4%20Pins.pdf
 
perhaps 15 depending on what is needed and how particular one is about connecting:

T_4.1:
Code:
#elif defined(__IMXRT1062__) && defined(ARDUINO_TEENSY41)

#define CORE_NUM_TOTAL_PINS	55
#define CORE_NUM_DIGITAL	55
#define CORE_NUM_INTERRUPT	55
#define CORE_NUM_ANALOG		18
#define CORE_NUM_PWM		31
pins 0-54 shown here : KurtE/TeensyDocuments/blob/master/Teensy4.1%20Pins.pdf


T_4.0:
Code:
#if defined(__IMXRT1062__) && defined(ARDUINO_TEENSY40)

#define CORE_NUM_TOTAL_PINS	40
#define CORE_NUM_DIGITAL	40
#define CORE_NUM_INTERRUPT	40
#define CORE_NUM_ANALOG		14
#define CORE_NUM_PWM		27
pins 0-39 shown here : KurtE/TeensyDocuments/blob/master/Teensy4%20Pins.pdf
Thank you very much! That’s all I need I believe. Now I guess I can lift the 4.1 to my board, upload the hex from JTAG and that’s all?
 
Finding JTAG connectivity versus onboard PJRC bootloader chip that controls those pins is all on you to discover if/how that can work. Using the USB interface and Teensy Loader is the only PJRC supported path to HEX programming.
 
Finding JTAG connectivity versus onboard PJRC bootloader chip that controls those pins is all on you to discover if/how that can work. Using the USB interface and Teensy Loader is the only PJRC supported path to HEX programming.

I would be willing to save the time and effort but bootloader chip for 4.1 or 4.0 isn’t out yet unfortunately. If I transition to 3.6 I think I’ll have less resistance to making it work on a custom board I suppose?
 
Indeed the T_3.6 would be easier - Paul has a posted reference board on OSHPARK for that.

The stand alone T_4.0 bootloader chip may just be weeks away at this point as a hurdle was recently understood/tested it seems and soon to hopefully known as overcome ... but Paul is swamped with work and extra tasks he's noted making up for employee's held out by the recent health issues.

As far as other things to watch - there is some wild speculation about a SFun MICROMOD version of 1062 - but may only add 6 pins by these 'beta' numbers not yet officially acknowledged:
Code:
#elif defined(__IMXRT1062__) && defined(ARDUINO_TEENSY_MICROMOD)

#define CORE_NUM_TOTAL_PINS	46
#define CORE_NUM_DIGITAL	46
#define CORE_NUM_INTERRUPT	46
#define CORE_NUM_ANALOG		14
#define CORE_NUM_PWM		30
 
Status
Not open for further replies.
Back
Top