From the ATMEGAxx8 datasheet...
11.1 Resetting the AVR
... The I/O ports of the AVR are immediately reset to their initial state when a reset source goes active. This does not require any clock source to be running.
(bold added)
Looking over the register descriptions for the Data Direction Registers, all bits have an initial value of 0
, corresponding to high impedance input.
...so it is safe to assume that all IO pins will be in a high impedance state a very short time after the RESET
pin goes low.
Caveats:
The clamping diodes are in-circuit even when pins are in high impedance state, so current will flow if the voltage on the pin is higher than Vcc or lower than Ground (at least until the diode blows up!).
Some Arduino pins are connected to other things besides just the pin on the MPU. For example, digital pin 13 is connected to ground though a resistor and diode, so current will flow into it if you connect a voltage higher than the threshold for the diode. On the Uno there are also resistors on the RX and TX pins connected to the serial communications link, so current can flow there too.
The MISO pin can inadvertently become an output while
RESET
is held low if the Programming Enable command ($AC 53ドル xx yy) is transmitted over the MOSI & SCK lines. This process is described in App Note AVR910.
From the ATMEGAxx8 datasheet...
11.1 Resetting the AVR
... The I/O ports of the AVR are immediately reset to their initial state when a reset source goes active. This does not require any clock source to be running.
(bold added)
Looking over the register descriptions for the Data Direction Registers, all bits have an initial value of 0
, corresponding to high impedance input.
...so it is safe to assume that all IO pins will be in a high impedance state a very short time after the RESET
pin goes low.
Caveats:
The clamping diodes are in-circuit even when pins are in high impedance state, so current will flow if the voltage on the pin is higher than Vcc or lower than Ground (at least until the diode blows up!).
Some Arduino pins are connected to other things besides just the pin on the MPU. For example, digital pin 13 is connected to ground though a resistor and diode, so current will flow into it if you connect a voltage higher than the threshold for the diode. On the Uno there are also resistors on the RX and TX pins connected to the serial communications link, so current can flow there too.
The MISO pin can inadvertently become an output while
RESET
is held low if the Programming Enable command ($AC 53ドル xx yy) is transmitted over the MOSI & SCK lines. This process is described in App Note AVR910.
From the ATMEGAxx8 datasheet...
11.1 Resetting the AVR
... The I/O ports of the AVR are immediately reset to their initial state when a reset source goes active. This does not require any clock source to be running.
(bold added)
Looking over the register descriptions for the Data Direction Registers, all bits have an initial value of 0
, corresponding to high impedance input.
...so it is safe to assume that all IO pins will be in a high impedance state a very short time after the RESET
pin goes low.
Caveats:
The clamping diodes are in-circuit even when pins are in high impedance state, so current will flow if the voltage on the pin is higher than Vcc or lower than Ground (at least until the diode blows up!).
Some Arduino pins are connected to other things besides just the pin on the MPU. For example, digital pin 13 is connected to ground though a resistor and diode, so current will flow into it if you connect a voltage higher than the threshold for the diode. On the Uno there are also resistors on the RX and TX pins connected to the serial communications link, so current can flow there too.
The MISO pin can inadvertently become an output while
RESET
is held low if the Programming Enable command ($AC 53ドル xx yy) is transmitted over the MOSI & SCK lines. This process is described in App Note AVR910.
From the ATMEGAxx8 datasheet...
11.1 Resetting the AVR
... The I/O ports of the AVR are immediately reset to their initial state when a reset source goes active. This does not require any clock source to be running.
(bold added)
Looking over the register descriptions for the Data Direction Registers, all bits have an initial value of 0
, corresponding to high impedance input.
...so it is safe to assume that all IO pins will be in a high impedance state a very short time after the RESET
pin goes low.
Caveats:
The clamping diodes are in-circuit even when pins are in high impedance state, so current will flow if the voltage on the pin is higher than Vcc or lower than Ground (at least until the diode blows up!).
Some Arduino pins are connected to other things besides just the pin on the MPU. For example, digital pin 13 is connected to ground though a resistor and diode, so current will flow into it if you connect a voltage higher than the threshold for the diode. On the Uno there are also resistors on the RX and TX pins connected to the serial communications link, so current can flow there too.
The MISO pin can inadvertently become an output while
RESET
is held low if the Programming Enable command ($AC 53ドル xx yy) is transmitted over the MOSI & SCK lines. This process is described in App Note AVR910 .
Programming Mode Thoughts:
As @IgnacioVazquez-Abrams points out in the comments, the RESET
pin is also involved in activating the device Memory Programming modes. We need to be sure that we do not inadvertently enter a programming mode since this could cause some pins to start driving or sinking current.
Here is what the datasheet says about entering the 2 possible programming modes:
Parallel Programming Mode
28.7.1#3: Wait 20 - 60 μs, and apply 11.5 - 12.5V to RESET.
Since you are holding RESET
at 0 volts, you should not be able to inadvertently enter this mode.
Serial Downloading Mode
28.8.2#1: Apply power between VCC and GND while RESET and SCK are set to "0". In some systems, the programmer can not guarantee that SCK is held low during power-up. In this case, RESET must be given a positive pulse of at least two CPU clock cycles duration after SCK has been set to "0"."
My reading of this is that there is you must hold the RESET
pin low during power up to enter serial downloading mode. So, as long as the OP is pulling the RESET
pin to ground after the part has already been powered up, then it should not inadvertently enter serial programming mode.
Disclaimer: I have not tested the above statements on entering programming modes and everything stated is based solely on my interpretation of the datasheets. I'd love to be corrected by someone with a better reading or experience with these modes!
From the ATMEGAxx8 datasheet...
11.1 Resetting the AVR
... The I/O ports of the AVR are immediately reset to their initial state when a reset source goes active. This does not require any clock source to be running.
(bold added)
Looking over the register descriptions for the Data Direction Registers, all bits have an initial value of 0
, corresponding to high impedance input.
...so it is safe to assume that all IO pins will be in a high impedance state a very short time after the RESET
pin goes low.
Caveats:
The clamping diodes are in-circuit even when pins are in high impedance state, so current will flow if the voltage on the pin is higher than Vcc or lower than Ground (at least until the diode blows up!).
Some Arduino pins are connected to other things besides just the pin on the MPU. For example, digital pin 13 is connected to ground though a resistor and diode, so current will flow into it if you connect a voltage higher than the threshold for the diode. On the Uno there are also resistors on the RX and TX pins connected to the serial communications link, so current can flow there too.
Programming Mode Thoughts:
As @IgnacioVazquez-Abrams points out in the comments, the RESET
pin is also involved in activating the device Memory Programming modes. We need to be sure that we do not inadvertently enter a programming mode since this could cause some pins to start driving or sinking current.
Here is what the datasheet says about entering the 2 possible programming modes:
Parallel Programming Mode
28.7.1#3: Wait 20 - 60 μs, and apply 11.5 - 12.5V to RESET.
Since you are holding RESET
at 0 volts, you should not be able to inadvertently enter this mode.
Serial Downloading Mode
28.8.2#1: Apply power between VCC and GND while RESET and SCK are set to "0". In some systems, the programmer can not guarantee that SCK is held low during power-up. In this case, RESET must be given a positive pulse of at least two CPU clock cycles duration after SCK has been set to "0"."
My reading of this is that there is you must hold the RESET
pin low during power up to enter serial downloading mode. So, as long as the OP is pulling the RESET
pin to ground after the part has already been powered up, then it should not inadvertently enter serial programming mode.
Disclaimer: I have not tested the above statements on entering programming modes and everything stated is based solely on my interpretation of the datasheets. I'd love to be corrected by someone with a better reading or experience with these modes!
From the ATMEGAxx8 datasheet...
11.1 Resetting the AVR
... The I/O ports of the AVR are immediately reset to their initial state when a reset source goes active. This does not require any clock source to be running.
(bold added)
Looking over the register descriptions for the Data Direction Registers, all bits have an initial value of 0
, corresponding to high impedance input.
...so it is safe to assume that all IO pins will be in a high impedance state a very short time after the RESET
pin goes low.
Caveats:
The clamping diodes are in-circuit even when pins are in high impedance state, so current will flow if the voltage on the pin is higher than Vcc or lower than Ground (at least until the diode blows up!).
Some Arduino pins are connected to other things besides just the pin on the MPU. For example, digital pin 13 is connected to ground though a resistor and diode, so current will flow into it if you connect a voltage higher than the threshold for the diode. On the Uno there are also resistors on the RX and TX pins connected to the serial communications link, so current can flow there too.
The MISO pin can inadvertently become an output while
RESET
is held low if the Programming Enable command ($AC 53ドル xx yy) is transmitted over the MOSI & SCK lines. This process is described in App Note AVR910 .
From the ATMEGAxx8 datasheet...
11.1 Resetting the AVR
... The I/O ports of the AVR are immediately reset to their initial state when a reset source goes active. This does not require any clock source to be running.
(bold added)
Looking over the register descriptions for the Data Direction Registers, all bits have an initial value of 0
, corresponding to high impedance input.
...so it is safe to assume that all IO pins will be in a high impedance state a very short time after the RESET
pin goes low.
Caveats:
The clamping diodes are in-circuit even when pins are in high impedance state, so current will flow if the voltage on the pin is higher than Vcc or lower than Ground (at least until the diode blows up!).
Some Arduino pins are connected to other things besides just the pin on the MPU. For example, digital pin 13 is connected to ground though a resistor and diode, so current will flow into it if you connect a voltage higher than the threshold for the diode. On the Uno there are also resistors on the RX and TX pins connected to the serial communications link, so current can flow there too.
Programming Mode Thoughts:
As @IgnacioVazquez-Abrams points out in the comments, the RESET
pin is also involved in activating the device Memory Programming modes. We need to be sure that we do not inadvertently enter a programming mode since this could cause some pins to start driving or sinking current.
Here is what the datasheet says about entering the 2 possible programming modes:
Parallel Programming Mode
28.7.1#3: Wait 20 - 60 μs, and apply 11.5 - 12.5V to RESET.
Since you are holding RESET
at 0 volts, you should not be able to inadvertently enter this mode.
Serial Downloading Mode
28.8.2#1: Apply power between VCC and GND while RESET and SCK are set to "0". In some systems, the programmer can not guarantee that SCK is held low during power-up. In this case, RESET must be given a positive pulse of at least two CPU clock cycles duration after SCK has been set to "0"."
My reading of this is that there is you must hold the RESET
pin low during power up to enter serial downloading mode. So, as long as the OP is pulling the RESET
pin to ground after the part has already been powered up, then it should not inadvertently enter serial programming mode.
Disclaimer: I have not tested the above statements on entering programming modes and everything stated is based solely on my interpretation of the datasheets. I'd love to be corrected by someone with a better reading or experience with these modes!
From the ATMEGAxx8 datasheet...
11.1 Resetting the AVR
... The I/O ports of the AVR are immediately reset to their initial state when a reset source goes active. This does not require any clock source to be running.
(bold added)
Looking over the register descriptions for the Data Direction Registers, all bits have an initial value of 0
, corresponding to high impedance input.
...so it is safe to assume that all IO pins will be in a high impedance state a very short time after the RESET
pin goes low.
Caveats:
The clamping diodes are in-circuit even when pins are in high impedance state, so current will flow if the voltage on the pin is higher than Vcc or lower than Ground (at least until the diode blows up!).
Some Arduino pins are connected to other things besides just the pin on the MPU. For example, digital pin 13 is connected to ground though a resistor and diode, so current will flow into it if you connect a voltage higher than the threshold for the diode. On the Uno there are also resistors on the RX and TX pins connected to the serial communications link, so current can flow there too.
From the ATMEGAxx8 datasheet...
11.1 Resetting the AVR
... The I/O ports of the AVR are immediately reset to their initial state when a reset source goes active. This does not require any clock source to be running.
(bold added)
Looking over the register descriptions for the Data Direction Registers, all bits have an initial value of 0
, corresponding to high impedance input.
...so it is safe to assume that all IO pins will be in a high impedance state a very short time after the RESET
pin goes low.
Caveats:
The clamping diodes are in-circuit even when pins are in high impedance state, so current will flow if the voltage on the pin is higher than Vcc or lower than Ground (at least until the diode blows up!).
Some Arduino pins are connected to other things besides just the pin on the MPU. For example, digital pin 13 is connected to ground though a resistor and diode, so current will flow into it if you connect a voltage higher than the threshold for the diode. On the Uno there are also resistors on the RX and TX pins connected to the serial communications link, so current can flow there too.
Programming Mode Thoughts:
As @IgnacioVazquez-Abrams points out in the comments, the RESET
pin is also involved in activating the device Memory Programming modes. We need to be sure that we do not inadvertently enter a programming mode since this could cause some pins to start driving or sinking current.
Here is what the datasheet says about entering the 2 possible programming modes:
Parallel Programming Mode
28.7.1#3: Wait 20 - 60 μs, and apply 11.5 - 12.5V to RESET.
Since you are holding RESET
at 0 volts, you should not be able to inadvertently enter this mode.
Serial Downloading Mode
28.8.2#1: Apply power between VCC and GND while RESET and SCK are set to "0". In some systems, the programmer can not guarantee that SCK is held low during power-up. In this case, RESET must be given a positive pulse of at least two CPU clock cycles duration after SCK has been set to "0"."
My reading of this is that there is you must hold the RESET
pin low during power up to enter serial downloading mode. So, as long as the OP is pulling the RESET
pin to ground after the part has already been powered up, then it should not inadvertently enter serial programming mode.
Disclaimer: I have not tested the above statements on entering programming modes and everything stated is based solely on my interpretation of the datasheets. I'd love to be corrected by someone with a better reading or experience with these modes!