I'm attempting to bring up a board that I designed, and I'm having no succes connecting to the K64FN1M0xxx12 over JTAG. I've got the 100pin QFP. The JTAG header is about 1" away from the target IC, and each of the traces has 2 vias, with the exception of the reset. I'm not using USB, and have left VREGIN and VOUT33 floating. All VDD pins, VBAT, VDDA, and VREFH are connected to the 3.3v rail.
What I've tried so far:
- got two J-Links that I've verified with another board I designed which has a K20 on it.
- verified my schematic and PCB layout, noting pins and placement of power supply lines, JTAG lines, and JTAG pull resistors. (images attached)
- verified the power supply (3.36v w/~90mV noise at switching frequency)
- verified placement of the uC
- checked for noise on the JTAG pins (and found none)
- checked for continuity
- replaced the K64 target uC
- tried pulling TDO down through 220k
- tried pulling TDO up through 220k
- tried cutting the trace, lifting the TDO pin, and connecting directly to the uC.
- held reset line low from power-on until attempting to connect with J-Flash
- held reset line low from power-on and held it low while attempting to connect with J-Flash
- tried SWD and JTAG connections through J-Flash and J-Link commander, with auto speed, and set speed of 5kHz. I've tried both of the K64FN1M0xxx12 device packages, one with security allowed, and one without.
- applied voltage to the trace on a bare board (using a bench power supply) and observed the waveform (it looks pretty good, very steep slope.)
- disabled 8MHz CMOS oscillator (trace highlighted red on PCB layout below).
- verified no 8MHz noise on JTAG lines.
- blessing the board
- cursing the board
What I haven't tried:
- I read in the K64 manual that the pull resistor value is supposed to be 100k, but I pretty much just copied my k20 design, which worked with 10k resistors. I don't have 100k resistors to hand right now, so I haven't tried this.
- Series resistor on TDO
- Cutting all the JTAG traces and connecting direct to the uC with wires
What I see:
- TDO doesn't seem to be moving much, if at all. I've seen it look like a really rounded-off digital signal, and I've seen it change only by a few dozen mV. This only happens when the K64 is populated on the board. It sometimes raises by a volt or two when I first power it on or plug in the debugger and then falls gradually.
- Other JTAG lines seem fine, and seem to toggle with nominal rise times.
- J-Link Errors. Here are a few that I've received:
- Could not measure total IR len. TDO is constant high. (note: TDO is usually < 100mV)
- ****** Error: Bad JTAG communication: Write to IR: Expected 0x1, got 0xB (TAP Command : 11) @ Off 0x5.
- Kinetis (connect): Communication error while accessing AHB-AP.
- This is happening on 3 microcontrollers, so it seems unlikely to me that I've damaged them all. I ordered them from Mouser and they came in a cardboard clamshell (I guess you'd call it?) with ESD foam in it. I'm guessing that means they came from a tray originally.
showing pull resistors and JTAG connections. Pin order on the JTAG header matches the pins shown in the PCB snip.
100LQFP. Pin 26 is the leftmost pin on this snip. Aside from the JTAG lines, none of the other lines have signal on them, with the exception of the clock output, highlighted in red. There is a ground pour around traces on the top, and layer 2 is a ground plane, which is unbroken for the run between the header and the vias around the middle of the page. The JTAG connector is bottom right.
What am I missing? Anyone have a suggestion for something else I should try? I've got a FRDM-K64 that I've tried connecting to as well, but haven't had any luck with it either.