Все три используемые нами модели микроконтроллеров PIC имеют встроенный модуль компаратора. В 8-выводной модели PIC12F675 реализован только один аналоговый компаратор. Однако для моделей в корпусах с большим количеством выводов (в частности, для моделей серии PIC16F87XA) более типичным является наличие сдвоенного компаратора, различные варианты включения которого приведены на Рис. 14.6.
Рис. 14.6.
Регистр управления компаратора CMCON, обычно расположенный, по адресу h’9C’, используется для выбора одной из восьми возможных конфигураций модуля, показанных на Рис. 14.6. Конфигурация компаратора определяется битами режима СМ[2:0] (CMCON[2:0]). В конкретном случае PIC16F987XA при сбросе микроконтроллера в эти биты заносится число b’111’, при котором модуль аналогового компаратора полностью выключен. Во многих других устройствах режимом по умолчанию является режим Ь’000’, при котором компараторы тоже отключены, однако используемые ими выводы микроконтроллера сконфигурированы как аналоговые входы.,
Запомните универсальное правило для всех микроконтроллеров PIC с аналоговыми модулями: все выводы микроконтроллера, которые могут работать как аналоговые (обычно выводы порта А, Е или GP), всегда после сброса по включению питания становятся аналоговыми входами. Это сделано для того, чтобы предотвратить повреждение входных цифровых буферов (см. Рис. 11.7 на стр. 340) на тот случай, если при включении микроконтроллера на выводе будет присутствовать аналоговое напряжение величиной, скажем, 2.6 В. Если данный вывод будет сконфигурирован как цифровой вход, воспринимающий сигналы с напряжением, близким к 0 В или к напряжению питания, то такое промежуточное напряжение может привести к одновременному открытию обоих входных транзисторов. В результате через них потечет сквозной ток, который способен вызвать тепловой пробой. Поскольку аналоговые напряжения не имеют каких-либо четко определенных значений, то даже в случае, когда вывод сконфигурирован как аналоговый вход, в схему часто вводится внешний последовательный резистор, который служит для ограничения тока в том случае, если аналоговое напряжение превысит напряжение питания микроконтроллера или станет отрицательным, как показано на Рис. 14.20.
В микроконтроллерах линейки PIC16F87XA для сохранения совместимости с более старыми моделями PIC16F87X, не имевшими модуля аналогового компаратора, такая конфигурация (переключение) выводов полностью отключена по умолчанию. Однако все устройства данной линейки имеют модуль встроенного АЦП, который при сбросе по питанию переключает все связанные с ним выводы в режим аналоговых входов, выполняя, таким образом, описанное выше правило. При нахождении модуля компаратора в режиме Ь’111’ его потребление минимально, поэтому этот режим следует использовать, если микроконтроллер не работает с аналоговыми сигналами и модуль компаратора не используется, особенно в «спящем» режиме.
По большому счету в зависимости от режима работы модуля в распоряжении пользователя оказываются либо два полностью независимых компаратора, либо два компаратора с объединенными неинвертирующими входами, которые могут использоваться для подачи общего опорного сигнала. Выходное значение любого активного компаратора можно считать в любой момент времени из 6-го (C1OUT) и 7-го (C2OUT) битов регистра CMCON. На выходе каждого компаратора имеется программируемый инвертор, управляемый битами C1INV и C2INV регистра CMCON (CMCON[4] и CMCON[5] соответственно). При