I recently got my first Kinetis microcontroller (MK66FX1M0VLQ18) PCB design from the fab, soldered it, and it largely works — the serial port works fine, the USBFS port works fine, all LEDs work fine.
One thing does not work, though: the USB1 (USBHS) port. When plugging in a known-working cable, I don’t see any reaction on my Linux computer. The firmware I’m using is the frdmk66f_usb_examples_dev_composite_hid_mouse_hid_keyboard_bm SDK example, which I have modified to work with the clocks I’m using. The image works on the Teensy 3.6, which uses the same MCU and the same 16 MHz crystal. Hence, I’m reasonably certain the firmware is okay, and it’s most likely a hardware issue.
When reviewing my schematic, I already found one mistake: I accidentally left USB1_VSS floating. Could that explain the issue?
I also left USB1_VBUS unconnected, and I’m not sure whether that’s correct or not. I can’t find any hint in the datasheet about whether it needs to be connected when using the USBHS port as a device, i.e. to connect my MCU to a computer. The datasheet only talks about device charging modes. Should USB1_VBUS be connected in device mode, too?
Also, what about VREG_IN0 and VREG_IN1? Can they be left floating? I read in this forum that VREG_OUT should be connected to +3V3 when not using the internal regulator, so I did that.
I’d be thankful for any tips as to how to wire up the port in a known-working state. Perhaps someone has the FRDM-K66F schematic so that I could have a look at how they’re wiring up the ports?
Thanks a lot in advance!
Here’s my schematic: