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:
- 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.
- 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?
-
1\$\begingroup\$ No pull up on reset? The datasheet also recommends some series resistance + filter capacitor IRC. \$\endgroup\$Wesley Lee– Wesley Lee2021年11月30日 10:12:16 +00:00Commented 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\$Tomáš Havel– Tomáš Havel2021年11月30日 10:14:59 +00:00Commented 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– Wesley Lee2021年11月30日 10:23:20 +00:00Commented 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– Wesley Lee2021年11月30日 10:24:15 +00:00Commented 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\$Tomáš Havel– Tomáš Havel2021年11月30日 12:50:53 +00:00Commented Nov 30, 2021 at 12:50
1 Answer 1
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.
-
\$\begingroup\$ I'll make the recommended adjustments and let you know! \$\endgroup\$Tomáš Havel– Tomáš Havel2021年11月30日 14:54:07 +00:00Commented Nov 30, 2021 at 14:54