Teensy 4.0 not seen by Teensy Loader when on my carrier board

Status
Not open for further replies.

OCPatch

New member
Okay, Teensy noob here - apologies (+ sheepish shrug + sigh of relief) in advance if I'm missing something simple.

Equipment: Windows 10 desktop PC; Teensy Loader 1.52; Arduino/Teensyduino IDE, Teensy 4.0 with my pins in either 1) sockets on a solderless breadboard or 2) sockets on my carrier board. Teensy USB connection IS to a USB hub because I'm squeamish about frying USB's in my desktop PC.

FWIW, I'm trying to build a maximum power point tracking charge controller for solar cells and a lithium ion battery. So I got my proto circuit board back from fab, stuffed it with components, and did some preliminary testing before socketing the Teensy 4.0. The power on my proto circuit board currently (batteries later) first comes from a loosely regulated wall wart transformer, then to a 1.5A, 5VDC linear regulator, then to a ~750mA, 3.3 VDC linear regulator. The extra 3V3 regulator is if I want to add power-hungry devices to my I2C bus later. (Refer to the schematic for power details)

Note that my early testing has been done without solar power input, presence of a battery, or presence of any load. I'm just trying to wake this board up.

The schematic shows the voltages that I read from various parts of the circuit. My problem is that when I have cut the jumper between VIN and VUSB and mount the board in the sockets on my carrier board, Teensy Loader does not recognize the attached (through the on-board USB connector) Teensy 4.0.

I've gone so far as to only power the Teensy board itself with my "5 VDC" (4.67 VDC) source to the VIN pin (no other pins connected to anything) and plug the USB cable in and yet my PC and Teensy Loader still do not recognize the board.

I tried the hold-the-button-down-for-15-seconds-trick, got a single blink of the red LED a little after 12 seconds, but no apparent reload and run of the slow blink code. And definitely no recognition of the board from Teensy Loader.

But after I made a solder bridge re-connecting VIN and VUSB, (powered by USB; no Vin connection to my 5 VDC) the Teensy 4.0 is happy again, loading sketches, responding the the 15-second reset, talking to an I2C device I have hooked up; talking via USB serial to PuTTY, giving me status, etc. And without a PC reboot.

So what have I done to foul up the USB (?) communication of the Teensy 4.0 board with my computer by cutting the Vin/VUSB jumper and powering the board from the non-USB source? And how was the fault not permanent?

The Teensy board seems to be 6-layers (?) and I'm pretty sure I didn't get so heavy handed that I cut through buried circuitry, but I'm not ruling that out.

Any and all help will be much appreciated.
 

Attachments

  • PowerSupplySchematic.jpg
    PowerSupplySchematic.jpg
    54.3 KB · Views: 38
Schematic suggests 5V and 3.3V being sent to the Teensy? Not noted in text, but that woudl be wierd to send 3.3V to the Teensy 3.3V output when giving it 5V VIN.

It could be that a layer under the VIN<>VUSB trace was cut too deeply. Seems it was posted once. If the solder were removed , and the two pads show disconnected. Then with 5V on VIN does it show on downstream components from there and putting out 3.3V ?
 
Do not apply 3.3V power. Let the 3.3V regulator on Teensy 4.0 do that.

PowerSupplySchematic.jpg

To understand why, read "Power Up Sequence" on the T4 bootloader chip page.

https://www.pjrc.com/store/ic_mkl02_t4.html

Proper startup requires those 8 steps to be performed in the correct order. If you externally drive 3.3V too early, especially before step #3 has the SNVS_CAP pin brought up to about 1.1V, the chip will not work.

The 3.3V regulator on Teensy 4.0 has an enable pin, driven by PMIC_ON_REQ, which causes it to remain off until the proper moment.
 
Thank you defragster and Paul.
My intent was to support the 3.3 VDC supply on the Teensy board when any power-hungry I2C peripherals demanded more current than the Teensy could source. I'll have to either hack a long time-delay switch for that on-board regulator or drive the switch directly under program control. It's a proto board so there will undoubtedly be more cuts and jumpers before I'm through...
Again, many thanks for providing details on the subtleties.
Patch
 
Sometimes when I am playing with my own boards, and may want to handle additional 3.3v current,
What I simply do is either:

a) simply don't connect up the 3.3v coming out of the Teensy to the 3.3v stuff being driven by the board... Example XBess or the like.
b) Make it optional. That is on my board, I will design in the 3.3v VR regulator circuitry, but when when I build a board, I may or may not populate it.
I then put in some form of jumpers. Either ones with shunts for .1" spacing, or simple 3 way solder jumpers. Where center pad is the 3.3v going out and the outside pads go to either VR or output of the teensy 3.3v pin.

Like on this one:
screenshot.jpg
Note in this one case I only did simple jumper if I don't populate the VR, I solder it in...
 
Sure, thank you KurtE.
That 10 ohm resistor between the Teensy 3V3 and the VR onboard is just an 0805 resistor. I pulled it off and voila, everything is happy again. I was just guilty of feature creep and thinking I was making a board for all possible projects. I was thinking about a bunch of (qwiic) I2C devices and assumed that I needed to use the Teensy 3V3 for the 4-wire interface, but knew that I'd potentially be pulling far more than the nominal 250 mA.
I'll probably re-purpose one pin on the teensy to drive the enable pin on my onboard 3V3 voltage regulator after things have started up properly and before powering up those current sucking LED's on the I2C lines. And I'll run separate power and ground lines directly connected from onboard power to any of those power-hungry devices like I had planned.
Thanks again,
Patch
 
A preliminary postscript:

TLDR: Use a stiff (e.g. able to maintain voltage while sourcing significant current) power supply and get on with the fun parts of developing a project.

I've just gotten back to this project and found that I still had reliability issues with the Teensy starting up properly. I should have read my own first post describing how I was powering my prototype board on which the Teensy 4.0 sits with a "loosely regulated wall wart transformer". This was just the first one that I dug out of the drawer where I collect a few of these things. The transformer said 12 VDC, 500 mA was its output. Silly me. I assumed that it was actually providing power somewhere near that 12 VDC, 500 mA point.
It turns out it was producing less than 10 volts volts of ripple-y, direct-ish current at less than 150 mA. When I designed my carrier board I had an assortment of capacitor values for each of my 5VDC and 3.3VDC onboard sources - I assumed these would take care of the any issues with the wall transformer power as I woke up the parts of the board.
It seems like the wimpy wall transformer was sourcing so little current that there was a long rise time on the 5VDC that I was using to power the Teensy. But I thought maybe I had overheated one of the onboard linear voltage regulators during assembly so I desoldered and replaced it only to find I had the same problem. In truth, the problem was with my primary DC power source for the whole board.
In the end, all I really needed to do was use a wall transformer that really did put out (over) 500 mA of DC current at 12 volts. I've moved past trying to connect and have the onboard and the Teensy 3.3V supply support each other. They are completely separate now and I'm not going to put the system back into a broken state to see if that works too with the stiff power supply.
Hopefully my experience saves someone else grief in the future.
 
Status
Not open for further replies.
Back
Top