Книга
Книга
ЭЛЕКТРОННЫЕ КОМПОНЕНТЫ
ВАШЕГО УСПЕХА
Б. Ю. Семенов
Всв^да НС1 СКЛидс 8 промышленных количествах широчайший ассортимент ^^- компонентов заводов России и ближнего зарубежья
EPCOS
1(>н1
АМ1=»
MITSUBISHI
ELECTRIC
intersil
^OtTEKT^S
muRfitii
Melleman
Продукция ведущих мировых производителей: • активные компоненты
• программаторы, эмуляторы, тестеры -
• паяльное оборудование, радиомонтажный инструмент, газовые паяльники'
• мультиметры, осциллографы
Все товары в розницу и магазинах
Mucmw
ул БегоицЯ. 2
Тел: {095* 284-55-78
Мидера. уд. Гиляровского, 33
Тел факь <095$ 284-56 78
Е mail •»»«<:$»»£ ЬФ Фр ru
Муова, ул Ивзи» Франко. д 40, стр. 2
Тел {095)417 33 55
E-ma4 dipnoi риь?> platan to
разъемы и соединители
пассивные компоненты--*:
ферриты, трансформаторы, керамические фильтры, термисторы, варисторы, разрядники, конденсаторы.
потенциометры, самовосстанавливающиеся предохранители
широкий выбор датчиков
TVS. диоды, диодные мосты ■
жидкокристаллические индикаторы
оптоэлектронные приборы
электролитические конденсаторы • -
электромагнитные и твердотельные реле
* вентиляторы для охлаждения аппаратуры
плоский, коаксиальный, телефонный, акустический кабель -1
акустические компоненты
корпуса для электронной аппаратуры
радиоконструкторы ■1 '
Пассивные компоненты гарантированного качества производства Тайвань. Гонконг: реле, полипропиленовые и танталовые конденсаторы, индуктивности, резисторы чип-компоненты разъемы
бесплатный каталог И CD С ТЕХНИЧЕСКОМ ДОКУМЕНТАЦИЕЙ высылается ПО ЗАЯВКАМ ПРЕДПРИЯТИЙ.
Бульвар Л^г- rs, з
Тел фат 544, 46'.-39-75 £ пк«г < ".," -«nmsp-<rev ua
121351,Москва,
ул. Ивана Франко, д. 40, стр. 2 Тел/факс: (095) 73-75-999
Почта: т21351. Москва, а я 100
E-mail: plaian(waha ru
»a*cc- tsaaz) 16-33-66 , tert фат (843?| 13-02 57 тел. фак. • (6462)35 26 09
тел факс: {8352)64-05 6 $
Н-А-фат (3822) 41-55 .'О
- тел фан-, (3472) 32 33-42
С -Петербург Кроииергсяии ороси.. 73
Тел. 1812) 232 83-06, 232-59-87
E-ma4 ptatanSimdH wph<a,.TK?t
Ярославль, лр Ленина,8а
Зь-п. (0852)30-15-68
E-mail: chip ttip^yar 1е1ь{Я>т1.<и
ШИНА 12СВ РАДИОТЕХНИЧЕСКИХКОНСТРУКЦИЯХ
МоскваСОЛОН-Р2002
Семенов Б. Ю.
Шина 12С в радиотехнических конструкциях [ Б. Ю. Семенов. — М.: СОЛОН-Р, 2002. 192 с. — (Серия «Просто и доступно»)
ISBN 5-93455-168-Х
В книге рассказывается о принципах построения и логике работы последовательной шины обмена данными inter-integrated Circuit Bus (l2C), разработанной фирмой Philips. Приводятся сведения о микросхемах, имеющих интерфейс 12С, а также несложные конструкции на их основе, доступные для повторения радиолюбителями. Книга может быть полезна радиолюбителям, инженерам, студентам радиотехнических специальностей вузов, специалистам-ремонтникам бытовой аппаратуры.
Описанные в книге программы можно загрузить с сайта http://www.remserv.ru (раздел «Программы»).
Эту книгу можно заказать по почте (наложенным платежом — стоимость ПО руб.) двумя способами:
выслать почтовую открытку или письмо по адресу: 123242, Москва, а/я 20;
передать заказ по электронной почте (e-mail) по адресу: magazin@solon-r.ru.
Необходимо напнсать полный адрес, по которому выслать книги.
Обязательно указывать индекс н Ф. И. О. получателя!
При наличии — указать телефон, по которому с вами можно связаться, и адрес электронной почты (E-mail).
Цены действительны до 1 сентября 2002 г.
Вы можете в любое время получить свежий каталог издательства «СОЛОН-Р» по Интернету, послав пустое письмо на робот-автоответчик по адресу katalog@solon-r.ru, а также подписаться на рассылку новостей о новых книгах издательства, послав письмо по адресу news@solon-r.ru с текстом «SUBSCRIBE» (без кавычек) в теле письма.
ISBN 5-93455-168-ХISBN 5-93455-168-Х© Макет и обложка «СОЛОН-Р», 2002
ISBN 5-93455-168-Х
ISBN 5-93455-168-Х
© Б. Ю. Семенов, 2002
От автора
Однокристальные микроконтроллеры стремительно занимают ведущее место в электронной аппаратуре. И если каких-нибудь десять лет назад они могли быть использованы при проектировании только профессионалами — слишком много требовалось дорогостоящих средств для их программирования, — то сегодня «однокристалки» используют даже радиолюбители. Просмотрите подшивку журнала «Радио» за последние несколько лет, и вы убедитесь в справедливости сказанного.
Именно микроконтроллер сегодня формирует облик бытовой аудиотехники, видеотехники, средств связи. С передних панелей радиоприемников, магнитол, телевизоров исчезли шкальные индикаторы, ручки настройки, ползунковые регуляторы, переключатели. Их заменили жидкокристаллические табло и кнопки. Значительно усложнилась «начинка» аппаратуры. Очевидно, что десятки разнообразных микросхем, составляющих электронное «нутро» аппаратуры, должны согласованно функционировать, обеспечивая наилучшие технические характеристики и удобство эксплуатации. Решая задачу сопряжения цифровых устройств, разработчики компьютерной техники связали их между собой посредством шин, а способы передачи информации назвали протоколами и стандартизировали их основные принципы. Каждое устройство было снабжено интерфейсом^ посредством которого стало возможным подключать его к шине.
Если говорить об аналоговой технике, то специализированные аналоговые микросхемы испокон веков имели уникальные собственные выводы для подключения элементов, с помощью которых устанавливались их рабочие режимы или осуществлялись регулировки в процессе эксплуатации. Например, регулировалась громкость звука, контрастность изображения и т. д. Объединять эти выводы с целью выполнения универсальной регулировки не представлялось возможным. Современные микросхемы, предназначенные для использования в новой аппаратуре, решено было снабдить цифровым интерфейсом, «спрятать» настроечные выводы внутрь микросборок, а управлять их режимами программно.
Осуществлять управление одной микросхемой очень просто, для этого даже не всегда нужен внешний цифровой интерфейс. А если микросхем несколько, если они должны взаимодействовать друг с Другом, обмениваться информацией? Решая эти вопросы, разработчики перспективных микросхем пришли к мысли о необходимости введения общей шины и протокола обмена информацией по ней. Известные по компьютерной технике шины оказались здесь совершенно негодными в силу своей сложности. Только представьте, что для реализации обмена по шине ISA или РС1 в состав аппаратуры нужно ввести полноценный компьютер...
Для этих целей фирмой Philips была разработана шина Inter-Integrated Circuit Bus (сокращенно 12С, ай-ту-си). Принадлежа к классу шин с последовательным способом передачи данных, отличаясь чрезвычайной простотой реализации, Шина стала быстро развиваться. Конечно, в основном свое детище продвигала фирма-разработчик, но сегодня и другие фирмы, оценившие по достоинству возможности шины, поддерживают ее своей продукцией.
К сожалению, на сегодняшний день отсутствует русскоязычная литература, позволяющая быстро освоить приемы работы с шиной 12С и в какой-то мере обобщить разрозненные, неполные сведения. В Интернете, на конференциях, посвященных вопросам программирования, то и дело возникают вопросы об основах работы с 12С, но далеко не всегда появляются дельные ответы. Весьма заманчивы перспективы использования микросхем 12С в несложных радиолюбительских конструкциях, обладающих тем не менее высокими потребительскими характеристиками. Все конструкции, в которых задействуется шина 12С, обязательно должны включать в себя простейшие однокристальные микроконтроллеры, что также свидетельствует в пользу их доступности радиолюбителям.
В этой книге рассказывается об основных принципах устройства шины 12С, о микросхемах, поддерживающих этот протокол обмена, о программных способах его реализации. Приведены практические схемы, позволяющие не только закрепить полученные знания, но и изготовить полезную в быту вещь. Автор надеется, что чтение этой книги будет занимательным и легким.
Б. Ю. Семенов.
Декабрь 2001 г.
1. Как устроена шина !2С
Классический вариант обмена данными между любыми устройствами заключается в том, что одно устройство передает информацию, а другое ее принимает. Устройства могут при необходимости поменяться ролями, то есть передатчик может стать приемником и, наоборот, приемник — передатчиком. Но в любом случае важно четко определить, какое из устройств является главным, задающим правила и последовательность обмена, а какое — подчиненным.
Устройства, подключаемые к шине 12С, также подчиняются этому принципу. Договорились, что одно из устройств будет ведущим (master), а остальные — ведомыми (slave). Такая организация шины называется master-организацией и является наиболее типичным случаем (рис. 1.1).
Master-устройством обычно назначается микроконтроллер. Именно он задает основной поток данных на шине, формирует необходимые временные интервалы и т. д.
Гораздо реже используется в аппаратуре режим multi-master (рис. 1.2), когда к одной шине подключено несколько master-устройств.
Рис. 1.1. Master-организация шины 12С
Рис. 1.2. Multi-master организация шины 12С
Сложность такой организации шины состоит главным образом в том, что master-устройства должны решать, кто из них будет работать в данный момент со slave-устройствами. Одновременно на шине "может совершать операции только одно master-устройство, остальные обязаны отключаться. В противном случае возникает ситуация, называемая шинным конфликтом. Информация может попросту не дойти до адресата, нарушится работа устройства.
Для того чтобы исключить шинные конфликты, в режиме multi-master должны содержаться процедуры арбитража и синхронизации, устанавливающие порядок работы master-устройств. В книге мы не будем рассматривать этот режим подробно с точки зрения аппаратной реализации, разберемся лишь, как осуществляется арбитраж устройств и их синхронизация. Основное внимание сосредоточим на классическом режиме с одним master-устройством.
История шины 12С в том виде, в котором она представлена сейчас, началась в 1992 году, когда фирмой Philips была выпущена ее первая спецификация версии 1.0. Эта спецификация исключала возможность задания адреса slave-устройства программным способом как наиболее сложную процедуру. Наряду со стандартным режимом скорости передачи данных 100 кбит/с (low-speed) был введен режим быстрой передачи (fast-speed) со скоростью до 400 кбит/с. Появился также режим 1О-разрядной адресации.
Версия 2.0, выпущенная в 1998 году, ввела в спецификацию шины быстродействующий режим (Hs-mode) со скоростью передачи до 3,4 Мбит/с. Причем требования предписали вводить обязательную возможность совместимости с режимами low-speed и fast-speed. К моменту появления версии 2.0 шина 12С распространилась по всему миру, став международным стандартом. Было разработано более 1000 интегральных схем, лицензия на официальное использование спецификации приобретена более чем 50 фирмами.
Версия 2.1, датируемая 2000 годом, включает в себя незначительные модификации, не нашедшие отражения в версии 2.0. На момент написания этой книги версия 2.1 является последней действующей версией, выпущенной Philips. Не исключено, что в процессе подготовки книги в печать выйдет очередная модификация. Спешу успокоить читателя — едва ли новая версия будет содержать кардинальные отличия, да и в любом случае совместимость сохранится.
Мы не будем вдаваться во все тонкости и хитросплетения названных версий, разберем лишь самые необходимые для практики положения. Желающие подробнее ознакомиться с официальной документацией [4] без труда смогут получить ее с Интернет-сервера фирмы Philips (http://www.semiconductors.philips.com).
Интересно отметить, что фирма Philips особо выделяет в своей документации микросхемы, оснащеннь/ё интерфейсом 12С. Обложка или первый лист фирменных datasheet обязательно сопровождается значком, показанным на рис. 1.3.
Рис. 1.3. Фирменный знак интерфейса 12С
Полная гамма микросхем с интерфейсом 12С, выпускаемых фирмой, насчитывает в настоящее время более 150 наименований, выполненных с применением как перспективной КМОП-технологии, так и с уже ставшей. традиционной — биполярной. Номенклатура продолжает расти, так что следите за новинками!
Определившись с главными положениями шины, перейдем к рассмотрению ее аппаратной реализации. Взгляните на рис. 1.4, отражающий устройство современной автомобильной магнитолы.
Шина
12С
Рис. 1.4. Пример взаимодействия устройств на шине 12С
В составе магнитолы обязательно имеется микроконтроллер, выполняющий роль master-устройства, формирующий необходимые сигнальные последовательности, «рассылающий» информацию по slave-устройствам и принимающий от них какие-либо сведения. Остальные устройства, подключенные к шине, как мы уже договорились, будут подчинены микроконтроллеру. По определенному правилу, называемому протоколом, микроконтроллер может «отправить» на индикаторную панель (slave-устройство 1) данные, отражающие, к примеру, уровень громкости, принимаемую частоту радиостанции или хронометраж аудиокассеты. Синтезатор частоты (slave-устройство 2) по команде микроконтроллера перестроит частоту приема, регулятор громкости и тембра (slave-устройство 3) изменит громкость звука и его «окраску». И так далее...
Каким образом slave-устройства разбираются, что текущая порция информации предназначается кому-то одному и кому именно, об этом мы поговорим, но позже. А сейчас настала пора задать себе важный вопрос: «В чем заключается уникальность такого вида управления устройствами?» Действительно, в чем? Оказывается, управлять всеми подчиненными slave-абонентами можно всего по двум линиям (если не считать третью линию — общий провод схемы). Slave-абонент должен иметь два вывода, которые объединяются с такими же выводами другого slave-устройства, а также с mas- ter-абоненТом. Собственно, внешне так и выглядит шина 12С.
Концепция шины настолько проста, что позволяет быстро разрабатывать принципиальную схему устройства, опробовать ее и в случае необходимости «нарастить» конструкцию новыми элементами или удалить ненужные безболезненно для других узлов. Также может быть упрощен метод разработки программного обеспечения, использованы стандартные библиотеки-подпрограммы. Практически все микросхемы с интерфейсом 12С имеют такие характеристики, которые позволяют использовать их в низковольтной портативной аппаратуре с питанием от гальванических элементов. Например, они обладают высокой помехоустойчивостью, низким потреблением тока, широким диапазоном питающего напряжения и слабой зависимостью параметров от температуры окружающей среды.
Обратим внимание на рис. 1.5.
Рис. 1.5. Аппаратная реализация шины 12С в режимах low-speed и fast-speed
Интерфейс любого устройства, подключенного к шине 12С, как видно из рисунка, отличается предельной простотой. Он состоит из двух транзисторов с открытым стоком (коллектором) и двух буферных элементов с высоким входным сопротивлением. Один из выводов назван SDA (Serial Data Line), предназначается для связи с линией последовательных данных. Второй вывод имеет сокращенное название SCL (Serial Clock Line), предусмотрен для связи с линией синхронизации.
Как известно, по любым цифровым шинам передаются сигналы, характеризуемые только двумя электрическими состояниями — «О» и «1» («низкий уровень» и «высокий уровень»). Состояние, когда обе линии (SDA и SCL) установлены в состояние «1», считается свободным шинным состоянием. Шина в этот момент не занята и готова к трансляции данных (иначе говорят, что шина находится в состоянии ожидания). Но каким образом обеспечить это состояйие, если интерфейсные элементы не имеют активных выходов, если наружу выведены открытые выводы элементов? Для обеспечения логических состояний к шине подключаются два внешних резистора R^ (pull-up resistors), «подтягивающие» линии к напряжению питания UnHT. Типичная величина этих резисторов колеблется в пределах 1...10 кОм. На рис. 1.5 эти резисторы показаны внешними, и такая ситуация прослеживается часто. Но иногда они имеются в составе master-абонента. Вообще интерфейс master-абонента желательно изучить досконально, поскольку его выходы могут быть активными (иметь вместо
pull-up резисторов транзисторные ключи) и тогда на шине возникнет конфликт.
Здесь мы можем четко сказать, в чем главное отличие master-абонента от slave-абонента. Это очень просто: только master-абонент может генерировать сигнал SCL.
Важнейшим критерием, определяющим возможность использования той или иной шины, является ее спектр технических характеристик. Шина 12С относится к классу двунаправленных асинхронных шин с последовательной передачей данных и, как следствие, обладает достаточно низкой пропускной способностью. Поэтому ее почти не используют в составе персональных компьютеров, разве что как вспомогательную для идентификации установленных устройств [1]. А вот для согласования работы устройств, наполняющих изделия бытовой техники, она вполне годится.
Основные технические характеристики шины 12С по спецификации 1.0 приведены в табл. 1.1.
Таблица 1.1. Основные технические характеристики шины 12С (спецификация 1.0)
Наименование параметра
Значение параметра
Скорость обмена low-speed
не более 100 кбит/с
Скорость обмена fast-speed
не более 400 кбит/с
Число адресуемых устройств (7 бит)
до 128
Суммарная длина линий SCL и SDA
не более 4 м
Суммарная паразитная емкость относительно общего провода
не более 400 пФ
Входная емкость на каадый вывод абонента
не более 10 пФ
Изучая данные табл. 1.1, можно сделать заключение, что шина 12С совершенно не подходит для связи между удаленными абонентами, а значит, может быть использована только в составе одного прибора. Главным образом этот вывод исходит из малой протяженности линий SDA и SCL. Собственно говоря, в интернете автором была найдена страница, на которой ее создатель сообщил о том, что его конструкции без проблем работают при суммарной длине шины около 100 метров (естественно, с понижением скорости обмена данны-
ми). Но этот режим уже не нормируется оригинальной спецификацией, а значит, и надежная работа устройств не гарантируется.
Пропускная способность шины определяется как параметрами интерфейсов, так и паразитными параметрами линий SDA и SCL. На рис. 1.6 показаны эти паразитные параметры:
Спр — распределенная емкость линии относительно общего провода;
Свх — входная емкость интерфейса;
Znp — индуктивность проводника линии.
В протоколе обмена по шине используются не только статические состояния линий («О» и «1»), но и перепады уровней («О» —> «1» и «1» —> «О») и наличие паразитных параметров выражается в «затягивании» фронтов, а также спадов импульсов, как показано на рис. 1.7, что может нарушить нормальный обмен данными.
Рис. 1.7. «Затяжка» импульса при передаче по шине — результат влияния паразитных параметров
Еще одна опасность, скрытая в слишком длинных проводниках, связана с перенапряжениями, которые могут возникнуть на интерфейсных элементах при значительных величинах паразитной индуктивности проводов (Lnp). Эта ситуация отражена на рис. 1.8.
Рис. 1.8. Перенапряжения, связанные с наличием паразитной индуктивности линии связиРис. 1.8. Перенапряжения, связанные с наличием паразитной индуктивности линии связи
Рис. 1.8. Перенапряжения, связанные с наличием паразитной индуктивности линии связи
Рис. 1.8. Перенапряжения, связанные с наличием паразитной индуктивности линии связи
Как показано в [3], резкое закрытие транзистора VT характеризуется индуктивным выбросом на его стоке. Это явление используется в так называемых бустерных схемах источников питания, но здесь оно крайне вредно. И хотя в подавляющем большинстве случаев внутри микросхем предусматривается защита входных цепей, например, по варианту рис. 1.9, а, позволяющая «сбросить» энергию импульса в источник питания, все же лучше дополнительно ввести защиту по варианту рис. 1.9, б. Когда может потребоваться такая защита?
Рис. 1.9. Варианты защиты: а) внутренняя, б) внешняяРис. 1.9. Варианты защиты: а) внутренняя, б) внешняя
Рис. 1.9. Варианты защиты: а) внутренняя, б) внешняя
Рис. 1.9. Варианты защиты: а) внутренняя, б) внешняя
т—
0, процессе экспериментов и отладки схемы, когда обычно микро- кбнтроллер и slave-устройства устанавливаются на отдельных платах и связи между ними не удается сделать короткими. Напряжение пробоя стабилитрона VD следует выбирать на 0,5... 1 В больше уровня «1» на линиях SDA и SCL. И хотя в документации [4] такой способ защиты не встречается по вполне понятной причине — профессиональные разработчики обладают гораздо-более солидными возможностями по выполнению макетных работ, — радиолюбителю лучше обезопасить себя от возможных путей выхода микросхем из строя. Поиск причины пробоя — долгое и мучительное занятие, связанное к тому же с дополнительными финансовыми расходами, так что осторожность не помешает! Стабилитрон можно не устанавливать на печатной плате в законченной и отлаженной конструкции.
Рассмотрим теперь способ защиты от высоковольтных наводок, приведенный в фирменной документации [4] и отраженный на рис. 1.10. Важно отметить, что данный способ предпочтительнее использовать в режиме Hs-mode. Согласно рекомендациям, в схему вводятся защитные резисторы Rs. Чтобы сократить время нарастания сигнала синхронизации, в интерфейс master-устройства вводится источник тока MCS. Сами же сигналы SDA и SCL здесь именуются SDAH и SCLH соответственно (индекс «Н» — это сокращение от слова high — высокий).
Рис. 1.10. Структура шины 12С врежиме Hs-mode
Каким способом можно определить величину резисторов RpU и Rs? В фирменной документации [4] есть ответ на этот вопрос. Там приводятся графики, оптимизирующие способ выбора резисторов. Графики отнормированы относительно разных напряжений питания, но поскольку наиболее вероятным видится вариант использования микросхем при VDD = 5 В, то сведения ограничены только этим напряжением.
Вначале производится выбор резистора К?,, по рис. 1.11. Рассматривая этот рисунок, можно сделать попутный вывод о том, что паразитная емкость практически не оказывает влияния на методику выбора резистора Rg. Читатель также вправе задать следующий вопрос: Как определить величину паразитной емкости? Действительно, сделать это не так-то просто. Современные пакеты компьютерного схемотехнического моделирования при «разводке» печатных плат позволяют отмоделировать паразитные элементы, определить их величину. Однако такие программы доступны далеко не всем и далеко не все умеют ими правильно пользоваться, поэтому при разработке радиолюбительских конструкций можно придерживаться «золотой середины», приняв значение паразитной емкости не более 100...200 пФ.
Рис. 1.11. ЗависимостьРис. 1.12. Зависимость минимальной
максимальной величины резисторавеличины резистора Rpu от
Rpu от емкости шинынапряжения питания
Рис. 1.13. Зависимость максимальной величины резистора Rs от величины резистора Rpll
для напряжения питания 5 В оно должно быть не менее 1,5...2 кОм. Выполнение требований графиков позволит получить в режиме Hs-mode максимальную скорость передачи.
Не следует также забывать и о топологии печатной платы. Линии подвержены не только внешним помехам, но также и перекрестной связи, когда сигнал SDA наводится в линию SCL, и наоборот. Если суммарная длина линии превышает 10 см, рекомендуется располагать токоведущие дорожки в такой последовательности:
SDA
V
v DD
Общий
SCL
Хорошо использовать печатные платы с отдельными слоями, специально выделенными под общий провод и провод VDD, что, конечно, в радиолюбительских условиях едва ли осуществимо. Удачным также является использование экранированных кабелей, экранная жила которых соединена с общим проводом схемы. Возможно также применить скрученные попарно проводники.
Как уже было сказано ранее, скорость передачи по шине 12С ограничена не только внешними факторами, но и внутренними параметрами интерфейсов, их схемотехникой. Едва ли разработчик принципиальных схем сможет исправить интерфейс, заставить его работать быстрее — эта задача под силу только разработчику интегральной
Рис. 1.15. Упрощенная схема интерфейса 12С, выполненного по биполярной технологииРис. 1.15. Упрощенная схема интерфейса 12С, выполненного по биполярной технологиисхемы. Но узнать, почему это ограничение наложено, полезно буде даже радиолюбителю. Итак, взглянем на рис. 1.14 и рис. 1.15.
Рис. 1.15. Упрощенная схема интерфейса 12С, выполненного по биполярной технологии
Рис. 1.15. Упрощенная схема интерфейса 12С, выполненного по биполярной технологии
Рис. 1.14. Упрощенная схема интерфейса 12С, выполненного по КМОП-технологии.Рис. 1.14. Упрощенная схема интерфейса 12С, выполненного по КМОП-технологии.” Спар” СпарВ обоих схемах очень важно сделать так, чтобы транзистор VT открывался и закрывался как можно быстрее. Казалось бы, нет никаких препятствий, чтобы его открывание происходило мгновенно. Однако (и это показано в [3]) из-за наличия так называемой емкости Миллера СтЯ образуется местная отрицательная обратная связь, которая не дает транзистору быстро войти в состояние насыщения. Читатель может возразить, обратив внимание на величину резистора R, и предложить уменьшить его номинал. Но тогда мы столкнемся со значительным увеличением тока потребления микросхем, что, конечно, тоже нехорошо.
Рис. 1.14. Упрощенная схема интерфейса 12С, выполненного по КМОП-технологии.
Рис. 1.14. Упрощенная схема интерфейса 12С, выполненного по КМОП-технологии.
” Спар
” Спар
Ограничения, накладываемые на минимальную величину резистора RpU, связаны с тем, что через него в состоянии линии «О» должен протекать ток не более 3 мА. Легко заметить, что для напряжения питания VDD = 5 В величина R^ ограничена номиналом 1,7 кОм. Соответственно емкость линии не должна превышать 200 пФ. Но если линия имеет большее значение паразитной емкости? Тогда можно использовать схему, изображенную на рис. 1.16. В течение времени нарастания или спада сигнала линии микросхема НСТ4066 подключает в промежутке между 0,8 и 2,0 В форсирующий резистор R^.
Рис. 1.16. Использование способа динамического подключения резистора Rpu для выполнения требований спецификации шины 12С
Еще одной важной технической характеристикой шины является ее совместимость. Ранее разработанные элементы, обладающие только возможностями низкоскоростного обмена, должны без проблем связываться с высокоскоростными, и наоборот. Давайте сейчас рассмотрим поподробнее вопрос совместимости устройств, подключаемых к шине, тем более что мы не вернемся к нему в рамках этой книги.
Итак, к шине 12С могут быть подключены интерфейсы трех типов: low-speed, fast-speed, Hs-mode. Понятно, что обмен данными может быть осуществлен со скоростью, доступной самому медленному интерфейсу. В табл. 1.2 приведены возможные предельные скорости обмена по совмещенной шине.
Таблица 1.2. Скорость обмена данными в совмещенных шинах
Направление передачи
Конфигурация шины PC
Hs + fast + low
Hs + fast
Hs + low
fast + low
Hs-Hs
0...3.4 Мбит/с
0—3,4 Мбит/с
0—3,4 Мбит/с ■
-
Hs - fast
0—100 кбит/с
0—400 кбит/с
-
-
Hs-low
0—100 кбит/с
-
0—100 кбит/с
-
fast - low
0—100 кбит/с
-
-
0—100 кбит/с
fast - fast
0—100 кбит/с
0—400 кбит/с
-
0—100 кбит/с
low-low
0—100 кбит/с
-
0—100 кбит/с
0—100 кбит/с
Если соединить устройства разных типов по классической схеме, то разные скорости обмена могут быть и не реализованы. Поэтому приходится группировать эти устройства, как показано на рис. 1.17, и вводить между группами мосты (bridge). Назначение моста —отсоединить более медленные элементы в моменты обмена между более быстрыми.
Дополнительное удобство, обеспечиваемое мостом, — возможность использования для питания шины двух напряжений (VDD1 и VDD2). Мост включается как master/slave-устройство Hs-режима и управляется сигналами SDAH, SCLH, SDA, SCL. Он может также присутствовать в составе отдельных микросхем (например, микроконтроллеров) как самостоятельное устройство.
Отметим также, что шина 12С позволяет совмещать устройства с разными напряжениями питания. Pull-up резисторы желательно подключать к питающему напряжению 5 В, как показано на рис. 1.18.
Прежде чем перейти к описанию протокола обмена по шине, отметим, что собственно ее устоявшееся название (ай-ту-си), равно как и наименования линий (SDA и SCL), является зарегистрированным наименованием. Авторские права на эти названия принадлежат фирме Philips. Соответственно другие фирмы, производящие микросхемы с интерфейсом 12С и указывающие его наличие, как такового, в технической документации, делают это по лицензии разработчика [2]. К примеру, фирма Microchip, специализирующаяся на выпуске
SDASDASCLРис. 1.18. Соединение элементов с разными напряжениями питанияSCLРис. 1.18. Соединение элементов с разными напряжениями питания
SDA
SDA
SCL
Рис. 1.18. Соединение элементов с разными напряжениями питания
SCL
Рис. 1.18. Соединение элементов с разными напряжениями питания
микроконтроллеров, имеет такую лицензию. Однако и фирмы, не имеющие лицензии, производят микросхемы с интерфейсом, очень похожим на 12С, но как 12С его не обозначают, а значит, протокол обмена может немного отличаться от стандартизованного. Делается это для обеспечения чистоты правовых отношений, которые за рубежом соблюдаются несколько более жестко, нежели у нас в стране. В любом случае, используя в своих разработках аналоги фирменных микросборок, рекомендуется внимательно ознакомиться с технической документацией.
Самой простой конфигурацией шины 12С, как уже было сказано, является master-организация. С нее мы и начнем рассмотрение протокола обмена данными.
Передача любого бита по шине происходит при условии стробирования данных SDA по линии SCL. Предположим, что master-устройство выставило бит данных «О» или «1» на линию SDA. Slave-устройство получит этот бит только тогда, когда на линии SCL произойдет перепад сигнала из низкого уровня в высокий (так называемый положительный перепад). Отсюда следует первое правило организации протокола шины: смена информации на линии SDA может быть произведена только при нулевом состоянии линии SCL.
Рис. 1.19. Передача бита по шине 12С
Мы уже знаем, что шина в неактивном состоянии имеет на линиях SDA и SCL высокие уровни. Но каким образом slave-устройства могут узнать, что началась передача и что она окончилась? Для распознавания начала и конца передачи в спецификацию шины были введены условия Start и Stop. На рис. 1.20 представлено условие Start, на рис. 1.21 — условие Stop. В фирменной документации условие Start имеет условное сокращение «8», условие Stop — «Р».
Рис. 1.20. Условие STARTРис. 1.20. Условие STARTи5н I
Рис. 1.20. Условие START
Рис. 1.20. Условие START
scl :
SDA1
Рис. 1.21. Условие STOP
Условие Start образуется при отрицательном перепаде сигнала на линии SDA при единичном состоянии линии SCL. И наоборот, условие Stop возникает при положительном перепаде линии SDA при единичном состоянии линии SCL. Эти состояния всегда должны генерироваться master-устройствами. Таким образом, укрупненно информационный пакет, передаваемый по шине 12С, выглядит так, как показано на рис. 1.22.
Для определения состояний Start и Stop в составе slave-устройства обычно предусматривается специальная аппаратная схема, так как реализовать программно интерфейс slave-абонента довольно трудно: появляется необходимость постоянной проверки линии SDA на предмет опознавания данных.
Рис. 1.22. Информационный пакет данных на шине 12С 'Рис. 1.22. Информационный пакет данных на шине 12С '
Рис. 1.22. Информационный пакет данных на шине 12С '
Рис. 1.22. Информационный пакет данных на шине 12С '
Существует также состояние «повторный Start», которое может возникнуть в середине информационного пакета. Чуть позже мы рассмотрим ситуации, когда появляется условие «повторный Start».
Передача данных по шине производится по 8 битов, после чего следует сигнал подтверждения (acknowledge). Сигнал подтверждения свидетельствует о том, что данные нормально приняты и обработаны... Но обо всем по порядку! Взгляните на рис. 1.23, отражающий процесс передачи байта по шине 12С.
Рис. 1.23. Передача байта по шине 12С
После отработки состояния Start передатчик последовательно выставляет на линии SDA данные, начиная со старшего бита (MSB) и заканчивая младшим (LSB). Данные стробируются по линии SCL импульсами 1...8.
Обратите внимание: линия SDA приемника (slave-абонента) в момент приема информационных битов (MSB-LSB) должна быть выставлена в единичное состояние. Физически это означает, что транзистор, подключенный к линии SDA, должен быть закрыт. В момент отрицательного перепада импульса 8 на линии SCL slave-абонент должен выставить на линию SDA нулевой уровень;— открыть транзистор. Тем самым приемник подтверждает нормальный прием байта. Передатчик (master-абонент) должен выставлять на линию SDA единичное состояние. Благодаря тому что линия организована по способу «монтажное И», ее состояние будет определяться только slave-абонентом. Передатчик должен проверить состояние линии SDA, затем выдать девятый стробирующий импульс, с которым slave-абонент выставит на линию SDA высокий уровень, проверить выполнение этой операции и лишь после продолжить передачу (рис. 1.24). В случае неподтверждения нормального приема (сигнал АСК имеет высокий уровень) передатчику желательно выполнить условие Stop и повторить передачу.
Третья ситуация, которая может возникнуть при получении сигнала АСК, связана с задержкой обработки данных в slave-абоненте, как показано на рис. 1.25.
Рис. 1.25. Задержка состояния acknowledge
Задержка освобождения линии SDA не свидетельствует о неправильном обмене информацией, поэтому master-абоненту достаточно дождаться окончания АСК и продолжить передачу. Добавим также, что в фирменной документации состояние acknowledge условно именуется буквой «А». Если байт, переданный по шине, является последним в пакете, master-устройство вместо проверки сигнала АСК может выставить состояние Stop, и slave-абонент должен освободить линию SDA.
Описанные состояния являются вполне достаточными для функционирования шины 12С с одиночным master-устройством. Как правило, master-абонента очень легко организовать программным способом, что и используется многими разработчиками. Для реализации режима multi-master, как уже было сказано, должны быть реализованы дополнительные состояния синхронизации и арбитража. Вначале
рассмотрим синхронизацию.
Действительно, если на шине присутствует несколько master-абонентов, все они наделены возможностью генерации сигнала SCL. Синхронизация между этими сигналами достигается благодаря функции «монтажное И» на линии SCL. Таким образом, состояние «О» продлится до тех пор, пока все master-устройства не выставят на линии SCL высокий уровень, и линия SCL будет задержана в состоянии «О» абонентом с самым длинным циклом нулевого уровня. Остальные абоненты, уже освободившие линию, должны войти в состояние ожидания (рис. 1.26).
Теперь поговорим об арбитраже. Согласно спецификации режима multi-master, передатчик может начинать передачу данных только после того, как убедится, что шина свободна (линии SDA и SCL имеют высокий уровень). Но несколько передатчиков могут сгенерировать состояние Start практически одновременно, поэтому нужно определить, какое устройство первым выставило Start-условие. Как это возможно выполнить с помощью достаточно скудных (с точки зрения возможностей серьезных шин, конечно!) средств 12С? Дело в том, что линия SDA выполнена также по способу «монтажное И». В течение процедуры передачи все master-абоненты проверяют состояние линии SDA. Если обнаружено несоответствие (выставляется высокий уровень, а при проверке читается низкий), передатчик, выставляющий высокий уровень, отключается. Естественно, что в процессе передачи бита осуществляется синхронизация.
Как показывает практика, процедура арбитража наиболее трудна для понимания. Поэтому, чтобы досконально разобраться, приведем наглядную аналогию. Представьте себе шеренгу людей, синхронно поднимающих руки по команде ведущего. Если рука поднята, это свидетельствует о передаче единицы, если опущена — нуля. Допустим, в первом такте все подняли руки, а во втором — двое руки не подняли. Согласно принципу арбитража, из шеренги выбывают все, кроме этих двоих. Далее они, подчиняясь командам ведущего, будут поднимать или опускать руки, пока в каком-либо такте не окажется, что один руку поднял, а другой — опустил. Так вот, «поднявший руку от руки и погибнет» — перефразируем известное выражение. Он выбывает, а передачу до окончания продолжит оставшийся — в единственном числе. Рис. 1.27 отражает процедуру арбитража для двух master-абонентов.
Разобравшись с условиями передачи данных по шине 12С, обратим внимание на форматы передачи (протоколы). Что такое формат? И не проще ли использовать передачу по 8 битов, как это предписывается, наполняя их содержимым по своему усмотрению? Оказывается, нет. Каждое устройство должно иметь на шине свой уникальный адрес, по которому к нему можно обратиться. Адрес устройства всегда располагается в определенном месте (специалисты говорят: в определенных ячейках внутренней памяти). Адрес может быть назначен, а может быть жестко определен. В случае шины 12С адреса устройств, называемые slave-адресами, жестко определяются.
Они «закладываются» при изготовлении микросхем и не подлежат переназначению, то есть модификации. В принципе часто все же переназначить адрес можно (и,это делается с помощью 2—3 битов), но, за редким исключением, эти биты нужно предварительно определить аппаратно, то есть установить перемычки на соответствующие выводы. Этот принцип был заложен еще на заре возникновения шины для того, чтобы предельно упростить протокол обмена и аппаратную реализацию интерфейсов. Отметим, что значение slave-адреса можно узнать из документации на соответствующую микросхему.
Поскольку все абоненты шины не имеют иных способов общения, кроме обмена данными по линиям SDA и SCL, в момент начала передачи все slave-абоненты «слушают» линию на предмет опознавания своего slave-адреса. Опознавший свой адрес абонент продолжает прием данных и выдачу сигналов АСК, остальные только следят за моментом выдачи состояния Stop. В связи с этим возможны три формата передачи, определяемые как 7-битные (традиционные):
master транслирует данные на slave;
master читает данные со slave;
комбинированный формат трансляции/чтения.
Исторически сложилось, что вначале возник формат 7-битной адресации, при котором осуществляется передача slave-адреса 7 битами, а восьмой бит должен содержать признак операции «чтение/запись» (R/W). Легко посчитать—при 7-битной адресации на шине может присутствовать только 128 устройств с уникальными адресами. Реально устройств и того меньше, так как некоторые адреса зарезервированы под некоторые служебные функции, о которых мы расскажем ниже.
На рис. 1.28 приведен формат передачи данных от master-устройства к slave-абоненту. Заметим, что, прямоугольники, отображенные на этом и последующих рисунках серым тоном, относятся к направлению передачи от master к slave, а белым цветом — от slave к master.
Передача информационных бит
Рис. 1.28. Master транслирует данные на slave
Необходимо сразу оговориться, что первый бит, передающий slave-адрес устройства, содержит признак операции R/W. Когда этот бит установлен в «О», будет осуществляться запись в slave-устройство, когда в «1» — чтение из него.
На рис. 1.29 приведен формат передачи данных от slave-абонента к master-устройству.
Обратите внимание: после чтения информационного байта DATA master-абонент обязан подтвердить получение байта сигналом АСК.
*1* — чтение-*1* — чтение-DATA ^^ РАТАDATA ^^ РАТАЧтение информационных битЧтение информационных бит
*1* — чтение-
*1* — чтение-
DATA ^^ РАТА
DATA ^^ РАТА
Чтение информационных бит
Чтение информационных бит
Рис. 1.29. Master читает данные со slave
На рис. 1.30 показан так называемый комбинированный формат, применяющийся в случаях, когда осуществляется запись и чтение в одном цикле.
о.о.Рис. 1.30. Комбинированный форматРис. 1.30. Комбинированный формат
о.
о.
Рис. 1.30. Комбинированный формат
Рис. 1.30. Комбинированный формат
Обычно комбинированные форматы используются для работы с последовательной памятью (для сокращения времени доступа к данным). Изучая рис. 1.30, мы можем заметить, что здесь повторяются знакомые нам по рис. 1.28 и рис. 1.29 форматы. Единственное новшество, введенное в комбинированный формат, — повторное условие Start (repeated Start condition), обозначаемое на рисунке сокращением «Sr». Чуть позже, в соответствующей главе, мы рассмотрим типы последовательной памяти и способы работы с ней.
Как уже было сказано ранее, некоторые slave-адреса используются не для прямой адресации устройств на шине 12С, а для служебных сообщений. Рассмотрим эти сообщения с учетом рис. 1.31, на котором укрупненно показана структура байта адресации.
Таблица 1.3. Служебные адреса
| Slave-адрес
R/W
Описание служебного адреса
0000 000
0
Общий вызов
0000 000
1
Программный Start
0000 001
X
Адрес шины CBUS
0000 010
X
Зарезервирован для других форматов шины
0000 011
X
Зарезервирован на будущее
0000 1хх
X
Код режима Hs-mode
1111 1хх
X
Зарезервирован на будущее
1111 Охх
X
10-битная адресация slave-абонентов
MSBLSBMSBLSBSlave-адресSlave-адресРис. 1.31. Структура байта адресацииРис. 1.31. Структура байта адресации
MSBLSB
MSBLSB
Slave-адрес
Slave-адрес
Рис. 1.31. Структура байта адресации
Рис. 1.31. Структура байта адресации
Разберемся подробнее в функциональном назначении служебных адресов.
Общий вызов может адресовать все устройства, подключенные к шине 12С, в этом случае при получении общего вызова устройства должны подтверждать прием выдачей сигнала АСК. Устройства, которые не нуждаются в сведениях, передаваемых при общем вызове, могут игнорировать этот адрес, не выставляя сигнал АСК. Если же устройство выполнено так, что обязательно требует данных общего вызова, оно ведет себя точно так же, как обыкновенный slave-абонент. Второй байт, следующий за общим вызовом, обычно содержит информационную часть. На рис. 1.32 представлен формат общего вызова.
Общий вызовОбщий вызовО О 0 0 0000AXXXXXXXBA
Общий вызов
Общий вызов
| Информационная часть |АСКАСК
Обратите внимание — информационная часть содержит бит В, который в сочетании с битами 7... 1 (обозначенными на рис. 1.32 символом «X») регламентирует назначение информации, передаваемой в данном случае. Регламентируются следующие комбинации:
0000 0110 (06h) — аппаратный сброс. При получении этой комбинации все абоненты, реагирующие на общий вызов, производят внутренний сброс (рестарт). Естественно, аппаратный сброс этих абонентов не должен блокировать шину;
е 0000 0100 (04h) — запись программируемой части адреса slave-абонента с помощью аппаратных средств. Все абоненты, ответившие на этот адрес, будут блокированы и не смогут быть сброшены;
0000 0000 (000) — этот код запрещается использовать;
хххх ххх 1 — используется, когда на шине присутствует много совмещенных master/slave-абонентов. В таких случаях часто необходимо генерировать запрос об адресе устройства, которому должна быть передана информация. К примеру, устройство «А», получив от устройства «Б» данные, обработав их, передает информацию устройству «В» вместе с собственным адресом (обычно адреса «master/slave» в совмещенных абонентах совпадают).
На рис. 1.33 представлен формат передачи hardware general call.
Общий вызовОбщий вызовВВРис. 1.33. Формат hardware general callРис. 1.33. Формат hardware general call
Общий вызов
Общий вызов
В
В
Рис. 1.33. Формат hardware general call
Рис. 1.33. Формат hardware general call
Программный Start удобно использовать тогда, когда устройство, соединенное с шиной 12С, не имеет аппаратного интерфейса. Собственно, если встроенный интерфейс 12С есть, скажем, в микроконтроллере, его очень просто использовать. Достаточно запрограммировать микроконтроллер на прерывание от шины, и при наличии передачи будет выполняться программа обработки данных, поступающих с шины. Если встроенного интерфейса 12С нет, микроконтроллер обязан постоянно опрашивать шину на предмет получения данных.
Процедура опознавания в таком случае выглядит следующим образом, отраженным на рис. 1.34.
Рис. 1.34. Программный START
Из рисунка видно, что микроконтроллеру достаточно опрашивать линию SDA с низкой частотой, определяя один из нулей в стартовом бите. После обнаружения этого нуля на линии SDA микроконтроллеру необходимо переключиться на более высокую частоту опроса, чтобы зафиксировать состояние «повторный Start» (Sr). Обычный аппаратный приемник игнорирует состояние S и дождется Sr.
Адрес шины CBUS возможно использовать при работе с элементами, оснащенными этой шиной. В задачи этой книги не входит рассказ о шине CBUS, но тем не менее она по своей реализации достаточно близка к шине 12С, поэтому имеется возможность их совмещения.
В спецификации CBUS имеется третья линия, обозначаемая как DLEN. Диаграммы сигналов, отражающие способ работы с этой шиной в условиях совмещения с 12С, приведены на рис. 1.35.
Следующие служебные адреса относятся к расширениям шины I С. Мы уже знаем, что первоначально шина имела 7-разрядную адре-
записи
Рис. 1.35. Совместимость с шииой CBUS
сацию и скорость передачи до 100 кбит/с. Но даже несмотря на эти скромные возможности, шина быстро завоевала популярность. Очень быстро были заняты все доступные адреса, да и скорость передачи данных быстро росла, улучшалась технология производства микросхем. И шину модернизировали, наделив ее новыми возможностями:
режим fast-speed с возможностью передачи до 400 кбит/с;
режим Hs-mode — до 3,4 Мбит/с;
адресация с помощью 10 разрядов, расширенные возможности адресации до 1024 абонентов.
Все новые абоненты, доступные для использования в шинах с расширениями, естественно, совместимы и со старыми форматами передачи (приема). «Соль» скоростных режимов заключается в единственном обстоятельстве — в укорочении стробирующего импульса на линии SCL. Поэтому для совместимости со старыми интерфейсами стробирующий импульс может быть продлен до необходимой величины.
Работа шины в режиме fast-speed характеризуется следующими важными свойствами:
отсутствие совместимости с шиной CBUS, так как эта шина не имеет возможности работать на таких скоростях; -н
наличие входных формирователей (триггеров Шмитта) SDA и SCL линий.
Если элементы, обладающие возможностью работы в режиме fast-speed, обесточены, они не должны влиять на работу шины.
В документации [4] подробнейшим образом разобраны форматы передачи в режиме Hs-mode, принципы совместимости его с другими режимами. Мы не будем останавливаться на описании этих режимов, поскольку они пока мало распространены. Значительно более существенный практический интерес для нас представляет 10-разрядная адресация шины 12С.
Поскольку форматом шины предусмотрена передача только «порции» из 8 байтов, Поразрядные адреса приходится транслировать 2 байтами. Первый байт имеет структуру 11110xx(R/W), в котором биты, обозначенные символом «х», являются старшими разрядами 10-разрядного адреса slave-устройства. Естественно, в составе первого байта должен быть передан бит R/W.
Адресация с помощью 10 разрядов аналогична 7-разрядной адресации, то есть основана на тех же принципах. Устройство, получив служебный код в первом байте и опознав возможность приема 10-разрядного адреса, подтверждает это и принимает второй байт. При совпадении принятого адреса с содержащимся внутри устройства собственным адресом выдается подтверждение АСК и ведется прием данных в обычном режиме до появления состояния Stop.
На рис. 1.36 показан формат передачи данных от master-абонента к slave-устройству.
11110хх О
Рис. 1.36. Передача данных от master-абонента к slave-устройству
Slave-абоненты сравнивают первый полученный байт со своими данными и, если они совпадают, выдают сигнал АСК (А1 на рис. 1.36). Очевидно, сразу несколько устройств может выдать подтверждение. Поэтому при получении второго байта только одно устройство выдаст сигнал АСК (А2). Остальные устройства, которые ранее выдали сигнал АСК (А1), останутся адресованными по первому байту до получения сигнала Stop.
На рис. 1.37 приведен формат передачи данных от slave-абонента к master-устройству.
11110хх О11110хх 1
WRITEREAD
Рис. 1.37. Передача данных от slave-абонента к master-устройству
Вначале master-устройство первым байтом адресует все slave-абоненты соответствующим кодом, и они подтверждают его получение сигналом АСК (А1). Затем вторым байтом адресуется конкретное устройство с выдачей сигнала АСК (А2). После выполнения повторного условия Start (Sr) адресованное slave-устройство сохраняет возможность обращаться к нему, поэтому достаточно повторить первый байт адреса, но уже с другим значением бита R/W и получить АСК (АЗ).
ПараметрСимволРежим low-speedРежим fast-speedbl- ИЗМ.МИН.макс.МИН.макс.Период низкого уровня (LOW) сигнала SCL*L0W4,7-1,3—мксПериод высокого уровня (HIGH) сигнала SCL*нюн4,0—0,6—мксВремя установки повторного условия Startfsu,STA,4,7-0,6-мксВремя удержания данных*HO.OW03,4500,9мксВремя установки данных1SU.DAT250-100—нсВремя нарастания сигналов SDA и SCLt.-100020 +OJCd300нсВремя спада сигналов SDA и SCL«130020 + 0,1Сь300нсВремя установки условия Stop•su,sro4,0-0,6-мкс| Время паузы между условиями Stop и Start*BUF4,7—1.3-мксПаразитная емкость линииСь-400-400пФ IПараметрСимволРежим low-speedРежим fast-speedbl- ИЗМ.МИН.макс.МИН.макс.Период низкого уровня (LOW) сигнала SCL*L0W4,7-1,3—мксПериод высокого уровня (HIGH) сигнала SCL*нюн4,0—0,6—мксВремя установки повторного условия Startfsu,STA,4,7-0,6-мксВремя удержания данных*HO.OW03,4500,9мксВремя установки данных1SU.DAT250-100—нсВремя нарастания сигналов SDA и SCLt.-100020 +OJCd300нсВремя спада сигналов SDA и SCL«130020 + 0,1Сь300нсВремя установки условия Stop•su,sro4,0-0,6-мкс| Время паузы между условиями Stop и Start*BUF4,7—1.3-мксПаразитная емкость линииСь-400-400пФ I
Параметр
Символ
Режим low-speed
Режим fast-speed
bl- ИЗМ.
МИН.
макс.
МИН.
макс.
Период низкого уровня (LOW) сигнала SCL
*L0W
4,7
-
1,3
—
мкс
Период высокого уровня (HIGH) сигнала SCL
*нюн
4,0
—
0,6
—
мкс
Время установки повторного условия Start
fsu,STA
,4,7
-
0,6
-
мкс
Время удержания данных
*HO.OW
0
3,45
0
0,9
мкс
Время установки данных
1SU.DAT
250
-
100
—
нс
Время нарастания сигналов SDA и SCL
t.
-
1000
20 +OJCd
300
нс
Время спада сигналов SDA и SCL
«1
300
20 + 0,1Сь
300
нс
Время установки условия Stop
•su,sro
4,0
-
0,6
-
мкс
| Время паузы между условиями Stop и Start
*BUF
4,7
—
1.3
-
мкс
Паразитная емкость линии
Сь
-
400
-
400
пФ I
Параметр
Символ
Режим low-speed
Режим fast-speed
bl- ИЗМ.
МИН.
макс.
МИН.
макс.
Период низкого уровня (LOW) сигнала SCL
*L0W
4,7
-
1,3
—
мкс
Период высокого уровня (HIGH) сигнала SCL
*нюн
4,0
—
0,6
—
мкс
Время установки повторного условия Start
fsu,STA
,4,7
-
0,6
-
мкс
Время удержания данных
*HO.OW
0
3,45
0
0,9
мкс
Время установки данных
1SU.DAT
250
-
100
—
нс
Время нарастания сигналов SDA и SCL
t.
-
1000
20 +OJCd
300
нс
Время спада сигналов SDA и SCL
«1
300
20 + 0,1Сь
300
нс
Время установки условия Stop
•su,sro
4,0
-
0,6
-
мкс
| Время паузы между условиями Stop и Start
*BUF
4,7
—
1.3
-
мкс
Паразитная емкость линии
Сь
-
400
-
400
пФ I
На рис. 1.38—1.40 приведены комбинированные форматы передачи данных. Они могут использоваться, например, при управлении микросхемами последовательной памяти.
1111 Охх О11 ЦОхх _1
адресадрес I
2 байт1 байт ,
WRITEREAD
Рис. 1.38. Комбинированный формат. Master-абонент адресует slave-устройство с10-разрядным адресом, затем передает данные и читает данные
11110ХХ О11110хх о
адрес Iадресадрес I адрес
1 байт J2 байт •1 байт | 2 байт
WRITEWRITE
Рис. 1.39. Комбинированный формат. Master-устройство передает данные двумslave-абонентам с 10-разрядным адресом
О1111ОХХо
адресГ1 байт|2 байт
1 байт|10 разр|10разр
WRITEWRITE
Рис. 1.40. Комбинированный формат. Master-абонент передает данные двумslave-устройствам: одному с 7-разрядным адресом, а другому с 10-разряднымадресом
В заключение этой главы приведем основные электрические характеристики шины 12С для всех упомянутых режимов.
Таблица 1.4. Параметры режимов low-speed, fast-speed
Параметр
Символ
Режим low-speed
Режим last-speed
bu i изм. |
МИН.
макс.
МИН.
макс.
Низкий уровень (LOW) входного напряжения
Vn
0,5
1.5
-
-
6 1
Высокий уровень (HIGH) входного напряжения
V.H
3,0
Vdo + 0,5
-
-
в 1
Входная емкость, приходящаяся на один вывод
с,
-
10
-
10
пФ 1
Частота на линии SCL
'set
0
100
0
400
кГц 1
Время удержания условия Start
^D.STA
4,0
-
0,6
-
мкс 1
Окончание таблицы 1.4
Рис. 1.41. Временные соотношения между сигналами в режиме Hs-mode
Рис. 1.42. Временные соотношения между сигналами в режимах low-speed и fast-speed
Таблица 1.5. Параметры режима Hs-mode
Параметр
Символ
Режим Hs-mode
изм.
МИН.
макс.
Низкий уровень (LOW) входного напряжения
V.L
0,5
O.SVdq
В
Высокий уровень (HIGH) входного напряжения
V|H
0.7Ую
Vqo+0,5
В
Входная емкость, приходящаяся на один вывод
Q
-
10
пФ
Частота на линии SCIH
•sOH
0
3,4(Сб= 100)
1,7(Сб = 400)
МГц
Время задержки условия Start
•hO.STA
160
-
НС
Период низкого уровня (LOW) сигнала SCLH
•row
160(06=100)
320(06 = 400)
-
НС
Период высокого уровня (HIGH) сигнала SCLH
•high
60 (Об =100) 120 (Об = 400)
-
НС
Время установки д анных
•su.oat
10
-
НС
Время удержания данных
•ho,oat
0
70(Сь= 100)
150(Сб = 400)
НС
Время нарастания сигнала SCLH
u
10 (Об =100) 20(Сб = 400)
40(Сб=100) 80(Сб = 400)
НС
Время нарастания сигнала SCLH при повторе условия Start
ku
10 (Об =100)
80 (Об = 400)
20(Сб=100) 160(Сб = 400)
НС
Время спада сигнала SCLH
kl
10 (Сь =100) 20(Сб = 400)
40(Сб=100) 80(Сб = 400)
НС
Время нарастания сигнала SDAH
•rOA
10 (Об =100) 20(0^ = 400)
80(Сб= 100)
160(Сб = 400)
НС
Время спада сигнала SDAH
•lOA
10 (Об = 100) 20(Сб = 400)
80(Сб= 100)
160(Сб = 400)
НС
Время установки условия Stop
tsu,sro
160(Сб = 100)
160(Сб = 400)
-
НС
Паразитная емкость линии
Cb
-
. 400
пФ
Адреса некоторых микросхем 12С
В документе [8], разработанном Philips, содержатся сведения о slave-адресах микросхем с интерфейсом 12С. Биты А7...А4 определяют группы принадлежности микросхем. Внутри группы идентифицировать конкретное устройство можно по битам АЗ...А1. Впрочем, деление на группы весьма условно. Бит АО —■ признак чтения/записи (R/W). Перевод специальных терминов приводится по [9].
Таблица 2.1. Группы микросхем с интерфейсом 12С
Группа (А7...А4)
Обозначение
Функциональное назначение
«0»(0000)
0
0
0
-
Общий вызов
X
X
X
-
Зарезервировано
«1»(0001)
1
А1
АО
SAA2530
ADR/DMX цифровой приемник
1
А1
АО
TDA8045
QAM-64 демодулятор
«2»(0010)
0
0
АО
8АА4700Д
Процессор цифровой линии VPS
0
0
АО
SAA5233
Двухстандартный PDC-декодер
0
0
1
SAA5243
Контроллер потока телетекста
0
0
1
SAA5244
Интегрированный VIP и телетекст
0
0
1
SAA5245
Декодер/контроллер 525-строчного телетекста
0
0
1
SAA5246A
Интегрированный VIP и телетекст
0
0
1
SAA5249
Интегрированный VIP и телетекст
0
А1
АО
CCR921
Декодер RDS/RBDS
0
А1
АО
SAF1135
Цифровая линейка 16 декодеров VPS
1
0
0
SAA5252
Декодер 21 линии
1
1
АО
SAB9075H
PIP-процессор системы NTSC
Группа (А7...А4)
Обозначение
Функциональное назначение
.3.(0011)
0
0
АО
SAA7370
CD-декодер и цифровой сервопроцессор
0
А1
АО
PCD5096
Универсальный кодек
0
1
АО
SAA2510
Видео CD-MPEG-декодер
0
1
1
PDIVSB11
Универсальная последовательная шина
1
0
1
SAA2502
MPEG аудиодекрдер
1
1
АО
SAA1770
D2MAC декодер для спутникового TV
.4» (0100)
0
0
0
SAA6750
MPEG2 энкодер для Desk Top Video
0
0
0
TDA9177
YUV transient improvement processor
0
0
0
TDA9178
YUV transient improvement processor
0
0
АО
РСА1070
Programmable speech transmission IC
0
А1
АО
SAA1300
Tuner swith circuit
А2
А1
АО
TDA8444
6-битный ЦАП
А2
А1
АО
PCF8574
8-битный I/O порт l2C
1
0
АО
PCD3311C
DTMF тональный генератор
1
0
АО
PCD3312C
DTMF тональный генератор
1
1
1
PCD5002
Д екодер страниц
.6.(0110)
0
0
0
SAA5301
MOJI-процессор для Японии/Китая
0
1
1
РСЕ84С46718
8-бигный КМОП автосинхр. контроллер-монитор
0
1
1
РСЕ84С882
8-битный микроконтроллер
0
1
1
РСЕ84С886
8-битный микроконтроллер
.7.(0111)
0
0
АО
SAA7140B
High performance video scaler
0
0
АО
PCF8576C
16-сегментный LCD-драйвер
Группа (А7...А4)
Обозначение
Функциональное назначение
0
А1
АО
" SAA1064
4-цифровой LED-драйвер
А2
А1
АО
PCF8574A
8-битный I/O порт 12С
0
1
0
PCF8577C
32/64-сегментный LCD-драйвер дисплея
0
1
АО
SAA2116
LCD контроллер/драйвер
1
0
АО
PCF8578/9
Матричный LCD-драйвер
1
0
АО
PCF8568
LCD-драйвер столбцов матричного дисплея
1
0
АО
PCF8569
LCD-драйвер колонок матричного дисплея
1
1
АО
PCF8566
96-сегментный драйвер с мультиплексированием
«8» (1000)
0
0
0
ТЕА6300
Регулятор громкости звука для предусилителей
0
0
0
ТЕА6320/1/2/3
Регулятор громкости звука
0
0
0
ТЕА6330
Регулятор громкости и тембра
0
0
АО
NE5751
Аудиопроцессор
0
0
АО
TDA8421
Аудиопроцессор
0
0
АО
TDA9860
Hi-R аудиопроцессор
0
0
1
TDA8424/5/6
Аудиопроцессор
0
1
0
TDA8415
TV/VCR стереозвуковой процессор
0
1
0
TDA8417
TV/VCR стереозвуковой процессор
0
1
0
TDA9840
IV стереозвуковой процессор
о
1
АО
TDA8480T
Корректор RGB для IV
1
0
0
TDA4670/1/2
Picture signal improvement (PSI) circuit
1
0
0
TDA4680/5/7/8
Видеопроцессор
1
0
0
TDA4780
Контроллер цветопередачи
1
0
0
TDA4885
150-МГц видеоконтроллер
1
0
0
TDA8442
Интерфейс декодера цветностиI
1
0
1
TDA8366
Мультистандартный видеопроцессор
Группа (А7..Л4)
Обозначение
Функциональное назначение
1
0
1
TDA8373
NTSC видеопроцессор
1
0
1
TDA8374
Мультистацдартный видеопроцессор
1
0
1
TDA8375/A
Мультистацдартный видеопроцессор
1
0
1
TDA8376/A
Мультистацдартный видеопроцессор
1
0
1
TDA9161A
Контроллер шины процессора синхронизации
1
А1
1
SAA7151B
8-битный мультистацдартный декодер для TV
1
А1
1
SAA7191B
Цифровой мультистацдартный TV декодер
1
А1
1
SAA9056
Цифровой SCAM декодер цвета
1
А1
1
TDA9141/3/4
Мультистацдартный декодер
1
А1
1
TDA9160
Мультистацдартный декодер-процессор
1
А1
1
TDA9162
Мультистацдартный декодер-процессор
1
1
0
TDA4853/4
Автосинхронизирующийся дефлектор
1
1
0
TDA9150B
Процессор-дефлектор
1
1
0
TDA9151B
Программируемый процессор-дефлектор
1
1
АО
ТЕА6360
5-полосный эквалайзер
1
1
АО
TDA8433
Процессор-дефлектор
•9»(1001)
А2
А1
АО
PCF8591
4-кан. 8-битный АЦП и 1-кан. ЦДЛ
А2
А1
АО
TDA8440
Переключатель аудио/вцдео
А2
А1
АО
TDA8540
4x4 переключаемая видеоматрица
1
А1
АО
TDA8752
Быстрый АЦП для LCD
1
1
АО
SAA7110A
Цифровой мультистацдартный декодер
«А» (1010)
0
0
0
РСВ2421
1к последовательная БЕРНОМ
0
0
АО
PCF8583
256 х 8-битный ВАМ/часы/калецдарь
0
0
1
PCF8593
Часы-калеццарь с низковольтным питанием
Группа (А7...А4)
Обозначение
Функциональное назначение
А2
А1
АО
PCF8570
256 х 8-битный статическая ВАМ
А2
А1
АО
PCF8522/4
512 х 8-битный КМОП EEPROM
А2
А1
АО
РСА8581/С
128 х 8-битный БЕРНОМ
А2
А1
АО
PCF8582/A
256 х 8-битный БЕРНОМ
А2
А1
Р0
РСХ8594
512 х 8-битный КМОП БЕРНОМ
А2
А1
Р0
РСХ8598
1024 х 8-битный КМОП EEPROM
«В»(1011)
0
0
АО
SAA7199B
Цифровой мультистацдартный декодер
0
1
0
TDA8416
TV/VCR стереопроцессор
0
1
АО
TDA9850
BTSC стерео/SAP декодер
0
1
АО
TDA9855
BTSC стерео/SAP декодер
0
1
1
TDA9852
BTSC стерео/SAP декодер
1
0
0
TDA9610
Аудио FM процессор для VCR
1
0
0
TDA9614H
Аудиопроцессор для VHS
1
А1
0
SAA7186
Цифровой регулятор линейности строк
1
0
1
РСА8516
Stand-alone OSD IC
1
1
1
SAA7165
Видео D/А процессор
1
1
1
SAA9065
Видео D/А процессор
«С» (1100)
0
0
1
ТЕА6100
FM/IF для р/приемников с микроконтроллерами
0
1
0
ТЕА6821/2
Автомобильный АМ приемник
0
1
0
ТЕА6824/Т
IF IC для автомобильных приемников
0
А1
АО
TSA5511/2/4
1,3-ГГц PLL синтезатор частоты для TV
0
А1
АО
TSA5522/3M
1,4-ГГц PLL синтезатор частоты для TV
0
1
АО
TDA8735
150-МГц PLL синтезатор частоты
0
1
АО
TSA6057
Синтезатор частоты для радиоприемников
[ Группа (А7...А4)
Обозначение
Функциональное назначение|
1
АО
TSA6O6O
Синтезатор частоты для радиоприемников|
0
1
АО
UMA1014
Синтезатор частоты для мобильных телефонов I
1
0
0
TDA8722
Negative video modulator with FM soundI
•0»(1101)
0
0
АО
TDA8043
QPSK демодулятор и декодер
0
0
АО
TDA9170
YUV processor with picture improvement>
0
А1
АО
PCF8573
Часы/календарь
А2
А1
АО
TDA8443A
YUV/RGB переключаемая матрица
0
1
АО
TDA8745
Декодер звука для спутникового IV
1
0
0
TDA1551Q
2 х 22 Вт автомобильный стерео УНЧ
1
А1
АО
TDA4845
Векторный процессор для кинескопов
1
А1
АО
UMA1000T
Цифровой процессор для мобильн. телефонов
1
1
АО
PCD4440
Звуковой скрамблер/дескр. для мобильн. телеф.
*Е»(1110)
0
0
0
TDA9177
2nd адрес для LTI (1$ is ‘40’)
0
0
0
TDA9178
2nd адрес для LU (1st is‘40’)
0
0
АО
SAA7192
Цифровой конвертор цвета
*Е»(1111)
X
X
X
Зарезервированные адреса
«О-..F» (0000...1111)
X
X
X
PCF8584
Ф контроллер шины
Примечания:
х — не определено;
А — программируемый бит;
Р — бит переключения страницы;
QАМ-64 — квадратурная амплитудная модуляция с 64 значащими позициями амплитуды и фазы является спектрально-эффектив
ным методом модуляции;
VPS — система программирования работы видеомагнитофона с помощью закодированных в телепрограмме сигналов, система распознавания видеопрограмм, специальная служба на TV-станциях; каждая программа передается со специальным кодом, воспринимаемым декодером VPS, который управляет записью по таймеру; если кодовые сигналы телепрограммы и внутренних установок совпадают, производится запись (управляющая информация передается в 16-й строке);
RDS/RBDS.—система передачи данных в диапазоне FM; используется для передачи информации в цифровом виде и отображения ее на дисплее радиоприемника;
VIP — входной видеопроцессор;
PIP — эффект «кадр в кадре», специальное устройство, позволяющее «врезать» в текущее изображение одно или несколько дополнительных изображений меньшего формата;
D2MAC — система цветного телевидения — аналоговый сигнал, частичная цифровая обработка, цифровой сигнал звукового сопровождения; распространена в основном в кабельных и спутниковых системах;
LCD — жидкокристаллический индикатор;
LED — светодиодный индикатор;
EEPROM — электрически программирумая/репрограммируемая память;
OSD — отображение на экране телевизора дополнительной информации;
QPSK — квадратурная фазовая модуляция (манипуляция); применяется в системах спутникового TV.
Представители микросхем
с интерфейсом 12С
В этой главе приводятся сведения, необходимые для проектирования несложных конструкций на основе микросхем с интерфейсом 12С. Как показывает практика, далеко не все микросхемы возможно использовать в радиолюбительском творчестве. Например, достаточно трудно применять такие варианты, как микросхемы для телевизионных приемников, формирователи сигналов разверток, корректоры цветовых переходов, декодеры цветности, синтезаторы частоты для мобильных телефонов и т. д. Поэтому в рамках данной книги рассматриваются микросхемы, которые могут быть использованы преимущественно в домашней аудиоаппаратуре, такой, как, например, усилители низкой частоты, усилители мощности, радиоприемники. Что-то подойдет для создания несложных и полезных устройств на основе микроконтроллера — охранные системы, системы сбора информации, электронные частотомеры, фазометры, генераторы. При необходимости получить информацию по другим типам микросхем можно непосредственно с сайта фирмы Philips (http://www.semiconductors.philips.com). Следует отметить, что оригинальная документация требует перевода с английского языка, а значит, необходимо приложить некоторые усилия тем, кто английский знает плохо или вообще не знает. Но при определенном навыке глубоких знаний не требуется и смысл большинства слов становится ясным без перевода.
Итак, перейдем к рассмотрению микросхем.
ЭСППЗУ с последовательным доступом
Микросхемы ЭСППЗУ (электрически стираемые постоянно программируемые запоминающие устройства) с последовательным доступом появились на рынке сравнительно недавно, но тем не менее они прочно вошли в арсенал разработчика. Международная аббревиатура микросхем — EEPROM (electrically erasable PROM). Истори-
чески первыми появились, впрочем, микросхемы с параллельным доступом, когда каждый бит байта мог быть считан или записан по отдельной линии, а значит, одновременно с другими битами. Адрес хранения байта задавался также параллельным способом. То есть, к примеру, память 8-разрядных данных на 256 ячеек должна содержать 8 линий данных и 8 линий адреса данных. Достоинством памяти с параллельным доступом является достаточно малое время доступа — данные транслируются одновременно по всем линиям. Управлять такой памятью тоже очень просто, достаточно выставить адрес, и данные будут считаны (записаны).
Гораздо сложнее работать с последовательной памятью. Во-первых, необходимо последовательно, бит за битом, передать адрес ячейки памяти, затем точно так же передать (или считать) данные. Очевидно, скорость обмена с такой памятью в десятки раз меньше, чем с памятью параллельной. Что и сдерживало появление такого вида памяти. Массовый выпуск последовательных EEPROM начался после того, как в составе малогабаритной техники появились несложные микроконтроллеры. В основном такая техника не критична к высокой производительности вычислительных устройств, к ней относится бытовая и управляющая аппаратура. Еще одно важное обстоятельство, расширяющее возможности применения последовательных микросхем ЭСППЗУ, — их достаточно низкая стоимость.
Следует отметить, что для доступа к данным последовательной памяти используются разные интерфейсы: I2C, Microwire, SPI, CBUS. Некоторые сведения относительно номенклатуры микросхем можно почерпнуть в литературе [2]. Мы коснемся только тех, которые имеют интерфейс 12С. Обратите внимание: ЭСППЗУ с интерфейсом 12С, выпускаемые разными фирмами (SGS-Thomson microelectronics, Philips, Microchip) и имеющими одно наименование (например, 24С01), могут немного отличаться по расположению выводов, способу задания slave-адреса, особенности внутренней организации, принципам защиты от записи и др. При проектировании конкретных устройств рекомендуется ориентироваться не только на наименование ЭСППЗУ, но также и поинтересоваться фирмой-производителем, получить оригинальную техническую документацию.
Примеры применения EEPROM с последовательным доступом рассмотрим по документации [10, 11], относящейся к микросхемам
РСА8581 (128 х 8 битов) и PCF85xx (256...1024 х 8 битов), производимых Philips, а также по мануалам [12, 13], описывающим микросхемы 24LC16B (2048 х 8 битов) и 24LC32A (4096 х 8 битов) производства фирмы Microchip.
РСА8581
Микросхема имеет два исполнения (без буквы «С» в окончании названия и с буквой), отличающихся по некоторым основным эксплуатационным характеристикам. Основные параметры микросхемы:
питающее напряжение от 4,5 до 5,5 В (РСА8581) и от 2,5 до 6,0 В (РСА8581С);
встроенный импульсный умножитель напряжения «зарядовый насос» для обеспечения режима записи (для программирования памяти нужно напряжение 12 В, в то время как микросхемы питаются пониженным напряжением);
автоматическое стирание ранее записанной информации перед записью новой (режим automatic erase/write);
ток потребления в дежурном режиме 10 мкА;
задание slave-адреса с помощью трех внешних выводов (АО, А1,А2);
автоматический инкремент адреса при обращении;
минимально гарантированное число циклов записи — 10 000;
минимально гарантируемое время сохранения записанной информации—10 лет;
бесконечно возможное число циклов чтения;
рабочая температура окружающей среды от -25 до +85 °C;
возможность использования на одной шине до 8 однотипных микросхем без дополнительных аппаратных средств переключения и расширения;
максимальная частота SCL сигнала — 100 кГц (режим low-speed).
Микросхема выпускается в 8-выводном корпусе типа DIP8 или SO8 (с планарными выводами). Расположение выводов приведено на рис. 3.1, а их назначение — в табл. 3.1.
Таблица 3.1. Назначение выводов РСА8581
ГСимвол
Вывод
Описание
1 М
1
slave-адресОJ
А1
2
slave-адрес 1
А2
3
slave-адрес 2
V$s
4
Общий вывод
SDA
5
Линия SDA вход/выход
SCL
6
Линия SCL вход
TEST
7
Тестовый вывод|
Vdo
8
Питание«+» |
АО [7
Al[2
jJ Vdo
^ TEST
А2 [з
7Г] SCL
Vss [Т
б] SDA
Рис. 3.1. Расположение выводов микросхемы РСА8581
Внутреннее устройство микросхемы показано на рис. 3.2.
Чтобы предохранить микросхему от перегрузок, например при воздействии статического электричества, разработаны и используются разные методы защиты. Наиболее эффективны, дешевы и носят массовый характер методы встраивания защитных диодов. Один из таких способов, примененный в данной микросхеме, показан на рис. 3.3.
Выводы конфигурации slave-адреса А0...А2 снабжены двумя последовательно включенными диодами. При превышении напряжения на выводах А0...А2 порога, заданного напряжением VDD, открывается верхний диод и «притягивает» вывод к потенциалу питания VDD. Если напряжение становится ниже Vss (потенциал общего провода), открывается нижний диод и «притягивает» вывод к потенциалу «земли» Vss. Обратите внимание: в данном случае выводы SDA и SCL имеют только защиту от отрицательного напряжения и не имеют за-
Рис. 3.2. Внутреннее устройство микросхемы РСА8581
щиты от положительного (верхний диод отсутствует), поскольку микросхема может быть использована при напряжениях на шине, отличных от напряжения питания микросхемы.
Мы уже знаем, что обращение к микросхеме происходит посредством передачи по шине 12С slave-адреса, как показано на рис. 3.4. Адрес в данном случае состоиг из 7 битов. Старшие 4 бита (1010) оп-
ределяют принадлежность микросхемы к группе EEPROM, младшие 3 бита — АО, Al, А2 — задают уникальный идентификационный номер в группе однотипных микросхем. Если на шине присутствует несколько микросхем с одинаковыми старшими 4 битами slave-адреса, необходимо с помощью перемычек, подключаемых к напряжению питания или к общему проводу, задать на выводах А0...А2 потенциалы, назначить микросхемам уникальные идентификационные номера, например, как показано на рис. 3.5. Обращение к соответствующему элементу будет производиться программно, заданием битов А0...А2.
1 | 0 | 1 | 0
А2 | А1 | АО
Группа 1
Группа 2
Рис. 3.4. Построение slave-адреса
VOD
SDA SCL
Рис. 3.5. Соединение однотипных микросхем на шине 12С
автоинкремент адресаавтоинкремент адресаR/W задается пользователемR/W задается пользователемРис. 3.7. Master передает данные к slaveРис. 3.7. Master передает данные к slave
автоинкремент адреса
автоинкремент адреса
R/W задается пользователем
R/W задается пользователем
Рис. 3.7. Master передает данные к slave
Рис. 3.7. Master передает данные к slave
Разберемся теперь, как устроена матрица памяти микросхемы и каким образом осуществить запись (считывание) данных.
Рассмотрим сначала ситуацию, когда устройство master передает данные к slave-абоненту (режим записи WRITE). Формат сообщения представлен на рис. 3.7.
Вначале осуществляется передача slave-адреса и признака R/W (в данном случае этот бит установлен в «О»), Второй байт — адрес ячейки матрицы памяти, изображенной на рис. 3.6. Обратите внимание: старший бит этого байта, помеченный на рис. 3.7 знаком «х», не определяется или, другими словами, может быть установлен в «О» или в «1». Почему? Это станет понятным, когда мы представим, что с помощью 8 битов возможно задание 256 адресов, но в данной микросхеме присутствует только 128 ячеек (а значит, столько же и адресов). Старшие. 128 адресов здесь просто не определены.
После передачи адреса ячейки осуществляется передача байта данных (DATA). Биты 7...О последовательно занимают ячейки памяти. После приема бита «О» данных осуществляется автоинкремент (увеличение на единицу) адреса памяти. Естественно, завершение передачи должно сопровождаться появлением условия Stop.
Чтение из памяти осуществляется по протоколу, показанному на рис. 3.8.
АСКАСКАСКАСКотсутствие АСК
slavemastermaster isr:ж*?^: |a|s| * h^hй: 444:'
^^В этот момент F^W||||
master начинает автоинкремент автоинкремент принимать данные,адресаадреса
a slave - передачу
Рис. 3.8. Чтение из памяти
Вначале необходимо передать slave-адрес с признаком R/W — «О», затем адрес ячейки. После получения master-абонентом сигнала АСК, свидетельствующего о нормальном приеме адреса ячейки памяти, master-абонент должен выставить повторное условие Start и передать slave-устройству slave-адрес с признаком R/W — «1», получить АСК от slave-устройства и начать считывание данных, выставляя после каждого полученного байта «сигнал АСК. После получения последнего байта master-абонент не выставляет сигнала АСК, а выполняет условие Stop. Заметим, что в данном случае также справедлив автоинкремент адреса ячейки.
Master-абонент может начать непосредственное чтение со slave-устройства, но в этом случае он должен учитывать, что чтение будет производиться не с нулевого адреса, а с увеличенного на единицу адреса, операция с которым была последней в предыдущем цикле (рис. 3.9).
АСКАСКАСК
slaveslaveslave
[sp, №№ .чА1 , . тгт . . i ут? , , |i|pl
R/WII
автоинкремент автоинкрементадресаадреса
Рис. 3.9. Чтение без предварительной установки адреса байта
PCF85XX
Эта серия микросхем EEPROM имеет увеличенный объем памяти по сравнению с предыдущей микросборкой. Емкость микросхем серии указана в табл. 3.2.
Таблица 3.2
Микросхема
Емкость
Организация
PCF8582
2 кбита
256 х 8 битов
PCF8594
4 кбита
512 х 8 битов
PCF8598
Вкбитов
1024 х 8 битов
Микросхемы обеспечивают 1 000 000 гарантированных циклов стирания/записи (E/W) и 10 лет хранения записанной информации,
Рис. 3.10. Внутреннее устройство микросхем PCF8582, PCF8594, PCF8598
совместимы с чипами PCF8570, PCF8571, PCF8572 и PCF8581 по расположению выводов. Внутренее устройство микросхем PCF8582, PCF8594 и PCF8598 приведено на рис. 3.10.
Расположение выводов указанных микросхем приведено на рис. 3.11, назначение выводов — в табл. 3.3—3.5.
АО
е
з
VOD
WP
Е
3
Vdo
WP
Е
3
Vdd
А1
Е
3
РТС
А1
Е
3
РТС
—
Е
3
РТС
А2
Е
3
SCL
А2
Е
3
SCL
А2
Е
3
SCL
Vss
Е
3
SDA
Vss
Е
3
SDA
Vss
Е
3
SDA
PCF8582
PCF8594
PCF8598
Рис. 3.11. Расположение выводов
Символ
Вывод
Описание
АО
1
Slave-адрес 0
А1
2
Slave-адрес 1
А2
3
Slave-адрес 2
vss
4
Общий вывод
SDA
5
Линия SDA вход/выход
SCL
6
Линия SCL вход
PTC
7
Контроль времени программирования
Vdd
8
Вывод питания «+»
Таблица 3.3. Назначение выводов PCF8582
Символ
Вывод
Описание
WP
1
Защита записи
А1
2
Slave-адрес 1
А2
3
Slave-адрес 2
vss
4
Общий вывод
SDA
5
Линия SDA вход/выход
Таблица 3.4. Назначение выводов PCF8594
Окончание таблицы 3.4
Символ
Вывод
Описаниеj
SCL
6
Линия SCL вход
РТС
7
Контроль времени программирования |
Уро
8
Вывод питания«+»?
Таблица 3.5. Назначение выводов PCF8598
JСимвол
Вывод
Описание
।WP
1
Защита записи
-
2
Не используется
А2
3
Slave-адрес 2
Vss
4
Общий вывод|
SOA
5
Линия SDA вход/выход[
jSCL
6
Линия SCL вход
PTC
7
Контроль времени программирования
Vdo
8
Вывод питания«+»
Протокол программирования памяти микросхем аналогичен приведенному ранее, но имеет некоторые особенности. Одна из особенностей связана с тем, что адрес ячейки памяти не может содержать число, превышающее 255. Но приведенные типы микросхем содержат 512 и 1024 ячейки. Что это означает? Все очень просто: в slave-адресе биты А0...А2 уже не все программируются внешними перемычками. Часть из них выбирается программно, при задании slave-адреса. Мы словно объединяем в одном корпусе несколько микросхем PCF8582. Структура памяти, состоящая из блоков по 256 байтов, называется страничной организацией. К слову, максимальное число страниц в одной микросхеме 8.
Интересной возможностью, реализованной в описываемых микросхемах, является возможность защиты от повторной записи. Если вывод WP имеет низкий уровень, работа с EEPROM не имеет ограничений. Если WP устанавливается в состояние «1», верхняя половина памяти EEPROM защищается от записи. В таком случае сигнал АСК не будет генерироваться при адресации к верхней половине (256 байтов) PCF9594 и PCF8598 (512 байтов).
При записи данных в память EEPROM должны быть выдержаны определенные временные соотношения (циклы erase/write). Длительность этих циклов формируется внутри микросхемы и в большинстве случаев не требует коррекции. Если коррекции не требуется, вывод РТС может быть подключен к VDD или оставлен не подключенным. Типичное значение времени tryw = 7 мс, оно может быть задано внешне в пределах 4... 10 мс.
Как уже ранее было сказано, микросхемы EEPROM с последовательным доступом по шине 12С выпускает не только фирма Philips, но и другие не менее известные фирмы. Для сравнения приведем описания микросхем 24LC16B и 24LC32A, производимых Microchip.
24LC16B
Емкость микросхемы — 16 кбитов, организованных в 8 блоков по 256 битов. Основные характеристики:
е возможность питания пониженным напряжением (до 2,5 В);
е наличие входных формирователей (триггеров Шмитта) для обеспечения помехоустойчивости;
е ток потребления в активном режиме 1 мА;
потребление в режиме ожидания —10 мкА при питании 5,5 В и
5 мкА при питании 3,0 В;
е организация 8 х 256 х 8 битов;
защита входов от потенциального пробоя 4 кВ;
возможность работы в режиме fast-speed;
автоматическое выполнение цикла E/W;
внутренний буфер данных размером 16 байтов;
типичный цикл записи страницы данных — 2 мс;
аппаратная защита от перезаписи;
гарантированное число циклов E/W — 1 000 000;
е сохранность записанных данных — не менее 200 (!) лет;
коммерческое (0...+70 °C) и индустриальное (-40...+85 °C) исполнения;
корпуса DIP и SOIC.
Расположение выводов показано на рис. 3.12.
-В
7] Voo
-Е
z] wp
-Е
e]scL
Vssf4
sjSDA
Рис. 3.12. Расположение выводов 24LC16B
Запись в память и считывание из нее осуществляется по принципам, описанным выше, поэтому мы не будем повторяться.
Очень важный момент, на который обращают внимание разработчики микросхемы, связан с повторным обращением к памяти вслед за завершением предыдущего цикла. Другими словами, после установки условия Stop внутри микросхемы начинается процесс записи в матрицу памяти и, пока он не закончится, совершать повторные операции не представляется возможным.
Особенно это будет заметно в режиме fast-speed, поскольку в нем используются ускоренные шинные циклы. Сообщить об окончании внутренних операций микросхема может только при помощи установки сигнала АСК в состояние «О». Для сокращения времени опознавания разработчики рекомендуют производить эту процедуру с помощью так называемого поллинга (acknowledge polling flow), то есть постоянного опроса состояния готовности. Процедура поллинга приведена на рис. 3.13.
Как следует из рис. 3.13, master-абонент вслед за передачей условия Stop выставляет условие Start, передает slave-адрес и проверяет сигнал АСК. Если АСК = 1 (занято), передается повторно условие Start, slave-адрес, осуществляется проверка АСК. Если АСК = 0 (свободно), master-абонент переходит к следующей операции.
Память можно защитить от записи, подключив вывод WP к напряжению VDD. Обратите внимание: таким образом защищается полный объем памяти (OOOh—7FFh), а не ее часть (верхняя или нижняя). Защищенная память представляет собой тип ROM с последовательным доступом (read-only, только чтение).
Внутреннее устройство микросхемы, приводимое в технической документации, вы можете увидеть на рис. 3.14.
Рис. 3.13. Процедура толлинга
На рис. 3.14:
—• порт ввода/вывода;
— контроллер памяти;
— декодер «X»;
—• генератор высокого напряжения;
— матрица памяти;
— селектор страниц;
— декодер «У»;
— схема контроля R/W.
24LC32A
Пожалуй, это наиболее интересная микросхема, позволяющая хранить 32 кбита информации. «Как же так, — спросите вы, — неужели возможно без специальных средств обеспечить хранение и обмен информации, превышающей 16 кбитов?» Оказывается, можно. Причем никаких дополнительных микросхем расширения не потребуется — все необходимые средства уже есть в составе описываемой EEPROM.
Мы не будем останавливаться на параметрах микросхемы, так как они в основном совпадают с теми, что были приведены для 24LC16B. Расположение выводов показано на рис. 3.15, внутреннее устройство — на рис. 3.16. Назначение блоков совпадает с рис. 3.14.
Вы уже обратили внимание на наличие выводов АО...АЗ, позволяющих селектировать slave-адрес и «повесить» на шину 12С до 8 таких микросхем? Не будет ли здесь путаницы, шинного конфликта? В самом деле, классический вариант может адресовать только 256
АО [7А1 UА2 [зVss[7АО [7А1 UА2 [зVss[77| WP7]scl71 SDA7| WP7]scl71 SDA
АО [7
А1 U
А2 [з
Vss[7
АО [7
А1 U
А2 [з
Vss[7
7| WP
7]scl
71 SDA
7| WP
7]scl
71 SDA
Рис. 3.15. Расположение выводов 24LC32A
Рис. 3.16. Внутреннее устройство микросхемы 24LC32A
ячеек, переключая страницы посредством задания определенных уровней сигнала на выводах АО...АЗ или программируя их в slave-адресе. Дело в том, что данная микросхема имеет два адресных бита, следующих за slave-адресом, как показано на рис. 3.17.
slave-адресадресный бит 1адресный бит О
Рис. 3.17. Адресация в микросхеме 24LC32A
Матрица памяти разделена здесь также на блоки по 256 байтов, но селектируются они уже не посредством задания битов А0...А2 в slave-адресе, а битами А8...А11 в адресном бите 1.
Операции записи байта, записи цепочки байтов с автоинкрементом адреса, чтения байта и чтения байта с автоинкрементом приведены на рис. 3.18..3.21. Дополнительных пояснений рисунки не требуют.
Добавлю, что в данной микросхеме предусмотрен вывод WP, позволяющий выполнить защиту от записи. Здесь также может быть использована процедура программного поллинга для обеспечения быстрого повторного доступа.
№№ППо, |о|о|о|оГТТП 1111111 П 111111111 Й
slave-R АадресныйАадресныйADATA А
адресWC байт 1С байт 1СС
Рис. 3.18. Запись байта в память
№№1771°, 10,01010171711111111П111111 И 1уИ III1111 Й
slave-адрес RA адресный А адресный A DATA ОDATA 31 А
WC байт 1 Сбайт ОСС
Рис. 3.19. Запись цепочки байтов с автоинкрементом адреса
ЕМ^ slave-адресRAадресныйАадресныйАslave-адресRA DATA N
WCбайт1Сбайт ОСWCО
ККККА
Ск
Рис. 3.20. Чтение одиночного байта
sт
slave-- адрес-slave-- адрес-СкСкРис. 3.21. Чтение цепочки байтов с автоинкрементомРис. 3.21. Чтение цепочки байтов с автоинкрементом
slave-- адрес-
slave-- адрес-
Ск
Ск
Рис. 3.21. Чтение цепочки байтов с автоинкрементом
Рис. 3.21. Чтение цепочки байтов с автоинкрементом
К5004РС2, КР5004РР4
Отечественная промышленность хоть и с большим опозданием, но все же собирается выпустить на рынок микросхемы памяти с последовательным доступом и интерфейсом, один к одному соответствующим 12С [17, 18]. И хотя на момент написания этой книги доку-
ментация пока еще имеет гриф «предварительно», возможно, что ко дню выхода этой книги из печати микросхемы К5004РС2 и КР5004РР4 производства ОАО «Ангстрем», г. Зеленоград уже появятся в продаже.
Что же это за микросхемы? Просматривая документацию, вы не найдете там упоминания об 12С, но, сравнив принципы доступа с фирменными, приведенными чуть выше, можно убедиться в полной совместимости с этой шиной. Мало того, интерфейсные линии имеют обозначения SCL и SDA, как у лицензированных микросхем 12С.
Микросхема К5004РС2 (АДБК.431210.792 ТУ) совместима с режимами low-speed и fast-speed. Она организована страницами по 8 байтов. Количество страниц — 32. Запись осуществляется блоками размером от 1 до 8 байтов в одной странице, при одном цикле записи. Питается микросхема напряжением 2,7...5,5 В, имеет аппаратную защиту от записи.
Микросхема КР5004РР4 (АДБК.431210ю737 ТУ) также совместима с режимами low-speed и fast-speed, организована страницами по 8 байтов. Количество страниц — 64, питание от 4,5 до 5,5 В. Обе микросхемы будут выпускаться'в двух корпусах — DIP8 и SOIC.
В чем же может заключаться преимущество данных микросхем перед импортными? Пожалуй, только в цене.
Синтезаторы частоты
Синтезаторы частоты используются в радиоприемной аппаратуре, телевизорах, аппаратуре сотовой и многоканальной связи для получения стабильной во времени частоты, которую можно регулировать с определенным шагом. Другими словами, синтезатор служит для формирования сетки частот. Синтезаторы частоты обычно выполняются с применением цифровой техники, то есть необходимая частота задается в цифровом виде, управление осуществляется с помощью микроконтроллера. Красноречивый пример удобства использования цифровой настройки вы можете почувствовать, когда включаете в телевизоре режим автосканирования. Синтезатор плавно «пробежит» диапазон, микроконтроллер «запомнит» найденные те-
леканалы, и пользователю остается только нажимать кнопки выбора каналов на дистанционном пульте управления.
Общие принципы устройства синтезаторов, их применения в радиолюбительских приемниках вы сможете найти в предыдущей книге данной серии [14]. В этой книге приводится пример использования синтезатора SAA1057 фирмы Philips. Для его программирования необходимо иметь три линии стандарта CBUS, что, конечно, не слишком удобно. Шина 12С в этом отношении более прогрессивна, так как имеет только две линии. Естественно, немного усложнен протокол обмена, но это плата за внешнюю простоту. К тому же для обеспечения обмена и передачи данных нужно всего лишь соответствующим образом разработать программное обеспечение.
В качестве примера синтезатора частоты с интерфейсом 12С мы рассмотрим микросхему TSA6057 [15]. Аналогичная ей микросхема TSA6060 имеет расширенный частотный диапазон и практически не отличается от TSA6057.
TSA6057
Этот синтезатор частоты специально разработан для использования в радиоприемной аппаратуре. Он выпускается в корпусах DIP 16 (TSA6057) и SOT162-1 (TSA6057T) с планарными выводами. В предуведомлении [15] содержатся основные технические характеристики микросхемы, а также упоминаются ее преимущества по сравнению с предыдущими разработками в этой области:
совмещенный предварительный усилитель сигналов АМ и FM диапазонов с высокой входной чувствительностью;
совмещенный токовый усилитель типа «зарядовый насос» (charge pump) с двумя уровнями выходного тока и регулировкой петлевого усиления системы ФАПЧ (фазовой автоподстройки частоты);
единый задающий генератор (4 МГц) для диапазонов АМ и FM;
быстрая настройка, обеспечиваемая цифровым фазовым детектором;
настраиваемая сетка частот: 1, 10, 25 кГц;
программный контроль переключения диапазонов.
Расположение выводов микросхемы приведено на рис. 3.22, назначение выводов — в табл. 3.6.
Таблица 3.6. Назначение выводов TSA6057
jСимвол
Вывод
ОписаниеI
XTAL1
1
Выход задающего генератора
XTAL2
2
Вход задающего генератора
Vcc.
3
Вывод питания«+»
Vee
4
Общий провод («земля»)|
5
Вход гетеродинного сигнала ЕМg
DEC
6
Вывод развязки предварительного делителя$
Ата
7
Вход гетеродинного сигнала АМ
BS
8
Вывод переключения диапазонов (открытый коллектор)
Itef
9
Выход частоты 40 кГц
SDA
10
Линия SDA ГС шины
SCL
11
Линия SCL ГС шины
I AS
12
Селектор slave-адреса на шине ГС|
FMe
13
Выход ЕМ внешнего петлевого фильтра |
LOOP,
14
Выход усилителя настройкиj
AM0
15
Выход АМ внешнего петлевого фильтра|
4x2
16
Вывод питания«+»I
xtaltQ
T] VCC2
XTAL2[2
z]AMo
VccQ
T|loopi
Vee [4
3fm=
Fm [К
5] AS
ОЕс[б
б] SCL
Ам [7
7] SDA
bs[b_
e]f™<
Микросхема сохраняет работоспособность в интервале температур от -30 до +85 °C и хранится в интервале температур от -65 до +150 °C.
Основные параметры, необходимые для проектирования, приведены в табл. 3.7.
Таблица 3.7
1Параметр технических условий
Символ
Мин.
Норма
Макс.
Ед. изм.
Напряжение питания (вывод 3)
VcC1
4,5
5,0
5,5
В
Напряжение питания (вывод 16)
VcC2
Vcci
8,5
12
В
Ток потребления: по выводу 3 по выводу 16
'cci
*СС2
12
0,7
20
1,0
28
1,3
мА
Входное напряжение высокого уровня на линиях
SCL.SDA
V|H
3,0
-
5,0
В
Входное напряжение низкого уровня на линиях SCL.SDA
V|L
-0,3
-
1,5
В
Напряжение низкого уровня (выходное) на линии
SDA
Vol
-
-
0,4
В
Входное напряжение высокого уровня на выводе
AS
Vih
3,0
-
5,0
в
Входное напряжение низкого уровня на выводе AS
VL
-0,3
-
1,0
в
Максимальная входная частота на входе AMj
fiAM
30
-
-
МГц
Минимальная входная частота на входе AMj
fiAM
-
-
0,512
МГц
Максимальная входная частота на входе FM,
f|FM
150
-
-
МГц
Минимальная входная частота на входе FM,
fjFM
-
-
30
МГц
Входное сопротивление на входе AMj
Ram
-
5,9
-
кОм
Входная емкость по входу AMj
Cam
-
2
-
пФ
Входное сопротивление на входе FM,
Rfm
-
3,6
-
кОм
Входная емкость по входу FMj
Срм
-
2
-
пФ
Входное напряжение на входе AMj (RMS)
4дм
30
-
500
■ мВ
Входное напряжение на входе FM6 (RMS)
VffM
20
-
300
мВ
Выходной ток схемы «зарядовый насос»: бит СР = 0 бит СР = 1
'dip 'dip
3 400
5 500
7
600
мкА мкА
Окончание таблицы 3.7
Параметр технических условий
Символ
Мин.
Норма
Макс.
ЕД.ИЗМ.
Выходное напряжение на выводе 8 (СР):
высокий уровень
V„h
—
—
12
в
низкий уровень
Vol
-
—
0,8
В
Выходная частота на выводе 9
^ref
-
40
-
кГц
Напряжение на выводе 9: высокий уровень
Voh
1,2
1,4
1.7
В
низкий уровень.
Vd
—
0,1
0,2
В
Напряжение на выводе 15 (AM tuning):
максимальный уровень
VoMAX
Vooz-1,5
—
—
В
минимальный уровень
VoMIN
—
—
0,8
В
Напряжение на выводе 13 (FM tuning):
максимальный уровень
VoMAX
^-1,5
—
—
В
| минимальный уровень
VoMIN
—
—
0,8
В
Блок-схема, отображающая внутреннее устройство микросхемы TSA6057, приведена на рис. 3.23. Цифрами обозначены:
, 2 — входные буферные усилители;
— предварительный усилитель с коэффициентом деления 3 и 4;
— мультиплексор;
— предварительный делитель с коэффициентом деления 3 и 4;
— 13-битный программируемый делитель;
— 4-битный swallop счетчик;
— цифровой фазовый детектор;
— мультиплексор «3 в 1»;
— задающий счетчик;
— задающий генератор;
— стабилизатор;
— контроллер шины 12С;
— регистр установленной частоты;
— программируемый токовый усилитель;
, 17 — выходные усилители;
— переключатель FM/AM;
— переключатель AM/FM;
— переключатель диапазонов.
Управление синтезатором осуществляется с помощью цепочки командных байтов, приведенной на рис. 3.24.
FWV
tsJ2355*3E^l£@ZEI*£52EI^^ZmSEZBEl
А7АОD7DO D7DOD0D7DO
Рис. 3.24. Структура управляющей цепочки командных байтов
Управляющая цепочка в общем случае содержит 6 байтов, но может содержать и 4 байта, то есть программирование синтезатора будет осуществляться быстрее. Чтобы определиться, в каких случаях возможно сокращение (усечение) цепочки, рассмотрим структуру и назначение каждого бита. Информация об этом содержится на рис. 3.25.
subadresssubadressDATA ОDATA ОDATA1DATA1DATA3DATA3DODOD7D7Рис. 3.25. Структура управляющих байтовРис. 3.25. Структура управляющих байтовDATA 2DATA 2slave- адресslave- адрес
subadress
subadress
DATA О
DATA О
DATA1
DATA1
DATA3
DATA3
DO
DO
D7
D7
Рис. 3.25. Структура управляющих байтов
Рис. 3.25. Структура управляющих байтов
DATA 2
DATA 2
slave- адрес
slave- адрес
Знакомый нам slave-адрес задан жестко, кроме информационного бита А1, связанного с выводом AS (12) микросхемы. Если подключить вывод AS к напряжению питания (+ 5 В), бит А1 должен программироваться в «1», если к общему проводу — то в «О». Соответственно в одном устройстве может одновременно работать 2 одинаковых PLL синтезатора. Зачем это нужно? Если вы прочтете книгу [14], то узнаете из нее о существовании так называемой системы
RDS (Radio Data System), предназначенной для передачи цифровых данных в FM диапазоне. Некоторые автомобильные магнитолы могут в фоновом режиме сканировать диапазон, осуществляя поиск соответствующей RDS передачи. Наиболее простым способом осуществить эту операцию видится установка двух одинаковых синтезаторов частоты, один из которых постоянно «держит» частоту настройки, а второй — периодически сканирует диапазон.
Байт субадреса (subaddress) задает объем информации, передаваемой для программирования синтезатора. Данная микросхема имеет 3 субадреса, показанных на рис. 3.26. Там же показаны и возможные объемы передачи информации.
|s| slave IА| subadress 02 |а| DATA 21А| РАТА 3 |а[р|
[s| slave I А| subadress 00 |А| DATA 0 | А| РАТА 1 [А|р]
|s| slave |А| subadress 03 |а| РАТА 3 |А| РАТА О |А| РАТА 1 |А| РАТА 2 |А|Р|
Рис. 3.26. Информация, передаваемая по субадресу
Наиболее полной является информация, передаваемая по субадресу со значением 03. Информация по субадресам 02 и 00 является как бы поделенной на две части. Очень важно отметить, что такое разделение не случайно. Почему? Снова обратим внимание на рис. 3.25. Информационные слова DATA0 и DATA1 содержат в основном данные по частоте настройки, в то время как слова DATA2 и DATA3 определяют в основном установки синтезатора частоты, которые подвержены изменению в значительно меньшей степени. Когда нет смысла часто менять установки, можно передавать только частоту настройки, тем самым сокращая время программирования. Удобно? Вне всякого сомнения! Забегая вперед, можно сказать, что слова DATA2 и DATA3 все-таки содержат данные о частоте (биты S15 и S16), но, как оказывается, в некоторых случаях они не подвержены изменению.
Теперь рассмотрим подробнее назначение битов, содержащихся в байтах DATA0...DATA3, а также принципы ее формирования. Частота настройки, которая будет отслеживаться синтезатором, устанавливается по правилу, приведенному в табл. 3.8.
Таблица 3.8
। Бит «FM/AM*
Входные частоты
Диапазон
0
(Sox2O + S,x2' +...+ S13x2«+ S14x2'4)xfrel
AM
1
(Sqx2Q+ S,x2> +...+ S15x2>s + S16x2>6)xfref
FM
Задав битами S0...S14 для диапазона АМ или битами S0...S16 для диапазона FM значение частоты, нужно умножить его на значение шага сетки частот (fref), и тогда мы получим истинное значение частоты, которое синтезатор будет поддерживать. Значение частоты frcr задается битами REF1 и REF2, содержащимися в байте DATA2 по правилу, приведенному в табл. 3.9.
Таблица 3.9
REF1
REF2
Частота, кГц
0
0
1
0
1
10
1
0
25
1
1
-
Важно также отметить, что минимальное значение частоты, задаваемое битами S0...S14, составляет 26, то есть 64, а в диапазоне FM — 28, то есть 256. Теперь нам станет понятно, почему в некоторых случаях нет необходимости менять информацию, содержащуюся в словах DATA2 и DAT АЗ, однажды задав ее, или обновлять достаточно редко (если, конечно, приемник работает только в диапазоне FM с сеткой частот 10 кГц). Попробуйте оценить, почему в этом случае вообще не нужно переключений в байтах DATA2 и DATA3...
Понятно, что бит FM/AM, содержащийся в байте DATA2, «переключает» диапазон, выбирая в качестве входа вывод 5 или вывод 7 микросхемы. Но необходимо также переключать и выходной программируемый токовый усилитель (поз. 15 на рис. 3.23). Для этого предназначены переключатели (поз. 18 и 19 на рис. 3.23), которые управляются с помощью бита «FM/AM opamp». Состояние этого бита показано в табл. 3.10.
Таблица 3.10
J Бит «FM/АМ opamp*
, Ключ «FM/АМ»
Ключ «АМ/FM»
1
закрыт
открыт
0
открыт
закрыт
Бит «BS» (Bandswidth) очень удобно использовать для переключения диапазонов приемника, так как его значение, будучи задано программно, появляется на выводе BS микросхемы (вывод 8). Необходимо отметить, что данный вывод выполнен по технологии «открытый коллектор» и для нормального функционирования важно нагрузить его сопротивлением порядка Ю кОм, подключенным к напряжению питания (5 В).
Биты Т1...ТЗ относятся к тестовым функциям, которые не описаны в документации [15]. Рекомендуется программировать все биты байта DATA3 нулями.
Типовая схема включения TSA6057 приведена на рис. 3.27. На основе этой микросхемы читателю будет предложено построить несложный тюнер, работающий в диапазонах FM и ЧМ («западном» и «отечественном»).
Рис. 3.27. Типовая схема включения TSA6057
TSA6060
Этот PLL синтезатор мало чем отличается от ранее описанной микросхемы TSA6057, поэтому здесь следует обратить внимание только на интересные отличия.
inlckQ3 Vccaxtal[z2] AMoVcci [T3] LOOPlVee e5 FMoFmi [5"7] ASdec [вe]scuAm [77] sdaBS[88 1 fretinlckQ3 Vccaxtal[z2] AMoVcci [T3] LOOPlVee e5 FMoFmi [5"7] ASdec [вe]scuAm [77] sdaBS[88 1 fretТаблица 3.11. Назначение выводов микросхемы TSA6060Таблица 3.11. Назначение выводов микросхемы TSA6060Для задания частоты генератора может использоваться кварцевый резонатор на 4 или 8 МГц (конфигурируется программно). Частотный диапазон: 500 кГц...30 МГц — для АМ и 30...200 МГц — для диапазона FM. Эта микросхема также может использоваться в селекторах метровых волн телевизионных приемников (VHF). Сетка частот может быть указана с шагом 1,10, 25, 50 кГц. Расположение выводов микросхемы TSA6060 показано на рис. 3.28, а назначение выводов — в табл. 3.11.
inlckQ
3 Vcca
xtal[z
2] AMo
Vcci [T
3] LOOPl
Vee e
5 FMo
Fmi [5"
7] AS
dec [в
e]scu
Am [7
7] sda
BS[8
8 1 fret
inlckQ
3 Vcca
xtal[z
2] AMo
Vcci [T
3] LOOPl
Vee e
5 FMo
Fmi [5"
7] AS
dec [в
e]scu
Am [7
7] sda
BS[8
8 1 fret
Таблица 3.11. Назначение выводов микросхемы TSA6060
Таблица 3.11. Назначение выводов микросхемы TSA6060
| Символ
Вывод
Описание|
INLCK
1
in-lock выходной детектор|
XTAL2
2
Вход задающего генератора
Vcc'
3
Вывод питания«+»
Vee
4
Общий провод («земля»)
F™
5
Вход гетеродинного сигнала FM
DEC
6
Вывод развязки предварительного делителя_
Ai
7
Вход гетеродинного сигнала АМ
BS
8
Вывод переключения диапазонов (открытый коллектор)
Рис. 3.28. Расположение выводов микросхемы TSA6060
Окончание таблицы 3.4
Символ
Вывод
Описание
!frel
9
Выход частоты 40 кГц
( SDA
10
Линия SDA ГС шины
set
11
Линия SCLГС шины
AS
12
Селектор siave-адреса на шине ГС
FM0
13
Выход FM внешнего петлевого фильтра
LOOP,
14
Выход усилителя настройки
AM0
15
Выход АМ внешнего петлевого фильтраS
J4x2
16
Вывод питания«+»|
В комбинацию битов REF1 и REF2 добавлена сетка частот 50 кГц — комбинация 11. Байты информации DATA2 и DAT3 имеют следующую структуру, показанную на рис. 3.29.
В документации приведена табл. 3.12, где указаны тестовые сигналы.
REF1
REF2
FM/ДИ
ОР АМР
8/4 МГц
BS
S16
S15
DATA 2
—
—
—
—
тз
Т2
Т1
—
DATA3
Рис. 3.29. Структура информационных байтов
Таблица 3.12. Тестовые сигналы
I 73
Т2
Т1
Функция|
I 0
X
0
Нормальная работа
I 1
0
1
СР source
г °
1
1
СР sink
I 1
1
1
СР 3-state
! о
0
1
СР sink+source
1
1
X
BS = main divider output
1
0
X
BS = reference divider output;
'-.™.r-
Сигнал INLCK (вывод 1) свидетельствует о захвате фазовым детектором частоты и об удержании ее. Дело в том, что при перестройке с одной частоты на другую требуется некоторое время для того, чтобы фазовый детектор вошел в синхронизацию и поддерживал неизменной частоту гетеродина. Процесс перестройки с частоты f( на частоту f2 показан на рис. 3.30.
График рис. 3.30, а отражает процесс изменения напряжения настройки (по сути это напряжение смещения на варикапах). Уровень напряжения, соответствующий частоте fp показан сплошной линией, соответствующий частоте f2 — пунктирной линией. Перестройка с частоты на частоту занимает некоторое время, и в момент ее начала сигнал захвата INLCK устанавливается в нулевое состояние. Так как петля ФАПЧ обладает некоторой инерционностью, напряжение «проскакивает» уровень f2, но через некоторое время снова склоняется к уровню f2. Процесс носит характер колебательного, но постепенно (асимптотически) сходящегося. В моменты пересечения линии f2 внутренняя схема lock flag (рис. 3.30, б) вырабатывает сигналы, свидетельствующие об этом (короткие установки в ноль), но на выходе
Рис. 3.30. Захват частоты при перестройке
INLCK сохраняется низкий уровень, так как высокий уровень здесь может установиться спустя некоторое время т^ (рис. 3.30, в). Так как вывод INLCK достаточно маломощный, необходимо использовать простейший буферный элемент — ключ на транзисторе (рис. 3.31).
Подключение микросхемы TSA6060 имеет минимальные отличия от описанной ранее TSA6057. Отличие состоит в установке кварцевого резонатора (рис. 3.32).
Рис. 3.31. Буферирование сигнала 1NLCKРис. 3.31. Буферирование сигнала 1NLCKРис. 3.32. Подключение кварцевого резонатора к TSA6060Рис. 3.32. Подключение кварцевого резонатора к TSA6060
Рис. 3.31. Буферирование сигнала 1NLCK
Рис. 3.31. Буферирование сигнала 1NLCK
Рис. 3.32. Подключение кварцевого резонатора к TSA6060
Рис. 3.32. Подключение кварцевого резонатора к TSA6060
Микросхемы для аудиоаппаратуры
TDA1551Q
В оригинальной документации [19] эта микросхема классифицируется как BTL car radio amplifier with diagnostic facility, или в переводе на русский язык — автомобильный мостовой усилитель мощности (УВЧ) со встроенными средствами диагностики состояния. Естественно, данную микросхему можно применять не только в автомобильной технике, но также и для создания высококачественного бытового стереоусилителя. Вообще похожие микросхемы, которые не снабжены интерфейсом 12С для диагностики состояния, широко распространены на отечественном рынке радиодеталей. К примеру, это TDA1519A, TDA1552Q, TDA1553Q, TDA1570Q, TDA8920 и многие другие. Однако микросхема TDA1551Q — значительный шаг вперед по сравнению с указанными микросборками в плане сервисных возможностей. Итак, что сказано в предуведомлении:
наличие минимального количества внешних навесных элементов;
возможность использования в четырехканальном и мостовом двухканальном вариантах;
управление и контроль посредством шины 12С;
наличие детектора динамических искажений;
тепловая защита;
наличие детектора пониженного напряжения питания;
высокая выходная мощность; • <
наличие режимов MUTE (блокировка звука) и SLEEP («засыпание»), задаваемых по шине 12С;
дополнительное подавление пульсаций питающего напряжения;
наличие схемы защиты нагрузки;
наличие схемы защиты по постоянному и переменному току от замыканий выходных контактов на общий провод и на шину питания;
низкое тепловое сопротивление корпуса;
наличие равноправных входов (инвертирующего и неинвертирующего).
Микросхема представляет собой усилитель низкой частоты класса В, размещенный в удобном корпусе SOT243R (рис. 3.33). Расположение выводов показано на рис. 3.34, а их назначение — в табл. 3.13.
—►1[е]и—Ьр—►1[е]и—Ьрiliiilii|iii,.liii5ii|||i|lii|liniiiliiilii|iii,.liii5ii|||i|lii|linii
—►1[е]и—Ьр
—►1[е]и—Ьр
iliiilii|iii,.liii5ii|||i|lii|linii
iliiilii|iii,.liii5ii|||i|lii|linii
Размер
А
ЬР
СР
D
d
Е
е
е1
62
j
L
1-3
m
Q
мм
17.0
4,6
0,75
0,48
24,0
20,0
12,2
2,54
1,27
5,08
3,4
12,4
2,4
4,3
2,1
Рис. 3.33. Корпус SOT243R
-INV1 [Г
INV1
SGNd[3 vPRp[±
Vpid OUT1 [б PGDN1 [7 OUT2[8 stby[s оитз(« PGND2[il
OUT4[l2
VpaEi INV2 [l4 NINV2 [l5
SCL |l6
SDA
Рис. 3.34. Расположение выводов TDA1551Q
Символ
Вывод
Описание
-INV1
1
Неинвертирующий вход 1
INV1
2
Инвертирующий вход 1
GND
3
Сигнальная «земля»
Vpn
4
Вывод подключения конденсатора фильтра
VPi
5
Вывод питания 1
OUT1
6
Выход 1
GND1
7
«Земля» шины питания 1
OUT2
8
Выход 2
SB
9
Вывод «дежурный режим»
оитз
10
Выход 3
GND2
11
«Земля» шины питания 2
01Л4
12
Выход 4
Vp2
13
Вывод питания 2
INV2
14
Инвертирующий вход 2
-INV2
15
Неинвертирующий вход 2
SCL
16
Линия SCL шины 12С
SDA
17
Линия SDA шины 12С I
Таблица 3.13. Назначение выводов микросхемы
Внутреннее устройство микросхемы TDA1551Q показано на рис. 3.35. Основные параметры микросхемы, необходимые для проектирования, приведены в табл. 3.14.
Рис. 3.35. Внутреннее устройство
пРедставители микросхем с интерфейсом 12С
Таблица 3.14
| Параметр технических условий
Символ | Мин.
Норма
Макс
Ед. изм. j
1 Напряжение питания
vP
6
14,4
18
В j
0 Неповторяющийся пиковый выходной ток
—
—.
6
A
Повторяющийся пиковый выходной ток
'orm
-
4
я
A j
Диапазон температур хранения
Tstg
-55
—
+150
*c
Рабочая температура кристалла
Tc
—
—
+150
*C
Общая тепловая рассеиваемая мощность
Pto
-
60
Вт
Тепловое сопротивление «кристалл-корпус»
—
1.5
—
К/Вт
Тепловое сопротивление «кристалл-среда» (без радиатора)
%-a)
40
-
K/Bt
Мостовое включение—L-——
Выходная мощность: THD = 0,5% ТНР = 10%
Po
15
20
17
22
-
E
Общие гармонические искажения (вых. мощность 1 Вт)
IMP
-
0,05
-
%
| Полоса воспроизводимых частот (по уровню
-1 ДБ)
В
20
-
20000
r"
Коэффициент усиления
Г g.
25
26
27
Входной импеданс
25
30
38
кОм |
Разделение каналов"
a
40
—
ДБ
Порог срабатывания детектора гармонических искажений
-
3,5
-
%
Небаланс каналов
ГТ~■—
-
—
1
дБ
| одиночное включение—
Выходная мощность:
ТНР = 0,5%
ТНР = 10%
P0
4
5,5
5
6
-
Вт I
Общие гармонические искажения (вых. мощность 1 Вт)
THP
-
0,05
—
%
| Нижняя воспроизводимая частота (по уровню |-ЗдБ)
flow
-
25
-
Гц
Верхняя воспроизводимая частота (по уровню ЦдБ)
thigh
20
-
-
кГц [
Окончание таблицы 3.14
Параметр технических условий
Символ
Мин.
Норма
Макс.
Ед. изм.
Коэффициент усиления
Gy
19
20
21
ДБ
Входной импеданс
50
60
75
кОм
Разделение каналов
а
40
-
-
дБ
Небаланс каналов
-
-
1
ДБ
Параметры интерфейса 12С
Входной сигнал высокого уровня
V»
3
-
5,5
В j
Входной сигнал низкого уровня
V,
-0,3
-
1,5
В j
Выходной сигнал низкого уровня
Vo.
-
-
0,4
В
Срабатывание схемы внутреннего сброса: старт окончание
Vp
3
-
5
6
Standby (вывод 9)
Vhigh
Vto
3
-
р
2
Как видно из рис. 3.35, микросхема состоит из четырех идентичных усилителей с дифференциальными входными каскадами, один из которых является инвертирующим, а второй — неинвертирующим. Как известно, для обеспечения нормальной работы любого элемента необходимо рассчитать его тепловой режим, принять меры к рассеянию излишней тепловой мощности. Например, в книге [3] приводится вариант такого теплового расчета. Собственно, нужно проверить необходимость проектирования теплоотводящего радиатора и рассчитать его габариты, выбрать конструктивное исполнение. Фирменная документация имеет все необходимые данные для расчета. Для удобства разработчика приводятся размеры теплоотводящей поверхности (рис. 3.36, о) и внутреннее распределение тепловых сопротивлений между теплоотводящей поверхностью и выводами микросхем (рис. 3.36, б).
Теперь разберемся, как управлять режимами микросхемы и как получать информацию о ее внутреннем состоянии. Мы уже неоднократно говорили, что «общение» с микросхемой происходит программно. Обратите внимание на рис. 3.37: по шине 12С передается фиксированный slave-адрес микросхемы, а также единственное слово данных (DATA). Условие «К/W», как обычно, отражает режим за- писи/чтения.
Представители микросхем с интерфейсом Рс
Рис. 3.36. К расчету теплового режима микросхемыРис. 3.36. К расчету теплового режима микросхемы^«Й^ГО^«Й^ГОРис. 3.37. Формат данных для микросхемы TDA1551QРис. 3.37. Формат данных для микросхемы TDA1551Q
Рис. 3.36. К расчету теплового режима микросхемы
Рис. 3.36. К расчету теплового режима микросхемы
^«Й^ГО
^«Й^ГО
Рис. 3.37. Формат данных для микросхемы TDA1551Q
Рис. 3.37. Формат данных для микросхемы TDA1551Q
Конфигурирование происходит при передаче бита «К/W», установленного в «О» (режим записи данных). Возможные состояния байта DATA приведены в табл. 3.15, но вообще можно сказать, что бит DO «отвечает» за переключение микросхемы из режима SLEEP в режим ON и обратно, бит D1 переключает в режим MUTE.
Таблица 3.15
Установка битов D7... DO
Состояние
D7
D6
D5
D4
D3
D2
D1
DO
0
0
0
0
0
0
0
0
SLEEP
0
0
0
0
0
0
0
1
MUTE
0
0
0
0
0
0
1
0
Тест1
0
0
0
0
0
0
1
1
ON?|
Примечания.
Состояние используется только для тестирования. Шина 12С работает в режиме ON, в то время как усилитель переведен в состояние standby.
Включение в состояние ON после подачи питания недопустимо, так как это может вывести микросхему из строя. Необходимо вначале переключить микросхему из состояния SLEEP в состояние MUTE и только затем, за время не менее 150 мс, перевести в состояние ON.
Возможные варианты переключения микросхемы из одного состояния в другое показаны на рис. 3.38.
Рис. 3.38. Возможные состояния микросхемы TDA1551Q и способы (варианты)Рис. 3.38. Возможные состояния микросхемы TDA1551Q и способы (варианты)переключенийпереключений
Рис. 3.38. Возможные состояния микросхемы TDA1551Q и способы (варианты)
Рис. 3.38. Возможные состояния микросхемы TDA1551Q и способы (варианты)
переключений
переключений
Чтобы получить информацию о внутреннем состоянии микросхемы, провести ее диагностику, достаточно осуществить чтение по формату, изображенному на рис. 3.37, установив бит «R/W» в состояние «1». В таком случае биты D7...D0 несут следующую информацию:
— D7 устанавливается в состояние «О» после операции чтения на шине 12С;
— D7 устанавливается в состояние «1» после начального сброса при включении питания;
— D6 не используется;
— D5 устанавливается в состояние «О», если температура кристалла менее +150 °C;
— D5 устанавливается в состояние «1», если температура кристалла превышает +150 °C;
— D4 устанавливается в состояние «0», если микросхема не входит в режим ограничения сигнала (общие гармонические искажения THD менее 3,5%);
— D4 устанавливается в состояние «1», если микросхема находится в режиме ограничения сигнала (общие гармонические искажения THD более 3,5%);
— биты D3...D0 определяются согласно табл. 3.16.
Таблица 3.16
D3
02
01
00
Функция
0
0
0
0
Все выходные каскады в норме
х
X
X
1
Неисправность на выводе 6
X
X
1
X
Неисправность на выводе 8
—-—
1
X
X
Неисправность на выводе 10
L1
—х
X
X
Неисправность на выводе 12
Примечание: если неисправность случится в нескольких каскадах, соответственно одновременно будут установлены в состояние «1» биты, информирующие о неисправности в конкретном канале.
На рис. 3.39 и рис. 3.40 показаны типовые варианты включения микросхемы.
Рис. 3.39. Вариант включения TDA1551Q для четырех каналов
Рис. 3.40. Вариант мостового двухканальвого включения TDA1551Q для повышения выходной мощности
TDA8424
В документации [20] эта микросхема называется Hi-Fi stereo audio processor или, говоря по-русски, высококачественный стереофонический аудиопроцессор. Необходимо сразу оговориться, что фирма Philips выпускает несколько разновидностей аудиопроцессоров, отличающихся друг от друга не слишком значительно. Например, при написании этой книги автор ознакомился с документацией на микросхемы TDA8421, TDA8425, TDA8426, TDA9860, ТЕА6300, ТЕА6324Т, ТЕА6330Т [22—28]. Было выяснено, что в рамках данной книги имеет смысл подробно описать только принци-
пы работы с какой-нибудь одной микросхемой этого вида. С остальными читатель при необходимости разберется самостоятельно. Оригинальную документацию можно получить с официального сервера Philips (http://www.semiconductors.philips.com).
Несколько слов о том, зачем нужен аудиопроцессор и где его можно применить. Вспомним, что в составе любого стереокомплекса или телевизора обязательно имеются органы регулировки громкости, стереобаланса, тембра. В классическом варианте на переднюю панель всегда выводились отдельные ручки регулировок «громкость», «тембр НЧ», «тембр ВЧ», «стереобаланс». Современная аппаратура таких органов регулировки уже не имеет, хотя они все равно присутствуют в ее составе. Все дело в том, что теперь эти органы «прячут» в электронной схеме прибора, а о состоянии того или иного регулятора свидетельствует соответствующая надпись на жидкокристаллическом (или электролюминесцентном) индикаторе, «бегущая полоска» на экране телевизора. Управление осуществляется только с помощью кнопок, данные поступают в управляющую микросхему в цифровом виде.
Итак, рассмотрим микросхему TDA8424, предназначенную для электронной регулировки тембра, громкости, стереобаланса. Микросхема в своем составе имеет:
селектор режимов;
переключатель режимов «пространственное (spatial) стерео» (расширенная стереобаза) «стерео», «принудительное моно»;
схемы управления громкостью и стереобалансом;
схемы управления тембровой окраской по высоким (ВЧ) и низким (НЧ) частотам;
аппаратный сброс при включении питания.
Селектор режимов используется для задания режимов «стерео», «sound А», «sound В» для трансляции звука только из правого или только из левого канала.
Управление громкостью и стереобалансом совмещенное. Регулятор громкости состоит из двух каскадов, предназначенных для прохождения сигналов левого и правого каналов. Коэффициент передачи каждого каскада может быть отрегулирован в пределах от 6 до -64 дБ с шагом 2 дБ. Дополнительно можно получить затухание
-80 дБ. Оба канала управляются независимо друг от друга, поэтому возможна регулировка стереобаланса.
Режимы «spatial стерео», «стерео» и «принудительное моно» могут быть использованы в разных ситуациях. Режим «стерео» используется в случае прохождения обычного стереосигнала. При получении соответствующей команды, свидетельствующей об отсутствии стереосигнала, микросхему можно перевести в режим «spatial стерео» (расширенная стереобаза) или «принудительное моно».
Регулировка тембра по низким частотам (НЧ) осуществляется в пределах от 15 до -12 дБ с шагом 3 дБ.
Регулировка тембра по высоким частотам (ВЧ) осуществляется в пределах от 12 до -12 дБ с шагом 3 дБ.
Расположение выводов показано на рис. 3.41, назначение выводов — в табл. 3.17, внутреннее устройство микросхемы — на рис. 3.42.
INLVCAPINRVccAGNDBASSRBASSRTREBLEROUTRDGNDINLVCAPINRVccAGNDBASSRBASSRTREBLEROUTRDGND[I H Iio[I H Iio277772777719].ie] bass l is] BASS L 7] TREBLER is] OUT L iz]scl 11] SDA19].ie] bass l is] BASS L 7] TREBLER is] OUT L iz]scl 11] SDA
INL
VCAP
INR
Vcc
AGND
BASSR
BASSR
TREBLER
OUTR
DGND
INL
VCAP
INR
Vcc
AGND
BASSR
BASSR
TREBLER
OUTR
DGND
[I H Iio
[I H Iio
2
7
7
7
7
2
7
7
7
7
19].
ie] bass l is] BASS L 7] TREBLER is] OUT L iz]scl 11] SDA
19].
ie] bass l is] BASS L 7] TREBLER is] OUT L iz]scl 11] SDA
Рис. 3.41. Расположение выводов микросхемы TDA8424
Таблица 3.17. Назначение выводов микросхемы
Символ
Вывод
Описание
INL
1
Вход левого канала
Vcap
2
Развязывающий конденсатор
INR
3
Вход правого канала
V«
4
Питание«+»
IAGND
5
Аналоговая «земля»
!BASSR
6
Управление НЧ правого канала
Окончание таблицы 3.17
Символ
Вывод
Описание
BASSR
7
Управление НЧ правого канала
TREBLER
8
Управление ВЧ правого канала
OUTR
9
Выход правого канала
DGND
10
Цифровая «земля»
SDA
11
Линия SDA шины 14)
SCL
12
Линия SCL шины 14)
OUTL
13
Выход левого канала
TREBLEL
14
Управление ВЧ левого канала
BASSE
15
Управление НЧ левого канала
BASSE
16
Управление НЧ левого канала
-
17
Не используется
-
18
Не используется
19
Не используется
20
Не используется
Теперь поговорим о том, как управлять данной микросхемой. Slave-адрес фиксирован жестко и показан на рис. 3.43, а. В дальнейшем описании, касающемся данной микросхемы, на всех рисунках этот адрес будет обозначен как MAD.
MSBLSB
1
0
0
0
0
0
1
0
АСК
|sta|mad|sad) vi |sta|mad[sad[vr|sta[mad[sad|ba|sta|mad|sad|tr |sta|mad|sad| si |sto| STARTSTART V y / START V y /START X—v /START '—y /STOP
VLVRBATRS1
Рис. 3.43. a) Slave-адрес микросхемы TDA8424 (MAD); б) управлениемикросхемой TDA8424
После slave-адреса следует серия субадресов, которые задают местоположение ячеек, регулирующих:
громкость левого канала;
громкость правого канала;
тембр НЧ в обоих каналах;
тембр ВЧ в обоих каналах.
В табл. 3.18 приведено кодирование байта с условным наименованием SAD, следующего после байта MAD. Не забывайте также о наличии сигналов АСК по окончании передачи каждого байта.
Таблица 3.18
Функция
Адрес SAD
7
6
5
4
3
2
1
0
Громкость, левый канал
0
0
0
0
0
0
0
0
Громкость, правый канал
0
0
0
0
0
0
0
1
НЧ-тембр
0
0
0
0
0
0
1
0
ВЧ-тембр
0
0
'0
0
0
0
1
1
Функция переключения
0
0
0
0
1
0
0
0
В табл. 3.19 приводятся способы кодирования байта, следующего после байта SAD. Наименование этого байта меняется в зависимости от выполняемой функции (VL, VR, BA, TR, S1) и будет описано ниже.
Функция
7
6
5
4
3
2
1
0
Громк., лев. кан. (VI)
1
1
V05
V04
V03
V02
V01
V00
Громк., прав. кан. (VR)
1
1
V15
V14
V13
V12
V11
V10
НЧ-тембр (ВА)
1
1
1
1
ВАЗ
ВА2
ВА1
ВАО
ВЧ-тембр (ТЯ)
1
1
1
1
TR3
TR2
TR1
TRO
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
Функц. переключ. (S1)
1
1
ми
EFL
STL
ML1
MLO
1
Таблица 3.19
Режим МУТЕ (немой)
МУ
Автоматически устанавливается после сброса
1
Неактивный
0
Таблица 3.22
Табл. 3.23—3.25 относятся к заданию уровня громкости, НЧ- и ВЧ-тембра.
Как вы уже успели заметить, в табл. 3.19 многие позиции четко не определены и заданы буквенно. Из табл. 3.19 также видно, что между позициями «ВЧ-тембр (TR)» и «Функц. переключ. (S1)» оставлено четыре незаполненных строки таблицы. Это связано с наличием в микросхеме режима автоинкремента. Если вы обратите внимание на табл. 3.18, то увидите разрыв кодов адресов SAD между упомянутыми позициями. Чтобы лишний раз не задавать адрес SAD (например, при первоначальном включении микросхемы), достаточно передать нулевой адрес SAD, затем значения позиций «Громк., лев. кан. (VL)», «Громк., прав. кан. (VR)», «НЧ-тембр (ВА)», «ВЧ-тембр (TR)», затем — 4 незначащих позиции, «забитых» единицами, и завершить позицией «Функц. переключ. (S1)». При этом после получения каждой позиции внутренний счетчик SAD будет автоматически инкрементироваться. Дополнительная информация задается из табл. 3.20—3.25.
Функция
ML1
мио
Стерео
1
1
Канал А
0
1
Канал В
1
0
Таблица 3.20
Режим
STL
EFL
Spatial стерео
1
1
Стерео
1
0
Запрещенное состояние
0
1
Принудительное моно
0
0
Таблица 3.21
Уровень громкости, дБ
V.5
V.4
V.3
Vx2
V.1
Vx° I
6
1
1
1
1
1
1
4
1
1
1
1
1
0
2
1
1
1
1
0
1
0
1
1
1
1
0
0
-2
1
1
1
0
1
1
-4
1
1
1
0
1
0
-6
1
1
1
0
0
1
-8
1
1
1
0
0
0
-10
1
1
0
1
1
1
-20
1
1
0
0
1
0
-30
1
0
1
1
0
1
...
1
-40
1
0
1
0
0
0
-50
1
0
0
0
1
1
-60
0
1
1
1
1
0
-62
0
1
1
1
0
1
-64
0
1
1
1
0
0
-80
0
1
1
0
1
1
Таблица 3.23. Регулировка уровня громкости
Примечание: индекс «х» означает, что необходимо определить (согласно табл. 3.19) назначение данного бита. Например, обозначение V05 относится к байту VL, а обозначение VI5 — к байту VR.
Таблица 3.24. Регулировка тембра НЧ
Уровень, дБ
ВАЗ
ВА2
ВА1
ВАО
15
1
0
1
1
12
1
0
1
0
9
1
0
0
1
6
1
0
0
0
3
0
1
1
1
0
0
1
1
0
-3
0
1
0
1
-6
0
1
0
0
-9
0
0
1
1
-12
0
0
1
Таблица 3.25. Регулировка тембра ВЧ
Уровень, дБ
TR3
TR2
TR1
TR0
12
1
0
1
0
9
1
0
0
1
6
1
0
0
0
3
0
1
1
1
о •
0
1
1
0
-3
0
1
0
1
-6
0
1
0
0
-9
0
0
1
1
-12
0
0
1
0
Кодирование микросхемы осуществляется согласно рис. 3.43, б.
При этом последовательность задания уровней VL, VR, В A, TR и S1 не имеет значения. Разработчики рекомендуют устанавливать S1 в самом конце кодирования, когда остальные установки уже произведены. После включения питания необходимо провести полное конфигурирование, а в дальнейшем можно менять какой-то один параметр или их группу, например, только VL и VR. Тогда в информационном пакете будут отсутствовать байты В A, TR, S1.
Возможно использование режима автоинкремента субадреса, как показано на рис. 3.44. В этом случае в байте SAD задается субадрес VL, а затем производится передача согласно рис. 3.44. Режим автоинкремента субадреса удобно использовать после первоначального старта (сброса схемы после включения питания). Символ «х» в данном случае означает, что необходимо повторить передачу неинформативных байтов согласно табл. 3.19. •
|sta|mad|sao| vl|vr|ba|tr| х | х | х | х |si ]sto|Рис. 3.44. Режим автоинкремента субадреса
Основные характеристики микросхемы, важные для проектирования, приведены в табл. 3.26.
Таблица 3.26
Параметр технических условий
Символ
Мин.
Норма
Макс.
Ед. изм.
Напряжение питания
^
10,8
12,0
13,2
В
Ток потребления
1«
-
26
35
мА
Внутреннее опорное напряжение
Vref
5,4
0,5Vcc
6,6
В
Рабочая температура
Tamb
0
-
+70
•с
Температура хранения
"^йд
-25
-
+150
•с
Разделение каналов (на частоте 10 кГц)
«а
-
80
-
дБ
Входной уровень сигнала (выводы 1 и 3)
ч
2
-
-
В
Входное сопротивление
R,
20
30
40
кОм
Полоса пропускания (по уровню 0,5 дБ)
В
20
-
20000
Гц
Выходное напряжение (выводы 9 и 13)
v0
0,6
-
-
В
Выходной импеданс
Zo
-
-
100
Ом
Уровень шума: усиление 6 дБ,
усиление 0 дБ ослабление <-20 дБ
S+N
N
78
86
68
ДБ
Общие гармонические искажения: [6дБ...-40дБ1Ч = 0,ЗВ [0 ДБ...-40 дБ) Vj = 0,6 В [12дБ...-40дБЩ = 2,0В
THD
—
0,05 0,07
0,1
0,4
%
На рис. 3.45—3.47 приведены некоторые графические данные, которые наглядно свидетельствуют о высоком качестве микросхемы.
Рис. 3.45. Зависимость уровня гармонических искажений для разных частот от уровня входного сигнала (среднеквадратичное значение). Условия измерения: усиление -10 дБ, НЧ/ВЧ тембр = 0 дБ, Усс = 12 ВРис. 3.45. Зависимость уровня гармонических искажений для разных частот от уровня входного сигнала (среднеквадратичное значение). Условия измерения: усиление -10 дБ, НЧ/ВЧ тембр = 0 дБ, Усс = 12 ВМикросхема выпускается в корпусе DIP20 (SOT146-1) и предназначена для установки в печатную плату с шагом 2,54 мм. Типовая схема включения приведена на рис. 3.48.
Рис. 3.45. Зависимость уровня гармонических искажений для разных частот от уровня входного сигнала (среднеквадратичное значение). Условия измерения: усиление -10 дБ, НЧ/ВЧ тембр = 0 дБ, Усс = 12 В
Рис. 3.45. Зависимость уровня гармонических искажений для разных частот от уровня входного сигнала (среднеквадратичное значение). Условия измерения: усиление -10 дБ, НЧ/ВЧ тембр = 0 дБ, Усс = 12 В
Рис. 3.46. Зависимость уровня разделения стереоканалов от частоты входного сигнала. Условие измерения: НЧ/ВЧ тембр = 0 дБ, Усс = 12 В
Рис. 3.47. Зависимость коэффициента усиления в диапазоне воспроизводимых частот при одновременном изменении уровня НЧ/ВЧ тембра в пределах от -12 до +15 дБ. Условие измерения: усиление = О дБ, Усс = 12 ВРис. 3.47. Зависимость коэффициента усиления в диапазоне воспроизводимых частот при одновременном изменении уровня НЧ/ВЧ тембра в пределах от -12 до +15 дБ. Условие измерения: усиление = О дБ, Усс = 12 ВРис. 3.48. Типовая схема включения TDA8424Рис. 3.48. Типовая схема включения TDA842455BASSRЗЗнBASS RBASSRЗЗнBASS RI IVCAP ,470н к-*- IN LI IVCAP ,470н к-*- IN L-| AGND 100н*• Vcc=12B470н-| AGND 100н*• Vcc=12B470нH-*- IN RЮОмкH-*- IN RЮОмк1 DGND ,,2,2mk ]|-— OUTR5,6h-| |—| TREBLE R1 DGND ,,2,2mk ]|-— OUTR5,6h-| |—| TREBLE RТЕА6360
Рис. 3.47. Зависимость коэффициента усиления в диапазоне воспроизводимых частот при одновременном изменении уровня НЧ/ВЧ тембра в пределах от -12 до +15 дБ. Условие измерения: усиление = О дБ, Усс = 12 В
Рис. 3.47. Зависимость коэффициента усиления в диапазоне воспроизводимых частот при одновременном изменении уровня НЧ/ВЧ тембра в пределах от -12 до +15 дБ. Условие измерения: усиление = О дБ, Усс = 12 В
Рис. 3.48. Типовая схема включения TDA8424
Рис. 3.48. Типовая схема включения TDA8424
5
5
BASSR
ЗЗн
BASS R
BASSR
ЗЗн
BASS R
I IVCAP ,470н к-*- IN L
I IVCAP ,470н к-*- IN L
-| AGND 100н
*• Vcc=12B
470н
-| AGND 100н
*• Vcc=12B
470н
H-*- IN R
ЮОмк
H-*- IN R
ЮОмк
1 DGND ,,2,2mk ]|-— OUTR
5,6h
-| |—| TREBLE R
1 DGND ,,2,2mk ]|-— OUTR
5,6h
-| |—| TREBLE R
В оригинальной документации [21] эта микросхема называется 5-band stereo equalizer circuit. Что такое эквалайзер, знают многие. А кто не знает, тому достаточно вспомнить несколько импортных магнитол и музыкальных центров, в которых это устройство имеется. Эквалайзер всего лишь расширенный вариант регулятора тембра, который позволяет более точно влиять на тоновую окраску звучания, выбирать ее по своим индивидуальным предпочтениям. Сложные профессиональные студийные эквалайзеры имеют не один десяток
частотных «линеек», позволяющих индивидуально подобрать звучание в каждом канале (каналов может быть четыре и более). Бытовая аппаратура, конечно, намного проще, и часто ее возможности ограничиваются всего пятью «линейками», представленными на передней панели прибора пятью движковыми переменными резисторами.
Микросхема ТЕА6360 позволяет отказаться от ненадежных резисторов, исключить характерный «скрип» при их старении, упростить интерфейс пользователя. Кроме того, в память прибора возможно занести несколько выбранных настроек, оперативно переключать их, а не заниматься подбором «с нуля». Внутреннее устройство микросхемы и ее типовое включение показаны на рис. 3.49, устройство одиночного фильтра —- на рис. 3.50.
Каждый канал состоит из пяти однотипных фильтров (рис. 3.50). Центральная частота и добротность каждого фильтра целиком зависят от подключенных навесных компонентов (два конденсатора и резистор определенных номиналов). Диапазон управления каждым фильтром разделен на 11 уровней: 5 уровней усиления, 5 уровней ослабления и уровень 0 дБ (без усиления).
Уровни регулировки следующие: 2,7; 5,5; 8,4; 11,6; 15,0 дБ.
Очень важно отметить, что разным уровням регулировки соответствует разная добротность (в оригинальной документации Q-фак-
68н68нV0RПравыйV0RПравый6,8к]6,8к]8208203232282825252323ГСГС55ЛевыйЛевый0,18мк0,18мк6,8к6,8к0,18мк6,2к0,18мк6,2к" 12н Т Т47н" 12н Т Т47нФильтр 3 Фильтр 4 f = 790 кГц Г = 205Гц 0=1,23 0=1,24Фильтр 3 Фильтр 4 f = 790 кГц Г = 205Гц 0=1,23 0=1,24Фильтр 1 Фильтр 2 f= 2,95 кГц Г=12кГц 0 = 1,24 0=1,09Фильтр 1 Фильтр 2 f= 2,95 кГц Г=12кГц 0 = 1,24 0=1,096,2кП0.18м к Т 0,18мк6,2кП0.18м к Т 0,18мк। Р-3нТ 31|ЗЭ 29 "। Р-3нТ 31|ЗЭ 29 "18н f 1н18н f 1нV1RПравыйV1RПравыйSDA SCL 0,1мк рVQLSDA SCL 0,1мк рVQLРис. 3.49. Внутреннее устройство и типовая схема включения ТЕА6360Рис. 3.49. Внутреннее устройство и типовая схема включения ТЕА636026262424Фильтр 5 Г = 59Гц 0 = 1,14Фильтр 5 Г = 59Гц 0 = 1,14бон12н "бон12н "ЛевыйЛевый
68н
68н
V0R
Правый
V0R
Правый
6,8к]
6,8к]
820
820
32
32
28
28
25
25
23
23
ГС
ГС
5
5
Левый
Левый
0,18мк
0,18мк
6,8к
6,8к
0,18мк
6,2к
0,18мк
6,2к
" 12н Т Т47н
" 12н Т Т47н
Фильтр 3 Фильтр 4 f = 790 кГц Г = 205Гц 0=1,23 0=1,24
Фильтр 3 Фильтр 4 f = 790 кГц Г = 205Гц 0=1,23 0=1,24
Фильтр 1 Фильтр 2 f= 2,95 кГц Г=12кГц 0 = 1,24 0=1,09
Фильтр 1 Фильтр 2 f= 2,95 кГц Г=12кГц 0 = 1,24 0=1,09
6,2кП
0.18м к Т 0,18мк
6,2кП
0.18м к Т 0,18мк
। Р-3нТ 31|ЗЭ 29 "
। Р-3нТ 31|ЗЭ 29 "
18н f 1н
18н f 1н
V1R
Правый
V1R
Правый
SDA SCL 0,1мк рVQL
SDA SCL 0,1мк рVQL
Рис. 3.49. Внутреннее устройство и типовая схема включения ТЕА6360
Рис. 3.49. Внутреннее устройство и типовая схема включения ТЕА6360
26
26
24
24
Фильтр 5 Г = 59Гц 0 = 1,14
Фильтр 5 Г = 59Гц 0 = 1,14
бон
12н "
бон
12н "
Левый
Левый
Рис. 3.50. Схема одиночного фильтра
тор) одиночных фильтров, а значит, и разная тембровая окраска. Поэтому возможно использовать не только собственные усилительные качества фильтра, но еще и управлять частотной характеристикой (варьировать АЧХ с помощью способа «весовых коэффициентов»), дополнительно ослабляя сигнал на выходе. Для этого (рис. 3.50) каскад разделен на две части: boost и cut. Коэффициенты передачи каскадов задаются программно, и об этом мы сейчас поговорим.
Расположение выводов микросхемы ТЕА6360 показано на рис. 3.51, а название выводов — в табл. 3.27.
Vil[T
32] VlR
F1LA[2
3l] F1RA
П-С. [ 3
30|n.C.
filb[7
2si]F1RB
F2LA Q[
2g]F2RA
F2Lb[6
27]F2RB
F3la|7
26,F3RA
fslb[b
о CD
2|F3RB
F41a[?
CO co
24]F4RA
F4LB[w
i5
2^F4RB
F5LA[li
22] F5RA
F5lB[l2
2l] F5RB
voiEa
Vp[i4
^VOR I^GNDI
SDA[l5
i^MAD
SCL|l6
iz]gnd2
Рис. 3.51. Расположение выводов микросхемы ТЕА6360
Таблица 3.27. Назначение выводов микросхемы
Символ
Вывод
Описание
V,
1
Вход сигнала левого канала (LEFT)
ЕНА
2
Вывод А фильтра 1 LEFT (f = 2,95 кГц)
-
3
Не используется
F1LB
4
Вывод В фильтра 1 LEFT (f = 2,95 кГц)
F21A
5
Вывод А фильтра 2 LEFT (1=12 кГц)
F2LB
6
Вывод В фильтра 2 LEFT (1 = 12 кГц)
F3LA
7
Вывод А фильтра 3 LEFT (1 = 790 Гц)
F3LB
8
Вывод В фильтра 3 LEFT (1 = 790 Гц)
F4LA
9
Вывод А фильтра 4 LEFT (1 = 205 Гц)
F4LB
10
Вывод В фильтра 4 LEFT (1 = 205 Гц)
F5LA
11
Вывод А фильтра 5 LEFT (1 = 59 Гц)
F5LB
12
Вывод В фильтра 5 LEFT (1 = 59 Гц)
vd
13
Выход сигнала левого канала (LEFT)
vp
14
Вывод пиания
SDA
15
Линия SDA шины 12С
SCI
16
Линия SCL шины 12С
GND2
17
Общий провод (шина PC)
MAD
18
Задание slave-адреса
GND1
19
Аналоговая «земля»
v„
20
Выход сигнала правого канала (RIGHT)
F5RB
21
Вывод В фильтра 5 RIGHT (1 = 59 Гц)
F5RA
22
Вывод А фильтра 5 RIGHT (1 = 59 Гц)
F4RB
23
Вывод В фильтра 4 RIGHT (1 = 205 Гц)
F4RA
24
Вывод А фильтра 4 RIGHT (f = 205 Гц)
F3RB
25
Вывод В фильтра 3 RIGHT (1 = 790 Гц)
F3RA
26
Вывод А фильтра 3 RIGHT (1 = 790 Гц)
F2RB
27
Вывод В фильтра 2 RIGHT (1=12 кГц)
F2RA
28
Вывод А фильтра 2 RIGHT (1 = 12 кГц)
F1RB
29
Вывод В фильтра 1 RIGHT (1 = 2,95 кГц)
-
30
Не используется
F1RA
31
Вывод А фильтра 1 RIGHT (1 = 2,95 кГц)
vk
32
Вход сигнала правого канала (RIGHT)
Данные для микросхемы ТЕА6360 передаются по шине 12С в одну сторону.
Структура управляющего пакета данных представлена на рис. 3.52. Такая структура нам знакома, поэтому остается без дополнительных комментариев. Slave-адрес задается комбинацией 1000 0100, когда на выводе 18 присутствует низкий уровень, и комбинацией 1000 0110, когда на выводе 18 — высокий уровень. Субадрес определяет номер фильтра, которому предназначаются данные. Блок DATA — данные по настройке фильтра.
S , | SLAVE адрес | АСК | субадрес | АСК | DATA | Р |
Рис. 3.52. Структура управляющего пакета данных
Возможные комбинации данных, содержащихся в субадресе, приведены в табл. 3.28.
Таблица 3.28
Функция
Субадрес
DATA
D7
D6
D5
D4
D3
D2
D1
DO
Фильтр 1/откл.
00000000
DEF
1В2
1В1
1В0
0
1С2
1С1
1С0
Фильтр 2
00000001
0
2В2
2В1
2В0
0
2С2
2С1
200
Фильтр 3
00000010
0
ЗВ2
ЗВ1
ЗВО
0
ЗС2
ЗС1
зсо
Фильтр 4
00000011
0
4В2
4В1
4В0
0
4С2
4С1
4C0
Фильтр 5
00000100
0
5В2
5В1
5В0
0
5С2
5С1
ы
Примечания.
Если вслед за передачей субадреса будет осуществляться передача более одного блока DATA, субадрес будет автоматически инкрементироваться.
Обозначения в блоке DATA: 1-я цифра означает номер фильтра (1...5), буква обозначает принадлежность данных (boost или cut), 2-я цифра (0...2) — порядок бита. Например, 1В1 означает «1-й фильтр, boost каскад, бит 1».
Бит DEF отключает или включает эквалайзер. При установке DEF = 0 все фильтры подключены и работают; при установке DEF = 1 сигнал поступает непосредственно со входа на выход с коэффициентом передачи 0 дБ.
Возможные комбинации boost и cut уровней приведены в табл. 3.29 (boost) и табл. 3.30 (cut).
Таблица 3.29
Позиция
пВ2
пВ1
ПВО
шагО/ОдБ
0
0
0
шаг 1 /2,7 дБ
0
0
1
шаг 2 /5,5 дБ
0
1
0
шаг 3/8,4 дБ
0
1
1
шаг4/11,6дБ
1
0
0
шаг 5/15,0 дБ
1
0
1
шаг 5/15,0 дБ
1
1
0
шаг5/15,0 дБ
1
1
1
Таблица 3.30
|Позиция
пС2
пС1
пСО|
| шагО/ОдБ
0
0
0
шаг 1/-2,7 дБ
0
0
1
шаг 2 / -5,5 дБ
0
1
0
шаг 3/-8,4 дБ ■
0
1
1
шаг4/-11,6дБ
1
0
0
шаг 5/-15,0 дБ
1
0
1
шаг 5/-15,0 дБ
1
1
0
|шаг5/-15,0дБ
1
1
1
Чуть раньше было сказано о «весовых коэффициентах» и о разном характере тембровой окраски в связи с этим. Вариантов может быть много, и тут для читателя открывается широкое поле для экспериментальной проверки, экспериментального нахождения наилучших вариантов. Разработчики микросхемы рекомендуют применять три варианта — с переменным Q-фактором (табл. 3.31), с постоянным Q-фактором (табл. 3.32) и квази-постоянным Q-фактором (табл. 3.33).
Таблица 3.31
Позиция
D7
06
D5
04
D3
02
D1
D0
Примечание
X
пВ2
пВ1
пВО
X
пС2
пС1
пСО
+5
0
1
0
1
0
0
0
0
(+5) 4 (—0) = 45
44
0
1
0
0
0
0
0
0
(44) 4 (-0) = 44
43
0
0
1
1
0
0
0
0
(43) 4 (-0) = 43
42
0
0
1
0
0
0
0
0
(42) 4 (-0) = 42
41
0
0
0
1
0
0
0
0
(41) 4 (-0) = 41
0
0
0
0
0
0
0
0
0
(40) + (—0) = 0
-1
0
0
0
0
0
0
0
1
(40)4(-1) = -1
-2
0
0
0
0
0
0
1
0
(40) 4 (-2) =-2
-3
0
0
0
0
0
0
1
1
(40)4(-3) = -3
„4
0
0
0
0
0
1
0
0
(40) 4 (-4) =-4
-5
0
0
0
0
0
1
0
1
(40) 4 (-5) =-5
Таблица 3.32
Позиция
07
06
05
04
03
02
01
D0
Примечание I
X
пВ2
пВ1
пВО
X
пС2
пС1
пСО
45
0
1
0
1
0
0
0
0
(45) 4 (-0) = 45
44
0
1
0
1
0
0
0
1
(45) 4 (-1) = 44
43
0
1
0
1
0
0
1
0
(45) 4 (-2) = 43
42
0
1
0
1
0
0
1
1
(45) 4 (-3) = 42
41
0
1
0
1
0
1
0
0
(45) 4 (-4) = 41
0
0
0
0
0
0
0
0
0
(40) + (—0) = 0
-1
0
1
0
0
0
1
0
1
(44)4(-5) = -1
-2
0
0
1
1
0
1
0
1
(43) 4 (-5) =-2
-3
0
0
1
0
0
1
0
1
(42)4(-5) = -3
-4
0
0
0
1
0
1
0
1
(41) 4 (-5) =-4
-5
0
0
0
0
0
1
0
1
(40) 4 (-5) =-5
Представители микросхем с интерфейсом 12С
Таблица 3.33
Позиция
D7
D6
D5
D4
D3
D2
D1
DO
Примечание
X
пВ2
пВ1
пВО
X
пС2
пС1
пСО
+5
0
1
0
1
0
0
0
0
(+5) + (-0) = +5
+4
0
1
0
1
0
0
0
1
(+5)+ (-!) =+4
+3
0
1
0
1
0
0
1
0
(+3) + (-2) = +3
+2
0
1
0
0
0
0
1
0
(+4) + (-2) = +2
+1
0
0
1
1
0
0
1
0
(+3) + (-2) = +1
0
0
0
0
0
0
0
0
0
(+0) + (-0) = 0
-1
0
0
1
0
0
0
1
1
(+2) + (-3) = -1
-2
0
0
1
0
0
1
0
0
(+2) + (—4) = —2
-3
0
0
1
0
0
1
0
1
(+2) + (-5) = -3
-4
0
0
0
1
0
1
0
1
(+1) + (-5) = -4
-5
0
0
0
0
0
1
0
1
(+0) + (-5) = -5
Данные, необходимые для проектирования, приведены в табл. 3.34.
На рис. 3.53 приведена частотная характеристика микросхемы при максимальном усилении (boost).
Рис. 3.53. Частотная характеристика микросхемы ТЕЛ6360 при установке регулировок в положение (+5)
Представители микросхем с интерфейсом 12С 99
Микросхема выпускается в 32-выводном корпусе SOT232 и SOT287. Рекомендуемое исполнение входных и выходных цепей показано на рис. 3.54.
Таблица 3.34
Параметр технических условий
Символ
Мин.
Норма
Макс.
Ед. изм.
Напряжение питания
Vp
7
8,5
13,2
В
Ток потребления
*р
-
24,5
-
мА
Максимальный уровень выходного сигнала
Vo
1,1
-
~
В
Рабочая температура
Tamb
-40
-
+85
'С
Температура хранения
Ltg
-40
-
+150
'С
Входное сопротивление (выводы 1 и 32)
R.
1
-
-
МОм
Выходное сопроивление (выводы 13 и 20)
Ro
-
100
—
Ом
Полоса пропускания по уровню -1 дБ
в
0
-
20 000
ГЦ
Общие гармонические искажения:
—Vo= 1,1 В;0дБ
—
0,2
0,5
-Vo = O,1 В;0дБ
THD
—
0,05
0,2
%
-Vo= 1,1 В;+15 дБ
—
0,5
1,0
-Vo = 0,1 В;+15 дБ
—
0,1
0,3
—V0 = 0,1 В;-15дБ
-
0,2
0,5
Напряжения шума на выходе (среднеквадратическое
значение):
0 дБ (все фильтры)
VN
—
23
46
мкВ
+15 дБ (все фильтры)
—
70
140
-15 дБ (все фильтры)
—
23
46
Q-фактор при усилении:
ЮдБ
Q
0,1
—
1.2
12дБ
0,1
—
1,4
15дБ
0,1
—
1.8
Отклонение параметров фильтров от расчетных
△Rtot
-'
-
±4
%
Рис. 3.54. Исполнение входных и выходных цепей микросхемы ТЕА6360
Вспомогательные микросхемы
Микросхемы, описываемые в этом подразделе, не имеют самостоятельной ценности и могут быть использованы как дополнительные, облегчающие разработку приборов и устройств. Таких микросхем, как показывает опыт изучения элементной базы, в номенклатуре 12С фирмы Philips большинство. Из этого большого списка автором были выбраны три наименования: PCF8574 (интерфейсная микросхема), PCF8583 (часы/календарь), PCF8591 (АЦП/ЦАП). Интерес также представляет микросхема DS1621, выпускаемая фирмой Dallas Semiconductors, — электронный термометр.
PCF8574
Согласно документации [29], эта микросхема представляет собой remote 8-bit I/O expander for I2C bus, или 8-битовый интерфейс, совмещенный с интерфейсом 12С, предназначенный для трансляции данных. Проще говоря, микросхему эту можно использовать для преобразования данных, поступающих с шины 12С в 8-битовый параллельный код, или последовательно передавать код по шине. Зачем нужна такая микросхема? К примеру, в какой-либо конструкции необходимо использовать микроконтроллер, включив его как slave-уст-
ройство. Мы уже знаем, что аппаратная реализация 12С интерфейса ведомого устройства довольно сложна. А вот подключив к порту микроконтроллера микросхему PCF8574, можно просто и изящно решить данную проблему.
Традиционное предуведомление отражает наиболее привлекательные для разработчика свойства микросхемы:
сохранение работоспособности при напряжении питания от 2,5 до 6 В;
низкое потребление тока в ждущем режиме — 10 мкА;
открытый сток вывода «прерывание» (interrupt);
8-битовый двунаправленный I/O порт;
совместимость с большинством микроконтроллеров;
высокая нагрузочная способность выходов, позволяющая непосредственно подключать светоизлучающие диоды;
внешние 3 вывода slave-адреса, позволяющие подключить к шине 12С одновременно до 8 однотипных микросхем;
корпус DIP16 (SOT38-1) или SO16 (SOT162-1).
Расположение выводов микросхемы приведено на рис. 3.55, назначение выводов — в табл. 3.35.
1616АОАОSDASDA151522А1А1SCLSCL1414А2А233ПТПТ1313Р0Р044Р7Р7121255Р1Р1Р6Р6111166Р2Р2Р5Р5101077РЗРЗ99Р4Р488VssVssVddVdd
16
16
АО
АО
SDA
SDA
15
15
2
2
А1
А1
SCL
SCL
14
14
А2
А2
3
3
ПТ
ПТ
13
13
Р0
Р0
4
4
Р7
Р7
12
12
5
5
Р1
Р1
Р6
Р6
11
11
6
6
Р2
Р2
Р5
Р5
10
10
7
7
РЗ
РЗ
9
9
Р4
Р4
8
8
Vss
Vss
Vdd
Vdd
Рис. 3.55. Расположение выводов микросхемы PCF8574
СимволВыводОписаниеАО1Адресный вход 0А12Адресный вход 1А23Адресный вход 2РО4Квази-двунаправленный I/O порт 0Р15Квази-двунаправленный I/O порт 1Р26Квази-двунаправленный I/O порт 2РЗ7Квази-двунаправленный I/O порт 3V$s8Общий провод микросхемыР49Квази-двунаправленный 1/0 порт 4Р510Квази-двунаправленный I/O порт 5Р611Квази-двунаправленный 1/0 порт 6Р712Квази-двунаправленный 1/0 порт 7INT13Вывод сигнала прерывания (LOW)SCL14Линия SCL шины ГСSDA15Линия SDA шины ГС|Урр16Питание«+»СимволВыводОписаниеАО1Адресный вход 0А12Адресный вход 1А23Адресный вход 2РО4Квази-двунаправленный I/O порт 0Р15Квази-двунаправленный I/O порт 1Р26Квази-двунаправленный I/O порт 2РЗ7Квази-двунаправленный I/O порт 3V$s8Общий провод микросхемыР49Квази-двунаправленный 1/0 порт 4Р510Квази-двунаправленный I/O порт 5Р611Квази-двунаправленный 1/0 порт 6Р712Квази-двунаправленный 1/0 порт 7INT13Вывод сигнала прерывания (LOW)SCL14Линия SCL шины ГСSDA15Линия SDA шины ГС|Урр16Питание«+»Таблица 3.35. Назначение выводов PCF8574Таблица 3.35. Назначение выводов PCF8574Рис. 3.56. Внутреннее устройство микросхемы PCF8574Рис. 3.56. Внутреннее устройство микросхемы PCF8574защелкиРис. 3.57. Упрощенная схеМа параллельного интерфейса микросхемы PCF8574защелкиРис. 3.57. Упрощенная схеМа параллельного интерфейса микросхемы PCF8574
Символ
Вывод
Описание
АО
1
Адресный вход 0
А1
2
Адресный вход 1
А2
3
Адресный вход 2
РО
4
Квази-двунаправленный I/O порт 0
Р1
5
Квази-двунаправленный I/O порт 1
Р2
6
Квази-двунаправленный I/O порт 2
РЗ
7
Квази-двунаправленный I/O порт 3
V$s
8
Общий провод микросхемы
Р4
9
Квази-двунаправленный 1/0 порт 4
Р5
10
Квази-двунаправленный I/O порт 5
Р6
11
Квази-двунаправленный 1/0 порт 6
Р7
12
Квази-двунаправленный 1/0 порт 7
INT
13
Вывод сигнала прерывания (LOW)
SCL
14
Линия SCL шины ГС
SDA
15
Линия SDA шины ГС
|Урр
16
Питание«+»
Символ
Вывод
Описание
АО
1
Адресный вход 0
А1
2
Адресный вход 1
А2
3
Адресный вход 2
РО
4
Квази-двунаправленный I/O порт 0
Р1
5
Квази-двунаправленный I/O порт 1
Р2
6
Квази-двунаправленный I/O порт 2
РЗ
7
Квази-двунаправленный I/O порт 3
V$s
8
Общий провод микросхемы
Р4
9
Квази-двунаправленный 1/0 порт 4
Р5
10
Квази-двунаправленный I/O порт 5
Р6
11
Квази-двунаправленный 1/0 порт 6
Р7
12
Квази-двунаправленный 1/0 порт 7
INT
13
Вывод сигнала прерывания (LOW)
SCL
14
Линия SCL шины ГС
SDA
15
Линия SDA шины ГС
|Урр
16
Питание«+»
Таблица 3.35. Назначение выводов PCF8574
Таблица 3.35. Назначение выводов PCF8574
Рис. 3.56. Внутреннее устройство микросхемы PCF8574
Рис. 3.56. Внутреннее устройство микросхемы PCF8574
защелки
Рис. 3.57. Упрощенная схеМа параллельного интерфейса микросхемы PCF8574
защелки
Рис. 3.57. Упрощенная схеМа параллельного интерфейса микросхемы PCF8574
В чем состоит «изюминка» данной микросхемы? Как известно, прием и передача данных посредством стробирования не вызывает сложностей. Достаточно помещать данные в сдвиговый регистр, а потом осуществлять их движение подачей стробирующих импульсов. Все это так, но главная сложность работы с шиной 12С заключается в том, что затруднительно фиксировать условие Start, свидетельствующее об активизации шины. Если вы помните, в протоколе шины был оставлен служебный адрес 0000 0001, называемый «программный Start». Работать в условиях программного отслеживания Start-условия достаточно трудно и далеко не всегда оправданно, поэтому в состав микросхемы PCF8574 была введена «изюминка» в виде вывода генерации прерывания (interrupt, INT). Сигнал прерывания сообщит микроконтроллеру о начале активации шины. Таким образом, сторона микросхемы PCF8574, относящаяся к интерфейсу 12С, представляет собой обычное slave-устройство (рис. 3.56).
Управляющая схема интерфейса параллельного ввода-вывода показана на рис. 3.57. Обратите внимание: интерфейсные выводы защищены от перегрузки диодами VD1 и VD2.
Поговорим теперь о программных способах работы с данной микросхемой. Традиционно начнем с определения slave-адреса (рис. 3.58).
PCF8574
| s | о ‘ 1 1 ' 1 ^а/аУас/ о | А
PCF8574A
Рис. 3.58. Slave-адреса микросхем
Вам могут встретиться две разновидности микросхемы PCF8574 — с буквой «А» и без буквы. Отличаются они только четырьмя старшими битами slave-адреса. Таким образом, если на одной шине будет присутствовать 8 микросхем PCF8574 и 8 микросхем PCF8574A, Конфликта это не вызовет. Биты А2...А0 задаются с помощью внешних выводов микросхем.
Запись в порт осуществляется по схеме, представленной на рис. 3.59. «Запись» в данном случае означает, что данные с шины 12С появятся на параллельном порте Р0...Р7.
Обратите внимание: данные появляются на выходе порта спустя время t после возникновения сигнала АСК (а также записи в порт). Микроконтроллер должен успеть считать предыдущие данные на линиях Р0...Р7 до появления следующего байта данных.
SCL ДЪ
fzUsL/^UsUeUTUeL
Slave-адрес
rtn/YTVVVlArL
Данные в порт
rvTvPJAnrvrXFiIV
Данные в порт
rut
SDA [ s | о ;
С о ' 0 ^А2^А1*м| 0
А ,
ДаУа/|
a| I
t
Условие START
t
АСК от slave
t
АСКот slave
f
ACK от
Запись
n
в порт Данные -
выходят
XDATA1
_X_DATA2
*pv-*
**-
———l
•pv—►
Рис. 3.59. Запись данных в порт
Чтение с порта происходит по схеме, показанной на рис. 3.60. Напоминаем, что микросхема по-прежнему остается в режиме slave-устройства, то есть сигнал SCL генерируется master-устройством.
SDASDASlave-адресSlave-адресУсловие STARTУсловие STARTДанные из портаДанные из портаДанные из портаДанные из портаЧтениеиз портаЧтениеиз портаДанныеотпортаДанныеотпортаDATA1DATA1tphtphINTINT:*-tjv:*-tjv■7; АСК ОТ■7; АСК ОТ•АСК от I slave•АСК от I slaveР^ТА4Р^ТА4Условие STOPУсловие STOPhhhh~^DATA^~^DATA^tirtirH-^irH-^irРис. 3.60. Чтение данных из портаРис. 3.60. Чтение данных из портаDATA4DATA4
SDA
SDA
Slave-адрес
Slave-адрес
Условие START
Условие START
Данные из порта
Данные из порта
Данные из порта
Данные из порта
Чтениеиз порта
Чтениеиз порта
Данныеотпорта
Данныеотпорта
DATA1
DATA1
tph
tph
INT
INT
:*-tjv
:*-tjv
■7
; АСК ОТ
■7
; АСК ОТ
•АСК от I slave
•АСК от I slave
Р^ТА4
Р^ТА4
Условие STOP
Условие STOP
h
h
h
h
~^DATA^
~^DATA^
tir
tir
H-^ir
H-^ir
Рис. 3.60. Чтение данных из порта
Рис. 3.60. Чтение данных из порта
DATA4
DATA4
Чтение данных с порта происходит в момент появления сигнала АСК. В промежутках между сигналами АСК данные менять нет смысла, поскольку они будут потеряны.
Очень важный и, можно даже сказать, принципиальный момент связан с генерацией сигнала прерывания INT. Аппаратно сигнал INT реализован по принципу выходного каскада с открытым стоком, поэтому необходима «подтяжка» к напряжению питания через pull-up резистор, как показано на рис. 3.61. Выводы INT разных микросхем можно объединить и подать на вывод прерывания микроконтроллера.
Рис. 3.61. Аппаратная реализация отработки прерываний с портовРис. 3.61. Аппаратная реализация отработки прерываний с портов
Рис. 3.61. Аппаратная реализация отработки прерываний с портов
Рис. 3.61. Аппаратная реализация отработки прерываний с портов
Прерывание может быть сгенерировано при перепаде на выходном порте хотя бы одного бита Р0...Р7 как с высокого уровня в низ-
кий, так и в обратном направлении. Возврат сигнала INT происходит
после генерации сигнала АСК (рис. 3.62) следующим образом:
в режиме чтения — в момент положительного перепада сигна- * ла SCL;
в режиме записи — в момент отрицательного перепада сигнала SCL.
Прерывания, которые происходят в течение импульса АСК, мо-гут быть потеряны из-за очень короткой длительности импульса. i
В табл. 3.36 приведены сведения, необходимые для разработчика. |
SDASDASCLSCLINTINTSlave-адресSlave-адресI 5 I 0 1 , о i о *А2*А1*А0]УсловиеSTARTI 5 I 0 1 , о i о *А2*А1*А0]УсловиеSTARTДанные из портаДанные из порта• АСКр5• АСКр5Условие STOPУсловие STOPДанные Р5Данные Р5-*; г*-5*-* !-+tir-*; г*-5*-* !-+tir-^VFUsUTL/sUcUtL-^VFUsUTL/sUcUtL
SDA
SDA
SCL
SCL
INT
INT
Slave-адрес
Slave-адрес
I 5 I 0 1 , о i о *А2*А1*А0]
Условие
START
I 5 I 0 1 , о i о *А2*А1*А0]
Условие
START
Данные из порта
Данные из порта
• АСКр5
• АСКр5
Условие STOP
Условие STOP
Данные Р5
Данные Р5
-*; г*-5*-* !-+tir
-*; г*-5*-* !-+tir
-^VFUsUTL/sUcUtL
-^VFUsUTL/sUcUtL
Рис. 3.62. Программная отработка прерываний (прерывание генерируетсяизменением данных на линии Р5)
Таблица 3.36
IПараметр технических условий
I Напряжение питания
| Ток потребления в активном состоянии Про ~ 6 В, f^ = 1QQ кГц I Ток потребления в неактивном состоянии
Символ
Vpo
*00 ко
Мин.
2 5
Норма
40
2,5
Макс. 6,0
100
10
Ед. изм.
|^л?вень напряжения сброса внутренней схемы рремя^закоторое выходные данные вступают в силу | Время установки входных данных
^ремя удержания входных данных
ГОемя^за которое входные данные вступают в силу
| Время задержки сброса
| Температура хранения
| Рабочая температура
| Максимальная частота сигнала SCL
^
к» к
к к
^stg
*SCL
0
4
-65
-40
1,3
2,4
4
—
4
4 +150 +85 100
МКС 1 мкс 1
МКС
мкс
мкс
•С |
•с j
кГц 1
PCF8591
Документация [30] относит эту микросхему к типу 8-bit A/D and D/А convertor, то есть микросхема предназначена для аналого-цифровых и цифро-аналоговых преобразований сигналов. В современной технике такие преобразователи используются для решения самых разнообразных задач. При написании этой книги не предполагалось рассказывать об использовании преобразователей в радиолюбительских конструкциях. Читатель, столкнувшийся с необходимостью применить в своих разработках указанные элементы, всегда найдет необходимую вспомогательную литературу. Например, об использовании ЦАП и АЦП в устройствах измерения можно прочитать в книге [32]. Отметим только, что отечественным сокращениям ЦАП и АЦП соответствуют зарубежные DAC (D/А) и ADC (А/D). В современном мире выпускается много микросхем преобразователей, оснащенных интерфейсом последовательного доступа, однако доля интерфейса 12С среди них невысока.
Микросхема PCF8591 обладает следующими заманчивыми свойствами:
единственный источник питающего напряжения;
сохранение работоспособности в диапазоне питающих напряжений от 2,5 до 6 В;
низкий ток потребления;
три вывода задания slave-адреса;
четыре аналоговых входа с возможностью программирования включения (прямое и дифференциальное);
использование А/D преобразования с последовательным приближением и 8-разрядным диапазоном чисел;
мультиплексированный D/А преобразователь с одним аналоговым выходом.
Данная микросхема выполнена по технологии КМОП, имеет 4 аналоговых входа и 1 аналоговый выход, управляемые посредством задания данных на шине 12С. Биты А2...А0 в slave-адресе микросхемы задаются внешними сигналами по традиционному способу: подключением соответствующих выводов либо к общему проводу, либо к напряжению питания. Это позволяет использовать до 8 однотип-
ных микросхем. В составе PCF8591 имеется только один А/D преобразователь, но использование методов мультиплексирования расширяет входные возможности микросхемы. Вход АЦП последовательно подключается к 4 сигнальным входам, и происходит считывание информации с них. К сожалению, мультиплексирование нельзя использовать для D/А преобразования, поэтому аналоговый выход только один. Максимальная скорость преобразования данных ограничена максимальным быстродействием шины 12С.
Расположение выводов микросхемы показано на рис. 3.63, назначение выводов — в табл. 3.37. Блок-схема, отражающая внутреннее устройство и взаимодействие элементов микросхемы, приведена на рис. 3.64.
AINO | AIN1
AIN2
AIN3
АО
Vss
^ iSjvoo
2Tт"s
CD Ш co LL o
is] АООТ и] Vref l5] AGND 12] EXT HJosc iojsCL Гэ] SDA
Рис. 3.63. Расположение выводовмикросхемы PCF8591
Символ
Вывод
Описание
|AINO
1
Аналоговый вход (A/D)
A1N1
2
Аналоговый вход (A/D)
A1N2
3
Аналоговый вход (AD)
AIN3
4
Аналоговый вход (A/D)
АО
5
Адресный вход 0I
А1
6
Адресный вход 1
А2
7
Адресный вход 2
. vs
8
Общий провод микросхемы (питание)
SDA
9
Линия SDA шины ГС
SCL
10
Линия SCL шины ГС
OSC
11
Вывод подключения внешнего генератора
EXT
12
Внешний/внутренний генератор
AGND
13
Аналоговая «земля»
4*
14
Опорное напряжение
|AOUT
15
Аналоговый выход (D/A)
|4»
16
Напряжение питания«+»
Таблица 3.37. Назначение выводов PCF8591
Рис. 3.64. Блок-схема PCF8591
Представители микросхем с интерфейсом 12С
Slave-адрес микросхемы задается, как показано на рис. 3.65. Он содержит фиксированную часть (биты 7...4) и изменяемую часть (биты 3...1). Бит 0, как всегда, несет в себе признак «R/W» (чтение/за- пись).
LSBLSBMSB
LSB
LSB
I 1 I О I О I 1 |А2,А11АО, R/W
Фиксированная ПрограммируемаяФиксированная Программируемая
Фиксированная Программируемая
Фиксированная Программируемая
Рис. 3.65. Построение slave-адреса
Второй байт, следующий за slave-адресом, носит название байта контроля и управления. Этот байт конфигурирует микросхему под задачи пользователя. Во-первых, с его помощью можно включить аналоговый выход или отключить его. Во-вторых, возможно настроить аналоговые входы как в прямом, так и в дифференциальном включении. В-третьих, возможна установка (двумя битами) номера канала А/D, в котором будет происходить преобразование. Если установлен флаг автоинкремента, после каждого А/D преобразования номер входного канала будет увеличиваться на единицу. Режим автоинкремента наиболее рационально использовать совместно с внутренним генератором, поскольку в таком режиме он будет работать непрерывно. Как сказано в документации, задержка пуска генератора при переключении каналов ведет к ошибкам преобразования данных. Рекомендуется также отключать аналоговый выход (переводить его в Z-состояние), если он не используется. Эта мера позволит сократить ток потребления микросхемы. На рис. 3.66 показаны возможные состояния байта контроля и управления.
D/А преобразование
Третий байт, который должна получать микросхема PCF8591, — это байт данных для цифроаналогового преобразователя. Естественно, в этом случае в байте контроля и управления (рис. 3.66) должен быть активизирован аналоговый выход.
Физически D/А преобразователь состоит из резисторной матрицы, показанной на рис. 3.67. Точки соединения резисторов образуют
Номер А/D канала
00 - канал 0
01 - канал 1
10-канал 2
канал 3
IАвтоинкремент
(активный - "Г)
*- Программирование аналогового входа 00
AINO канал О
AIN1 канал 1
AIN2 канал 2
Активация аналогового выхода (активный - "1")Активация аналогового выхода (активный - "1")Рис. 3.66. Байт контроля и управленияРис. 3.66. Байт контроля и управленияAIN3 канал 3
Активация аналогового выхода (активный - "1")
Активация аналогового выхода (активный - "1")
Рис. 3.66. Байт контроля и управления
Рис. 3.66. Байт контроля и управления
ответвления, которые с помощью переключателей связываются с выходной линией. Управляет схемой декодер ответвлений. Выходное напряжение (DAC out) подается затем на усилитель с автомата-
ческой балансировкой нуля (auto-zeroed unity gain amplifier). Этот усилитель может быть либо включен (через байт контроля и управления), либо переведен в высокоимпедансное (Z) состояние выхода.
MSBLSB
[d7|d6|d5|D4|d3|d2|di|po| Байт данных
vAOUT4
vddJ-Vref!
VAGNDT vss LVAGNDT vss L00 01 02 03 0400 01 02 03 04HEX кодHEX кодРис. 3.68. D/А преобразованиеРис. 3.68. D/А преобразование
VAGNDT vss L
VAGNDT vss L
00 01 02 03 04
00 01 02 03 04
HEX код
HEX код
Рис. 3.68. D/А преобразование
Рис. 3.68. D/А преобразование
Важно отметить, что D/А преобразователь используется также в процедуре А/D преобразования по методу последовательного приближения. Данный метод подробно описан в литературе, и возвращаться к нему в рамках этой книги нет смысла.
Процедура D/А преобразования показана на рис. 3.68. Любая точка на графике в диапазоне 00h...FFh может быть определена по формуле
V - V
V =V + -^ -о у D ,2'-
VAOUT VAGNCD тL i ’
256,=о
где VAOUT — выходное напряжение D/А преобразователя; VREF — опорное напряжение; VAGND — потенциал аналоговой «земли»; D, — соответствующий разряд байта данных.
Обратите внимание также на рис. 3.69. Возможна работа с микросхемой посредством передачи цепочки байтов данных, следующих один за другим. Уровень напряжения, соответствующий заданному, появляется на выходе в момент выдачи сигнала АСК. В момент выдачи сигнала АСК, подтверждающего прием байта контроля и управления (рис. 3.66, control byte) на выходе микросхемы, появляются данные, содержащиеся в регистре DAC с момента окончания предыдущего цикла работы микросхемы.
Рис. 3.69. Протокол работы в режиме D/А преобразования
А/D преобразование
Чтобы выполнить А/D преобразование, вначале нужно передать байт контроля и управления с признаком R/W = 0. Затем осуществить считывание данных согласно рис. 3.70.
байт 1байт 1Преобразование байт 1Преобразование байт 1Считывание байт 2Считывание байт 2Преобразование байт 2Преобразование байт 2Считывание байт 3ПреобразованиебайтЗСчитывание байт 3ПреобразованиебайтЗ
байт 1
байт 1
Преобразование байт 1
Преобразование байт 1
Считывание байт 2
Считывание байт 2
Преобразование байт 2
Преобразование байт 2
Считывание байт 3
ПреобразованиебайтЗ
Считывание байт 3
ПреобразованиебайтЗ
Передача нашину предыд.конверс. байтаПередача нашину предыд.конверс. байтаПередача нашинубайта 1Передача нашинубайта 1Передача нашинубайта 2Передача нашинубайта 2
Передача нашину предыд.конверс. байта
Передача нашину предыд.конверс. байта
Передача нашинубайта 1
Передача нашинубайта 1
Передача нашинубайта 2
Передача нашинубайта 2
S
Slave
1
А
DATA1
А
DATA 2
А
DATA3
А
Рис. 3.70. Протокол работы в режиме А/D преобразования
Важно отметить, что считывание сигнала с аналогового входа и передача цифровых данных на шину 12С происходит по сигналу АСК. Причем момент считывания аналогового сигнала и момент начала передачи цифрового сигнала (точнее, его старшего бита) разнесены во времени, как показано на рис. 3.70.
Как уже было сказано ранее, входы микросхемы могут работать в обычном и дифференциальном режимах. График, отражающий работу микросхемы в обычном режиме, приведен на рис. 3.71, дифференциальный режим показан на рис. 3.72.
V - V
V =VLSBV =VLSBJREF VAGND
V =
VLSB
V =
VLSB
256
Чтобы обеспечить стабильность А/D и D/А преобразований, необходим специальный источник опорного напряжения, подключаемый к выводам Vref и AGND микросхемы. Встроенный генератор необходим для обеспечения цикла преобразования А/D и для корректировки буферного усилителя с автоматической подстройкой нуля.
Рис. 3.71. Обычный режим преобразования A/D
Чтобы задействовать внутренний генератор, вывод EXT должен быть замкнут к Vss. Тогда на выводе OSC появится сигнал частоты преобразования, который можно проконтролировать. Если вывод EXT подключить к VDD, внутренний генератор перейдет в высокоимпедансное состояние и на вывод OSC можно подавать сигнал от
внешнего генератора.
В табл. 3.38 приведены основные технические характеристики микросхемы, необходимые для проектирования.
Параметр технических условий
Символ
Мин.
Норма
Макс.
Ед. изм.
Напряжение питания
Ч>0
2,5
—
6,0
В
Ток потребления: в ждущем режиме |АООТ отключен
IAOUT включен
*00
1
125
0,45
15
250
1,0
мкА
[Порог срабатывания схемы внутреннего сброса
Vpor
0,8
-
2,0
В |
Входное опорное напряжение
Vref
Vss+1,6
-
Von
В
Потенциал аналоговой «земли»
Чою
Vss
-
Vdo
В
Входное сопротивление
fl#
-
100
-
кОм
Частота преобразования
lose
0,75
—
1,25
МГц
Выходное напряжение
Ч
Vss
Vdo
8 1
D/А характеристики
LU
Ошибка смещения
ose
-
50
мВ
Ошибка линейности
Ц
-
—
±1,5
158
| Ошибка усиления
Ge
-
—
1
% |
Время установки DAC
'dec
-
—
90
МКС
А/D характеристики
Ошибка смещения
ose
-
-
20
мВ
Ошибка линейности
U
—
±1,5
LSB
J Ошибка усиления
Ge
-
—
1
%
Ошибка усиления малого сигнала (ДЦ = 16158)
GSe
-
-
5
%
Время преобразования
•adc
—
90
МКС
Рабочая температура
Tamb
-40
-
+85
"С
Температура хранения
Llg
-65
-
+150
Таблица 3.38
На рис. 3.73 приведен пример использования микросхемы PCF8591 в качестве температурного датчика. Выводы AINO и AIN1 работают в обычном режиме, выводы AIN2 и AIN3 включены по дифференциальной схеме.
VDD V0
VDD
А Ч4 ЫН
X X UAINO VDD AO
J^ Аналоговая "земля"
J- Цифровая "земля"
AIN1
AIN2
AIN3 а АО
А1
А2
О) ш 00
О
Vss
VDD
VDD
|-VOUT
AOUT
Vref
AGNDH -h EXT OSO.
SOL SDA
Master
12С
Рис. 3.73. Вариант использования микросхемы PCF8591
PCF8583
В оригинальной документации (Product Specification) [31] микросхема имеет наименование clock/calendar with 240x8 bit RAM. Это очень интересная микросхема, которая имеет в своем составе часы реального времени и статическое ОЗУ (RAM). Причем микросхема может использоваться и как только часы, и как только ОЗУ, а также выполнять совмещенные функции — все ячейки памяти находятся в одном адресном пространстве. Где можно применить данную микросхему? Например, запитав ее от отдельного автономного источника (гальванической батареи или аккумулятора), разместить в устройстве, требующем считывания текущего времени в процессе работы (скажем, для ведения протокола каких-либо измерений). Такие часы имеются в любом PC-совместимом компьютере для сохранения даты создания файлов. В составе уличных телефонов-автоматов тоже есть часы реального времени для фиксации времени разговора и опреде-
ления просроченных телефонных карт. Часы реального времени можно использовать в разнообразных системах избирательного доступа, в бытовой технике (таймеры кухонной техники), в автомобильной электронике. Читатель сам найдет варианты применения PCF8583, если внимательно оглянется вокруг и задействует свою фантазию.
Итак,- каковы заманчивые свойства микросхемы:
управление по интерфейсу 12С;
диапазон напряжений питания — от 2,5 до 6,0 В;
часы реального времени сохраняют работоспособность в диапазоне напряжений 1...6 В;
максимальный рабочий ток (fosC = 0 Гц) — 50 мкА;
240 х 8 bit низковольтное RAM;
календарь на четыре года;
универсальный таймер с функциями alarm и overflow;
формат 24 и 12 часов;
базовая частота 32 768 и 50 Гц;
автоматический инкремент адреса при обращении по шине 12С;
программируемые функции alarm, overflow и interrupt (прерывание).
Микросхема PCF8583 представляет собой статическое КМОП RAM, состоящее из 2048 битов, организованных в 256 байтов по 8 битов. Встроенный регистр адреса байта автоматически инкрементирует свое значение после каждой операции записи (чтения) данных. Вывод АО используется для программирования slave-адреса микросхемы. Понятно, что без дополнительных средств к одной шине может быть подключено не более 2 микросхем PCF8583. Первые 8 байтов RAM используются для функционирования часов/календаря. Причем адрес 00h — специальный регистр статуса. Вторые 8 байтов (адреса O8...OFh) могут быть запрограммированы как сигнальные регистры (alarm registers), а также возможно их использование как ячеек свободной памяти. Последующие 240 байтов — свободная память RAM, распределяемая и заполняемая по усмотрению пользователя.
Расположение выводов микросхемы PCF8583 приведено на рис. 3.74, назначение выводов — в табл. 3.39. Блок-схема внутреннего устройства — на рис. 3.75.
OSC1
И
и
5 Voo
OSC0
I
7] 1ST
АО
3
6]scl
Vss
[I
5]SDA
PCF8583P
PCF8583T
Рис. 3.74. Расположение выводов
Таблица 3.39. Назначение выводов
1Символ
Вывод
Описание
OSC1
1
Вход генератора
OSC0
2
Выход генератора
АО
3
Программирование slave-адреса
Vss
4
Общий питания
SDA
5
Линия SDA шины l2C
|SCL
6
Линия SCL шины PC
INT
7
Вывод генерации прерывания
Vdo
8
Питание«+»
Рассмотрим теперь принципы работы с микросхемой. Как видно из рис. 3.75, первые 8 байтов использованы непосредственно для функционирования часов реального времени. Регистр статуса (control/status, адрес 00h) используется для конфигурирования микросхемы, индивидуальной ее настройки, а также для определения ситуаций, возникающих в процессе работы. Перечисляемые далее регистры имеют следующее функциональное назначение (в режиме clock modes):
адрес Olh [hundredth of a seconds] — 1/10 и 1/100 секунды;
адрес 02h [seconds] — секунды и десятки секунд;
адрес 03h [minutes] — минуты и десятки минут;
адрес 04h [hours] — десятки часов и часы;
адрес 05h [year/date] ■— год и дата;
адрес 06h [weekday/months] — неделя и месяц;
адрес 07h [timer] — функциональный таймер.
Таймер рассчитан на 99 дней. Все числа хранятся в регистрах в упакованном BCD-формате (двоично-десятичном). Старшая тетрада байта относится к десяткам (например, десятки секунд), а младшая — к единицам (единицы секунд).
Регистры с адресами 08h...0Fh используются для задания функции alarm. То есть при разрешении отработки этой функции в регистре статуса при совпадении числа, занесенного в alarm-регистры, с числом, содержащимся в счетных регистрах 01h...07h, будет возникать сигнал прерывания.
Существует также режим event counter (счетчик событий), когда микросхема работает в режиме простого счетчика и может генерировать прерывание по совпадению чисел в регистрах [00h...03h] и [08h...0Ah], а также по таймеру 07h и OEh.
Назначение регистров в обоих режимах приведено на рис. 3.76.
Теперь поговорим подробнее о функции alarm. Как уже было сказано, эта функция может быть активизирована или отключена в регистре статуса 00h. Установками можно задавать датированный alarm, ежедневный alarm, недельный alarm, alarm по таймеру. О возникновении события «alarm» свидетельствует установка в низкий уровень сигнала на выводе 7 микросхемы. Необходимо обратить внимание читателя на то, что этот вывод выполнен по технологии «открытый
control/statushundred of a secondШР5I 'ПУКseconds
1^ , 115
minutes
IQfnin I 1min hours
юпГih
year/date
todayI1dav
weekday/monthlOmonthГImpnih
today1idax
alarm/control
hundred of a second
VIPs I1/1 OOs
alarm seconds
L, alarm minutes
, _L
alarm hours
I alarm date
alarm month
alarm timer
00010203 040506070809 0A0B 0C 0D0E OF00010203 040506070809 0A0B 0C 0D0E OFcontrol/statusD1DOD3D2D5D4СвободноСвободноСвободноТ1 timer то■^ alarm/controlatom.DO*D3D2D5D4СвободноСвободноСвободноalarm timercontrol/statusD1DOD3D2D5D4СвободноСвободноСвободноТ1 timer то■^ alarm/controlatom.DO*D3D2D5D4СвободноСвободноСвободноalarm timer03040304050607050607080908090A0B0C0A0B0C0D0E OF0D0E OF000102000102СвободнаяRAMСвободнаяRAMСвободная
00
01
02
03 04
05
06
07
08
09 0A
0B 0C 0D
0E OF
00
01
02
03 04
05
06
07
08
09 0A
0B 0C 0D
0E OF
control/status
D1
DO
D3
D2
D5
D4
Свободно
Свободно
Свободно
Т1 timer то
■^ alarm/control
atom.
DO*
D3
D2
D5
D4
Свободно
Свободно
Свободно
alarm timer
control/status
D1
DO
D3
D2
D5
D4
Свободно
Свободно
Свободно
Т1 timer то
■^ alarm/control
atom.
DO*
D3
D2
D5
D4
Свободно
Свободно
Свободно
alarm timer
03
04
03
04
05
06
07
05
06
07
08
09
08
09
0A
0B
0C
0A
0B
0C
0D
0E OF
0D
0E OF
00
01
02
00
01
02
Свободная
RAM
Свободная
RAM
CLOCK MODECLOCK MODEEVENT COUNTEREVENT COUNTERRAM
CLOCK MODE
CLOCK MODE
EVENT COUNTER
EVENT COUNTER
Рис. 3.76. Назначение и формат регистров микросхемы PCF8583 в режимахclock modes и event counter
сток», а значит, требует подключения pull-up резистора к напряжению питания. Флаг прерывания (INT) остается активным до момента повторного программирования режима alarm.
Если функция alarm не задействована (бит 2 регистра статуса установлен в «0»), ячейки 08h...0Fh могут быть использованы по усмотрению разработчика электронной схемы.
Назначение бита регистра статуса приведено на рис. 3.77. Регистр доступен как по условию чтения, так и по условию записи. Детальное описание регистров часов (hours), года и даты (year/date), недели и месяца (weekday/months) приведено на рис. 3.78—3.80. 12-часовой или 24-часовой формат может быть установлен программированием бита 7 в регистре hours (адрес 04h). При осуществлении чтения по адресам 05h и 06h желательно установить флаг mask в регистре статуса. Это позволит пользователю непосредственно читать дату и месяц, не проводя дополнительные вычисления.
В случае использования режима event counter все данные в ячейках D0...D5 также должны содержаться в BCD-формате. Тетрада D5 в этом случае является старшей тетрадой, а тетрада D0 — младшей.
П^еЪёФёёШели микросхем с интерфейсом PCMSBLSBИ 6 I 5| 4 | 3 | 2 | | О |~р~I— флаг "timer" (50% секунды, если флаг "alarm" установлен в "О"): флаг "timer" (50% минуты, если флаг "alarm" установлен в "О");— бит разрешения режима "alarm": 0 - "alarm" запрещен,1 — "alarm" разрешен: флаг "mask": 0 - немаскированное чтение 0516 и 0616.1 - непосредственное чтение date и month: функциональный режим: 00 - частота 32768 Гц;01 - частота 50 Гц;- счетчик событий;- режим тестирования; флаг "hold last count": 0 - счетчик;1 —захват;П^еЪёФёёШели микросхем с интерфейсом PCMSBLSBИ 6 I 5| 4 | 3 | 2 | | О |~р~I— флаг "timer" (50% секунды, если флаг "alarm" установлен в "О"): флаг "timer" (50% минуты, если флаг "alarm" установлен в "О");— бит разрешения режима "alarm": 0 - "alarm" запрещен,1 — "alarm" разрешен: флаг "mask": 0 - немаскированное чтение 0516 и 0616.1 - непосредственное чтение date и month: функциональный режим: 00 - частота 32768 Гц;01 - частота 50 Гц;- счетчик событий;- режим тестирования; флаг "hold last count": 0 - счетчик;1 —захват;Представители микросхем с интерфейсом Рб123Установка после сброса: 0 000 001месяц (BCD формат);десятки месяца;неделя (читается "0", если флаг "mask" установлен)Регистр weekdays/mounthsПредставители микросхем с интерфейсом Рб123Установка после сброса: 0 000 001месяц (BCD формат);десятки месяца;неделя (читается "0", если флаг "mask" установлен)Регистр weekdays/mounthsMSBLSB| 7 | 6 | 5 | 4 | 3 | 2 | 1 | О |MSBLSB| 7 | 6 | 5 | 4 | 3 | 2 | 1 | О |Рис. 3.80.Рис. 3.80.Диапазон изменения величин во ёсех регистрах приведен в табл. 3.40.Диапазон изменения величин во ёсех регистрах приведен в табл. 3.40. флаг "stop counting" (0 — счет импульсов;1 - остановка по условию и по строке)Рис. 3.77. Регистр статуса (адрес 00h) флаг "stop counting" (0 — счет импульсов;1 - остановка по условию и по строке)Рис. 3.77. Регистр статуса (адрес 00h)MSBLSB|7|б|5[4[з|2|1 | 0 |Установка после сброса: 0 000 000I I I I...... часы (BCD формат)— десятки часов; флаг АМ/РМ: 0- АМ;'1 - РМ; формат:0 - 24-часовой (флаг АМ/РМ не задействован);1 - 12-часовой (флаг АМ/РМ обновляется)Рис. 3.78. Регистр hoursMSBLSB|7|б|5[4[з|2|1 | 0 |Установка после сброса: 0 000 000I I I I...... часы (BCD формат)— десятки часов; флаг АМ/РМ: 0- АМ;'1 - РМ; формат:0 - 24-часовой (флаг АМ/РМ не задействован);1 - 12-часовой (флаг АМ/РМ обновляется)Рис. 3.78. Регистр hoursЕдиница измеренияРежим счетаПереход к следующей единицеСодержание счетчикамесяцаjHundredths of secondCO to 9999 to 00-Seconds00 to 5959 to 00-Minutes00 to 5959 to 00Hours (24 h)00 to 2323 to 00Hours (12h)12AM-01 AMtoHAM-12 PM-OlPMtoUPM,11 PM to 12 AM-Date01 to 3131 to 011,3, 5,7,8,10,1201 to 3030 to 014,6,9,1101 to 2929 to 012, year = 001 to 2828 to 01year = 1,2,3Months01 to 1212 to 01Year0to3-WeekdaysOto 66 toOTimer00 to 99нет содержанияЕдиница измеренияРежим счетаПереход к следующей единицеСодержание счетчикамесяцаjHundredths of secondCO to 9999 to 00-Seconds00 to 5959 to 00-Minutes00 to 5959 to 00Hours (24 h)00 to 2323 to 00Hours (12h)12AM-01 AMtoHAM-12 PM-OlPMtoUPM,11 PM to 12 AM-Date01 to 3131 to 011,3, 5,7,8,10,1201 to 3030 to 014,6,9,1101 to 2929 to 012, year = 001 to 2828 to 01year = 1,2,3Months01 to 1212 to 01Year0to3-WeekdaysOto 66 toOTimer00 to 99нет содержанияТаблица 3.40Таблица 3.40В случае установки бита 2 регистра статуса в состояние «1» активизируется режим alarm, таймер и схема генерации прерываний (interrupt). Все эти функции могут быть определены с помощью регистра alarm control, располагающегося по адресу 08h. Возможные состояния этого регистра приведены на рис. 3.81.В случае установки бита 2 регистра статуса в состояние «1» активизируется режим alarm, таймер и схема генерации прерываний (interrupt). Все эти функции могут быть определены с помощью регистра alarm control, располагающегося по адресу 08h. Возможные состояния этого регистра приведены на рис. 3.81.
П^еЪёФёёШели микросхем с интерфейсом PC
MSBLSB
И 6 I 5| 4 | 3 | 2 | | О |
~р~I— флаг "timer" (50% секунды, если флаг "alarm" установлен в "О"):
флаг "timer" (50% минуты, если флаг "alarm" установлен в "О");
— бит разрешения режима "alarm": 0 - "alarm" запрещен,
1 — "alarm" разрешен:
флаг "mask": 0 - немаскированное чтение 0516 и 0616.
1 - непосредственное чтение date и month:
функциональный режим: 00 - частота 32768 Гц;
01 - частота 50 Гц;
- счетчик событий;
- режим тестирования;
флаг "hold last count": 0 - счетчик;
1 —захват;
П^еЪёФёёШели микросхем с интерфейсом PC
MSBLSB
И 6 I 5| 4 | 3 | 2 | | О |
~р~I— флаг "timer" (50% секунды, если флаг "alarm" установлен в "О"):
флаг "timer" (50% минуты, если флаг "alarm" установлен в "О");
— бит разрешения режима "alarm": 0 - "alarm" запрещен,
1 — "alarm" разрешен:
флаг "mask": 0 - немаскированное чтение 0516 и 0616.
1 - непосредственное чтение date и month:
функциональный режим: 00 - частота 32768 Гц;
01 - частота 50 Гц;
- счетчик событий;
- режим тестирования;
флаг "hold last count": 0 - счетчик;
1 —захват;
Представители микросхем с интерфейсом Рб123
Установка после сброса: 0 000 001
месяц (BCD формат);
десятки месяца;
неделя (читается "0", если флаг "mask" установлен)
Регистр weekdays/mounths
Представители микросхем с интерфейсом Рб123
Установка после сброса: 0 000 001
месяц (BCD формат);
десятки месяца;
неделя (читается "0", если флаг "mask" установлен)
Регистр weekdays/mounths
MSBLSB
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | О |
MSBLSB
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | О |
Рис. 3.80.
Рис. 3.80.
Диапазон изменения величин во ёсех регистрах приведен в табл. 3.40.
Диапазон изменения величин во ёсех регистрах приведен в табл. 3.40.
флаг "stop counting" (0 — счет импульсов;
1 - остановка по условию и по строке)
Рис. 3.77. Регистр статуса (адрес 00h)
флаг "stop counting" (0 — счет импульсов;
1 - остановка по условию и по строке)
Рис. 3.77. Регистр статуса (адрес 00h)
MSBLSB
|7|б|5[4[з|2|1 | 0 |Установка после сброса: 0 000 000
I I I I...... часы (BCD формат)
— десятки часов;
флаг АМ/РМ: 0- АМ;
'1 - РМ;
формат:
0 - 24-часовой (флаг АМ/РМ не задействован);
1 - 12-часовой (флаг АМ/РМ обновляется)
Рис. 3.78. Регистр hours
MSBLSB
|7|б|5[4[з|2|1 | 0 |Установка после сброса: 0 000 000
I I I I...... часы (BCD формат)
— десятки часов;
флаг АМ/РМ: 0- АМ;
'1 - РМ;
формат:
0 - 24-часовой (флаг АМ/РМ не задействован);
1 - 12-часовой (флаг АМ/РМ обновляется)
Рис. 3.78. Регистр hours
Единица измерения
Режим счета
Переход к следующей единице
Содержание счетчика
месяцаj
Hundredths of second
CO to 99
99 to 00
-
Seconds
00 to 59
59 to 00
-
Minutes
00 to 59
59 to 00
Hours (24 h)
00 to 23
23 to 00
Hours (12h)
12AM
-
01 AMtoHAM
-
12 PM
-
OlPMtoUPM,
11 PM to 12 AM
-
Date
01 to 31
31 to 01
1,3, 5,7,8,10,12
01 to 30
30 to 01
4,6,9,11
01 to 29
29 to 01
2, year = 0
01 to 28
28 to 01
year = 1,2,3
Months
01 to 12
12 to 01
Year
0to3
-
Weekdays
Oto 6
6 toO
Timer
00 to 99
нет содержания
Единица измерения
Режим счета
Переход к следующей единице
Содержание счетчика
месяцаj
Hundredths of second
CO to 99
99 to 00
-
Seconds
00 to 59
59 to 00
-
Minutes
00 to 59
59 to 00
Hours (24 h)
00 to 23
23 to 00
Hours (12h)
12AM
-
01 AMtoHAM
-
12 PM
-
OlPMtoUPM,
11 PM to 12 AM
-
Date
01 to 31
31 to 01
1,3, 5,7,8,10,12
01 to 30
30 to 01
4,6,9,11
01 to 29
29 to 01
2, year = 0
01 to 28
28 to 01
year = 1,2,3
Months
01 to 12
12 to 01
Year
0to3
-
Weekdays
Oto 6
6 toO
Timer
00 to 99
нет содержания
Таблица 3.40
Таблица 3.40
В случае установки бита 2 регистра статуса в состояние «1» активизируется режим alarm, таймер и схема генерации прерываний (interrupt). Все эти функции могут быть определены с помощью регистра alarm control, располагающегося по адресу 08h. Возможные состояния этого регистра приведены на рис. 3.81.
В случае установки бита 2 регистра статуса в состояние «1» активизируется режим alarm, таймер и схема генерации прерываний (interrupt). Все эти функции могут быть определены с помощью регистра alarm control, располагающегося по адресу 08h. Возможные состояния этого регистра приведены на рис. 3.81.
MSBLSB
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | Q~|Установка после сброса: 0 000 001
L I Г „ дни (BCD формат);
десятки дней;
год (читается "0", если флаг "mask" установлен)
Рис. 3.79. Регистр year/date
Установка после сброса: О ООО 000
функции таймера:
ООО - без таймера;
001 - десятки и сотни секунд;
010- секунды;
011- минуты;
100 - часы;
101 - дни;
не используется;
тестовый сигнал (используется все);
прерывание от таймера: 0 - нет прерываний;
1 - есть прерывания;
функция alarm: 00 - нет функции alarm;
01 - ежедневный alarm;
еженедельный alarm;
alarm по дате;
alarm по таймеру: 0 - нет alarm по таймеру, 1 - alarm по таймеру;
прерывание по режиму alarm: 0 - нет прерываний;
1 - есть прерывания
Рис. 3.81. Регистр alarm control в режиме clock modes
Регистры, относящиеся к режиму alarm, следуют за регистром alarm control (адреса 09h...0Fh). Их адреса соответствуют счетным регистрам со смещением 08h. Сигнал alarm генерируется тогда, когда содержание этих регистров совпадает «бит в бит». Установки «год» и «неделя» не участвуют в генерации сигнала «alarm по определенной дате». Установки «дата» и «месяц» игнорируются при генерации сигнала «ежедневный alarm». Если выбран режим «недельный alarm», при, генерации сигнала alarm будет учтено состояние регистра alarm weekdays (адрес OEh), показанного на рис. 3.82. При включении функции «часовой alarm» биты б и 7 регистра alarm hours должны соответствовать битам счетного регистра часов.
Таймер (адрес 07h) активизируется при установке в регистре статуса комбинации ХХОХ Х1ХХ. Таймер может осуществлять счет от 0 (или от другой установленной величины) до 99. Флаг timer в регистре статуса должен быть установлен при превышении таймером указанной величины, а возврат обеспечивает программно. Этот флаг может генерировать внешнее прерывание при установке бита 3 в регистре alarm control.
Alarm от таймера может быть установлен по биту 6 в регистре alarm control. Когда счетное число таймера сравняется с величиной,
MSB LSB
'активизирована неделя 0; неделя1;
— —■—- неделя 2;
неделя3;
L—неделя4;
L—— неделя 5;
—неделя6;
йе используется
Рис. 3.82. Регистр alarm weekdays
определенной в регистре alarm timer (адрес OFh) — при условии установки бита 1 в регистре статуса, — генерируется сигнал alarm. Этот сигнал может также сгенерировать внешнее прерывание при установке бита 7 в регистре alarm control.
Режим event counter (счетчик событий) активизируется установкой битов 4 и 5 в регистре статуса. Этот режим применяется в случае необходимости подсчета импульсов, поступающих на вход OSC1. Счетчик хранит 6 цифр, которые, как уже было сказано ранее, содержатся в памяти микросхемы в двоично-десятичном упакованном формате. Предельная величина счетчика 999 999 тактов входного импульса. Счетчик может генерировать сигнал alarm при программировании соответствующих регистров по адресам 09h, OAh, OBh и разрешения генерации сигнала alarm в регистре статуса (биты 4 и 5). Также должен быть установлен бит 1 в регистре статуса. Генерация внешнего прерывания на выводе 7 также возможна.
Все внешние прерывания, как уже было отмечено, передаются на вывод INT микросхемы. Активный уровень на этом выводе (при сгенерированном прерывании) — низкий. Возврат осуществляется установкой соответствующего флага в регистре статуса, который вызывал это прерывание. В режиме подсчета реального времени, если режим alarm не задействован, вывод INT может генерировать постоянные прерывания с частотой 1 Гц и скважностью 50%. Возможные состояния регистра alarm control в режиме event counter приведены на рис. 3.83.
Чтобы задействовать внешний генератор, к выводам OSC1 (вывод 1) и OSC0 (вывод 2) нужно подключить кварцевый резонатор на частоту 32,768 кГц. Подстроечный конденсатор (триммер), подклю-
MSBI 16151413 FMSBI 16151413 FLSBLSBУстановка после сброса: О ООО 000Установка после сброса: О ООО 000
MSB
I 16151413 F
MSB
I 16151413 F
LSB
LSB
Установка после сброса: О ООО 000
Установка после сброса: О ООО 000
функции таймера:
ООО - нет таймера;
001 - единицы;
010 - 100;
011- 10 000;
100 - 1 000 000;
101 - не используется;
не используется;
тест, все счетные соотношения используются параллельно;
прерывание от таймера: 0 - нет прерываний;
1 - есть прерывание
функция dock alarm: 00 - нет событий alarm;
01 - событие alarm;
не используется;
не используется;
alarm от таймеру: О- нет alarm от таймера;
1 - alarm от таймера;
alarm прерывание: О- нет прерываний;
1 - есть прерывание
Рис. 3.83. Регистр alarm control в режиме event counter
ченный между выводами OSC1 и VDD, служит для подстройки частоты генератора. В таком режиме часы тактируются частотой 100 Гц. В режиме event counter или clock modes возможно задействование внешнего генератора частотой 50 Гц. В таком случае сигнал нужно подавать на вывод OSC1.
После сброса (power-on reset), осуществляющегося после включения питания, все регистры находятся в состоянии, определяемом схемой сброса: генератор 32,768 кГц, 24-часовой формат, первое января 0.00.00:00, на выводе INT — частота 1 Гц. Рекомендуется флаг stop counting в регистре статуса устанавливать после загрузки соответствующих счетных регистров. Только после этого можно разрешать счет. Загрузка неразрешенных (выходящих за диапазон) величин в регистры может привести к общему сбою счета.
Читателю, вероятно, пока не очень понятна логика работы с режимом alarm, с таймером, с генерацией прерываний. Для пояснения приводится рис. 3.84, где все связи отображены четко и в полном объеме. Протокол доступа по шине 12С для микросхемы PCF8583 точно такой же, как и для ЭСППЗУ с последовательным доступом, поэтому здесь он подробно не рассматривается.
Рис. 3.84. Блок-схема, поясняющая генерацию прерываний от сигналов alarm и timer
В заключение приведем основные характеристики микросхемы, необходимые для проектирования.
Таблица 3.41
IПараметр технических условий
Символ
Мин.
Норма
Макс.
Ед. изм.
Напряжение питания (ГС активна)
Vdo
2,5
-
6,0
В
Напряжение питания (ГС неактивна)
Vdo
1.0
-
6,0
в
Потребляемый ток (1^ = 100 кГц)
Ido
-
-
200
мкА
Рабочая температура
Tamb
-40
+85
•с
Окончание таблицы 3.41
Параметр технических условий
Символ
Мин.
Норма
Макс.
Fa. изм.
Температура хранения
Тйд
-60
—
+150
"С
Интегрированная емкость генератора
Cosc
-
40
-
пФ
Стабильность генератора
Afosc
-
2 • 107
—
Входная частота в режиме event counter
1
—
—
1
МГц
Параметры кварцевого генератора
Последовательное сопротивление
-
—
40
кОм
Параллельная входная емкость
Q.
-
10
—
пФ
| Подстроечный конденсатор (триммер)
^т
5
-
25
пФ
Микросхема выпускается в корпусах DIP8 и SO8. Схема включения приведена на рис. 3.85.
I I VDD
SDA SCL
Рис. 3.85. Схема включения PCF8583 в режимах event counter и clock modes
DS1621
Эта микросхема [46] выпускается фирмой Dallas Semiconductors. В оригинальной документации она называется digital thermometer and thermostat. Микросхема в своем составе содержит датчик температуры, позволяющий проводить измерение температуры в диапазоне от -55 до +125 °C со стандартным шагом 0,5 °C либо в в диапазоне от -67 до +257 °F с шагом 0,9 °F. Кроме того, имеется встроенная схема термостата, позволяющая разрабатывать системы для поддержания определенной температуры. Среднее время преобразования сигнала — 1 с.
Расположение выводов микросхемы показано на рис. 3.86, а назначение выводов — в табл. 3.42.
Рис. 3.86. Расположение выводов микросхемы DS1621
Таблица 3.42. Назначение выводов микросхемы
Символ
Вывод
Описание
SDA
1
Линия SDA шины PC
SCL
2
Линия SCL шины IC
Lxit
3
Сигнал термостатирования
GND
4
Общий вывод
А2
5
Адресный вход 2
А1 .
6
Адресный вход 1
АО
7
Адресный вход 0
4)0
8
Питание«+»
Измерение температуры происходит по оригинальной методике, показанной на рис. 3.87.
Рис. 3.87. Блок-схема измерителя температуры
В составе микросхемы предусмотрено два генератора: один с высокой температурной стабильностью, второй — с сильной зависимостью частоты от температуры. Имеется также счетчик, который предварительно устанавливается на отсчет, соответствующий температуре-55 °C. Устройство «сумматор фронтов сигнала» компенсирует нелинейную зависимость частоты от температуры. Значение температуры представляется в 9-разрядном двоичном коде, данные передаются по шине двумя байтами. Вначале передается старший байт (начиная с бита MSB), вторым следует младший байт. Старший бит младшего байта носит название LSB и соответствует градации 0,5 °C. Семь последующих битов младшего байта всегда читаются как нулевые. Вообще-то точность измерения температуры можно по-
Представители микросхем с интерфейсом FC 131 высить, произведя калибровку реального датчика в температурном диапазоне, введя необходимые поправки и применив методику, приведенную ниже. Но некалиброванный датчик нельзя использовать с повышенной точностью измерений.
Значения байтов DATA для некоторых температур приведены в табл. 3.43.
Таблица 3.43
Температура, 'С
Код
+125
01111101 00000000
+25
00011001 00000000
+0,5
00000000 10000000
+0
00000000 00000000
-0.5
11111111 10000000
-25
11100111 00000000
-55
11001001 00000000
Рис. 3.88. Микросхема в режиме термостатаРис. 3.88. Микросхема в режиме термостатаМикросхема может работать в режиме термостатирования. Для этого нужно задать верхнюю (TH) и нижнюю (TL) температуры, естественно, в двоичном коде. Тогда напряжение на выводе Tout будет соответствовать диаграмме, приведенной на рис. 3.88.
Рис. 3.88. Микросхема в режиме термостата
Рис. 3.88. Микросхема в режиме термостата
Т(°С)
При нагревании и превышении уставки TH вырабатывается высокий уровень на выходе Тош и начинается процесс охлаждения. Когда температура станет ниже уставки TL, уровень сигнала на указанном выходе станет низким и вновь начнется нагрев. Реализуется так называемый процесс управления с гистерезисом температуры.
Разберемся теперь, как конфигурировать микросхему и получать данные от нее. На рис. 3.89 показан вид конфигурационного регистра. Он имеет следующие биты:
DONE — бит завершения преобразования температуры в двоичный код. Когда DONE = 1, преобразование завершено;
THF — флаг «высокая температура». Этот флаг устанавливается в «1», когда температура становится равной или больше установки TH. Этот бит останется в положении «1», пока не будет сброшен программно или не будет отключено питание микросхемы;
TLF — флаг «низкая температура». Этот флаг устанавливается в «1», когда температура становится равной или ниже установки ТЕ. Работа с флагом аналогична работе с THF;
NVB — флаг записи данных в энергонезависимую память. Установка в «1» свидетельствует о незавершенности записи ячейки памяти; после окончания записи аппаратно сбрасывается. Типичный цикл записи ячейки 10 мс;
РОЕ — бит полярности выхода Tout. При установке в «1» активный уровень высокий; при установке в «0» активный уровень низкий. Этот бит энергонезависим;
ISHOT — бит управления циклом измерения. При установке в «1» преобразование выполняется однократно при получении соответствующей команды; при установке в «0» преобразование выполняется непрерывно. Этот бит энергонезависим.
DONE
THF
TLF
NVB
1
0
POL
ISHOT
Рис. 3.89. Регистр конфигурации
Обычно микросхема функционирует в режиме непрерывного преобразования. Тем не менее, в режиме пониженного энергопотребления возможно использование однократных преобразований. Также в режиме однократного преобразования сигнал на выводе Tout сохранит свое значение на момент окончания последнего преобразования вне зависимости от текущей температуры окружающей среды.
Конфигурирование и получение данных от микросхемы происходит по стандартному 12С протоколу посредством передачи управляющих команд. Вначале, как и предписывается, master-устройство передает slave-адрес, старшие 4 бита которого содержат комбинацию 1001, а младшие 3 — согласно установке сигналов на выводах А0...А2. Условие «К/W» (нулевой бит) устанавливается в состояние «0» После получения АСК передается <8 битов командного слова, и slave-приемник вновь подтверждает получение выдачей АСК. Затем master-устройство может передавать данные к DS1621. Если необходимо произвести чтение (этот режим используется наиболее часто), после командного слова следует передать условие «повторный Start» и slave-адрес с битом R/W, установленным в «1».
DS1621 использует следующие команды:
AAh — «чтение температуры» — эта команда позволяет прочитать значение текущей температуры. Микросхема формирует 2 информационных байта данных;
Alh — «обращение к ТН» — команда позволяет установить значение верхнего уровня температуры в режиме термостатирования. После выдачи этой команды должно быть передано 2 байта, определяющих значение температуры (условие «R/W» = 0). Значение ТН может быть также прочитано (условие «R/W» = 1);
A2h — «обращение к ТЕ» — команда установки нижнего уровня температуры в режиме термостатирования. Работает аналогично предыдущей команде;
АСЬ — «регистр конфигурации» — при условии установки «R/W» = 0 данные будут записаны в регистр конфигурации; при условии установки «R/W» = 1 осуществляется чтение регистра конфигурации;
A8h — «чтение счетчика» — команда читает состояние счетчика в схеме определения температуры, связанного с генератором с высоким температурным коэффициентом. Допустимо использование команды только в режиме чтения;
A9h — «чтение slope» — команда читает состояние счетчика, связанного с генератором с низким температурным коэффици-
ентом. Допустимо использование команды только в режиме чтения;
EEh — «старт счетчика» — команда начала преобразования температуры. После передачи этой команды не требуется передавать никаких дополнительных данных. В режиме непрерывного преобразования эта команда активизирует счетчик, заставляет его работать непрерывно;
22h — «стоп счетчика» — команда окончания преобразования температуры. После передачи команды не требуется дополнительных данных. В режиме непрерывного преобразования останавливает счетчик; для возобновления требуется передача предыдущей команды.
С помощью команд A8h и A9h можно повысить точность измерения температуры, вычислив ее с помощью формулы
Г°=Тг_-О,25+-^-^,
[A9h]
где T[AAh], T[A9h], T[A8h] — соответствующие значения, считанные по командам.
R/W
R/W
Г)
S
Slave-адрес
0
А
Command
А
Sr
Slave-адрес
0
А
DATA
а
р
д)д)Возможные комбинации управляющих сигналов приведены на рис. 3.90.
д)
д)
б)
S
Slave-адрес
0
А
Command
А
DATA
А
и
R/W
a) S Slave-адрес О А
Command
R/W
MSB
LSB
В)
S
Slave-адрес
0
А
Command
А
DATA1
А
DATA 2
А
R/W
MSB
LSB
S
Slave-адрес
0
А
Command
А
Sr
Slave-адрес
0
А
DATA1
А
DATA 2
А
р
Рис. 3.90. Комбинации управляющих сигналов DS1621
В табл. 3.44 приводятся режимы и содержание управляющих сигналов, с помощью которых возможно осуществить полноценную работу с микросхемой.
Инструкция
Описание ,
Команда
Содержание | данных I
в протоколе
Режим преобразования
температуры
Чтение текущей температуры
Чтение регистра температуры
AAh
Чтение 2 байтов данных
Чтение счетчика
Чтение счетчика с высоким температурным коэффициентом
A8h
Чтение байта данных
Чтение slope
Чтение счетчика с низким температурным коэффициентом
A3h
Чтение байта данных
Старт преобразования темпе- ратуры
-
EEh
Не содержатся
Стоп преобразования температуры
-
22h
Не содержатся
|Режим
6термостата
Обращение к TH
Чтение и запись установки температуры в TH
A1h
Запись данных
Обращение к TL
Чтение и запись установки темпера туры bTL
A2h
Записьданных
Регистр конфигурации
Чтение и запись данных в регистр конфигурации
ACh
Запись данных
Как уже было сказано ранее, датчик DS1621 измеряет температуру с определенной погрешностью. Минимальная погрешность (не более ±0,5 °C) лежит в диапазоне от -15 °C до +105 °C, за его пределами погрешность возрастает. График поведения погрешности датчика приведен на рис. 3.91.
DSie?™46™6 ПрИВСДеМ основные электрические характеристики
Таблица 3.45
Параметр технических условий
Символ
Мин.
Норма
Макс.
Ед изм.
Напряжение питания
VD0
2,7
—
5,5
В
Время преобразования температуры
Ттс
0,4
1,0
С
Частота сигнала SCL в режиме low-speed в режиме fast-speed
^SCL
0
0
-
100
400
кГц
Диапазон рабочих температур
-55
—
+125
•с |
Ток потребления в неактивном режиме
*STBY
-
-
1
мкА |
Микроконтроллерыс интерфейсом 12С
Как Вы уже успели заметить, уважаемый читатель, интерфейс 12С требует мощной программной поддержки, которая немыслима без использования современных однокристальных микроконтроллеров. Являясь идеологом данной шины, фирма Philips выпускает на рынок семейство однокристальных МК структуры MCS-51, поддерживающих аппаратно 12С. Другая известная фирма, имеющая право использовать наименование «12С» в своей продукции — Microchip, — также выпускает ряд однокристальных микроконтроллеров с описываемым интерфейсом.
Существуют микроконтроллеры и других фирм, также аппаратно поддерживающие данный интерфейс. В этой книге мы не будем рассматривать подробно архитектуру микроконтроллеров типов MCS-51 и PIC. Особенности данных архитектур описаны в многочисленной литературе [33—43], имеются материалы и необходимое бесплатное программное обеспечение в сети Интернет. Возможно, данная тема станет предметом последующих книг серии «просто и доступно». А в рамках этой книги мы сделаем блиц-обзор номенклатуры МК, поддерживающих интерфейс 12С и расскажем об общих принципах работы с ним в МК архитектуры MCS-51.
Подробности о работе с 12С в микроконтроллерах архитектуры PIC приведены в фирменной документации [38—40, 42]. Эта документация переведена на русский язык, и при необходимости ее можно получить в сети Интернет по адресу: http://www.microchip.ru.
Фирма Microchip выпускает следующие микроконтроллеры архитектуры PIC, оснащенные интерфейсом 12С:
PIC14000, PIC16C62A, PIC16CR62, PIC16C62B, PIC16C63, PIC16C63A, PIC16CR63, PIC16C64A, PIC16C64A, PIC16CR64, PIC16C65A, PIC16C65B, PIC16CR65, PIC16C66, PIC16C67, PIC16C717, PIC16C72, PIC16C72A, PIC16CR72, PIC16C73A, PIC16C73B, PIC16C73C, PIC16CR73C, PIC16C74A, PIC16C74B, PIC16C74C, PIC16CR74C, PIC16C76, PIC16C76A, PIC16CR76A, PIC16C77, PIC16C77A, PIC16CR77A, PIC16C770, Р1С16С771,
PIC16C773,PIC16C774,PIC16F872,PIC16F873,PIC16F874,
PIC16F876,PIC16F877,PIC16C923,PIC16C924,PIC17C752,
PIC17C756,PIC17C756A, PIC17C762,PIC17C766,PIC18C242,
PIC18С442, PIC18C252, PIC18C452.
Сведения о возможностях приведенных микроконтроллеров вы сможете получить непосредственно с сайта фирмы Microchip в Интернете (http://www.microchip.com) или заглянув в документ [41].
Рассмотрим теперь (чуть более подробно) предложение фирмы Philips. Те читатели, кто хоть немного имели дело с микроконтроллерами, знают, что архитектура MCS-51, предложенная Intel в начале 80-х годов XX века, до сих пор остается популярной и у профессиональных разработчиков, и у радиолюбителей. Микроконтроллеры на ее основе в мире выпускает множество фирм. Широка номенклатура МК по своим возможностям, по оснащенности периферийными устройствами, по конструктивным исполнениям. Опубликовано большое количество литературы (в том числе на русском языке), рассказывающей о приемах работы с MCS-51, о программировании, отладке программ и т. д. Если читатель имеет теоретические знания и практический опыт работы с данным типом МК, то он моментально разберется в работе интерфейса 12С. Но если о существовании таких микроконтроллеров читатель лишь наслышан или узнал о них только из этой книги, необходим начальный «ликбез». Чтобы чтение этой главы не стало бесполезным, рекомендуется вначале ознакомиться, например, с изданием [43] и лишь затем продолжать изучение этой книги. Вполне возможно, что читателя вообще не заинтересуют приемы работы с 12С на аппаратном уровне микроконтроллера. Если это так, можно перелистать несколько страниц и перейти к чтению последней — пятой — главы данной книги, где приводятся примеры практических конструкций. Вообще нужно отметить, что несложные практические конструкции, в которых нет необходимости использовать режим multi-master, вполне обойдутся без специализированного 12С аппаратного интерфейса. Интерфейс master-устройства, как мы увидим далее в практической части, можно без труда организовать и программно. Но если все же читателю понадобятся более сложные шинные структуры, без изучения аппаратных интерфейсов, встроенных в МК, ему едва ли удастся обойтись.
Фирма Philips выпускает несколько разновидностей микроконтроллеров MCS-51, называемых сериями. На рынке представлены следующие серии:
• 8ХС552;
. 8ХС65Х;
. 8ХС751;
8ХС752.
Рассмотрим подробнее общие возможности приведенных серий.
8ХС552 [37]
Это серия однокристальных 8-разрядных микроконтроллеров архитектуры MCS-51, изготавливаемых по технологии КМОП и совместимых по набору инструкций с указанной базовой архитектурой. В настоящее время в серию входят следующие разновидности МК:
83С552 — 8-кбайтовое масочно программируемое ПЗУ (ROM);
80С552 — ROMless версия 83С552;
87С552 — 8-кбайтовое EPROM.
Серия 8ХС552 содержит в своем составе энергонезависимую 8 кбайтов х 8 read-only (только для чтения) память программ и энергозависимую 256 байтов х 8 read/write (чтение/запись) память данных, пять двунаправленных основных 8-разрядных порта ввода-вывода и один дополнительный порт, работающий на ввод, два независимых 16-разрядных счетчика/таймера (идентичных по принципам управления базовому варианту 80С51), дополнительный 16-разряд- ный таймер с режимом захвата и сравнения, 15 векторов прерываний, два приоритета прерываний, 8 каналов ADC, двойной DAC, широтно-импульсный двухканальный модулятор (PWM), два последовательных интерфейса (12С и UART), watchdog (сторожевой) таймер, встроенный тактовый генератор и схему синхронизации. Чтобы обеспечить совместимость со схемами ТТЛ-логики, предусмотрена возможность умощнения портов, устанавливаемая программно, в соответствующем внутреннем регистре.
МК имеет, наряду со стандартным, два низкопотребляющих режима: idle mode и power-down mode. Режим idle mode связан с остановкой CPU (центрального процессорного ядра) при сохранении данных в RAM, работе таймеров, портов, системы прерываний. Режим power-down mode «замораживает» тактовый генератор, отюцочает все возможные функции, порты и т. д., реагируя только на внешнее прерывание.
Микроконтроллер может работать как арифметический процессор. Для этого предусмотрены специальные команды для работы с двоичными и двоично-десятичными (BCD) числами. Число инструкций превышает 100. Распределение по видам инструкций:
однобайтовые — 49;
двухбайтовые — 45;
трехбайтовые — 17.
Тактовая частота— 16 (24) МГц. Время выполнения инструкций:
0,75 (0,5) мс — 58% команд;
1,5 (1,0) мс — 40% команд.
Операции умножения и деления требуют для выполнения 3,0 (2,0) мс.
Имеются также следующие важные особенности:
возможность подключения внешнего ПЗУ программ с объемом до 64 кбайтов;
код защиты ПЗУ от считывания;
дополнительный таймер оснащен четырьмя регистрами захвата и тремя регистрами сравнения;
возможность подключения внешнего ОЗУ данных с объемом 64 кбайтов;
встроенный ADC с разрешением 10 битов и мультиплексированными аналоговыми входами;
встроенный порт 12С с возможностью выполнения функций master и slave;
полнодуплексный UART, совместимый со стандартом 80С51;
двойной широтно-импульсный модулятор;
диапазоны тактовой частоты:
3,5... 16 МГц;
3,S...24 МГц;
3,5...3О МГц;
• диапазоны рабочей температуры:'
83С552хВх: 0 ... +70 °C;
83C552xFx: -40 ... +85 °C (максимальная частота 24 МГц);
83С552хНх: -40 ... +125 °C (максимальная частота 16 МГц);
. корпуса PLCC68 (SOT188-2) и QFP80 (SOT318-2).
На рис. 4.1 приведена блок-схема структуры данной серии микроконтроллеров. Выполнение портом прямой или альтернативной функции задастся соответствующим регистром конфигурации внутри МК.
Го] альтернативная функция порта 0[Г] альтернативная функция порта 1[2] альтернативная функция порта 2[з] альтернативная функция порта 3Го] альтернативная функция порта 0[Г] альтернативная функция порта 1[2] альтернативная функция порта 2[з] альтернативная функция порта 3Q альтернативная функция порта 4Q альтернативная функция порта 4[5] альтернативная функция дополнительного порта (Р5)[5] альтернативная функция дополнительного порта (Р5)
Го] альтернативная функция порта 0
[Г] альтернативная функция порта 1
[2] альтернативная функция порта 2
[з] альтернативная функция порта 3
Го] альтернативная функция порта 0
[Г] альтернативная функция порта 1
[2] альтернативная функция порта 2
[з] альтернативная функция порта 3
Q альтернативная функция порта 4
Q альтернативная функция порта 4
[5] альтернативная функция дополнительного порта (Р5)
[5] альтернативная функция дополнительного порта (Р5)
Рис. 4.1. Блок-схема структуры МК серии 8ХС552
8ХС65Х [36]
Серия 8-разрядных однокристальных микроконтроллеров структуры MCS-51, изготовленных по прогрессивной технологии КМОП с ядром 80С51. Выпускаются следующие разновидности МК этой серии:
80С652 — ROMless версия;
83С652 — 8 кбайтов ROM;
83С654 — 16 кбайтов ROM;
87С652 — 8 кбайтов ОТР;
87С654 — 16 кбайтов ОТР.
Эта серия рекомендуется для применения в различных системах и устройствах, но преимущество отдается разработчиками применениям в системах автоматического управления механизмами. В своем составе МК 87С654 имеет 16 кбайтов х 8 (МК 87С652 — 8 кбайтов х 8) энергонезависимое read-only ПЗУ (память программ). Обе микросхемы имеют 256 байтов х 8 rcad/write энергозависимое ОЗУ данных, четыре 8-битных порта ввода-вывода, два 16-разрядных таймера/счетчика (идентичных таймерам в МК 80С51), два уровня приоритетов прерываний, 12С интерфейс, UART порт, встроенный генератор, схема синхронизации. Для обеспечения работы с ТТЛ-логикой имеется схема умощнения выводов портов. Микроконтроллер может работать как арифметический процессор с двоичной и BCD арифметикой. Набор инструкций: 49 однобайтовых команд, 45 двухбайтовых команд, 17 трехбайтовых команд.
Имеются следующие особенности:
раширяемая до 64 кбайтов память программ и данных;
12С интерфейс, выполняющий функции master- и slave-абонента;
полнодуплексный UART;
два режима пониженного энергопотребления: idle mode и power-down mode;
расширенный температурный диапазон;
тактовая частота 16 и 20 МГц;
На рис. 4.2. приведена блок-схема структуры МК серии 8ХС65Х. Микросхема выпускается в корпусах DIP40 (SOT129-1), PLCC44 (SOT187-2), QFP44 (SOT307-2).
СчетчикиСчетчики22Рис. 4.2. Блок-схема структуры МК серии 8ХС65ХРис. 4.2. Блок-схема структуры МК серии 8ХС65ХТактовая частотаТактовая частотаВнешние прерыванияВнешние прерыванияТО Т1ТО Т1
Счетчики
Счетчики
2
2
Рис. 4.2. Блок-схема структуры МК серии 8ХС65Х
Рис. 4.2. Блок-схема структуры МК серии 8ХС65Х
Тактовая частота
Тактовая частота
Внешние прерывания
Внешние прерывания
ТО Т1
ТО Т1
8ХС751 [34]
Эта серия идеально подойдет для использования в составе малогабаритной техники, имеющей невысокую стоимость. Главное преимущество МК этой серии — сокращенное число внешних выводов. МК изготавливаются по специальной КМОП технологии, разработанной Philips. В своем составе МК этой серии имеют:
83С751 — 2-кбайтовый ROM;
87с751 — 2-кбайтовый EPROM.
В структуре МК предусмотрено энергозависимое read/write ОЗУ емкостью 64 байтов х 8, 19 линий ввода-вывода, счетчик/таймер с ав-
топерезагрузкой, фиксированные приоритеты прерываний, интерфейс 12С, встроенный генератор тактовых импульсов.
Важные особенности микроконтроллера:
базовая архитектура 80С51;
малые размеры корпусов:
24-выводной DIP24 (SOT222-1);
28-выводной PLCC28 (SOT261-3);
24-выводной SSOP24 (SOT340-1);
широкий диапазон частот задающего генератора (3,5... 16 МГц);
потребление менее 11 мА на частоте 12 МГц;
режимы idle mode и power-down mode;
boolean процессор;
КМОП и ТТЛ совместимость;
выходы могут непосредственно быть использованы для зажигания светодиодных индикаторов.
8ХС752 [35]
Эта серия также подойдет для использования в составе малогабаритной техники. Можно сказать, что данная серия является несколько расширенным вариантом серии 8ХС751, рассмотренной нами выше. В составе серии имеются:
83С752 — 2-кбайтовый ROM;
870752 — 2-кбайтовый EPROM.
В структуре МК предусмотрено: 21 линия ввода-вывода, 16-раз- рядный таймер с автоперезагрузкой, фиксированные приоритеты прерываний, порт 12С, встроенный тактовый генератор, пятиканальный мультиплексированный 8-разрядный А/D, 8-разрядный PWM.
Рассмотрим теперь приемы работы и устройства интерфейса 12С в микроконтроллерах 8X0752. Напомним вкратце возможности данного интерфейса, который предусмотрен в составе микроконтроллеров Philips:
двунаправленная передача между slave-устройствами и master-устройствами;
режим multi-master;
обеспечение арбитража между master-устройствами для предотвращения возможных шинных конфликтов и потери данных;
синхронизация по линии SCL, позволяющая совмещать устройства с разными скоростями обмена данными, а также пользоваться механизмом квитирования для приостановления или продолжения передачи данных по шине;
шина 12С может использоваться для целей диагностики внутреннего состояния микроконтроллера.
При работе с шиной 12С выходные сигналы (output latches) выводов портов Р1.6 и Р1.7 должны быть установлены в состояние «1». Шина 12С представлена в микроконтроллерах несколькими регистрами. Регистр статуса (status register) — SISTA (адрес 09h) — отражает состояние шины. Имеются также управляющий регистр (control register) — SICON (адрес 98h), регистр данных (data register) — SI DAT (адрес DAh), регистр slave-адреса (slave-address register) — SI ADR (адрес OBh). Назначение внешних выводов: P1.6/SCL, P1.7/SDA.
В зависимости от состояния бита «R/W» обеспечиваются следующие типовые master-операции обмена по шине:
передача с master-устройства на slave-приемник. Первый байт, переданный master-устройством, является slave-адресом. За ним следует пакет данных, сопровождаемых условием АСК;
передача данных со slave-устройства на master-приемник. Первый бит (slave-адрес) традиционно передается master-устройством и подтверждается АСК от slave-абонента. Затем следуют пакеты данных. Каждый байт подтверждается сигналом АСК. Последний байт сигналом АСК не подтверждается.
Микроконтроллер имеет возможность генерировать условия start, повторный start и stop.
Порт 12С, представленный в данном МК, может работать также и в режиме slave-устройства. В этом случае МК обнаруживает собственный slave-адрес или общий вызов (general call address). Если обнаружено одно из этих условий, генерируется прерывание. Когда микроконтроллер хочет захватить шину как master-устройство, аппаратные средства 12С ожидают освобождение шины . другими
устройствами, работающими на шине. В случае проигрыша (потери) арбитража аппаратные средства 12С немедленно переходят к slave-режиму.
Далее рассмотрим особенности оперирования с шиной 12С в данном МК. Интерфейсные выводы оснащены входными фильтрами, совместимыми по уровням со стандартными сигналами 12С шины. Если входное напряжение на шине менее 1,5 В, это интерпретируется схемой как логический «О», если напряжение более 3,0 В — логическая «1». Входные сигналы синхронизируются с внутренней тактовой частотой (fosc/4). Выходные транзисторы, подключаемые к внешним pull-up резисторам, не имеют защитных диодов, один из выводов которых традиционно подключается к шине питания VDD. Поэтому, во-первых, возможно использование на шине напряжений, отличных от 5 В, а во-вторых, в случае отключения питания микроконтроллера шина все равно останется работоспособной.
Регистр slave-адреса (S1ADR) является специализированным регистром, в который загружается 7-разрядный slave-адрес. Обратите внимание: slave-адрес можно задавать в любой комбинации битов. Для активизации общего вызова (general call address) необходимо установить младший бит регистра S1ADR (именуемый GC).
Компаратор сравнивает полученный 7-разрядный slave-адрес с собственным slave-адресом, содержащимся в регистре SI ADR, а также идентифицирует общий вызов. Если обнаруживается совпадение, устанавливаются биты в регистре статуса и генерируется прерывание.
Регистр данных (S1DAT) является 8-разрядным регистром, в который помещаются данные для передачи или осуществляется прием данных. Сдвиг регистра S1DAT при оперировании осуществляется справа налево: первым передается бит 7 (MSB). Первый принятый бит размещается в MSB.
Генератор сигнала SCL обеспечивает шину тактовым сигналом в случае работы интерфейса в master-режиме передачи или получения данных. Частота SCL сигнала может программироваться и зависит от частоты тактового сигнала МК (fosc) либо от времени переполнения таймера 1. Генератор сигнала SCL автоматически отключается при переходе интерфейса в slave-режим. Тактирующие импульсы имеют
скважность 50%, если не осуществляется синхронизация с другими устройствами.
Блок синхронизации и управления генерирует синхросигналы для обеспечения обработки потока данных. Этот логический блок обеспечивает импульсами сдвига регистр S1DAT, компаратор сравнения slave-адреса, генерирует и обнаруживает состояния Start, Stop, генерирует сигнал АСК, управляет,, переключением master- и slave-режимов, имеет возможность запросить прерывание, контролирует состояние 12С шины.
Регистр управления S1CON используется микроконтроллером для выполнения следующих функций: запуска и перезапуска последовательной передачи, прекращения последовательной передачи, задания скорости передачи (bit rate), распознавания адреса, фиксации АСК.
Декодер статуса преобразует биты регистра состояния в 5-раз- рядный код. Этот код уникален Для каждого состояния шины 12С. Он может использоваться для генерации адресов подпрограмм, с помощью которых осуществляется обработка возникающих ситуаций (выделяется 26 кодов). Код состояния помещается в регистр состояния и остается неизменным, пока флаг состоявшегося прерывания не будет очищен (естественно, при помощи соответствующих команд). Три младших бита регистра статуса S1STA всегда остаются нулями.
Блок-схема интерфейса 12С в микроконтроллерах 8ХС552 приведена на рис. 4.3.
Поговорим теперь подробнее о четырех названных регистрах (S1ADR, S1DAT, SICON, S1STA), с помощью которых осуществляется управление шиной.
Структура регистра slave-адреса показана на рис. 4.4.
Процессор может непосредственно адресовать этот регистр, помещать в него данные и читать их. Содержание этого регистра игнорируется в режиме master, а в режиме slave он обязательно должен быть загружен необходимыми данными.
Структура регистра данных приведена на рис. 4.5.
Процессор может непосредственно адресовать этот регистр, помещать в него данные и читать их, но только тогда, когда не происходит процесса передачи (приема) байта. Данные в регистре S1DAT остаются устойчивыми, пока установлен флаг SI в регистре S1CON.
Рис. 4.3. Общая блок-схема интерфейса 12С в микроконтроллерах серии 8X0552Рис. 4.3. Общая блок-схема интерфейса 12С в микроконтроллерах серии 8X0552Внутренняя шинаВнутренняя шина
Рис. 4.3. Общая блок-схема интерфейса 12С в микроконтроллерах серии 8X0552
Рис. 4.3. Общая блок-схема интерфейса 12С в микроконтроллерах серии 8X0552
Внутренняя шина
Внутренняя шина
76543210
S1ADRS1ADRX| X[ X| X| X[ X| X| GC |
S1ADR
S1ADR
Slave-адресJ
Рис. 4.4. Регистр S1ADR
STOAT | SD7 | SD6 | SD5 | SD4 | SD3 | SD2 | SD1 | SD0
Рис. 4.5. Регистр S1DAT
На рис. 4.6 показана схема фиксации данных в регистре S1DAT. Вместе с ячейкой АСК формируется 9-разрядный сдвиговый регистр, бит АСК задается аппаратно без обращения к центральному процессору. Данные сдвигаются при положительных перепадах син-
Рис. 4.6. Фиксация данных в регистре S1DAT
хронизирующих импульсов, бит АСК передается на шину в течение 9-го синхронизирующего импульса. Имеется также буфер BSD7, данные из которого сдвигаются по отрицательному перепаду синхроимпульса SCL. Когда центральный процессор записывает данные в S1 DAT, бит 7 данных оказывается в ячейке BSD7 и он первым будет передан на шину. После прохождения 9 импульсов SCL данные в регистре S1DAT не изменятся (если осуществлена их передача).
Структура управляющего регистра приведена на рис. 4.7.
S1CON | CR2 |eNSi| STA | STO | SI | АА | CR1 | CRO |
Рис. 4.7. Регистр S1CON
Процессор может непосредственно адресовать этот 8-разрядный регистр по операциям чтения и записи. Регистр имеет несколько битов с уникальными названиями, которые используются в следующих случаях:
бит STO очищается, когда возникает условие Stop; этот бит также очищается, когда ENS = 0;
бит ENS1 — бит разрешения работы 12С шины; когда ENS1 = О, на линиях SDA и SCL присутствуют высокие уровни сигналов, линии не реагируют на внешние сигналы; интерфейс находится в неадресуемом slave-состоянии, выводы Р1.6 и Р1.7 можно использовать как обычные порты ввода-вывода. Когда ENS1 = 1, выходные уровни (port latches) портов Pl.б и Р1.7 должны быть установлены в состояние с высоким уровнем. Бит ENS1 нельзя использовать для временной приостановки обмена по шине 12С,
так как в противном случае (при сбросе ENS1) состояние активизации шины будет потеряно. Для этих целей задействуется флаг АА;
бит ST А — флаг START. Бит STА устанавливается в «1» в случае необходимости перехода порта в master-режим. Аппаратные средства порта проверяют состояние линий SDA и SCL, генерируют условие Start в случае свободной шины. Если шина не свободна, порт ждет появления на шине условия Stop и генерирует условие Start. Если бит STA будет установлен повторно после того, как получено или передано несколько байтов, будет сгенерировано повторное условие Start. Бит STA может также устанавливаться в режиме slave-порта. Состояние STA = 0 — сброс бита STA, отсутствие генерации условия Start, повторения условия Start;
бит STO — флаг STOP. Бит STO устанавливается в «1» в master-режиме, когда по шине 12С необходимо передать условие Stop. Когда условие Stop появилось на шине, бит STO будет очищен. В случае работы в slave-режиме бит STO может быть использован для исправления ошибок. В этом случае условие Stop на шину передано не будет, но аппаратные средства порта 12С станут вести себя так, как будто условие Stop получено, и переключат порт в неадресуемое slave-состояние. Бит STO автоматически очистится. Когда STO = 0, условие Stop не передается;
бит SI устанавливается в случае генерации прерывания от порта 12С. Если SI = 1 и если регистры ESI и ЕА (interrupt enable registers) — регистры прерываний (не рассматриваются нами в данной книге) — соответствующим образом сконфигурированы, будет происходить генерация прерываний от порта 12С;
бит АА — флаг подтверждения АСК. Если бит А А = 1, будет сгенерирован сигнал АСК в случае получения собственного slave-адреса, общего адреса запроса (general call address), при получении байта данных в master-режиме, при получении байта данных в slave-режиме. Если АА = О, АСК не будет сгенерирован;
биты CRO, CR1, CR2 — биты задания тактовой частоты SCL в master-режиме. Состояние битов и значение генерируемой так-
товой частоты приведены в табл. 4.1. В режиме slave-порт 12С автоматически синхронизируется с любой тактовой частотой в пределах 100 кГц.
Таблица 4.1
CR2
CR1
CRO
Тазовая-частота f^, кГц
6 МГц
12 МГц
16 МГц
0
0
0
23
47
63
0
б
1
27
54 -
71
0
1
0
31
63
83
0
1
1
37
75
100
1
0
0
6,25
12,5
17
1
0
1
50
100
1
1
0
100
-
-
1
1
1
0,25 <62,5
0,5 <62,5
0,67 <56
Структура регистра статуса приведена на рис. 4.8.
7654321 О
S1STA | SC4 | SC3 | SC2 | SCI | SCO | 0 | 0 | О [
Рис. 4.8. Регистр S1STA
Регистр статуса доступен только по операции чтения. Три младших бита (2...0) всегда остаются нулевыми, а биты SC4...SC0 содержат код состояния. Особая ситуация, связанная с выдачей кода F8h, будет описана далее.
Порт 12С может обеспечивать четыре основных режима:
Master Transmitter (master-передатчик);
Master Receiver (master-приемник);
Slave Receiver (slave-приемник);
Slave Transmitter (slave-передатчик).
Рассмотрим подробнее эти режимы применительно к описываемому микроконтроллеру.
Master Transmitter. В этом режиме master-устройство передает данные к slave-абонеиту. Прежде чем перевести порт микроконтрол-
лера в режим master transmitter, необходимо провести инициализацию в регистре S1COM согласно рис. 4.9, а также задать комбинацию бит CR0...CR2 в соответствии с предполагаемой скоростью передачи (bit rate). Бит АА может быть либо установлен, либо сброшен. Если бит АА сброшен, порт не сможет при приеме подтвердить собственный slave-адрес или general call address с другого master-устройства, желающего стать «хозяином» шины.,
7 6 5 4 3 2 1 О
S1CON | CR2 IeNSi| STA | STO | SI | АА | CR1 [ CRO |I 11 0 0 0 X1 I
Рис. 4.9. Инициализация режима master-transmitter
Итак, как только шина становится свободной, порт 12С генерирует условие Start, после чего в регистре статуса S1STA устанавливается код 08Н, устанавливается флаг SI. Этот код может быть использован для обработки прерывания. По прерыванию может быть загружен регистр S1DAT slave-адресом и битом направления данных R/W — в данном случае W. Бит SI в регистре S1CON должен быть сброшен, прежде чем будет возобновлена передача. Когда slave-адрес и бит направления были переданы, получен сигнал АСК, флаг SI снова устанавливается. Регистр статуса в данном случае может содержать варианты кодов: 18h, 20Н, 38Н — в случае разрешения работы только в качестве master-абонента или 68h, 78Н, ВОН — в случае разрешения slave-режима (бит АА установлен в «1»). Действия, которые нужно предпринимать при получении данных кодов, приведены в табл. 4.2.
После выполнения условия «повторный Start» генерируется код ЮН, производится загрузка регистра S1DAT slave-адресом с условием R.
Master Receiver. В этом режиме данные поступают от slave-nepe- датчика к master-приемнику. Инициализация производится точно так же, как и в предыдущем случае. После передачи условия Start программа обработки прерывания должна загрузить регистр S1DAT 7-разрядным slave-адресом и битом R направления данных. После этого могут быть продолжены операции обмена. После передачи
slave-адреса, получения сигнала АСК устанавливаются коды в регистре состояния. Их может быть несколько: 40h, 48h, 38h — для режима master или 68h, 78h, BOh — в случае разрешения slave-режима (бит АА = 1). Действия, которые нужно предпринимать при получении кодов, приведены в табл. 4.3.
После выполнения условия «повторный Start» генерируется код 10h, производится загрузка S1DAT slave-адресом с условием W.
Slave Receiver. В этом режиме микроконтроллер становится slave-устройством и получает данные от master-устройства, располагающегося на шине. Инициализация режима показана на рис. 4.10.
7 6 5 4 3 2 1 О
S1CON | CR2 |eNSi| STA | STO | SI | АА | CR1 | CRO II X I 1 О О О 1 I X X I
Рис. 4.10. Инициализация режима slave-receiver
Как уже было сказано ранее, биты CR2...CR0 не воздействуют на скорость приема в slave-режиме. Бит АА должен быть установлен для получения возможности подтверждения собственного slave-адреса или general call address. Не забывайте также загружать в регистр S1ADR собственный slave-адрес микроконтроллера.
После инициализации порта он входит в состояние ожидания получения slave-адреса с битом направления данных W. После получения адреса генерируется прерывание (устанавливается бит SI) и код состояния в регистре статуса. Возможные варианты кодов состояния приводятся в табл. 4.4.
Режим slave может автоматически устанавливаться в случае multi-master организации шины при программном арбитраже (коды 68h и 78h). Обратите внимание: при сброшенном бите АА микроконтроллер может не подтвердить прием собственного slave-адреса или general call address. Таким образом, бит АА можно использовать для временной изоляции порта 12С микроконтроллера от шины.
Slave Transmitter. В этом режиме микроконтроллер в роле slave-устройства передает данные на другое master-устройство. Инициализация производится точно так же, как и в предыдущем примере. После инициализации порт 12С ожидает прием собственного
slave-адреса с битом направления данных R. После получения slave-адреса и подтверждения АСК устанавливается бит SI, код в регистре статуса. Возможные комбинации кодов приведены в табл. 4.5.
Существует несколько шинных состояний, называемых исключениями. Они не могут быть четко отнесены к перечисленным выше режимам.
Код F8h указывает на то, что флаг SI не установлен, а также порт 12С не активизирован. Обычно устанавливается в промежутках между генерацией других кодов.
Код 00h указывает на ошибку, произошедшую во время обмена данными по шине 12С. Обычно ошибки связаны с генерацией условий Start и Stop в непредусмотренное время, например, в течение передачи байта slave-адреса, байта данных или условия АСК. Ошибка может быть также вызвана помехой на шине. При обнаружении ошибки устанавливается бит SI.
Чтобы избавиться от состояния ошибки, нужно предпринять следующие действия: установить бит STO и очистить бит SI. Эти действия переведут порт в неадресуемый slave-режим и освободят линии SDA и SCL.
Аппаратные средства порта могут отследить одновременную генерацию условия «повторный Start» от двух master-абонентов. Причем эти условия могут быть сгенерированы как в режимах master receiver, так и master transmitter. Данная ситуация показана на рис. 4.11.
S
Slave •
! W ' АСК 1
!■1
Deta
АСК
S
Другой master продолжает
Р
S
Slave
т
Л
т
т
(p8h^
(l8h)
(08h}
Другой master генерируетПовтор
повторный "start*
Рис. 4.11. Одновременная генерация условия «повторный START» двумя master-устройствами
Потеря арбитража отражается в регистре S1STA кодами 38h, 68h, BOh.
Правила написания программного обеспечения также приводятся в документе [33]. Мы не будем останавливаться на них, поскольку не
Микроконтроллеры с интерфейсом FC' 155 задавались такой целью. Читатель, пожелавший работать с 12С интерфейсом на уровне программирования микроконтроллеров со специализированными портами, сделает это самостоятельно.
Код S1STA
Состояние шины PC
Состояние регистров■
Дальнейшие действия I
S1DAT
/ S1CON
STA
STO
SI
АА
—
Передача усло- )ия Start
slave + W будет передан; |
08h
Загрузка slave + W
X
0
0
Х
5ит АСК будет получен
Повторная пере-
Загрузка slave+ W
X
0
0
X
Аналогично slave + W будет
10h ,
уча условия
Start
Загрузка slave+ R
X
0
0
X
передан;
Байт данных будет пере-
дан; бит АСК будет полу-|
чен; «повторный Start» бу-
slave+W пере-
Загрузка байта данных S1DAT неактивен
0
1
0
0
0
0
X
X
дет передан; условие Stop будет передано; флаг STO
I 18h
дан, АСК получен
St DAT неактивен
0
1
0
X
будет сброшен; условие
St DAT неактивен
1
1
0
X
Stop, сопровождаемоеI
условием Start, будет пе-|
редано; флаг STO будет|
сброшен I
slave+ W пере-
Загрузка байта данных
0
0
0
X
Аналогично предыдущей
St DAT неактивен
1
0
0
X
I 20h
дан, АСК не по-
St DAT неактивен
0
1
0
X
ситуации!
лучен
S1DAT неактивен
1
1
0
X
28h
Данные из регистра St DAT пере-
Загрузка байта данных S1DAT неактивен
0
1
0
0
0
0
X
X
Аналогично предыдущей
даны, АСК полу-
St DAT неактивен
0
1
0
X
ситуации
чем
St DAT неактивен
1
1
0
X
30h
Данные из регистра St DAT переданы, АСК не по-
Загрузка байта данных
S1DAT неактивен
S1DAT неактивен
0
0
0
0
0
0
X
:
Аналогично предыдущей ситуации
лучен
S1DAT неактивен
1
1
0
X
Шина освобождается, вво-
38h
Арбитраж slave +
S1DAT неактивен
0
0
0
X
дится неадресуемый режим, условие Start будет
R/W байта дан-
St DAT неактивен
1
0
0
X
передано, когда шина 6
ных
освободится |
Код
S1STA
Состояние шины PC
Состояние регистров
S1DAT
S1CON
Дальнейшие действия
STA
STO
SI
АА
08h
Передача условия Start
Загрузка slave+ R
X
0
0
X
slave + R будет передан; бит АСК будет получен
10h
Повторная передача условия Start
Загрузка slave + R
Загрузка slave+W
X
X
0
0
0
X
X
Аналогично slave + W будет передан
38h
Арбитраж, бит АСК не получен
St DAT неактивен
St DAT неактивен
0
1
0
0
0
0
X
X
Шина PC будет освобождена; порт введет slave-режим; условие Start будет передано, когда шина освободится
40h
slave + R передан, АСК получен
St DAT неактивен
S1DAT неактивен
0
0
0
0
0
0
0
1
Байт данных будет получен; бит АСК не будет возвращен, байт данных будет получен; бит АСК будет возвращен
48h
slave + R передан, АСК не получен
S1DAT неактивен St DAT неактивен St DAT неактивен
1
0
1
0
1
1
0
0
X
X
X
Повторное условие Start будет передано; условие Stop будет передано; флаг STO будет сброшен; условие Stop, сопровождаемое условием Start, будет передано; флаг STO будет сброшен
50h
Байт д анных принят, АСК возвращен
Чтение байта данных
Чтение байта данных
0
0
0
0
0
0
0
1
Байт данных будет получен; бит АСК не будет возвращен; байт данных будет получен; бит АСК будет возвращен
58h
Байт данных принят, АСК не возвращен
Чтение байта данных Чтение байта данных Чтение байта данных
1
0
1
0
1
0
0
0
0
X
X
X
Повторное условие Start будет передано; условие Stop будет передано; флаг STO будет сброшен; условие Stop, сопровождаемое условием Start, будет передано; флаг STO будет сброшен
Таблица 4.3
Микроконтроллеры с интерфейсов ,
157
Код S1STA
Состояние шины PC
Состояние регистров
Дальнейшие действия
S1DAT
S1CON
STA
STO
SI
АА
60h
slave+ W принят, ACK возвращен.
S1DAT неактивен St DAT неактивен
X
X
0
0
0
0
0 1
Байт данных будет получен; бит, | АСК не будет возвращен; байт дан-1 ных будет получен, АСК будет воз- I вращен
68h
Арбитраж slave+ R/W master; slave + W принят, ACK возвращен
S1DAT неактивен SI DAT неактивен
X
X
0
0
0
0
0 1
Аналогично предыдущей ситуации
70h
general call address принят, ACK возвращен
St DAT неактивен
St DAT неактивен
X
X
0
0
0
0
0
1
Аналогично предыдущей ситуации
78h
Арбитраж slave + R/W master; general call address принят, ACK возвращен
S1 DAT неактивен
S1DAT неактивен
X
X
0
0
0
0
0
1
Аналогично предыдущей ситуации
80h
slave-адрес получен, данные приняты, АСК возвращен
Чтение данных
Чтение данных
X
X
0
0
0
0
0 1
Аналогично предыдущей ситуации I
88h
slave-адрес получен, данные приняты, АСК не возвращен
Чтение д анных Чтение д анных Чтение данных Чтение д анных
0 0
0 0
0 0
0 0
0 0
0
0
0 1
0
1
Переключение к не адресуемому slave-режиму; не опознается собственный slave или общий адрес вызова; собственный slave-адрес будет распознан; общий вызов будет распознан, если бит 0 St ADR = 1; условие Start будет передано, когд а шина освободится
Таблица 4.4
Окончание таблицы 4.4
Код S1STA
Состояние шины PC
Состояние регистров
Дальнейшие действия
S1DAT
S1CON
STA
STO
SI
АА
90h
general call address принят, АСК возвращен
Чтение данных
Чтение данных
X
X
0
0
0
0
0
1
Байт данных будет получен; биг, АСК не будет возвращен; байт данных будет получен, АСК будет возвращен
98h
general call address принят, АСК не возвращен
Чтение данных Чтение данных Чтение данных Чтение данных
0 0
1 1
0
0
0
0
0
0
0
0
0
1
0
1
Переключение к не адресуемому । slave-режиму; не опознается соб- I ственный slave или общий адрес I вызова; собственный slave-адрес I будет распознан; общий вызов бу- I дет распознан, если бит 0
S1ADR = 1; условие Start будет пе-; редано, когда шина освободится
AOh
Условие Stop и повторное условие Start получено
S1DAT неактивен
S1DAT неактивен
S1DAT неактивен
S1DAT неактивен
0 0
1
1
0
0
0 °
0
0
0
0
0
1
0
1
Аналогично предыдущей ситуации
Таблица 4.5
Код S1STA
Состояние шины PC
Состояние регистров
Дальнейшие действия I
S1DAT
S1CON
STA
STO
SI
АА
A8h
slave + R принят, ACK возвращен
Загрузка данных
Загрузка данных
X
X
0
0
0
0
0
1
Последний байт данных будет передан и бит АСК будет получен
_
BOh
Арбитраж slave + R/W master, slave + R принят, ACK возвращен
Загрузка данных
Загрузка данных
X
X
0
0
0
0
0
1
Аналогично предыдущей ситуации
B8h
Байт данных из S1DAT передан, АСК возвращен
Загрузка данных
Загрузка данных
X
X
0
0
0
0
0
1
Аналогично предыдущей ситуации
Байт данных из St DAT передан, АСК не возвращен
S1 DAT неактивен
S1DAT неактивен
S1DAT неактивен
S1DAT неактивен
0 0
1 1
0
0
0
0
0
0
0
0
0 1
0 1
Переключение к не адресуемому slave-режиму; не опознается собственный slave или общий адрес вызова; собственный slave-адрес будет распознан; общий вызов будет распознан, если бит 0 St ADR = 1; условие Start будет передано, когда шина освободится
I C8h
Прошлый байт из S1 DAT передан (АА=0); АСК возвращен
S1DAT неактивен
S1DAT неактивен
S1DAT неактивен
S1DAT неактивен
0 0
1
1
0
0 0
0
0
0 0
0
0
1
0
1
Аналогично предыдущей ситуации
5. Практические конструкции
В этой завершающей главе автор приводит несколько разработанных им практических конструкций, доступных для повторения в домашних условиях. Необходимо обратить внимание читателя на то, что в составе конструкций используются как описанные в этой книге микросхемы, так и другие, которые остались за рамками книги. Для управления микросхемами по 12С применен отечественный микроконтроллер КР1878ВЕ1, приемы работы с которым описаны, например, в предыдущей книге серии «просто и доступно» [14]. Там же приведены рекомендации по изготовлению программатора.
Все программы «прошивки», упоминаемые в этой книге, можно загрузить с сайта http://vvww.remserv.ru (раздел «Программы»),
Двухдиапазонный УКВ стереотюнер
Идея этого тюнера зародилась, когда из печати уже вышла книга [14]. Нужно сразу отметить, что в приведенной книге автор опубликовал две конструкции стереофонических УКВ-ЧМ тюнера, рассчитанных на работу в западном 88... 108 МГц диапазоне частот. Появление на отечественном рынке микросхемы КР174ХА51 (двухдиапазонный стереофонический декодер) стало толчком к раздумьям относительно возможности создания несложного двухдиапазонного приемника, оснащенного синтезатором частоты и электронным знакосинтезирующим индикатором. Как оказалось, создать такой тюнер можно на основе микросхем ТЕА5710 и TSA6057. Чтобы не вдаваться в подробный рассказ о принципах стереовещания на УКВ, об использовании микросхем радиоприемников, синтезаторов частот, микроконтроллеров, автор рекомендует ознакомиться с книгой [14] или в крайнем случае разыскать документацию [44,45].
Основные параметры микросхемы ТЕА5710 приводятся в табл. 5.1 (измерение проведено при условии fj = 100 МГц, Af; = = 22,5 кГц, fm = 1 кГц, Vp = 3 В).
Микросхема выпускается в корпусе SDIP24 (SOT234-1) с шагом выводов 1,75 мм, что допускает ее установку на печатную плату в отверстия.
Таблица 5.1
Параметр технических условий
Символ
Мин.
Норма
Макс.
Ед. изм.
Напряжение питания
VP
2,0
-
12
В
| Ток потребления в режиме ЧМ
*р
7,3
9,0
11.2
мА
1 Рабочая температура
-15
-
+60
‘с
1 Реальная чувствительность
VM -
1.0
2.0
3,8
мкВ
J Общие гармонические искажения
THD
-
0,8
2,0
%
| Входная емкость
Q
-
3
-
пФ
Ток индикатора точной настройки в положении «настроено»
•end
2
3,5
6
мА
Ток индикатора точной настройки в положении «не настроено»
'indoff
-
0
10
мкА
Главная проблема, связанная с созданием двухдиапазонного тюнера, кроется в недостаточном коэффициенте перекрытия диапазона элементами настройки (варикапами). Проще говоря, не хватает диапазона изменения их емкости для перестройки частоты от 63 до 108 МГц. Решая задачу электронного переключения диапазонов, автор опробовал варианты переключения диапазонов как индуктивных элементов резонансных контуров, так и емкостных. Оба способа оказались работоспособными и имеющими право на существование. Однако вариант с переключением емкостных элементов несколько более прост по практической реализации, поэтому автор на нем и остановился.
Способ переключения показан на рис. 5.1. Как видно из рисунка, в контур на основе не перестраиваемой индуктивности L включены две независимые параллельные ветки емкостей, образованных С1 и VD1, а также С2 и VD2. Причем ветка С2—VD2 управляется напряжением настройки Пнастр плавно, а ветка С1—VD1 имеет только два значения емкости: минимальное и максимальное. Переключение осуществляется транзистором VT1 при помощи напряжения Unep, которое может формировать либо микроконтроллер, либо другой источник (в авторском варианте это сигнал с вывода 8 микросхемы TSA6057). С помощью приведенной схемы коэффициент перекрытия варикапов как бы возрастает в 2 раза.
Рис. 5.1. Электронное переключение диапазонов
Полная схема стереофонического тюнера приведена на рис. 5.2. Рассмотрим ее подробнее. На микросхеме D1 собрана радиоприемная часть, содержащая в своем составе перестраиваемый усилитель радиочастоты (УРЧ), усиливающий сигнал с антенны WA1, гетеродин и усилитель промежуточной частоты с дискриминатором CDA Z3. Контуры перестраиваются варикапами VD1...VD8, причем варикапы VD1, VD2, VD7, VD8 используются для переключения диапазонов, а варикапы VD3...VD6 — для плавной перестройки по диапазону. Индикатор точной настройки HL1 позволяет контролировать не только положение органов настройки, но и уровень входного ВЧ сигнала. Транзистор VT1 — истоковый повторитель, буферирующий сигнал гетеродина. Важно отметить, что в данном приемнике частота гетеродина выше частоты принимаемого сигнала на 10,7 МГц.
Микросхема D2 — стереофонический декодер, предназначенный для работы как в системе с пилот-тоном, так и в системе с полярной модуляцией. Резистор R20 осуществляет настройку частоты внутреннего ГУН. Элементы R13, R14, R15, R16, СЗЗ, С34 предназначены для коррекции предыскажений при декодировании сигналов с полярной модуляцией. В авторской схеме эти элементы взяты из имевшихся в наличии со следующими допусками: резисторы с допуском ±0,25% (типа С2-29), конденсаторы — с допуском ±0,5% (типа К71-7). Вообще необходимую постоянную времени коррекции мож-
Рис. 5.2. Двухдиапазонный стереофонический тюнер. Схема электрическая принципиальная
но получить и при других значениях номиналов элементов. Важно лишь выдержать следующее соотношение:
тНч = (R13 + R14 + R15 + R16) • (СЗЗ + С34) = 1,0186 мс±1 %.
Суммарное сопротивление (R13 + R14 + R15 + R16) должно находиться в диапазоне 20...50 кОм. Обращаю внимание читателя на то, что отклонение постоянной времени от указанной величины более чем на 2% ведет к ухудшению разделения стереоканалов.
Индикатор точной настройки HL2 управляется ключом на биполярном транзисторе VT3. Цепи R17, С35 и R22, С37 — цепи демпфа- зиса (коррекции предыскажений).
Микросхема D3 — синтезатор частоты. На его вход поступают колебания частоты гетеродина (вывод 5), а выходным сигналом является напряжение настройки для варикапов (вывод 13). Особенностью включения микросхемы является использование вывода 8 (BS) для переключения диапазонов. Сигнал с этого вывода управляет ключом на транзисторе VT2.
Микросхема D4 — микроконтроллер, осуществляющий управление синтезатором частоты и жидкокристаллическим индикатором D6. Особенностей этот узел не имеет. Сдвиговый регистр D5 используется как вспомогательный для обеспечения работы индикатора D6 [14].
Несколько слов о питании узлов тюнера. Схема питания построена на элементах D7, D8, D9, причем стабилизатор D7 обеспечивает напряжение настройки (+12 В), стабилизатор D8 питает аналоговую часть, а стабилизатор D9 -— цифровую. Каждая микросхема снабжена местным блокировочным конденсатором. Такая схема позволяет исключить наводки от работы цифровой части на малосигнальные аналоговые каскады.
На рис. 5.3 приведена печатная плата стереотюнера, на рис. 5.4 — сборочный чертеж. Плата изготовлена из одностороннего фольгированного стеклотекстолита. Пунктиром обозначены границы проводящего экрана. Его нужно изготовить из тонкой жести, меди, латуни. Экран дополнительно защищает радиоприемную часть от электромагнитных наводок.
В конструкции тюнера можно применить любые малогабаритные элементы, например конденсаторы К10-17, КМ-5, КД-2, К50-35,
К50-68; резисторы С2-29, С2-33, МЛТ. Катушки L1 и L2 намотаны виток к витку на гладких каркасах диаметром 5 мм. Количество витков: L1 — 4 витка, L2 — 3 витка. Провод ПЭВ-2, ПЭТВ или аналогичный диаметром 0,3.„О,45 мм. Катушки имеют латунные подстро- ечники длиной 5.„6 мм с резьбой М4.
При сборке рекомендуется сначала установить только микросхемы D7, D8, D9. Включив питание, проверить наличие напряжения +12 В на плюсовом выводе конденсатора С11, +5 В на тех же выводах конденсаторов С15 и С2. После этого установить микросхему D1, подключить внешний УНЧ к выводу 13 микросхемы, а также антенну. Припаять временный переменный резистор сопротивлением 10...22 кОм, подключив его между напряжением +12 В и общим проводом, а вывод движка — к верхнему (по схеме) выводу конденсатора С8. Базу транзистора VT2 подключить перемычкой к общему про- Ьоду. После включения питания установить на движке переменного резистора напряжение 1,2...2,1 В (относительно общего провода). Вращением подстроечников в катушках L1 и L2 добиться приема самой «нижней» станции в FM диапазоне (в Петербурге это частота 88,00 МГц). Уровень сигнала контролировать по светодиоду HL1, добившись его максимального свечения. Можно также подключить параллельно светодиоду мультиметр, включенный на измерение напряжения, и добиться максимальных показаний. Благодаря применению готовых фильтров Z1...Z3 настраивать тракт ПЧ и частотный детектор не нужно.
После проведенных операций можно перестроиться по диапазону вращением резистора и проверить прием самой «верхней» станции диапазона FM (в Петербурге — 108,00 МГц). Сняв перемычку между базой транзистора VT2 и общим проводом, проверить перестройку по отечественному ЧМ диапазону. Отечественный диапазон имеет меньшую протяженность, чем диапазон FM, следовательно, он с запасом укладывается в отведенные границы перестройки.
Восстановить перемычку у транзистора VT2 и смонтировать микросхему D2. Настроиться на станцию в диапазоне FM и вращением резистора R20 зажечь светодиод HL2. Звучание, должно стать стереофоническим. Теперь можно снять перемычки с транзистора VT2 и настроиться на станцию в диапазоне ЧМ. Звучание (если, конечно, станция вещает в стереорежиме) должно быть стереофониче-
Рис.- 5.4. Сборочный чертеж
ским, светодиод HL2 должен сигнализировать об этом. Настройка аналоговой части закончена. Временный переменный резистор можно отпаять.
Устанавливаем микросхемы D4, D5 и индикатор D6. Естественно, микроконтроллер должен быть к этому моменту «прошит» программой. Его желательно установить на «панельку». Имена файлов TermoOSOLsav — для 8-символьного индикатора, termo_160Lsav— для 16-символьного индикатора.
После включения питания на индикаторе должно появиться значение частоты, установленное в первой ячейке ЭСППЗУ. Кнопками S1 («запись»), S2 («плавно/фиксир.»), S3 («-») и S4 («+») можно перемещаться по диапазону, переходить из режима плавной настройки в фиксированный режим и обратно, записывать в ЭСППЗУ фиксированные настройки (30 позиций). Занесение в память плавных настроек необходимо осуществлять по следующей схеме: вначале происходит настройка на желаемую частоту приема в режиме плавной настройки (номер плавной настройки между символами «>» и «<» не индицируется), затем устанавливается номер плавной настройки в режиме «фиксированные» и нажимается кнопка «запись». После отпускания кнопки «запись» настройка обновляется, а ее значение сохраняется в энергонезависимой памяти МК. При переходе с диапазона на диапазон в левой части индикатора будет появляться значок «ЧМ» или «ЕМ».
В самом конце нужно впаять микросхему D3 и убедиться, что тюнер перестраивается по диапазону кнопками S3 и S4. Установите плату в подходящий корпус, закрепляйте органы управления и индикации. Тюнер готов к эксплуатации.
Электронный термометр
Не думайте, что электронный термометр — бесполезная вещь в радиолюбительской лаборатории. Он может пригодиться, когда требуется оценить реальный тепловой режим силовых приборов, но не «на глазок», не пальцем, а в конкретных цифрах. Можно также проследить динамику прогрева силовых элементов и, исходя из этого, принять решение о дополнительном охлаждении.
Схема этого полезного и несложного прибора приведена на рис. 5.5. Как видно из схемы, часть, относящаяся к управлению датчиком температуры (D1), выполнена по схеме, закомой нам по предыдущей конструкции.
Рис. 5.5. Электронный термометр. Схема электрическая принципиальная
Однако «прошивка» микросхемы D2 совершенно другая. Теперь вы видите, насколько удобны программируемые средства! Датчик температуры выполнен на микросхеме DS1621. Установлен он на отдельной печатной плате (рис. 5.8, 5.9) для возможности размещения в труднодоступном месте. С управляющей платой датчик соединен многожильным проводом в общей изоляции длиной около 3 м. Конструкция датчика — произвольная. Важно лишь обеспечить его термостойкость на морозе и при высоких температурах.
Рис. 5.6. Печатная плата
Рис. 5.7. Сборочный чертеж
17.5
Рис. 5.8. Датчик. Печатная плата
Для питания прибора нужно собрать внешний источник питания на 5 В, например, на основе микросхемы КР142ЕН5А. Программное обеспечение можно также получить по электронной почте.
После включения питания на индикаторе должны появиться символы в трех позициях до запятой и одна — после запятой. Знак «+» не индицируется. Обновление информации происходит регулярно через 1,5 секунды. Если предполагается использовать 16-символьный индикатор (типа DV-16100, WM-C1601, WM-C0802), то в микроконтроллер нужно «прошить» программу thermo_1601.sav, однако для первых двух названных индикаторов 8 правых символов останутся свободными. Рекомендуется для данной конструкции приобрести 8-символьный индикатор, например, WM-0801 фирмы Wintek и «прошить» в МК программу thermo_0801 .sav.
Обращаю ваше внимание на то, что данная программа ограничена по возможностям, но индицирует температуру с точностью 0,5 градуса Цельсия. Если читателя устроит данный вариант, можно отказаться от установки на лицевой панели кнопок S1...S4. Но пытливому читателю, желающему разработать прибор по своему вкусу (например, управляемый термометр-термостат с памятью на несколько
отсчетов температуры), рекомендуется установить кнопки и несколько расширить возможности программного обеспечения.
Регулятор громкости и тембра
Основой этого регулятора служит оказавшаяся в распоряжении автора микросхема TDA8425 (рис. 5.10). Эта микросхема практически не отличается от описанной в главе 3 TDA8424, разве что имеет в своем составе два переключаемых входа и режим «расширенная стереобаза». Схема электронного регулятора представлена на рис. 5.10.
Кнопка S1 («запись») заносит настройку в память EEPROM МК, и она сохраняется после выключения питания неизменной. При повторном включении эта настройка всегда будет восстановлена.
Кнопка S2 осуществляет выбор настройки (VOLUME, BASS, TREBLE, BALANCE, SELECT, CHOICE, MUTE):
VOLUME — громкость (0...34);
BASS — регулировка тембра НЧ (0...10);
TREBLE — регулировка тембра ВЧ (0...9);
BALANCE — стереобаланс;
SELECT — выбор источника сигнала;
CHOICE — выбор режима воспроизведения звука;
MUTE -— отключение звука.
Кнопками S3 и S4 переключаются подрежимы в настройках SELECT, CHOICE, MUTE и уровни в настройках VOLUME, BASS, TREBLE, BALANCE. Особое внимание следует уделить функции «стереобаланс». При отсутствии стереобаланса индицируется символ «»оо«», смещение (уменьшение громкости) левого канала отражается как «LEFT«», смещение правого канала — как «»RIGH». Уровень смещения непосредственно не отражается на индикаторной панели, но его легко можно оценить на слух.
Печатная плата и сборочный чертеж приведены на рис. 5.11 и 5.12. Настраивать данную конструкцию не нужно. После включения питания она должна сразу проявить признаки жизни. Файлы для прошивки в МК — tembr_i2c.sav и tembr_i2c.eep. Первый файл «прошивается» в память команд, второй — в EEPROM данных (в этом файле хранятся первоначальные настройки).
173173
173
173
С111**258
питаниепитаниеВходН1ВходН1„ 1м* X 25ВУ—Ikсз1мкх25В-е—Ik—„ 1м* X 25ВУ—Ikсз1мкх25В-е—Ik—С14 0,022мкС14 0,022мкD2 78L05D2 78L05560056001мкх25В1мкх25ВI 0.022м*I 0.022м*100мк100мк, х 258-О—Ik——, х 258-О—Ik——С21С21ЗЗОмкГнЗЗОмкГнКД522БКД522Б.100*.100*RB510RB510R9 510R9 510R10510R10510R11 510R11 510С18 68С18 68С15 0.022м*С15 0.022м*VD2 КС133А (1N472B)VD2 КС133А (1N472B)С122.2м* х 25В |_ 1С13 L2,2м* * 25В Выход L -N—|ЬС122.2м* х 25В |_ 1С13 L2,2м* * 25В Выход L -N—|Ь^“-^“-С11НН- е 6600С11НН- е 6600нь С18 100м* 258нь С18 100м* 258D1 TDA825D3 КР1678ВЕ1DS DV-16100NRT/R/FLBYD1 TDA825D3 КР1678ВЕ1DS DV-16100NRT/R/FLBY0,022мк I0,022мк IМК561ИР2МК561ИР2D «ВD «В♦58<-подсветка .♦58<-подсветка .
питание
питание
ВходН1
ВходН1
„ 1м* X 25В
У—Ikсз1мкх25В
-е—Ik—
„ 1м* X 25В
У—Ikсз1мкх25В
-е—Ik—
С14 0,022мк
С14 0,022мк
D2 78L05
D2 78L05
5600
5600
1мкх25В
1мкх25В
I 0.022м*
I 0.022м*
100мк
100мк
, х 258
-О—Ik——
, х 258
-О—Ik——
С21
С21
ЗЗОмкГн
ЗЗОмкГн
КД522Б
КД522Б
.100*
.100*
RB510
RB510
R9 510
R9 510
R10510
R10510
R11 510
R11 510
С18 68
С18 68
С15 0.022м*
С15 0.022м*
VD2 КС133А (1N472B)
VD2 КС133А (1N472B)
С12
2.2м* х 25В |_ 1
С13 L
2,2м* * 25В Выход L -N—|Ь
С12
2.2м* х 25В |_ 1
С13 L
2,2м* * 25В Выход L -N—|Ь
^“-
^“-
С11НН- е 6600
С11НН- е 6600
нь С18 100м* 258
нь С18 100м* 258
D1 TDA825
D3 КР1678ВЕ1
DS DV-16100NRT/R/FLBY
D1 TDA825
D3 КР1678ВЕ1
DS DV-16100NRT/R/FLBY
0,022мк I
0,022мк I
МК561ИР2
МК561ИР2
D «В
D «В
♦58<-
подсветка .
♦58<-
подсветка .
Рис. 5.10. Регулятор громкости и тембра. Схема электрическая принципиальная
Рис. 5.11. Печатная плата
so*so*Рис. 5.12. Сборочный чертежРис. 5.12. Сборочный чертеж
so*
so*
Рис. 5.12. Сборочный чертеж
Рис. 5.12. Сборочный чертеж
Цифровое табло с интерфейсом 12С
Буквенно-цифровые жидкокристаллические (ЖКИ) индикаторы типа DV-16100, широко используемые в конструкциях, описанной в этой и других книгах, к сожалению, имеют существенный недостаток — отсутствие последовательного интерфейса управления. Для управления данными индикаторами'необходимо иметь 8 линий данных (DB7...DB0) и три линии управляющих сигналов (RS, R/W, Е). Большинство микроконтроллеров, применяемых в радиолюбительских конструкциях, имеют ограниченное, количество портов вво- да/вывода. Найти же готовый индикатор с последовательным интерфейсом —- задача непростая, а во многих случаях еще и дорогостоящая. Как быть?
Автор сделал попытку в какой-то мере решить эту проблему введением последовательного сдвигового регистра, уменьшившего количество линий до 4-х, однако усложнилось программное обеспечение, обслуживающее индикатор. Идеальным же вариантом можно считать индикатор, оснащенный интерфейсом 12С. Тогда индикатор становится обычным slave-устройством с принадлежащим ему slave-адресом и стандартизованным протоколом передачи данных. Потратив дополнительно примерно $4, можно получить вполне работоспособный индикатор, оснащенный 12С. Обращаю ваше внимание на то, что обычный индикатор обладает двунаправленной шиной данных, а операция чтения используется для контроля занятости дисплея и для считывания записанных в оперативную память данных. Автор не ставил задачи осуществлять чтение этой информации, поскольку данная процедура усложнила бы программное обеспечение без особого выигрыша в преимуществах. Поэтому интерфейс 12С здесь работает только в режиме записи данных и управляющих команд.
Интерфейс выполнен на основе микроконтроллера КР1878ВЕ1 (рис. 5.13). Старшая часть slave-адреса задана как 1010, младшие три бита задаются джамперами jl, j2, J3. Причем джампер J1 задает бит Al, j2 — бит А2, j3 — бит АЗ. Бит R/W должен всегда устанавливаться в «0». Индикатор имеет следующие возможности интерфейса:
опознавание slave-адреса с выдачей сигнала АСК в случае совпадения переданного и заданного адресов;
Рис. 5.13. Буквенно-цифровой индикатор с интерфейсом 12С. Схема принципиальная
Практические конструкции
177
дится графический символ. Управление индикатором осуществляется при помощи флагов, назначение которых показано в табл. 5.2.
Флаг
Назначение\
I/O
Смешение счетчика адреса («0» - уменьшение, «1»- увеличение)
5
Сдвиг содержимого экрана («0» - сдвиг не происходит, «1» - автоматический сдвиг после записи в DDRAM очередного кода в направлении, определяемом флагом 1/D - «0» - вправо, «1»- влево)
S/C
Сдвиг содержимого экрана без изменения содержимого DDRAM («0» - сдвигается курсор, «1»- сдвигается экран)1
КД
Сдвиг экрана или курсора («0» - вправо, «1» - влево)|
од
Разрядность шины данных («0» - 4 разряда, «1»- 8 разрядов)I
N
Развертка изображения («0» - одна строка, «1» - две строки)]
F
Размер матрицы символа («0» - 5x8, «1»- 5x10)
D
Включение/выключение («0» — изображение отсутствует, «1» — включено)
С
Подчеркивание символов («0» - нет, «1»- есть)
В —
Мерцание курсора («0» - нет, «1»- мерцание)|
Таблица 5.2. Флаги управления
выдача сигнала NOACK в случае несовпадения slave-адресов, дальнейшее ожидание условия stop;
задание вторым байтом субадреса (по субадресу 00h осуществляется запись команды, по субадресу 01 h—запись символа в видеопамять) и выдача сигнала АСК при опознавании субадреса;
выдача сигнала NOACK в случае несовпадения субадресов и ожидание условия stop;
передача данных/команд с обязательной выдачей сигнала АСК;
в момент установки линии SCL в высокий уровень прием информации может быть прерван заданием условия stop (линия SDA устанавливается в высокий уровень).
В своем составе стандартный индикатор содержит регистр данных (DR), регистр команд (IR), видеопамять (DDRAM), ОЗУ знакогенератора пользователя (CGRAM), счетчик адреса памяти (АС), флаг занятости индикатора. Интерфейс для внешнего управления содержит 8 линий данных (DB7...DB0), сигнал «запись/чтение» (R/W), сигнал «команда/данные» (RS), строб (Е). Если RS = 0, данные интерпретируются как команда управления ЖКИ, если RS = Г. выво-
Команды управления дисплеем приведены в табл. 5.3, таблица символов показана на рис. 5.14.
Таблица 5.3. Управляющие комбинации битов регистра IR .
I DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
Назначение команды
0
0
0
0
0
0
0
1
Очистка экрана, курсор в начало
0
0
0
0
0
0
1
-
Возврат курсора в первую позицию
0
0
0
0
0
1
1/D
S
Установка режима ввода
0
0
0
0
1
D
С
в
Режим отображения символов
0
0
0
1
S/C
КД
-
-
Направление сдвига экрана
0
0
1
DL
N
F
-
-
Конфигурация дисплея
0
1
АС5
АС4
АСЗ
АС2
АС1
АСО
Адрес знакогенератора пользователя .
1
АС6
АС5
АС4
АСЗ
АС2
АС1
АСО
Адрес встроенного ОЗУ (однострочный режим от 00h до 4Fh; двухстрочный режим от 00h до 27h и or 40h до 67h)
О 1 2 3 4 5 6 7 8 9 А В С D Е FО 1 2 3 4 5 6 7 8 9 А В С D Е FРис. 5.16. Печатная платаРис. 5.16. Печатная плата
О 1 2 3 4 5 6 7 8 9 А В С D Е F
О 1 2 3 4 5 6 7 8 9 А В С D Е F
Рис. 5.16. Печатная плата
Рис. 5.16. Печатная плата
Рабочая программа индикатора (ind I2C.sav) прошивается в МК до установки на печатную плату. Рекомендуется устанавливать МК на контактную панельку, чтобы можно было обновлять программное обеспечение. Печатная плата изображена на рис. 5.16, сборочный чертеж — на рис. 5.17.
S1010АЗА2А10АСК0000000АСКS1010АЗА2А10АСК0000000АСКАСК РАСК РРис. 5.17. Сборочный чертежРис. 5.17. Сборочный чертеж
S
1
0
1
0
АЗ
А2
А1
0
АСК
0
0
0
0
0
0
0
АСК
S
1
0
1
0
АЗ
А2
А1
0
АСК
0
0
0
0
0
0
0
АСК
АСК Р
АСК Р
Рис. 5.17. Сборочный чертеж
Рис. 5.17. Сборочный чертеж
Рис. 5.14. Знакогенератор ЖКИ (русифицированный)
Обращаю внимание читателя на то, что бит D/L в команде конфигурации может принимать любое значение, так как управление дисплеем осуществляется побайтово, внутренняя же связь контроллера с дисплеем организована посредством 4-разрядной шины (DB7...DB4). Формат сообщений представлен на рис. 5.15. Важное замечание: блоки DATA могут следовать один за другим, например, в случае передачи группы команд или в автоинкрементном режиме вывода символов.
Общий вызов
Рис. 5.15. Формат данных, передаваемых по шине 12С для ЖКИ
Печатная плата выполнена по размеру, совпадающему с размером штатной печатной платы индикатора, с совпадением крепежных отверстий. При монтаже рекомендуется разнести обе платы, подложив между ними диэлектрические шайбы толщиной 5-6 мм. Регулировка контрастности осуществляется резистором R9. Pull-up резисторы R7 и R8 можно подключить к линиям SDA и SCL с помощью джамперов j4 и j5, но можно использовать и внешние резисторы. Помните также, что данная конструкция только частично эмулирует интерфейс 12С (программно), поэтому напряжение питания линий SDA и SCL должно быть в пределах 4,8...5,1 В.
На этом, друзья, позвольте завершить наше первое знакомство с шиной 12С. Автор надеется, что теперь, взяв документацию на любую микросхему этого типа, вы сможете без труда разобраться с тем, как ею управлять.
О чем еще хотелось бы рассказать в следующих книгах серии ■ «Просто и доступно»? Во-первых, можно продолжить разговор о силовой импульсной технике, начатый в первой книге. Во-вторых, возможно познакомиться с начальными сведениями о широко известных, но тем не менее остающихся загадочными микроконтроллерами серии MCS-51, о приемах работы с ними, о программном обеспечении... Но, может быть, читатели сами предложат автору темы, которые им интересны. А автор постарается, чтобы рассказ излагался ПРОСТО И ДОСТУПНО!
Приложение.
Описание программного обеспеченияэлектронного термометра
При работе электронного термометра его особенностьяю является работа линии SDA микроконтроллера как на вывод, так и на ввод. Соответственно возникает необходимость оперативного переключения портов МК в процессе выполнения программы.
Точка начала программы —- метка Start. После отработки прерывания по начальному пуску происходит однократное конфигурирование портов, перевод микросхемы датчика в режим автопреобразования, запуск схемы преобразования температуры. После этого программа входит в бесконечный цикл, заключенный между меткой zikl и командой jmp zikl. Конфигурирование портов на ввод и на вывод осуществляется с помощью процедур kon wr и kon re. Осуществляется эта процедура очень просто — по адресу 18h в режиме автоинкремента задаются соответсвующие функции выводов. Далее происходит возврат в основную программу и продолжается ее выполнение.
Протокол шины 12С разложен на элементарные функции, также реализованные с помощью процедур:
stamic — формирование условия start;
sto mic — формирование условия stop;
byte m w — вывод в порт байта (8 бит);
byte m r — чтение из порта байта;
- ack wr — выдача АСК;
noack wr — выдача NOACK при чтении.
Оперируя этими элементарными функциями, можно составлять протоколы любой сложности.
Важной процедурой является процедура вывода на индикаторную панель LCD. Поскольку несколько усложнен интерфейс сопряжения (введен буферный регистр), вспомогательная процедура regist «набивает» данные в регистр. Стробирование и направление «коман- да/данные» осуществляются процедурами fik ir и fikdr. Сопряжение с разными типами индикаторов реализуется также предельно
просто: команда перевода курсора дисплея в 40-ю позицию подается либо после вывода 4-х символов, либо вообще не подается.
Процедура dsat переводит двоичное число, получаемое от датчика в десятичное, готовое в выводу на индикаторную панель.
Все временные интервалы задаются таймером, конфигурируемым процедурой timer.
;================= электронный термометр ========================;================= электронный термометр ========================jmp start nop jmp start rtinop nop nop nop nop nop nop nop nop nop nop nop start:Idr ea,40hIdr #b,68hIdr ec,18hIdr #d,00hmovl Wc1,00011011b movl %c1,00000000b movl Me1,00000000b movl Mc1,00000000b movl Me1,00000000b movl Mc1,00000000b movl Ma5,01100001b movl Ma6,10101000b jsr timermovl Ma5,00000000b movl Ma6,00000011b push #cIdr #c,50h jsr kon_wr jsr sta_mic movl Mc5,10010000b jsr byte_m_w movl Mc5,0ach jsr byte_m_w movl %c5,02h jsr byte_m_wjmp start nop jmp start rtinop nop nop nop nop nop nop nop nop nop nop nop start:Idr ea,40hIdr #b,68hIdr ec,18hIdr #d,00hmovl Wc1,00011011b movl %c1,00000000b movl Me1,00000000b movl Mc1,00000000b movl Me1,00000000b movl Mc1,00000000b movl Ma5,01100001b movl Ma6,10101000b jsr timermovl Ma5,00000000b movl Ma6,00000011b push #cIdr #c,50h jsr kon_wr jsr sta_mic movl Mc5,10010000b jsr byte_m_w movl Mc5,0ach jsr byte_m_w movl %c5,02h jsr byte_m_w;начальный пускпереполнение стека команд или данных;интервальный таймер (возврат из прерывания);начальный пускпереполнение стека команд или данных;интервальный таймер (возврат из прерывания);точка начала программы ;основной рабочий регистр ; регистр перевода 2х в Юх установка адреса сегмента конфигурации портов А и В ;регистр портов и таймера;автоинкремент конфигурации порта А ;тип вывода - вход отключение р-канального транзистора Отключение нагрузочного резистора Оапрецение прерывания от положительного фронта ;запрещение прерывания от отрицательного фронта отарший байт интерв. таймера 0,5 сек ;младший байт интерв. таймера 0,5 сек ;задержка 0,5 сек отарший байт интервального таймера ; младший байт интервального таймера;точка начала программы ;основной рабочий регистр ; регистр перевода 2х в Юх установка адреса сегмента конфигурации портов А и В ;регистр портов и таймера;автоинкремент конфигурации порта А ;тип вывода - вход отключение р-канального транзистора Отключение нагрузочного резистора Оапрецение прерывания от положительного фронта ;запрещение прерывания от отрицательного фронта отарший байт интерв. таймера 0,5 сек ;младший байт интерв. таймера 0,5 сек ;задержка 0,5 сек отарший байт интервального таймера ; младший байт интервального таймера;конфигурация на запись; условие START;команда 'SLAVE+W»Оывод в порт;команда «конфигурирование» оывод в порт; "автопреобразование''ОЫВОД в порт;конфигурация на запись; условие START;команда 'SLAVE+W»Оывод в порт;команда «конфигурирование» оывод в порт; "автопреобразование''ОЫВОД в порт
;================= электронный термометр ========================
;================= электронный термометр ========================
jmp start nop jmp start rti
nop nop nop nop nop nop nop nop nop nop nop nop start:
Idr ea,40h
Idr #b,68h
Idr ec,18h
Idr #d,00h
movl Wc1,00011011b movl %c1,00000000b movl Me1,00000000b movl Mc1,00000000b movl Me1,00000000b movl Mc1,00000000b movl Ma5,01100001b movl Ma6,10101000b jsr timer
movl Ma5,00000000b movl Ma6,00000011b push #c
Idr #c,50h jsr kon_wr jsr sta_mic movl Mc5,10010000b jsr byte_m_w movl Mc5,0ach jsr byte_m_w movl %c5,02h jsr byte_m_w
jmp start nop jmp start rti
nop nop nop nop nop nop nop nop nop nop nop nop start:
Idr ea,40h
Idr #b,68h
Idr ec,18h
Idr #d,00h
movl Wc1,00011011b movl %c1,00000000b movl Me1,00000000b movl Mc1,00000000b movl Me1,00000000b movl Mc1,00000000b movl Ma5,01100001b movl Ma6,10101000b jsr timer
movl Ma5,00000000b movl Ma6,00000011b push #c
Idr #c,50h jsr kon_wr jsr sta_mic movl Mc5,10010000b jsr byte_m_w movl Mc5,0ach jsr byte_m_w movl %c5,02h jsr byte_m_w
;начальный пуск
переполнение стека команд или данных
;интервальный таймер (возврат из прерывания)
;начальный пуск
переполнение стека команд или данных
;интервальный таймер (возврат из прерывания)
;точка начала программы ;основной рабочий регистр ; регистр перевода 2х в Юх установка адреса сегмента конфигурации портов А и В ;регистр портов и таймера
;автоинкремент конфигурации порта А ;тип вывода - вход отключение р-канального транзистора Отключение нагрузочного резистора Оапрецение прерывания от положительного фронта ;запрещение прерывания от отрицательного фронта отарший байт интерв. таймера 0,5 сек ;младший байт интерв. таймера 0,5 сек ;задержка 0,5 сек отарший байт интервального таймера ; младший байт интервального таймера
;точка начала программы ;основной рабочий регистр ; регистр перевода 2х в Юх установка адреса сегмента конфигурации портов А и В ;регистр портов и таймера
;автоинкремент конфигурации порта А ;тип вывода - вход отключение р-канального транзистора Отключение нагрузочного резистора Оапрецение прерывания от положительного фронта ;запрещение прерывания от отрицательного фронта отарший байт интерв. таймера 0,5 сек ;младший байт интерв. таймера 0,5 сек ;задержка 0,5 сек отарший байт интервального таймера ; младший байт интервального таймера
;конфигурация на запись
; условие START
;команда 'SLAVE+W»
Оывод в порт
;команда «конфигурирование» оывод в порт
; "автопреобразование''
ОЫВОД в порт
;конфигурация на запись
; условие START
;команда 'SLAVE+W»
Оывод в порт
;команда «конфигурирование» оывод в порт
; "автопреобразование''
ОЫВОД в порт
jsr sta_mic
movl %с5,10010000b
;повторный START,,
;команда «SLAVE+W»
zikl:
jsr byte_m_w movl %c5,0eeh jsr byte_m_w jsr sto_mic pop #c
movl %a5,00000000b movl %a6.00000011b
;вывод в порт_
;команда «старт»; - з ■«
; вывод в порт . .,
; условие STOP
;вход в бесконечный цикл вывода ;старший байт интервального таймера ; младший байт интервального таймера
push #c
Idr #c,50h jsr kon_wr jsr sta_mic movl *c5,10010000b
конфигурация на запись ; условие START
;команда «SLAVE+W»
jsr byte_m_w movl %c5,Oaah jsr byte_m_w jsr sta_mic movl %c5,10010001b jsr byte_m_w jsr kon_re push #c
Idr #c,58h jsr byte_m_r mov %a0,%c5
; вывод в порт
;команда «чтение температуры»
; вывод в порт
;повторный START
;команда «SLAVE+R»
;вывод в порт конфигурация на чтение
;сегмент чтения из порта
;чтение старшего байта температуры
;пересылка в %а0
pop #c jsr kon_wr jsr ack_wr jsr kon_re push sc Idr #c,58h jsr byte_m_r mov %a1,%c5 pop #c jsr kon_wr jsr noack.wr jsr sto_mic jsr led movl «aS,11111111b movl %a6,10101000b jsr timer
конфигурация на запись
;выдача АСК
конфигурация на чтение
; чтение младшего байта температуры ;пересылка в %а1
конфигурация на запись
;выдача NOACK
; условие STOP
;вывод на LCD
;старший байт интервала 1 с ;.младший байт интервала 1 с ;.отсчет 1 с
pop #c jmp zikl
;возврат к считыванию
kon_wr:;====—= процедура конфигурации порта В на запись
push #с
Idr #c,18h
movl %с2,00011011b;автоинкреиент конфигурации порта В
movl «с2,11111111b ;тип вывода - выход
movl %с2.11111100b включение р-канального транзистора movl %с2,00000011b выключение нагрузочного резистора
(write)
(кроме битов 0
(кроме битов 0 и
И 1)
1)
movl %с2,00000000b
запрещение прерывания от положительного фронта
movl %c2,00000000b pop «с rts
запрещение прерывания от отрицательного фронта
kon_re:;
push #c Idr nc,18h
— процедура конфигурации порта В на чтение (read)
movl %c2,00011011b
звтоинкремент конфигурации порта В
movl %c2,11111110b
:тип вывода - выход (кроме бита 0)
movl %c2,11111100b
■.включение р-канального транзистора (кроме битов 0 и 1)
movl *c2,00000011b
;выключение нагрузочного резистора (кроме битов 0 и 1)
movl %c2,00000000b
запрещение прерывания от положительного фронта
movl %c2,00000000b pop #c
rts
Запрещение прерывания от отрицательного фронта
timer:;
— процедура 1аймера --—
movl *d4.00010000b
.обращение к регистру конфигурации
movl %d5.01001001b
;регистр конфигурации:
коэффициент деления входной частоты 400 кГц - 1/4 ; пересчет по фронту
; размерность регистра интервала -16 бит
movl Ш. 00000100b
;установка старшего байта интервала
mov %d5,%a5
;старший байт интервала
movl %d4,00000000b
установка младшего байта интервала
mov %d5,%a6
;младший байт интервала
movl *d4,00000011b
;луск таймера на счет
wait
rts
;возврат из процедуры таймера
sta_mic:;
movl %d2,00000011b
— формирование условия START
jsr timer
movl %d2,00000010b
jsr timer
movl %d2,00000000b
jsr timer
rts'
stojnic:;
movl %d2,00000000b
jsr timer
movl %d2,00000010b
jsr timer
movl %d2,00000011b
jsr timer rts
— условие STOP =—=
■ " вывод в порт микросхемы ОДНОГО байга ——
movl %c3,09h byte_OO:
movl %c2,00h shl %c5 ado %c2
установка счетчика цикла
mov %d2,%c2 jsr timer
movl %с4,00000010b or %c2,%c4 mov %d2,%c2 jsr timer movl %c4,00000001b and %c2,%c4 mov %d2,%c2 jsr timer subl %c3,01h cmpl %c3.00h
jnz byte_OO;пока не будет выведено 9 бит
rts
byte_m_r:;=== чтение из порта микросхемы ОДНОГО байта ==
movl %c3,08hустановка счетчика цикла
movl %c5,00h
byte_01: shl %c5 movl %c2,00000001b mov %d2,%c2 jsr timer movl *c2,00000011b mov %d2,%c2 jsr timer mov %c2,%d2 movl %c4,00000001b and %c2,%c4 or %c5, %c2 movl %c2,00000001b mov %d2,%c2 jsr timer subl %c3,01h cmpl %c3,00h
jnz byte_01;пока не будет выведено 8 бит
rts aCk wr:;======= ACK при чтении
movl %d2.00000000b jsr timer movl *d2,00000010b jsr timer movl %d2,00000000b jsr timer rts
noack.wr:;===== NOACK при чтении
movl *d2,00000001b jsr timer movl %d2,00000011b jsr timer movl %d2,00000001b jsr timer rts
lcd:•_====== процедура вывода в LCD
push яс
186
Приложение
Приложение
187
lcd_OO
Idr #c,60h movl %c0,00000010b jsr regist jsr fik_ir movl %cO,00001100b jsr regist jsr fik_ir movl %cO,00111000b jsr regist jsr fik_ir movl %a7,01111101b cmp %a0,%a7 jnc lcd_00 movl %c0,20h jsr regist jsr fik_dr jmp lcd_01
movl 1tc0,2dh jsr regist jsr fik_dr movl %a7,01h cmp %a1,%a7 jz lcd_02
movl %a7,11111111b sub %a7,%a0 mov %a0,%a7 jmp lcd_01
movl %a7,11111111b sub %a7,%aO inc %a7
mov %a0,%a7
jsr dsat mov %c0,%a2 jsr regist jsr fik_dr mov %c0,%a3 jsr regist jsr fik_dr mov %c0,%a4 jsr regist jsr fik_dr movl *c0,10101000b jsr regist jsr fik_ir movl %c0,2ch jsr regist jsr fik_dr
movl %a7,10000000b and %a1,%a7
;возврат в 1 позицию
;код включения дисплея
;код разрядности и строчности
lcd_03:
lcd_04:
regist:
гед_01
dsat:
cmp %a1.%a7
jz lcd_03 movl %c0,30h jsr regist jsr fik_dr jmp lcd_04
movl %cO,35h jsr regist jsr fik_dr
movl %c0,0dfh jsr regist jsr fik_dr movl %c0,43b jsr regist jsr fik_dr pop #c rts
;символ «0»
:символ «5»
;символ «о*
;символ «С»
цедура «набивки» регистра LCD
lcd_02:
lcd_01:
;перевод из 2х в 1-х
vom
mov %c5,%c0 movl %c3,08h
movl %c4,00h rlc %c5 adc Wc4 swap %c4 mov %d2,%c4 swap %c4
movl %c2,00000010b or %c4,%c2 swap %c4 mov *d2,%c4 swap %c4
movl *c2.00000001b and %c4,%c2 swap %c4 mov %d2,%c4 subl %c3,01h cmpl %c3,00h jnz reg_01 rts
;для WM-0801 ;для WM-0801
,для WM-0801 ; символ «,»
mov *b1,%aO
movl *b4,01100100b jsr count
movl %b7,00110000b
or %b5,»b7
mov %a2,%b5
movl %b4,00001010b
jsr count
or %b5,9tb7
mov %аЗ,%Ь5
movl %b4,01h jsr count or %b5,%b7 mov %a4,%b5 rts
count:;======= процедура преобразования одного числа 2х в Юх
movl %b5.00h
cou_00:
стр %Ы,%Ь4
jc cou_01 jz cou_01 addl %b5.01h sub %Ы,%Ь4 jmp cou_00 cou_01: rts fik_ir:;======= фиксация в IR
movl №,00000011b nop nop movl №, 01000011b nop nop movl №. 00000011b nop nop rts
fik_dr:;======= фиксация в DR*o1'
movl №. 10000011b nop nop movl №. 11000011b nop nop movl-№, 10000011b nop nop movl №, 00000011b nop nop rts
.end
Список литературы
ГукМ. Интерфейсы ПК: Справочник СПб.: Питер, 1999.
Гелль П. Как превратить персональный компьютер в универсальный программатор. М.: ДМК, 2000.
Семенов Б. Ю. Силовая электроника для профессионалов и любителей. М.: СОЛОН-Р, 2001.
The I2C-BUS specification. Version 2.1, Philips Semiconductors, 2000, January.
ParetD. The I2C-BUS from theory to practice. Wiley, ISBN 0-471-96268-6.
Голов А. А. Общие положения и введение в логику работы шины 12С: Практические рекомендации. КТЦ-МК, 1997.
Торрес А. Введение в спецификацию 12С. Харьков, 1997.
Assigned I2C-BUS addresses General, IC12, Philips, 1997.
Англо-русский словарь по аудио- и видеотехнике. Под ред. А. П. Ткаченко. Минск, 1999.
256 to 1024x8 bit CMOS EEPROMs with I2C bus interface PCF85xx family. Philips Semiconductors, 1997, feb. 3.
128x8 bit EEPROM with I2C bus interface PCA8581, PCA 8581C. Philips Semiconductors, 1997, apr. 02.
16 k 2,5 V I2Ctm Serial EEPROM 24LC16B DS200704. Microchip Technology Inc, 1998.
32 k 2,5 V I2Ctm Serial EEPROM 24LC32A DS2114C. Microchip Technology Inc, 1998.
Семенов Б. Ю. Современный тюнер своими руками: УКВ стерео + микроконтроллер. М/. СОЛОН-Р, 2001.
TSA6057, TSA6057T. Radio tuning PEL frequency synthesizer Philips Semiconductors, aug. 1988.
TSA6060. Fast radio tuning PEL frequency synthesizer Philips Semiconductors, 1994, apr.
K5004PC2 — 2K (256x8) ЭСППЗУ с 2-проводным интерфейсом. ОАО «Ангстрем».
КР5004РР4 — ЭСППЗУ 4 кбит с последовательным синхронным интерфейсом. ОАО «Ангстрем».
TDA1551Q 2x22 W BTL car radio power amplifier with diagnostic facility. Philips Semiconductors, 1994, July.
TDA8424 Hi-Fi stereo audio processor I2C bus. Philips Semiconductors, 1992, September.
TEA6360 5-band stereo equalizer circuit. Philips Semiconductors, 1991, May.
TDA8421 Hi-Fi stereo audio processor I2C bus. Philips Semiconductors,
1988, May.
TDA8425 Hi-Fi stereo audio processor I2C bus. Philips Semiconductors, 1988, October.
TDA8426 Hi-Fi stereo audio processor I2C bus. Philips Semiconductors, 1991, March.
TDA9860. Universal Hi-Fi audio processor for TV. Philips Semiconductors,, 1994, July.
TEA6300, TEA6300T sound fader control circuit. Philips Semiconductors,. 1990, May.
TEA6324T sound control circuit. Philips Semiconductors, 1997, March 13.
TEA6330T sound fader control circuit for car radios. Philips Semiconductors, 1992, Janvary.
PCF8574 remote 8-bit I/O expander for I2C bus. Philips Semiconductors 1997, apr. 02.
PCF8591 8-bit A/D and D/А converter. Philips Semiconductors, 1998, Jul 02.
PCF8583 clock/calendar with 240x8 bit RAM. Philips Semiconductors, 1997, Jul. 15.
Гёлль П. Как превратить персональный компьютер в измерительный комплекс. Ваш ПК: тестер, осциллограф, регистратор данных. М.: ДМК. 1999.
8ОС51 family derivation 8ХС552/562 overview. Philips Semiconductors, 1997, Aug. 06.
83C751/87C751, 80C51 8-bit microcontroller family 2k/64 OTP/ROM I2C, low pin count. Philips Semiconductors, 1998, May 01.
83C752/87C752, 80C51 8-bit microcontroller family 2k/64 OTP/ROM, 5 channel 8 bit A/D, I2C, PWM, low pin count. Philips Semiconductors, 1999, Ail. 03.
87C652/87C654, 80C51 8-bit microcontroller 8k/16k, 256 OTP, I2C. Philips Semiconductors, 1999, Jul. 23.
80C552/83C552 single-chip 8-bit microcontroller. Philips Semiconductors, 1998, Aug. 13.
Программная реализация I2C интерфейса (Master-режим) DS00554c. Microchip,.http://www.microchip.ru.
Модуль SSP в режиме I2C интерфейса для микроконтроллеров PIC16C7X. DS30390e. Microchip, http://www.microchip.ru.
Модуль MSSP в режиме 12С интерфейса для микроконтроллеров PIC16C87X. DS30292b. Microchip, http://www.microchip.ru.
Product line card. First quarter 2000. Microchip Technology Inc. DS00148el, 12.1999.
Embedded control handbook Volume 1. Microchip Technology Inc, 1997.
Бродин В. Б., Шагурин И. И. Микроконтроллеры: архитектура, программирование, интерфейс М.: Эком, 1999.
ТЕА5710, ТЕА5710Т AM/FM radio receiver circuit. Philips Semiconductors, March 1994.
Интегральные схемы. KP174XA51 —двухстандартный стереодекодер.' ОАО «Ангстрем», http://www.angstrem.ru.
DS1621 digital thermometer and thermostst, Dallas semiconductors, 102299.
Содержание
От автора
Как устроена шина 12С
Адреса некоторых микросхем 12С
Представители микросхем с интерфейсом 12С
ЭСППЗУ с последовательным доступом
РСА8581
PCF85XX
24LC16B
24LC32A
К5004РС2, КР5004РР4
Синтезаторы частоты
TSA6057
TSA6060
Микросхемы для аудиоаппаратуры
TDA1551Q
TDA8424
ТЕА6360
‘ Вспомогательные микросхемы
PCF8574
PCF8591
D/А преобразование
А/D преобразование".
PCF8583
DS1621
Микроконтроллеры с интерфейсом 12С
8ХС552 [37]
8ХС65Х [36]
8ХС751 [34]
8ХС752 [35]
Практические конструкции
Двухдиапазонный УКВ стереотюнер
Электронный термометр
Регулятор громкости и тембра
Цифровое табло с интерфейсом 12С
Приложение. Описание программного обеспечения электронного термометра
Список литературы
19
195 19*
19*
19*
19£ 19$
Jul. кок 199 low cha Sen
199
Mic PIC PIC
12.1
мир
Sem
OA(
Борис Юрьевич Семенов
ШИНА I2C
В РАДИОТЕХНИЧЕСКИХКОНСТРУКЦИЯХ
Ответственный за выпуск
В. Митин
Макет и верстка
С. Тарасов
Обложка
Е. Холмский
Издательство «СОЛОН-Р»123242, Москва, а/я 20Телефоны:(095) 254-44-10, 252-36-96, 252-25-21E-mail: Solon-R@coba.ru
ООО Издательство «СОЛОН-Р»ЛР № 066584 от 14.05.99
Москва, ул. Тверская, д. 10, стр. 1, комн. 522
Формат 60x88/16. Объем 12 и. л. Тираж 4000
ООО «Пандора-1»
Москва, Открытое ш., д. 28
Заказ № 7S
И ЭЛЕКТРОННОЙ
ОБОРУДОВАНИЯ
КОМПЛЕКТУЮЩИЕ
К ОРГ-, АУДИО-, ВИДЕОТЕХНИК!
125083 Москва, ул. Мишина 38/4 Тел. (095) 214-3474, Тел./факс (095) 212-353 E-mail: unisvs@sovintel.ru, http:// www.uniservice.msk.г