5 Replies Latest reply on Sep 29, 2017 2:30 PM by e.pratt_1639216

    Keep pin state high after software reset

    dpelaezm_1818056

      Hello.

       

      I am using the proc BLE module with the upgradable stack ble bootloader. I used the example launcher and stack in my application and I am able to upgrade the firmware. The only issue I am having is that I use a pin to keep the power supply enabled. After the software reset my system turns off because the pin doesn't stay high, so to upgrade the firmware I have to turn it on again and the chip enters bootloader mode.

       

      What I want to avoid is having to turn on the system again and to enter bootloader mode immediately after it receives the command. I already defined the same pin in the launcher and stack as an output with an initial state of high, but the pin is not keeping its state.

       

      Is there anyway to keep the pin state high after a reset or is there another way to jump to the bootloader without doing the software reset?

        • 1. Re: Keep pin state high after software reset
          user_1377889

          The pins are in high-z after reset until the configuration is done. So when using an external pull up resistor (5K) will keep the pin high.

           

          Bob

          • 2. Re: Keep pin state high after software reset
            dpelaezm_1818056

            I have implemented similar functionality using other microcontrollers and they do keep their pin state after a software reset, so I thought it was also possible with psoc without using an external resistor.

            • 3. Re: Keep pin state high after software reset
              ntan

              Please let me ask a question.

              I understand that a power supply control pin is driven by the PRoC BLE which becomes Hi-Z during the PRoC BLE's reset sequence.

              Then, how do this power supply control signal play during power-on?  Who does enable the power supply?

               

              If this control signal is re-defined as a LOW-ACTIVE signal pulled up to VDD to disable the power supply, it is better to understand the system.

               

              Regards,

              Noriaki

              • 4. Re: Keep pin state high after software reset
                dpelaezm_1818056

                The power supply enable is controlled by 2 inputs the signal from the proc and a button, that is connected to a battery.

                 

                Initially, to turn on the system, the button is pressed this enables the power supply and the first action the proc module does is set its signal high to keep the power supply enabled. Once the user releases the button the power supply remains on because of the signal from the module.

                 

                The button is also connected to an input of the proc module, for user actions. For example to turn off the module the button is pressed for a certain amount of time and the proc module sets the signal low. After the user releases the button the power supply is turned off.

                 

                To enter the bootloader, I write a value to a ble characteristic and the program sets that it wants to enter the bootloader and does the software reset. The problem I have, as mentioned before, is that the signal switches to the high impedance state, and it's not possible to connect a pullup resistor with the current pcb design.

                 

                What I would like to know is if there is a way to jump to the bootloader so that the output remains high.

                • 5. Re: Keep pin state high after software reset
                  e.pratt_1639216

                  The Bootloader component has the Bootloader_Start() function under its datasheet. I would start there. (It does mention that it resets the unit upon successful loading of a new bootload image however).