Аппаратные хитрости использования PIC-контроллеров

     

Замечания по работе с I2C


Работа с шиной I2C имеет некоторые особенности. По полному стандарту I2C управление нужно осуществлять двунаправленными выводами, которые при работе на выход имеют открытый коллектор (сток) с подтягивающими резисторами. Это связано с вопросами арбитража и синхронизации. Это выполняется в семействе MCS-51, но не выполняется в PIC-контроллерах, выходы которых активны как в состоянии «0», так и в состоянии «1» (за исключением одного выхода, имеющего открытый сток). Этот вопрос можно решить применением «виртуального открытого стока». Обычно вывод переключают или на вход или на выход регистром TRIS и при выводе просто записывают «0» или «1» в регистр данных. При «виртуальном открытом стоке» в регистре данных постоянно записан «0», сам вывод подтянут резистором к питанию. И при вводе и при выводе «1» вывод находится в режиме входа и переключается регистром TRIS только при выводе «0». Нужно иметь ввиду, что такая работа нужна только при необходимости соблюдения стандартов 12С, в основном в multi-master среде или с устройствами, которые могут выставлять неготовность по линии синхронизации. При обычной работе с последовательной памятью этого, как правило, не требуется.

Параллельным ОЗУ

Разумеется, при использовании контроллеров с соответствующим количеством выводов, имитируя портами контроллера шины адреса, данных и управления, можно применять обычные микросхемы статической или динамической памяти. Динамическая память имеет большую емкость и позволяет сократить число выводов контроллера за счет мультиплексирования шины адреса и использования 1-битной или 4-х битной шины данных, но требует регенерации. Очень выгодно ее использование в приборах типа «самописец» при условии. что при записи или воспроизведении их частота обеспечивает требуемый период регенерации. В режиме хранения регенерацию можно производить холостым воспроизведением или использовать внутреннюю регенерацию, имеющуюся во многих микросхемах динамической памяти.

«ИНТЕЛЛЕКТУАЛЬНЫЙ КЛЮЧ»

Существует большое количество переносных приборов, в которых по каким-либо причинам нежелательно иметь тумблер или кнопку питания с фиксацией.
Удобнее включение- выключение производить или нажатием любой кнопки или специальной кнопки «Вкл» (не фиксируемой). Реализовать это можно различными способами, например, с использованием дежурного режима, но очень часто подобная аппаратура питается от одной-двух пальчиковых батарей через преобразователь, и в целях экономии хочется иметь именно ключ, отключающий все или почти все. Для ключевого элемента лучше всего использовать низковольтный полевой транзистор с малым падением напряжения, но они достаточно дороги и дефицитны, поэтому в случае питания от 2-х и более батареек в качестве самого ключа можно использовать.... другой микроконтроллер, например дешевый 16С505 (0.49$) или восьминожку 12С508 (рис. 15) «Ключевой» контроллер работает от внутреннего генератора или от внешней RC-цепочки, если нужна его пониженная тактовая частота для уменьшения потребления, и находится в спящем дежурном режиме.


В качестве «выхода» ключа используется один или несколько выходов, соединенных вместе. Один вход можно использовать для кнопки «Вкл.», на другой можно подать сигнал с основного микропроцессора, например для программного выключения. Вообще же, если у «ключевого» контроллера еще остаются свободные выводы, то ему можно поручить еще какую-нибудь работу во включенном состоянии прибора, например - выполнять роль еще одного Watch Dog, или генерировать импульсы прерывания на основной микропроцессор. В общем, на что хватит фантазии. В приведенной схеме выход основного контроллера RA4 с открытым стоком используется для блокировки включенного состояния, а выход Р2 вспомогательного - для генерации прерываний.

Содержание раздела