1
\$\begingroup\$

Recently I have designed my custom PCB board, which includes a SAMD21E18A. Unfortunately, I am having trouble with programming. I am enclosing the schematic (please ignore the quality of the schematic, it is still a work in progress). It should also be noted that all other active components on the board were desoldered and only MCU, LDO, programming header, and a couple of passive components are present.

For programming, I am using the Microchip Studio with ATMEL ICE programmer. My problem is as follows:

  1. SOMETIMES, I am unable to read the device signature. However, the target voltage is stable at 3.3V. It seems to read the signature just sometimes, usually the signature is read a couple of times after the MCU is powered, and then it suddenly stops responding.
  2. Since I could not resolve this problem (I am unfortunately unable to test the programmer on a different board), I tried to conduct some measurements. One unexpected thing I could measure is a voltage of 0.6-0.7V at the RESET line while the ATMEL ICE is connected.

To conclude, I would like to ask if anyone has ever experienced similar behavior (the MCU is clearly not dead since I am able to read the signature once in a while). Do you think there is a chance my programmer/debugger ATMEL ICE may be faulty?

enter image description here

\$\endgroup\$
9
  • 1
    \$\begingroup\$ No pull up on reset? The datasheet also recommends some series resistance + filter capacitor IRC. \$\endgroup\$
    – Wesley Lee
    Nov 30, 2021 at 10:12
  • \$\begingroup\$ This type of programming header connection was many years ago presented to me by a teacher. Would you say there is a need for pull-up resistor on reset pin? \$\endgroup\$ Nov 30, 2021 at 10:14
  • \$\begingroup\$ There is no absolute need for an external reset pull up resistor since there is an internal pull up, but I always find it safe to add an external resistor. Have you checked the datasheet? Pages 1110 onwards: ww1.microchip.com/downloads/en/DeviceDoc/… \$\endgroup\$
    – Wesley Lee
    Nov 30, 2021 at 10:23
  • 2
    \$\begingroup\$ Also, the recommended capacitance for VDDCore is 1uF, you have 100nF in your schematic. \$\endgroup\$
    – Wesley Lee
    Nov 30, 2021 at 10:24
  • \$\begingroup\$ I added the pull-up resistor on the RESET line. It worked for a while, but I am back to the same error. It should also be said that even when programming is not available (can't read signature), the MCU still works (before it stopped working, I managed to program a pin toggling - basically a PWM and it keeps running) \$\endgroup\$ Nov 30, 2021 at 12:50

1 Answer 1

2
\$\begingroup\$

The manual can be found from the manufacturer https://www.microchip.com/en-us/product/ATsamd21g18 - download complete datasheet. (If you have the old Atmel datasheet like I did, it uses different chapter enumeration...)

Your design is quite different from manufacturer recommendations, chapter 45.

  • VDDCORE should have a 1uF cap (45.2.1 power supply connections)
  • SWCLK has internal pull-up - the external one may interfere(?) (13.6.2)
  • /Reset should have a 100nF cap (45.4 external reset circuit)
  • External pull-up on /reset typically recommended for high integrity applications (45.4 external reset circuit)
  • If you use external quartz then the layout + schematic of that is highly relevant to the question. See 45.5.2 for recommendations.

The VDDCORE and /reset caps are likely to be particularly critical.

\$\endgroup\$
1
  • \$\begingroup\$ I'll make the recommended adjustments and let you know! \$\endgroup\$ Nov 30, 2021 at 14:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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