What would the 1K resistor do in this case? is it working as a pulldown resistor on the DTR line?
-
When you apply power to your circuit, the Reset pin on the Atmega328 is made LOW, through capacitor C8 and this 1k resistor.
C8 then charges up to 5v through R3. -
C8 and the 1k resistor are essentially a power up reset signal generator.
When C8 is charged, the Reset pin on the 328 is HIGH, hence the 328 starts your program running. -
When DTR is HIGH, C8 discharges, when DTR goes LOW, C8 makes the Reset pin on the 328 go LOW, hence reboots the 328.
Oh it makes sense now. So basically we want the 328 to reset on the falling edge of the DTR signal.
-
We reset the 328 at power on time and when DTR occurs when uploading sketches.
-
DTR is being used to tell the Arduino to go into boot-loader mode (restart/startup).
DTR then releases the Arduino to load the new sketch into memory under boot-loader management.
This why it is important to make sure we burn boot-loader code onto a fresh 328 straight from the factory; makes things a bit more friendly for new users. -
Without this boot-loader we would need to use the ICSP pins to get our sketch into the controller.
Note the boot-loader takes up some memory in the controller but makes it friendly to use the controller as an Arduino.