Device crashes when I use a Crystal substitute

Hello,

When I use the recommended X1 and X2 crystals from Epson (Q22FA12800025 and FC-135 32.768KHZ ±20PPM,9.0PF) the device works properly, crystals from ECS did work too in the past. However due to supply shortage we need to always find replacements for those two crystals. When we use a replacement the device stops working. (The watchdog timer gets triggered everytime after the firmware crashes at ble_stack_init() )

When this happens I try to change the source of LFCLK to internal RC or synthesized but sometimes it works sometimes it does not. I also tried to change CLOCK_LF_ACCURACY to bigger values, it does not work too. I tried with multiple crystal models so far and the only ones working seems to be the (Q22FA12800025 and FC-135 32.768KHZ ±20PPM,9.0PF) and (ECS-320-8-37B-7KM-TR and ECS-.327-9-34B-TR).

I measured the LFCLOCK Xtal frequency and it's 32.68KHz which is within 100ppm accuracy from the 32.768 KHz specified. I could not however measure the 32 MHz crystal (any idea how I can measure this accurately with an oscilloscope ? )

What are your suggestions to solve the issue ? is it indeed a crystal problem or could it be something else ? Have you tried other crystal models ? Have you tried with less known crystal brands (Chinese and Taiwanese brands ) ?


Thanks

Parents Reply
  • I just made some rework on the PCB, and replaced both the crystals by Epson's Q22FA12800025 and FC-135 32.768KHZ ±20PPM,9.0PF and put the Substitute crystals on an old working PCB.

    The Old working PCB is still working even with the new substitute crystal, while the new PCB is still not working even with the Epson recommended crystals. 

    This means the issue does not come from the crystals. What other hardware issue can cause ble_stack_init() to crash? 

    (I tested the PCB with peripheral test example firmwares, and it seems to be working properly it only crashes with bluetooth examples at ble_stack_init())

    Thanks

Children
Related