1
\$\begingroup\$

I have a dev board developed by myself. I was using At91SAM7S256 but now I'm migrating to it's successor ATSAM3S8B. The MCU on the dev board for SAM3S gets warm.

I am searching for someone with experience of working on this specific chip to tell me if this is normal for ATsam3S8B to get warm up to 36-40 degrees of centigrade(the ambient temperature is 23), or I should investigate a hardware design fault?

Schematic:

PCB:

\$\endgroup\$
  • \$\begingroup\$ Do you have a way to measure the current draw of the MCU? Could you also tell us what your test code is doing? Does it only happen when executing particular test code or will any program result in the chip being warm? \$\endgroup\$ – Jon L Mar 29 '16 at 6:27
  • \$\begingroup\$ I don't have such way currently. But I think it is applicable if necessary. Any code results in the chip getting warm. May I know your opinion on this warmth matter? you seem to believe that it's not natural. Am I right? \$\endgroup\$ – Taheri Mar 29 '16 at 6:32
  • 1
    \$\begingroup\$ Yes, I think it's abnormal. You'll have to post a schematic though if you want us to help you narrow it down. \$\endgroup\$ – Jon L Mar 29 '16 at 6:35
  • 2
    \$\begingroup\$ If you load on a program that calls WFI instruction with interrupts disabled then you'll pretty much be guaranteed that the chip is doing nothing. At this point if it's warm then we can rule out software invoked activity and it has to be an issue with the surrounding design. Something similar could be achieved by using a debugger to halt execution. Either way the chip should definitely not be warm under those conditions. You're either sinking or sourcing current somewhere. \$\endgroup\$ – Jon L Mar 29 '16 at 6:47
  • 1
    \$\begingroup\$ Not the cause of your processor heating issues, but you shouldn't put LEDs in parallel like D1/D7 or D2/D3. Instead you should use one current-limit resistor per LED. \$\endgroup\$ – Ben Voigt Mar 30 '16 at 6:03
1
\$\begingroup\$

You have some unusually strong pull-up and pull-down resistor choices.

Are R3 and R4 really meant to be 330 ohms? Also R2 and R13 seem suspect as well. All 3 of those pins advertise permanent internal pull ups/downs according to the datasheet, making those external components unnecessary.

By adding such low resistances in parallel you are effectively reducing their internal pull ups/downs to something far lower than Atmel intended and are thus sinking and sourcing more current than you probably should be.

Try replacing those resistors with either nothing or something in the 10K-100K ohm range.

\$\endgroup\$
  • \$\begingroup\$ @Taheri any update? \$\endgroup\$ – Jon L Apr 1 '16 at 18:24
  • \$\begingroup\$ not yet. I had 2 days off. I will feedback as soon as possible. Thanks. \$\endgroup\$ – Taheri Apr 2 '16 at 5:19
  • \$\begingroup\$ R3 & R4 where not mounted at all, But R13 was. removing R13 resulted on temperature decreasing by 2 degrees! \$\endgroup\$ – Taheri Apr 2 '16 at 8:08
  • \$\begingroup\$ TST pin can be left unconnected in normal mode. To enter in FFPI mode TST pin must be tied to VVDDIO. In harsh environments, It is strongly recommended to tie this pin to GND. it is stated in this document provided by ATMEL. This seems to be in contrast with your answer in my opinion. \$\endgroup\$ – Taheri Apr 3 '16 at 6:33
  • \$\begingroup\$ I've measured the exact temperature and updated the question \$\endgroup\$ – Taheri Apr 3 '16 at 12:54
1
\$\begingroup\$

You cannot run PA20 as a digital input. Not only will the internal pullup interfere with USB enumeration, but USB data pins use differential signalling, and the expected voltage levels lie in the transition region for CMOS and TTL digital logic. Digital input buffers, especially CMOS, have a very high input impedance meaning that very little current is drawn from the external pin. But in the transition region, both NMOS and PMOS (or NFET/NPN and PFET/PNP) transistors are on, providing a low impedance path between power and ground rails and causing large currents and heating to occur in the digital input buffer. Signals connected to digital input pins must never remain in the threshold region for an extended time. (And if a synchronous signal is in the threshold region during a clock edge, metastability results, which has problems all its own).

The good news is that that pin has an analog input function. Activating that will disconnect the digital input buffer. Another alternative is to physically cut the trace between the USB data signal and pin PA20, which will avoid problems during reset when the pin configuration reverts to its default of digital input.

Unfortunately, running in this mode may have already damaged this portion of the microcontroller. Ideally you should verify the fix on a new board that hasn't been powered up before.

\$\endgroup\$
  • \$\begingroup\$ Ben as I commented above, PA20 is not configured. I am searching the data sheet to find out it's default configuration. Do you think there will be a problem if it is configured as digital output at reset? \$\endgroup\$ – Taheri Apr 2 '16 at 8:16
  • 1
    \$\begingroup\$ Digital output won't burn anything up but it will stop usb from working. Digital input will create excessive current flow inside the input buffer and may damage the MCU. So configure as analog input as early as possible. \$\endgroup\$ – Ben Voigt Apr 2 '16 at 14:50

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.