AVR Аналоговый Компаратор + Внутреннее Подтягивание? - PullRequest
5 голосов
/ 08 апреля 2010

У меня есть простой вопрос, относящийся к микроконтроллерам Atmel AVR.Поэтому я хочу использовать аналоговый компаратор ATTiny85, чтобы определить, находится ли сигнал выше или ниже порогового значения.Этот сигнал обычно «плавающий» и тянется к земле , когда «активен» (то есть это активный сигнал низкого уровня - открытый коллектор).Если я включу подтягивание на входном выводе (который также является входом компаратора), выполнив:

DDRB  = 0x00; // DDRB.1  = 0 = input 
PORTB = 0xFF; // PORTB.1 = 1 = internal pullup enabled

Если я использую аналоговый компаратор и выберу PORTB.1 в качестве AIN1, будет ли применено внутреннее подтягивание к моемувходной сигнал?Я надеюсь, что у кого-то есть личный опыт, чтобы проверить это поведение.Надеюсь, этот вопрос не слишком «аппаратно-ориентированный» для переполнения стека.Спасибо!

РЕДАКТИРОВАТЬ В ответ на некоторые из комментариев ниже на эффект «почему бы не обработать это в цифровом виде», это потому, что мой «сигнал» генерируется датчиком (а именно оптическимИК датчик).Я не могу быть уверен, что он будет тянуть вниз «достаточно сложно», чтобы быть как интерпретируется с нулем в цифровом виде, поэтому я буду использовать внутренние ссылки 2.56V как мой порог переключения.Я просто пытаюсь подобрать «событие IR», так что мне это показалось наиболее простым.

Кроме того, используя аналоговый компаратор, я могу обнаружить событие «асинхронно» с помощью ISR.Конечно, некоторые выводы могут вызывать прерывание на цифровом фронте, но один не хочет полагаться на отклик на провал ниже V_IL.

Ответы [ 3 ]

4 голосов
/ 08 апреля 2010

Из таблицы на рисунке 10-5 видно, что на вход аналоговой ступени влияет подтягивание.

Таким образом, вы можете использовать внутреннее подтягивание вместес компаратором.Как указано в техническом описании, вы можете отключить каскад цифровых входов для этого порта, чтобы снизить энергопотребление - конечно, только если вы не используете его для цифровых входов.

Примечание.потребление тока для каскада цифрового ввода.Старайтесь избегать их.

2 голосов
/ 08 апреля 2010

Обычно вы используете цифровой вход с подтягиванием, поскольку у вас, кажется, есть цифровой входной сигнал.

Есть ли причина использовать аналоговый вход?

2 голосов
/ 08 апреля 2010

Не могу с уверенностью сказать, что это сработает (я никогда не делал описываемый вами случай), но с точки зрения электроники ваши рассуждения верны.Когда коммутатор разомкнут, AIN1 увидит VCC через внутреннее подтягивание, а когда коммутатор замкнут, они оба увидят 0 В.

VCC
|
100k(?)
|
AIN1
|
 /
|
GND

Без фактического чтения таблицы данных для этого процессора есть вероятность, чтовы не сможете использовать внутреннее подтягивание на выводе, настроенном на аналоговый вход;в этом случае вы можете использовать другой вывод на чипе, сконфигурированный как цифровой вход, для подтягивания:

VCC
|
100k(?)
|
Other---AIN1
        |
        /
        |
        GND

Но если напряжение на AIN1 постоянно находится в «ни логической, ни высокойнизкий логический диапазон, который может привести к довольно высокому потреблению тока.

...