Автор: Семенов Б.Ю.  

Теги: радиотехника  

ISBN: 5-93455-168-Х

Год: 2002

Текст
                    nr Б.Ю.Семенов
В ШИНА |2С |> в РАДИОТЕХНИЧЕСКИХ
[Ц.
КОНСТРУКЦИЯХ
" УСТРОЙСТВО ш
МИКР С ИНТЕ

к МИКРОСХЕМЫ ДЛЯ АУДИОАППАРАТУРЫ 5\ ВСПОМОГАТЕЛЬНЫЕ МИКРОСХЕМЫ

ЭЛЕКТРОННЫЕ КОМПОНЕНТЫ
ВАШЕГО УСПЕХА
Всегда На складе 8 Промышленных количествах широчайший ассортимент компонентов заводов России и ближнего зарубежья ;<
EPCOS
IOR
АМР
MITSUBISHI
ELECTRIC
xntersil
inuRtdu
Melleman
Продукция ведущих мировых производителей: • активные компоненты
Bet- товары н розницу а магазинах
•	разъемы и соединители
*	пассивные компоненты	с
ферриты, трансформаторы, керамические фильтры, термисторы, варисторы, разрядники, конденсаторы.
потенциометры, самовосстанавлиеающиеся предохранители
•	широкий выбор датчиков
•	TVS. диоды, диодные мосты
•	жидкокристаллические индикаторы
•	оптоэлектронные приборы
•	электролитические конденсаторы 
•	электромагнитные и твердотельные реле
•	программаторы, эмуляторы, тестеры -
*	паяльное оборудование, радиомонтажный инструмент, газовые паяльники	 <'
•	мультиметры, осциллографы
*	вентиляторы для охлаждения аппаратуры
•	плоский, коаксиальный, телефонный, акустический кабель
•	акустические компоненты
•	корпуса для электронной аппаратуры
•	радиоконструкторы
Пассивные компоненты гарантированного качества производства Тайвань. Гонконг: реле, полипропиленовые и танталовые конденсаторы, индуктивности, резисторы, чип-компоненты. разъемы
бесплатный каталог И CD С ТЕХНИЧЕСКОМ документацией высылается по ЗАЯВКАМ ПРЕДПРИЯТИЙ.
121351,Москва,
ул. Ивана Франко, д. 40, стр. 2
Тел/факс: (095) 73-75-999
Почта: 121351. Москва, а. я 100
E-matl. platanCwaha ru
факсг 13832) 16-33-66 . tert Ф<иг«. (3432) 13-02 57 ten, факс,- (8462)35 26 09 тег» факс; (8352)64-05 61 teft-фам 13822) 41-55 .'О факе, <3472) 32 33-42
Моемы ул Бегония. 2 Тел: <095* 384-S8-78
Миомга. ул. Гил«р«>вск<ио, 33
Тол фат. <095)284-56 78
Е mail	0»р гм
М«с»ва, ул Низка Франко, д 40, сф. 2
Тел {095)417 33 55
E-mail dipi*ot pus "> plat an to
С -Петер&ур» Кроииергипни проси., 73
Тел, 18П) 232 83 06, 232-59-87
E-mail ptataniimM wplu&.net
Ярославль, tip Ленина, 8а
Тел. (0852) 30-15-68
E-mail: chip сИрйуа»tele-pott,«u
Б. Ю. Семенов
ШИНА 12С В РАДИОТЕХНИЧЕСКИХ КОНСТРУКЦИЯХ
Москва СОЛОН-Р 2002
Семенов Б. Ю.
Шина 12С в радиотехнических конструкциях / Б. Ю. Семенов. — М.: СОЛОН-Р, 2002. 192 с. — (Серия «Просто и доступно»)
ISBN 5-93455-168-Х
В книге рассказывается о принципах построения и логике работы последовательной шины обмена данными Inter-Integrated Circuit Bus (l2C), разработанной фирмой Philips. Приводятся сведения о микросхемах, имеющих интерфейс )2С, а также несложные конструкции на их основе, доступные для повторения радиолюбителями. Книга может быть полезна радиолюбителям, инженерам, студентам радиотехнических специальностей вузов, специалистам-ремонтникам бытовой аппаратуры.
Описанные в книге программы можно загрузить с сайта http://www.remserv.ru (раздел «Программы»).
Эту книгу можно заказать по почте (наложенным платежом — стоимость 110 руб.) двумя способами:
1) выслать почтовую открытку или письмо по адресу: 123242, Москва, а/я 20;
2) передать заказ по электронной почте (e-mail) по адресу: magazin@solon-r.ru.
Необходимо написать полный адрес, по которому выслать книги.
Обязательно указывать индекс н Ф. И. О. получателя!
При наличии — указать телефон, по которому с вами можно связаться, и адрес электронной почты (E-mail).
Цены действительны до 1 сентября 2002 г.
Вы можете в любое время получить свежий каталог издательства «СОЛОН-Р» по Интернету, послав пустое письмо на робот-автоответчик по адресу katalog@solon-r.ru, а также подписаться на рассылку новостей о новых книгах издательства, послав письмо по адресу news@solon-r.ru с текстом «SUBSCRIBE» (без кавычек) в теле письма.
ISBN 5-93455-168-Х
© Макет и обложка «СОЛОН-Р», 2002
© Б. Ю. Семенов, 2002
От автора
Однокристальные микроконтроллеры стремительно занимают ведущее место в электронной аппаратуре. И если каких-нибудь десять лет назад они могли быть использованы при проектировании только профессионалами — слишком много требовалось дорогостоящих средств для их программирования, — то сегодня «однокристалки» используют даже радиолюбители. Просмотрите подшивку журнала «Радио» за последние несколько лет, и вы убедитесь в справедливости сказанного.
Именно микроконтроллер сегодня формирует облик бытовой аудиотехники, видеотехники, средств связи. С передних панелей радиоприемников, магнитол, телевизоров исчезли шкальные индикаторы, ручки настройки, ползунковые регуляторы, переключатели. Их заменили жидкокристаллические табло и кнопки. Значительно усложнилась «начинка» аппаратуры. Очевидно, что десятки разнообразных микросхем, составляющих электронное «нутро» аппаратуры, должны согласованно функционировать, обеспечивая наилучшие технические характеристики и удобство эксплуатации. Решая задачу сопряжения цифровых устройств, разработчики компьютерной техники связали их между собой посредством шин, а способы передачи информации назвали протоколами и стандартизировали их основные принципы. Каждое устройство было снабжено интерфейсом; посредством которого стало возможным подключать его к шине.
Если говорить об аналоговой технике, то специализированные аналоговые микросхемы испокон веков имели уникальные собственные выводы для подключения элементов, с помощью которых устанавливались их рабочие режимы или осуществлялись регулировки в процессе эксплуатации. Например, регулировалась громкость звука, контрастность изображения и т. д. Объединять эти выводы с целью выполнения универсальной регулировки не представлялось возможным. Современные микросхемы, предназначенные для использования в новой аппаратуре, решено было снабдить цифровым интерфейсом, «спрятать» настроечные выводы внутрь микросборок, а управлять их режимами программно.
4
Осуществлять управление одной микросхемой очень просто, для этого даже не всегда нужен внешний цифровой интерфейс. А если микросхем несколько, если они должны взаимодействовать друг с Другом, обмениваться информацией? Решая эти вопросы, разработчики перспективных микросхем пришли к мысли о необходимости введения общей шины и протокола обмена информацией по ней. Известные по компьютерной технике шины оказались здесь совершенно негодными в силу своей сложности. Только представьте, что для реализации обмена по шине ISA или РС1 в состав аппаратуры нужно ввести полноценный компьютер...
Для этих целей фирмой Philips была разработана шина Inter-Integrated Circuit Bus (сокращенно 12С, ай-ту-си). Принадлежа к классу шин с последовательным способом передачи данных, отличаясь чрезвычайной простотой реализации, Шина стала быстро развиваться. Конечно, в основном свое детище продвигала фирма-разработчик, но сегодня и другие фирмы, оценившие по достоинству возможности шины, поддерживают ее своей продукцией.
К сожалению, на сегодняшний день отсутствует русскоязычная литература, позволяющая быстро освоить приемы работы с шиной 12С и в какой-то мере обобщить разрозненные, неполные сведения. В Интернете, на конференциях, посвященных вопросам программирования, то и дело возникают вопросы об основах работы с 12С, но далеко не всегда появляются дельные ответы. Весьма заманчивы перспективы использования микросхем 12С в несложных радиолюбительских конструкциях, обладающих тем не менее высокими потребительскими характеристиками. Все конструкции, в которых задействуется шина 12С, обязательно должны включать в себя простейшие однокристальные микроконтроллеры, что также свидетельствует в пользу их доступности радиолюбителям.
В этой книге рассказывается об основных принципах устройства шины 12С, о микросхемах, поддерживающих этот протокол обмена, о программных способах его реализации. Приведены практические схемы, позволяющие не только закрепить полученные знания, но и изготовить полезную в быту вещь. Автор надеется, что чтение этой книги будет занимательным и легким.
Б. Ю. Семенов.
Декабрь 2001 г.
1. Как устроена шина 12С
Классический вариант обмена данными между любыми устройствами заключается в том, что одно устройство передает информацию, а другое ее принимает. Устройства могут при необходимости поменяться ролями, то есть передатчик может стать приемником и, наоборот, приемник — передатчиком. Но в любом случае важно четко определить, какое из устройств является главным, задающим правила и последовательность обмена, а какое — подчиненным.
Устройства, подключаемые к шине 12С, также подчиняются этому принципу. Договорились, что одно из устройств будет ведущим (master), а остальные — ведомыми (slave). Такая организация шины называется master-организацией и является наиболее типичным случаем (рис. 1.1).
Master-устройством обычно назначается микроконтроллер. Именно он задает основной поток данных на шине, формирует необходимые временные интервалы и т. д.
Гораздо реже используется в аппаратуре режим multi-master (рис. 1.2), когда к одной шине подключено несколько master-устройств.
Рис. 1.1. Master-организация шины 12С
Рис. 1.2. Multi-master организация шины 12С
6
Как устроена шина 12С
Сложность такой организации шины состоит главным образом в том, что master-устройства должны решать, кто из них будет работать в данный момент со slave-устройствами. Одновременно на шине может совершать операции только одно master-устройство, остальные обязаны отключаться. В противном случае возникает ситуация, называемая шинным конфликтом. Информация может попросту не дойти до адресата, нарушится работа устройства.
Для того чтобы исключить шинные конфликты, в режиме multi-master должны содержаться процедуры арбитража и синхронизации, устанавливающие порядок работы master-устройств. В книге мы не будем рассматривать этот режим подробно с точки зрения аппаратной реализации, разберемся лишь, как осуществляется арбитраж устройств и их синхронизация. Основное внимание сосредоточим на классическом режиме с одним master-устройством.
История шины 12С в том виде, в котором она представлена сейчас, началась в 1992 году, когда фирмой Philips была выпущена ее первая спецификация версии 1.0. Эта спецификация исключала возможность задания адреса slave-устройства программным способом как наиболее сложную процедуру. Наряду со стандартным режимом скорости передачи данных 100 кбит/с (low-speed) был введен режим быстрой передачи (fast-speed) со скоростью до 400 кбит/с. Появился также режим 10-разрядной адресации.
Версия 2.0, выпущенная в 1998 году, ввела в спецификацию шины быстродействующий режим (Hs-mode) со скоростью передачи до 3,4 Мбит/с. Причем требования предписали вводить обязательную возможность совместимости с режимами low-speed и fast-speed. К моменту появления версии 2.0 шина 12С распространилась по всему миру, став международным стандартом. Было разработано более 1000 интегральных схем, лицензия на официальное использование спецификации приобретена более чем 50 фирмами.
Версия 2.1, датируемая 2000 годом, включает в себя незначительные модификации, не нашедшие отражения в версии 2.0. На момент написания этой книги версия 2.1 является последней действующей версией, выпущенной Philips. Не исключено, что в процессе подготовки книги в печать выйдет очередная модификация. Спешу успокоить читателя — едва ли новая версия будет содержать кардинальные отличия, да и в любом случае совместимость сохранится.
Как устроена шина 12С
7
Мы не будем вдаваться во все тонкости и хитросплетения названных версий, разберем лишь самые необходимые для практики положения. Желающие подробнее ознакомиться с официальной документацией [4] без труда смогут получить ее с Интернет-сервера фирмы Philips (http://www.semiconductors.philips.com).
Интересно отметить, что фирма Philips особо выделяет в своей документации микросхемы, оснащеннь/ё интерфейсом 12С. Обложка или первый лист фирменных datasheet обязательно сопровождается значком, показанным на рис. 1.3.
Рис. 1.3. Фирменный знак интерфейса 12С
Полная гамма микросхем с интерфейсом 12С, выпускаемых фирмой, насчитывает в настоящее время более 150 наименований, выполненных с применением как перспективной КМОП-технологии, так и с уже ставшей. традиционной — биполярной. Номенклатура продолжает расти, так что следите за новинками!
Определившись с главными положениями шины, перейдем к рассмотрению ее аппаратной реализации. Взгляните на рис. 1.4, отражающий устройство современной автомобильной магнитолы.
Шина
12С
Рис. 1.4. Пример взаимодействия устройств на шине 12С
8
Как устроена шина 12С
В составе магнитолы обязательно имеется микроконтроллер, выполняющий роль master-устройства, формирующий необходимые сигнальные последовательности, «рассылающий» информацию по slave-устройствам и принимающий от них какие-либо сведения. Остальные устройства, подключенные к шине, как мы уже договорились, будут подчинены микроконтроллеру. По определенному правилу, называемому протоколом, микроконтроллер может «отправить» на индикаторную панель (slave-устройство 1) данные, отражающие, к примеру, уровень громкости, принимаемую частоту радиостанции или хронометраж аудиокассеты. Синтезатор частоты (slave-устройство 2) по команде микроконтроллера перестроит частоту приема, регулятор громкости и тембра (slave-устройство 3) изменит громкость звука и его «окраску». И так далее...
Каким образом slave-устройства разбираются, что текущая порция информации предназначается кому-то одному и кому именно, об этом мы поговорим, но позже. А сейчас настала пора задать себе важный вопрос: «В чем заключается уникальность такого вида управления устройствами?» Действительно, в чем? Оказывается, управлять всеми подчиненными slave-абонентами можно всего по двум линиям (если не считать третью линию — общий провод схемы). Slave-абонент должен иметь два вывода, которые объединяются с такими же выводами другого slave-устройства, а также с mas-ter-абоненТом. Собственно, внешне так и выглядит шина 12С.
Концепция шины настолько проста, что позволяет быстро разрабатывать принципиальную схему устройства, опробовать ее и в случае необходимости «нарастить» конструкцию новыми элементами или удалить ненужные безболезненно для других узлов. Также может быть упрощен метод разработки программного обеспечения, использованы стандартные библиотеки-подпрограммы. Практически все микросхемы с интерфейсом 12С имеют такие характеристики, которые позволяют использовать их в низковольтной портативной аппаратуре с питанием от гальванических элементов. Например, они обладают высокой помехоустойчивостью, низким потреблением тока, широким диапазоном питающего напряжения и слабой зависимостью параметров от температуры окружающей среды.
Обратим внимание на рис. 1.5.
Как устроена шина 12С
9
Рис. 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-абонента желательно изучить досконально, поскольку его выходы могут быть активными (иметь вместо
10
Как устроена шина Рс
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 метров (естественно, с понижением скорости обмена данны
Как устроена шина Рс
11
ми). Но этот режим уже не нормируется оригинальной спецификацией, а значит, и надежная работа устройств не гарантируется.
Пропускная способность шины определяется как параметрами интерфейсов, так и паразитными параметрами линий SDA и SCL. На рис. 1.6 показаны эти паразитные параметры:
•	GiP — распределенная емкость линии относительно общего провода;
•	Свх — входная емкость интерфейса;
•	£пР — индуктивность проводника линии.
Рис. 1.6. Паразитные параметры, влияющие на пропускную способность шины 12С
В протоколе обмена по шине используются не только статические состояния линий («О» и «1»), но и перепады уровней («О» -> «1» и «1» —> «О») и наличие паразитных параметров выражается в «затягивании» фронтов, а также спадов импульсов, как показано на рис. 1.7, что может нарушить нормальный обмен данными.
Рис. 1.7. «Затяжка» импульса при передаче по шине — результат влияния паразитных параметров
12
Как устроена шина 12С
Еще одна опасность, скрытая в слишком длинных проводниках, связана с перенапряжениями, которые могут возникнуть на интерфейсных элементах при значительных величинах паразитной индуктивности проводов (Lnp). Эта ситуация отражена на рис. 1.8.
Рис. 1.8. Перенапряжения, связанные с наличием паразитной индуктивности линии связи
Как показано в [3], резкое закрытие транзистора VT характеризуется индуктивным выбросом на его стоке. Это явление используется в так называемых бустерных схемах источников питания, но здесь оно крайне вредно. И хотя в подавляющем большинстве случаев внутри микросхем предусматривается защита входных цепей, например, по варианту рис. 1.9, а, позволяющая «сбросить» энергию импульса в источник питания, все же лучше дополнительно ввести защиту по варианту рис. 1.9, б. Когда может потребоваться такая защита?
Рис. 1.9. Варианты защиты: а) внутренняя, б) внешняя
Как устроена шина 12С
13
л------------------!----------------------------------------------
Ц процессе экспериментов и отладки схемы, когда обычно микроконтроллер и 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
14	Как устроена шина 12С	у
Каким способом можно определить величину резисторов и Rs? В фирменной документации [4] есть ответ на этот вопрос. Там приводятся графики, оптимизирующие способ выбора резисторов. Графики отнормированы относительно разных напряжений питания, но поскольку наиболее вероятным видится вариант использования микросхем при VDD = 5 В, то сведения ограничены только этим напряжением.
Вначале производится выбор резистора RpU по рис. 1.11. Рассматривая этот рисунок, можно сделать попутный вывод о том, что паразитная емкость практически не оказывает влияния на методику выбора резистора Rs. Читатель также вправе задать следующий вопрос: Как определить величину паразитной емкости? Действительно, сделать это не так-то просто. Современные пакеты компьютерного схемотехнического моделирования при «разводке» печатных плат позволяют отмоделировать паразитные элементы, определить их величину. Однако такие программы доступны далеко не всем и далеко не все умеют ими правильно пользоваться, поэтому при разработке радиолюбительских конструкций можно придерживаться «золотой середины», приняв значение паразитной емкости не более 100...200 пФ.
Итак, после определения R^ по рис. 1.13 определяем номинал резистора Rs (если, конечно, его предполагается ввести в схему). В заключение проверяем по рис. 1.12 номинал резистора Rpu. К примеру,
максимальной величины резистора Rpu от емкости шины
величины резистора Rpu от
напряжения питания
Как устроена шина 12С
15
Рис. 1.13. Зависимость максимальной величины резистора Rs от величины резистора Rpu
для напряжения питания 5 В оно должно быть не менее 1,5...2 кОм. Выполнение требований графиков позволит получить в режиме Hs-mode максимальную скорость передачи.
Не следует также забывать и о топологии печатной платы. Линии подвержены не только внешним помехам, но также и перекрестной связи, когда сигнал SDA наводится в линию SCL, и наоборот. Если суммарная длина линии превышает 10 см, рекомендуется располагать токоведущие дорожки в такой последовательности:
SDA
V
v DD
Общий
SCL
Хорошо использовать печатные платы с отдельными слоями, специально выделенными под общий провод и провод VDD, что, конечно, в радиолюбительских условиях едва ли осуществимо. Удачным также является использование экранированных кабелей, экранная жила которых соединена с общим проводом схемы. Возможно также применить скрученные попарно проводники.
Как уже было сказано ранее, скорость передачи по шине 12С ограничена не только внешними факторами, но и внутренними параметрами интерфейсов, их схемотехникой. Едва ли разработчик принципиальных схем сможет исправить интерфейс, заставить его работать быстрее — эта задача под силу только разработчику интегральной
16	Как устроена шина 12С
схемы. Но узнать, почему это ограничение наложено, полезно буде; даже радиолюбителю. Итак, взглянем на рис. 1.14 и рис. 1.15.	/
Рис. 1.14. Упрощенная схема интерфейса 12С, выполненного по КМОП-технологии.
Рис. 1.15. Упрощенная схема интерфейса 12С, выполненного по биполярной технологии
В обоих схемах очень важно сделать так, чтобы транзистор VT открывался и закрывался как можно быстрее. Казалось бы, нет никаких препятствий, чтобы его открывание происходило мгновенно. Однако (и это показано в [3]) из-за наличия так называемой емкости Миллера СтЯ образуется местная отрицательная обратная связь, которая не дает транзистору быстро войти в состояние насыщения. Читатель может возразить, обратив внимание на величину резистора R, и предложить уменьшить его номинал. Но тогда мы столкнемся со значительным увеличением тока потребления микросхем, что, конечно, тоже нехорошо.
Ограничения, накладываемые на минимальную величину резистора RpU, связаны с тем, что через него в состоянии линии «О» должен протекать ток не более 3 мА. Легко заметить, что для напряжения питания VDD = 5 В величина ограничена номиналом 1,7 кОм. Соответственно емкость линии не должна превышать 200 пФ. Но если линия имеет большее значение паразитной емкости? Тогда можно использовать схему, изображенную на рис. 1.16. В течение времени нарастания или спада сигнала линии микросхема НСТ4066 подключает в промежутке между 0,8 и 2,0 В форсирующий резистор R^.
Как устроена шина 12С
17
Рис. 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 кбит/с
18
Как устроена шина 12С
Если соединить устройства разных типов по классической схеме, то разные скорости обмена могут быть и не реализованы. Поэтому приходится группировать эти устройства, как показано на рис. 1.17, и вводить между группами мосты (bridge). Назначение моста —отсоединить более медленные элементы в моменты обмена между более быстрыми.
Дополнительное удобство, обеспечиваемое мостом, — возможность использования для питания шины двух напряжений (VDD1 и VDD2). Мост включается как master/slave-устройство Hs-режима и управляется сигналами SDAH, SCLH, SDA, SCL. Он может также присутствовать в составе отдельных микросхем (например, микроконтроллеров) как самостоятельное устройство.
Отметим также, что шина 12С позволяет совмещать устройства с разными напряжениями питания. Pull-up резисторы желательно подключать к питающему напряжению 5 В, как показано на рис. 1.18.
Прежде чем перейти к описанию протокола обмена по шине, отметим, что собственно ее устоявшееся название (ай-ту-си), равно как и наименования линий (SDA и SCL), является зарегистрированным наименованием. Авторские права на эти названия принадлежат фирме Philips. Соответственно другие фирмы, производящие микросхемы с интерфейсом 12С и указывающие его наличие, как такового, в технической документации, делают это по лицензии разработчика [2]. К примеру, фирма Microchip, специализирующаяся на выпуске
Как устроена шина 12С
19
Рис. 1.18. Соединение элементов с разными напряжениями питания
микроконтроллеров, имеет такую лицензию. Однако и фирмы, не имеющие лицензии, производят микросхемы с интерфейсом, очень похожим на 12С, но как 12С его не обозначают, а значит, протокол обмена может немного отличаться от стандартизованного. Делается это для обеспечения чистоты правовых отношений, которые за рубежом соблюдаются несколько более жестко, нежели у нас в стране. В любом случае, используя в своих разработках аналоги фирменных микросборок, рекомендуется внимательно ознакомиться с технической документацией.
Самой простой конфигурацией шины 12С, как уже было сказано, является master-организация. С нее мы и начнем рассмотрение протокола обмена данными.
Передача любого бита по шине происходит при условии стробирования данных SDA по линии SCL. Предположим, что master-устройство выставило бит данных «О» или «1» на линию SDA. Slave-устройство получит этот бит только тогда, когда на линии SCL произойдет перепад сигнала из низкого уровня в высокий (так называемый положительный перепад). Отсюда следует первое правило организации протокола шины: смена информации на линии SDA может быть произведена только при нулевом состоянии линии SCL.
Рис. 1.19. Передача бита по шине 12С
20
Как устроена шина /2С
Мы уже знаем, что шина в неактивном состоянии имеет на линиях SDA и SCL высокие уровни. Но каким образом slave-устройства могут узнать, что началась передача и что она окончилась? Для распознавания начала и конца передачи в спецификацию шины были введены условия Start и Stop. На рис. 1.20 представлено условие Start, на рис. 1.21 — условие Stop. В фирменной документации условие Start имеет условное сокращение «S», условие Stop — «Р».
г-1
SCL ------1---
SDA
Рис. 1.20. Условие START
U---!---Н
I
scl--------- :
SDA-----------------
Рис. 1.21. Условие STOP
Условие Start образуется при отрицательном перепаде сигнала на линии SDA при единичном состоянии линии SCL. И наоборот, условие Stop возникает при положительном перепаде линии SDA при единичном состоянии линии SCL. Эти состояния всегда должны генерироваться master-устройствами. Таким образом, укрупненно информационный пакет, передаваемый по шине 12С, выглядит так, как показано на рис. 1.22.
Для определения состояний Start и Stop в составе slave-устройства обычно предусматривается специальная аппаратная схема, так как реализовать программно интерфейс slave-абонента довольно трудно: появляется необходимость постоянной проверки линии SDA на предмет опознавания данных.
Рис. 1.22. Информационный пакет данных на шине 12С '
Как устроена шина 12С
21
Существует также состояние «повторный Start», которое может возникнуть в середине информационного пакета. Чуть позже мы рассмотрим ситуации, когда появляется условие «повторный Start».
Передача данных по шине производится по 8 битов, после чего следует сигнал подтверждения (acknowledge). Сигнал подтверждения свидетельствует о том, что данные нормально приняты и обработаны... Но обо всем по порядку! Взгляните на рис. 1.23, отражающий
После отработки состояния 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 и повторить передачу.
22
Как устроена шина 12С
Третья ситуация, которая может возникнуть при получении сигнала АСК, связана с задержкой обработки данных в slave-абоненте, как показано на рис. 1.25.
Рис. 1.25. Задержка состояния acknowledge
Задержка освобождения линии SDA не свидетельствует о неправильном обмене информацией, поэтому master-абоненту достаточно дождаться окончания АСК и продолжить передачу. Добавим также, что в фирменной документации состояние acknowledge условно именуется буквой «А». Если байт, переданный по шине, является последним в пакете, master-устройство вместо проверки сигнала АСК может выставить состояние Stop, и slave-абонент должен освободить линию SDA.
Описанные состояния являются вполне достаточными для функционирования шины 12С с одиночным master-устройством. Как правило, master-абонента очень легко организовать программным способом, что и используется многими разработчиками. Для реализации режима multi-master, как уже было сказано, должны быть реализованы дополнительные состояния синхронизации и арбитража. Вначале рассмотрим синхронизацию.
Как устроена шина 12С
23
Действительно, если на шине присутствует несколько master-абонентов, все они наделены возможностью генерации сигнала SCL. Синхронизация между этими сигналами достигается благодаря функции «монтажное И» на линии SCL. Таким образом, состояние «О» продлится до тех пор, пока все master-устройства не выставят на линии SCL высокий уровень, и линия SCL будет задержана в состоянии «О» абонентом с самым длинным циклом нулевого уровня. Остальные абоненты, уже освободившие линию, должны войти в состояние ожидания (рис. 1.26).
Теперь поговорим об арбитраже. Согласно спецификации режима multi-master, передатчик может начинать передачу данных только после того, как убедится, что шина свободна (линии SDA и SCL имеют высокий уровень). Но несколько передатчиков могут сгенерировать состояние Start практически одновременно, поэтому нужно определить, какое устройство первым выставило Start-условие. Как это возможно выполнить с помощью достаточно скудных (с точки зрения возможностей серьезных шин, конечно!) средств 12С? Дело в том, что линия SDA выполнена также по способу «монтажное И». В течение процедуры передачи все master-абоненты проверяют состояние линии SDA. Если обнаружено несоответствие (выставляется высокий уровень, а при проверке читается низкий), передатчик, выставляющий высокий уровень, отключается. Естественно, что в процессе передачи бита осуществляется синхронизация.
24
Как устроена шина 12С
Как показывает практика, процедура арбитража наиболее трудна для понимания. Поэтому, чтобы досконально разобраться, приведем наглядную аналогию. Представьте себе шеренгу людей, синхронно поднимающих руки по команде ведущего. Если рука поднята, это свидетельствует о передаче единицы, если опущена — нуля. Допустим, в первом такте все подняли руки, а во втором — двое руки не подняли. Согласно принципу арбитража, из шеренги выбывают все, кроме этих двоих. Далее они, подчиняясь командам ведущего, будут поднимать или опускать руки, пока в каком-либо такте не окажется, что один руку поднял, а другой — опустил. Так вот, «поднявший руку от руки и погибнет» — перефразируем известное выражение. Он выбывает, а передачу до окончания продолжит оставшийся — в единственном числе. Рис. 1.27 отражает процедуру арбитража для двух master-абонентов.
Разобравшись с условиями передачи данных по шине 12С, обратим внимание на форматы передачи (протоколы). Что такое формат? И не проще ли использовать передачу по 8 битов, как это предписывается, наполняя их содержимым по своему усмотрению? Оказывается, нет. Каждое устройство должно иметь на шине свой уникальный адрес, по которому к нему можно обратиться. Адрес устройства всегда располагается в определенном месте (специалисты говорят: в определенных ячейках внутренней памяти). Адрес может быть назначен, а может быть жестко определен. В случае шины 12С адреса устройств, называемые slave-адресами, жестко определяются.
Как устроена шина 1гС
25
Они «закладываются» при изготовлении микросхем и не подлежат переназначению, то есть модификации. В принципе часто все же переназначить адрес можно (и,это делается с помощью 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юредача информационных опт
Рис. 1.28. Master транслирует данные на slave
26
Как устроена шина 17С
Необходимо сразу оговориться, что первый бит, передающий slave-адрес устройства, содержит признак операции R/W. Когда этот бит установлен в «О», будет осуществляться запись в slave-устройство, когда в «1» — чтение из него.
На рис. 1.29 приведен формат передачи данных от slave-абонента к master-устройству.
Обратите внимание: после чтения информационного байта DATA master-абонент обязан подтвердить получение байта сигналом АСК.
Рис. 1.29. Master читает данные со slave
На рис. 1.30 показан так называемый комбинированный формат, применяющийся в случаях, когда осуществляется запись и чтение в одном цикле.


data ы
о.
Повторное условие
Рис. 1.30. Комбинированный формат
Обычно комбинированные форматы используются для работы с последовательной памятью (для сокращения времени доступа к данным). Изучая рис. 1.30, мы можем заметить, что здесь повторяются знакомые нам по рис. 1.28 и рис. 1.29 форматы. Единственное новшество, введенное в комбинированный формат, — повторное условие Start (repeated Start condition), обозначаемое на рисунке сокращением «Sr». Чуть позже, в соответствующей главе, мы рассмотрим типы последовательной памяти и способы работы с ней.
Как уже было сказано ранее, некоторые slave-адреса используются не для прямой адресации устройств на шине 12С, а для служебных сообщений. Рассмотрим эти сообщения с учетом рис. 1.31, на котором укрупненно показана структура байта адресации.
Как устроена шина 12С
27
MSB	LSB
Slave-адрес
Рис. 1.31. Структура байта адресации
Таблица 1.3. Служебные адреса
Slave-адрес	R/W	L Описание служебного адреса
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-абонентов
Разберемся подробнее в функциональном назначении служебных адресов.
Общий вызов может адресовать все устройства, подключенные к шине 12С, в этом случае при получении общего вызова устройства должны подтверждать прием выдачей сигнала АСК. Устройства, которые не нуждаются в сведениях, передаваемых при общем вызове, могут игнорировать этот адрес, не выставляя сигнал АСК. Если же устройство выполнено так, что обязательно требует данных общего вызова, оно ведет себя точно так же, как обыкновенный slave-абонент. Второй байт, следующий за общим вызовом, обычно содержит информационную часть. На рис. 1.32 представлен формат общего вызова.
0	0	0	0	0	0	0	0	А	X	X	X	X	X	X	X	в	А
Общий вызов	| Информационная часть |
АСК	АСК
Рис. 1.32. Общий вызов
28
Как устроена шина 12С
Обратите внимание — информационная часть содержит бит В, который в сочетании с битами 7...1 (обозначенными на рис. 1.32 символом «X») регламентирует назначение информации, передаваемой в данном случае. Регламентируются следующие комбинации:
•	0000 0110 (06h) — аппаратный сброс. При получении этой комбинации все абоненты, реагирующие на общий вызов, производят внутренний сброс (рестарт). Естественно, аппаратный сброс этих абонентов не должен блокировать шину;
•	0000 0100 (04h) — запись программируемой части адреса slave-абонента с помощью аппаратных средств. Все абоненты, ответившие на этот адрес, будут блокированы и не смогут быть сброшены;
•	0000 0000 (00h) — этот код запрещается использовать;
•	хххх ххх 1 — используется, когда на шине присутствует много совмещенных master/slave-абонентов. В таких случаях часто необходимо генерировать запрос об адресе устройства, которому должна быть передана информация. К примеру, устройство «А», получив от устройства «Б» данные, обработав их, передает информацию устройству «В» вместе с собственным адресом (обычно адреса «master/slave» в совмещенных абонентах совпадают).	11
На рис. 1.33 представлен формат передачи hardware general call.
LS0
I_____________I
Общий вызов	В
Рис. 1.33. Формат hardware general call
Программный Start удобно использовать тогда, когда устройство, соединенное с шиной 12С, не имеет аппаратного интерфейса. Собственно, если встроенный интерфейс 12С есть, скажем, в микроконтроллере, его очень просто использовать. Достаточно запрограммировать микроконтроллер на прерывание от шины, и при наличии передачи будет выполняться программа обработки данных, поступающих с шины. Если встроенного интерфейса 12С нет, микроконтроллер обязан постоянно опрашивать шину на предмет получения данных.
Как устроена Шина PC
29
Процедура опознавания в таком случае выглядит следующим образом, отраженным на рис. 1.34.
Рис. 1.34. Программный START
Из рисунка видно, что микроконтроллеру достаточно опрашивать линию SDA с низкой частотой, определяя один из нулей в стартовом бите. После обнаружения этого нуля на линии SDA микроконтроллеру необходимо переключиться на более высокую частоту опроса, чтобы зафиксировать состояние «повторный Start» (Sr). Обычный аппаратный приемник игнорирует состояние S и дождется Sr.
Адрес шины CBUS возможно использовать при работе с элементами, оснащенными этой шиной. В задачи этой книги не входит рассказ о шине CBUS, но тем не менее она по своей реализации достаточно близка к шине 12С, поэтому имеется возможность их совмещения.
В спецификации CBUS имеется третья линия, обозначаемая как DLEN. Диаграммы сигналов, отражающие способ работы с этой шиной в условиях совмещения с 12С, приведены на рис. 1.35.
Следующие служебные адреса относятся к расширениям шины I С. Мы уже знаем, что первоначально шина имела 7-разрядную адре-
записи
Рис. 1.35. Совместимость с шииой CBUS
30
Как устроена шина 12С
сацию и скорость передачи до 100 кбит/с. Но даже несмотря на эти скромные возможности, шина быстро завоевала популярность. Очень быстро были заняты все доступные адреса, да и скорость передачи данных быстро росла, улучшалась технология производства микросхем. И шину модернизировали, наделив ее новыми возможностями:
•	режим fast-speed с возможностью передачи до 400 кбит/с;
•	режим Hs-mode — до 3,4 Мбит/с;
•	адресация с помощью 10 разрядов, расширенные возможности адресации до 1024 абонентов.
Все новые абоненты, доступные для использования в шинах с расширениями, естественно, совместимы и со старыми форматами передачи (приема). «Соль» скоростных режимов заключается в единственном обстоятельстве — в укорочении стробирующего импульса на линии SCL. Поэтому для совместимости со старыми интерфейсами стробирующий импульс может быть продлен до необходимой величины.
Работа шины в режиме fast-speed характеризуется следующими важными свойствами:
•	отсутствие совместимости с шиной CBUS, так как эта шина не имеет возможности работать на таких скоростях; ,-т>
•	наличие входных формирователей (триггеров Шмитта) SDA и SCL линий.
Если элементы, обладающие возможностью работы в режиме fast-speed, обесточены, они не должны влиять на работу шины.
В документации [4] подробнейшим образом разобраны форматы передачи в режиме Hs-mode, принципы совместимости его с другими режимами. Мы не будем останавливаться на описании этих режимов, поскольку они пока мало распространены. Значительно более существенный практический интерес для нас представляет 10-разрядная адресация шины 12С.
Поскольку форматом шины предусмотрена передача только «порции» из 8 байтов, 10-разрядные адреса приходится транслировать 2 байтами. Первый байт имеет структуру 11110xx(R/W), в котором биты, обозначенные символом «х», являются старшими разрядами 10-разрядного адреса slave-устройства. Естественно, в составе первого байта должен быть передан бит R/W.
Как устроена шина 12С
31
Адресация с помощью 10 разрядов аналогична 7-разрядной адресации, то есть основана на тех же принципах. Устройство, получив служебный код в первом байте и опознав возможность приема 10-разрядного адреса, подтверждает это и принимает второй байт. При совпадении принятого адреса с содержащимся внутри устройства собственным адресом выдается подтверждение АСК и ведется прием данных в обычном режиме до появления состояния Stop.
На рис. 1.36 показан формат передачи данных от master-абонента к slave-устройству.
11110» О
Рис. 1.36. Передача данных от master-абонента к slave-устройству
Slave-абоненты сравнивают первый полученный байт со своими данными и, если они совпадают, выдают сигнал АСК (А1 на рис. 1.36). Очевидно, сразу несколько устройств может выдать подтверждение. Поэтому при получении второго байта только одно устройство выдаст сигнал АСК (А2). Остальные устройства, которые ранее выдали сигнал АСК (А1), останутся адресованными по первому байту до получения сигнала Stop.
На рис. 1.37 приведен формат передачи данных от slave-абонента к master-устройству.
1111ОХХ О
11110хх 1
1 байт
1 байт
2 байт
WRITE
READ
Рис. 1.37. Передача данных от slave-абонента к master-устройству
Вначале master-устройство первым байтом адресует все slave-абонента соответствующим кодом, и они подтверждают его получение сигналом АСК (А1). Затем вторым байтом адресуется конкретное устройство с выдачей сигнала АСК (А2). После выполнения повторного условия Start (Sr) адресованное slave-устройство сохраняет возможность обращаться к нему, поэтому достаточно повторить первый байт адреса, но уже с другим значением бита R/W и получить АСК (АЗ).
32
Как устроена шина 12С
На рис. 1.38—1.40 приведены комбинированные форматы передачи данных. Они могут использоваться, например, при управлении микросхемами последовательной памяти.
11110хх О
адрес	адрес
1 байт	2 байт
WRITE
11110ХХ 1

адрес |
1 байт ।
READ
data";,?' |
Рис. 1.38. Комбинированный формат. Master-абонент адресует slave-устройство с 10-разрядным адресом, затем передает данные и читает данные
11110хх О	1111ОХХ о
адрес	адрес
1 байт J 2 байт •
адрес I адрес 1 байт | 2 байт
WRITE
WRITE
Рис. 1.39. Комбинированный формат. Master-устройство передает данные двум slave-абонентам с 10-разрядным адресом
разр | WRITE
Рис. 1.40. Комбинированный формат. Master-абонент передает данные двум slave-устройствам: одному с 7-разрядным адресом, а другому с 10-разрядным адресом
В заключение этой главы приведем основные электрические характеристики шины 12С для всех упомянутых режимов.
Таблица 1.4. Параметры режимов low-speed, fast-speed
Параметр	Символ	Режим low-speed		Режим fast-speed		Ед. изм.
		МИН.	макс.	МИН.	макс.	
Низкий уровень (LOW) входного напряжения	v1L	0,5	1.5	-	-	в
Высокий уровень (HIGH) входного напряжения	Чн	3,0	Чх) +	-	-	в
Входная емкость, приходящаяся на один вывод	С,	-	10	-	10	пФ
Частота на линии SCL	*sci	0	100	0	400	кГц
Время удержания условия Start	Ihd.sta	4,0	-	0,6	-	МКС
Как устроена шина 12С
33
Окончание таблицы 1.4
Параметр	Символ	Режим low-speed		Режим fast-speed		Ед-изм.
		МИН.	макс.	МИН.	макс.	
Период низкого уровня (LOW) сигнала SCL	kow	4,7	-	1.3	-	мкс
Период высокого уровня (HIGH) сигнала SCL	*НЮН	4,0	-	0,6	-	мкс
Время установки повторного условия Start	tsu,STA	,4,7	-	0,6	-	мкс
Время удержания данных	klO.OAT	0	3,45	0	0,9	мкс
Время установки данных	ku.DAT	250	-	100	-	НС
Время нарастания сигналов SDA и SCL	V	-	1000	20+O.tCb	300	НС
Время спада сигналов SDA и SCL	k	-	300	20 + 0,1Сь	300	нс
Время установки условия Stop	ku.sro	4,0	-	0,6	-	мкс
Время паузы между условиями Stop и Start	w	4,7	—	1.3	-	мкс
| Паразитная емкость линии	Ct,	-	400	-	400	пФ
Рис. 1.41. Временные соотношения между сигналами в режиме Hs-mode
Рис. 1.42. Временные соотношения между сигналами в режимах low-speed и fast-speed
34
Как устроена шина 12С
Таблица 1.5. Параметры режима Hs-mode
Параметр	Символ	Режим Hs-mode		q ИЗМ.
		МИН.	макс.	
Низкий уровень (LOW) входного напряжения	V|L	0,5	0,3^	В
Высокий уровень (HIGH) входного напряжения	V.H	O.TVdq	Vdo+0,5	В
Входная емкость, приходящаяся на один вывод	Q	-	10	пФ
Частота на линии SCIH	'sClH	0	3,4(0,= 100) 1,7(0 = 400)	МГц
Время задержки условия Start	'hO.STA	160	-	НС
Период низкого уровня (LOW) сигнала SCLH	*ww	160(0,= 100) 320 (Сь = 400)	-	НС
Период высокого уровня (HIGH) сигнала SCLH	'high	60(0=100) 120(Сь = 400)	-	НС
Время установки д анных	'su.tw	10	-	НС
Время удержания данных	*HO,OAT	0	70(0=100) 150(0 = 400)	НС
Время нарастания сигнала SCLH	kl	10(0=100) 20(0 = 400)	40(0='00) 80(0 = 400)	НС
Время нарастания сигнала SCLH при повторе условия Start	ku	10(0='00) 80 (Сь = 400)	20(Q,= 100) 160(O>=400)	НС
Время спада сигнала SCLH	kL	10(Cb= 100) 20(0 = 400)	40(0=100) 80(0 = 400)	НС
Время нарастания сигнала SDAH	kA	10(0=100) 20(0 = 400)	80(O)= 100) 160(0 = 400)	НС
Время спада сигнала SDAH	kA	10(0 ='00) 20(0 = 400)	80(0=100) 160(0 = 400)	НС
Время установки условия Stop	tsu,sro	160(0='00) 160(0 = 400)	-	НС
Паразитная емкость линии	Cb	-	. 400	пФ
2.	Адреса некоторых микросхем 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	АО	SAA4700A	Процессор цифровой линии 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
36
Адреса некоторых микросхем /2С
Группа (А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-драйвер
Адреса некоторых микросхем 12С
37
Группа (А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	АО	TDAB421	Аудиопроцессор
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	Интерфейс декодера цветности
1	0	1	TDA8366	Мультистацдартный видеопроцессор
38
Адреса некоторых микросхем 12С
Группа (А7..Л4)			Обозначение	Функциональное назначение
1	0	1	TDA8373	NTSC видеопроцессор
1	0	1	TDA8374	Мультистацдартный видеопроцессор
1	0	1	ТОА8375/А	Мультистацдартный видеопроцессор
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	ТОА4853/4	Автосинхронизирующийся дефлектор
1	1	0	TDA9150B	Процессор-дефлектор
1	1	0	TDA9151B	Программируемый процессор-дефлектор
1	1	АО	ТЕА6360	5-полосный эквалайзер
1	1	АО	TDA8433	Процессор-дефлектор
«9»(1001)				
1	А1	АО	PCF8591	4-кан. 8-битный АЦП и 1-кан. ЦДЛ
1 А2	А1	АО	TDA8440	Переключатель аудио/видео
А2	А1	АО	TDA8540	4x4 переключаемая видеоматрица
1	А1	АО	TDA8752	Быстрый АЦП для LCD
1	1	АО	SAA7110A	Цифровой мультистацдартный декодер
«А» (1010)				
0	0	0	РСВ2421	1к последовательная EEPROM
0	0	АО	PCF8583	256 х 8-битный RAM/часы/калецдарь
0	0	1	PCF8593	Часы-календарь с низковольтным питанием
Адреса некоторых микросхем ?С
39
Группа (А7..Л4)			Обозначение	Функциональное назначение
А2	А1	АО	PCF8570	256 х 8-битный статическая RAM
А2	А1	АО	PCF8522/4	512 х 8-битный КМОП EEPROM
А2	А1	АО	РСА8581/С	128 х 8-битный EEPROM
А2	А1	АО	PCF8582/A	256 х 8-битный EEPROM
А2	А1	РО	РСХ8594	512 х 8-битный КМОП EEPROM
А2	А1	РО	РСХ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)				
1 0	0	1	ТЕА6100	FM/1F для р/приемников с микроконтроллерами
0	1	0	ТЕА6821/2	Автомобильный AM приемник
0	1	0	ТЕА6824/Т	IF IC для автомобильных приемников
0	А1	АО	TSA5511/2/4	1,3-ГГц PLL синтезатор частоты для TV
0	А1	АО	TSA5522/3M	1,4-ГГц PU. синтезатор частоты для IV
0	1	АО	ТОА8735	150-МГц PU. синтезатор частоты
0	1	АО	TSA6057	Синтезатор частоты для радиоприемников
40	Адреса некоторых микросхем ?С
Группа (А7..Л4)			Обозначение	Функциональное назначение
0	1	АО	TSA6O6O	Синтезатор частоты для радиоприемников
0	1	АО	UMA1014	Синтезатор частоты для мобильных телефонов
1	0	0	TDA8722	Negative video modulator with FM sound
«D» (1101)				
0	0	АО	TDA8O43	QPSK демодулятор и декодер
0	0	АО	ТОА9170	YUV processor with picture improvement
0	А1	АО	PCF8573	Часы/календарь
А2	А1	АО	TDA8443A	YUV/RGB переключаемая матрица
0	1	АО	TDA8745	Декодер звука для спутникового TV
1	0	0	TDA1551Q	2 х 22 Вт автомобильный стерео УНЧ
1	А1	АО	TDA4845	Векторный процессор для кинескопов
1	А1	АО	UMA1000T	Цифровой процессор для мобильн. телефонов
1	1	АО	PCD4440	Звуковой скрамблер/дескр. для мобильн. телеф.
«Е» (1110)				
0	0	0	TDA9177	2nd адрес для LT1 (Is* is ‘40’)
0	0	0	TDA9178	2nd адрес для ЕЛ (Is* is ‘40’)
0	0	АО	SAA7192	Цифровой конвертор цвета
«F» (1111)				
X	X	X	-	Зарезервированные адреса
«0...F» (0000...1111)				
X	X	X	PCF8584	|2С контроллер шины
Примечания:
х — не определено;
А — программируемый бит;
Р — бит переключения страницы;
QAM-64 — квадратурная амплитудная модуляция с 64 значащими позициями амплитуды и фазы является спектрально-эффективным методом модуляции;
Адреса некоторых микросхем 12С
41
VPS — система программирования работы видеомагнитофона с помощью закодированных в телепрограмме сигналов, система распознавания видеопрограмм, специальная служба на TV-станциях; каждая программа передается со специальным кодом, воспринимаемым декодером VPS, который управляет записью по таймеру; если кодовые сигналы телепрограммы и внутренних установок совпадают, производится запись (управляющая информация передается в 16-й строке);
RDS/RBDS — система передачи данных в диапазоне FM; используется для передачи информации в цифровом виде и отображения ее на дисплее радиоприемника;
VIP — входной видеопроцессор;
PIP — эффект «кадр в кадре», специальное устройство, позволяющее «врезать» в текущее изображение одно или несколько дополнительных изображений меньшего формата;
D2MAC — система цветного телевидения — аналоговый сигнал, частичная цифровая обработка, цифровой сигнал звукового сопровождения; распространена в основном в кабельных и спутниковых системах;
LCD — жидкокристаллический индикатор;
LED — светодиодный индикатор;
EEPROM — электрически программирумая/репрограммируемая память;
OSD — отображение на экране телевизора дополнительной информации;
QPSK — квадратурная фазовая модуляция (манипуляция); применяется в системах спутникового TV.
Представители микросхем с интерфейсом ?С
43
3.	Представители микросхем с интерфейсом 12С
В этой главе приводятся сведения, необходимые для проектирования несложных конструкций на основе микросхем с интерфейсом I С. Как показывает практика, далеко не все микросхемы возможно использовать в радиолюбительском творчестве. Например, достаточно трудно применять такие варианты, как микросхемы для телевизионных приемников, формирователи сигналов разверток, корректоры цветовых переходов, декодеры цветности, синтезаторы частоты для мобильных телефонов и т. д. Поэтому в рамках данной книги рассматриваются микросхемы, которые могут быть использованы преимущественно в домашней аудиоаппаратуре, такой, как, например, усилители низкой частоты, усилители мощности, радиоприемники. Что-то подойдет для создания несложных и полезных устройств на основе микроконтроллера — охранные системы, системы сбора информации, электронные частотомеры, фазометры, генераторы. При необходимости получить информацию по другим типам микросхем можно непосредственно с сайта фирмы Philips (http.//www.senuconductors.philips.com). Следует отметить, что оригинальная документация требует перевода с английского языка, а значит, необходимо приложить некоторые усилия тем, кто английский знает плохо или вообще не знает. Но при определенном навыке глубоких знаний не требуется и смысл большинства слов становится ясным без перевода.
Итак, перейдем к рассмотрению микросхем.
3.1.	ЭСППЗУ с последовательным доступом
Микросхемы ЭСППЗУ (электрически стираемые постоянно программируемые запоминающие устройства) с последовательным доступом появились на рынке сравнительно недавно, но тем не менее они прочно вошли в арсенал разработчика. Международная аббревиатура микросхем — 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], относящейся к микросхемам
44
Представители микросхем с интерфейсом 12С
РСА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.
Представители микросхем с интерфейсом Рс
45
Таблица 3.1. Назначение выводов РСА8581
Символ	Вывод	Описание
АО	1	slave-адрес 0
А1	2	slave-адрес 1
А2	3	slave-адрес 2
Vss	4	Общий вывод
SDA	5	Линия SDA вход/выход
SCL	6	Линия SCL вход
TEST	7	Тестовый вывод
Voo	8	Питание«+»
АО [7		~8~| Vdd
А1 [г		7] TEST
А2[3		б] SCL
Vss |~4		s] SDA
Рис. 3.1. Расположение выводов микросхемы РСА8581
Внутреннее устройство микросхемы показано на рис. 3.2.
Чтобы предохранить микросхему от перегрузок, например при воздействии статического электричества, разработаны и используются разные методы защиты. Наиболее эффективны, дешевы и носят массовый характер методы встраивания защитных диодов. Один из таких способов, примененный в данной микросхеме, показан на рис. 3.3.
Выводы конфигурации slave-адреса А0...А2 снабжены двумя последовательно включенными диодами. При превышении напряжения на выводах А0...А2 порога, заданного напряжением VDD, открывается верхний диод и «притягивает» вывод к потенциалу питания VDD. Если напряжение становится ниже Vss (потенциал общего провода), открывается нижний диод и «притягивает» вывод к потенциалу «земли» Vss. Обратите внимание: в данном случае выводы SDA и SCL имеют только защиту от отрицательного напряжения и не имеют за-
46
Представители микросхем с интерфейсом 12С
Рис. 3.2. Внутреннее устройство микросхемы РСА8581
Рис. 3.3. Защита от перегрузок
щиты от положительного (верхний диод отсутствует), поскольку микросхема может быть использована при напряжениях на шине, отличных от напряжения питания микросхемы.
Мы уже знаем, что обращение к микросхеме происходит посредством передачи по шине 12С slave-адреса, как показано на рис. 3.4. Адрес в данном случае состоиг из 7 битов. Старшие 4 бита (1010) оп
Представители микросхем с интерфейсом PC
47
ределяют принадлежность микросхемы к группе EEPROM, младшие 3 бита — АО, Al, А2 — задают уникальный идентификационный номер в группе однотипных микросхем. Если на шине присутствует несколько микросхем с одинаковыми старшими 4 битами slave-адреса, необходимо с помощью перемычек, подключаемых к напряжению питания или к общему проводу, задать на выводах А0...А2 потенциалы, назначить микросхемам уникальные идентификационные номера, например, как показано на рис. 3.5. Обращение к соответствующему элементу будет производиться программно, заданием битов А0...А2.
1 1 0 | 1 | 0	А2 | А1 | АО
Группа!	Группа 2
Рис. 3.4. Построение slave-адреса
Vdd
SDA SCL
Рис. 3.5. Соединение однотипных микросхем на шине 12С
48
Представители микросхем с интерфейсом ?С
Рис. 3.6. Матрица памяти
|s|	|о|а|<	|а| , 1аЦП
R/W задается	||
пользователем	автоинкремент
адреса
Рис. 3.7. Master передает данные к slave
Разберемся теперь, как устроена матрица памяти микросхемы и каким образом осуществить запись (считывание) данных.
Рассмотрим сначала ситуацию, когда устройство master передает данные к slave-абоненту (режим записи WRITE). Формат сообщения представлен на рис. 3.7.
Вначале осуществляется передача slave-адреса и признака R/W (в данном случае этот бит установлен в «О»), Второй байт — адрес ячейки матрицы памяти, изображенной на рис. 3.6. Обратите внимание: старший бит этого байта, помеченный на рис. 3.7 знаком «х», не определяется или, другими словами, может быть установлен в «О» или в «1». Почему? Это станет понятным, когда мы представим, что с помощью 8 битов возможно задание 256 адресов, но в данной микросхеме присутствует только 128 ячеек (а значит, столько же и адресов). Старшие. 128 адресов здесь просто не определены.
После передачи адреса ячейки осуществляется передача байта данных (DATA). Биты 7...0 последовательно занимают ячейки памяти. После приема бита «О» данных осуществляется автоинкремент (увеличение на единицу) адреса памяти. Естественно, завершение передачи должно сопровождаться появлением условия Stop.
Чтение из памяти осуществляется по протоколу, показанному на рис. 3.8.
АСК	АСК	АСК
slave	slave	slave
|s|	;о|а|»; «ус-н-i |a|s|:	Z
В этот момент FVW master начинает--------
принимать данные, a slave - передачу
АСК	отсутствие АСК
master	master
автоинкремент автоинкремент адреса	адреса
Рис. 3.8. Чтение из памяти
Представители микросхем с интерфейсом 12С
49
Вначале необходимо передать slave-адрес с признаком R/W — «О», затем адрес ячейки. После получения master-абонентом сигнала АСК, свидетельствующего о нормальном приеме адреса ячейки памяти, master-абонент должен выставить повторное условие Start и передать slave-устройству slave-адрес с признаком R/W — «1», получить АСК от slave-устройства и начать считывание данных, выставляя после каждого полученного байта ^сигнал АСК. После получения последнего байта master-абонент не выставляет сигнала АСК, а выполняет условие Stop. Заметим, что в данном случае также справедлив автоинкремент адреса ячейки.
Master-абонент может начать непосредственное чтение со slave-устройства, но в этом случае он должен учитывать, что чтение будет производиться не с нулевого адреса, а с увеличенного на единицу адреса, операция с которым была последней в предыдущем цикле (рис. 3.9).
АСК slave
АСК slave
АСК slave
автоинкремент автоинкремент адреса	адреса
Рис. 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 лет хранения записанной информации,
50
Представители микросхем с интерфейсом 12С
Рис. ЗЛО. Внутреннее устройство микросхем PCF8582, PCF8594, PCF8598
Представители микросхем с интерфейсом ?С	51
совместимы с чипами PCF8570, PCF8571, PCF8572 и PCF8581 по расположению выводов. Внутренее устройство микросхем PCF8582, PCF8594 и PCF8598 приведено на рис. 3.10.
Расположение выводов указанных микросхем приведено на рис. 3.11, назначение выводов — в табл. 3.3—3.5.
АО [7		8~| Vod	wp [7		8~] Vdd	wp [7		~8~| Vod
АТ [7		7] ртс	Al U		7] ptc	-n		7] ptc
А2 [з		e]scL	A2 [7		e] SCL	A2 [з		б] SCL
Vss[~4		5] SDA	Vss [T		J]sda	Vss fT		5] SDA
	PCF8582			PCF8594			PCF8598	
Рис. 3.11. Расположение выводов
Таблица 3.3. Назначение выводов PCF8582
Символ	Вывод	Описание
AO	1	Slave-адрес 0
Al	2	Slave-адрес 1
A2	3	Slave-адрес 2
vss	4	Общий вывод
SDA	5	Линия SDA вход/выход
SCL	6	Линия SCL вход
PTC	7	Контроль времени программирования
Vdd	8	Вывод питания«+»
Таблица 3.4. Назначение выводов PCF8594
Символ	Вывод	Описание
WP	1	Защита записи
А1	2	Slave-адрес 1
А2	3	Slave-адрес 2
Vss	4	Общий вывод
SDA	5	Линия SDA вход/выход
52
Представители микросхем с интерфейсом ?С
Окончание таблицы 3.4
Символ	Вывод	Описание
SCL	6	Линия SCL вход
РТС	7	Контроль времени программирования
Уро			8		Вывод питания «+»
Таблица 3.5. Назначение выводов PCF859B
Символ	Вывод	Описание	i
WP	1	Защита записи
-	2	Не используется
А2	3	Slave-адрес 2
Vss	4	Общий вывод
SDA	5	Линия SDA вход/выход
SCL	6	Линия SCL вход
PTC	7	Контроль времени программирования
	Уро		8	Вывод питания«+»
Протокол программирования памяти микросхем аналогичен приведенному ранее, но имеет некоторые особенности. Одна из особенностей связана с тем, что адрес ячейки памяти не может содержать число, превышающее 255. Но приведенные типы микросхем содержат 512 и 1024 ячейки. Что это означает? Все очень просто: в slave-адресе биты А0...А2 уже не все программируются внешними перемычками. Часть из них выбирается программно, при задании slave-адреса. Мы словно объединяем в одном корпусе несколько микросхем PCF8582. Структура памяти, состоящая из блоков по 256 байтов, называется страничной организацией. К слову, максимальное число страниц в одной микросхеме 8.
Интересной возможностью, реализованной в описываемых микросхемах, является возможность защиты от повторной записи. Если вывод WP имеет низкий уровень, работа с EEPROM не имеет ограничений. Если WP устанавливается в состояние «1», верхняя половина памяти EEPROM защищается от записи. В таком случае сигнал АСК не будет генерироваться при адресации к верхней половине (256 байтов) PCF9594 и PCF8598 (512 байтов).
Представители микросхем с интерфейсом 12С
53
При записи данных в память EEPROM должны быть выдержаны определенные временные соотношения (циклы erase/write). Длительность этих циклов формируется внутри микросхемы и в большинстве случаев не требует коррекции. Если коррекции не требуется, вывод РТС может быть подключен к VDD или оставлен не подключенным. Типичное значение времени tF/w = 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.
54
Представители микросхем с интерфейсом PC
8JVOO
7] WP 6]scl я] SDA
Рис. 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.
Представители микросхем с интерфейсом 12С
55
Рис. 3.13. Процедура поллинга
Рис. 3.14. Внутреннее устройство микросхемы 24LC16B
56
Представители микросхем с интерфейсом 12С
На рис. 3.14:
1	—- порт ввода/вывода;
2	— контроллер памяти;
3	— декодер «X»;
4	— генератор высокого напряжения;
5	— матрица памяти;
6	— селектор страниц;
7	— декодер «Y»;
8	— схема контроля R/W.
24LC32A
Пожалуй, это наиболее интересная микросхема, позволяющая хранить 32 кбита информации. «Как же так, — спросите вы, — неужели возможно без специальных средств обеспечить хранение и обмен информации, превышающей 16 кбитов?» Оказывается, можно. Причем никаких дополнительных микросхем расширения не потребуется — все необходимые средства уже есть в составе описываемой EEPROM.
Мы не будем останавливаться на параметрах микросхемы, так как они в основном совпадают с теми, что были приведены для 24LC16B. Расположение выводов показано на рис. 3.15, внутреннее устройство — на рис. 3.16. Назначение блоков совпадает с рис. 3.14.
Вы уже обратили внимание на наличие выводов A0...A3, позволяющих селектировать slave-адрес и «повесить» на шину 12С до 8 таких микросхем? Не будет ли здесь путаницы, шинного конфликта? В самом деле, классический вариант может адресовать только 256
АО [7
Al U
А2 [з
Vss[T
в] Vcc
7] WP
6]scl s] SDA
Рис. 3.15. Расположение выводов 24LC32A
Представители микросхем с интерфейсом 12С
57
Рис. 3.16. Внутреннее устройство микросхемы 24LC32A
ячеек, переключая страницы посредством задания определенных уровней сигнала на выводах АО...АЗ или программируя их в slave-адресе. Дело в том, что данная микросхема имеет два адресных бита, следующих за slave-адресом, как показано на рис. 3.17.
ЕШШШШ!!]	l?lxlxlxlxlxl*lol
slave-адрес
адресный бит 1
адресный бит О
Рис. 3.17. Адресация в микросхеме 24LC32A
Матрица памяти разделена здесь также на блоки по 256 байтов, но селектируются они уже не посредством задания битов А0...А2 в slave-адресе, а битами А8...А11 в адресном бите 1.
Операции записи байта, записи цепочки байтов с автоинкрементом адреса, чтения байта и чтения байта с автоинкрементом приведены на рис. 3.18...3.21. Дополнительных пояснений рисунки не требуют.
Добавлю, что в данной микросхеме предусмотрен вывод WP, позволяющий выполнить защиту от записи. Здесь также может быть использована процедура программного поллинга для обеспечения быстрого повторного доступа.
58
Представители микросхем с интерфейсом /2С
№№ПП°, |о|о|о|оГПТ1I I I I I I I П I I I I I I I I I FI
slave-	ДА адресный	А	адресный	A	DATA А
адрес	WC байт 1	С	байт 1	С	С
Рис. 3.18. Запись байта в память
ЕП1°П1°ПТ|о, 1°,о1о1°ГГГП 1111111 in 11111I I 1у,111111111 FI
slave-адрес ДА адресный А адресный A	DATA О	DATA 31 А
М/С байт 1 С байт О С	С
Рис. 3.19. Запись цепочки байтов с автоинкрементом адреса
№№ГГП°, ,о,о,о,оПТП 11 П'ПТП ЕВДФГТГП! ГН ГI 1111 и slave-адрес ДА	адресный	А	адресный	А	slave-адрес	ДА DATA N
WC	байт1	С	байт О	С	М/С	О
К	К	К	КА
Си
Рис. 3.20. Чтение одиночного байта
DATA п+2
DATAn+X
DATAn
DATAn+1
slave-адрес
Ck
Рис. 3.21. Чтение цепочки байтов с автоинкрементом
К5004РС2, КР5004РР4
Отечественная промышленность хоть и с большим опозданием, но все же собирается выпустить на рынок микросхемы памяти с последовательным доступом и интерфейсом, один к одному соответствующим 12С [17, 18]. И хотя на момент написания этой книги доку
Представители микросхем с интерфейсом FC'
59
ментация пока еще имеет гриф «предварительно», возможно, что ко дню выхода этой книги из печати микросхемы К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.
В чем же может заключаться преимущество данных микросхем перед импортными? Пожалуй, только в цене.
3.2. Синтезаторы частоты
Синтезаторы частоты используются в радиоприемной аппаратуре, телевизорах, аппаратуре сотовой и многоканальной связи для получения стабильной во времени частоты, которую можно регулировать с определенным шагом. Другими словами, синтезатор служит для формирования сетки частот. Синтезаторы частоты обычно выполняются с применением цифровой техники, то есть необходимая частота задается в цифровом виде, управление осуществляется с помощью микроконтроллера. Красноречивый пример удобства использования цифровой настройки вы можете почувствовать, когда включаете в телевизоре режим автосканирования. Синтезатор плавно «пробежит» диапазон, микроконтроллер «запомнит» найденные те
60
Представители микросхем с интерфейсом Рс
леканалы, и пользователю остается только нажимать кнопки выбора каналов на дистанционном пульте управления.
Общие принципы устройства синтезаторов, их применения в радиолюбительских приемниках вы сможете найти в предыдущей книге данной серии [14]. В этой книге приводится пример использования синтезатора SAA1057 фирмы Philips. Для его программирования необходимо иметь три линии стандарта CBUS, что, конечно, не слишком удобно. Шина 12С в этом отношении более прогрессивна, так как имеет только две линии. Естественно, немного усложнен протокол обмена, но это плата за внешнюю простоту. К тому же для обеспечения обмена и передачи данных нужно всего лишь соответствующим образом разработать программное обеспечение.
В качестве примера синтезатора частоты с интерфейсом 12С мы рассмотрим микросхему TSA6057 [15]. Аналогичная ей микросхема TSA6060 имеет расширенный частотный диапазон и практически не отличается от TSA6057.
TSA6057
Этот синтезатор частоты специально разработан для использования в радиоприемной аппаратуре. Он выпускается в корпусах DIP 16 (TSA6057) и SOT162-1 (TSA6057T) с планарными выводами. В предуведомлении [15] содержатся основные технические характеристики микросхемы, а также упоминаются ее преимущества по сравнению с предыдущими разработками в этой области:
•	совмещенный предварительный усилитель сигналов AM и FM диапазонов с высокой входной чувствительностью;
•	совмещенный токовый усилитель типа «зарядовый насос» (charge pump) с двумя уровнями выходного тока и регулировкой петлевого усиления системы ФАЛЧ (фазовой автоподстройки частоты);
•	единый задающий генератор (4 МГц) для диапазонов AM и FM;
•	быстрая настройка, обеспечиваемая цифровым фазовым детектором;
•	настраиваемая сетка частот: 1, 10,25 кГц;
•	программный контроль переключения диапазонов.
Представители микросхем с интерфейсом FC	61
Расположение выводов микросхемы приведено на рис. 3.22, назначение выводов — в табл. 3.6.
Таблица 3.6. Назначение выводов TSA6057
Символ	Вывод	Описание
XTAL1	1	Выход задающего генератора
XTAL2	2	Вход задающего генератора
VCC1	3	Вывод питания«+»
Vee	4	Общий провод («земля»)
	5	Вход гетеродинного сигнала FM
DEC	6	Вывод развязки предварительного делителя
A™	7	Вход гетеродинного сигнала AM
BS	8	Вывод переключения диапазонов (открытый коллектор)
♦ref	9	Выход частоты 40 кГц
SDA	10	Линия SDA |2С шины
SCL	11	Линия SCL PC шины
AS	12	Селектор slave-адреса на шине 14!
FM0	13	Выход FM внешнего петлевого фильтра
LOOP)	14	Выход усилителя настройки
AMo	15	Выход AM внешнего петлевого фильтра
1	16	Вывод питания«+»
XTALlfl		T| VCC2
XTAL2 [7		7] AMo
Vcci [7		7] LOOP)
Vee[4		3 FMo
Fm [7		7] AS
DEC [7		7] SCL
Am [7		7] SDA
bs[b		e]u
Рис. 3.22. Расположение выводов TSA6057
62	Представители микросхем с интерфейсом 12С
Представители микросхем с интерфейсом 12С
63
Микросхема сохраняет работоспособность в интервале температур от -30 до +85 °C и хранится в интервале температур от -65 до +150 °C.
Основные параметры, необходимые для проектирования, приведены в табл. 3.7.
Таблица 3.7
Параметр технических условий	Символ	Мин.	Норма	Макс.	Ед. ИЗМ.
Напряжение питания (вывод 3)	Vcci	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	4l	-0,3	-	1,0	в
Максимальная входная частота на входе AM,	f|AM	30	-	-	МГц
Минимальная входная частота на входе AM,	fiAM	-	-	0,512	МГц
Максимальная входная частота на входе FM,	f|FM	150	-	-	МГц
Минимальная входная частота на входе FM,	f|FM	-	-	30	МГц
Входное сопротивление на входе AM,	Ram	-	5,9	-	кОм
Входная емкость по входу АЦ	Cam	-	2	-	пФ
Входное сопротивление на входе FM,	rfm	-	3,6		кОм
Входная емкость по входу FM,	Срм	-	2	-	пФ
Входное напряжение на входе AM, (RMS)	4am	30	-	500	мВ
Входное напряжение на входе FMS (RMS)	VFM	20	-	300	мВ
Выходной ток схемы «зарядовый насос»: бит СР = 0 бит СР = 1	'dip 'dip	3 400	5 500	7 600	мкА мкА
Окончание таблицы 3.7
Параметр технических условий	Символ	Мин.	Норма	Макс.	Ед.изм.
Выходное напряжение на выводе 8 (СР):					
высокий уровень	V*	—	—	12	В
низкий уровень	Vol	-	—	0,8	В
Выходная частота на выводе 9	^ref	-	40	-	кГц
Напряжение на выводе 9:	>				
высокий уровень	Voh	1.2	1,4	1.7	В
низкий уровень.	Vd	—	0,1	0,2	В
Напряжение на выводе 15 (AM tuning):					
максимальный уровень	VoMAX	4=02-1.5	—	—	В
минимальный уровень	VoMIN	—	—	0,8	В
Напряжение на выводе 13 (FM tuning):					
максимальный уровень	VoMAX	4=02-1,5	—	—	В
| минимальный уровень	VoMIN	—	—	0,8	В
Блок-схема, отображающая внутреннее устройство микросхемы TSA6057, приведена на рис. 3.23. Цифрами обозначены:
1, 2 — входные буферные усилители;
3	— предварительный усилитель с коэффициентом деления 3 и 4;
4	— мультиплексор;
5	— предварительный делитель с коэффициентом деления 3 и 4;
6	— 13-битный программируемый делитель;
7	— 4-битный swallop счетчик;
8	— цифровой фазовый детектор;
9	— мультиплексор «3 в 1»;
10	— задающий счетчик;
11	— задающий генератор;
12	— стабилизатор;
13	— контроллер шины 12С;
14	— регистр установленной частоты;
15	— программируемый токовый усилитель;
16	, 17 — выходные усилители;
18	— переключатель FM/AM;
19	— переключатель AM/FM;
20	— переключатель диапазонов.
Управление синтезатором осуществляется с помощью цепочки командных байтов, приведенной на рис. 3.24.
64
Представители микросхем с интерфейсом ?С
Рис. 3.23. Внутреннее устройство микросхемы TSA6057
Представители микросхем с интерфейсом Рс	65
rav
| S| '	Г1о|аГ	'|а| ’ ' ра|ао ' ' |А| ' ' datai * |а| ' ’ 6ата2 ' ' | ' ' ратаз 'ZLE0
А7	АО	D7	DO D7	DO D7	D0D7	DO
Рис. 3.24. Структура управляющей цепочки командных байтов
Управляющая цепочка в общем случае содержит 6 байтов, но может содержать и 4 байта, то есть программирование синтезатора будет осуществляться быстрее. Чтобы определиться, в каких случаях возможно сокращение (усечение) цепочки, рассмотрим структуру и назначение каждого бита. Информация об этом содержится на рис. 3.25.
1	1	0	0	0	1	0/1	0
slave-адрес
1	1	000	10/10
А7	АО
0	0	0	0	0	0	0/1	0/1
							
S6	S5	S4	S3	S2	S1	so	CP
D7	DO							
S14	S13	S12	S11	S10	S9	S8	S7
D7	DO							
REF1	REF2	FM/АЙ	FWam OPAMP	—	BS	S16	S15
D7	DO
subadress
DATA О
DATA1
DATA 2
T1	T2	T3					
D7	DO
DATA3
Рис. 3.25. Структура управляющих байтов
Знакомый нам slave-адрес задан жестко, кроме информационного бита А1, связанного с выводом AS (12) микросхемы. Если подключить вывод AS к напряжению питания (+ 5 В), бит А1 должен программироваться в «1», если к общему проводу — то в «О». Соответственно в одном устройстве может одновременно работать 2 одинаковых PLL синтезатора. Зачем это нужно? Если вы прочтете книгу [14], то узнаете из нее о существовании так называемой системы
66
Представители микросхем с интерфейсом 12С
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 |aJp]
,	Is| slave IA| subadress 03 |a| DATA 3 |a| DATA 0 |A[ DATA 1 |a| DATA 2 |A|P|
Рис. 3.26. Информация, передаваемая по субадресу
Наиболее полной является информация, передаваемая по субадресу со значением 03. Информация по субадресам 02 и 00 является как бы поделенной на две части. Очень важно отметить, что такое разделение не случайно. Почему? Снова обратим внимание на рис. 3.25. Информационные слова DATA0 и DATA1 содержат в основном данные по частоте настройки, в то время как слова DATA2 и DATA3 определяют в основном установки синтезатора частоты, которые подвержены изменению в значительно меньшей степени. Когда нет смысла часто менять установки, можно передавать только частоту настройки, тем самым сокращая время программирования. Удобно? Вне всякого сомнения! Забегая вперед, можно сказать, что слова DATA2 и DATA3 все-таки содержат данные о частоте (биты S15 и S16), но, как оказывается, в некоторых случаях они не подвержены изменению.
Теперь рассмотрим подробнее назначение битов, содержащихся в байтах DATA0...DATA3, а также принципы ее формирования. Частота настройки, которая будет отслеживаться синтезатором, устанавливается по правилу, приведенному в табл. 3.8.
Представители микросхем с интерфейсом 1гС
67
Таблица 3.8
Бит «FM/АМ»	Входные частоты	Диапазон
0	(Sox2O + S|X2' +...+ S13x2’3 + S14x214)xfref	AM
1	(8ох2О+ S)x2| +...+ S15x215 + Sl6x2l6)xtrel	FM	|
Задав битами S0...S14 для диапазона AM или битами S0...S16 для диапазона FM значение частоты, нужно умножить его на значение шага сетки частот (fref), и тогда мы получим истинное значение частоты, которое синтезатор будет поддерживать. Значение частоты fref задается битами REF1 и REF2, содержащимися в байте DATA2 по правилу, приведенному в табл. 3.9.
Таблица 3.9
REFI	REF2	Частота, кГц I
0	0	1
0	1	10
1	0	25
1	1	-
Важно также отметить, что минимальное значение частоты, задаваемое битами S0...S14, составляет 2б, то есть 64, а в диапазоне FM — 28, то есть 256. Теперь нам станет понятно, почему в некоторых случаях нет необходимости менять информацию, содержащуюся в словах DATA2 и DATA3, однажды задав ее, или обновлять достаточно редко (если, конечно, приемник работает только в диапазоне FM с сеткой частот 10 кГц). Попробуйте оценить, почему в этом случае вообще не нужно переключений в байтах DATA2 и DATA3...
Понятно, что бит FM/AM, содержащийся в байте DATA2, «переключает» диапазон, выбирая в качестве входа вывод 5 или вывод 7 микросхемы. Но необходимо также переключать и выходной программируемый токовый усилитель (поз. 15 на рис. 3.23). Для этого предназначены переключатели (поз. 18 и 19 на рис. 3.23), которые управляются с помощью бита «FM/АМ оратр». Состояние этого бита показано в табл. 3.10.
68
Представители микросхем с интерфейсом PC
Таблица 3.10
Бит «FM/АМ оратр»	, Ключ «FM/АМ»	Ключ«АМ/ЕМ»
1	закрыт	открыт
|	0	открыт	закрыт
Бит «BS» (Bandswidth) очень удобно использовать для переключения диапазонов приемника, так как его значение, будучи задано программно, появляется на выводе BS микросхемы (вывод 8). Необходимо отметить, что данный вывод выполнен по технологии «открытый коллектор» и для нормального функционирования важно нагрузить его сопротивлением порядка I0 кОм, подключенным к напряжению питания (5 В).
Биты Т1...ТЗ относятся к тестовым функциям, которые не описаны в документации [15]. Рекомендуется программировать все биты байта DAT АЗ нулями.
Типовая схема включения TSA6057 приведена на рис. 3.27. На основе этой микросхемы читателю будет предложено построить несложный тюнер, работающий в диапазонах FM и ЧМ («западном» и «отечественном»).
Рис. 3.27. Типовая схема включения TSA6057
Представители микросхем с интерфейсом ?С
69
TSA6060
Этот PLL синтезатор мало чем отличается от ранее описанной микросхемы TSA6057, поэтому здесь следует обратить внимание только на интересные отличия.
Для задания частоты генератора может использоваться кварцевый резонатор на 4 или 8 МГц (конфигурируется программно). Частотный диапазон: 500 кГц...ЗО МГц — для AM и 30...200 МГц — для диапазона FM. Эта микросхема также может использоваться в селекторах метровых волн телевизионных приемников (VHF). Сетка частот может быть указана с шагом 1,10, 25, 50 кГц. Расположение выводов микросхемы TSA6060 показано на рис. 3.28, а назначение выводов — в табл. 3.11.
INLCK [7		~7| VCC2
xtalJT		Т] АМо
Vcci [з		T) LOOP!
Vet [7		7] FMo
Fmi |~5		T] AS
ОЕс[б		6]scl
Ам [7		7] SDA
BS[8		fret
Таблица 3.11. Назначение выводов микросхемы TSA6060
Рис. 3.28. Расположение выводов микросхемы TSA6060
Символ	Вывод	Описание
I INLCK	1	in-lock выходной детектор
XTAL2	2	Вход задающего генератора
Vcel	3	Вывод питания«+»
Vee	4	Общий провод («земля>)
Fmi	5	Вход гетеродинного сигнала FM
DEC	6	Вывод развязки предварительного делителя
А»	7	Вход гетеродинного сигнала AM
BS	8	Вывод переключения диапазонов (открытый коллектор)
70
Представители микросхем с интерфейсом Рс
Окончание таблицы 3.4
.	— Символ	Вывод	Описание
k	9	Выход частоты 40 кГц
SDA	10	Линия SDA ГС шины
SCL	11	Линия SCL ГС шины
AS	12	Селектор slave-адреса на шине ГС
FM0	13	Выход FM внешнего петлевого фильтра
LOOPi	14	Выход усилителя настройки
АМ0	15	Выход AM внешнего петлевого фильтра
I V«2	16	Вывод питания«+»
В комбинацию битов REF1 и REF2 добавлена сетка частот 50 кГц — комбинация 11. Байты информации DATA2 и DAT3 имеют следующую структуру, показанную на рис. 3.29.
В документации приведена табл. 3.12, где указаны тестовые сигналы.
REF1	REF2	РмДЯ	га/Ам ОРАМР	8ДИГц	BS	S16	S15
DATA 2
—	—	—	—	тз	Т2	Т1	—
DATA3
Рис. 3.29. Структура информационных байтов
Таблица 3.12. Тестовые сигналы
тз	12	Т1	Функция
0	X	0	Нормальная работа
1	0	1	СР source
0	1	1	СР sink
1	1	1	СР 3-state
0	0	1	CPsink+source
1	1	X	BS = main divider output
1	0	X	BS = reference divider output
Представители микросхем с интерфейсом PC
71
Сигнал INLCK (вывод 1) свидетельствует о захвате фазовым детектором частоты и об удержании ее. Дело в том, что при перестройке с одной частоты на другую требуется некоторое время для того, чтобы фазовый детектор вошел в синхронизацию и поддерживал неизменной частоту гетеродина. Процесс перестройки с частоты fj на частоту f2 показан на рис. 3.30.
График рис. 3.30, а отражает процесс изменения напряжения настройки (по сути это напряжение смещения на варикапах). Уровень напряжения, соответствующий частоте fp показан сплошной линией, соответствующий частоте f2 — пунктирной линией. Перестройка с частоты на частоту занимает некоторое время, и в момент ее начала сигнал захвата INLCK устанавливается в нулевое состояние. Так как петля ФАПЧ обладает некоторой инерционностью, напряжение «проскакивает» уровень f2, но через некоторое время снова склоняется к уровню f2. Процесс носит характер колебательного, но постепенно (асимптотически) сходящегося. В моменты пересечения линии f2 внутренняя схема lock flag (рис. 3.30, 6) вырабатывает сигналы, свидетельствующие об этом (короткие установки в ноль), но на выходе
Рис. 3.30. Захват частоты при перестройке
72	Представители микросхем с интерфейсом 12С
INLCK сохраняется низкий уровень, так как высокий уровень здесь может установиться спустя некоторое время (рис. 3.30, в). Так как вывод INLCK достаточно маломощный, необходимо использовать простейший буферный элемент — ключ на транзисторе (рис. 3.31).
Подключение микросхемы TSA6060 имеет минимальные отличия от описанной ранее TSA6057. Отличие состоит в установке кварцевого резонатора (рис. 3.32).
Рис. 3.31. Буферирование сигнала INLCK
Рис. 3.32. Подключение кварцевого резонатора к TSA6060
3.3.	Микросхемы для аудиоаппаратуры
TDA1551Q
В оригинальной документации [19] эта микросхема классифицируется как BTL car radio amplifier with diagnostic facility, или в переводе на русский язык — автомобильный мостовой усилитель мощности (УНЧ) со встроенными средствами диагностики состояния. Естественно, данную микросхему можно применять не только в автомобильной технике, но также и для создания высококачественного бытового стереоусилителя. Вообще похожие микросхемы, которые не снабжены интерфейсом 12С для диагностики состояния, широко распространены на отечественном рынке радиодеталей. К примеру, это TDA1519A, TDA1552Q, TDA1553Q, TDA1570Q, TDA8920 и многие другие. Однако микросхема TDA1551Q — значительный шаг вперед по сравнению с указанными микросборками в плане сервисных возможностей. Итак, что сказано в предуведомлении:
•	наличие минимального количества внешних навесных элементов;
Представители микросхем с интерфейсом /2С
73
•	возможность использования в четырехканальном и мостовом двухканальном вариантах;
•	управление и контроль посредством шины 12С;
•	наличие детектора динамических искажений;
•	тепловая защита;
•	наличие детектора пониженного напряжения питания;
•	высокая выходная мощность;
•	наличие режимов MUTE (блокировка звука) и SLEEP («засыпание»), задаваемых по шине 12С;
•	дополнительное подавление пульсаций питающего напряжения;
•	наличие схемы защиты нагрузки;
•	наличие схемы защиты по постоянному и переменному току от замыканий выходных контактов на общий провод и на шину питания;
•	низкое тепловое сопротивление корпуса;
•	наличие равноправных входов (инвертирующего и неинвертирующего).
Микросхема представляет собой усилитель низкой частоты класса В, размещенный в удобном корпусе SOT243R (рис. 3.33). Расположение выводов показано на рис. 3.34, а их назначение — в табл. 3.13.
iii!iiiiiiiiiiijioi!iii!iiiiiiiiii|
шшш
__О_,
Размер	А		ЬР	СР	D	d	Е	е	е1	е2	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
74
Представители микросхем с интерфейсом /2С
-INV1
INV1 SGND VPRP
VP1
OUT1
PGDN1
OUT2 STBY 0UT3
PGND2
OUT4
Vp2
INV2
NINV2
SCL
SDA
	
Е Е Е Е Е	
Е	о
Е	to
Е	£
Е	< О
Е	Н
Е Е Е Е	
Е Е	
Рис. 3.34. Расположение выводов TDA1551Q
Таблица 3.13. Назначение выводов микросхемы
Символ	Вывод	Описание
-INV1	1	Неинвертирующий вход 1
INV1	2	Инвертирующий вход 1	|
GND	3	Сигнальная «земля»	|
Vfxr	4	Вывод подключения конденсатора фильтра
v₽»	5	Вывод питания 1
OUT1	6	Выход 1
GND1	7	«Земля» шины питания 1
01Я2	8	Выход 2
SB	9	Вывод «дежурный режим»
OUT3	10	Выход 3	|
GND2	11	«Земля» шины питания 2
О1ГГ4	12	Выход 4
L			13	Вывод питания 2
INV2	14	Инвертирующий вход 2
-INV2	15	Неинвертирующий вход 2
SCL	16	Линия SCL шины 12С
	SDA	17	Линия SDA шины 12С
Представители микросхем с интерфейсом FC
75
Внутреннее устройство микросхемы TDA1551Q показано на рис. 3.35. Основные параметры микросхемы, необходимые для проектирования, приведены в табл. 3.14.
Рис. 3.35. Внутреннее устройство
76
Представители микросхем с интерфейсом 12С
Таблица 3.14
Параметр технических условий	Символ	Мин.	Норма	Макс.	Ед. изм.
Напряжение питания	Vp	6	14,4	18	В
Неповторяющийся пиковый выходной ток	1 osm	—	-	6	А
Повторяющийся пиковый выходной ток	lorm	-	-	4	А
Диапазон температур хранения	Ttfg	-55	-	+150	•с
Рабочая температура кристалла	Тс	-	-	+150	'С
Общая тепловая рассеиваемая мощность	Pfcit	-	-	60	Вт
Тепловое сопротивление «кристалл-корпуо		-	1.5	-	Ж/Вт
Тепловое сопротивление «кристалл-среда» (без радиатора)		-	40	-	Ж/Вт
Мостовое включение					
Выходная мощность: THD = 0,5% ТНО= 10%	Po	15 20	17 22	-	Вт
Общие гармонические искажения (вых. мощность 1 Вт)	TO	-	0,05	-	%
Полоса воспроизводимых частот (по уровню -1 дБ)	В	20	-	20000	Гц
Коэффициент усиления	G,	25	26	27	ДБ
Входной импеданс		25	30	38	кОм
Разделение каналов'	a	40	-	-	ДБ
Порог срабатывания детектора гармонических искажений			3,5	-	%
Небаланс каналов		-	-	1	дБ
Одиночное включение					
Выходная мощность: ТО = 0,5% ТО= 10%	P0	4 5,5	5 6			Вт
Общие гармонические искажения (вых. мощность 1 Вт)	TO	-	0,05	-	%
Нижняя воспроизводимая частота (по уровню —3 дБ)	flow	-	25	-	Гц
Верхняя воспроизводимая частота (по уровню -1 дБ)		^high	20	-	-	кГц |
Представители микросхем с интерфейсом /2С
77
Окончание таблицы 3.14
Параметр технических условий	Символ	Мин.	Норма	Макс.	Ед. изм. |
Коэффициент усиления	Gy	19	20	21	ДБ
Входной импеданс		50	60	75	кОм 1
Разделение каналов	а	40	-	-	дБ
Небаланс каналов		-	-	1	ДБ |
Параметры интерфейса 12С	|					
Входной сигнал высокого уровня	Vih	3	-	w	В |
Входной сигнал низкого уровня	V|	-0,3	-	1,5	В 1
Выходной сигнал низкого уровня	Vd	-	-	0,4	в |
Срабатывание схемы внутреннего сброса: старт окончание	Vp	3	—	5	в
Standby (вывод 9)	Vpy,	3	-	p 2	в
Как видно из рис. 3.35, микросхема состоит из четырех идентичных усилителей с дифференциальными входными каскадами, один из которых является инвертирующим, а второй — неинвертирующим. Как известно, для обеспечения нормальной работы любого элемента необходимо рассчитать его тепловой режим, принять меры к рассеянию излишней тепловой мощности. Например, в книге [3] приводится вариант такого теплового расчета. Собственно, нужно проверить необходимость проектирования теплоотводящего радиатора и рассчитать его габариты, выбрать конструктивное исполнение. Фирменная документация имеет все необходимые данные для расчета. Для удобства разработчика приводятся размеры теплоотводящей поверхности (рис. 3.36, а) и внутреннее распределение тепловых сопротивлений между теплоотводящей поверхностью и выводами микросхем (рис. 3.36, б).
Теперь разберемся, как управлять режимами микросхемы и как получать информацию о ее внутреннем состоянии. Мы уже неоднократно говорили, что «общение» с микросхемой происходит программно. Обратите внимание на рис. 3.37: по шине 12С передается фиксированный slave-адрес микросхемы, а также единственное слово данных (DATA). Условие «R/W», как обычно, отражает режим за-писи/чтения.
78
Представители микросхем с интерфейсом Рс
Рис. 3.36. К расчету теплового режима микросхемы
4"
0,8°
0.1“
Рис. 3.37. Формат данных для микросхемы TDA1551Q
Конфигурирование происходит при передаче бита «R/W», установленного в «О» (режим записи данных). Возможные состояния байта DATA приведены в табл. 3.15, но вообще можно сказать, что бит D0 «отвечает» за переключение микросхемы из режима SLEEP в режим ON и обратно, бит D1 переключает в режим MUTE.
Таблица 3.15
Установка битов D7...D0								Состояние
D7	D6	D5	04	03	02	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	ON2
Примечания.
1. Состояние используется только для тестирования. Шина 12С работает в режиме ON, в то время как усилитель переведен в состояние standby.
2. Включение в состояние ON после подачи питания недопустимо, так как это может вывести микросхему из строя. Необходимо вначале переключить микросхему из состояния SLEEP в состояние MUTE и только затем, за время не менее 150 мс, перевести в состояние ON.
Представители микросхем с интерфейсом 12С	79
Возможные варианты переключения микросхемы из одного состояния в другое показаны на рис. 3.38.
Рис. 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.
80
Представители микросхем с интерфейсом 12С
Таблица 3.16
D3	D2	D1	D0	Функция
0	0	0	0	Все выходные каскады в норме
X	X	X	1	Неисправность на выводе 6
X	X	1	X	Неисправность на выводе 8
X	1	X	X	Неисправность на выводе 10
1	X	X	X	Неисправность на выводе 12
Примечание: если неисправность случится в нескольких каскадах, соответственно одновременно будут установлены в состояние «1» биты, информирующие о неисправности в конкретном канале.
На рис. 3.39 и рис. 3.40 показаны типовые варианты включения микросхемы.
Рис. 3.39. Вариант включения TDA1551Q для четырех каналов
Представители микросхем с интерфейсом 12С
81
Рис. 3.40. Вариант мостового двухканальвого включения TDA1551Q для повышения выходной мощности
TDA8424
В документации [20] эта микросхема называется Hi-Fi stereo audio processor или, говоря по-русски, высококачественный стереофонический аудиопроцессор. Необходимо сразу оговориться, что фирма Philips выпускает несколько разновидностей аудиопроцессоров, отличающихся друг от друга не слишком значительно. Например, при написании этой книги автор ознакомился с документацией на микросхемы TDA8421, TDA8425, TDA8426, TDA9860, ТЕА6300, ТЕА6324Т, ТЕА6330Т [22—28]. Было выяснено, что в рамках данной книги имеет смысл подробно описать только принци
82
Представители микросхем с интерфейсом Рс
пы работы с какой-нибудь одной микросхемой этого вида. С остальными читатель при необходимости разберется самостоятельно. Оригинальную документацию можно получить с официального сервера Philips (http://www.semiconductors.philips.com).
Несколько слов о том, зачем нужен аудиопроцессор и где его можно применить. Вспомним, что в составе любого стереокомплекса или телевизора обязательно имеются органы регулировки громкости, стереобаланса, тембра. В классическом варианте на переднюю панель всегда выводились отдельные ручки регулировок «громкость», «тембр НЧ», «тембр ВЧ», «стереобаланс». Современная аппаратура таких органов регулировки уже не имеет, хотя они все равно присутствуют в ее составе. Все дело в том, что теперь эти органы «прячут» в электронной схеме прибора, а о состоянии того или иного регулятора свидетельствует соответствующая надпись на жидкокристаллическом (или электролюминесцентном) индикаторе, «бегущая полоска» на экране телевизора. Управление осуществляется только с помощью кнопок, данные поступают в управляющую микросхему в цифровом виде.
Итак, рассмотрим микросхему TDA8424, предназначенную для электронной регулировки тембра, громкости, стереобаланса. Микросхема в своем составе имеет:
•	селектор режимов;
•	переключатель режимов «пространственное (spatial) стерео» (расширенная стереобаза) «стерео», «принудительное моно»;
•	схемы управления громкостью и стереобалансом;
•	схемы управления тембровой окраской по высоким (ВЧ) и низким (НЧ) частотам;
•	аппаратный сброс при включении питания.
Селектор режимов используется для задания режимов «стерео», «sound А», «sound В» для трансляции звука только из правого или только из левого канала.
Управление громкостью и стереобалансом совмещенное. Регулятор громкости состоит из двух каскадов, предназначенных для прохождения сигналов левого и правого каналов. Коэффициент передачи каждого каскада может быть отрегулирован в пределах от 6 до -64 дБ с шагом 2 дБ. Дополнительно можно получить затухание
Представители микросхем с интерфейсом 12С
83
-80 дБ. Оба канала управляются независимо друг от друга, поэтому возможна регулировка стереобаланса.
Режимы «spatial стерео», «стерео» и «принудительное моно» могут быть использованы в разных ситуациях. Режим «стерео» используется в случае прохождения обычного стереосигнала. При получении соответствующей команды, свидетельствующей об отсутствии стереосигнала, микросхему можно перевести в режим «spatial стерео» (расширенная стереобаза) или «принудительное моно».
Регулировка тембра по низким частотам (НЧ) осуществляется в пределах от 15 до -12 дБ с шагом 3 дБ.
Регулировка тембра по высоким частотам (ВЧ) осуществляется в пределах от 12 до -12 дБ с шагом 3 дБ.
Расположение выводов показано на рис. 3.41, назначение выводов — в табл. 3.17, внутреннее устройство микросхемы — на рис. 3.42.
INL
VCAP
INR
Vcc
AGND BASSR BASSR
TREBLER
OUTR
DGND

20| -19].
18]-i3-
W) BASS L 15) BASS L Й] TREBLER jajouTL
12) SCL
11] SDA
Рис. 3.41. Расположение выводов микросхемы TDA8424
Таблица 3.17. Назначение выводов микросхемы
Символ	Вывод	Описание
INL	1	Вход левого канала
Vcap	2	Развязывающий конденсатор
INR	3	Вход правого канала
	4	Питание«+»
AGND	5	Аналоговая «земля»
BASSR	6	Управление НЧ правого канала	
84
Представители микросхем с интерфейсом Рс
Окончание таблицы 3.17
Символ	Вывод	Описание
BASSR	7	Управление НЧ правого канала
TREBLE R	8	Управление ВЧ правого канала
OUTR	9	Выход правого канала
DGND	10	Цифровая «земля»
SDA	11	Линия SDA шины RC
SCL	12	Линия SCL шины 12С
OUTL	13	Выход левого канала
TREBLEL	14	Управление ВЧ левого канала
BASSL	15	Управление НЧ левого канала
BASSL	16	Управление НЧ левого канала
-	17	Не используется
	18	Не используется
	2		19	Не используется
I	2		20	Не используется
Рис. 3.42. Внутреннее устройство микросхемы TDA8424 '
Представители микросхем с интерфейсом ?С
85
Теперь поговорим о том, как управлять данной микросхемой. Slave-адрес фиксирован жестко и показан на рис. 3.43, а. В дальнейшем описании, касающемся данной микросхемы, на всех рисунках этот адрес будет обозначен как MAD.
MSB
LSB
R/W
|sta|mad|sad| vi |sta[mad[sad[vr|sta|mad|sad|ba|sta|mad[sad|tr |sta|mad|sad| si |sto|
6)
Рис. 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
86
Представители микросхем с интерфейсом ?С
В табл. 3.19 приводятся способы кодирования байта, следующего после байта SAD. Наименование этого байта меняется в зависимости от выполняемой функции (VL, VR, BA, TR, S1) и будет описано ниже.
Таблица 3.19
Функция	7	6	5	4	3	2	1	0
Громк., лев. кан. (VL)	1	1	V05	V04	V03	VD2	V01	V00
Громк., прав. кан. (VR)	1	1	VI5	V14	VI3	VI2	VII	VI0
НЧ-тембр (ВА)	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 многие позиции четко не определены и заданы буквенно. Из табл. 3.19 также видно, что между позициями «ВЧ-тембр (TR)» и «Функц. переключ. (S1)» оставлено четыре незаполненных строки таблицы. Это связано с наличием в микросхеме режима автоинкремента. Если вы обратите внимание на табл. 3.18, то увидите разрыв кодов адресов SAD между упомянутыми позициями. Чтобы лишний раз не задавать адрес SAD (например, при первоначальном включении микросхемы), достаточно передать нулевой адрес SAD, затем значения позиций «Громк., лев. кан. (VL)», «Громк., прав. кан. (VR)», «НЧ-тембр (ВА)», «ВЧ-тембр (TR)», затем — 4 незначащих позиции, «забитых» единицами, и завершить позицией «Функц. переключ. (S1)». При этом после получения каждой позиции внутренний счетчик SAD будет автоматически инкрементироваться. Дополнительная информация задается из табл. 3.20—3.25.
Таблица 3.20
Функция	МЫ	MLO
Стерео	1	1
Канал А	0	1
Канал В	1	0
Таблица 3.21
Режим	STL	EFL
Spatial стерео	1	1
Стерео	1	0
Запрещенное состояние	0	1
Принудительное моно	0	0
Представители микросхем с интерфейсом 12С
87
Таблица 3.22
Режим MUTE (немой)	ми
Автоматически устанавливается после сброса	1
Неактивный	0
Табл. 3.23—3.25 относятся к заданию уровня громкости, НЧ- и ВЧ-тембра.
Таблица 3.23. Регулировка уровня громкости
Уровень громкости, дБ	Vx5	Vx4	v«3	4(2	VX1	Vx0
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
						
-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.19) назначение данного бита. Например, обозначение V05 относится к байту VL, а обозначение VI5 — к байту VR.
88
Представители микросхем с интерфейсом ?С
Таблица 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	0	|
Таблица 3.25. Регулировка тембра ВЧ
Уровень, дБ	таз	TR2	TR1	TR0	!
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	0
Кодирование микросхемы осуществляется согласно рис. 3.43, б.
При этом последовательность задания уровней VL, VR, BA, TR и S1 не имеет значения. Разработчики рекомендуют устанавливать S1 в самом конце кодирования, когда остальные установки уже произведены. После включения питания необходимо провести полное конфигурирование, а в дальнейшем можно менять какой-то один параметр или их группу, например, только VL и VR. Тогда в информационном пакете будут отсутствовать байты BA, TR, S1.
Представители микросхем с интерфейсом 12С
89
Возможно использование режима автоинкремента субадреса, как показано на рис. 3.44. В этом случае в байте SAD задается субадрес VL, а затем производится передача согласно рис. 3.44. Режим автоинкремента субадреса удобно использовать после первоначального старта (сброса схемы после включения питания). Символ «х» в данном случае означает, что необходимо повторить передачу неинформативных байтов согласно табл. 3.19.
|sta|mad|sad|vl|vr|ba|tr| х | х | х | х |si|sto|
Рис. 3.44. Режим автоинкремента субадреса
Основные характеристики микросхемы, важные для проектирования, приведены в табл. 3.26.
Таблица 3.26
Параметр технических условий	Символ	Мин.	Норма	Макс.	Ед. изм.
Напряжение питания		10,8	12,0	13,2	В
Ток потребления	'сс	-	26	35	мА
Внутреннее опорное напряжение	Чи	5,4	0,5Vrc	6,6	В
Рабочая температура	Tamb	0	-	+70	•с
Температура хранения	Tstg	-25	-	+150	•с
Разделение каналов (на частоте 10 кГц)	acs	-	80	-	ДБ
Входной уровень сигнала (выводы 1 и 3)	ч	2	-	-	В
Входное сопротивление	Ri	20	30	40	кОм
Полоса пропускания (по уровню 0,5 дБ)	в	20	-	20000	Гц
Выходное напряжение (выводы 9 и 13)	vo	0,6	-	-	В
Выходной импеданс	Zo	-	-	100	Ом
Уровень шума:	S+N				
усиление 6 дБ		—	78	—	
усиление 0 дБ	N	—	86	—	ДБ
J	ослабление <-20 дБ		—	68	—	
Общие гармонические искажения:					
(6дБ...-40дБ)Ч = 0,ЗВ		—	0,05	—	
[0дБ...-40дБЩ = 0,6В	THD	—	0,07	0,4	%
[12 дБ...-40дБ] У, = 2,0 В		—	0,1	-	
90
Представители микросхем с интерфейсом 12С
На рис. 3.45—3.47 приведены некоторые графические данные, которые наглядно свидетельствуют о высоком качестве микросхемы.
Микросхема выпускается в корпусе DIP20 (SOT146-1) и предназначена для установки в печатную плату с шагом 2,54 мм. Типовая схема включения приведена на рис. 3.48.
Рис. 3.45. Зависимость уровня гармонических искажений для разных частот от уровня входного сигнала (среднеквадратичное значение). Условия измерения: усиление -10 дБ, НЧ/ВЧ тембр = 0 дБ, Усс = 12 В
Рис. 3.46. Зависимость уровня разделения стереоканалов от частоты входного сигнала. Условие измерения: НЧ/ВЧ тембр = 0 дБ, Усс = 12 В
Представители микросхем с интерфейсом i2^
91
Рис. 3.47. Зависимость коэффициента усиления в диапазоне воспроизводимых частот при одновременном изменении уровня НЧ/ВЧ тембра в пределах от -12 до +15 дБ. Условие измерения: усиление = О дБ, Усс = 12 В
SDA «> - |ft|
SCL —•-------Ц2]
2,2мк11+ jC
OUT L *—4-----ИЗ]
5,6н “Г
TREBLE L |----1|--Й
BASS L I--------fisl
ЗЗн ф “Г
BASS L ---------Й
Й й й ро|
5
BASSR
ЗЗн
BASSR
I IVCAP ,470н INL
-(AGND ЮОн «- Vcc=12B
470н
Н-«- INR 100мк
------1 DGND ,,2.2мк ► OUTR
5,6н
]|——(TREBLE R
Рис. 3.48. Типовая схема включения TDA8424
ТЕА6360
В оригинальной документации [21] эта микросхема называется 5-band stereo equalizer circuit. Что такое эквалайзер, знают многие. А кто не знает, тому достаточно вспомнить несколько импортных магнитол и музыкальных центров, в которых это устройство имеется. Эквалайзер всего лишь расширенный вариант регулятора тембра, который позволяет более точно влиять на тоновую окраску звучания, выбирать ее по своим индивидуальным предпочтениям. Сложные профессиональные студийные эквалайзеры имеют не один десяток
92	Представители микросхем с интерфейсом PC
частотных «линеек», позволяющих индивидуально подобрать звучание в каждом канале (каналов может быть четыре и более). Бытовая аппаратура, конечно, намного проще, и часто ее возможности ограничиваются всего пятью «линейками», представленными на передней панели прибора пятью движковыми переменными резисторами.
Микросхема ТЕА6360 позволяет отказаться от ненадежных резисторов, исключить характерный «скрип» при их старении, упростить интерфейс пользователя. Кроме того, в память прибора возможно занести несколько выбранных настроек, оперативно переключать их, а не заниматься подбором «с нуля». Внутреннее устройство микросхемы и ее типовое включение показаны на рис. 3.49, устройство одиночного фильтра —- на рис. 3.50.
Каждый канал состоит из пяти однотипных фильтров (рис. 3.50). Центральная частота и добротность каждого фильтра целиком зависят от подключенных навесных компонентов (два конденсатора и резистор определенных номиналов). Диапазон управления каждым фильтром разделен на 11 уровней: 5 уровней усиления, 5 уровней ослабления и уровень 0 дБ (без усиления).
Уровни регулировки следующие: 2,7; 5,5; 8,4; 11,6; 15,0 дБ.
Очень важно отметить, что разным уровням регулировки соответствует разная добротность (в оригинальной документации Q-фак-
Рис. 3.49. Внутреннее устройство и типовая схема включения ТЕА6360
Представители микросхем с интерфейсом PC
93
Рис. 3.50. Схема одиночного фильтра
тор) одиночных фильтров, а значит, и разная тембровая окраска. Поэтому возможно использовать не только собственные усилительные качества фильтра, но еще и управлять частотной характеристикой (варьировать АЧХ с помощью способа «весовых коэффициентов»), дополнительно ослабляя сигнал на выходе. Для этого (рис. 3.50) каскад разделен на две части: boost и cut. Коэффициенты передачи каскадов задаются программно, и об этом мы сейчас поговорим.
Расположение выводов микросхемы ТЕА6360 показано на рис. 3.51, а название выводов — в табл. 3.27.
V1L [Т		32| Vir
F1LA [2		3l]F1RA
п.с. [з		3<j]n.c.
filb|7		2si]F1RB
F2LA [в		2б] F2RA
F2LB [б		2?] F2RB
F3la|7		2ti]F3RA
F3lb[b	О CD	2э| F3RB
F4La[s	CO	24]F4RA
F4LB [w	3	2з| F4RB
F5LA[li		22]F5RA
F5LB[i2		2l| F5RB
voiEa Vp[M		^VOR is]gndi
SDA [l5		1^ MAD
SCL|j6		it]gnd2
Рис. 3.51. Расположение выводов микросхемы ТЕА6360
94
Представители микросхем с интерфейсом 12С
Таблица 3.27. Назначение выводов микросхемы
Символ	Вывод	Описание
V»	1	Вход сигнала левого канала (LEFT)
F1LA	2	Вывод А фильтра 1 LEFT (f = 2,95 кГц)
-	3	Не используется
F1LB	4	Вывод В фильтра 1 LEFT (f = 2,95 кГц)
F2LA	5	Вывод А фильтра 2 LEFT (f = 12 кГц)
F2LB	6	Вывод В фильтра 2 LEFT (f = 12 кГц)
F3LA	7	Вывод А фильтра 3 LEFT (f = 790 Гц)
F3LB	8	Вывод В фильтра 3 LEFT (1 = 790 Гц)
F4LA	9	Вывод А фильтра 4 LEFT (f = 205 Гц)
F4LB	10	Вывод В фильтра 4 LEFT (f = 205 Гц)
F5LA	11	Вывод А фильтра 5 LEFT (f = 59 Гц)
F5LB	12	Вывод В фильтра 5 LEFT (f = 59 Гц)
Vo.	13	Выход сигнала левого канала (LEFT)
v₽	14	Вывод пиания
SDA	15	Линия SDA шины 12С
SCL	16	Линия SCL шины 12С
GND2	17	Общий провод (шина 12С)
MAD	18	Задание slave-адреса
GND1	19	Аналоговая «земля»
Vor	20	Выход сигнала правого канала (RIGHT)
F5RB	21	Вывод В фильтра 5 RIGHT (f = 59 Гц)
F5RA	22	Вывод А фильтра 5 RIGHT (f = 59 Гц)
F4RB	23	Вывод В фильтра 4 RIGHT (f = 205 Гц)
F4RA	24	Вывод А фильтра 4 RIGHT (f = 205 Гц)
F3RB	25	Вывод В фильтра 3 RIGHT (f = 790 Гц)
F3RA	26	Вывод А фильтра 3 RIGHT (f = 790 Гц)
F2RB	27	Вывод В фильтра 2 RIGHT (f = 12 кГц)
F2RA	28	Вывод А фильтра 2 RIGHT (f = 12 кГц)
F1RB	29	Вывод В фильтра 1 RIGHT (f = 2,95 кГц)
-	30	Не используется
FIRA	31	Вывод А фильтра 1 RIGHT (f = 2,95 кГц)
1 v	32	Вход сигнала правого канала (RIGHT)
Представители микросхем с интерфейсом 12С
95
Данные для микросхемы ТЕА6360 передаются по шине 12С в одну сторону.
Структура управляющего пакета данных представлена на рис. 3.52. Такая структура нам знакома, поэтому остается без дополнительных комментариев. Slave-адрес задается комбинацией 1000 0100, когда на выводе 18 присутствует низкий уровень, и комбинацией 1000 0110, когда на выводе 18 — высокий уровень. Субадрес определяет номер фильтра, которому предназначаются данные. Блок DATA — данные по настройке фильтра.
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	ICO
Фильтр 2	00000001	0	2В2	2В1	2В0	0	2С2	2С1	2С0
Фильтр 3	00000010	0	ЗВ2	ЗВ1	ЗВО	0	ЗС2	ЗС1	ЗСО
Фильтр 4	00000011	0	4В2	4В1	4В0	0	4С2	4С1	4С0
Фильтр 5	00000100	0	5В2	5В1	5В0	0	5С2	5С1	5С0
Примечания.
1.	Если вслед за передачей субадреса будет осуществляться передача более одного блока DATA, субадрес будет автоматически инкрементироваться.
2.	Обозначения в блоке DATA: 1-я цифра означает номер фильтра (1...5), буква обозначает принадлежность данных (boost или cut), 2-я цифра (0...2) — порядок бита. Например, 1В1 означает «1-й фильтр, boost каскад, бит 1».
3.	Бит DEF отключает или включает эквалайзер. При установке DEF = 0 все фильтры подключены и работают; при установке DEF = 1 сигнал поступает непосредственно со входа на выход с коэффициентом передачи 0 дБ.
96
Представители микросхем с интерфейсом Рс
Возможные комбинации 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).
Представители микросхем с интерфейсом 12С
97
Таблица 3.31
Позиция	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	0	0	0	0	0	(+4) + (-0) = +4
+3	0	0	1	1	0	0	0	0	(+3) + (-0) = +3
+2	0	0	1	0	0	0	0	0	(+2) + (-0) = +2
+1	0	0	0	1	0	0	0	0	(+1) + (-0) = +1
0	0	0	0	0	0	0	0	0	(+0) + (-0) = 0
1 -1	0	0	0	0	0	0	0	1	(+0) + (-1) = -1
1 ~2	0	0	0	0	0	0	1	0	(+0) + (-2) = -2
-3	0	0	0	0	0	0	1	1	(+0) + (-3) = -3
-4	0	0	0	0	0	1	0	0	(+0) + (-4) =-4
-5	0	0	0	0	0	1	0	1	(+0) + (-5) = -5
Таблица 3.32
Позиция	D7	D6	D5	D4	D3	D2	D1	D0	Примечание
	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) + (-1) = +4
+3	0	1	0	1	0	0	1	0	(+5) + (-2) = +3
+2	0	1	0	1	0	0	1	1	(+5) + (-3) = +2
+1	0	1	0	1	0	1	0	0	(+5) + (-4) = +1
0	0	0	0	0	0	0	0	0	(+0) + (-0) = 0
-1	0	1	0	0	0	1	0	1	(+4) + (-5) = -1
-2	0	0	1	1	0	1	0	1	(+3) + (-5) = -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
98
Представители микросхем с интерфейсом 12С
Таблица 3.33
Позиция	D7	D6	D5	D4	D3	D2	D1	00	Примечание 1
	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) + (-1)=+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
Параметр технических условий	Символ	Мин.	Норма	Макс.	Бц. изм. I
Напряжение питания	v₽	7	8,5	13,2	В
Ток потребления		-	24,5	-	мА
Максимальный уровень выходного сигнала	Vo	1.1	-	-	В
Рабочая температура	Tamb	-40	-	+85	•с
Температура хранения	^stg	-40	-	+150	•С
Входное сопротивление (выводы 1 и 32)	Ri	1	-	-	МОм
Выходное сопроивление (выводы 13 и 20)	Ro	-	100	-	Ом
Полоса пропускания по уровню -1 дБ	в	0	-	20 000	Гц
Общие гармонические искажения: -	Vo=1,1 В; 0 дБ -	Vo = O,1 В; 0 дБ —	Vq = 1,1 В; +15 дБ -	Vo = O,1 В;+15дБ -	Vo = 0.1 В;-15дБ	THD	-	0,2 0,05 0,5 0,1 0,2	0,5 0,2 1.0 0,3 0,5	%
Напряжения шума на выходе (среднеквадратическое значение): 0 дБ (все фильтры) +15 дБ (все фильтры) -15 дБ (все фильтры)	vN	-	23 70 23	46 140 46	мкВ
Q-фактор при усилении: ЮдБ 12дБ 15дБ	Q	0,1 0,1 0,1	-	1.2 1,4 1.8	
Отклонение параметров фильтров от расчетных	ARtot		-	±4	%
100
Представители микросхем с интерфейсом 12С
Рис. 3.54. Исполнение входных и выходных цепей микросхемы ТЕА6360
3.4. Вспомогательные микросхемы
Микросхемы, описываемые в этом подразделе, не имеют самостоятельной ценности и могут быть использованы как дополнительные, облегчающие разработку приборов и устройств. Таких микросхем, как показывает опыт изучения элементной базы, в номенклатуре 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С	101
ройство. Мы уже знаем, что аппаратная реализация 12С интерфейса ведомого устройства довольно сложна. А вот подключив к порту микроконтроллера микросхему PCF8574, можно просто и изящно решить данную проблему.
Традиционное предуведомление отражает наиболее привлекательные для разработчика свойства микросхемы:
•	сохранение работоспособности при напряжении питания от 2,5 до 6 В;
•	низкое потребление тока в ждущем режиме — 10 мкА;
•	открытый сток вывода «прерывание» (interrupt);
•	8-битовый двунаправленный I/O порт;
•	совместимость с большинством микроконтроллеров;
•	высокая нагрузочная способность выходов, позволяющая непосредственно подключать светоизлучающие диоды;
•	внешние 3 вывода slave-адреса, позволяющие подключить к шине 12С одновременно до 8 однотипных микросхем;
•	корпус DIP16 (SOT38-1) или SO16 (SOT162-1). к
Расположение выводов микросхемы приведено на рис. 3.55, назначение выводов — в табл. 3.35.
АО
А1
А2
РО
Р1
Р2
РЗ
Vss
16
VdD
SDA
SCL
ПТГ
P7
P6
P5
P4
Рис. 3.55. Расположение выводов микросхемы PCF8574
102
Представители микросхем с интерфейсом 12С
Таблица 3.35. Назначение выводов 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
Vss	8	Общий провод микросхемы
Р4	9	Квази-двунаправленный I/O порт 4
Р5	10	Квази-двунаправленный I/O порт 5
Р6	11	Квази-двунаправленный 1/0 порт 6
Р7	12	Квази-двунаправленный I/O порт 7
INT	13	Вывод сигнала прерывания (LOW)
SCL	14	Линия SCL шины PC
SDA	15	Линия SDA шины PC
|	Уро	16	Питание«+»
В чем состоит «изюминка» данной микросхемы? Как известно, прием и передача данных посредством стробирования не вызывает сложностей. Достаточно помещать данные в сдвиговый регистр, а потом осуществлять их движение подачей стробирующих импульсов. Все это так, но главная сложность работы с шиной 12С заключается в том, что затруднительно фиксировать условие Start, свидетельствующее об активизации шины. Если вы помните, в протоколе шины был оставлен служебный адрес 0000 0001, называемый «программный Start». Работать в условиях программного отслеживания Start-условия достаточно трудно и далеко не всегда оправданно, поэтому в состав микросхемы PCF8574 была введена «изюминка» в виде вывода генерации прерывания (interrupt, INT). Сигнал прерывания сообщит микроконтроллеру о начале активации шины. Таким образом, сторона микросхемы PCF8574, относящаяся к интерфейсу 12С, представляет собой обычное slave-устройство (рис. 3.56).
Представители микросхем с интерфейсом 12С
103
Рис. 3.56. Внутреннее устройство микросхемы PCF8574
РО
Р1
Р2
РЗ
Р4
Р5
Р6
Р7
Управляющая схема интерфейса параллельного ввода-вывода показана на рис. 3.57. Обратите внимание: интерфейсные выводы защищены от перегрузки диодами VD1 и VD2.
Рис. 3.57. Упрощенная схеМа параллельного интерфейса микросхемы PCF8574
104
Представители микросхем с интерфейсом 12С
Поговорим теперь о программных способах работы с данной микросхемой. Традиционно начнем с определения slave-адреса (рис. 3.58).
S | 0 ' 1 ' О ' О 'a2'ai‘ao‘ о | А
PCF8574
| S [ 0 1 ‘ 1 * 1 'a2^ai'ao' о | А | PCF8574A
Рис. 3.58. Slave-адреса микросхем
Вам могут встретиться две разновидности микросхемы PCF8574 — с буквой «А» и без буквы. Отличаются они только четырьмя старшими битами slave-адреса. Таким образом, если на одной шине будет присутствовать 8 микросхем PCF8574 и 8 микросхем PCF8574A, конфликта это не вызовет. Биты А2...А0 задаются с помощью внешних выводов микросхем.
Запись в порт осуществляется по схеме, представленной на рис. 3.59. «Запись» в данном случае означает, что данные с шины 12С появятся на параллельном порте Р0...Р7.
Обратите внимание: данные появляются на выходе порта спустя время tpv после возникновения сигнала АСК (а также записи в порт). Микроконтроллер должен успеть считать предыдущие данные на линиях Р0...Р7 до появления следующего байта данных.
SCL Slave-адрес	Данные в порт	о	Данные в порт	П-П	
			г	»		
SDA I S I 0 ' 1 ’ о  о 'az'ai'aoI 0 I	*1 : : ж ; : ।	А	::	. i	А	□
т- Условие START Запись	АСКот slave	t АСКот slave п				* АСК от slave	
в порт Данные 	— выходят				X	DATA1			QDATA2
с порта	tpv			<—	*pv—►		
Рис. 3.59. Запись данных в порт
Представители микросхем с интерфейсом 12С
105
Чтение с порта происходит по схеме, показанной на рис. 3.60. Напоминаем, что микросхема по-прежнему остается в режиме slave-устройства, то есть сигнал SCL генерируется master-устройством.
Slave-адрес
Данные из порта
Данные из порта
SDA
Чтение из порта
Данные от порта
INT
isio;1	; 0 * о 'a2*ai'ao| 0 |	«1 : :	'daYatJ	: : ем :		:^ta4 ; ; ।	1 H
t Условие START		АСКот slave n				ACK от slave 1			+ Условие STOP
							
X	datai			DATA3	X	DATA4		
	tph—►						
 1		n			J		
—: ч-tjv		Mr			:* v		
Рис. 3.60. Чтение данных из порта
Чтение данных с порта происходит в момент появления сигнала АСК. В промежутках между сигналами АСК данные менять нет смысла, поскольку они будут потеряны.
Очень важный и, можно даже сказать, принципиальный момент связан с генерацией сигнала прерывания INT. Аппаратно сигнал INT реализован по принципу выходного каскада с открытым стоком, поэтому необходима «подтяжка» к напряжению питания через pull-up резистор, как показано на рис. 3.61. Выводы INT разных микросхем можно объединить и подать на вывод прерывания микроконтроллера.
Рис. 3.61. Аппаратная реализация отработки прерываний с портов
Прерывание может быть сгенерировано при перепаде на выходном порте хотя бы одного бита Р0...Р7 как с высокого уровня в низ-
106	Представители микросхем с интерфейсом 12С
кий, так и в обратном направлении. Возврат сигнала INT происходит
после генерации сигнала АСК (рис. 3.62) следующим образом:
а)	в режиме чтения — в момент положительного перепада сигнала SCL;
б)	в режиме записи — в момент отрицательного перепада сигнала SCL.
Прерывания, которые происходят в течение импульса АСК, могут быть потеряны из-за очень короткой длительности импульса.
В табл. 3.36 приведены сведения, необходимые для разработчика.
Slave-адрес	Данные из порта
SDA | s | о * i о' о'az^ai'aoI о |;'а |	j |,|р1
т	J	Т	F
Условие	:аСК	Р5	Условие
START	STOP
Данные у "	'		-------
Р5	—]
INT П--------------------------------(—!
Рис. 3.62. Программная отработка прерываний (прерывание генерируется изменением данных на линии Р5)
Таблица 3.36
Параметр технических условий	Символ	Мин.	Норма	Макс.	Ед. изм. I
Напряжение питания	Vdo	2,5	—	6,0	В
Ток потребления в активном состоянии ^DD~ ® tsCL= кГц	•do	-	40	100	мкА
Ток потребления в неактивном состоянии	Ub	-	2,5	10	мкА
Уровень напряжения сброса внутренней схемы	V	-	1.3	2,4	В
Время, за которое выходные данные вступают в силу	V	—	—	4	МКС
Время установки входных данных	k	0	—	-	мкс
Время удержания входных данных	lb	4	—	—	мкс
Время, за которое входные данные вступают в силу		—	—	4	мкс
Время задержки сброса	V	—	—	4	мкс
Температура хранения	Tstg	-65	—	+150	•с
Рабочая температура	^amb	-40	—	+85	•с
Максимальная частота сигнала SCL	fsa	-	-	100	кГц
Представители микросхем с интерфейсом 12С
107
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 однотип
108
Представители микросхем с интерфейсом 12С
ных микросхем. В составе PCF8591 имеется только один А/D преобразователь, но использование методов мультиплексирования расширяет входные возможности микросхемы. Вход АЦП последовательно подключается к 4 сигнальным входам, и происходит считывание информации с них. К сожалению, мультиплексирование нельзя использовать для D/А преобразования, поэтому аналоговый выход только один. Максимальная скорость преобразования данных ограничена максимальным быстродействием шины 12С.
Расположение выводов микросхемы показано на рис. 3.63, назначение выводов — в табл. 3.37. Блок-схема, отражающая внутреннее устройство и взаимодействие элементов микросхемы, приведена на рис. 3.64.
Таблица 3.37. Назначение выводов PCF8591
Символ	Вывод	Описание
AJNO	1	Аналоговый вход (A/D)
AJN1	2	Аналоговый вход (A/D)
AIN2	3	Аналоговый вход (A/D)
A1N3	4	Аналоговый вход (A/D)
АО	5	Адресный вход 0
А1	6	Адресный вход 1
А2	7	Адресный вход 2
	8	Общий провод микросхемы (питание)
SDA	9	Линия SDA шины |2С
SCL	10	Линия SCL шины 12С
OSC	11	Вывод подключения внешнего генератора
EXT	12	Внешний/внутренний генератор
AGND	13	Аналоговая «земля»
4*	14	Опорное напряжение
I	АООТ	15	Аналоговый выход (D/A)
j	4»	16	Напряжение питания«+»
Представители микросхем с интерфейсом 12С
109
AINO	Z		Тб) Vdo
AIN1	2		Тб) AOUT
AIN2	LZ		14] Vref
AIN3	1	ш СО	13] AGND
АО	I	о	12] EXT
А1	Z	0.	ii]osc
А2	т		w] SCL
Vss	и		J] SDA
Рис. 3.63. Расположение выводов микросхемы PCF8591
Рис. 3.64. Блок-схема PCF8591
110
Представители микросхем с интерфейсом 12С
Slave-адрес микросхемы задается, как показано на рис. 3.65. Он содержит фиксированную часть (биты 7...4) и изменяемую часть (биты 3...1). Бит 0, как всегда, несет в себе признак «R/W» (чтение/за-пись).
MSB	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. Точки соединения резисторов образуют
Представители микросхем с интерфейсом 12С
111
Номер А/D канала 00 - канал 0 01 - канал 1 10-канал 2 11 - канал 3
Автоинкремент (активный -'Г)
L Программирование аналогового входа 00--------------------------------
AINO -----канал О
AIN1 -----канал 1
AIN2 -----канал 2
AIN3 -----канал 3
Активация аналогового выхода (активный - "I")
Рис. 3.66. Байт контроля и управления
ответвления, которые с помощью переключателей связываются с выходной линией. Управляет схемой декодер ответвлений. Выходное напряжение (DAC out) подается затем на усилитель с автомата-
112
Представители микросхем с интерфейсом 12С
ческой балансировкой нуля (auto-zeroed unity gain amplifier). Этот усилитель может быть либо включен (через байт контроля и управления), либо переведен в высокоимпедансное (Z) состояние выхода.
Рис. 3.67. А/D и D/Л преобразователь
MSB
LSB
jD7|D6|D5|D4|D3|D2|D1 |ро] Байт данных
V АООТа
VREF- 
VAGNP' ’ VSS
00 01 02 03 04
HEX код
FE FF
Рис. 3.68. D/А преобразование
Представители микросхем с интерфейсом 12С	113
Важно отметить, что D/А преобразователь используется также в процедуре А/D преобразования по методу последовательного приближения. Данный метод подробно описан в литературе, и возвращаться к нему в рамках этой книги нет смысла.
Процедура D/А преобразования показана на рис. 3.68. Любая точка на графике в диапазоне 00h...FFh может быть определена по формуле
V	-V	-Л
v =V +—_______________vagnd уD .2'
VAOUT VAGNCD	L-t	i	’
256	,=0
где VAOUT — выходное напряжение D/А преобразователя; VREF — опорное напряжение; VAGND — потенциал аналоговой «земли»; D,- — соответствующий разряд байта данных.
Обратите внимание также на рис. 3.69. Возможна работа с микросхемой посредством передачи цепочки байтов данных, следующих один за другим. Уровень напряжения, соответствующий заданному, появляется на выходе в момент выдачи сигнала АСК. В момент выдачи сигнала АСК, подтверждающего прием байта контроля и управления (рис. 3.66, control byte) на выходе микросхемы, появляются данные, содержащиеся в регистре DAC с момента окончания предыдущего цикла работы микросхемы.
Рис. 3.69. Протокол работы в режиме D/А преобразования
114
Представители микросхем с интерфейсом 12С
А/D преобразование
Чтобы выполнить А/D преобразование, вначале нужно передать байт контроля и управления с признаком R/W = 0. Затем осуществить считывание данных согласно рис. 3.70.
S	Sieve	1	А	DATA1	А	DATA 2	А	DATA3	А
Передача на шину байта 1
Преобразование байт 2
Преобразование
I байт 1
Передача на шину предыд. конверс. байта
Преобразование байтЗ
Передача на шину байта 2
Рис. 3.70. Протокол работы в режиме А/D преобразования
Важно отметить, что считывание сигнала с аналогового входа и передача цифровых данных на шину 12С происходит по сигналу АСК. Причем момент считывания аналогового сигнала и момент начала передачи цифрового сигнала (точнее, его старшего бита) разнесены во времени, как показано на рис. 3.70.
Как уже было сказано ранее, входы микросхемы могут работать в обычном и дифференциальном режимах. График, отражающий работу микросхемы в обычном режиме, приведен на рис. 3.71, дифференциальный режим показан на рис. 3.72.
V -V v — REF v AGNP LSB 256
Чтобы обеспечить стабильность А/D и D/А преобразований, необходим специальный источник опорного напряжения, подключаемый к выводам Vref и AGND микросхемы. Встроенный генератор необходим для обеспечения цикла преобразования А/D и для корректировки буферного усилителя с автоматической подстройкой нуля.
Представители микросхем с интерфейсом 12С
115
Рис. 3.72. Дифференциальный режим преобразования A/D
Чтобы задействовать внутренний генератор, вывод EXT должен быть замкнут к Vss. Тогда на выводе OSC появится сигнал частоты преобразования, который можно проконтролировать. Если вывод EXT подключить к VDD, внутренний генератор перейдет в высокоимпедансное состояние и на вывод OSC можно подавать сигнал от внешнего генератора.
116
Представители микросхем с интерфейсом PC
В табл. 3.38 приведены основные технические характеристики микросхемы, необходимые для проектирования.
Таблица 3.38
Параметр технических условий	Символ	Мин.	Норма	Макс.	Ед. изм.
Напряжение питания	4)0	2,5	-	6,0	В
Ток потребления: в ждущем режиме АООТ отключен АООТ включен	Ьо			1 125 0,45	15 250 1,0	мкА
Порог срабатывания схемы внутреннего сброса	Vpw	0,8	-	2,0	В
Входное опорное напряжение	VreI	Vss+1,6	-	Voo	В
Потенциал аналоговой «земли»	VftGND	Vss	-	Voo	В
Входное сопротивление	^ref	-	100	-	кОм
Частота преобразования	fosc	0,75	-	1.25	МГц
Выходное напряжение	Vo	Vss	-	Voo	В |
D/А характеристики					
Ошибка смещения	ose	-	-	50	мВ
Ошибка линейности	k	-	-	±1,5	LSB
Ошибка усиления	Ge	-	-	1	%
Время установки DAC	tdac	-	-	90	мкс
А/D характеристики					
Ошибка смещения	ose	-	-	20	мВ
Ошибка линейности	u	-	-	±1,5	LSB
Ошибка усиления	Ge	-	- •	1	%
Ошибка усиления малого сигнала (AV|=16LSB)	GSe	-	-	5	%
Время преобразования		-	-	90	мкс
Рабочая температура	Tamb	-40	-	+85	•с
Температура хранения	^stg	-65	-	+150	•с
Представители микросхем с интерфейсом 12С
117
На рис. 3.73 приведен пример использования микросхемы PCF8591 в качестве температурного датчика. Выводы AINO и AIN1 работают в обычном режиме, выводы AIN2 и AIN3 включены по дифференциальной схеме.
Рис. 3.73. Вариант использования микросхемы PCF8591
PCF8583
В оригинальной документации (Product Specification) [31] микросхема имеет наименование clock/calendar with 240x8 bit RAM. Это очень интересная микросхема, которая имеет в своем составе часы реального времени и статическое ОЗУ (RAM). Причем микросхема может использоваться и как только часы, и как только ОЗУ, а также выполнять совмещенные функции — все ячейки памяти находятся в одном адресном пространстве. Где можно применить данную микросхему? Например, запитав ее от отдельного автономного источника (гальванической батареи или аккумулятора), разместить в устройстве, требующем считывания текущего времени в процессе работы (скажем, для ведения протокола каких-либо измерений). Такие часы имеются в любом PC-совместимом компьютере для сохранения даты создания файлов. В составе уличных телефонов-автоматов тоже есть часы реального времени для фиксации времени разговора и опреде
118
Представители микросхем с интерфейсом !2С
ления просроченных телефонных карт. Часы реального времени можно использовать в разнообразных системах избирательного доступа, в бытовой технике (таймеры кухонной техники), в автомобильной электронике. Читатель сам найдет варианты применения 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.
Представители микросхем с интерфейсом 12С
119
OSC1	[1	и	J] Voo
OSCO	1		7] 1ST
АО	1		б] SCL
Vss	[I		s] SDA
PCF8583P PCF8583T
Рис. 3.74. Расположение выводов
Таблица 3.39. Назначение выводов
Символ	Вывод	Описание
OSC1	1	Вход генератора
OSCO	2	Выход генератора
АО	3	Программирование slave-адреса
Vss	4	Общий питания
SDA	5	Линия SDA шины 12С
SCL	6	Линия SCL шины 12С
INT	7	Вывод генерации прерывания
v№	8	Питание«+»
Рис. 3.75. Блок-схема внутреннего устройства
120	Представители микросхем с интерфейсом !2С
Рассмотрим теперь принципы работы с микросхемой. Как видно из рис. 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 микросхемы. Необходимо обратить внимание читателя на то, что этот вывод выполнен по технологии «открытый
Представители микросхем с интерфейсом /2С
121
controVstatus	00
hundred of a second VIOs 1	1/100s	01
seconds 10s I 1s	02
minutes 10min I 1min	03
hours ion Г ih	04
year/date KMav I idav	05
weekday/month lOmonth Г 1 month	06
timer 10dav 1 Ida*	07
alarm/control	OB
hundred of a second 1/10s I 1/1009	09
alarm seconds . I	0A
alarm minutes I	OB
alarm hours l	ОС
alarm date . I	0D
alarm month	0E
alarm timer	OF
Свободная	
RAM	
CLOCK MODE
control/status		00
D1	DO	01
D3	D2	02
D5	D4	03
Свободно		04
Свободно		05
Свободно		06
Т1 ‘™ег то		07
* alarm/control		08
alarm D1	alarm DO	09
D3	D2	0A
D5	D4	0B
Свободно		ОС
Свободно		0D
Свободно		0E
alarm timer		OF
Свободная
RAM
EVENT COUNTER
Рис. 3.76. Назначение и формат регистров микросхемы PCF8583 в режимах clock modes и event counter
сток», а значит, требует подключения pull-up резистора к напряжению питания. Флаг прерывания (INT) остается активным до момента повторного программирования режима alarm.
Если функция alarm не задействована (бит 2 регистра статуса установлен в «О»), ячейки 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 — младшей.
122
rtrfe'dtirficteUfrienu микросхем с интерфейсом 12С
MSB______________________LSB
| 7 | 6 | 5 | 4 | 3 | 2 ИТ]
I— флаг "timer* (50% секунды, если флаг "alarm" установлен в "0");
---- флаг "timer* (50% минуты, если флаг "alarm" установлен в "0");
— ----- бит разрешения режима "alarm": 0 — "alarm" запрещен.
1 — "alarm" разрешен:
флаг "mask": 0 - немаскированное чтение 05^ и 061g.
1 - непосредственное чтение date и month;
функциональный режим: 00 - частота 32768 Гц;
01 - частота 50 Гц;
10 — счетчик событий;
11 — режим тестирования;
флаг "hold last count": 0 — счетчик;
1 - захват;
флаг "stop counting" (0 - счет импульсов;
1 — остановка по условию и по строке)
Рис. 3.77. Регистр статуса (адрес 00h)
MSB LSB
Установка после сброса: 0 000 000
часы (BCD формат)
десятки часов;
флаг АМ/РМ: 0 - AM;
1 - РМ;
формат:
0 - 24-часовой (флаг АМ/РМ не задействован);
1 - 12-часовой (флаг АМ/РМ обновляется)
Рис. 3.78. Регистр hours
дни (BCD формат);
десятки дней;
Установка после сброса: 0 000 001
год (читается "0", если флаг "mask" установлен)
Рис. 3.79. Регистр year/date
Представители микросхем с интерфейсом 1?6
123
MSB____________________LSB
| 7 | 6 | 5 | 4 | 3 J 2 J 1 J 0 |
Установка после сброса: О ООО 001 месяц (BCD формат);
десятки месяца;
неделя (читается *0", если флаг "mask" установлен)
Рис. 3.80. Регистр weekdays/mounths
Диапазон изменения величин во ёсех регистрах приведен в табл. 3.40.
Таблица 3.40
Единица измерения	Режим счета	Переход к следующей единице	1 Содержание счетчика месяца
Hundredths of second	00 to 99	99 to 00	-	1
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 AM to 11 AM	-	
	12 PM	-	-
	OlPMtollPM,	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	2, year = 1,2,3
Months	01 to 12	12 to 01	-
Year	0to3	-	-
Weekdays	0to6	6to0	-
Timer	00 to 99	нет содержания	-
В случае установки бита 2 регистра статуса в состояние «1» активизируется режим alarm, таймер и схема генерации прерываний (interrupt). Все эти функции могут быть определены с помощью регистра alarm control, располагающегося по адресу 08h. Возможные состояния этого регистра приведены на рис. 3.81.
124
Представители микросхем с интерфейсом 12С
Установка после сброса: О ООО 000
функции таймера:
ООО - без таймера;
001 - десятки и сотни секунд;
010- секунды;
011 - минуты;
100 - часы;
101 - дни;
110 - не используется;
111- тестовый сигнал (используется все);
прерывание от таймера: 0 - нет прерываний;
1 - есть прерывания;
функция alarm: 00 - нет функции alarm;
01 - ежедневный alarm;
10- еженедельный alarm;
11 - 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» биты 6 и 7 регистра alarm hours должны соответствовать битам счетного регистра часов.
Таймер (адрес 07h) активизируется при установке в регистре статуса комбинации XX0X XIXX. Таймер может осуществлять счет от 0 (или от другой установленной величины) до 99. Флаг timer в регистре статуса должен быть установлен при превышении таймером указанной величины, а возврат обеспечивает программно. Этот флаг может генерировать внешнее прерывание при установке бита 3 в регистре alarm control.
Alarm от таймера может быть установлен по биту 6 в регистре alarm control. Когда счетное число таймера сравняется с величиной,
Представители микросхем с интерфёйсЪйРС'
125
MSB_______________LSB
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | О |
I----- активизирована неделя 0;
----------- неделя 1; —---------- неделя 2;
------------------------ неделя 3; ------------------------ неделя 4; ------------------------ неделя 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) и OSCO (вывод 2) нужно подключить кварцевый резонатор на частоту 32,768 кГц. Подстроечный конденсатор (триммер), подклю-
126
Представители микросхем с интерфейсом 12С
MSB___________LSB
Нб|5|4|з|2[7]Т|
Установка после сброса: О ООО 000
функции таймера:
ООО - нет таймера;
001 - единицы;
010 - 100;
011- 10 000;
100-1 000 000;
101 - не используется;
110 - не используется;
111 - тест, все счетные соотношения используются параллельно;
прерывание от таймера: 0 - нет прерываний;
1 - есть прерывание
функция clock alarm: 00 - нет событий alarm;
01 - событие alarm;
10- не используется;
11 - не используется;
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 точно такой же, как и для ЭСППЗУ с последовательным доступом, поэтому здесь он подробно не рассматривается.
Представители микросхем с интерфейсом 12С
127
Рис. 3.84. Блок-схема, поясняющая генерацию прерываний от сигналов alarm и timer
В заключение приведем основные характеристики микросхемы, необходимые для проектирования.
Таблица 3.41
Параметр технических условий	Символ	Мин.	Норма	Макс.	Ед-изм.
Напряжение питания (ГС активна)	Чх>	2,5	-	6.0	В
Напряжение питания (ГС неактивна)	Чю	1,0	-	6,0	В
Потребляемый ток (f^ = 100 кГц)	'do	-	-	200	мкА
Рабочая температура	"^атЬ	-40	-	+85	•с
128
Представители микросхем с интерфейсом ?С
Окончание таблицы 3.41
Параметр технических условий	Символ	Мин.	Норма	Макс.	Fa. изм.
Температура хранения	^stg	-60	-	+150	•с
Интегрированная емкость генератора	^osc	-	40	-	пФ
Стабильность генератора	4sc	-	2  107	-	
Входная частота в режиме event counter	fi	—	-	1	МГц
Параметры кварцевого генератора 					
Последовательное сопротивление	Rs	-	-	40	кОм
Параллельная входная емкость	Cl	-	10	-	пФ
Подстроечный конденсатор (триммер)	Ст	5	-	25	пФ
Микросхема выпускается в корпусах DIP8 и SO8. Схема включения приведена на рис. 3.85.
VDD
I I VDD
SDA SCL
Рис. 3.85. Схема включения PCF8583 в режимах event counter и clock modes
Представители микросхем с интерфейсом Рс
129
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.
sda[2	1	8	II	Voo
SCL| IL	2	7	I I	AO
Tout) _]_]_	3	6	II	A1
gnd[2	4	5	II	A2
				
Рис. 3.86. Расположение выводов микросхемы DS1621
Таблица 3.42. Назначение выводов микросхемы
Символ	Вывод	Описание
SDA	1	Линия SDA шины PC
SCL	2	Линия SCL шины PC
Tout	3	Сигнал термостатирования
GND	4	Общий вывод
A2	5	Адресный вход 2
Al .	6	Адресный вход 1
AO	7	Адресный вход 0
4)D	8	Питание«+»
130
Представители микросхем с интерфейсам Рс
Измерение температуры происходит по оригинальной методике, показанной на рис. 3.87.
Рис. 3.87. Блок-схема измерителя температуры
В составе микросхемы предусмотрено два генератора: один с высокой температурной стабильностью, второй — с сильной зависимостью частоты от температуры. Имеется также счетчик, который предварительно устанавливается на отсчет, соответствующий температуре-55 °C. Устройство «сумматор фронтов сигнала» компенсирует нелинейную зависимость частоты от температуры. Значение температуры представляется в 9-разрядном двоичном коде, данные передаются по шине двумя байтами. Вначале передается старший байт (начиная с бита MSB), вторым следует младший байт. Старший бит младшего байта носит название LSB и соответствует градации 0,5 °C. Семь последующих битов младшего байта всегда читаются как нулевые. Вообще-то точность измерения температуры можно по
Представители микросхем с интерфейсом 12С
131
высить, произведя калибровку реального датчика в температурном диапазоне, введя необходимые поправки и применив методику, приведенную ниже. Но некалиброванный датчик нельзя использовать с повышенной точностью измерений.
Значения байтов DATA для некоторых температур приведены в табл. 3.43.
Таблица 3.43
Температура, "С	Код
+125	01111101 00000000
+25	00011001 00000000
+0,5	00000000 10000000
+0	0000000000000000
-0.5	11111111 10000000
-25	11100111 00000000
-55	11001001 00000000
Микросхема может работать в режиме термостатирования. Для этого нужно задать верхнюю (TH) и нижнюю (TL) температуры, естественно, в двоичном коде. Тогда напряжение на выводе Tout будет соответствовать диаграмме, приведенной на рис. 3.88.
I	I
Г*---------------------->
— <--------------------►-----------
TL	TH	Т(°С)
Рис. 3.88. Микросхема в режиме термостата
При нагревании и превышении уставки TH вырабатывается высокий уровень на выходе Tout и начинается процесс охлаждения. Когда температура станет ниже уставки TL, уровень сигнала на указанном выходе станет низким и вновь начнется нагрев. Реализуется так называемый процесс управления с гистерезисом температуры.
132
Представители микросхем с интерфейсом 12С
Разберемся теперь, как конфигурировать микросхему и получать данные от нее. На рис. 3.89 показан вид конфигурационного регистра. Он имеет следующие биты:
•	DONE — бит завершения преобразования температуры в двоичный код. Когда DONE = 1, преобразование завершено;
•	THF — флаг «высокая температура». Этот флаг устанавливается в «1», когда температура становится равной или больше установки TH. Этот бит останется в положении «1», пока не будет сброшен программно или не будет отключено питание микросхемы;
•	TLF — флаг «низкая температура». Этот флаг устанавливается в «1», когда температура становится равной или ниже установки TL. Работа с флагом аналогична работе с THF;
•	NVB — флаг записи данных в энергонезависимую память. Установка в «1» свидетельствует о незавершенности записи ячейки памяти; после окончания записи аппаратно сбрасывается. Типичный цикл записи ячейки 10 мс;
•	POL -— бит полярности выхода Tout. При установке в «1» активный уровень высокий; при установке в «0» активный уровень низкий. Этот бит энергонезависим;
•	ISHOT — бит управления циклом измерения. При установке в «1» преобразование выполняется однократно при получении соответствующей команды; при установке в «0» преобразование выполняется непрерывно. Этот бит энергонезависим.
DONE	THF	TLF	NVB	1	0	POL	ISHOT
Рис. 3.89. Регистр конфигурации
Обычно микросхема функционирует в режиме непрерывного преобразования. Тем не менее, в режиме пониженного энергопотребления возможно использование однократных преобразований. Также в режиме однократного преобразования сигнал на выводе Тоц, сохранит свое значение на момент окончания последнего преобразования вне зависимости от текущей температуры окружающей среды.
Представители микросхем с интерфейсом 12С
133
Конфигурирование и получение данных от микросхемы происходит по стандартному 12С протоколу посредством передачи управляющих команд. Вначале, как и предписывается, master-устройство передает slave-адрес, старшие 4 бита которого содержат комбинацию 1001, а младшие 3 — согласно установке сигналов на выводах А0...А2. Условие «R/W» (нулевой бит) устанавливается в состояние «0» После получения АСК передается $ битов командного слова, и slave-приемник вновь подтверждает получение выдачей АСК. Затем master-устройство может передавать данные к DS1621. Если необходимо произвести чтение (этот режим используется наиболее часто), после командного слова следует передать условие «повторный Start» и slave-адрес с битом R/W, установленным в «1».
DS1621 использует следующие команды:
•	AAh — «чтение температуры» — эта команда позволяет прочитать значение текущей температуры. Микросхема формирует 2 информационных байта данных;
•	Alh — «обращение к ТН» — команда позволяет установить значение верхнего уровня температуры в режиме термостати-рования. После выдачи этой команды должно быть передано 2 байта, определяющих значение температуры (условие «R/W» = 0). Значение ТН может быть также прочитано (условие «R/W» =1);
•	A2h — «обращение к TL» — команда установки нижнего уровня температуры в режиме термостатирования. Работает аналогично предыдущей команде;
•	АСЬ — «регистр конфигурации» — при условии установки «R/W» = 0 данные будут записаны в регистр конфигурации; при условии установки «R/W» = 1 осуществляется чтение регистра конфигурации;
•	A8h — «чтение счетчика» — команда читает состояние счетчика в схеме определения температуры, связанного с генератором с высоким температурным коэффициентом. Допустимо использование команды только в режиме чтения;
•	A9h — «чтение slope» — команда читает состояние счетчика, связанного с генератором с низким температурным коэффици
134
Представители микросхем с интерфейсом /2С
ентом. Допустимо использование команды только в режиме чтения;
•	EEh — «старт счетчика» — команда начала преобразования температуры. После передачи этой команды не требуется передавать никаких дополнительных данных. В режиме непрерывного преобразования эта команда активизирует счетчик, заставляет его работать непрерывно;
•	22h — «стоп счетчика» — команда окончания преобразования температуры. После передачи команды не требуется дополнительных данных. В режиме непрерывного преобразования останавливает счетчик; для возобновления требуется передача предыдущей команды.
С помощью команд A8h и A9h можно повысить точность измерения температуры, вычислив ее с помощью формулы
N —N
Л = Т,ЛЛЬ, -0,25 + —А9——Ь] , [ЛАП]	М
1Л| [A9h]
где T[AAhl, T[A9h], T[A8h] — соответствующие значения, считанные по командам.
Возможные комбинации управляющих сигналов приведены на рис. 3.90.
R/W
а)	S	Slave-адрес	0	А	Command	А	3
R/W
б)	S	Slave-адрес	0	А	Command	А	DATA	А	3
R/W _____________ MSB	LSB
В)	S	Slave-адрес	0	А	Command	А	DATA1	А	DATA 2	А	0
R/W
R/W
Г)	S	Slave-адрес	0	А	Command	А	Sr	Slave-адрес	0	А	DATA	ж	р
R/W
д) S Slave-адрес 0 A
R/W MSB
Command	А	Sr	Slave-адрес	О	А	DATA1
LSB
A DATA 2
A P
Рис. 3.90. Комбинации управляющих сигналов DS 1621
Представители микросхем с интерфейсом 12С
135
В табл. 3.44 приводятся режимы и содержание управляющих сигналов, с помощью которых возможно осуществить полноценную работу с микросхемой.
Таблица 3.44
Инструкция	Описание <	Команда	Содержание | данных в протоколе I
Режим преобразования температуры			
Чтение текущей температуры	Чтение регистра температуры	AAh	Чтение 2 байтов | данных
Чтение счетчика	Чтение счетчика с высоким температурным коэффициентом	A8h	Чтение байта данных
I Чтение slope	Чтение счетчика с низким температурным коэффициентом	A9h	Чтение байта данных
Старт преобразования температуры	-	EEh	Не содержатся
Стоп преобразования температуры	-	22h	Не содержатся
Режим 1	термостата			
Обращение к ТН	Чтение и запись установки температуры в ТН	Alh	Запись данных
Обращение к IL	Чтение и запись установки температуры вН.	A2h	Запись данных
Регистр конфигурации	Чтение и запись данных в регистр конфигурации	ACh	Записьданных
Как уже было сказано ранее, датчик DS1621 измеряет температуру с определенной погрешностью. Минимальная погрешность (не более ±0,5 °C) лежит в диапазоне от -15 °C до +105 °C, за его пределами погрешность возрастает. График поведения погрешности датчика приведен на рис. 3.91.
136
Представители микросхем с интерфейсом 12С
В заключение приведем основные электрические характеристики DS1621.
Таблица 3.45
Параметр технических условий	Символ	Мин.	Норма	Макс.	Ед. изм.
Напряжение питания	4)0	2,7	-	5,5	В
Время преобразования температуры	Ьс	-	0,4	1,0	с
Частота сигнала SCL: в режиме low-speed в режиме fast-speed	*SCL	0 0		100 400	кГц
Диапазон рабочих температур	lamb	-55	-	+125	•с
Ток потребления в неактивном режиме	*STBY	-	-	1	мкА    .	—
4. Микроконтроллеры с интерфейсом 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,
138
Микроконтроллеры с интерфейсом 12С
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-устройства, как мы увидим далее в практической части, можно без труда организовать и программно. Но если все же читателю понадобятся более сложные шинные структуры, без изучения аппаратных интерфейсов, встроенных в МК, ему едва ли удастся обойтись.
Микроконтроллеры с интерфейсом Рс
139
Фирма 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 (сторожевой) таймер, встроенный тактовый генератор и схему синхронизации. Чтобы обеспечить совместимость со схемами ТТЛ-логикй, предусмотрена возможность умощнения портов, устанавливаемая программно, в соответствующем внутреннем регистре.
140
Микроконтроллеры с интерфейсом /2С
МК имеет, наряду со стандартным, два низкопотребляющих режима: 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 МГц;
Микроконтроллеры с интерфейсом 12С
141
б)	3,5...24 МГц;
в)	3,5...30 МГц;
• диапазоны рабочей температуры:	'
а)	83С552хВх: 0 ... +70 °C;
б)	83C552xFx: -40 ... +85 °C (максимальная частота 24 МГц);
в)	83С552хНх: -40 ... +125 °C (максимальная частота 16 МГц);
•	корпуса PLCC68 (SOT188-2) и QFP80 (SOT318-2).
На рис. 4.1 приведена блок-схема структуры данной серии микроконтроллеров. Выполнение портом прямой или альтернативной функции задается соответствующим регистром конфигурации внутри МК.
XTAL1
XTAL2
ЕА I
ALE
Р5ГН;
EIwr;
ТО, Т1 таймеры/ счетчики
Р0 Р1 Р2 РЗ TxD RxD
CMSR0-CMSR5 RST EW СМТО, СМТ1
Р4 СТ01-СТ31 Т2 RT2
ТО Т1 IRT5 ШТТ
Ш ш
Параллельные порты ввода/выводв
UART порт
Память программ ROM 8кх8
Память данных RAM 256x8
PWM
12с
порт
8 бит внутренняя шина
16
вбит порт
Захват таймера 16 бит
Т2 таймеры/ счетчики
Т2
нив
Регистры компараторов таймера
ТЗ watch dog таймер

Го] альтернативная функция порта 0
ГТ] альтернативная функция порта 1
[2] альтернативная функция порта 2
[3| альтернативная функция порта 3
[4] альтернативнвя функция порта 4
|~5~| альтернативная функция дополнительного порта (Р5)
Рис. 4.1. Блок-схема структуры МК серии 8ХС552
142
Микроконтроллеры с интерфейсом 12С
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 МГц;
Микроконтроллеры с интерфейсом 12С
143
На рис. 4.2. приведена блок-схема структуры МК серии 8ХС65Х. Микросхема выпускается в корпусах DIP40 (SOT 129-1), PLCC44 (SOT 187-2), QFP44 (SOT307-2).
Тактовая
частота
Счетчики
прерывания
Рис. 4.2. Блок-схема структуры МК серии 8ХС65Х
8ХС751 [34]
Эта серия идеально подойдет для использования в составе малогабаритной техники, имеющей невысокую стоимость. Главное преимущество МК этой серии — сокращенное число внешних выводов. МК изготавливаются по специальной КМОП технологии, разработанной Philips. В своем составе МК этой серии имеют:
•	83С751 — 2-кбайтовый ROM;
•	87с751 — 2-кбайтовый EPROM.
В структуре МК предусмотрено энергозависимое read/write ОЗУ емкостью 64 байтов х 8, 19 линий ввода-вывода, счетчик/таймер с ав
144
Микроконтроллеры с интерфейсом 12С
топерезагрузкой, фиксированные приоритеты прерываний, интерфейс 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;
•	87С752 — 2-кбайтовый EPROM.
В структуре МК предусмотрено: 21 линия ввода-вывода, 16-раз-рядный таймер с автоперезагрузкой, фиксированные приоритеты прерываний, порт 12С, встроенный тактовый генератор, пятиканальный мультиплексированный 8-разрядный А/D, 8-разрядный PWM.
Рассмотрим теперь приемы работы и устройства интерфейса 12С в микроконтроллерах 8ХС752. Напомним вкратце возможности данного интерфейса, который предусмотрен в составе микроконтроллеров Philips:
•	двунаправленная передача между slave-устройствами и master-устройствами;
•	режим multi-master;
Микроконтроллеры с интерфейсом 1гС
145
•	обеспечение арбитража между 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С ожидают освобождение шины . другими
146
Микроконтроллеры с интерфейсом 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-режим. Тактирующие импульсы имеют
Микроконтроллеры с интерфейсом 12С
147
скважность 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 в регистре S1 CON.
148
Микроконтроллеры с интерфейсом /2С
Рис. 4.3. Общая блок-схема интерфейса 12С в микроконтроллерах серии 8ХС552
Внутренняя шина
	7	6	5	4	3	2	1	0
S1ADR	х	х	х	х	х	х	X	GC |
Slave-адрес
Рис. 4.4. Регистр S1ADR
S1DAT
SD7 | SD6 |SD5 I SD4 [ SD3 | SD2 [SD1 | SDO
Рис. 4.5. Регистр S1DAT
На рис. 4.6 показана схема фиксации данных в регистре S1DAT. Вместе с ячейкой АСК формируется 9-разрядный сдвиговый регистр, бит АСК задается аппаратно без обращения к центральному процессору. Данные сдвигаются при положительных перепадах син-
Микроконтроллеры с интерфейсом 12С
149
Рис. 4.6. Фиксация данных в регистре S1DAT
хронизирующих импульсов, бит АСК передается на шину в течение 9-го синхронизирующего импульса. Имеется также буфер BSD7, данные из которого сдвигаются по отрицательному перепаду синхроимпульса SCL. Когда центральный процессор записывает данные в S1 DAT, бит 7 данных оказывается в ячейке BSD7 и он первым будет передан на шину. После прохождения 9 импульсов SCL данные в регистре S1DAT не изменятся (если осуществлена их передача).
Структура управляющего регистра приведена на рис. 4.7.
S1CON | CR2 )ENSl| 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) портов Р1.6 и Р1.7 должны быть установлены в состояние с высоким уровнем. Бит ENS1 нельзя использовать для временной приостановки обмена по шине 12С,
150
Микроконтроллеры с интерфейсом 12С
так как в противном случае (при сбросе ENS1) состояние активизации шины будет потеряно. Для этих целей задействуется флаг АА;
•	бит STA — флаг START. Бит STA устанавливается в «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-режиме. Если АА = 0, АСК не будет сгенерирован;
•	биты CRO, CR1, CR2 — биты задания тактовой частоты SCL в master-режиме. Состояние битов и значение генерируемой так
Микроконтроллеры с интерфейсом 12С
151
товой частоты приведены в табл. 4.1. В режиме slave-порт 12С автоматически синхронизируется с любой тактовой частотой в пределах 100 кГц.
Таблица 4.1
CR2	CR1	CRO	Тактовая -частота 1^, кГц	|		
			6 МГц	12 МГц	16 МГц |
0	0	0	23	47	63
0	6	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.
7	6	5	4	3	2	1	0
S1STA | SC4 [ SC3 | SC2 | SC1 | 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-абонеиту. Прежде чем перевести порт микроконтрол
152
Микроконтроллеры с интерфейсом 12С
лера в режим master transmitter, необходимо провести инициализацию в регистре S1COM согласно рис. 4.9, а также задать комбинацию бит CR0...CR2 в соответствии с предполагаемой скоростью передачи (bit rate). Бит АА может быть либо установлен, либо сброшен. Если бит АА сброшен, порт не сможет при приеме подтвердить собственный slave-адрес или general call address с другого master-устройства, желающего стать «хозяином» шины.,
S1CON
6	5	4	3	2	1	0
| CR2 |	ensi|sta|	STO | SI | АА	CR1	CRO J
1 О О О X
Рис. 4.9. Инициализация режима master-transmitter
Итак, как только шина становится свободной, порт 12С генерирует условие Start, после чего в регистре статуса S1STA устанавливается код 08h, устанавливается флаг SI. Этот код может быть использован для обработки прерывания. По прерыванию может быть загружен регистр S1DAT slave-адресом и битом направления данных R/W — в данном случае W. Бит SI в регистре S1C0N должен быть сброшен, прежде чем будет возобновлена передача. Когда slave-адрес и бит направления были переданы, получен сигнал АСК, флаг SI снова устанавливается. Регистр статуса в данном случае может содержать варианты кодов: 18h, 20h, 38h — в случае разрешения работы только в качестве master-абонента или 68h, 78h, BOh — в случае разрешения slave-режима (бит А А установлен в «1»). Действия, которые нужно предпринимать при получении данных кодов, приведены в табл. 4.2.
После выполнения условия «повторный Start» генерируется код 10h, производится загрузка регистра S1DAT slave-адресом с условием R.
Master Receiver. В этом режиме данные поступают от slave-nepe-датчика к master-приемнику. Инициализация производится точно так же, как и в предыдущем случае. После передачи условия Start программа обработки прерывания должна загрузить регистр S1DAT 7-разрядным slave-адресом и битом R направления данных. После этого могут быть продолжены операции обмена. После передачи
Микроконтроллеры с интерфейсом 12С
153
slave-адреса, получения сигнала АСК устанавливаются коды в регистре состояния. Их может быть несколько: 40h, 48h, 38h — для режима master или 68h, 78h, BOh — в случае разрешения slave-режима (бит АА = 1). Действия, которые нужно предпринимать при получении кодов, приведены в табл. 4.3.
После выполнения условия «повторный Start» генерируется код 10h, производится загрузка S1DAT slate-адресом с условием W.
Slave Receiver. В этом режиме микроконтроллер становится slave-устройством и получает данные от master-устройства, располагающегося на шине. Инициализация режима показана на рис. 4.10.
765	4	321	0
S1CON |CR2|ENS1|STA[STO| SI | АА [ CR1 [ СВР | I X I 1	0	0	0	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С ожидает прием собственного
154
Микроконтроллеры с интерфейсом 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 генерирует	Повтор
повторный "start"
Рис. 4.11. Одновременная генерация условия «повторный START» двумя master-устройствами
Потеря арбитража отражается в регистре S1STA кодами 38h, 68h, BOh.
Правила написания программного обеспечения также приводятся в документе [33]. Мы не будем останавливаться на них, поскольку не
Микроконтроллеры с интерфейсом Рс'
155
задавались такой целью. Читатель, пожелавший работать с 12С интерфейсом на уровне программирования микроконтроллеров со специализированными портами, сделает это самостоятельно.
Таблица 4.2
Код S1STA	Состояние шины |2C	Состояние регистров					Дальнейшие действия
		S1DAT	> SICON				
			STA	STO	SI	AA	
08h	Передача условия Start	Загрузка slave + W	X	0	0	X	slave + W будет передан; бит ACK будет получен
10h	Повторная передача условия Start	Загрузка slave+ W Загрузка slave+ R	X X	0 0	0 0	X X	Аналогично slave + W будет передан;
							Байт данных будет передан; бит АСК будет получен; «повторный Start» бу-
		Загрузка байта данных	0	0	0	X	дет передан; условие Stop
18h	slave+ W пере-	S1DAT неактивен	1	0	0	X	будет передано; флаг STO
	дан, АСК получен	S1DAT неактивен	0	1	0	X	будет сброшен; условие
		S1DAT неактивен	1	1	0	X	Stop, сопровождаемое условием Start, будет передано; флаг STO будет сброшен
20h	slave + W передан, АСК не по-	Загрузка байта данных S1DAT неактивен S1DAT неактивен	0 1 0	0 0 1	0 0 0	X X X	Аналогично предыдущей ситуации
		S1DAT неактивен	1	1	0	X	
	Данные из реги-	Загрузка байта данных	0	0	0	X	
28h	стра S1DAT пере-	S1DAT неактивен	1	0	0	X	Аналогично предыдущей
	даны, АСК полу-	S1DAT неактивен	0	t	0	X	ситуации
	чен	S1DAT неактивен	1	1	0	X	
	Данные из реги-	Загрузка байта данных	0	0	0	X	
30h	стра SI DAT пере-	S1DAT неактивен	1	0	0	X	Аналогично предыдущей
	даны, АСК не по-	St DAT неактивен	0	1	0	X	ситуации
	лучен	St DAT неактивен	1	1	0	X	
							Шина освобоадается, вво-
38h	Арбитраж slave + R/W байта дан-	St DAT неактивен St DAT неактивен	0 1	0 0	0 0	X X	дится неадресуемый режим, условие Start будет
	ных						передано, когда шина освободится
							
156
-Микроконтроллеры с интерфейсом /2С
Таблица 4.3
Код 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 0	X X	Аналогично slave + W будет передан
38h	Арбитраж, бит АСК не получен	S1 DAT неактивен S1DAT неактивен	0 1	0 0	0 0	X X	Шина PC будет освобождена; порт введет slave-режим; условие Start будет передано, когда шина освободится
40h	slave + R передан, АСК получен	S1DAT неактивен S1DAT неактивен	0 0	0 0	0 0	0 1	Байт данных будет получен; бит АСК не будет возвращен, байт данных будет получен; бит АСК будет возвращен
48h	slave + R передан, АСК не получен	S1DAT неактивен S1DAT неактивен S1DAT неактивен	1 0 1	0 1 1	0 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 будет сброшен
Микроконтроллеры с интерфейсом РЬ
157
Таблица 4.4
Код S1STA	Состояние шины PC	Состояние регистров					Дальнейшие действия
		S1DAT	S1CON				
			STA	STO	SI	АА	
60h	slave + W принят, ACK возвращен	S1DAT неактивен SI DAT неактивен	X X	0 0	0 0	0 1	Байт данных будет получен; бит, АСК не будет возвращен; байт данных будет получен, АСК будет возвращен
68h	Арбитраж slave+ R/W master; slave + W принят, ACK возвращен	S1DAT неактивен SI DAT неактивен	X X	0 0	0 0	0 1	Аналогично предыдущей ситуации
70h	general call address принят, ACK возвращен	SI DAT неактивен SI DAT неактивен	X X	0 0	0 0	0 1	Аналогично предыдущей ситуации
78h	Арбитраж slave + R/W master; general call address принят, ACK возвращен	S1DAT неактивен S1DAT неактивен	X X	0 0	0 0	0 1	Аналогично предыдущей ситуации
80h	slave-адрес получен, данные приняты, АСК возвращен	Чтение данных Чтение данных	X X	0 0	0 0	0 1	Аналогично предыдущей ситуации
88h	slave-адрес получен, данные приняты, АСК не возвращен	Чтение данных Чтение данных Чтение данных Чтение данных	0 0 0 0	0 0 0 0	0 0 0 0	0 1 0 1	Переключение к не адресуемому slave-режиму; не опознается собственный slave или общий адрес вызова; собственный slave-адрес будет распознан; общий вызов будет распознан, если бит 0 SI ADR = 1; условие Start будет передано, когда шина освободится
158
Микроконтроллеры с интерфейсом Рс
Окончание таблицы 4.4
Код S1STA	Состояние шины |2С	Состояние регистров					Дальнейшие действия
		S1DAT	S1CON				
			STA	STO	SI	АА	
901)	general call address принят, АСК возвращен	Чтение данных Чтение данных	X X	0 0	0 0	0 1	Байт данных будет получен; бит, АСК не будет возвращен; байт данных будет получен, АСК будет возвращен
981)	general call address принят, АСК не возвращен	Чтение данных Чтение данных Чтение данных Чтение данных	0 0 1 1	0 0 0 0	0 0 0 0	0 1 0 1	Переключение к не адресуемому slave-режиму; не опознается собственный slave или общий адрес вызова; собственный slave-адрес будет распознан; общий вызов будет распознан, если бит 0 S1ADR = 1; условие Start будет передано, когда шина освободится
AOh	Условие Stop и повторное условие Start получено	S1DAT неактивен S1 DAT неактивен S1 DAT неактивен S1DAT неактивен	0 0 1 1	0 0 0 0	0 0 0 0	0 1 0 1	Аналогично предыдущей ситуации
Микроконтроллеры с интерфейсом 12С
159
Таблица 4.5
Код S1STA	Состояние шины PC	Состояние регистров					Дальнейшие действия
		S1DAT	S1CON				
			STA	STO	SI	АА	
ABh	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	Аналогично предыдущей ситуации
COti	Байт данных из S1DAT передан, АСК не возвращен	S1DAT неактивен S1DAT неактивен S1DAT неактивен S1DAT неактивен	0 0 1 1	0 0 0 0	0 0 0 0	0 1 0 1	Переключение к не адресуемому slave-режиму; не опознается собственный slave или общий адрес вызова; собственный slave-адрес будет распознан; общий вызов будет распознан, если бит 0 S1ADR = 1; условие Start будет передано, когда шина освободится
C8h	Прошлый байт из SI DAT передан (АА = 0);АСК возвращен	S1DAT неактивен S1 DAT неактивен 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 МГц, Afs = = 22,5 кГц, fm = 1 кГц, Vp = 3 В).
Микросхема выпускается в корпусе SDIP24 (SOT234-1) с шагом выводов 1,75 мм, что допускает ее установку на печатную плату в отверстия.
Практические конструкции
161
Таблица 5.1
Параметр технических условий	Символ	Мин.	Норма	Макс.	Ед. изм.
Напряжение питания	v₽	2,0	-	12	В |
Ток потребления в режиме ЧМ	'р	7.3	9,0	11.2	мА
Рабочая температура	Тать	-15	. -	+60	с |
Реальная чувствительность	ЧпЗ Ч	1.0	2,0	3,8	мкВ
Общие гармонические искажения	THD	-	0,8	2,0	%
Входная емкость	Q	-	3	-	пФ
Ток индикатора точной настройки в положении «настроено»		2	3,5	6	мА
Ток индикатора точной настройки в положении «не настроено»	’indoft	-	0	10	мкА |
Главная проблема, связанная с созданием двухдиапазонного тюнера, кроется в недостаточном коэффициенте перекрытия диапазона элементами настройки (варикапами). Проще говоря, не хватает диапазона изменения их емкости для перестройки частоты от 63 до 108 МГц. Решая задачу электронного переключения диапазонов, автор опробовал варианты переключения диапазонов как индуктивных элементов резонансных контуров, так и емкостных. Оба способа оказались работоспособными и имеющими право на существование. Однако вариант с переключением емкостных элементов несколько более прост по практической реализации, поэтому автор на нем и остановился.
Способ переключения показан на рис. 5.1. Как видно из рисунка, в контур на основе не перестраиваемой индуктивности L включены две независимые параллельные ветки емкостей, образованных С1 и VD1, а также С2 и VD2. Причем ветка С2—VD2 управляется напряжением настройки UliaCTp плавно, а ветка С1—VD1 имеет только два значения емкости: минимальное и максимальное. Переключение осуществляется транзистором VT1 при помощи напряжения Unep, которое может формировать либо микроконтроллер, либо другой источник (в авторском варианте это сигнал с вывода 8 микросхемы TSA6057). С помощью приведенной схемы коэффициент перекрытия варикапов как бы возрастает в 2 раза.
162
Практические конструкции
Рис. 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). Вообще необходимую постоянную времени коррекции мож-
Практические конструкции
163
Рис. 5.2. Двухдиапазонный стереофонический тюнер. Схема электрическая
принципиальная
164
Практические конструкции
но получить и при других значениях номиналов элементов. Важно лишь выдержать следующее соотношение:
тНч = (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,
Практические конструкции
165
К50-68; резисторы С2-29, С2-33, МЛТ. Катушки L1 и L2 намотаны виток к витку на гладких каркасах диаметром 5 мм. Количество витков: L1 -— 4 витка, L2 — 3 витка. Провод ПЭВ-2, ПЭТВ или аналогичный диаметром 0,3...0,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 и настроиться на станцию в диапазоне ЧМ. Звучание (если, конечно, станция вещает в стереорежиме) должно быть стереофониче-
166
Практические конструкции
90
Рис. 53. Печатная плата
Практические конструкции
167
Рис.- 5.4. Сборочный чертеж
168
Практические конструкции
ским, светодиод HL2 должен сигнализировать об этом. Настройка аналоговой части закончена. Временный переменный резистор можно отпаять.
Устанавливаем микросхемы D4, D5 и индикатор D6. Естественно, микроконтроллер должен быть к этому моменту «прошит» программой. Его желательно установить на «панельку». Имена файлов Termo_080Lsav — для 8-символьного индикатора, termo_160Lsav — для 16-символьного индикатора.
После включения питания на индикаторе должно появиться значение частоты, установленное в первой ячейке ЭСППЗУ. Кнопками S1 («запись»), S2 («плавно/фиксир.»), S3 («-») и S4 («+») можно перемещаться по диапазону, переходить из режима плавной настройки в фиксированный режим и обратно, записывать в ЭСППЗУ фиксированные настройки (30 позиций). Занесение в память плавных настроек необходимо осуществлять по следующей схеме: вначале происходит настройка на желаемую частоту приема в режиме плавной настройки (номер плавной настройки между символами «>» и «<» не индицируется), затем устанавливается номер плавной настройки в режиме «фиксированные» и нажимается кнопка «запись». После отпускания кнопки «запись» настройка обновляется, а ее значение сохраняется в энергонезависимой памяти МК. При переходе с диапазона на диапазон в левой части индикатора будет появляться значок «ЧМ» или «FM».
В самом конце нужно впаять микросхему D3 и убедиться, что тюнер перестраивается по диапазону кнопками S3 и S4. Установите плату в подходящий корпус, закрепляйте органы управления и индикации. Тюнер готов к эксплуатации.
Электронный термометр
Не думайте, что электронный термометр — бесполезная вещь в радиолюбительской лаборатории. Он может пригодиться, когда требуется оценить реальный тепловой режим силовых приборов, но не «на глазок», не пальцем, а в конкретных цифрах. Можно также проследить динамику прогрева силовых элементов и, исходя из этого, принять решение о дополнительном охлаждении.
Практические конструкции
169
Схема этого полезного и несложного прибора приведена на рис. 5.5. Как видно из схемы, часть, относящаяся к управлению датчиком температуры (D1), выполнена по схеме, закомой нам по предыдущей конструкции.
Рис. 5.5. Электронный термометр. Схема электрическая принципиальная
Однако «прошивка» микросхемы D2 совершенно другая. Теперь вы видите, насколько удобны программируемые средства! Датчик температуры выполнен на микросхеме DS1621. Установлен он на отдельной печатной плате (рис. 5.8, 5.9) для возможности размещения в труднодоступном месте. С управляющей платой датчик соединен многожильным проводом в общей изоляции длиной около 3 м. Конструкция датчика — произвольная. Важно лишь обеспечить его термостойкость на морозе и при высоких температурах.
170
Практические конструкции
42,5
Рис. 5.6. Печатная плата
1	к D4
Рис. 5.7. Сборочный чертеж
Практические конструкции
171
17.5
Рис. 5.8. Датчик. Печатная плата
Рис. 5.9. Датчик. Сборочный чертеж
Для питания прибора нужно собрать внешний источник питания на 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. Но пытливому читателю, желающему разработать прибор по своему вкусу (например, управляемый термометр-термостат с памятью на несколько
172
Практические конструкции
отсчетов температуры), рекомендуется установить кнопки и несколько расширить возможности программного обеспечения.
Регулятор громкости и тембра
Основой этого регулятора служит оказавшаяся в распоряжении автора микросхема 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 данных (в этом файле хранятся первоначальные настройки).
Практические конструкции
173
литами*
Вход И
ВходЯ!
НН
СИ 0,022мк I u
‘ | ЗЗОмкГн
f-'b-cF-1мкх25В
, .	„ 1мкх25В
О—1к----------
сз D1
1мкх25В Г" -О—lb------- 1
С21
4 НН 2 100мк
С4 1мкх25В .
С7
I 0,022м* ,
Рис. 5.10. Регулятор громкости и тембра. Схема электрическая принципиальная
174
Практические конструкции
97,5
Рис. 5.11. Печатная плата
Рис. 5.12. Сборочный чертеж
Практические конструкции
175
Цифровое табло с интерфейсом 12С
Буквенно-цифровые жидкокристаллические (ЖКИ) индикаторы типа DV-16100, широко используемые в конструкциях, описанной в этой и других книгах, к сожалению, имеют существенный недостаток — отсутствие последовательного интерфейса управления. Для управления данными индикаторами1 необходимо иметь 8 линий данных (DB7...DB0) и три линии управляющих сигналов (RS, R/W, Е). Большинство микроконтроллеров, применяемых в радиолюбительских конструкциях, имеют ограниченное, количество портов вво-да/вывода. Найти же готовый индикатор с последовательным интерфейсом —• задача непростая, а во многих случаях еще и дорогостоящая. Как быть?
Автор сделал попытку в какой-то мере решить эту проблему введением последовательного сдвигового регистра, уменьшившего количество линий до 4-х, однако усложнилось программное обеспечение, обслуживающее индикатор. Идеальным же вариантом можно считать индикатор, оснащенный интерфейсом 12С. Тогда индикатор становится обычным slave-устройством с принадлежащим ему slave-адресом и стандартизованным протоколом передачи данных. Потратив дополнительно примерно $4, можно получить вполне работоспособный индикатор, оснащенный 12С. Обращаю ваше внимание на то, что обычный индикатор обладает двунаправленной шиной данных, а операция чтения используется для контроля занятости дисплея и для считывания записанных в оперативную память данных. Автор не ставил задачи осуществлять чтение этой информации, поскольку данная процедура усложнила бы программное обеспечение без особого выигрыша в преимуществах. Поэтому интерфейс 12С здесь работает только в режиме записи данных и управляющих команд.
Интерфейс выполнен на основе микроконтроллера КР1878ВЕ1 (рис. 5.13). Старшая часть slave-адреса задана как 1010, младшие три бита задаются джамперами j 1, j2, j3. Причем джампер jl задает бит Al, j2 — бит А2, j3 — бит АЗ. Бит R/W должен всегда устанавливаться в «0». Индикатор имеет следующие возможности интерфейса:
•	опознавание slave-адреса с выдачей сигнала АСК в случае совпадения переданного и заданного адресов;
176
Практические конструкции
Рис. 5.13. Буквенно-цифровой индикатор с интерфейсом 12С. Схема принципиальная
•	выдача сигнала NOACK в случае несовпадения slave-адресов, дальнейшее ожидание условия stop;
•	задание вторым байтом субадреса (по субадресу 00h осуществляется запись команды, по субадресу 01 h—запись символа в видеопамять) и выдача сигнала АСК при опознавании субадреса;
•	выдача сигнала NOACK в случае несовпадения субадресов и ожидание условия stop;
•	передача данных/команд с обязательной выдачей сигнала АСК;
•	в момент установки линии SCL в высокий уровень прием информации может быть прерван заданием условия stop (линия SDA устанавливается в высокий уровень).
В своем составе стандартный индикатор содержит регистр данных (DR), регистр команд (IR), видеопамять (DDRAM), ОЗУ знакогенератора пользователя (CGRAM), счетчик адреса памяти (АС), флаг занятости индикатора. Интерфейс для внешнего управления содержит 8 линий данных (DB7...DB0), сигнал «запись/чтение» (R/W), сигнал «команда/данные» (RS), строб (Е). Если RS = 0, данные интерпретируются как команда управления ЖКИ, если RS = Г, выво
Практические конструкции
177
дится графический символ. Управление индикатором осуществляется при помощи флагов, назначение которых показано в табл. 5.2.
Таблица 5.2. Флаги управления
| Флаг	Назначение
1/0	Смещение счетчика адреса («0» - уменьшение,«1»- увеличение)
S	Сдвиг содержимого экрана («0» - сдвиг не происходит,«1» - автоматический сдвиг после записи в DDRAM очередного кода в направлении, определяемом флагом 1/D - <0» - вправо, «1»-влево)
S/C	Сдвиг содержимого экрана без изменения содержимого DDRAM («0» - сдвигается курсор, «1»- сдвигается экран)
fVL	Сдвиг экрана или курсора («0» - вправо, «1» - влево)
DA	Разрядность шины данных («0» - 4 разряда,«1» - 8 разрядов)
N	Развертка изображения («0» - одна строка, «1» - две строки)
F	Размер матрицы символа («0» - 5x8, «1»- 5x10)
D	Включение/выключение («0» - изображение отсутствует, «1» - включено)
C	Подчеркивание символов («0» - нет, «1»- есть)
В	Мерцание курсора («0» - нет,«1» - мерцание)					|
Команды управления дисплеем приведены в табл. 5.3, таблица символов показана на рис. 5.14.
Таблица 5.3. Управляющие комбинации битов регистра IR
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 до 4Ri; двухстрочный режим от 00h до 27h и or 40h до 671т)
178
Практические конструкции
Рис. 5.14. Знакогенератор ЖКИ (русифицированный)
Обращаю внимание читателя на то, что бит D/L в команде конфигурации может принимать любое значение, так как управление дисплеем осуществляется побайтово, внутренняя же связь контроллера с дисплеем организована посредством 4-разрядной шины (DB7...DB4). Формат сообщений представлен на рис. 5.15. Важное замечание: блоки DATA могут следовать один за другим, например, в случае передачи группы команд или в автоинкрементном режиме вывода символов.
S	1	0	1	0	АЗ	А2	А1	0	АСК	0	0	0	0	0	0	0	%	АСК
АСК Р
Общий вызов
Рис. 5.15. Формат данных, передаваемых по шине 12С для ЖКИ
Практические конструкции
179
Рабочая программа индикатора (ind_I2C.sav) прошивается в МК до установки на печатную плату. Рекомендуется устанавливать МК на контактную панельку, чтобы можно было обновлять программное обеспечение. Печатная плата изображена на рис. 5.16, сборочный чертеж — на рис. 5.17.
80
2,5
Рис. 5.16. Печатная плата
Рис. 5.17. Сборочный чертеж
180
Практические конструкции
Печатная плата выполнена по размеру, совпадающему с размером штатной печатной платы индикатора, с совпадением крепежных отверстий. При монтаже рекомендуется разнести обе платы, подложив между ними диэлектрические шайбы толщиной 5-6 мм. Регулировка контрастности осуществляется резистором R9. Pull-up резисторы R7 и R8 можно подключить к линиям SDA и SCL с помощью джамперов j4 и j5, но можно использовать и внешние резисторы. Помните также, что данная конструкция только частично эмулирует интерфейс 12С (программно), поэтому напряжение питания линий SDA и SCL должно быть в пределах 4,8...5,1 В.
На этом, друзья, позвольте завершить наше первое знакомство с шиной 12С. Автор надеется, что теперь, взяв документацию на любую микросхему этого типа, вы сможете без труда разобраться с тем, как ею управлять.
О чем еще хотелось бы рассказать в следующих книгах серии  «Просто и доступно»? Во-первых, можно продолжить разговор о силовой импульсной технике, начатый в первой книге. Во-вторых, возможно познакомиться с начальными сведениями о широко известных, но тем не менее остающихся загадочными микроконтроллерами серии MCS-51, о приемах работы с ними, о программном обеспечении... Но, может быть, читатели сами предложат автору темы, которые им интересны. А автор постарается, чтобы рассказ излагался ПРОСТО И ДОСТУПНО!
Приложение.
Описание программного обеспечения электронного термометра
При работе электронного термометра его особенностьяю является работа линии SDA микроконтроллера как на вывод, так и на ввод. Соответственно возникает необходимость оперативного переключения портов МК в процессе выполнения программы.
Точка начала программы — метка Start. После отработки прерывания по начальному пуску происходит однократное конфигурирование портов, перевод микросхемы датчика в режим автопреобразования, запуск схемы преобразования температуры. После этого программа входит в бесконечный цикл, заключенный между меткой zikl и командой jrnp zikl. Конфигурирование портов на ввод и на вывод осуществляется с помощью процедур kon wr и kon_re. Осуществляется эта процедура очень просто — по адресу 18h в режиме автоинкремента задаются соответсвующие функции выводов. Далее происходит возврат в основную программу и продолжается ее выполнение.
Протокол шины 12С разложен на элементарные функции, также реализованные с помощью процедур:
—	sta mic — формирование условия start;
—	sto mic — формирование условия stop;
—	bytemw — вывод в порт байта (8 бит);
—	bytemr — чтение из порта байта;
—	ack wr — выдача АСК;
—	noack wr — выдача NOACK при чтении.
Оперируя этими элементарными функциями, можно составлять протоколы любой сложности.
Важной процедурой является процедура вывода на индикаторную панель LCD. Поскольку несколько усложнен интерфейс сопряжения (введен буферный регистр), вспомогательная процедура regist «набивает» данные в регистр. Стробирование и направление «коман-да/данные» осуществляются процедурами fik ir и fik dr. Сопряжение с разными типами индикаторов реализуется также предельно
182
Приложение
просто: команда перевода курсора дисплея в 40-ю позицию подается либо после вывода 4-х символов, либо вообще не подается.
Процедура dsat переводит двоичное число, получаемое от датчика в десятичное, готовое в выводу на индикаторную панель.
Все временные интервалы задаются таймером, конфигурируемым процедурой timer.
=========== электронный термометр ======================
jmp start	начальный пуск
пор jmp start	;переполнение стека команд или данных
rti	;интервальный таймер (возврат из прерывания)
пор пор пор пор пор пор пор пор пор пор пор
пор start:
Idr #a,40h Idг #b,68h Idr #c,18h Idr Hd.OOh movl »c1,00011011b movl %c1,00000000b movl %c1,00000000b movl *c1,00000000b movl Kc1,00000000b movl *c1,00000000b movl %a5.01100001b movl Ka6,10101000b jsr timer movl %a5,00000000b movl *a6.00000011b push #c
Idr #c, 50h jsr kon_wr jsr stajnic movl *c5,10010000b jsr byte_m_w movl %c5,0ach jsr byte_m_w movl %c5,02h jsr byte_m_w
;точка начала программы
;основной рабочий регистр
;регистр перевода 2х в 10х
установка адреса сегмента конфигурации портов А и В
;регистр портов и таймера
;автоинкремент конфигурации порта А
;тип вывода - вход
;отключение р-канального транзистора
;отключение нагрузочного резистора
;запрещение прерывания от положительного фронта запрещение прерывания от отрицательного фронта
;старший байт интерв. таймера 0,5 сек
;младший байт интерв. таймера 0,5 сек
задержка 0,5 сек
;старший байт интервального таймера
;младший байт интервального таймера
конфигурация на запись
;условие START
;команда “SLAVE+W»
;вывод в порт
;команда -конфигурирование»
; вывод в порт
;"автопреобразование”
;вывод в порт
Приложение
183
jsr stajnic	; повторный START
movl %c5,10010000b	;команда «SLAVE+W»
jsr byte_m_w	: вывод в порт
movl %c5,0eeh	;команда «старт»
jsr byte_m_w	;вывод в порт
jsr stojnic	; условие STOP
pop ЙС	
zikl:	; вход в бесконечный цикл вывода
movl %a5,00000000b	;старший байт интервального таймера
movl %a6,00000011b	;младший байт интервального таймера
push He	
Idr йс.50Ь	
jsr konjvr	;конфигурация на запись
jsr stajnic	;условие START
movl %c5,10010000b	;команда «SLAVE+W»
jsr byte_m_w	;вывод в порт
movl %c5,0aah	;команда «чтение температуры»
jsr byte_m_w	;вывод в порт
jsr stajnic	;повторный START
movl %c5,10010001b	;команда «SLAVE+R»
jsr byte_m_w	;вывод в порт
jsr kon_re	конфигурация на чтение
push йс	
Idr Hc,58h	;сегмент чтения из порта
jsr byte_m_r	;чтение старшего байта температуры
mov 5taO,%c5	;пересылка в %а0
pop йс	
jsr koo_wr	конфигурация на запись
jsr ack_wr	;выдача АСК
jsr kon_re	;конфигурация на чтение
push »c	
Idr яс, 58h	
jsr byte_m_r	;чтение младшего байта температуры
mov %a1,%c5	;пересылка в %а1
pop »c	
jsr kon_wr	конфигурация на запись
jsr noack_wr	;выдача NOACK
jsr stojnic	;условие STOP
jsr led	;вывод на LCD
movl %a5,11111111b	;старший байт интервала 1 с
movl %a6,10101000b	;младший байт интервала 1 с
jsr timer	;.отсчет 1 с
pop ЙС	
jmp zikl	;возврат к считыванию
•			 процедуры 	
kon_wr:	;===—= процедура конфигурации порта В на запись (write)	
push йс	
Idr йс,18б	
movl «с2,00011011b	;автоинкреиент конфигурации порта В
movl %c2,11111111b	;тип вывода - выход
movl %c2.11111100b	;включение р-канального транзистора (кроме битов 0 и 1)
movl %c2,00000011b	выключение нагрузочного резистора (кроме битов 0 и 1)
184
Приложение
movl %с2,00000000b	Запрещение прерывания от положительного фронта
movl %c2,00000000b pop ЙС rts	запрещение прерывания от отрицательного фронта
kon_re:	; — push sc Idr #c.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:	;==	==== процедура таймера =====
movl %d4,00010000b	•.обращение к регистру конфигурации
movl %d5,01001001b	;регистр конфигурации: коэффициент деления входной частоты 400 кГц - 1/4 ;пересчет по фронту ;размерность регистра интервала - 16 бит
movl %d4,00000100b	;установка старшего байта интервала
mov %d5,%a5	;старший байт интервала
movl Ш, 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’	
S LO JliiC.	(—— movl %d2,00000000b jsr timer movl %d2,00000010b jsr timer movl %d2,00000011b jsr timer rts	==== условие STOP =—=
byte_m_w:	;		— вывод в порт микросхемы ОДНОГО байта =—
movl %c3,09h byte_OO: movl %c2,00h shl %c5 adc %c2 mov %d2,%c2 jsr timer	установка счетчика цикла
Приложение
185
movl %с4,00000010b
or *c2,%c4
mov %d2,%c2
jsr timer
movl %c4,00000001b
and M2.M4
mov %d2,%c2
jsr timer
subl %c3,01h	. f
cmpl %c3,00h
jnz byte_00	;пока не будет выведено 9 бит
rts
byte_m_r:	;====== чтение из порта микросхемы ОДНОГО байта ====
movl %c3,08h	установка счетчика цикла
movl %c5,00h
byte_0l:
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
i»Ovl %c2,00000001b
mov %d2,%c2
jsr timer
subl %c3,01h
cmpl %c3,00h
jnz byte_01	;пока не будет выведено 8 бит
rts
ack_wr:	;======= дек при чтении
movl М2.00000000b
jsr timer
movl М2,00000010b jsr timer movl М2,00000000b jsr timer rts
noack_wr:	;===== POACK при чтении
movl М2,00000001b
jsr timer
movl М2,00000011b
jsr timer
movl М2.00000001b
jsr timer rts led:	;====== процедура вывода в LCD
push #c
186
Приложение
Idг #c,60h
movl %c0,00000010b	;возврат в 1 позицию
jsr regist jsr fik_ir movl %c0,00001100b	;код включения дисплея
jsr regist jsr fik_ir movl «cO,00111000b	;код разрядности и строчное™
jsr regist jsr fik_ir movl %a7,01111101b cmp %a0,%a7 jnc lcd_OO movl %c0,20h jsr regist jsr fik_dr jmp lcd_01 lcd_OO: movl %c0,2dh jsr regist jsr fik_dr movl %a7.01ii cmp %a1,%a7 jz lcd_02 movl %a7,11111111b sub »a7,%a0 mov %a0,%a7 jmp lcd_01 lcd_02: movl %a7,11111111b sub %a7,%aO inc %a7 mov %a0,%a7 lcd_01: jsr dsat	;перевод из 2х в 1-х
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 %cO,10101000b	;для WM-0801
jsr regist jsr fik_ir movl %c0,2ch jsr regist jsr fik_dr movl %a7,10000000b and %a1.%a7	;для WM-0801 ;для WM-0801 ;символ «,»
vom
Приложение
187
cmp %a1,%a7 jz lcd_03 movl %c0,30h jsr regist jsr fik_dr jmp lcd_04	;символ -0»
lcd_03: movl %cO,35h	: символ “5»
jsr regist jsr fik_dr lcd_04: movl %cO,Odfh	;символ «о»
jsr regist jsr fik_dr movl %c0,43h	;символ «С»
jsr regist jsr fik_dr pop ЙС rts regist:	;======= процедура «набивки» регистра LCD
mov %с5,%с0
movl %c3,O8h
гед_О1:
movl %c4,00h rlc %c5 adc %c4
swap %c4
mov %d2,%c4
swap %c4
movl %c2,00000010b or %c4,%c2 swap %c4 mov %d2,%c4 swap %c4
movl %c2,00000001b
and %с4,%с2 swap %с4		
	mov %d2,%c4 subl %c3,01h cmpl %c3,00h jnz reg_01 rts	
dsat:	mov %b1,%aO movl %b4,01100100b jsr count movl %b7,00110000b or «Ь5,»Ь7 mov %a2,»b5 movl %b4,00001010b jsr count or «Ь5,«Ь7	—= процедура перевода чисел 2х в 10х
188
Приложение
mov %аЗ,%Ь5
movl %Ь4, 01 h
jsr count or %b5,%b7 mov %a4,%b5 rts
count:	;======= процедура преобразования одного числа 2х в 10х
movl %b5.00h
cou_00:
cmp %Ы,%Ь4
jc сои,01
jz сои„01
addl 96b5.01ti
sub %M,%b4
jmp cou_00 cou_01: rts fik_ir:	;======= фиксация в IR
movl %d2,00000011b nop nop movl %d2,01000011b nop nop movl %d2,00000011b nop nop rts
fik_dr:	;======= фиксация в DR	‘°''
movl %d2.10000011b nop nop movl %d2,11000011b nop nop movl-%d2,10000011b nop nop movl %d2.00000011b nop nop rts .end
Список литературы
1.	ГукМ. Интерфейсы ПК: Справочник СПб.: Питер, 1999.
2.	Геллъ П. Как превратить персональный компьютер в универсальный программатор. М.: ДМК, 2000.
3.	Семенов Б. Ю. Силовая электроника для профессионалов и любителей. М.: СОЛОН-Р, 2001.
4.	The 12C-BUS specification. Version 2.1, Philips Semiconductors, 2000, January.
5.	ParetD. The I2C-BUS from theory to practice. Wiley, ISBN 0-471-96268-6.
6.	Голов А. А. Общие положения и введение в логику работы шины 12С: Практические рекомендации. КТЦ-МК, 1997.
7.	Торрес А. Введение в спецификацию 12С. Харьков, 1997.
8.	Assigned I2C-BUS addresses General, IC12, Philips, 1997.
9.	Англо-русский словарь по аудио- и видеотехнике. Под ред. А. П. Ткаченко. Минск, 1999.
10.	256 to 1024x8 bit CMOS EEPROMs with I2C bus interface PCF85xx family. Philips Semiconductors, 1997, feb. 3.
11.	128x8 bit EEPROM with I2C bus interface PCA8581, PCA 8581C. Philips Semiconductors, 1997, apr. 02.
12.	16 k 2,5 V I2Ctm Serial EEPROM 24LC16B DS200704. Microchip Technology Inc, 1998.
13.	32 k 2,5 V I2Ctm Serial EEPROM 24LC32A DS2114C. Microchip Technology Inc, 1998.
14.	Семенов Б. Ю. Современный тюнер своими руками: УКВ стерео + микроконтроллер. М.: СОЛОН-Р, 2001.
15.	TSA6057, TSA6057T. Radio tuning PLL frequency synthesizer Philips Semiconductors, aug. 1988.
16.	TSA6060. Fast radio tuning PLL frequency synthesizer Philips Semiconductors, 1994, apr.
17.	K5004PC2 — 2K (256x8) ЭСППЗУ с 2-проводным интерфейсом. ОАО «Ангстрем».
18.	КР5004РР4 — ЭСППЗУ 4 кбит с последовательным синхронным интерфейсом. ОАО «Ангстрем».
19.	TDA1551Q 2x22 W BTL car radio power amplifier with diagnostic facility. Philips Semiconductors, 1994, July.
20.	TDA8424 Hi-Fi stereo audio processor I2C bus. Philips Semiconductors, 1992, September.
21.	TEA6360 5-band stereo equalizer circuit. Philips Semiconductors, 1991, May.
22.	TDA8421 Hi-Fi stereo audio processor I2C bus. Philips Semiconductors, 1988, May.
190
Список литературы
23.	TDA8425 Hi-Fi stereo audio processor I2C bus. Philips Semiconductors, 1988, October.
24.	TDA8426 Hi-Fi stereo audio processor I2C bus. Philips Semiconductors, 1991, March.
25.	TDA9860. Universal Hi-Fi audio processor for TV. Philips Semiconductors,. 1994, July.
26.	TEA6300, TEA6300T sound fader control circuit. Philips Semiconductors,. 1990, May.
27.	TEA6324T sound control circuit. Philips Semiconductors, 1997, March 13.
28.	TEA6330T sound fader control circuit for car radios. Philips Semiconductors, 1992, Janvary.
29.	PCF8574 remote 8-bit I/O expander for I2C bus. Philips Semiconductors 1997, apr. 02.
30.	PCF8591 8-bit A/D and D/А converter. Philips Semiconductors, 1998, Jul 02.
31.	PCF8583 clock/calendar with 240x8 bit RAM. Philips Semiconductors, 1997, Jul. 15.
32.	Гёлль П. Как превратить персональный компьютер в измерительный комплекс. Ваш ПК: тестер, осциллограф, регистратор данных. М.: ДМК. 1999.
33.	8ОС51 family derivation 8ХС552/562 overview. Philips Semiconductors, 1997, Aug. 06.
34.	83C751/87C751, 80C51 8-bit microcontroller family 2k/64 OTP/ROM I2C, low pin count. Philips Semiconductors, 1998, May 01.
35.	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, Л11. 03.
36.	87C652/87C654, 80C51 8-bit microcontroller 8k/16k, 256 OTP, I2C. Philips Semiconductors, 1999, Jul. 23.
37.	80C552/83C552 single-chip 8-bit microcontroller. Philips Semiconductors, 1998, Aug. 13.
38.	Программная реализация I2C интерфейса (Master-режим) DS00554c. Microchip,.http://www.microchip.ru.
39.	Модуль SSP в режиме I2C интерфейса для микроконтроллеров PIC16C7X. DS30390e. Microchip, http://www.microchip.ru.
40.	Модуль MSSP в режиме 12С интерфейса для микроконтроллеров PIC16C87X. DS30292b. Microchip, http://www.microchip.ru.
41.	Product line card. First quarter 2000. Microchip Technology Inc. DS00148el, 12.1999.
42.	Embedded control handbook Volume 1. Microchip Technology Inc, 1997.
43.	Броди» В. Б., Шагурин И. И. Микроконтроллеры: архитектура, программирование, интерфейс М.: Эком, 1999.
44.	ТЕА5710, ТЕА5710Т AM/FM radio receiver circuit. Philips Semiconductors, March 1994.
45.	Интегральные схемы. KP174XA51 —двухстандартный стереодекодер.' ОАО «Ангстрем», http://www.angstrem.ru.
46.	DS1621 digital thermometer and thermostst, Dallas semiconductors, 102299.
Содержание
От автора .................................................
1.	Как устроена шина 12С...................................
2.	Адреса некоторых микросхем 12С..........................3
3.	Представители микросхем с интерфейсом 12С...............4
3.1.	ЭСППЗУ с последовательным доступом................4
РСА8581 ...........................................4
PCF85xx............................................4
24LC16B............................................5
24LC32A............................................5
К5004РС2, КР5004РР4................................5
3.2.	Синтезаторы частоты...............................5
TSA6057............................................6
TSA6060........................................... 6
3.3.	Микросхемы для аудиоаппаратуры....................7
TDA1551Q...........................................7
TDA8424............................................8
ТЕА6360............................................9
3.4*	Вспомогательные микросхемы.......................10
PCF8574 ......................................... 10
PCF8591 ...........................................Ю
D/А преобразование............................11
А/D преобразование..........................  11
PCF8583 ......................................... 11
DS1621............................................12
4.	Микроконтроллеры с интерфейсом 12С.....................13
8ХС552 [37].......................................13
8ХС65Х [36].......................................14
8ХС751 [34].......................................14
8ХС752 [35].......................................14
5.	Практические конструкции...............................16
Двухдиапазонный УКВ стереотюнер...................16
Электронный термометр.............................16
Регулятор громкости и тембра......................17
Цифровое табло с интерфейсом 12С..................17
Приложение. Описание программного обеспечения электронного термометра...................................18
Список литературы.........................................18
19
19! 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-21
E-mail: Solon-R@coba.ru
ООО Издательство «СОЛОН-Р» ЛР № 066584 от 14.05.99
Москва, ул. Тверская, д. 10, стр. 1, комн. 522
Формат 60x88/16. Объем 12 п. л. Тираж 4000
ООО «Пандора-1»
Москва, Открытое ш., д. 28
Заказ № 76*
У ” J i *
АЭРОЗОЛИ
ДЛЯ ОБСЛУЖИВАНИЕ ЭЛЕКТРИЧЕСКОГО
И ЭЛЕКТРОННОГО
ОБОРУДОВАНИЯ
КОМПЛЕКТУЮЩИЕ
К ОРГ, АУДИО-, ВИДЕОТЕХНИКЕ
125083 Москва, ул. Мишина, 38/4'
Тел. (095) 214-3474, Тел./факс (095) 212-353
E-mail: unisvs@sovintel.ru, http:// www.uniservice.msk.г