This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM3505 Warm Reset

Other Parts Discussed in Thread: AM3505, AM3517

I'm looking at the SYS_nRESWARM signal on the AM3505, and I'm a little confused on three things.

First, the functionality of the signal:

To me, it looks like the docs are saying that this is a bidirectional pin that, when configured for SYS_nRESWARM functionality (as it is on power-up) and pulled low, causes the CPU to reset. On the other hand, if I'm understanding the documentation correctly, it also becomes an output and drives low when the nRESPWRON signal to the CPU is driven low, or it can be driven low manually under software control. So, my questions on the functionality of the signal are:

1: How is the signal driven low in software? Can the GPIO1.OE and GPIO1.DATAOUT registers just be set to output a zero, or does the PADCONF register for that pin need to be set for mode 5, switching its functionality to GPIO first?

2: If, in software, SYS_nRESWARM is driven low to cause attached peripherals to reset, will the CPU reset also, or is the PRCM smart enough to know that the CPU is asserting the signal on purpose, so it can be safely ignored?

Next, on the need for a pullup/pulldown:

On the LogicPD SoM schematic, there's a "do not stuff" pullup resistor connected to the SYS_nRESWARM signal (which also goes to a buffer, which then leads to various peripherals whose reset is desired if the CPU should get a hard reset signal from the PMIC), but there's also not one, but two notes on separate pages saying "open collector only, no pullup".

Thing is, in the tech ref manual for the AM35xx, on page 195 (among others), that signal is shown being pulled up with an external resistor. So, the question on this is:

Is there really a need for a pullup, or is the internal pullup in the CPU sufficient?

Finally, on the preferred mechanism for implementing a reset button:

On the LogicPD design, there doesn't seem to be any device or switch that's capable of pulling nRESWARM low. Instead, on the thing that they call the "experimenter board" (which is the board to which the AM3517 SoM connects), there's a reset button which pulls a signal that they call "MSTR_nRST" low, and that signal, in turn, goes up to the SoM and pulls the \HOT_RESET pin on the PMIC low, which then causes the PMIC to pull its \RESPWRON signal low.

The PMIC's \RESPWRON signal is connected to the SYS_nRESPWRON signal on the CPU, so this causes the CPU to reset.

However, in the AM35xx technical manual, again on page 195, you show a button connected to SYS_nRESWARM, but not to the SYS_nRESPWRON signal. This leads us to the question:

Is there a preferred mechanism for resetting the CPU? If so, can you explain the reasoning that leads to the preference?

 

  • Hi Katie,

    #1 the functionality of the signal:

    KatieRoberts-Hoffman said:
    1: How is the signal driven low in software? Can the GPIO1.OE and GPIO1.DATAOUT registers just be set to output a zero, or does the PADCONF register for that pin need to be set for mode 5, switching its functionality to GPIO first?

    The warm reset signal will be driven low when RST_GS bit in PRM_RSTCTRL register is asserted.

    KatieRoberts-Hoffman said:
    2: If, in software, SYS_nRESWARM is driven low to cause attached peripherals to reset, will the CPU reset also, or is the PRCM smart enough to know that the CPU is asserting the signal on purpose, so it can be safely ignored?


    Yes, CPU will be in reset when sys_nreswarm is driven low. The modules that are not in reset by the warm reset are listed in the section "4.5.2.2 Occurrence" in the TRM. The device doesn't require a complete reboot on warm reset since these modules settings are remained.

    #2 on the need for a pullup/pulldown:

    Please refer below wiki about the details of sys_nreswarm signal implementation on LogicPD SoM and recommendation.
    http://processors.wiki.ti.com/index.php/AM35x_Schematic_Checklist#RESETS

    #3 on the preferred mechanism for implementing a reset button:

      sys_nrespwron is mainly to reset the full logic in the device during power up sequence. The diagram on page 195 shows an example with companion PMIC. The power sequence including sys_nrespwron signal assertion will be sequenced by PMIC, so a button is not shown in the diagram. However you might want to have a reset button on your board as it can be helpful for development.  so please add a button to the power on reset input pin of PMIC.

      sys_nreswarm can be activated at any time by an external device or an external reset push-button action to cause a global warm reset event. Because sys_nreswarm is bidirectional, it can also be used to drive a reset of external devices. Any global warm reset source (for example, a push-button) causes sys_nreswarm to be driven out and maintained for a limited length of time at the boundary of the device. In this way, the device and its related peripherals are properly reset together.

  • I have a new design using the AM3505 in which we did follow the notes on the wiki site for the connection of the sys_nreswarm signal.  In our design, sys_nrespwron is connected to the PMIC controller's output (RESPWRON#).  The sys_nreswarm is connected to a 4.75k pull-up to 1.8V and then the input of a buffer gate.  When sys_nrespwron is asserted, the sys_reswarm signal goes from 1.8V down to 1.2V.  When sys_respwron de-asserts, then sys_nreswarm goes low (~0V) for a pre determined time and then goes back high to 1.8V.  We thought the sys_nreswarm would go low when sys_nrespwron is low.  Similar to Katie's question above, do we need a pull-up on sys_nreswarm if we are only using this pin in its reset mode as opposed to its GPIO mode which is an open drain configuration?