Potential startup issues on 44MHz Rabbit 3000 products

In 2021, Digi identified a configuration issue in startup code in the Dynamic C 9.62A BIOS.  The boot sequence enables the clock doubler before enabling an “early output enable” feature (early /OE) for memory.

Initial testing had shown that early /OE was only necessary when using spectrum spreading on the doubled clock, so the BIOS would only enable early /OE before enabling spectrum spreading.

At the time, we were concerned about memory timing of 55ns flash devices on core modules with a 29MHz clock, but we didn’t get reports from any customers of timing issues.

In 2024, Digi troubleshot a customer issue on RCM3365 hardware where boards failed to start up when warmed above room temperature.  Boards would “cold” boot, but could only get through a reboot sequence if kept off long enough to return to room temperature.

Issue found:

The root cause was related to timing issues when executing code on the 10ns SRAM with 0 wait states and 22MHz clock doubled to 44MHz.  When running above room temperature, memory reads would fail if early /OE wasn’t enabled.

Solution:

Customers experiencing similar symptoms should try patching CPUPARAM.LIB and StdBios.c in Lib/BIOSLIB with the changes detailed in pull request #8 on Digi’s GitHub repository for Dynamic C 9.  Those updated files ensure that early /OE is enabled before the clock doubler, regardless of whether the firmware is using the spectrum spreader.

Related Products:

RCM3200, RCM3209, RCM3315, RCM3365, RCM3900, RCM3910

Last updated: Dec 10, 2024

Filed Under

Embedded

Recently Viewed

No recently viewed articles

Did you find this article helpful?