I am working on a project where I want to programm the atmega via usb serial connection, just like an arduino. In order to do that, I have wired up both chips as the documentation suggests. The reset circuit should be similar to the one, used by the arduino uno.

My problem appears when I am uploading a sketch, the reset pin on the arduino isn't trigged by the CP2102N. When reseting the Atmega manually in the right moment everything seems to work fine. As I just have to give an logic LOW pulse(in the right moment) to the reset pin, I am using following circuit: enter image description here

My guess is that the setting of the DTR Pin is wrong, which I configured in simplicity Studio. enter image description here

Do you have any idea what is causing this problem?

Is it even correct to use a reset circuit, which was actually indented for another chip?

If more Information is needed please remind me kindly. Thank you for any feedback.

EDIT: The state of DTR pulses to HIGH just when I upload and falls down to LOW afterwards. What is needed at RESET is excaly the opposite: HIGH all the the time and should fall down to GND just when uploading. The state of RESET with given circuit is constantly HIGH right now.

Do you think a different value of the capacitor would solve that? Is a closed transistor a better and easier method for this application?

  • 2
    \$\begingroup\$ Does reset need to be held low throughout programming? \$\endgroup\$ – Andy aka Sep 12 '20 at 13:50
  • 1
    \$\begingroup\$ You should figure out if DTR never changes or if DTR changing does not cause reset to pulse low. Typically the Arduino reset helper software drives both DTR and RTS as each has been used in some boards, but you could try switching to RTS and see if you get any different result. Also make sure you actually got that QFN metalization soldered to the board - inspect at 10x magnification from an angle so you can see in there. \$\endgroup\$ – Chris Stratton Sep 12 '20 at 13:50
  • 3
    \$\begingroup\$ @Andyaka no, if reset were low the bootloader could not run. It's pulsed low to get into the bootloader, and the programming commands then have to start before the bootloader times out. \$\endgroup\$ – Chris Stratton Sep 12 '20 at 13:51
  • 1
    \$\begingroup\$ I've had luck with a similar situation by changing that resistor to a 22 kOhm. Might be worth a try. \$\endgroup\$ – evildemonic Sep 12 '20 at 14:36
  • \$\begingroup\$ @evildemonic Thank you for your reply. Unfortunately this couldn't solve my problem, but thank you anyway for your suggestion :) \$\endgroup\$ – Paul Sep 13 '20 at 5:37

!SOLVED! I changed the capacitor to a higher value (10µF). The upload does take longer now, as I have a longer reset procedure.(around one second more)


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.