-
Notifications
You must be signed in to change notification settings - Fork 3
Closed
Labels
questionFurther information is requestedFurther information is requested
Description
The bootrom code starts the XOSC, and waits for a startup delay, but does not set the STARTUP register beforehand (at least I can't find it).
https://github.com/raspberrypi/pico-bootrom/blob/00a4a19114195e20fb817bdfbca1165e157eef37/bootrom/bootrom_main.c#L137-L146
// Try to get the crystal running. If no crystal is present, XI should be
// grounded, so STABLE counter will never complete. Poor designs might
// leave XI floating, in which case we may eventually drop through... in
// this case we rely on PLL not locking, and/or resuscitate counter.
//
// Don't touch range setting: user would only have changed if crystal
// needs it, and running crystal out of range can produce glitchy output.
// Note writing a "bad" value (non-aax) to RANGE has no effect.
xosc_hw->ctrl = XOSC_CTRL_ENABLE_VALUE_ENABLE << XOSC_CTRL_ENABLE_LSB;
while (!(xosc_hw->status & XOSC_STATUS_STABLE_BITS));But there is not a reset value given in the datasheet:

Is the bootroom code expecting and depending on a particular reset value for STARTUP? Thanks.
This may be relevant to raspberrypi/pico-sdk#401 (comment).
Metadata
Metadata
Assignees
Labels
questionFurther information is requestedFurther information is requested