К чему подключить не используемые ноги AVR

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем Витя, 5 ноя 2013.

  1. Витя

    Витя Гик

    Паяю схему и вдруг получилось так, что есть лишние ножки. А куда их принято девать? В разных статьях написано разное, в одних местах что нужно подсоединить к земле, в других что ни в коем случае нельзя подключать ни к питанию, ни к земле, потому что будут утечки (а куда стоит - не написано). Я так понимаю, логически, что есть три варианта:
    1. Если подключить к питанию, то нужно перевести эти ножки на режим входа и вывести единицу.
    2. Если подключить к земле, то нужно перевести эти ножки на режим входа и вывести туда ноль.
    3. Не важно к чему подключить, главное оставить вход в Hi-Z режиме.

    Хотелось бы минимального потребления, тем более что предполагается, что почти всегда МК будет спать. По идее разницы нет, но может какие подводные камни? Вот Hi-Z режим смущает например, ведь там по идее если никуда не подключать ножки, могут быть наводки и PIN будет постоянно что-то считывать, менять свое состояние?
     
    Последнее редактирование: 5 ноя 2013
  2. Unixon

    Unixon Оракул Модератор

    Либо не подключать никуда, либо через достаточно высокоомный резистор (100k~1M) садить на одну из шин питания VCC/GND - тут это уже дело вкуса.
     
  3. pemalhim

    pemalhim Нуб

    На сколько я помню, это актуально для КМОП-логики. К тому же можно перевести выводы микроконтроллера в третье состояние (высокоимпедансное), так что их можно оставлять не подключенными.
     
  4. Витя

    Витя Гик

    К своему удивлению, что наверное не правильно, нашел в документации у Atmel небольшой абзац что делать с не используемыми ножками! :rolleyes:

    В общем, там написано, что не используемые пины рекомендуется выставить в какой-нибудь определенный уровень. И если когда МК уходит в сон, то пины отключаются (т.е. всеравно как они и где), то в остальных режимах (Сброса, Ожидания и Активном) неподключеные пины будут потреблять ток (получается тоже, нет разницы как они в этот момент выставлены - вход/выход/hi-z). Т.е. их все же желательно, если хочется экономить, куда-нибудь подключить.
    Самый простой способ задать уровень неиспользуемому пину - это использовать внутреннию подтяжку. Но она отключается во время режима сброса, поэтому рекомендуется еще делать и внешнюю. Ну и также не рекомендуется подключать напрямую к питанию/земле, чтобы не было замыкания случайного (т.е. тоже рекомендуется ставить подтяжку).
    ---

    Получается, лучше всего подключить к vcc, поставить внешний резистор на 4.7-10k, а пины перевести на вход с подтяжкой.
     
    Последнее редактирование: 6 ноя 2013
  5. Megakoteyka

    Megakoteyka Оракул Модератор

    Внутренней подтяжкой бывалые люди вообще пользоваться не советуют. Говорят, дохнет от любого чиха.
     
  6. Витя

    Витя Гик

    А разве это будет иметь значение, если будет еще и внешняя? Смущает что они же ведь именно этот режим рекомендуют:
    Я там на схемах некоторых посмотрел, у ножек оказывается не только диоды, но и даже конденсаторы есть, поэтому они действительно в неопределенном уровне, могут электричество вполне себе потреблять на разные переключения, потому вот наверное такие советы. А внутренняя подтяжка наверное как дополнительная страховка.
     
  7. pemalhim

    pemalhim Нуб

    А вообще для чего такая экономия нужна? Может проще использовать низковольтный контроллер, спящие режимы и т.д.?
     
  8. Витя

    Витя Гик

    В принципе не для чего, тем более питание от розетки будет (и почти всегда МК действительно будет спать).

    Просто я учусь и сразу хочу понять и разобраться, как лучше всё делать, по науке типа и правильно! :) Меня тётя когда учила программировать, сказала правило, что если можешь написать код который будет работать, то не пиши его, напиши "правильный код". Вот и я теперь во всем следую этому правилу. Можно ножку просто бросить конечно, будет работать, но судя по документации получается что это не правильно. Вот и пытаюсь понять как лучше всего. Пытался вчера измерить, чтобы на практике посмотреть, но у меня дешевый мультиметр и у него скачки небольшие даже когда МК спит :(
     
  9. Megakoteyka

    Megakoteyka Оракул Модератор

    Можно чуть иначе измерить. http://www.atmel.com/Images/doc8349.pdf - в этой статье оценивается разница между работой контроллера на всю катушку и в спящем режиме. Контроллер запитывается от конденсатора и оценивается время, на которое его хватит. В статье получилось 6 и 217 секунд.
    Можно подобным образом попробовать оценить разницу в работе с подтянутыми ногами и висящими в воздухе. просто выдавать в порт значение счетчика раз в секунду. В каком варианте последнее значение будет больше - тот и победил :)
     
    Последнее редактирование: 7 ноя 2013
    Витя нравится это.
  10. Megakoteyka

    Megakoteyka Оракул Модератор

    Не будет, просто для справки.
    Отсюда
    Там еще очень много толкового материала по AVR и не только - очень рекомендую.
     
    Витя нравится это.
  11. fr0ster

    fr0ster Гик

    Тут экспериментировал с протеусом, понять не мог, отчего делитель из двух 100кОм резисторов дает не 2,5 вольта, а 3,33. Оказалось ошибся в конфигурации порта. Так и внутренняя подтяжка, от чиха не сдохнет, а от ошибки в коде может просто отключится.