Hi Teensy community -
After successfully getting a DIY teensy working for one of my hobbiest projects last year, I decided to try again and this time I've run into trouble. I was hoping someone could help shed some light on what I should do next to troubleshoot. I've narrowed things down to the crystal and re-populated the board a few times with fewer and fewer components until I could isolate the cause.
My design is based on the app-fruits Eagle schematic but the target design has many other extra peripherals (see attached files). However, in my test configuration to isolate my problem, I've only populated the MK20 chip itself plus the crystal and its capacitors and the LED/resistor. I'm feeding VCC from an external 3.3 regulator. I loaded the blink sketch, and compiled it without any changes. In this case, I can successfully upload new code to the MK20 chip using a JLink debugger using loadfile on the .HEX, but I cannot get the clock to start when I instruct the debugger to reset and go.
My first crystal attempt I am using a XC139CT-ND from digikey (ECS-160-8-30B-CKM), 16.000 Mhrz, 8pf SMD 50 ohm crystal and 0603 22pF caps. My caps are wired to ground and there is no ground plane although the whole area is under a vRestrict and just has crystal routing. There is no other signals on the board (naturally) other than the blinking LED (but it doesn't blink.) I've done a similar design for other 16Mhrz chips used in the SAMD21 and figured that would work to not have a ground plane. Probing at the crystal, I cannot see any activity other than a slight voltage on the crystal pins and some very slight ~20Mhrz oscillation that is only a few millivolts. I've also tried swapping the ECS crystal for 18pF PTH external crystal that was used on the T32 reference board and worked on my other design. Still nothing.
I recognize this design has no ground plane and that the caps are connected to ground, but is this really such a major consideration? Why would the MK20 chip be so sensitive to that? The Atmel arm chips are extremely forgiving about their crystals I've noticed which is why I decided to design it the way I did.
In any case, I'd appreciate some advice on how to further debug or diagnose. Is there anything I can do from the JLink prompt to force the crystal to start..?
Also, if the advice is to redesign the board, can someone verify what part number of crystal I should use and/or if I have correctly wired the crystal I have on there now..?
The board layout:
ZIP file of the Eagle stuff...
View attachment GM1101.zip
FYI: This is an open source / open hardware project- you can read more about what I'm trying to accomplish here:
https://hackaday.io/project/20470-makernet
After successfully getting a DIY teensy working for one of my hobbiest projects last year, I decided to try again and this time I've run into trouble. I was hoping someone could help shed some light on what I should do next to troubleshoot. I've narrowed things down to the crystal and re-populated the board a few times with fewer and fewer components until I could isolate the cause.
My design is based on the app-fruits Eagle schematic but the target design has many other extra peripherals (see attached files). However, in my test configuration to isolate my problem, I've only populated the MK20 chip itself plus the crystal and its capacitors and the LED/resistor. I'm feeding VCC from an external 3.3 regulator. I loaded the blink sketch, and compiled it without any changes. In this case, I can successfully upload new code to the MK20 chip using a JLink debugger using loadfile on the .HEX, but I cannot get the clock to start when I instruct the debugger to reset and go.
My first crystal attempt I am using a XC139CT-ND from digikey (ECS-160-8-30B-CKM), 16.000 Mhrz, 8pf SMD 50 ohm crystal and 0603 22pF caps. My caps are wired to ground and there is no ground plane although the whole area is under a vRestrict and just has crystal routing. There is no other signals on the board (naturally) other than the blinking LED (but it doesn't blink.) I've done a similar design for other 16Mhrz chips used in the SAMD21 and figured that would work to not have a ground plane. Probing at the crystal, I cannot see any activity other than a slight voltage on the crystal pins and some very slight ~20Mhrz oscillation that is only a few millivolts. I've also tried swapping the ECS crystal for 18pF PTH external crystal that was used on the T32 reference board and worked on my other design. Still nothing.
I recognize this design has no ground plane and that the caps are connected to ground, but is this really such a major consideration? Why would the MK20 chip be so sensitive to that? The Atmel arm chips are extremely forgiving about their crystals I've noticed which is why I decided to design it the way I did.
In any case, I'd appreciate some advice on how to further debug or diagnose. Is there anything I can do from the JLink prompt to force the crystal to start..?
Also, if the advice is to redesign the board, can someone verify what part number of crystal I should use and/or if I have correctly wired the crystal I have on there now..?
The board layout:
ZIP file of the Eagle stuff...
View attachment GM1101.zip
FYI: This is an open source / open hardware project- you can read more about what I'm trying to accomplish here:
https://hackaday.io/project/20470-makernet