on the raspberry PI 3 computer IO boards datasheet it has on page 10 (first sheet) is has the option to connect jumper 13-14 to wake up the computer module by connecting global_en to run_pg

run_pg is high when awake and low when halted and pulling global_en low for >1ms wakes the compute module

on page 11(second sheet) it has the rtc setup to reset the module (this appears to reset even if awake)

im looking to be able to wake the module in two situations

periodically if halted and if external power returned when on battery power (separate battery management IC)

  1. Would this circuit work for the RTC of is there a better way?

wake via RTC


simulate this circuit – Schematic created using CircuitLab

  1. I think i need a IC/circuit that on a rising edge on Power_Good connects Global_en to RUN_PG for > 1ms, the circuit for the RTC should generate the low pulse but im not sure about rising edge detection of the Power_Good signal from the regulator for external power

After some simulation an answer i have worked out using an CD4572UB, an SN74LV123A and the 74LVC1G07 from the original circuit as a follows


simulate this circuit – Schematic created using CircuitLab

P_GOOD is active high nRTC_INT is active low (an interrupt) RUN_PG is active high nRESET is active low (pulls GLOBAL_EN via low 74LVC1G07 open drain buffer)

the SN74LV123A contains two edge detectors, the one connected to P_Good detects rising edges when (external power is restored)

the one connected to nRTC_INT detects falling edges (effectively converting from active low to active high)

on the target edge transition the SN74LV123A produces a pulse (active high)

there may be more optimal chips than CD4572UB (4 NOTs, 1 NAND and 1 NOR) as two of the NOTs in that chip aren't used

0 0 0 1 0
0 1 0 0 1
1 0 0 1 0
1 1 0 1 0
0 0 1 0 1
0 1 1 0 1
1 0 1 0 1
1 1 1 0 1

the pulse width from the SN74LV123A may need some testing but in simulation a 100nF capacitor and 100k resistor give a 13mS pulse which is easily large enough (>1ms) for the reset

  • \$\begingroup\$ fireblade - Hi, Thanks for coming back. I see you have posted this in the answer section. If this is the final answer to your question, and you don't want / need further answers, then please consider accepting your answer (click the "tick mark" next to this answer, so it turns green) to indicate that the topic is solved, and to indicate to future readers that this is the solution and not just a progress update etc. Thanks! \$\endgroup\$ – SamGibson Mar 29 at 18:15
  • \$\begingroup\$ I may accept later, but want to see if anyone has any better suggestions and to test it first \$\endgroup\$ – fireblade Mar 30 at 14:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.