Custom Teensy 4.x board - first time initialization of Flash Chip Required?

Brian3

New member
Greetings all, long time lurker/first time poster here.

I'm attempting to make some custom Teensy 4.x boards, and I'm encountering the 3 flashes for "Flash Chip Error, Missing or Incorrect ID". In my design I'm using the W25Q64JVSSIM (SOIC-8 Package), and in each of my prototype boards I'm seeing the same error. However, I de-soldered a W25Q64JVXGIM Flash Chip off of a Teensy4.1 (XSON-8 package), and was able to solder wire leads from the chip to the pads on the PCB...and interestingly everything works perfectly.

So I'm wondering, does a virgin Flash Chip require some form of initialization in order to wake up and reply to the JEDEC ID query from the bootloader, or sync with the chip?

I've verified the markings on the flash chips are indeed correct versions ending with "M", the traces and contacts are solid, and the response/error is the same regardless to pressing the program button once or doing the reset via ~15second hold > release.

Overview of custom board:
- IMXRT1062DVL6B (10mmx10mm)
- MKL02 bootloader from PJRC (Big THANK YOU for creating and selling these!)
- W25Q64JVSSIM SPI Flash Chip
- Schematic for power supply, bootloader, flash chip, crystals, etc is pretty much identical to recommended specs


Incase it might be of use, the following is the verbose log when connecting to the original W25Q64JVSSIM flash chips, and pressing the Program button.

Code:
05:46:57.319 (loader): Teensy Loader 1.57, begin program
05:46:57.355 (loader): Listening for remote control on port 3149
05:46:57.356 (loader): initialized, showing main window
05:47:06.513 (loader): Verbose Info event
05:47:10.190 (loader): HID/macos: attach callback
05:47:10.356 (loader): HID/macos: number of devices found = 1
05:47:10.360 (loader): HID/macos: vid=1FC9, pid=0135, page=FF00, usage=0001, ver=1.01
05:47:10.365 (loader): Device came online, code_size = 100
05:47:10.367 (loader): Board is: NXP IMXRT1062 ROM
05:47:10.369 (loader): begin operation
05:47:10.371 (loader): set background IMG_ONLINE
05:47:10.389 (loader): HAB open mode, bootcfg=80018
05:47:10.393 (loader): Opps, NXP ROM in open mode, but we do not yet have code for this case :(
05:47:10.395 (loader): start ignoring 7ff0a8316d70
05:47:10.396 (loader): HID/macos: IOHIDDeviceClose called!
05:47:10.397 (loader): end operation, total time = 0.027 seconds
05:47:10.399 (loader): redraw timer set, image 79 to show for 3000 ms
05:47:10.606 (loader): HID/macos: number of devices found = 1
05:47:10.611 (loader): HID/macos: none of the devices had known usage
05:47:13.400 (loader): redraw, image 9
05:47:15.937 (ports 1): HID remove callback
05:47:15.937 (loader): HID/macos: detach callback: is NOT currently open device
05:47:15.937 (ports 1): USB device remove callback
05:47:15.937 (ports 1): remove, loc=14100000
05:47:15.941 (loader): stop ignoring 7ff0a8316d70
05:47:16.332 (ports 1): USB device add callback
05:47:16.333 (loader): remote connection 3 opened
05:47:16.405 (loader): HID/macos: attach callback
05:47:16.606 (loader): Device came online, code_size = 100
05:47:16.610 (loader): Board is: NXP IMXRT1062 ROM
05:47:16.613 (loader): begin operation
05:47:16.616 (loader): set background IMG_ONLINE
05:47:16.629 (loader): HAB open mode, bootcfg=80018
05:47:16.633 (loader): Opps, NXP ROM in open mode, but we do not yet have code for this case :(
05:47:16.635 (loader): start ignoring 7ff0a812d070
05:47:16.637 (loader): HID/macos: IOHIDDeviceClose called!
05:47:16.638 (loader): end operation, total time = 0.023 seconds
05:47:16.640 (loader): redraw timer set, image 79 to show for 3000 ms
05:47:16.856 (loader): HID/macos: number of devices found = 1
05:47:16.858 (loader): HID/macos: none of the devices had known usage
05:47:19.643 (loader): redraw, image 9

Then here's the verbose log when connecting to another prototype pcb, which is fully working now that I've replaced the W25Q64JVSSIM with the W25Q64JVXGIM chip that I'd taken off of a T4.1:

Code:
05:48:01.768 (loader): Teensy Loader 1.57, begin program
05:48:01.806 (loader): Listening for remote control on port 3149
05:48:01.807 (loader): initialized, showing main window
05:48:04.004 (loader): Verbose Info event
05:48:08.061 (ports 1): Serial add callback
05:48:08.062 (ports 1):   name=/dev/cu.usbmodem129563501, loc=14100000, vid=16c0, pid=0483, ver=0280
05:48:08.062 (ports 1):   found prior teensy at this loc, age=0.283
05:48:08.062 (ports 1):     name: /dev/cu.usbmodem129563501 (Teensy 4.1) Serial
05:48:12.600 (ports 1): Serial remove callback
05:48:12.600 (ports 1): USB device remove callback
05:48:12.600 (ports 1): remove, loc=14100000
05:48:12.600 (ports 1): usb_remove: usb:14100000
05:48:12.600 (ports 1): del device: location=14100000
05:48:12.876 (ports 1): USB device add callback
05:48:12.876 (ports 1):   loc=14100000, vid=16C0, pid=0478, ver=0107, ser=0013C513
05:48:12.876 (ports 1):   actual serailnum=1295635
05:48:12.876 (ports 1):   found prior teensy at this loc, age=0.276
05:48:12.876 (ports 1):     name: [no_device] (Teensy 4.1) Bootloader
05:48:12.877 (loader): remote connection 3 opened
05:48:12.948 (loader): HID/macos: attach callback
05:48:13.057 (loader): HID/macos: number of devices found = 1
05:48:13.059 (loader): HID/macos: vid=16C0, pid=0478, page=FF9C, usage=0025, ver=1.07
05:48:13.061 (loader): HID/macos: ser=0013C513
05:48:13.062 (loader): try to read feature report
05:48:13.064 (loader): got feature report, size = 384
05:48:13.065 (loader): 7393CD01 00000000
05:48:13.066 (loader): secure mode can be locked: this is Lockable Teensy
05:48:13.067 (loader): encryption is possible on this Teensy, but not yet configured
05:48:13.069 (loader): Device came online, code_size = 8126464
05:48:13.070 (loader): Board is: Teensy 4.1 (IMXRT1062), version 1.07
05:48:13.072 (loader): set background IMG_ONLINE
05:48:13.307 (loader): HID/macos: status: ok


Any advice would be appreciated!
Cheers,
Brian
 
I just recently powered up two custom pcb/teensys for the first time and I used virgin W25Q64JVXGIM from mouser. No initialization was required.
 
I just recently powered up two custom pcb/teensys for the first time and I used virgin W25Q64JVXGIM from mouser. No initialization was required.

Thanks! I just got a new round of prototypes made using the footprint for W25Q64JVXGIM flash chip and soldered on some virgin chips from Mouser, and am pleased to confirm everything powered right up as anticipated. Quite odd considering everything should be the same except for the hardware footprint.
 
Back
Top