Можно ли в atmega328p не добавлять на плату подтягивающие резисторы при использовании сна?

Тема в разделе "Микроконтроллеры AVR", создана пользователем DayGaik, 19 май 2024.

  1. DayGaik

    DayGaik Гик

    У меня в проекте atmega328p должна спать и просыпаться от нажатия кнопок.

    С кодом разобрался, но не могу найти в даташите конкретное уточнение, сохраняется ли подтяжка (INPUT_PULLUP) во сне?

    Эксперимент показал, что сохранятся, но хочется быть уверенным.
     
  2. parovoZZ

    parovoZZ Гуру

    Давай подскажу. Сон - это остановка тактирования. Резисторы подтяжки управляются ключом, ключ подключен к D триггеру, который является одним из битов регистра,который отвечает за резисторы подтяжки в порту. Я ответил на вопрос?
     
  3. DayGaik

    DayGaik Гик

    В совокупностью с вики - да. Нет тактирования - состояние сохраняется.

    Подтягивающие резисторы пошли вон со схемы )
     
    Airbus нравится это.
  4. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Нашли на чем экономить, прям второй Паровоз. А я бы оставил. Устройство иногда включается. Срабатывает цепь "ресет". Регистры аппаратно обнуляются. Соответственно все пины переходят в режим "вход". А для периферии это - "вход в обрыве". И все "наводки" - наши. Зачем ?
     
  5. parovoZZ

    parovoZZ Гуру

    Затем, чтобы в программе включить внутренние резисторы.
     
  6. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Опять двадцать пять. Во время сигнала ресет входы в обрыве и этого достаточно для глюков.
     
  7. KindMan

    KindMan Гуру

    А куда глюки пойдут, если есть сигнал ресет?
     
  8. DayGaik

    DayGaik Гик

    Вот-вот. Если пойдут глюки, то уже ничего не поможет.
     
  9. parovoZZ

    parovoZZ Гуру

    во время сигнала ресет все регистры сброшены, кроме одного (в него записывается причина загрузки МК).
    После ресета происходит загрузка программы, которая определяет назначение физических выводов.
    Если вывод вход и необходима подтяжка к нулю, то в старых сериях AVR необходимо вешать внешний резистор. Если подтяжка к плюсовой шине и сопротивления (вернее, тока) внутреннего резистора достаточно, то происходит включение именно его. Иначе вешается внешний резистор.
    Вопросы:
    1. Если внешняя ножка не используется в программе и осталась входом без подтяжки, каким образом она может влиять на программу?
    2. По умолчанию, дискретный вход физической ножки включён через триггер Шмитта и обладает высоким гистерезисом. Триггер Шмитта отключается принудительно из программы.

    Итог:
    Все ваши доводы относительно внешнего резистора не обладают доказательной базой.
    Если у вас по плате гуляют помехи, которые способны проникнуть сквозь Триггер Шмитта, далее сквозь шину данных и далее в АЛУ, то ровно эта же помеха вам просто напросто остановит осциллятор. Защит ни в одной AVR от остановки осциллятора НЕТ.
     
  10. Ariadna-on-Line

    Ariadna-on-Line Гуру

    О блин. Глюки имеются в виду не программы, не МК, а периферии. Когда в обрыве вход периферии (например Мосфета) - за время ресета процессора - от наводок он успеет что-нибудь включить или спалить. Вы в первую очередь рассуждайте как схемотехники, а не программисты, поскольку сгоревшая периферия вполне может спалить в пожаре и мудрый процессор с программой.
     
    Последнее редактирование: 4 июн 2024
  11. parovoZZ

    parovoZZ Гуру

    вопрос был
    в МК AVR подтяжка включается только если ножка определена как вход.
    ты же утверждаешь, что
    можно пример такой схемы?
     
  12. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Низя. Я щас в гостях. Ещё не обжился)))