logo
Устройство преобразования аналоговых сигналов

3.3 Контроллер PIC16F628

Контроллер PIC16F628 представляет собой 8-разрядный однокристальный микропроцессор производства компании Microchip Technology Inc., изготовленный по технологии КМОП, с флэш-памятью программ и электрически перепрограммируемым ПЗУ данных.

Микропроцессор имеет тактовую частоту до 20 МГц (машинный такт 50 нс), 35 команд со временем выполнения 1 машинный цикл (200 нс) или 2 машинных цикла (400 нс, только команды перехода). Объём флэш-памяти программ составляет 2048?14 бит, ОЗУ данных -- 224?8 бит, ППЗУ данных -- 128?8 бит. Микропроцессор имеет 16 специальных аппаратных регистров, прямой, косвенный и относительный режим адресации, 8-уровневый стек, систему прерываний.

Микропроцессор оснащён большим набором периферийных устройств, среди которых с точки зрения реализации технического задания вызывают интерес:

- Порты ввода/вывода (всего 16 линий ввода/вывода, функции которых, однако, совмещены с функциями других устройств). Порты в режиме вывода обладают высокой нагрузочной способностью, что в ряде случаев позволяет отказаться от буферных усилителей;

- Модуль ШИМ разрядностью 10 бит.

Диапазон напряжений питания микроконтроллера составляет 3…5,5 В, то есть практически совпадает с диапазоном напряжений питания АЦП AD7819.

Функциональная схема микроконтрллера приведена на рис. 3.3.

Рис. 3.3 Функциональная схема микроконтроллера PIC16F628

Вышеприведённых технических данных о микроконтроллере PIC16F628 достаточно, чтобы сделать определённые выводы о составе оборудования конструируемого устройства.

Наличие в составе микроконтроллера встроенного ШИМ исключает необходимость в ШИМ в виде отдельного модуля.

Поскольку диапазоны изменения напряжения питания АЦП и микропроцессора, а также диапазон изменения опорного напряжения АЦП, совпадают, можно взять любое из установленных в ГОСТ 29322-92 стандартных напряжений питания: 3; 4; 4,5 и 5 В. Так как в техническом задание нет никаких указаний о напряжении питания, возьмём наименьшее из вышеперечисленных напряжений (3 В), чтобы обеспечить максимальную экономичность устройства. Выбор напряжения питания не влияет на работоспособность устройства, за исключением делителя напряжения, который при напряжении питания 3 В должен иметь коэффициент деления, равный 3,33. В этом случае

и для обеспечения требуемого входного сопротивления

Примем для одно из стандартных номинальных значений

соответствующее значение должно быть равно

Возьмём

тогда для обеспечения гарантированной подстройки делителя во всём диапазоне изменения значений сопротивлений и подстроечное сопротивление возьмём равным 10 кОм.

Поскольку, как было сказано в предыдущем разделе, в схеме планируется использование внутреннего ШИМ микроконтроллера, АЦП будет единственным периферийным устройством, которому может понадобиться адресация. Учитывая это, целесообразно подать выходы данных АЦП непосредственно на входы микроконтроллера

Кроме того, для нормального функционирования АЦП необходимо обеспечить правильные сигналы на входах RD (чтение выходного слова), CS (выбор кристалла), CONVST (начало преобразования). Первые два сигнала не актуальны, так как в схеме нет других периферийных устройств, а АЦП по шине данных работает только на выход. Таким образом, эти два входа можно сделать постоянно активными, подключив их к общему проводу.

Вход CONVST также можно задействовать различными способами. Можно подавать сигнал начала преобразования по одной из линий порта ввода/вывода арифметического устройства, а можно при необходимости (для экономии линий ввода/вывода) запускать преобразование внешним генератором. Поскольку, как было указано в предыдущем разделе, нет недостатка в свободных линиях ввода/вывода микроконтроллера, запуск АЦП будем осуществлять программно, подавая на вход CONVST сигнал отрицательной полярности с одной из линий порта В.

В АЦП есть также сигнал BUSY, который сообщает внешним устройствам о том, что АЦП либо занято процессом преобразования, либо процесс закончен, и по линиям данных можно прочитать результат преобразования. При необходимости без этого сигнала можно обойтись, если после запуска производить чтение результата через определённое время, которое обеспечит гарантированное окончание процесса (то есть временная задержка должна быть более 4,5 мкс). Временную задержку можно реализовать программно. Однако, поскольку микроконтроллер имеет достаточное количество линий ввода/вывода, выделим одну из линий порта В для опроса состояния АЦП.

Так как в техническом задании не указаны требования к точности временных характеристик выходного сигнала, используем внутренний RC-тактовый генератор микроконтроллера, имеющий точность поддержания частоты 1%.

Функциональная схема устройства представлена в прил. А.