Я имею то, что я надеюсь, простой вопрос, имеющий отношение к микроконтроллерам AVR Atmel. Таким образом, я хочу использовать Аналоговый Компаратор ATTINY85, чтобы определить, ли сигнал выше или ниже порога. Этот сигнал обычно "плавает" и вытянутый к земле, когда "активный" (т.е. это - активный минимум - открытый сигнал коллектора). Если я включаю усилие на входном контакте (который является также входом компаратора) путем выполнения:
DDRB = 0x00; // DDRB.1 = 0 = input
PORTB = 0xFF; // PORTB.1 = 1 = internal pullup enabled
Если я использую аналоговый компаратор и выбираю PORTB.1, поскольку AIN1 будет внутреннее усилие применяться к моему входному сигналу? Я надеюсь, что у кого-то есть личный опыт для проверки этого поведения. Надеюсь, что этот вопрос не слишком 'ориентирован на аппаратные средства' для переполнения стека.Спасибо!
РЕДАКТИРОВАНИЕ В ответ на некоторые комментарии ниже к эффекту, "почему бы не рассматривать его digitially", это - потому что мой "сигнал" сгенерирован датчиком (а именно, оптический датчик IR). Меня нельзя уверить, что это будет выпадающий "достаточно трудно", чтобы быть интерпретированным как нуль в цифровой форме, таким образом, я соберусь использовать внутреннюю 2.56-вольтовую ссылку в качестве своего порога переключения. Я просто пытаюсь взять "событие IR", таким образом, это казалось самым простым путем ко мне.
Кроме того, при помощи аналогового компаратора я могу обнаружить событие "асинхронно" с помощью ISR. Предоставленный некоторые контакты может вызвать прерывание на цифровой край, но тот не хочет полагаться на ответ для погружения ниже V_IL.
Из datasheet рис. 10-5 видно, что на вход аналогового каскада влияет подтяжка.
Таким образом, вы можете использовать внутреннюю подтяжку вместе с компаратором. Как указано в техническом описании, вы можете отключить каскад цифрового ввода этого порта для снижения энергопотребления - конечно, только если вы не используете его для цифрового ввода.
Примечание: Плавающие выводы могут вызвать большой ток потребления для каскада цифрового ввода. Старайтесь избегать их.
Я не могу точно сказать, что это будет работать (я никогда не рассматривал случай, который вы описываете), но говоря электронным языком ваши рассуждения верны. Когда переключатель разомкнут, AIN1 будет видеть VCC через внутреннюю подтяжку, а когда переключатель замкнут, они оба будут видеть 0V.
VCC
|
100k(?)
|
AIN1
|
/
|
GND
Фактически не читая таблицу для этого процессора, есть шанс, что вы не сможете использовать внутреннее подтягивание на выводе, настроенном для аналогового входа; в этом случае вы можете использовать другой вывод на микросхеме, сконфигурированный как цифровой вход, для подтягивания:
VCC
|
100k(?)
|
Other---AIN1
|
/
|
GND
Но если напряжение на AIN1 постоянно находится в диапазоне «ни высокий логический уровень, ни низкий логический уровень», это может привести к тому, что ваше текущее потребление будет довольно высоким.
Обычно вы используете цифровой вход с подтягиванием, поскольку кажется, что у вас есть цифровой входной сигнал.
Есть ли причина использовать аналоговый вход?