LINUX.ORG.RU

История изменений

Исправление Zubok, (текущая версия) :

И еще по ходу пьесы. Ток, проходящий через ножки каналов, по даташиту должен быть не выше 5мА. Если ты случайно сделаешь программную ошибку и сконфигурируешь входы как выходы и подашь HIGH на них, то через энкодер ты их просадишь на землю (а энкодер - это просто контакт) и у тебя ток большой попрет через контакты энкодера, а это разогрев. Да и можно порты пожечь - ток не ограничен ничем. Разумно ограничить ток, подключив A и B через резисторы, а подтягивать к питанию не внутренним pull-up, а внешним, то есть до резисторов (иначе делитель напряжения образуется). Еще можно конденсаторы на землю от A и B. R = 10кОм будет ок.

                       Encoder

Vcc   --[   R   ]--+             +--[   R   ]--   Vcc
                   |  A   C   B  |
MCU_A --[   R   ]--+--o   o   o--+--[   R   ]--   MCU_B
                          |
                         ___

Исправление Zubok, :

И еще по ходу пьесы. Ток, проходящий через ножки каналов, по даташиту должен быть не выше 5мА. Если ты случайно сделаешь программную ошибку и сконфигурируешь входы как выходы, то через энкодер ты их просадишь на землю (а энкодер - это просто контакт) и у тебя ток большой попрет через контакты энкодера, а это разогрев. Да и можно порты пожечь - ток не ограничен ничем. Разумно ограничить ток, подключив A и B через резисторы, а подтягивать к питанию не внутренним pull-up, а внешним, то есть до резисторов (иначе делитель напряжения образуется). Еще можно конденсаторы на землю от A и B. R = 10кОм будет ок.

                       Encoder

Vcc   --[   R   ]--+             +--[   R   ]--   Vcc
                   |  A   C   B  |
MCU_A --[   R   ]--+--o   o   o--+--[   R   ]--   MCU_B
                          |
                         ___

Исправление Zubok, :

И еще по ходу пьесы. Ток, проходящий через ножки каналов, по даташиту должен быть не выше 5мА. Если ты случайно сделаешь программную ошибку и сконфигурируешь входы как выходы, то через энкодер ты их просадишь на землю (а энкодер - это просто контакт) и у тебя ток большой попрет через контакты энкодера (разогрев, да и можно порты пожечь). Разумно ограничить ток, подключив A и B через резисторы, а подтягивать к питанию не внутренним pull-up, а внешним, то есть до резисторов (иначе делитель напряжения образуется). Еще можно конденсаторы на землю от A и B. R = 10кОм будет ок.

                       Encoder

Vcc   --[   R   ]--+             +--[   R   ]--   Vcc
                   |  A   C   B  |
MCU_A --[   R   ]--+--o   o   o--+--[   R   ]--   MCU_B
                          |
                         ___

Исправление Zubok, :

И еще по ходу пьесы. Ток, проходящий через ножки каналов, по даташиту должен быть не выше 5мА. Если ты случайно сделаешь программную ошибку и сконфигурируешь входы как выходы, то через энкодер ты их просадишь на землю (а энкодер - это просто контакт) и у тебя ток большой попрет через контакты энкодера (разогрев, да и можно порты пожечь). Разумно ограничить ток, подключив A и B через резисторы, а подтягивать к питанию не внутренним pull-up, а внешним, то есть до резисторов (иначе делитель напряжения образуется). Еще можно конденсаторы на землю от A и B.

                       Encoder

Vcc   --[   R   ]--+             +--[   R   ]--   Vcc
                   |  A   C   B  |
MCU_A --[   R   ]--+--o   o   o--+--[   R   ]--   MCU_B
                          |
                         ___

Исходная версия Zubok, :

И еще по ходу пьесы. Ток, проходящий черзе ножки каналов по даташиту должен быть не выше 5мА. Если ты случайно сделаешь программную ошибку и сконфигурируешь входы как выходы, то через энкодер ты их просадишь на землю (а энкодер - это просто контакт) и у тебя ток большой попрет через контакты энкодера (разогрев). Разумно ограничить ток, подключив A и B через резисторы, а подтягивать к питанию не внутренним pull-up, а внешним, то есть до резисторов (иначе делитель напряжения образуется). Еще можно конденсаторы на землю от A и B.

                       Encoder

Vcc   --[   R   ]--+             +--[   R   ]--   Vcc
                   |  A   C   B  |
MCU_A --[   R   ]--+--o   o   o--+--[   R   ]--   MCU_B
                          |
                         ___