We made a board with LPC54608J512 BD208. We planned to use USB1 for flashing user code. We also have a 12MHz crystal on board. We also have a ISP-connector as secondary means to flash applications but rather not use it for production. So far the board does what it should, but we can't get USB1 working from bootloader.
When pulling down ISP2 the boot-ROM tries to initiate USB-connection. However the device isn't correctly registered as MSC by Windows, it just says "unknown device".
When we pull down ISP1 and ISP2 it's the same, it doesn't register as "LPC" as the demo boards (OM13092 and OM13098) do.
We have no idea how to debug or proceed.
It seems guanix asked the same question in another thread Crystal value for LPC546xx USB ISP bootloader
Is this a known problem? Any hints on how to find out what's going wrong?
TIC
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Thanks for your response.
The demo boards are correctly recognized when pushing ISP1 or ISP0.
It's just that our custom board is not. The only significant difference that I can see is the CPU package. Is there any possibility to cross check with another BD208 board design?
Have a great day,
TIC
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
If the USBs get recognized somehow, but just as unknown device, then this could be a performance problem in your USB implementation. Either coming from a clock problem (inaccurate or with jitter or both) or from an electrical problem on USB D+ / D- (impedance mismatch, wrong protection diode circuit etc.)
If you are able to download firmware over JTAG or UART ISP, then you could load a USB example and try this. If this works fine, then you could exclude my assumptions from above and we need to look somewhere else.
See here: https://community.nxp.com/thread/472764
Regards,
Bernhard.
Thanks for your input.
I tried the "MSC ramdisk lite" example, with same results. Demo boards do, our board does not.
So I removed ESD protection from our custom board, no change.
Next I checked the clocks using the fmeas example. I added some code to enable and measure the external oscillator:
CLOCK_Enable_SysOsc(true);
MeasureDisplay("12MHz ext oscillator (" EXAMPLE_REFERENCE_CLOCK_NAME " reference)", kINPUTMUX_MainOscToFreqmeas,
freqRef, CLOCK_GetExtClkFreq());
The results are very much the same on the custom board and the demo boards:
Capture source: Watchdog oscillator (main clock reference), reference frequency = 48000000 Hz
Computed frequency value = 600585 Hz
Expected frequency value = 500000 Hz
Capture source: RTC32K oscillator (main clock reference), reference frequency = 48000000 Hz
Computed frequency value = 32226 Hz
Expected frequency value = 32768 Hz
Capture source: 12MHz FRO oscillator (main clock reference), reference frequency = 48000000 Hz
Computed frequency value = 11997070 Hz
Expected frequency value = 12000000 Hz
Capture source: 12MHz ext oscillator (main clock reference), reference frequency = 48000000 Hz
Computed frequency value = 11988281 Hz
Expected frequency value = 12000000 Hz
I let it run for a while and got results from 11.970.703 Hz to 11.985.351 Hz.
I'd higly appreciate any further ideas.