Reset behaviour of GPIO-Pins

  • Hello there,


    we use the PicoCoreMX8MM and we use one GPIO to be able to reset another MCU on the board.

    Now we have realised that everytime the PicoCore reboots, the MCU also resets, which means the GPIO line triggers the reset.


    This is our setup simplified:


    So we have an external pull-up resistor pulling to line to 3V3.


    According to the datasheet of the i.MX8MM all the GPIOs reset with an internal pull-down enabled.

    In the device-tree picocoremx8mm.dtsi the pin is also configured to use the internal pull-down.

    Code
    1. 1104 MX8MM_IOMUXC_SAI1_RXD6_GPIO4_IO8 0x00104


    So I changed that value to 0x00140 (enable pull-up) in the device-tree files for the kernel and u-boot.

    Still no change in behaviour, the MCU still resets whenever the PicoCore reboots.


    So I took a look at the signal line at reset:


    Here I see that after reset the pull-down is active and the line is at ~2,8V, after some time U-Boot configures the pin to use the pull-up and the line goes up to 3V3.

    What I can't explain is the short drop to ~1,5V right at the beginning of the reset.


    From a previous post here I know that the SW-Reset is done by resetting the PMIC, which then reset everything.

    Could that somehow play a role in our issue?

    Is it possible that all the pins are pulled low at reset due to the PMIC reset?

    Or does this pin (GPIO_J2_77) have any special behaviour, because in the device-tree there is an option for it to be used for USB-C OTG alert?


    Thank you guys in advance!


    Best regards,

    Stefan

  • The PMIC of the PicoCore disables the voltages at reset. Depending on the extenal wiring of the PicoCore it is possible, that current is fed back to the PicoCore from the baseboard. Then the voltage is never shut off completly.

    You can send the schematic of your baseboard and a description of the desired behaviour to support@fs-net.de so we can have a look at it and can suggest a solution.

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • So I tried the same setup with an external pull-up with the PicoCoreBBDSI and it behaved the same...

    I then took a look at the behaviour of a GPIO without any external connections and found something interesting:


    Setup:

    PicoCoreBBDSI (v1.4) + PicoCoreMX8MM-V1-LIN

    Monitored Pin: GPIO_J1_54 on the Feature-Connector (Pin 8 )



    So whenever I trigger a reset (e.g. reset command in U-Boot) this is what I see on the Pin GPIO_J1_54 on the feature connector.
    So for about 300ms it jumps to ~2.1V...


    Is that supposed to happen?
    Seems a bit strange to me...


    Best regards,

    Stefan

  • the 3.3V voltage regulator on the base board is controlled by the 3.3V output of the PicoCore.

    The PicoCore PMIC disables the 3.3V on the PicoCore during reset and the 3.3V on the base board is switched off.

    But if voltage from the base board is fed back to the PicoCore, the 3.3V on the PicoCore never drop below the switching threshold of the voltage regulator and the 3.3V on the base board never switches off.

    A possible solution could be to use a voltage divider on the EN pin of the voltage regulator.

    Since the RT8070 needs 1.6V for enable, a resistor in the range of 150k could work.



    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Ok, good to know.

    But the waveform shown in my last answer comes directly from the SoM Pin J1_54, which shouldn't be affected by +3V3 generated on the baseboard (PicoCoreBBDSI), right?
    It is pin 8 on the feature connector.

    It is directly connected to the SoM and should be purely driven by the SoM.


    There is no external pull-up or anything connected to it.


    Why does it jump to ~2.1V for about 300ms when there is nothing connected to it?

  • But the waveform shown in my last answer comes directly from the SoM Pin J1_54, which shouldn't be affected by +3V3 generated on the baseboard (PicoCoreBBDSI), right?

    We have observed that the +3V3 voltage of the baseboard may be fed back via the serial level shifter to some GPIOs of the SoC. This in turn holds the SOM voltage VDD_3V3 on some middle value of around 1.5V, despite the fact that the SOM's PMIC is switched off. This 1.5V is high enough on the above EN pin of U22 to be detected as high, thus keeping the +3V3 of the baseboard running. So the idea of the additional pull-down is to pull the voltage below the trigger level of the EN pin, so that the +3V3 of the baseboard is safely switched off. Then also the VDD_3V3 of the SOM goes completely off.


    Your F&S Support Team

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Hello again,

    we finally got around to work on this issue again and tried it with the recommended pull down resistor on the EN pin of U22.

    Setup: PicoCoreBBDSI Rev 1.40 + PicoCoreMX8MM-V1-LIN



    This is the waveform of the EN pin on U22 while reset.

    The voltage drops from ~2,1V to 1,4V, which is still far off the needed 0,4V the RT8070 needs for a low signal.

    The waveform on GPIO_J1_54 still looks the same as before.


    Can you confirm that this workaround works on your side?


    We are kind of clueless, because we don't have the VDD_3V3 pin of the PicoCore connected, because we generate our own 3V3 on the baseboard.
    VDD_VBAT, VDD_SNVS, VDD_3V3 are all not connected on our design.


    Thank you again for the support!

    Best regards,

    Stefan

  • If you use an external 3.3V supply, you have to make sure, that the voltage is not applied to the PicoCore pins during reset.

    If voltage to the PicoCore pins is applied, then the processor is powered through this voltage.


    You have to decouple the PicoCore from your 3.3V supply to get 0V.

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.