Skip to main content
Arduino

Return to Answer

Commonmark migration
Source Link

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:

  1. 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!).

  2. 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.

  3. 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:

  1. 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!).

  2. 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.

  3. 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:

  1. 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!).

  2. 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.

  3. 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.

Added Caveat about programming mode
Source Link
bigjosh
  • 1.6k
  • 10
  • 13

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:

  1. 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!).

  2. 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.

  3. 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:

  1. 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!).

  2. 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:

  1. 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!).

  2. 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.

  3. 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 .

update to add section on entering programming modes
Source Link
bigjosh
  • 1.6k
  • 10
  • 13

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:

  1. 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!).

  2. 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:

  1. 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!).

  2. 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:

  1. 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!).

  2. 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!

Source Link
bigjosh
  • 1.6k
  • 10
  • 13
Loading
lang-cpp

AltStyle によって変換されたページ (->オリジナル) /