Полная версия этой страницы:
STM32F висящие входы
RomanRom
Mar 15 2012, 12:53
В STM32F1xx есть два похожих режима: Reset State (вход висящий, но без тактирования GPIO) и Input Floating (вход висящий, но с тактированием GPIO).
Вопросы.
1) Можно ли оставлять висящие входы в STM32F1xx в принципе или их надо обязательно подтягивать внутренними резисторами или переводить в режим выхода?
2) Будет ли увеличиваться ток потребления в режиме с висящими входами, как в AVR (из-за наводок)?
3) Если подтягивать резисторами, то нужно ли включать тактирование GPIO или можно тактирование не включать?
4) Аналогичные вопросы для режима входа с альтернативными функциями
1) нельзя, нельзя для любого мк, но некоторые прощают, стм32 не прощает. где то на форуме уже был крик души прошедшего по граблям.
и лучше на выход, встроенные подтяжки слабые.
2) см. п1
3) что бы подтянуть резистором, тактирование порта все равно придется включить.
4) см. п1
можно, по входам триггеры Шмитта (см.диаграмму порта в даташите) - сквозного тока не получится. На неподключенном входе обычно получается единица (вх.емкость заряжается от наводок)
RomanRom
Mar 17 2012, 12:32
В AVR-контроллерах, как мне помнится, тоже на входах стоят триггеры Шмитта, но там рекомендуют висящих входов не оставлять.
С другой стороны, если в STM32 подтягивающие резисторы включаются только при наличии тактировании GPIO, то без тактирования ток потребления микросхемы должен быть меньше, следовательно, входы можно оставлять висящими и они не будут приводить к "перебрасыванию" уровней от наводок.
Тогда чем отличается STM32 от AVR в части триггеров Шмитта?
и где там про висящие входы?
Allregia
Mar 18 2012, 15:30
Помоему, лучше что можно - аналоговыми входами сделать.
paskal
Mar 20 2012, 19:50
Цитата(Aner @ Mar 17 2012, 18:25)

и где там про висящие входы?
Наверно это:
Цитата(vlad_new @ Aug 21 2011, 17:02)

К стате уж точно нельзя оставлять не использованные лапки во float. Первой же командой всегда перевести все лапы на Pull-Down ( подтяжка вниз).
Я ещё для проверки помехоустойчивости брал в руку иголку и тыкал на каждую ножку. Проверял чтобы программа все такие действия отрабатывала корректно. Думаю что если проведете подобный эксперимент у вас сразу отпадут подобные вопросы
RomanRom
Apr 16 2012, 13:09
Хорошо, общее мнение склоняется к тому, что входы висящими оставлять нельзя.
Но тогда контрольный вопрос - зачем разработчик STM32F ввел специальный режим тактирования портов, утверждая, что это экономит энергию? Дело в том, что если не разрешить в программе тактирование, то все входы автоматически переходят в "подвешенное" Z-состояние. Может быть, наоборот, разработчик считает, что без тактирования помехи внутрь не проходят и все-таки можно оставлять неиспользуемые входы свободными?
Пин для подключения батарейки тоже заземлять предлагаете? Попробуйте и скажите ка что у вас получилось?
RomanRom
Apr 16 2012, 13:35
Цитата(Aner @ Apr 16 2012, 16:19)

Пин для подключения батарейки тоже заземлять предлагаете? Попробуйте и скажите ка что у вас получилось?
Aner, пожалуйста, поясните, какое отношение имеет батарейка к конкретному вопросу про программное тактирование портов???
Как я понимаю, речь о висящих в воздухе свободные входы у STM32F, которые якобы "подвешивают" процессор.
Пин для подключения батарейки- это же вход, также как и пины для подключения часового кварца, хотя последнии можно пользовать как GPIO.
Тактирования портов "с боку".
RomanRom
Apr 16 2012, 14:01
Цитата(Aner @ Apr 16 2012, 16:46)

Как я понимаю, речь о висящих в воздухе свободные входы у STM32F, которые якобы "подвешивают" процессор.
Пин для подключения батарейки- это же вход, также как и пины для подключения часового кварца, хотя последнии можно пользовать как GPIO.
Тактирования портов "с боку".
Висящие в воздухе пины не подвешивают процессор. По аналогии с ATmega больше проблем должно доставлять неконтролируемое увеличение тока питания при большом уровне внешних наводок. В ATmega действительно такой эффект есть и с ним борются внутренними или внешними pull-up резисторами.
В STM32F имеется режим тактирования портов, который отсутствует в ATmega. Вот и хочется узнать, может быть разработчик как раз и решил эту проблему. Напрашивается вариант - если в каком-либо порту A, B, C ни одна линия не используется, то можно задать Reset-State без тактирования для всего порта. Если хоть одна линия порта используется, то тактирование придется разрешить и остальные линии перевести в режим pull-up или pull-down
Если остальные линии перевести в режим pull-up или pull-down, это увеличит потребление только.
У меня не используемые порты отключены, ничего не виснет в 103, 107 процах.
RomanRom
Apr 17 2012, 08:35
Цитата(Aner @ Apr 16 2012, 17:10)

Если остальные линии перевести в режим pull-up или pull-down, это увеличит потребление только.
У меня не используемые порты отключены, ничего не виснет в 103, 107 процах.
1) Каким образом программное подключение нагрузочных резисторов pull-up/pull-down по входу увеличивает ток потребления кристалла (имеется в виду, что к входу больше ничего не подключается извне)? Вы реально измеряли на сколько мА увеличивается ток?
2) Вы не тактируете неиспользуемые порты и оставляете в них висящими входы. Именно это я и предлагаю сделать. А по поводу тактируемых портов - что вы делаете со свободными выводами (или тоже их оставляете висящими в воздухе в режиме Input_Floating)?
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.