Прокопавши таблицю , я виявив таке:
14.2.6 Нероз'єднані штифти
Якщо деякі штифти не використовуються, рекомендується переконатися, що ці штифти мають визначений рівень. Навіть незважаючи на те, що більшість цифрових входів вимкнено в режимах глибокого сну, як описано вище, плавні входи слід уникати, щоб зменшити споживання струму в усіх інших режимах, де ввімкнено цифрові входи (режим скидання, активний режим та режим очікування).
Найпростіший метод забезпечення визначеного рівня невикористаного штифта - це включення внутрішнього підтягування. У цьому випадку підтягування буде відключено під час скидання. Якщо важливе значення має низьке споживання електроенергії під час скидання, рекомендується використовувати зовнішню підтягування або підтягування. Підключення невикористаних штифтів безпосередньо до VCC або GND не рекомендується, оскільки це може призвести до надмірних струмів, якщо штифт випадково налаштований як вихід.
оновлення стосовно коментаря / питання:
Відповідно до таблиці 14-1, підтягуючий резистор активний лише тоді, коли виконуються наступні умови:
- Штифт встановлюється як вхід (DDxn біт логічно низький)
- PORTxn встановлюється логічно високим
- PUD - логічно низький
Єдиний спосіб отримати значний струм, що протікає через підтягуючий резистор, це якщо штифт відчуває низький рівень із включеним підтягуванням. Це означає, що Atmel погано зіпсувався (малоймовірно), або у вас налаштований штифт як вхід із ввімкненим підтягуванням, і штифт якимось чином підключений до землі.
У розділі 14.2.5
обговорюються режими включення цифрового вводу та режиму сну. Підводячи підсумок, цифровий вхід затискається на землю на вході тригера Шмітта, щоб запобігти плаваючому рівню в режимі сну, якщо тільки контакт не налаштований як зовнішнє переривання. Я не можу сказати, чи відключений цифровий вихід у сплячому режимі. Не схоже, що він відключений відповідно до малюнка 14-2
, хоча я б не надто здивувався, якби це було. Найкраще - використовувати або внутрішній, або зовнішній резистор, що підтягується.