Teensy 4.1 unable to recover LED Blink program and unrecognized by computer

Nicc

Member
Hello

I was testing a PCB I had designed to work with the Teensy 4.1 and at the time I was testing functionality for CAN bus. I uploaded the code listed below, using arduino and teensy flasher program, and tried to run it but it never was able to run.

Code:
#include <FlexCAN_T4.h>
FlexCAN_T4<CAN1, RX_SIZE_256, TX_SIZE_16> cb;
CAN_message_t msg;

void setup() {
  // put your setup code here, to run once:
  cb.begin();
  cb.setBaudRate(1000000);
  cb.setMBFilter(REJECT_ALL);
  msg.id = 0xA5;
  for ( uint8_t i = 0; i < 8; i++ ) { msg.buf[i] = i + 1; }
}

void loop() {
  // put your main code here, to run repeatedly:
  delay(200);
  cb.write(msg);
}

The example is very simple and the message is nothing important; just something to see if the system was able to produce a CAN message that I could read using a PCAN. The hardware designed to allow for CAN bus communication is shown below. The circuit was copied from a design that was used with an STM chip and it's been working well. The CAN Tx and Rx are directly connected to pins 23 and 22 and CAN H and L are connected to and output connector and connected to ESD protection (even though that is now apparent to me to be redundant due to the ESD protection of the SN65HVD231QDRQ1 chip). The only difference is that R26 was added. The rest of the PCB seems to be working fine in testing before and other parts of the board were working fine; I would love to share the whole PCB but it's NDA and such :(

CAN bus circuit.jpg

I've done a bit of troubleshooting. I've attempted to restore the LED blinking program and after holding for ~14 seconds it will blink briefly but nothing more. The voltage on the 3V3 rail is 3V3, the voltage on the program pin is 3V3 then 0V when the button is pressed. The Teensy 4.1 was bought and has not been under a reflow, chip U2 looks fine to me. The computer does not recognize the Teensy 4.1 anymore and Arduino can't program it.

My assumption is that somehow a component died and the entire board can be considered dead; this is fine, I mean it's not fine but I can accept it, but I have no idea why it happened. I know that it could have been ESD that killed it but there are some ESD protection components on-board (NUP4114UCW1T2G, SMAJ8.0CA-E3/61). I could replace the Teensy 4.1 for another one but I would prefer to not potentially maybe killed another one.

Any thoughts and comments are appreciated :)
 
Hello
...
I've done a bit of troubleshooting. I've attempted to restore the LED blinking program and after holding for ~14 seconds it will blink briefly but nothing more.
...

Was the brief blink at the ~14 second point?

To complete the 15sec Restore the button must be released when that RED LED Flash is seen.

In order to prevent accidental wipe with Restore - releasing the button after ~17 seconds aborts the Restore operation.

When held ~13 secs and released before ~17 secs the RED LED will then become active as the Teensy Flash is wiped and a default blink sketch is Restored.
 
Yes, I tried holding it down until the red LED blinked which was about 14 seconds, after blinking I immediately let go and nothing happened; no holding red LED and then subsequent blinking. It still seems to be unlively.
 
Yes, I tried holding it down until the red LED blinked which was about 14 seconds, after blinking I immediately let go and nothing happened; no holding red LED and then subsequent blinking. It still seems to be unlively.

Have done many 15 sec Restore's - not seen it fail to complete once activated. Not sure if use of "teensy flasher program" somehow interfered with MCU state - or if it could be hardware failure or something connected?

Trying the 15s Button press again won't hurt.
 
Thanks, I've tried a couple of more times but still nothing. I agree with you I think it might be hardware damage but I guess I thought I would expect not even a small flash if it was hardware damage.
The "teensy loader program" is the Teensy loader 1.55; I should have made that clear.
 
The RED LED is only connected to the bootloader MCU. So that MCU is powered and sees the Button and then it seems the 1062 is failing to cooperate.
 
Ah ok that makes sense, so the bootloader chip is functional then however, the main MCU is unresponsive to the communication from the bootloader MCU. If the main MCU was overvoltaged through the GPIO that would lead to this behaviour perhaps? Though I swear the CAN transceiver chip should not do such a thing.
 
Not sure beyond above notes as to what could be at fault - not seen it before and no more info about the situation.

'Flasher' was noted for self programming not over USB before failure?

Have you plugged it in to USB and tried IDE programming? Open Teensy Loader Help / Verbose Info and see it a Button push results in ANY response.
 
I'm using the USB cable to plug into the Teensy 4.1 directly from the computer, using Arduino and Teensy loader application for programming. This is the only method so far I've used to program the Teensy.

I tried the verbose option in the Teensy loader however since the computer doesn't detect a connection, similarly there's no indication of anything in the Teensy loader with or without the button pressed. I also tried the restore LED blinking program a couple of times.
 
Okay, Bummer. Seems the MCU offline for some errant electrons not bits then. With the RED LED it suggests the board still making 3.3V and not totally inert.

Opps ... I misread this " teensy flasher program " as the sketch based "Flasher" code that self reprograms the MCU not using the PJRC Loader to bootloader program.
 
Update 2: I replaced the Teensy with another and the code and circuit worked. I maybe should have done that before posting but I assumed that there was a mistake in my circuit due to the timing of the failure.

I'm assuming the failure was caused by ESD; good to know the behaviour of such a failure though.
 
Back
Top