0
\$\begingroup\$

I have two identical boards both equipped with ATxmega128A. I am using Atmel-ICE for programming using PDI Interface.

  • The first board, I can read the device signature without any issues.
  • On the second board, the error "unable to enter programming mode" appears.

After some trial and error, I changed the PDI Clock of Atmel ICE from default 4MHz to 1MHz. Now I am able to read the signature of both devices.

Question: How is it possible that 100% identical boards where one works with 4MHz PDI Clock and the other one only with 1MHz PDI clock?

\$\endgroup\$
1
  • 4
    \$\begingroup\$ Since they behave differently, they can't be 100% identical, can they? \$\endgroup\$
    – Cuadue
    Sep 27, 2017 at 23:27

1 Answer 1

1
\$\begingroup\$

Apparently your particular design implementation (PCB layout, traces, components, pullups, etc) is marginal for this interface to work at 4MHz. Given the spectrum of manufacturing tolerances, some samples are lucky to work at 4MHz, some not. It is likely that if you manage to have, say, 3.5MHz clock, both boards will work fine.

\$\endgroup\$
6
  • \$\begingroup\$ I have tried with 3.5Mhz down to 1.5 Mhz and no response at all. Luckily only at 1Mhz it works. I am going to get a Scope and compare the clock lines I guess. \$\endgroup\$
    – Coby Brown
    Oct 5, 2016 at 19:14
  • \$\begingroup\$ Interesting. You probably need to compare position of clock edges relative to data transitions, in both transfer directions. \$\endgroup\$ Oct 5, 2016 at 19:36
  • 4
    \$\begingroup\$ From your clarifications it now looks like the clock line has a fault somewhere, maybe at MCU I/O port level. The 1.5V level is brutally abnormal, so the root cause must be determined. \$\endgroup\$ Oct 5, 2016 at 21:33
  • 5
    \$\begingroup\$ So I found the problem. It turns out the boards are not 100% identical. The good Board had no reset button. On the faulty one there was a reset button and addional cap to VCC on the reset line. After removal of the cap everything worked fine. I suspect that the cap was there for debouncing the button but used the wrong size. \$\endgroup\$
    – Coby Brown
    Oct 10, 2016 at 11:18
  • 2
    \$\begingroup\$ @CobyBrown Having caps on reset lines prevents accidental resets from noisy environments. It's a known issue with DebugWire (ISP protocol that atmel uses) that you CANNOT have a cap on the line. Nice catch on it. See:atmel.com/webdoc/avrdragon/avrdragon.troubleshooting.html (dragon was the old ICE) \$\endgroup\$
    – bathMarm0t
    Oct 28, 2017 at 5:23

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.