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

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

ISBN: 0-471-96268-6

Год: 2002

Текст
                    Б. Ю. Семенов
ШИНА 12С
В РАДИОТЕХНИЧЕСКИХ
КОНСТРУКЦИЯХ
Москва
СОЛОН-Р
2002

Содержание От автора...................................................3 1. Как устроена шина 12С....................................5 2. Адреса некоторых микросхем 12С..........................35 3. Представители микросхем с интерфейсом 12С...............42 3.1. ЭСППЗУ с последовательным доступом................42 РСА8581 .......................................... 44 PCF85xx............................................49 24LC16B............................................53 24LC32A............................................56 К5004РС2, КР5004РР4................................58 3.2. Синтезаторы частоты...............................59 TSA6057........................................... 60 TSA6060........................................... 69 3.3. Микросхемы для аудиоаппаратуры....................72 TDA1551Q...........................................72 TDA8424........................................... 81 ТЕА6360........................................... 91 3.4. Вспомогательные микросхемы.......................100 PCF8574 ......................................... 100 PCF8591 ......................................... 107 D/А преобразование..............................ПО А/D преобразование.............................114 PCF8583 ......................................... 117 DS1621............................................129 4. Микроконтроллеры с интерфейсом 12С.....................137 8ХС552 [37].......................................139 8ХС65Х [36].......................................142 8ХС751 [34].......................................143 8ХС752 [35].......................................144 5. Практические конструкции...............................160 Двухдиапазонный УКВ стереотюнер...................160 Электронный термометр.............................168 Регулятор громкости и тембра......................172 Цифровое табло с интерфейсом 12С..................175 Приложение. Описание программного обеспечения электронного термометра...................................181 Список литературы.........................................189
От автора Однокристальные микроконтроллеры стремительно занимают ве- дущее место в электронной аппаратуре. И если каких-нибудь десять лет назад они могли быть использованы при проектировании только профессионалами — слишком много требовалось дорогостоящих средств для их программирования, — то сегодня «однокристалки» используют даже радиолюбители. Просмотрите подшивку журнала «Радио» за последние несколько лет, и вы убедитесь в справедливо- сти сказанного. Именно микроконтроллер сегодня формирует облик бытовой ау- диотехники, видеотехники, средств связи. С передних панелей ра- диоприемников, магнитол, телевизоров исчезли шкальные индикато- ры, ручки настройки, ползунковые регуляторы, переключатели. Их заменили жидкокристаллические табло и кнопки. Значительно ус- ложнилась «начинка» аппаратуры. Очевидно, что десятки разнооб- разных микросхем, составляющих электронное «нутро» аппаратуры, должны согласованно функционировать, обеспечивая наилучшие технические характеристики и удобство эксплуатации. Решая задачу сопряжения цифровых устройств, разработчики компьютерной тех- ники связали их между собой посредством шин, а способы передачи информации назвали протоколами и стандартизировали их основ- ные принципы. Каждое устройство было снабжено интерфейсом, посредством которого стало возможным подключать его к шине. Если говорить об аналоговой технике, то специализированные аналоговые микросхемы испокон веков имели уникальные собствен- ные выводы для подключения элементов, с помощью которых уста- навливались их рабочие режимы или осуществлялись регулировки в процессе эксплуатации. Например, регулировалась громкость звука, контрастность изображения и т. д. Объединять эти выводы с целью выполнения универсальной регулировки не представлялось возмож- ным. Современные микросхемы, предназначенные для использова- ния в новой аппаратуре, решено было снабдить цифровым интерфей- сом, «спрятать» настроечные выводы внутрь микросборок, а управ- лять их режимами программно.
4 Осуществлять управление одной микросхемой очень просто, для этого даже не всегда нужен внешний цифровой интерфейс. А если микросхем несколько, если они должны взаимодействовать друг с другом, обмениваться информацией? Решая эти вопросы, разработ- чики перспективных микросхем пришли к мысли о необходимости введения общей шины и протокола обмена информацией по ней. Из- вестные по компьютерной технике шины оказались здесь совершен- но негодными в силу своей сложности. Только представьте, что для реализации обмена по шине ISA или РС1 в состав аппаратуры нужно ввести полноценный компьютер... Для этих целей фирмой Philips была разработана шина Inter-In- tegrated Circuit Bus (сокращенно 12С, ай-ту-си). Принадлежа к клас- су шин с последовательным способом передачи данных, отличаясь чрезвычайной простотой реализации, шина стала быстро развивать- ся. Конечно, в основном свое детище продвигала фирма-разработ- чик, но сегодня и другие фирмы, оценившие по достоинству возмож- ности шины, поддерживают ее своей продукцией. К сожалению, на сегодняшний день отсутствует русскоязычная литература, позволяющая быстро освоить приемы работы с шиной ГС и в какой-то мере обобщить разрозненные, неполные сведения. В Интернете, на конференциях, посвященных вопросам программи- рования, то и дело возникают вопросы об основах работы с 12С, но далеко не всегда появляются дельные ответы. Весьма заманчивы перспективы использования микросхем 12С в несложных радиолюби- тельских конструкциях, обладающих тем не менее высокими потре- бительскими характеристиками. Все конструкции, в которых задей- ствуется шина 12С, обязательно должны включать в себя простейшие однокристальные микроконтроллеры, что также свидетельствует в пользу их доступности радиолюбителям. В этой книге рассказывается об основных принципах устройства шины 12С, о микросхемах, поддерживающих этот протокол обмена, о программных способах его реализации. Приведены практические схемы, позволяющие не только закрепить полученные знания, но и изготовить полезную в быту вещь. Автор надеется, что чтение этой книги будет занимательным и легким. Б. Ю. Семенов. Декабрь 2001 г.
1. Как устроена шина 12С Классический вариант обмена данными между любыми устрой- ствами заключается в том, что одно устройство передает информа- цию, а другое ее принимает. Устройства могут при необходимости поменяться ролями, то есть передатчик может стать приемником и, наоборот, приемник — передатчиком. Но в любом случае важно чет- ко определить, какое из устройств является главным, задающим пра- вила и последовательность обмена, а какое — подчиненным. Устройства, подключаемые к шине ГС, также подчиняются это- му принципу. Договорились, что одно из устройств будет ведущим (master), а остальные — ведомыми (slave). Такая организация шины называется master-организацией и является наиболее типичным слу- чаем (рис. 1.1). Master-устройством обычно назначается микроконтроллер. Именно он задает основной поток данных на шине, формирует необ- ходимые временные интервалы и т. д. Гораздо реже используется в аппаратуре режим inulti-master (рис. 1.2), когда к одной шине подключено несколько master-уст- ройств. Рис. 1.1. Master-организация шины 12С Рис. 1.2. Multi-master организация шины 12С
б Как устроена шина /2С Сложность такой организации шины состоит главным образом в том, что master-устройства должны решать, кто из них будет рабо- тать в данный момент со slave-устройствами. Одновременно на шине может совершать операции только одно master-устройство, осталь- ные обязаны отключаться. В противном случае возникает ситуация, называемая шинным конфликтом. Информация может попросту не дойти до адресата, нарушится работа устройства. Для того чтобы исключить шинные конфликты, в режиме mul- ti-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С, выпускаемых фир- мой, насчитывает в настоящее время более 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. Аппаратная реализация шины ГС в режимах low-speed и fast-speed Интерфейс любого устройства, подключенного к шине 12С, как видно из рисунка, отличается предельной простотой. Он состоит из двух транзисторов с открытым стоком (коллектором) и двух буфер- ных элементов с высоким входным сопротивлением. Один из выво- дов назван SDA (Serial Data Line), предназначается для связи с ли- нией последовательных данных. Второй вывод имеет сокращенное название SCL (Serial Clock Line), предусмотрен для связи с линией синхронизации. Как известно, по любым цифровым шинам передаются сигналы, характеризуемые только двумя электрическими состояниями — «О» и «1» («низкий уровень» и «высокий уровень»). Состояние, когда обе линии (SDA и SCL) установлены в состояние «1», считается свобод- ным шинным состоянием. Шина в этот момент не занята и готова к трансляции данных (иначе говорят, что шина находится в состоянии ожидания). Но каким образом обеспечить это состояние, если интер- фейсные элементы не имеют активных выходов, если наружу выведе- ны открытые выводы элементов? Для обеспечения логических со- стояний к шине подключаются два внешних резистора R^u (pull-up resistors), «подтягивающие» линии к напряжению питания UnHT. Ти- пичная величина этих резисторов колеблется в пределах 1...10 кОм. На рис. 1.5 эти резисторы показаны внешними, и такая ситуация про- слеживается часто. Но иногда они имеются в составе master-абонен- та. Вообще интерфейс master-абонента желательно изучить доско- нально, поскольку его выходы могут быть активными (иметь вместо
10 Как устроена шина 12С 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 метров (естественно, с понижением скорости обмена данны-
Как устроена шина 12С 11 ми). Но этот режим уже не нормируется оригинальной специфика- цией, а значит, и надежная работа устройств не гарантируется. Пропускная способность шины определяется как параметрами интерфейсов, так и паразитными параметрами линий SDA и SCL. На рис. 1.6 показаны эти паразитные параметры: • Спр — распределенная емкость линии относительно общего провода; • Свх — входная емкость интерфейса; • Z-np — индуктивность проводника линии. Рис. 1.6. Паразитные параметры, влияющие на пропускную способность шины 12С В протоколе обмена по шине используются не только статиче- ские состояния линий («О» и «1»), но и перепады уровней («О» —> «1» и «1» —> «О») и наличие паразитных параметров выражается в «затя- гивании» фронтов, а также спадов импульсов, как показано на рис. 1.7, что может нарушить нормальный обмен данными. Рис. 1.7. «Затяжка» импульса при передаче по шине — результат влияния паразитных параметров
12 Как устроена шина 12С Еще одна опасность, скрытая в слишком длинных проводниках, связана с перенапряжениями, которые могут возникнуть на интер- фейсных элементах при значительных величинах паразитной индук- тивности проводов (L ). Эта ситуация отражена на рис. 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 Как устроена шина ?С Каким способом можно определить величину резисторов R^ и Rs? В фирменной документации [4] есть ответ на этот вопрос. Там приводятся графики, оптимизирующие способ выбора резисторов. Графики отнормированы относительно разных напряжений питания, но поскольку наиболее вероятным видится вариант использования микросхем при VDD = 5 В, то сведения ограничены только этим на- пряжением. Вначале производится выбор резистора Rpu по рис. 1.11. Рассмат- ривая этот рисунок, можно сделать попутный вывод о том, что пара- зитная емкость практически не оказывает влияния на методику выбо- ра резистора Rs. Читатель также вправе задать следующий вопрос: Как определить величину паразитной емкости? Действительно, сде- лать это не так-то просто. Современные пакеты компьютерного схе- мотехнического моделирования при «разводке» печатных плат по- зволяют отмоделировать паразитные элементы, определить их вели- чину. Однако такие программы доступны далеко не всем и далеко не все умеют ими правильно пользоваться, поэтому при разработке ра- диолюбительских конструкций можно придерживаться «золотой се- редины», приняв значение паразитной емкости не более 100...200 пФ. Итак, после определения RpU по рис. 1.13 определяем номинал ре- зистора Rs (если, конечно, его предполагается ввести в схему). В за- ключение проверяем по рис. 1.12 номинал резистора Rpu. К примеру, Рис. 1.11. Зависимость максимальной величины резистора Rpu от емкости шины Рис. 1.12. Зависимость минимальной величины резистора 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]) из-за наличия так называемой емкости Миллера Cmil образуется местная отрицательная обратная связь, ко- торая не дает транзистору быстро войти в состояние насыщения. Чи- татель может возразить, обратив внимание на величину резистора R, и предложить уменьшить его номинал. Но тогда мы столкнемся со значительным увеличением тока потребления микросхем, что, ко- нечно, тоже нехорошо. Ограничения, накладываемые на минимальную величину рези- стора Rpu, связаны с тем, что через него в состоянии линии «О» дол- жен протекать ток не более 3 мА. Легко заметить, что для напряже- ния питания VDD = 5 В величина Rpu ограничена номиналом 1,7 кОм. Соответственно емкость линии не должна превышать 200 пФ. Но ес- ли линия имеет большее значение паразитной емкости? Тогда можно использовать схему, изображенную на рис. 1.16. В течение времени нарастания или спада сигнала линии микросхема НСТ4066 подклю- чает в промежугке между 0,8 и 2,0 В форсирующий резистор R^u2.
Как устроена шина 12С 17 Рис. 1.16. Использование способа динамического подключения резистора Rpu для выполнения требований спецификации шины ГС Еще одной важной технической характеристикой шины является ее совместимость. Ранее разработанные элементы, обладающие только возможностями низкоскоростного обмена, должны без про- блем связываться с высокоскоростными, и наоборот. Давайте сейчас рассмотрим поподробнее вопрос совместимости устройств, подклю- чаемых к шине, тем более что мы не вернемся к нему в рамках этой книги. Итак, к шине 12С могут быть подключены интерфейсы трех ти- пов: low-speed, fast-speed, Hs-mode. Понятно, что обмен данными мо- жет быть осуществлен со скоростью, доступной самому медленному интерфейсу. В табл. 1.2 приведены возможные предельные скорости обмена по совмещенной шине. Таблица 1.2. Скорость обмена данными в совмещенных шинах Направление передачи Конфигурация шины l2C 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). Назначение моста — от- соединить более медленные элементы в моменты обмена между бо- лее быстрыми. Рис. 1.17. Совмещенная шина 12С Дополнительное удобство, обеспечиваемое мостом, — возмож- ность использования для питания шины двух напряжений (VDDI и 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 Как устроена шина 12С Мы уже знаем, что шина в неактивном состоянии имеет на лини- ях SDA и SCL высокие уровни. Но каким образом slave-устройства могут узнать, что началась передача и что она окончилась? Для рас- познавания начала и конца передачи в спецификацию шины были введены условия Start и Stop. На рис. 1.20 представлено условие Start, на рис. 1.21 — условие Stop. В фирменной документации усло- вие Start имеет условное сокращение «S», условие Stop — «Р». Рис. 1.20. Условие START Рис. 1.21. Условие STOP Условие Start образуется при отрицательном перепаде сигнала на линии SDA при единичном состоянии линии SCL. И наоборот, усло- вие Stop возникает при положительном перепаде линии SDA при единичном состоянии линии SCL. Эти состояния всегда должны ге- нерироваться master-устройствами. Таким образом, укрупненно ин- формационный пакет, передаваемый по шине 12С, выглядит так, как показано на рис. 1.22. Для определения состояний Start и Stop в составе slave-устройст- ва обычно предусматривается специальная аппаратная схема, так как реализовать программно интерфейс slave-абонента довольно трудно: появляется необходимость постоянной проверки линии SDA на предмет опознавания данных. I---------------------------------1 Информационная часть Условие START Условие STOP Рис. 1.22. Информационный пакет данных на шине 12С
Как устроена шина 12С 21 Существует также состояние «повторный Start», которое может возникнуть в середине информационного пакета. Чуть позже мы рас- смотрим ситуации, когда появляется условие «повторный Start». Передача данных по шине производится по 8 битов, после чего следует сигнал подтверждения (acknowledge). Сигнал подтвержде- ния свидетельствует о том, что данные нормально приняты и обрабо- таны... Но обо всем по порядку! Взгляните на рис. 1.23, отражающий процесс передачи байта по шине 12С. Рис. 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С SDA______ передатчика SDA ------ приемника Рис. 1.24. Состояние acknowledge Третья ситуация, которая может возникнуть при получении сиг- нала АСК, связана с задержкой обработки данных в slave-абоненте, как показано на рис. 1.25. SDA ------ приемника Рис. 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-адресами, жестко определяются.
Как устроена шина 12С 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. S Slave-адрес % А DATA А DATA А Р и — OdilrlVo . — Передача информационных бит Рис. 1.28. Master транслирует данные на slave
26 Как устроена шина 12С Необходимо сразу оговориться, что первый бит, передающий slave-адрес устройства, содержит признак операции R/W. Когда этот бит установлен в «О», будет осуществляться запись в slave-устройст- во, когда в «1» — чтение из него. На рис. 1.29 приведен формат передачи данных от slave-абонента к master-устройству. Обратите внимание: после чтения информационного байта DATA master-абонент обязан подтвердить получение байта сигналом АСК. S Slave-адрес IsdEl А DATA А DATA А Р I —Н1СПИИ———' Чтение информационных бит Рис. 1.29. Master читает данные со slave На рис. 1.30 показан так называемый комбинированный формат, применяющийся в случаях, когда осуществляется запись и чтение в одном цикле. )ЗйЩадре!С?| А DATA A Sr Stave-адрес А DATA А Р DATA А DATA А Повторное условие START Рис. 1.30. Комбинированный формат Обычно комбинированные форматы используются для работы с последовательной памятью (для сокращения времени доступа к дан- ным). Изучая рис. 1.30, мы можем заметить, что здесь повторяются знакомые нам по рис. 1.28 и рис. 1.29 форматы. Единственное нов- шество, введенное в комбинированный формат, — повторное усло- вие Start (repeated Start condition), обозначаемое на рисунке сокраще- нием «Sr». Чуть позже, в соответствующей главе, мы рассмотрим ти- пы последовательной памяти и способы работы с ней. Как уже было сказано ранее, некоторые slave-адреса используют- ся не для прямой адресации устройств на шине 12С, а для служебных сообщений. Рассмотрим эти сообщения с учетом рис. 1.31, на кото- ром укрупненно показана структура байта адресации.
Как устроена шина 12С 27 MSB LSB ру] zw Slave-адрес Рис. 1.31. Структура байта адресации Таблица 1.3. Служебные адреса Slave-адрес R/W Описание служебного адреса 0000 000 0 Общий вызов 0000 000 1 Программный Start | 0000 001 X Адрес шины CBUS 0000 010 X Зарезервирован для других форматов шины 0000 011 X Зарезервирован на будущее 0000 1хх X Код режима Hs-mode 1111 1 хх X Зарезервирован на будущее 1111 Охх X 10-битная адресация slave-абонентов Разберемся подробнее в функциональном назначении служебных адресов. Общий вызов может адресовать все устройства, подключенные к шине 12С, в этом случае при получении общего вызова устройства должны подтверждать прием выдачей сигнала АСК. Устройства, ко- торые не нуждаются в сведениях, передаваемых при общем вызове, могут игнорировать этот адрес, не выставляя сигнал АСК. Если же устройство выполнено так, что обязательно требует данных общего вызова, оно ведет себя точно так же, как обыкновенный slave-або- нент. Второй байт, следующий за общим вызовом, обычно содержит информационную часть. На рис. 1.32 представлен формат общего вызова. 0 0 0 0 0 0 0 0 А X X X X X X I X I В I А Общий вызов Информационная часть АСК АСК Рис. 1.32. Общий вызов
23 Как устроена шина 12С Обратите внимание — информационная часть содержит бит В, который в сочетании с битами 7...1 (обозначенными на рис. 1.32 сим- волом «X») регламентирует назначение информации, передаваемой в данном случае. Регламентируются следующие комбинации: • 0000 0110 (0611) — аппаратный сброс. При получении этой ком- бинации все абоненты, реагирующие на общий вызов, произво- дят внутренний сброс (рестарт). Естественно, аппаратный сброс этих абонентов не должен блокировать шину; • 0000 0100 (04h) — запись программируемой части адреса slave-абонента с помощью аппаратных средств. Все абоненты, ответившие на этот адрес, будут блокированы и не смогут быть сброшены; • 0000 0000 (00h) — этот код запрещается использовать; • ххххххх! — используется, когда на шине присутствует много совмещенных master/slave-абонентов. В таких случаях часто не- обходимо генерировать запрос об адресе устройства, которому должна быть передана информация. К примеру, устройство «А», получив от устройства «Б» данные, обработав их, передает информацию устройству «В» вместе с собственным адресом (обычно адреса «master/slave» в совмещенных абонентах совпа- дают). На рис. 1.33 представлен формат передачи hardware general call. LSB S 00000000 А адрес-master 1 А , data; А DATA А Р I Общий вызов В Рис. 1.33. Формат hardware general call Программный Start удобно использовать тогда, когда устройст- во, соединенное с шиной 1‘С, не имеет аппаратного интерфейса. Соб- ственно, если встроенный интерфейс 12С есть, скажем, в микрокон- троллере, его очень просто использовать. Достаточно запрограммиро- вать микроконтроллер на прерывание от шины, и при наличии передачи будет выполняться программа обработки данных, поступаю- щих с шины. Если встроенного интерфейса 12С нет, микроконтроллер обязан постоянно опрашивать шину на предмет получения данных.
Как устроена шина 12С 29 Процедура опознавания в таком случае выглядит следующим об- разом, отраженным на рис. 1.34. Освобождено для выдачи сигнала АСК Рис. 1.34. Программный START Из рисунка видно, что микроконтроллеру достаточно опрашивать линию SDA с низкой частотой, определяя один из нулей в стартовом бите. После обнаружения этого нуля на линии SDA микроконтролле- ру необходимо переключиться на более высокую частоту опроса, чтобы зафиксировать состояние «повторный Start» (Sr). Обычный ап- паратный приемник игнорирует состояние S и дождется Sr. Адрес шины CBUS возможно использовать при работе с эле- ментами, оснащенными этой шиной. В задачи этой книги не входит рассказ о шине CBUS, но тем не менее она по своей реализации дос- таточно близка к шине 12С, поэтому имеется возможность их совме- щения. В спецификации CBUS имеется третья линия, обозначаемая как DLEN. Диаграммы сигналов, отражающие способ работы с этой ши- ной в условиях совмещения с 12С, приведены на рис. 1.35. Следующие служебные адреса относятся к расширениям шины 12С. Мы уже знаем, что первоначально шина имела 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-устройству. 111 Юхх 0 __________. I S I S'a^aTeC |%/| 2%аХ | Ч °*™ | А Г'| РАТА |%| Р| Рис. 1.36. Передача данных от master-абонента к slave-устройству Slave-абоненты сравнивают первый полученный байт со своими данными и, если они совпадают, выдают сигнал АСК (А1 на рис. 1.36). Очевидно, сразу несколько устройств может выдать под- тверждение. Поэтому при получении второго байта только одно уст- ройство выдаст сигнал АСК (А2). Остальные устройства, которые ранее выдали сигнал АСК (А1), останутся адресованными по перво- му байту до получения сигнала Stop. На рис. 1.37 приведен формат передачи данных от slave-абонента к master-устройству. 11110хх 0 11110хх 1 S Slave у zw А1 Slave А2 Sr Slave АЗ DATA A ... DATA A P 1 байт | 2 байт 1 байт | WRITE READ Рис. 1.37. Передача данных от slave-абонента к master-устройству Вначале master-устройство первым байтом адресует все slave-абоненты соответствующим кодом, и они подтверждают его получение сигналом АСК (А1). Затем вторым байтом адресуется конкретное устройство с выдачей сигнала АСК (А2). После выполне- ния повторного условия Start (Sr) адресованное slave-устройство со- храняет возможность обращаться к нему, поэтому достаточно повто- рить первый байт адреса, но уже с другим значением бита R/W и по- лучить АСК (АЗ).
32 Как устроена шина 12С На рис. 1.38—1.40 приведены комбинированные форматы пере- дачи данных. Они могут использоваться, например, при управлении микросхемами последовательной памяти. 11110хх 0 11110хх 1 s A I Slave A DATA А ... DATA А Sr| Slave А DATA А ... DATA А Р адрес адрес адрес 1 байт 2 байт 1 байт WRI1П READ Рис. 1.38. Комбинированный формат. Master-абонент адресует slave-устройство с 10-разрядным адресом, затем передает данные и читает данные 11110хх о S Slave % Slave: 11110ХХ 0 А | DATA А — DATA A Sf| SLave Slave A DATA А DATA А Р адрес адрес 1 байт I 2 байт WRITE адрес 1 байт адрес 2 байт WRITE Рис. 1.39. Комбинированный формат. Master-устройство передает данные двум slave-абонентам с 10-разрядным адресом 0 11110ХХ о S Slave А DATA А ... DATA А Sr Slave Av Slave А DATA А DATA А Р адрес 1 байт 2 байт 1 байт | 10 разр I Юразр WRITE WRITE Рис. 1.40. Комбинированный формат. Master-абонент передает данные двум slave-устройствам: одному с 7-разрядным адресом, а другому с 10-разрядным адресом В заключение этой главы приведем основные электрические ха- рактеристики шипы 12С для всех упомянутых режимов. Таблица 1.4. Параметры режимов low-speed, fast-speed Параметр Символ Режим low-speed Режим fast-speed Ед. изм. МИН. макс. МИН. макс. Низкий уровень (LOW) входного напряжения VlL 0,5 1,5 - - в Высокий уровень (HIGH) входного напряжения Чн 3,0 VDD + 0,5 - - в Входная емкость, приходящаяся на один вывод С, - 10 - 10 пФ Частота на линии SCL fsCL 0 100 0 400 кГц Время удержания условия Start 'hc.sta 4,0 0,6 - МКС
Как устроена шина 12С 33 Окончание таблицы 1.4 * Параметр Символ Режим low-speed Режим fast-speed Ед. изм. МИН. макс. МИН. макс. Период низкого уровня (LOW) сигнала SCL •low 4,7 - 1,3 - мкс Период высокого уровня (HIGH) сигнала SCL •high 4,0 - 0,6 - мкс Время установки повторного условия Start •so,ЗГА 4,7 - 0,6 - мкс Время удержания данных •нВ,DAT 0 3,45 0 0,9 мкс Время установки данных •SU.DAT 250 - 100 - НС Время нарастания сигналов SDA и SCL •г - 1000 20 + 0,1Cb 300 НС Время спада сигналов SDA и SCL tf - 300 20 + 0,1Cb 300 НС Время установки условия Stop •su.sro 4,0 - 0,6 - мкс Время паузы между условиями Stop и Start •buf 4,7 - 1,3 - мкс Паразитная емкость линии Cb - 400 - 400 пФ Рис. 1.41. Временные соотношения между сигналами в режиме Hs-mode Рис. 1.42. Временные соотношения между сигналами в режимах low-speed и fast-speed
34 Как устроена шина 12С Таблица 1.5. Параметры режима Hs-mode Параметр Символ Режим Hs-mode Ед. ИЗМ. МИН. макс. Низкий уровень (LOW) входного напряжения V|L 0,5 0,3VDD в Высокий уровень (HIGH) входного напряжения Чн 0,TVDD в Входная емкость, приходящаяся на один вывод - 10 пФ Частота на линии SCLH *SCLH 0 3,4 (Cb=100) 1,7(Cb = 400) МГц Время задержки условия Start ^HD.STA 160 - НС Период низкого уровня (LOW) сигнала SCLH tiow 160(Cb=100) 320 (Cb = 400) - НС Период высокого уровня (HIGH) сигнала SCLH *HlGH 60(Cb= 100) 120(Cb = 400) - НС Время установки данных ^SU.DAT 10 - НС Время удержания данных 'нож 0 70 (Cb= 100) 150(0^ = 400) НС Время нарастания сигнала SCLH frCl 10(Cb= 100) 20 (Cb = 400) 40(Cb=100) 80 (Cb = 400) НС Время нарастания сигнала SCLH при повторе усло- вия Start *rCLl 10 (Cb= 100) 80 (Cb = 400) 20 (Cb = 100) 160 (Cb = 400) НС Время спада сигнала SCLH 'fCL 10(Cb = 100) 20 (Cb = 400) 40 (Cb= 100) 80 (Cb = 400) НС Время нарастания сигнала SDAH t(OA 10 (Cb = 100) 20 (Cb = 400) 80 (Cb = 100) 160 (Cb = 400) НС Время спада сигнала SDAH W 10 (Cb = 100) 20 (Cb = 400) 80 (Cb= 100) 160 (Cb = 400) НС Время установки условия Stop tsu.sTO 160 (Cb= 100) 160(Cb = 400) - НС Паразитная емкость линии Сь - 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 АО SAA4700/T Процессор цифровой линии 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 Адреса некоторых микросхем fC Группа (А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 порт RC 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 АО TDA8421 Аудиопроцессор 0 0 АО TDA9860 Hi-R аудиопроцессор 0 0 1 TDA8424/5/6 Аудиопроцессор 0 1 0 TDA8415 TV/VCR стереозвуковой процессор 0 1 0 TDA8417 TV/VCR стереозвуковой процессор 0 1 0 TDA9840 TV стереозвуковой процессор 0 1 АО TDA8480T Корректор RGB для TV 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 TDA8375/A Мультистандартный видеопроцессор 1 0 1 TDA8376/A Мультистандартный видеопроцессор 1 0 1 TDA9161A Контроллер шины процессора синхронизации 1 А1 1 SAA7151B 8-битный мультистандартный декодер для TV 1 А1 1 SAA7191B Цифровой мультистандартный TV декодер 1 А1 1 SAA9056 Цифровой SCAM декодер цвета 1 А1 1 TDA9141/3/4 Мультистандартный декодер 1 А1 1 TDA9160 Мультистандартный декодер-процессор 1 А1 1 TDA9162 Мультистандартный декодер-процессор 1 1 0 TDA4853/4 Автосинхронизирующийся дефлектор 1 1 0 TDA9150B Процессор-дефлектор 1 1 0 TDA9151B Программируемый процессор-дефлектор 1 1 АО ТЕА6360 5-полосный эквалайзер 1 1 АО TDA8433 Процессор-дефлектор «9» (Ю01) А2 А1 АО PCF8591 4-кан. 8-битный АЦП и 1 -кан. ЦАП А2 А1 АО TDA8440 Переключатель аудио/видео А2 А1 АО TDA854O 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 Часы-календарь с низковольтным питанием
Адреса некоторых микросхем 12С 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) 0 0 1 ТЕА6100 FM/IF для р/приемников с микроконтроллерами 0 1 0 ТЕА6821/2 Автомобильный AM приемник 0 1 0 ТЕА6824/Т IF IC для автомобильных приемников 0 А1 АО TSA5511/2/4 1,3-ГГц PH синтезатор частоты для TV 0 А1 АО TSA5522/3M 1,4-ГГц PH синтезатор частоты для TV 0 1 АО TDA8735 150-МГц PH синтезатор частоты 0 1 АО TSA6057 Синтезатор частоты для радиоприемников
40 Адреса некоторых микросхем 12С Группа (А7...А4) Обозначение Функциональное назначение 0 1 АО TSA6060 Синтезатор частоты для радиоприемников 0 1 АО UMA1014 Синтезатор частоты для мобильных телефонов 1 0 0 TDA8722 Negative video modulator with FM sound «D»(1101) 0 0 АО TDA8043 QPSK демодулятор и декодер 0 0 АО TDA9170 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 (1st is ‘40’) 0 0 0 TDA9178 2nd адрес для LTl (1st is ‘40’) 0 0 АО SAA7192 Цифровой конвертор цвета «F»(1111) X X X - Зарезервированные адреса «0...F» (0000...1111) X X X PCF8584 12С контроллер шины Примечания: х — не определено; А — программируемый бит; Р — бит переключения страницы; QAM-64 — квадратурная амплитудная модуляция с 64 значащи- ми позициями амплитуды и фазы является спектрально-эффектив- ным методом модуляции;
Адреса некоторых микросхем 12С 41 VPS — система программирования работы видеомагнитофона с помощью закодированных в телепрограмме сигналов, система рас- познавания видеопрограмм, специальная служба на TV-станциях; ка- ждая программа передается со специальным кодом, воспринимае- мым декодером VPS, который управляет записью по таймеру; если кодовые сигналы телепрограммы и внутренних установок совпада- ют, производится запись (управляющая информация передается в 16-й строке); RDS/RBDS — система передачи данных в диапазоне FM; исполь- зуется для передачи информации в цифровом виде и отображения ее на дисплее радиоприемника; VIP — входной видеопроцессор; PIP — эффект «кадр в кадре», специальное устройство, позво- ляющее «врезать» в текущее изображение одно или несколько до- полнительных изображений меньшего формата; D2MAC — система цветного телевидения — аналоговый сигнал, частичная цифровая обработка, цифровой сигнал звукового сопрово- ждения; распространена в основном в кабельных и спутниковых сис- темах; LCD — жидкокристаллический индикатор; LED — светодиодный индикатор; EEPROM — электрически программирумая/репрограммируемая память; OSD — отображение на экране телевизора дополнительной ин- формации; QPSK — квадратурная фазовая модуляция (манипуляция); при- меняется в системах спутникового TV.
3. Представители микросхем с интерфейсом 12С В этой главе приводятся сведения, необходимые для проектиро- вания несложных конструкций на основе микросхем с интерфейсом 12С. Как показывает практика, далеко не все микросхемы возможно использовать в радиолюбительском творчестве. Например, доста- точно трудно применять такие варианты, как микросхемы для теле- визионных приемников, формирователи сигналов разверток, кор- ректоры цветовых переходов, декодеры цветности, синтезаторы час- тоты для мобильных телефонов и т. д. Поэтому в рамках данной книги рассматриваются микросхемы, которые могут быть использо- ваны преимущественно в домашней аудиоаппаратуре, такой, как, например, усилители низкой частоты, усилители мощности, радио- приемники. Что-то подойдет для создания несложных и полезных устройств на основе микроконтроллера — охранные системы, сис- темы сбора информации, электронные частотомеры, фазометры, ге- нераторы. При необходимости получить информацию по другим ти- пам микросхем можно непосредственно с сайта фирмы Philips (http://www.semiconductors.philips.com). Следует отметить, что ори- гинальная документация требует перевода с английского языка, а значит, необходимо приложить некоторые усилия тем, кто англий- ский знает плохо или вообще не знает. Но при определенном навы- ке глубоких знаний не требуется и смысл большинства слов стано- вится ясным без перевода. Итак, перейдем к рассмотрению микросхем. 3.1. ЭСППЗУ с последовательным доступом Микросхемы ЭСППЗУ (электрически стираемые постоянно про- граммируемые запоминающие устройства) с последовательным дос- тупом появились на рынке сравнительно недавно, но тем не менее они прочно вошли в арсенал разработчика. Международная аббре- виатура микросхем — EEPROM (electrically erasable PROM). Истори-
Представители микросхем с интерфейсом 12С 43 чески первыми появились, впрочем, микросхемы с параллельным доступом, когда каждый бит байта мог быть считан или записан по отдельной линии, а значит, одновременно с другими битами. Адрес хранения байта задавался также параллельным способом. То есть, к примеру, память 8-разрядных данных на 256 ячеек должна содержать 8 линий данных и 8 линий адреса данных. Достоинством памяти с параллельным доступом является достаточно малое время досту- па — данные транслируются одновременно по всем линиям. Управ- лять такой памятью тоже очень просто, достаточно выставить адрес, и данные будут считаны (записаны). Гораздо сложнее работать с последовательной памятью. Во-пер- вых, необходимо последовательно, бит за битом, передать адрес ячейки памяти, затем точно так же передать (или считать) данные. Очевидно, скорость обмена с такой памятью в десятки раз меньше, чем с памятью параллельной. Что и сдерживало появление такого ви- да памяти. Массовый выпуск последовательных EEPROM начался после того, как в составе малогабаритной техники появились не- сложные микроконтроллеры. В основном такая техника не критична к высокой производительности вычислительных устройств, к ней от- носится бытовая и управляющая аппаратура. Еще одно важное об- стоятельство, расширяющее возможности применения последова- тельных микросхем ЭСППЗУ, — их достаточно низкая стоимость. Следует отметить, что для доступа к данным последовательной памяти используются разные интерфейсы: I2C, Microwire, SPI, CBUS. Некоторые сведения относительно номенклатуры микросхем можно почерпнуть в литературе [2]. Мы коснемся только тех, которые име- ют интерфейс 12С. Обратите внимание: ЭСППЗУ с интерфейсом 12С, выпускаемые разными фирмами (SGS-Thomson microelectronics, Philips, Microchip) и имеющими одно наименование (например, 24С01), могут немного отличаться по расположению выводов, спосо- бу задания slave-адреса, особенности внутренней организации, прин- ципам защиты от записи и др. При проектировании конкретных уст- ройств рекомендуется ориентироваться не только на наименование ЭСППЗУ, но также и поинтересоваться фирмой-производителем, по- лучить оригинальную техническую документацию. Примеры применения EEPROM с последовательным доступом рассмотрим по документации [10, И], относящейся к микросхемам
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-адреса с помощью трех внешних выводов (АО, Al, А2); • автоматический инкремент адреса при обращении; • минимально гарантированное число циклов записи — 10 000; • минимально гарантируемое время сохранения записанной ин- формации — 10 лет; • бесконечно возможное число циклов чтения; • рабочая температура окружающей среды от -25 до +85 °C; • возможность использования на одной шине до 8 однотипных микросхем без дополнительных аппаратных средств переклю- чения и расширения; • максимальная частота SCL сигнала — 100 кГц (режим low-speed). Микросхема выпускается в 8-выводном корпусе типа DIP8 или SO8 (с планарными выводами). Расположение выводов приведено на рис. 3.1, а их назначение — в табл. 3.1.
Представители микросхем с интерфейсом 12С 45 Таблица 3.1. Назначение выводов РСА8581 Символ Вывод Описание I, АО 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|Т Т| TEST А2 [3 7] SCL Vss [Т j] SDA Рис. 3.1. Расположение выводов микросхемы РСА8581 Внутреннее устройство микросхемы показано на рис. 3.2. Чтобы предохранить микросхему от перегрузок, например при воздействии статического электричества, разработаны и используют- ся разные методы защиты. Наиболее эффективны, дешевы и носят массовый характер методы встраивания защитных диодов. Один из таких способов, примененный в данной микросхеме, показан на рис. 3.3. Выводы конфигурации slave-адреса А0...А2 снабжены двумя по- следовательно включенными диодами. При превышении напряжения на выводах А0...А2 порога, заданного напряжением VDD, открывается верхний диод и «притягивает» вывод к потенциалу питания VDD. Ес- ли напряжение становится ниже Vss (потенциал общего провода), от- крывается нижний диод и «притягивает» вывод к потенциалу «зем- ли» Vss. Обратите внимание: в данном случае выводы SDA и SCL имеют только защиту от отрицательного напряжения и не имеют за-
46 Представители микросхем с интерфейсом 12С Рис. 3.2. Внутреннее устройство микросхемы РСА8581 щиты от положительного (верхний диод отсутствует), поскольку микросхема может быть использована при напряжениях на шине, от- личных от напряжения питания микросхемы. Мы уже знаем, что обращение к микросхеме происходит посред- ством передачи по шине 12С slave-адреса, как показано на рис. 3.4. Адрес в данном случае состоит из 7 битов. Старшие 4 бита (1010) он-
Представители микросхем с интерфейсом 12С 47 ределяют принадлежность микросхемы к группе EEPROM, младшие 3 бита — АО, Al, А2 — задают уникальный идентификационный но- мер в группе однотипных микросхем. Если на шине присутствует не- сколько микросхем с одинаковыми старшими 4 битами slave-адреса, необходимо с помощью перемычек, подключаемых к напряжению питания или к общему проводу, задать на выводах А0...А2 потенциа- лы, назначить микросхемам уникальные идентификационные номе- ра, например, как показано на рис. 3.5. Обращение к соответствую- щему элементу будет производиться программно, заданием битов А0...А2. 1 | D | 1 | 0 А2 | А1 | АО Группа 1 Группа 2 Рис. 3.4. Построение slave-адреса Vdd SDA SCL Рис. 3.5. Соединение однотипных микросхем на шине 12С
48 Представители микросхем с интерфейсом 12С S ] * Shave-адрес ' |о|а| х‘ адрус ячейки * |д| । * Данные ' * |д| Р R/W задается | j пользователем автоинкремент адреса Рис. 3.7. Master передает данные к slave Разберемся теперь, как устроена матрица памяти микросхемы и каким образом осуществить запись (считывание) данных. Рассмотрим сначала ситуацию, когда устройство master передает данные к slave-абоненту (режим записи WRITE). Формат сообщения представлен на рис. 3.7. Вначале осуществляется передача slave-адреса и признака R/W (в данном случае этот бит установлен в «О»), Второй байт — адрес ячейки матрицы памяти, изображенной на рис. 3.6. Обратите внима- ние: старший бит этого байта, помеченный на рис. 3.7 знаком «х», не определяется или, другими словами, может быть установлен в «О» или в «1». Почему? Это станет понятным, когда мы представим, что с помощью 8 битов возможно задание 256 адресов, но в данной мик- росхеме присутствует только 128 ячеек (а значит, столько же и адре- сов). Старшие 128 адресов здесь просто не определены. После передачи адреса ячейки осуществляется передача байта данных (DATA). Биты 7...О последовательно занимают ячейки памя- ти. После приема бита «О» данных осуществляется автоинкремент (увеличение на единицу) адреса памяти. Естественно, завершение передачи должно сопровождаться появлением условия Stop. Чтение из памяти осуществляется по протоколу, показанному на рис. 3.8. АСК АСК АСК АСК отсутствие АСК slave slave slave master master |S| ' slave-alipec 'q|a| адрес^ ячейки * |д| S | , siaye-адрес ' 1 |A ‘t ............................ t_ Я® В этот момент WW master начинает-- принимать данные, a slave - передачу чые t [Д| У У данные * * "к 11 авгоинкремент автоинкремент адреса адреса Рис. 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 8 кбитов 1024 х 8 битов 1 . ..... .. J1 Микросхемы обеспечивают 1 000 000 гарантированных циклов стирания/записи (E/W) и 10 лет хранения записанной информации,
Рис. 3.10. Внутреннее устройство микросхем PCF8582, PCF8594, PCF8598 Представители микросхем с интерфейсом 1гС
Представители микросхем с интерфейсом 12С 51 совместимы с чипами PCF857O, PCF8571, PCF8572 и PCF8581 по расположению выводов. Внутренее устройство микросхем PCF8582, PCF8594 и PCF8598 приведено на рис. 3.10. Расположение выводов указанных микросхем приведено на рис. 3.11, назначение выводов — в табл. 3.3—3.5. АО е ~8~] Vdd WP Е и Vdd WP Е и Vdd А1 Е 7] рте А1 Е и РТС — Е 3 РТС А2 Е J] SCL А2 Е 3 SCL А2 Е 1] SCL Vss Е J] SDA Vss Е I] SDA Vss Е и SDA PCF8582 PCF8594 PCF8598 Рис. 3.11. Расположение выводов Таблица 3.3. Назначение выводов PCF8582 Символ Вывод Описание АО 1 Slave-адрес 0 А1 2 Slave-адрес 1 А2 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 Представители микросхем с интерфейсом 12С Окончание таблицы 3.4 | Символ SCL Вывод 6 Описание Линия SCL вход ! РТС 7 Контроль времени программирования V0D 8 Вывод питания«+» Таблица 3.5. Назначение выводов PCF8598 | Символ Вывод Описание ! WP 1 Защита записи 6 । 1 i I 2 3 Не используется Slave-адрес 2 Vss 4 Общий вывод SDA 5 Линия SDA вход/выход ' SCL 6 Линия SCL. вход PTC 7 Контроль времени программирования “?ю 8 Вывод питания«+» i Протокол программирования памяти микросхем аналогичен при- веденному ранее, но имеет некоторые особенности. Одна из особен- ностей связана с тем, что адрес ячейки памяти не может содержать число, превышающее 255. Но приведенные типы микросхем содер- жат 512 и 1024 ячейки. Что это означает? Все очень просто: в slave-адресе биты Л0...А2 уже не все программируются внешними перемычками. Часть из них выбирается программно, при задании slave-адреса. Мы словно объединяем в одном корпусе несколько микросхем PCF8582. Структура памяти, состоящая из блоков по 256 байтов, называется страничной организацией. К слову, максималь- ное число страниц в одной микросхеме 8. Интересной возможностью, реализованной в описываемых мик- росхемах, является возможность защиты от повторной записи. Если вывод WP имеет низкий уровень, работа с EEPROM не имеет ограни- чений. Если WP устанавливается в состояние «1», верхняя половина памяти EEPROM защищается от записи. В таком случае сигнал АСК не будет генерироваться при адресации к верхней половине (256 бай- тов) PCF9594 и PCF8598 (512 байтов).
Представители микросхем с интерфейсом 12С 53 При записи данных в память EEPROM должны быть выдержаны определенные временные соотношения (циклы erase/write). Длитель- ность этих циклов формируется внутри микросхемы и в большинст- ве случаев не требует коррекции. Если коррекции не требуется, вы- вод РТС может быть подключен к VDn или оставлен не подключен- ным. Типичное значение времени tF w 7= 7 мс, оно может быть задано внешне в пределах 4... 10 мс. Как уже ранее было сказано, микросхемы EEPROM с последова- тельным доступом по шине ЕС выпускает не только фирма Philips, но и другие не менее известные фирмы. Для сравнения приведем описания микросхем 24ЕС16В и 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 Представители микросхем с интерфейсом 12С -Е ~8~| Voo -Е 7] wp -Е б] SCL Vss [~4~ J] 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. Вы уже обратили внимание на наличие выводов АО...АЗ, позво- ляющих селектировать slave-адрес и «повесить» на шину 12С до 8 та- ких микросхем? Не будет ли здесь путаницы, шинного конфликта? В самом деле, классический вариант может адресовать только 256 АО [7 ~8~| Vcc А1[2 7] wp А2[3 7] SCL Vss [Т 5] SDA Рис. 3.15. Расположение выводов 24LC32A
Представители микросхем с интерфейсом 12С 57 Рис. 3.16. Внутреннее устройство микросхемы 24LC32A ячеек, переключая страницы посредством задания определенных уровней сигнала на выводах АО...АЗ или программируя их в slave-ад- ресе. Дело в том, что данная микросхема имеет два адресных бита, следующих за slave-адресом, как показано на рис. 3.17. Ы°111 °HltlfTH I ° I ° I ° I ЕЕЕЕЕЕЕШ] slave-адрес адресный бит 1 адресный бит О Рис. 3.17. Адресация в микросхеме 24LC32A Матрица памяти разделена здесь также на блоки по 256 байтов, но селектируются они уже не посредством задания битов А0...А2 в slave-адресе, а битами А8...А11 в адресном бите 1. Операции записи байта, записи цепочки байтов с автоинкремен- том адреса, чтения байта и чтения байта с автоинкрементом приве- дены на рис. 3.18...3.21. Дополнительных пояснений рисунки не тре- буют. Добавлю, что в данной микросхеме предусмотрен вывод WP, по- зволяющий выполнить защиту от записи. Здесь также может быть использована процедура программного поллинга для обеспечения быстрого повторного доступа.
58 Представители микросхем с интерфейсом 12С ЙИоИоГГПо. |о|о|о|оПТП I I I I I I I I I П 1.....ГТТГП F! slave- ДА адресный А адресный A DATA А адрес WC байт 1 С байт 1 С С Рис. 3.18. Запись байта в память ЙоИоГТТК ,о,о,о,оГП~П ГГГГГГГП I I I ТТТГП., I I I I I I I I I й siave-адрес ДА адресный А адресный A DATA 0 ” DATA 31 А WC байт 1 С байт О С С К К К К Рис. 3.19. Запись цепочки байтов с автоинкрементом адреса [в]7|оП]о| I I |0| |0|0|0|0| I I I I I I I I I I I I I ТТГЛоПо! I I HI ГТТ I I I I I I 1Н slave-адрес ДА адресный А адресный А slave-адрес ДА DATA N WC байт 1 С байт О С wC О К К К КА Рис. 3.20. Чтение одиночного байта Э1 S slave- ’ адрес- DATAn DATAn+1 DATA n+2 DATA n+X О n iTTTiTiTi n 111111 i nfnfm rwffnfntFi A A A A N С С С С О К К К К А Ск Рис. 3.21. Чтение цепочки байтов с автоинкрементом К5004РС2, КР5004РР4 Отечественная промышленность хоть и с большим опозданием, но все же собирается выпустить на рынок микросхемы памяти с по- следовательным доступом и интерфейсом, один к одному соответст- вующим 12С [17, 18]. И хотя на момент написания этой книги доку-
Представители микросхем с интерфейсом PC 59 ментация пока еще имеет гриф «предварительно», возможно, что ко дню выхода этой книги из печати микросхемы К5004РС2 и КР5004РР4 производства ОАО «Ангстрем», г. Зеленоград уже поя- вятся в продаже. Что же это за микросхемы? Просматривая документацию, вы не найдете там упоминания об гС, но, сравнив принципы доступа с фирменными, приведенными чуть выше, можно убедиться в полной совместимости с этой шиной. Мало того, интерфейсные линии име- ют обозначения 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 Представители микросхем с интерфейсом 12С леканалы, и пользователю остается только нажимать кнопки выбора каналов на дистанционном пульте управления. Общие принципы устройства синтезаторов, их применения в ра- диолюбительских приемниках вы сможете найти в предыдущей кни- ге данной серии [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 кГц; • программный контроль переключения диапазонов.
Представители микросхем с интерфейсом 1гС 61 Расположение выводов микросхемы приведено на рис. 3.22, на значение выводов — в табл. 3.6. Таблица 3.6. Назначение выводов TSA6057 - 1— Символ I Вывод XTAL! 1 XTAL2 । 2 . .... ..... ! з v- L 4 ZLir.TZC'Z dec 6 Г 7 Описание Выход задающего генератора Вход задающего генератора Г- - 1 Вывод питания «+» — Общий провод («земля») Вход гетеродинного сигнала FM Вывод развязки предварительного делителя Вход гетеродинного сигнала AM ; BS fr± SDA 8 9 10 Вывод переключения диапазонов (открытый коллектор) .... — Выход частоты 40 кГц Линия SDA12С шины 1 I SCL AS FM0 12 13 Линия SCL !2С шины Селектор slave-адреса на шине 12С Выход FM внешнего петлевого фильтра LOOP, 14 Выход усилителя настройки _ ДМ0 Vcc2 ’5 16 Выход AM внешнего петлевого фильтра Вывод питания«+» XTAL1 [7 Т] VCC2 XTAL2[7 Т| АМо Vcci £7 Л LOOP, Vee [7 3 FMo Fm,[5 Л AS DEC [б 7] SCL Ам [~7 7] SDA BS [в 8 | fret Рис. 3.22. Расположение выводов TSA6057
62 Представители микросхем с интерфейсом 12С Микросхема сохраняет работоспособность в интервале темпера- тур от -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 Icc2 12 0,7 20 1,0 28 1,3 мА Входное напряжение высокого уровня на линиях SCL, SDA Чн 3,0 - 5,0 В Входное напряжение низкого уровня на линиях SCL, SDA VlL -0,3 - 1,5’ В Напряжение низкого уровня (выходное) на линии SDA Vol - - 0,4 В Входное напряжение высокого уровня на выводе AS Чн 3,0 - 5,0 В Входное напряжение низкого уровня на выводе AS VIL -0,3 - 1,0 В Максимальная входная частота на входе AM, 1|AM 30 - - МГц Минимальная входная частота на входе AM, 1|AM - - 0,512 МГц Максимальная входная частота на входе FM; 1,FM 150 - - МГц Минимальная входная частота на входе FM, f|FM - - 30 МГц Входное сопротивление на входе АМ( Ram - 5,9 - кОм Входная емкость по входу AM, Cam - 2 - пФ Входное сопротивление на входе FMj Rfm - 3,6 - кОм Входная емкость по входу FM, Срм - 2 - пФ Входное напряжение на входе AML (RMS) 4am 30 - 500 мВ Входное напряжение на входе FM, (RMS) 4fm 20 - 300 мВ Выходной ток схемы «зарядовый насос»: бит СР = 0 бит СР = 1 ‘chp Ichp 3 400 5 500 7 600 мкА мкА
Представители микросхем с интерфейсом 12С 63 Окончание таблицы 3.7 Параметр технических условий Символ Мин. Норма Макс. Ед. изм. Выходное напряжение на выводе 8 (СР): высокий уровень Voh — — 12 В низкий уровень vol - - 0,8 В Выходная частота на выводе 9 ^ref - 40 - кГц Напряжение на выводе 9: высокий уровень Voh 1,2 1,4 1,7 В низкий уровень Vrf 0,1 0,2 В Напряжение на выводе 15 (AM tuning): максимальный уровень VqMAX Vcc2-1.5 — в минимальный уровень VqMIN — - 0,8 в Напряжение на выводе 13 (FM tuning): максимальный уровень VqMAX V№2- 1,5 в минимальный уровень VqMIN - — 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 Представители микросхем с интерфейсом 12С Рис. 3.23. Внутреннее устройство микросхемы TSA6057
Представители микросхем с интерфейсом 12С 65 R/W I S] * slavebappec ' |0|Д| ’ ' siibaijress' ’ |д| DATA 0 ' ' ' |д| ' ' DATA 1 - |д| ’ ' DATA 2 ' ’ | ’ DATA А7 АО D7 DO D7 DO D7 DO D7 DO Рис. 3.24. Структура управляющей цепочки командных байтов Управляющая цепочка в общем случае содержит 6 байтов, но мо- жет содержать и 4 байта, то есть программирование синтезатора бу- дет осуществляться быстрее. Чтобы определиться, в каких случаях возможно сокращение (усечение) цепочки, рассмотрим структуру и назначение каждого бита. Информация об этом содержится на рис. 3.25. 1 1 0 0 0 1 0/1 0 А7 AO 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/^ra ГИ/АМ OPAMP BS S16 S15 D7 DO slave- адрес subadress DATA О T1 T2 T3 D7 DO Рис. 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 |а| subadress 02 |а| РАТА 2 |а| РАТА 3 |а|р| |s| slave Iа| subadress 00 |А| DATA 0 |А| DATA 1 |а[р] |s| slave |a| 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.
Представители микросхем с интерфейсом 12С 67 Таблица 3.8 Бит «FM/АМ» Входные частоты Диапазон 0 (Sox2° + Stx21 +...+ Sl3x213 + S14x2’4)xfref AM 1 (Sox2<> + S,x2' +...+S15x215 + S16x216)xfref FM Задав битами S0...S14 для диапазона AM или битами S0...S16 для диапазона FM значение частоты, нужно умножить его на значение шага сетки частот (frcf), и тогда мы получим истинное значение час- тоты, которое синтезатор будет поддерживать. Значение частоты fref задается битами REF1 и REF2, содержащимися в байте DATA2 по правилу, приведенному в табл. 3.9. Таблица 3.9 REFI REF2 Частота, кГц 0 0 1 fl 1 10 1 0 25 1 1 - Важно также отметить, что минимальное значение частоты, зада- ваемое битами S0...S14, составляет 26, то есть 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 Представители микросхем с интерфейсом 12С Таблица 3.10 Бит «FM/АМ оратр» Ключ «FM/АМ» Ключ «АМ/FM» 1 закрыт открыт I 0 открыт закрыт Бит «BS» (Bandswidth) очень удобно использовать для переклю- чения диапазонов приемника, так как его значение, будучи задано программно, появляется на выводе BS микросхемы (вывод 8). Необ- ходимо отметить, что данный вывод выполнен по технологии «от- крытый коллектор» и для нормального функционирования важно на- грузить его сопротивлением порядка 10 кОм, подключенным к на- пряжению питания (5 В). Биты Т1...ТЗ относятся к тестовым функциям, которые не описа- ны в документации [15]. Рекомендуется программировать все биты байта DATA3 нулями. Типовая схема включения TSA6057 приведена на рис. 3.27. На основе этой микросхемы читателю будет предложено построить не- сложный тюнер, работающий в диапазонах FM и ЧМ («западном» и «отечественном»). Рис. 3.27. Типовая схема включения TSA6057
Представители микросхем с интерфейсом 12С 69 TSA6060 Этот PLL синтезатор мало чем отличается от ранее описанной микросхемы TSA6057, поэтому здесь следует обратить внимание только на интересные отличия. Для задания частоты генератора может использоваться кварце- вый резонатор на 4 или 8 МГц (конфигурируется программно). Час- тотный диапазон: 500 кГц...30 МГц — для AM и 30...200 МГц — для диапазона FM. Эта микросхема также может использоваться в селек- торах метровых волн телевизионных приемников (VHF). Сетка час- тот может быть указана с шагом 1,10, 25, 50 кГц. Расположение вы- водов микросхемы TSA6060 показано на рис. 3.28, а назначение вы- водов — в табл. 3.11. 1NLCK [~Г “ ~1~| VCC2 xtal[][ 7] AMo Vcci [7 Tj LOOP, Vee [4 ~4~| FMo Fmi [~5~ J] AS DEC [ёГ 7] SCL Am, [7 7] SDA ESS [ЁГ 8 | fref Таблица 3.11. Назначение выводов микросхемы TSA6060 Рис. 3.28. Расположение выводов микросхемы TSA6060 Символ Вывод Описание INLCK 1 in-lock выходной детектор XTAL2 2 Вход задающего генератора Vcc, 3 Вывод питания«+» Vee 4 Общий провод («земля») f*mi 5 Вход гетеродинного сигнала FM DEC 6 Вывод развязки предварительного делителя Ami 7 Вход гетеродинного сигнала AM BS 8 Вывод переключения диапазонов (открытый коллектор)
70 Представители микросхем с интерфейсом 12С Окончание таблицы 3.4 Символ Вывод Описание ^ref 9 Выход частоты 40 кГц SDA 10 Линия SDA |2С шины SCL 11 Линия SCL 12С шины AS 12 Селектор slave-адреса на шине 12С FM0 13 Выход FM внешнего петлевого фильтра LOOP, 14 Выход усилителя настройки AM0 15 Выход AM внешнего петлевого фильтра 4x2 16 Вывод питания«+» В комбинацию битов REF1 и REF2 добавлена сетка частот 50 кГц — комбинация 11. Байты информации DATA2 и DAT3 имеют следующую структуру, показанную на рис. 3.29. В документации приведена табл. 3.12, где указаны тестовые сиг- налы. REF1 REF2 FM/ХЯ FKI/AM OPAMP 8/4МГц BS S16 S15 DATA 2 — — — — ТЗ Т2 Т1 — DATA3 Рис. 3.29. Структура информационных байтов Таблица 3.12. Тестовые сигналы ТЗ Т2 Т1 Функция 0 X 0 Нормальная работа 1 0 1 СР source 0 1 1 СР sink 1 1 1 СР 3-state 0 0 1 СР sink+source 1 1 X BS = main divider output 1 0 X BS = reference divider output
Представители микросхем с интерфейсом 12С 71 Сигнал INLCK (вывод 1) свидетельствует о захвате фазовым де- тектором частоты и об удержании ее. Дело в том, что при перестрой- ке с одной частоты на другую требуется некоторое время для того, чтобы фазовый детектор вошел в синхронизацию и поддерживал не- изменной частоту гетеродина. Процесс перестройки с частоты f, на частоту f2 показан на рис. 3.30. График рис. 3.30, а отражает процесс изменения напряжения на- стройки (по сути это напряжение смещения на варикапах). Уровень напряжения, соответствующий частоте f1; показан сплошной линией, соответствующий частоте f2 — пунктирной линией. Перестройка с частоты на частоту занимает некоторое время, и в момент ее начала сигнал захвата INLCK устанавливается в нулевое состояние. Так как петля ФАПЧ обладает некоторой инерционностью, напряжение «проскакивает» уровень f2, но через некоторое время снова склоняет- ся к уровню f2. Процесс носит характер колебательного, но постепен- но (асимптотически) сходящегося. В моменты пересечения линии f, внутренняя схема lock flag (рис. 3.30, б) вырабатывает сигналы, сви- детельствующие об этом (короткие установки в ноль), но на выходе Рис. 3.30. Захват частоты при перестройке
72 Представители микросхем с интерфейсом 12С INLCK сохраняется низкий уровень, так как высокий уровень здесь может установиться спустя некоторое время тзад (рис. 3.30, в). Так как вывод INLCK достаточно маломощный, необходимо использовать простейший буферный элемент — ключ на транзисторе (рис. 3.31). Подключение микросхемы TSA6060 имеет минимальные отли- чия от описанной ранее TSA6057. Отличие состоит в установке квар- цевого резонатора (рис. 3.312). Рис. 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 («засыпа- ние»), задаваемых по шине ЕС; • дополнительное подавление пульсаций питающего напряжения; • наличие схемы защиты нагрузки; • наличие схемы защиты по постоянному и переменному току от замыканий выходных контактов на общий провод и на шину питания; • низкое тепловое сопротивление корпуса; • наличие равноправных входов (инвертирующего и неинверти- рующего). Микросхема представляет собой усилитель низкой частоты клас- са В, размещенный в удобном корпусе SOT243R (рис. 3.33). Располо- жение выводов показано на рис. 3.34, а их назначение — в табл. 3.13. d А2 С —♦ Размер А Аг I i СР D d Е е е1 е2 j L I-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 Представители микросхем с интерфейсом 12С -INV1 [7 u INV1 [7 SGND[Т VPRP Е VPlE outi [7 PGDN1 [7 о OUT2 [7 LO stby[7 Ю оитз [w Q PGND2 QT OUT4 [Та vP2E INV2 [u NINV2 (77 SCL [l6 SDA (77 Рис. 3.34. Расположение выводов TDA1551Q Таблица 3.13. Назначение выводов микросхемы 1 Символ Вывод Описание -INV1 1 Неинвертирующий вход 1 INV1 2 Инвертирующий вход 1 GND 3 Сигнальная «земля» vprr 4 Вывод подключения конденсатора фильтра Vpi 5 Вывод питания 1 OUT1 6 Выход 1 GND1 7 «Земля» шины питания 1 OUT2 8 Выход 2 SB 9 Вывод «дежурный режим» OUT3 10 Выход 3 GND2 11 «Земля» шины питания 2 OUT4 12 Выход 4 VP2 13 Вывод питания 2 INV2 14 Инвертирующий вход 2 -INV2 15 Неинвертирующий вход 2 SCL 16 Линия SCL шины PC SDA 17 Линия SDA шины !2С
Представители микросхем с интерфейсом 12С 75 Внутреннее устройство микросхемы TDA1551Q показано на рис. 3.35. Основные параметры микросхемы, необходимые для про- ектирования, приведены в табл. 3.14. Рис. 3.35. Внутреннее устройство
76 Представители микросхем с интерфейсом 12С Таблица 3.14 Параметр технических условий Символ Мин. Норма Макс. Ед.. изм. Напряжение питания vp 6 14,4 18 в ! Неповторяющийся пиковый выходной ток - - 6 А ! ; Повторяющийся пиковыи выходной ток 'orm - - 4 А I Диапазон температур хранения Ktg -55 + 150 •с j Рабочая температура кристалла тс - - + 150 "С | Общая тепловая рассеиваемая мощность Plot - 60 Вт j Тепловое сопротивление «кристалл-корпус» - 1,5 - "К/Вт Тепловое сопротивление «кристалл-среда» (без радиатора) Rth(j-a) - 40 - ‘К/'Вт Мостовое включение Выходная мощность: THD = 0,5% THD=10% Po 15 20 17 22 - Вт I Общие гармонические искажения (вых. мощ- ность 1 Вт) THD - 0,05 - % Полоса воспроизводимых частот (по уровню -1 дБ) В 20 - 20 000 Гц Коэффициент усиления Gv 25 26 27 ДБ Входной импеданс 25 30 38 кОм Разделение каналов a 40 - - ДБ Порог срабатывания детектора гармонических искажений - 3,5 % । Небаланс каналов - - 1 ДБ I Одиночное включение । Выходная мощность: THD = 0,5% THD =10% Po 4 5,5 5 6 Вт Общие гармонические искажения (вых. мощ- ; ность 1 Вт) THD -- 0,05 - % Нижняя воспроизводимая частота (по уровню -ЗдБ) U 25 - Гц Верхняя воспроизводимая частота (по уровню -1 дБ) ^high 20 - - кГц
Представители микросхем с интерфейсом 12С 77 Окончание таблицы 3.14 1 Параметр технических условий Символ Мин. Норма Макс. Ед. изм. | Коэффициент усиления G.. 19 ' 20 21 ДБ Входной импеданс 50 60 75 кОм Разделение каналов а 40 - | Дб 1 Небаланс каналов - - I 1 Дб Параметры интерфейса 12С Входной сигнал высокого уровня V,h 3 - 5,5 В Входной сигнал низкого уровня V,! -0,3 1,5 В t ! Выходной сигнал низкого уровня - 0,4 в i I i Срабатывание схемы внутреннего сброса: 1 старт Vp 3 - - в окончание - - 5 Standby (вывод 9) 4iigh 3 - р в •lov Как видно из рис. 3.35, микросхема состоит из четырех идентичных усилителей с дифференциальными входными каскадами, один из кото- рых является инвертирующим, а второй — неинвертирующим. Как из- вестно, для обеспечения нормальной работы любого элемента необхо- димо рассчитать его тепловой режим, принять меры к рассеянию из- лишней тепловой мощности. Например, в книге [3] приводится вариант такого теплового расчета. Собственно, нужно проверить необходимость проектирования теплоотводящего радиатора и рассчитать его габариты, выбрать конструктивное исполнение. Фирменная документация имеет все необходимые данные для расчета. Для удобства разработчика при- водятся размеры теплоотводящей поверхности (рис. 3.36, а) и внутрен- нее распределение тепловых сопротивлений между теплоотводящей по- верхностью и выводами микросхем (рис. 3.36, б). Теперь разберемся, как управлять режимами микросхемы и как получать информацию о ее внутреннем состоянии. Мы уже неодно- кратно говорили, что «общение» с микросхемой происходит про- граммно. Обратите внимание на рис. 3.37: по шине 12С передается фиксированный slave-адрес микросхемы, а также единственное сло- во данных (DATA). Условие «R/W», как обычно, отражает режим за- писи/чтения.
78 Представители микросхем с интерфейсом 12С а) Рис. 3.36. К расчету теплового режима микросхемы 111Юхх О____________ 1111QW 1 | s| Sm |%Jai| Sine |a2|St| Slave р^|лз| DATa|a| —| DATa| A| ₽| 1 байт | 2 байт 1 байт j WRITE READ Рис. 3.37. Формат данных для микросхемы TDA1551Q Конфигурирование происходит при передаче бита «R/W», уста- новленного в «О» (режим записи данных). Возможные состояния байта DATA приведены в табл. 3.15, но вообще можно сказать, что бит DO «отвечает» за переключение микросхемы из режима SLEEP в режим ON и обратно, бит D1 переключает в режим MUTE. Таблица 3.15 Установка битов D7...D0 Состояние D7 D6 D5 D4 D3 D2 D1 DO 0 0 0 0 0 0 0 0 SLEEP 0 0 0 0 0 0 0 1 MUTE 0 0 0 0 0 0 1 0 Тест1 0 0 0 0 0 0 1 1 ON2 Примечания. 1. Состояние используется только для тестирования. Шина 12С работает в режиме ON, в то время как усилитель переведен в состояние standby. 2. Включение в состояние ON после подачи питания недопустимо, так как это может вывести микросхему из строя. Необходимо вначале переклю- чить микросхему из состояния SLEEP в состояние MUTE и только затем, за время не менее 150 мс, перевести в состояние ON.
Представители микросхем с интерфейсом 12С 79 Возможные варианты переключения микросхемы из одного со- стояния в другое показаны на рис. 3.38. Рис. 338. Возможные состояния микросхемы 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 DO Функция 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 Представители микросхем с интерфейсом 12С пы работы с какой-нибудь одной микросхемой этого вида. С осталь- ными читатель при необходимости разберется самостоятельно. Ори- гинальную документацию можно получить с официального сервера Philips (http://www.semiconductors.philips.com). Несколько слов о том, зачем нужен аудиопроцессор и где его можно применить. Вспомним, что в составе любого стереокомплекса или телевизора обязательно имеются органы регулировки громкости, стереобаланса, тембра. В классическом варианте на переднюю па- нель всегда выводились отдельные ручки регулировок «громкость», «тембр НЧ», «тембр ВЧ», «стереобаланс». Современная аппаратура таких органов регулировки уже не имеет, хотя они все равно присут- ствуют в ее составе. Все дело в том, что теперь эти органы «прячут» в электронной схеме прибора, а о состоянии того или иного регуля- тора свидетельствует соответствующая надпись на жидкокристалли- ческом (или электролюминесцентном) индикаторе, «бегущая полос- ка» на экране телевизора. Управление осуществляется только с по- мощью кнопок, данные поступают в управляющую микросхему в цифровом виде. Итак, рассмотрим микросхему TDA8424, предназначенную для электронной регулировки тембра, громкости, стереобаланса. Микро- схема в своем составе имеет: • селектор режимов; • переключатель режимов «пространственное (spatial) стерео» (расширенная стереобаза) «стерео», «принудительное моно»; • схемы управления громкостью и стереобалансом; • схемы управления тембровой окраской по высоким (ВЧ) и низ- ким (НЧ) частотам; • аппаратный сброс при включении питания. Селектор режимов используется для задания режимов «стерео», «sound А», «sound В» для трансляции звука только из правого или только из левого канала. Управление громкостью и стереобалансом совмещенное. Регу- лятор громкости состоит из двух каскадов, предназначенных для прохождения сигналов левого и правого каналов. Коэффициент пе- редачи каждого каскада может быть отрегулирован в пределах от 6 до -64 дБ с шагом 2 дБ. Дополнительно можно получить затухание
Представители микросхем с интерфейсом 12С 33 -80 дБ. Оба канала управляются независимо друг от друга, поэтому возможна регулировка стереобаланса. Режимы «spatial стерео», «стерео» и «принудительное моно» могут быть использованы в разных ситуациях. Режим «стерео» ис- пользуется в случае прохождения обычного стереосигнала. При по- лучении соответствующей команды, свидетельствующей об отсутст- вии стереосигнала, микросхему можно перевести в режим «spatial стерео» (расширенная стереобаза) или «принудительное моно». Регулировка тембра по низким частотам (НЧ) осуществляется в пределах от 15 до -12 дБ с шагом 3 дБ. . Регулировка тембра по высоким частотам (ВЧ) осуществляет- ся в пределах от 12 до -12 дБ с шагом 3 дБ. Расположение выводов показано на рис. 3.41, назначение выво- дов — в табл. 3.17, внутреннее устройство микросхемы — на рис. 3.42. INL [7 VCAP [7 INR [7 vcc [7 AGND [7 BASS R [7 BASS R [7 TREBLER [7 outr[7 DGND[w 2o] - 59]. 7]. El- 16] BASS L 7] BASS L 7] TREBLER 7]OUT L 7] SCL 7] SDA Рис. 3.41. Расположение выводов микросхемы TDA8424 Таблица 3.17. Назначение выводов микросхемы Символ Вывод Описание INL 1 Вход левого канала Чар 2 Развязывающий конденсатор INR 3 Вход правого канала Vcc 4 Питание«+» AGND 5 Аналоговая «земля» BASS R 6 Управление НЧ правого канала
84 Представители микросхем с интерфейсом 12С Окончание таблицы 3.17 Символ Вывод Описание i BASS R 7 Управление НЧ правого канала TREBLE R 8 ——- - - -J Управление ВЧ правого канала OUTR 9 Выход правого канала DGND 10 Цифровая «земля» j SDA 11 Линия SDA шины !2С SCL 12 Линия SCL шины !2С ! OUTL 13 Выход левого канала ! TREBLE L 14 Управление ВЧ левого канала BASSL 15 Управление НЧ левого канала i BASSL 16 Управление НЧ левого канала - 17 Не используется - 18 Не используется 19 Не используется L 20 Не используется Рис. 3.42. Внутреннее устройство микросхемы TDA8424
Представители микросхем с интерфейсом 12С 85 Теперь поговорим о том. как управлять данной микросхемой. Slave-адрес фиксирован жестко и показан на рис. 3.43, а. В дальней- шем описании, касающемся данной микросхемы, на всех рисунках этот адрес будет обозначен как MAD. MSB LSB R/W ISTA | MAd| SAD I VL | STA | MAd| SAD j VR | ST A | MAD | SAD | BA I ST A | MAD |SAD j TR| STA |mAD| SAD | S1 | STp] START V----------> START -----^—7 START -------------> START V_____y---> START _________> STOP VL VR BA TR S’ 6) Рис. 3.43. a) Slave-адрес микросхемы TDA8424 (MAD); б) управление микросхемой TDA8424 После slave-адреса следует серия субадресов, которые задают ме- стоположение ячеек, регулирующих: • громкость левого канала; • громкость правого канала; • тембр НЧ в обоих каналах; • тембр ВЧ в обоих каналах. В табл. 3.18 приведено кодирование байта с условным наимено- занием SAD, следующего после байта MAD. Не забывайте также о заличии сигналов АСК по окончании передачи каждого байта. Таблица 3.18 Функция 7 Адрес SAD 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 ; I Функция переключения 0 0 0 0 1 0 0 I L°.
86 Представители микросхем с интерфейсом 12С В табл. 3.19 приводятся способы кодирования байта, следующего после байта SAD. Наименование этого байта меняется в зависимости от выполняемой функции (VL, VR, В A, TR, S1) и будет описано ниже. Таблица 3.19 Функция 7 6 5 4 3 2 1 ° Громк., лев. кан. (VL) 1 1 V05 V04 V03 V02 V01 V00 Громк., прав. кан. (VR) 1 1 V15 V14 V13 V12 V11 VI0 НЧ-тембр (ВА) 1 1 1 1 ВАЗ ВА2 ВА1 ВАО ВЧ-тембр (TR) 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 Таблица 3.21 Функция ML1 MLO Стерео 1 1 Канал А 0 1 Канал В 1 0 Режим 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 Vx3 Vx2 VX1 v„o 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, а обозначение V15 — к байту VR.
88 Представители микросхем с интерфейсом 12С Таблица 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. Регулировка тембра ВЧ Уровень, дБ TR3 TR2 TR1 TRO 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. Тогда в информаци- онном пакете будут отсутствовать байты В A, TR, S1.
Представители микросхем с интерфейсом 12С 89 Возможно использование режима автоинкремента субадреса, как показано на рис. 3.44. В этом случае в байте SAD задается субадрес VL, а затем производится передача согласно рис. 3.44. Режим авто- инкремента субадреса удобно использовать после первоначального старта (сброса схемы после включения питания). Символ «х» в дан- ном случае означает, что необходимо повторить передачу неинфор- мативных байтов согласно табл. 3.19. |sta|mad|sad| VL | VR | ba |tr | X | X | X | X I S1 ISTO[ Рис. 3.44. Режим автоинкремента субадреса Основные характеристики микросхемы, важные для проектиро- вания, приведены в табл. 3.26. Таблица 3.26 Параметр технических условий Символ Мин. Норма Макс. Ед. изм. Напряжение питания Чх 10,8 12,0 13,2 в Ток потребления ^СС - 26 35 мА Внутреннее опорное напряжение 5,4 0,5Vcc 6,6 в Рабочая температура "ГзтЬ 0 - +70 'С Температура хранения Ltg -25 - +150 •с Разделение каналов (на частоте 10 кГц) O-CS - 80 - ДБ Входной уровень сигнала (выводы 1 и 3) Vi 2 - - в Входное сопротивление R> 20 30 40 кОм Полоса пропускания (по уровню 0,5 дБ) в 20 - 20000 Гц Выходное напряжение (выводы 9 и 13) Vo 0,6 - - в Выходной импеданс Zo - - 100 Ом Уровень шума: усиление 6 дБ S + N — 78 — усиление 0 дБ N - 86 - ДБ ослабление < -20 дБ - 68 - Общие гармонические искажения: [6 дБ...-40 дБ] Vj = 0,3 В — 0,05 — [0дБ...-40дБ]Ц = 0,6В THD — 0,07 0,4 % [12 дБ...-40 дБ] V, = 2,0 В - 0,1 -
90 'Представители микросхем с интерфейсом 12С На рис. 3.45—3.47 приведены некоторые графические данные, которые наглядно свидетельствуют о высоком качестве микросхемы. Микросхема выпускается в корпусе DIP20 (SOT 146-1) и предна- значена для установки в печатную плату с шагом 2,54 мм. Типовая схема включения приведена на рис. 3.48. 20 кГц 12,5 кГц''' 5 кГц 40 кГц/// 1 кГц/ V/ 12 3 4 Входное напряжение, В Рис. 3.45. Зависимость уровня гармонических искажений для разных частот от уровня входного сигнала (среднеквадратичное значение). Условия измерения: усиление -10 дБ, НЧ/ВЧ тембр = 0 дБ, Vcc = 12 В Рис. 3.46. Зависимость уровня разделения стереоканалов от частоты входного сигнала. Условие измерения: НЧ/ВЧ тембр = 0 дБ, Усс = 12 В
Представители микросхем с интерфейсом 12С 91 Рис. 3.47. Зависимость коэффициента усиления в диапазоне воспроизводимых частот при одновременном изменении уровня НЧ/ВЧ тембра в пределах от -12 до +15 дБ. Условие измерения: усиление = 0 дБ, Vcc= 12 В Рис. 3.48. Типовая схема включения TDA8424 BASS R ЗЗн BASS R -------1 AGND НН ЮОн * — VCC-12B 470н —II—«- IN R 1' ЮОмк -----1 DGND , 2,2мк if—> OUT R 5,6н —| TREBLE R I IVCAP ,470h k-<- IN L ТЕА6360 В оригинальной документации [21] эта микросхема называется 5-band stereo equalizer circuit. Что такое эквалайзер, знают многие. А кто не знает, тому достаточно вспомнить несколько импортных магнитол и музыкальных центров, в которых это устройство имеет- ся. Эквалайзер всего лишь расширенный вариант регулятора тембра, который позволяет более точно влиять на тоновую окраску звучания, выбирать ее по своим индивидуальным предпочтениям. Сложные профессиональные студийные эквалайзеры имеют не один десяток
92 Представители микросхем с интерфейсом 12С частотных «линеек», позволяющих индивидуально подобрать звуча- ние в каждом канале (каналов может быть четыре и более). Бытовая аппаратура, конечно, намного проще, и часто ее возможности огра- ничиваются всего пятью «линейками», представленными на перед- ней панели прибора пятью движковыми переменными резисторами. Микросхема ТЕА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
Представители микросхем с интерфейсом 1гС 93 Рис. 3.50. Схема одиночного фильтра тор) одиночных фильтров, а значит, и разная тембровая окраска. По- этому возможно использовать не только собственные усилительные качества фильтра, но еще и управлять частотной характеристикой (варьировать АЧХ с помощью способа «весовых коэффициентов»), дополнительно ослабляя сигнал на выходе. Для этого (рис. 3.50) кас- кад разделен на две части: boost и cut. Коэффициенты передачи кас- кадов задаются программно, и об этом мы сейчас поговорим. Расположение выводов микросхемы ТЕА6360 показано на рис. 3.51, а название выводов — в табл. 3.27. V1L [7 F1LA [Т п.с. ]~3~ F1LB [7 F2LA [Г F2LB [7 F3LA[7 F3LB [F F4LA (sF F4LB [ТБ F5LA [и F5LB [l2 VqlOI VpEZ SDA [Tf SCL |Тб <O Ш H 32] V1R ST] F1RA 3o| n.c. 29] F1RB 2b] F2RA 2?| F2RB 2б] F3RA 25] F3RB Й] F4RA 2з] F4RB 22] F5RA 2l| F5RB 20] VOR TTj GND1 Тв] MAD TV] 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 (1 = 12 кГц) F2LB 6 Вывод В фильтра 2 LEFT (1 = 12 кГц) F3LA 7 Вывод А фильтра 3 LEFT (f = 790 Гц) F3LB 8 Вывод В фильтра 3 LEFT (f = 790 Гц) F4LA 9 Вывод А фильтра 4 LEFT (f = 205 Гц) F4LB 10 Вывод В фильтра 4 LEFT (f = 205 Гц) F5LA 11 Вывод А фильтра 5 LEFT (f = 59 Гц) F5LB 12 Вывод В фильтра 5 LEFT (1 = 59 Гц) Vol 13 Выход сигнала левого канала (LEFT) vp 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 (1 = 12 кГц) F2RA 28 Вывод А фильтра 2 RIGHT (f = 12 кГц) F1RB 29 Вывод В фильтра 1 RIGHT (f = 2,95 кГц) - 30 Не используется F1RA 31 Вывод А фильтра 1 RIGHT (1 = 2,95 кГц) 4, 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 1С0 Фильтр 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 I Примечания. 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 Представители микросхем с интерфейсом 12С Возможные комбинации boost и cut уровней приведены в табл. 3.29 (boost) и табл. 3.30 (cut). Таблица 3.29 Позиция пВ2 пВ1 пВО шаг 0 / 0 дБ 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 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 пВ2 1 1 0 D5 04 D3 D2 D1 пС1 DO пСО Примечание X пВ1 пВО X пС2 +5 0 0 1 0 0 0 0 (+5) + (-0) = +5 +4 0 0 0 0 0 0 0 0 (+4) + (-0) = +4 +3 0 1 1 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 0 0 0 0 0 0 0 1 (+0) + (-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 DO Примечание X пВ2 пВ1 ПВО X пС2 пС1 пСО +5 0 1 0 1 0 0 0 0 (+5) + (-0) = +5 +4 0 1 0 1 0 0 0 1 (+5) + (-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 Параметр технических условий Символ Мин. Норма Макс. Ед. изм. Напряжение питания Vp 7 8,5 13,2 В Ток потребления !р - 24,5 - мА Максимальный уровень выходного сигнала Vo 1,1 - - В Рабочая температура Т"зтЬ -40 - +85 •с Температура хранения T”stg -40 - +150 °C Входное сопротивление (выводы 1 и 32) Ri 1 - - МОм Выходное сопроивление (выводы 13 и 20) Ro - 100 - Ом Полоса пропускания по уровню -1 дБ в 0 - 20 000 Гц Общие гармонические искажения: -Vo= 1,1 В;0дБ — 0,2 0,5 -Vo = O,1 В;0дБ THD - 0,05 0,2 % -Vo=1,1 В;+15 дБ — 0,5 1,0 -Vo = 0,1 В;+15 дБ - 0,1 0,3 -Vo = 0,1 В;-15 дБ - 0,2 0,5 Напряжения шума на выходе (среднеквадратическое значение): ОдБ (все фильтры) vN — 23 46 мкВ +15 дБ (все фильтры) — 70 140 -15 дБ (все фильтры) - 23 46 Q-фактор при усилении: Ю дБ 0,1 — 1,2 12 дБ 0,1 — 1,4 15дБ 0,1 - 1,8 Отклонение параметров фильтров от расчетных T'Btol - - ±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 12C bus, или 8-битовый интерфейс, со- вмещенный с интерфейсом 12С, предназначенный для трансляции данных. Проще говоря, микросхему эту можно использовать для пре- образования данных, поступающих с шины 12С в 8-битовый парал- лельный код, или последовательно передавать код по шине. Зачем нужна такая микросхема? К примеру, в какой-либо конструкции не- обходимо использовать микроконтроллер, включив его как slave-ycr-
Представители микросхем с интерфейсом 12С 101 ройство. Мы уже знаем, что аппаратная реализация 12С интерфейса ведомого устройства довольно сложна. А вот подключив к порту микроконтроллера микросхему PCF8574, можно просто и изящно ре- шить данную проблему. Традиционное предуведомление отражает наиболее привлека- тельные для разработчика свойства микросхемы: • сохранение работоспособности при напряжении питания от 2,5 до 6 В; • низкое потребление тока в ждущем режиме — 10 мкА; • открытый сток вывода «прерывание» (interrupt); • 8-битовый двунаправленный I/O порт; • совместимость с большинством микроконтроллеров; • высокая нагрузочная способность выходов, позволяющая непо- средственно подключать светоизлучающие диоды; • внешние 3 вывода slave-адреса, позволяющие подключить к шине 12С одновременно до 8 однотипных микросхем; • корпус DIP 16 (SOT38-1) или SO16 (SOT162-1). Расположение выводов микросхемы приведено на рис. 3.55, на- значение выводов — в табл. 3.35. АО А1 А2 РО Р1 Р2 РЗ Vss 1_ ][ з 7 7 £ 7 К 16 15 14 13 12 7Т w Т Vdd SDA SCL INT P7 P6 P5 P4 Рис. 3.55. Расположение выводов микросхемы PCF8574
102 Представители микросхем с интерфейсом 12С Таблица 3.35. Назначение выводов PCF8574 Символ Вывод Описание АО 1 Адресный вход 0 А1 2 Адресный вход 1 А2 3 Адресный вход 2 Р0 4 Квази-двунаправленный I/O порт 0 Р1 5 Квази-двунаправленный I/O порт 1 Р2 6 I Квази-двунаправленный I/O порт 2 РЗ 7 Квази-двунаправленный I/O порт 3 Vss 8 Общий провод микросхемы Р4 9 Квази-двунаправленный I/O порт 4 Р5 10 Квази-двунаправленный I/O порт 5 Р6 11 Квази-двунаправленный I/O порт 6 Р7 12 Квази-двунаправленный I/O порт 7 INT 13 Вывод сигнала прерывания (LOW) SCL 14 Линия SCL шины 12С SDA 15 Линия SDA шины RC Vdo 16 Питание«+» В чем состоит «изюминка» данной микросхемы? Как известно, прием и передача данных посредством стробирования не вызывает сложностей. Достаточно помещать данные в сдвиговый регистр, а потом осуществлять их движение подачей стробирующих импуль- сов. Все это так, но главная сложность работы с шиной 12С заключа- ется в том, что затруднительно фиксировать условие Start, свидетель- ствующее об активизации шипы. Если вы помните, в протоколе ши- ны был оставлен служебный адрес 0000 0001, называемый «программный Start». Работать в условиях программного отслежива- ния Start-условия достаточно трудно и далеко не всегда оправданно, поэтому в состав микросхемы PCF8574 была введена «изюминка» в виде вывода генерации прерывания (interrupt, 1NT). Сигнал прерыва- ния сообщит микроконтроллеру о начале активации шины. Таким образом, сторона микросхемы PCF8574, относящаяся к интерфейсу ЕС, представляет собой обычное slave-устройство (рис. 3.56).
Рис. 3.56. Внутреннее устройство микросхемы PCF8574 Управляющая схема интерфейса параллельного ввода-вывода по- казана на рис. 3.57. Обратите внимание: интерфейсные выводы за- щищены от перегрузки диодами VD1 и VD2. Рис. 3.57. Упрощенная схема параллельного интерфейса микросхемы PCF8574
104 Представители микросхем с интерфейсом 12С Поговорим теперь о программных способах работы с данной микросхемой. Традиционно начнем с определения slave-адреса (рис. 3.58). |в|о*1^О*о'а2^А1^АО^о|а| PCF8574 I S | О 1 ' 1 ' 1 * А2 А1' АО * О | А | PCF8574A Рис. 3.58. Slave-адреса микросхем Вам могут встретиться две разновидности микросхемы PCF8574 — с буквой «А» и без буквы. Отличаются они только че- тырьмя старшими битами slave-адреса. Таким образом, если на од- ной шине будет присутствовать 8 микросхем PCF8574 и 8 микросхем PCF8574A, конфликта это не вызовет. Биты А2...А0 задаются с помо- щью внешних выводов микросхем. Запись в порт осуществляется по схеме, представленной на рис. 3.59. «Запись» в данном случае означает, что данные с шины 12С появятся на параллельном порте Р0...Р7. Обратите внимание: данные появляются на выходе порта спустя время t после возникновения сигнала АСК (а также записи в порт). Микроконтроллер должен успеть считать предыдущие данные на ли- ниях Р0...Р7 до появления следующего байта данных. Slave-адрес Данные в порт Данные в порт 1 Л < > SDA | S | 0 ’ 1 ’ 0 * 0 , А2« А1 ’ АО | 0 | А | DATAl‘ ' ' | А | ' DATA2 ' ; | а| 1 Условие START t 111,111 АСК от slave АСКот slave 1 АСК от slave Запись в порт Данные выходят с порта : DATA1 D(j?ATA2 tpv—>; tpv- Рис. 3.59. Запись данных в порт
Представители микросхем с интерфейсом 12С 105 Чтение с порта происходит по схеме, показанной на рис. 3.60. Напоминаем, что микросхема по-прежнему остается в режиме slave-устройства, то есть сигнал SCL генерируется master-устрой- ством. Slave-адрес Данные из порта Данные из порта SDA | s| о' 1 ' о' о'а2'ai'ao| о |:а | ' ' 'data? * 1 |;а| 1 ’ ' оатад ' 1 |ii | р| 1 it it it Условие 1 АСК от АСК от :Условие START .slave .slave ;STOP Чтение jn И ! из порта 1 1 1 от A DATA1 XdATA# DAT АЗ Д ; DATA4 ; порта i <ph-i С- -^tps^ i lNT : 1 и 1 U tiv “*? Г*" tir “*! Г*" fir Рис. 3.60. Чтение данных из порта Чтение данных с порта происходит в момент появления сигнала АСК. В промежутках между сигналами АСК данные менять нет смысла, поскольку они будут потеряны. Очень важный и, можно даже сказать, принципиальный момент связан с генерацией сигнала прерывания INT. Аппаратно сигнал INT реализован по принципу выходного каскада с открытым сто- ком, поэтому необходима «подтяжка» к напряжению питания через pull-up резистор, как показано на рис. 3.61. Выводы INT разных микросхем можно объединить и подать на вывод прерывания мик- роконтроллера. Рис. 3.61. Аппаратная реализация отработки прерываний с портов Прерывание может быть сгенерировано при перепаде на выход- ном порте хотя бы одного бита Р0...Р7 как с высокого уровня в низ-
106 Представители микросхем с интерфейсом 1гС кий, так и в обратном направлении. Возврат сигнала INT происходит после генерации сигнала АСК (рис. 3.62) следующим образом: а) в режиме чтения — в момент положительного перепада сигна- ла SCL; б) в режиме записи — в момент отрицательного перепада сигнала SCL. Прерывания, которые происходят в течение импульса АСК, мо- гут быть потеряны из-за очень короткой длительности импульса. В табл. 3.36 приведены сведения, необходимые для разработчика. Slave-адрес Данные из порта SDA | S | 0 ' 10 0 А2* Al‘А01 О |;А | ‘ ' 1 ' ' \ ' | 1 | Р | т Ту т “ Условие !АСК р5 Условие START ; STOP SCL Данные Т Р5 INT Рис. 3.62. Программная отработка прерываний (прерывание генерируется изменением данных на линии Р5) Таблица 3.36 Параметр технических условий Символ Мин. Норма Макс. Ед. изм. Напряжение питания Vdd 2,5 6,0 В Ток потребления в активном состоянии Vdd = 6 В, fgct= 100 кГц 'dd - 40 100 мкА Ток потребления в неактивном состоянии ktb - 2,5 10 мкА [ Уровень напряжения сброса внутренней схемы Vpor - 1,3 2,4 В Время, за которое выходные данные вступают в силу tpv - - 4 мкс Время установки входных данных tsu 0 - - мкс Время удержания входных данных th 4 - - мкс Время, за которое входные данные вступают в силу tiv - - 4 мкс Время задержки сброса V - - 4 мкс Температура хранения Tstg -65 - +150 "С Рабочая температура lamb -40 - +85 •С Максимальная частота сигнала SCL fsci - - 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 Символ Вывод Описание AINO 1 Аналоговый вход (A/D) AIN1 2 Аналоговый вход (A/D) A1N2 3 Аналоговый вход (A/D) AIN3 4 Аналоговый вход (A/D) АО 5 Адресный вход 0 А1 6 Адресный вход 1 А2 7 Адресный вход 2 Vss 8 Общий провод микросхемы (питание) I SDA 9 Линия SDA шины !2С SCL 10 Линия SCL шины 12С CSC 11 Вывод подключения внешнего генератора EXT 12 Внешний/внутренний генератор AGND 13 Аналоговая «земля» Vref 14 Опорное напряжение AOUT 15 Аналоговый выход (D/A) Vdd 16 Напряжение питания«+»
Представители микросхем с интерфейсом 12С 109 AINO [Т 1б] VDD AIN1 [Г ТЕ] AOUT AIN2 [~3~ 14] VREF AIN3 [7 L0 со 7з] AGND АО |Т IX. О ?2] EXT А1 [Г О. n] OSC А2 [7 10] SCL Vss р8~ T] 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 IА21А11 Ао| R/W | Фиксированная Программируемая часть часть Рис. 3.65. Построение slave-адреса Второй байт, следующий за slave-адресом, носит название байта контроля и управления. Этот байт конфигурирует микросхему под задачи пользователя. Во-первых, с его помощью можно включить аналоговый выход или отключить его. Во-вторых, возможно настро- ить аналоговые входы как в прямом, так и в дифференциальном включении. В-третьих, возможна установка (двумя битами) номера канала А/D, в котором будет происходить преобразование. Если ус- тановлен флаг автоинкремента, после каждого А/D преобразования номер входного канала будет увеличиваться на единицу. Режим ав- тоинкремента наиболее рационально использовать совместно с внут- ренним генератором, поскольку в таком режиме он будет работать непрерывно. Как сказано в документации, задержка пуска генератора при переключении каналов ведет к ошибкам преобразования данных. Рекомендуется также отключать аналоговый выход (переводить его в Z-состояние), если он не используется. Эта мера позволит сократить ток потребления микросхемы. На рис. 3.66 показаны возможные со- стояния байта контроля и управления. D/А преобразование Третий байт, который должна получать микросхема PCF8591, — это байт данных для цифроаналогового преобразователя. Естествен- но, в этом случае в байте контроля и управления (рис. 3.66) должен быть активизирован аналоговый выход. Физически D/А преобразователь состоит из резисторной матри- цы, показанной на рис. 3.67. Точки соединения резисторов образуют
Представители микросхем с интерфейсом 12С 111 MSB LSB I X | О | X | X | X I О I X | X Номер А/D канала 00 - канал О 01 - канал 1 10 - канал 2 11 - канал 3 Автоинкремент (активный - "Г) Программирование аналогового входа 00------------------------------ AIN0 ------ канал 0 AIN1 ------ канал 1 д(М2 ------ канал 2 AIN3 ------ канал 3 AINO канал 0 AIN2 AIN3 канал 1 Активация аналогового выхода (активный - "Г) Рис. 3.66. Байт контроля и управления ответвления, которые с помощью переключателей связываются с выходной линией. Управляет схемой декодер ответвлений. Выход- ное напряжение (DAC out) подается затем на усилитель с автомата-
112 Представители микросхем с интерфейсом 12С ческой балансировкой нуля (auto-zeroed unity gain amplifier). Этот усилитель может быть либо включен (через байт контроля и управле- ния), либо переведен в высокоимпедансное (2) состояние выхода. Рис. 3.67. А/D и D/А преобразователь MSB LSB I Р?| Рб| Р5| Р4| оз| D21 D1 |ро] Байт данных VAOUT. VPP- VREF- VAGNP" ---1-1--1---1-1---------------1--1- 00 01 02 03 04 FE FF HEX код Рис. 3.68. D/А преобразование
Представители микросхем с интерфейсом 12С 113 Важно отметить, что D/А преобразователь используется также в процедуре А/D преобразования по методу последовательного при- ближения. Данный метод подробно описан в литературе, и возвра- щаться к нему в рамках этой книги нет смысла. Процедура D/А преобразования показана на рис. 3.68. Любая точ- ка на графике в диапазоне 00h...FFh может быть определена по фор- муле у = v . RfF------------agnd_ у jj 2‘ * AOUT VAGNGD i ’ 256 /=0 где VA0UT — выходное напряжение D/А преобразователя; VREF — опорное напряжение; VAGND — потенциал аналоговой «земли»; D, — соответствующий разряд байта данных. Обратите внимание также на рис. 3.69. Возможна работа с микро- схемой посредством передачи цепочки байтов данных, следующих один за другим. Уровень напряжения, соответствующий заданному, появляется на выходе в момент выдачи сигнала АСК. В момент вы- дачи сигнала АСК, подтверждающего прием байта контроля и управ- ления (рис. 3.66, control byte) па выходе микросхемы, появляются данные, содержащиеся в регистре DAC с момента окончания преды- дущего цикла работы микросхемы. Рис. 3.69. Протокол работы в режиме D/А преобразования
114 Представители микросхем с интерфейсом 12С А/D преобразование Чтобы выполнить А/D преобразование, вначале нужно передать байт контроля и управления с признаком R/W = 0. Затем осущест- вить считывание данных согласно рис. 3.70. S Slave 1 А DATA 1 А DATA 2 А DATA3 А | Считывание байт 1 Считывание байт 2 байт 3 Преобразование байт 3 Передача на шину байта 2 Преобразование Преобразование байт 1 байт 2 Передача на шину лредыд. конверс. байта Передача на шину байта 1 Рис. 3.70. Протокол работы в режиме А/D преобразования Важно отметить, что считывание сигнала с аналогового входа и передача цифровых данных на шину 12С происходит по сигналу АСК. Причем момент считывания аналогового сигнала и момент на- чала передачи цифрового сигнала (точнее, его старшего бита) разне- сены во времени, как показано на рис. 3.70. Как уже было сказано ранее, входы микросхемы могут работать в обычном и дифференциальном режимах. График, отражающий рабо- ту микросхемы в обычном режиме, приведен на рис. 3.71, дифферен- циальный режим показан на рис. 3.72. V - V V — REF VAGND LSB ” 256 Чтобы обеспечить стабильность А/D и D/А преобразований, не- обходим специальный источник опорного напряжения, подключае- мый к выводам Vref и AGND микросхемы. Встроенный генератор не- обходим для обеспечения цикла преобразования А/D и для корректи- ровки буферного усилителя с автоматической подстройкой нуля.
Представители микросхем с интерфейсом 12С 115 HEX Рис. 3.71. Обычный режим преобразования A/D Чтобы задействовать внутренний генератор, вывод EXT должен быть замкнут к Vss. Тогда на выводе OS С появится сигнал частоты преобразования, который можно проконтролировать. Если вывод ЕХТ подключить к VDD, внутренний генератор перейдет в высокоим- педансное состояние и на вывод OSC можно подавать сигнал от внешнего генератора.
116 Представители микросхем с интерфейсом 12С В табл. 3.38 приведены основные технические характеристики микросхемы, необходимые для проектирования. Таблица 3.38 Г” 1 Параметр технических условий Символ Мин. Г Норма Макс. Гс Ед. изм. !Напряжение питания Vdd 2,5 - 6,0 В Ток потребления: в ждущем режиме Inn — 1 15 AOUT отключен — 125 250 AOUT включен - 0,45 1,0 Порог срабатывания схемы внутреннего сброса Vp« 0,8 - 2,0 В Входное опорное напряжение V,ef Vss+1,6 - Vdd В п 1 Потенциал аналоговой «земли» Vagnd Vss - Vdd В Входное сопротивление ^ref - 100 кОм Частота преобразования fflSC 0,75 - 1,25 МГц Выходное напряжение Vo Vss - Vdd В D/А характеристики Ошибка смещения ose - - 50 мВ Ошибка линейности U - - ±1,5 LSB Ошибка усиления Ge __ - 1 Время установки DAC ^dac - - 90 МКС А/D характеристики Ошибка смещения ose ! - - 20 мВ Ошибка линейности U - - ±1,5 LSB Ошибка усиления Ge - - 1 % Ошибка усиления малого сигнала GSe 5 % |(ДЧ= 16 LSB) Время преобразования ^adc - - 90 МКС Рабочая температура lamb -40 - +85 •с Температура хранения Tstg -65 - +150 'С
Представители микросхем с интерфейсом 12С 117 На рис. 3.73 приведен пример использования микросхемы PCF8591 в качестве температурного датчика. Выводы A1N0 и AIN1 работают в обычном режиме, выводы AIN2 и AIN3 включены по дифференциальной схеме. VDO Аналоговая "земля" _L Цифровая "земля" Master 12С Рис. 3.73. Вариант использования микросхемы PCF8591 PCF8583 В оригинальной документации (Product Specification) [31] микро- схема имеет наименование clock/calendar with 240x8 bit RAM. Эго очень интересная микросхема, которая имеет в своем составе часы реального времени и статическое ОЗУ (RAM). Причем микросхема может использоваться и как только часы, и как только ОЗУ, а также выполнять совмещенные функции — все ячейки памяти находятся в одном адресном пространстве. Где можно применить данную микро- схему? Например, запитав ее от отдельного автономного источника (гальванической батареи или аккумулятора), разместить в устройст- ве, требующем считывания текущего времени в процессе работы (скажем, для ведения протокола каких-либо измерений). Такие часы имеются в любом PC-совместимом компьютере для сохранения даты создания файлов. В составе уличных телефонов-автоматов тоже есть часы реального времени для фиксации времени разговора и опреде-
118 Представители микросхем с интерфейсом 12С ления просроченных телефонных карт. Часы реального времени можно использовать в разнообразных системах избирательного дос- тупа, в бытовой технике (таймеры кухонной техники), в автомобиль- ной электронике. Читатель сам найдет варианты применения PCF8583, если внимательно оглянется вокруг и задействует свою фантазию. Итак, каковы заманчивые свойства микросхемы: • управление по интерфейсу 12С; • диапазон напряжений питания — от 2,5 до 6,0 В; • часы реального времени сохраняют работоспособность в диапа- зоне напряжений 1...6 В; • максимальный рабочий ток (fosc = 0 Гц) — 50 мкА; • 240 х 8 bit низковольтное RAM; • календарь на четыре года; • универсальный таймер с функциями alarm и overflow; • формат 24 и 12 часов; • базовая частота 32768 и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 osci [7 osco[Т АО [Т Vss |4~ VDD 7] InT J] SCL j] SDA PCF8583P PCF8583T Рис. 3.74. Расположение выводов Таблица 3.39. Назначение выводов Символ Вывод Описание OSC1 1 Вход генератора OSCO 2 Выход генератора АО 3 Программирование slave-адреса Vss 4 Общий питания SDA 5 Линия SDA шины 12С SCL 6 Линия SCLujhhhPC INT 7 Вывод генерации прерывания Voo 8 Питание«+» Рис. 3.75. Блок- схема внутреннего устройства
120 Представители микросхем с интерфейсом 12С Рассмотрим теперь принципы работы с микросхемой. Как видно из рис. 3.75, первые 8 байтов использованы непосредственно для функционирования часов реального времени. Регистр статуса (control/status, адрес 00h) используется для конфигурирования мик- росхемы, индивидуальной ее настройки, а также для определения си- туаций, возникающих в процессе работы. Перечисляемые далее ре- гистры имеют следующее функциональное назначение (в режиме clock modes): • адрес 01 h [hundredth of a seconds] — 1/10 и 1/100 секунды; • адрес 02h [seconds] — секунды и десятки секунд; • адрес 03h [minutes] — минуты и десятки минут; • адрес 04h [hours] — десятки часов и часы; • адрес 05h [year/date] — год и дата; • адрес 06h [wcekday/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 микросхемы. Необходимо обратить внимание читателя на то, что этот вывод выполнен по технологии «открытый
Представители микросхем с интерфейсом 12С 121 control/status hundred of a second 1/10s I 1/WOs seconds ios 1 Is minutes 10mm I 1mir> hours lOh I1h year/date IQdav I 1dav weekday/month 1 Qmonth \ 1. month timer 10dav I 1dav alarm/control hundred of a second 1/10s I 1/100s alarm seconds alarm minutes _______I______ alarm hours 1 alarm date I - alarm month alarm timer 00 01 02 03 04 05 06 07 08 09 0A DB 0C 0D 0E OF control/status D1 DO D3 D2 D5 D4 Свободно Свободно Свободно Т1 <™ег то alarm/control alarm D1 alarm DO D3 D2 D5 D4 Свободно Свободно Свободно alarm timer 00 03 04 05 06 07 08 09 0A DB DC 0D 0E OF 01 02 :вободная RAM Свободная RAM CLOCK MODE EVENT COUNTER Рис. 3.76. Назначение и формат регистров микросхемы PCF8583 в режимах clock modes и event counter сток», а значит, требует подключения pull-up резистора к напряже- нию питания. Флаг прерывания (1NT) остается активным до момента повторного программирования режима alarm. Если функция alarm нс задействована (бит 2 регистра статуса ус- тановлен в «0»), ячейки 08h...0Fh могут быть использованы по ус- мотрению разработчика электронной схемы. Назначение бита регистра статуса приведено на рис. 3.77. Ре- гистр доступен как по условию чтения, так и по условию записи. Детальное описание регистров часов (hours), года и даты (year/date), недели и месяца (weekday/months) приведено на рис. 3.78—3.80. 12-часовой или 24-часовой формат может быть установлен програм- мированием бита 7 в регистре hours (адрес 04h). При осуществлении чтения по адресам 05h и 06h желательно установить флаг mask в ре- гистре статуса. Это позволит пользователю непосредственно читать дату и месяц, не проводя дополнительные вычисления. В случае использования режима event counter все данные в ячей- ках D0...D5 также должны содержаться в BCD-формате. Тетрада D5 в этом случае является старшей тетрадой, а тетрада D0 — младшей.
122 Представители микросхем с интерфейсом 12С MSB_________________________LSB I 7 | 6 | 5 | 4 | 3 | 2 | 1 | О | LTJ L_ флаг''timer" (50% секунды, если флаг "alarm" установлен в "О"); ---- флаг “timer" (50% минуты, если флаг "alarm" установлен в "0“); -------- бит разрешения режима "alarm": 0 - "alarm" запрещен, 1 - "alarm" разрешен; флаг "mask”: 0 - немаскированное чтение 05^g и 061g. 1 - непосредственное чтение date и month; функциональный режим: 00 - частота 32768 Гц; 01 - частота 50 Гц; 10 — счетчик событий; 11 - режим тестирования; флаг "hold last count": 0 - счетчик; 1 - захват; --------- флаг "stop counting" (0 - счет импульсов; 1 — остановка по условию и по строке) Рис. 3.77. Регистр статуса (адрес 00h) 0 - 24-часовой (флаг АМ/РМ не задействован); 1 - 12-часовой (флаг АМ/РМ обновляется) Рис. 3.78. Регистр hours MSB LSB |7|б|5|4|з|2|1|о| h-т—I I I ‘ I I I I Установка после сброса: 0 000 001 дни (BCD формат); десятки дней; год (читается "0", если флаг ’mask" установлен) Рис. 3.79. Регистр year/date
Представители микросхем с интерфейсом 12С 123 MSB LSB Установка после сброса: О ООО 001 месяц (BCD формат); десятки месяца; неделя (читается "0", если флаг "mask" установлен) Рис. 3.80. Регистр weekdays/mounths Диапазон изменения величин во всех регистрах приведен в табл. 3.40. Таблица 3.40 Единица измерения Режим счета Переход к следующей единице Содержание счетчика месяца Hundredths of second 00 to 99 99 to 00 - Seconds Minutes 00 to 59 00 to 59 59 to 00 59 to 00 - - Hours (24 h) 00 to 23 23 to 00 Hours (12h) 12AM - i 01 AM to 11 AM - 1 12 PM - 1 01 PM to 11 PM 11 PM to 12 AM 1 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 Ю01 - Year 0 to 3 - - Weekdays Oto 6 6 to 0 - Timer 00 to 99 нет содержания - В случае установки бита 2 регис гра статуса в состояние «1» акти- визируется режим alarm, таймер и схема генерации прерываний (interrupt). Все эти функции могут быть определены с помощью реги- стра alarm control, располагающегося по адресу 08h. Возможные со- стояния этого регистра приведены на рис. 3.81.
124 Представители микросхем с интерфейсом 12С Установка после сброса: Q ООО 000 ------- функции таймера: ООО - без таймера; 001 - десятки и сотни секунд; 010 - секунды; 011 - минуты; 100 •• часы, 101 - дни; 110- но используется; 111- тестовый сигнал (используется все): -------прерывание от таймера: 0 - нет прерываний; 1 - есть прерывания; -------функция alarm: 00 - нет функции alarm; 01 - ежедневный alarm; 10- еженедельный alarm; 11 - alarm по дате; -----------------------------alarm по таймеру: 0 - нет alarm по таймеру; 1 - alarm по таймеру; I_______________________________прерывание по режиму 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 должны соответствовать битам счетного регистра часов. Таймер (адрес 071т) активизируется при установке в регистре ста- туса комбинации XX0X XIXX. Таймер может осуществлять счет от 0 (или от другой установленной величины) до 99. Флаг timer в реги- стре статуса должен быть установлен при превышении таймером указанной величины, а возврат обеспечивает программно. Этот флаг может генерировать внешнее прерывание при установке бита 3 в ре- гистре alarm control. Alarm от таймера может быть установлен по биту 6 в регистре alarm control. Когда счетное число таймера сравняется с величиной,
Представители микросхем с интерфейсом 12С 125 Рис. 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 Установка после сброса: О ООО 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 от таймеру: 0 - нет alarm от таймера; 1 - alarm от таймера; -------------------- alarm прерывание: 0- нет прерываний; 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 Параметр технических условий Символ Мин. Норма Макс. Ед. изм. Напряжение питания (12С активна) Vdd 2,5 - 6,0 В Напряжение питания (12С неактивна) Vdd 1,0 - 6,0 В Потребляемый ток (fosc = 100 кГц) 'dd - - 200 мкА Рабочая температура lamb -40 - +85 •с
128 Представители микросхем с интерфейсом 12С Окончание таблицы 3.41 Параметр технических условий Символ Мин. Норма Макс. Ед. изм. Температура хранения Tstg -60 - +150 "С Интегрированная емкость генератора ^osc - 40 - пФ Стабильность генератора ^OSC - 2 10-7 - Входная частота в режиме event counter f, - - 1 МГц Параметры кварцевого генератора Последовательное сопротивление Rs - - 40 кОм Параллельная входная емкость Cl 10 - пФ Подстроечный конденсатор (триммер) Ct 5 - 25 пФ Микросхема выпускается в корпусах DIP8 и SO8. Схема включе- ния приведена на рис. 3.85. VDD I I I I VDD SDA SCL Рис. 3.85. Схема включения PCF8583 в режимах event counter и clock modes
Представители микросхем с интерфейсом /2С 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. Рис. 3.86. Расположение выводов микросхемы DS1621 Таблица 3.42. Назначение выводов микросхемы Символ Вывод Описание ! SDA 1 Линия SDA шины 12С SCL Tout 2 Линия ЗСЬшины l2C 3 Сигнал термостатирования GND 4 Общий вывод А2 5 Адресный вход 2 А1 6 Адресный вход 1 АО 7 Адресный вход 0 Vdd 8 Питание«+»
130 Представители микросхем с интерфейсом 12С Измерение температуры происходит по оригинальной методике, показанной на рис. 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 00000000 00000000 -0,5 11111111 10000000 -25 11100111 00000000 -55 11001001 00000000 Микросхема может работать в режиме термостатирования. Для этого нужно задать верхнюю (TH) и нижнюю (TL) температуры, ес- тественно, в двоичном коде. Тогда напряжение на выводе Tout будет соответствовать диаграмме, приведенной на рис. 3.88. Т (°C) Рис. 3.88. Микросхема в режиме термостата При нагревании и превышении уставки TH вырабатывается высо- кий уровень на выходе Тои| и начинается процесс охлаждения. Когда температура станет ниже уставки TL, уровень сигнала на указанном выходе станет низким и вновь начнется нагрев. Реализуется так на- зываемый процесс управления с гистерезисом температуры.
132 Представители микросхем с интерфейсом 12С Разберемся теперь, как конфигурировать микросхему и получать данные от нее. На рис. 3.89 показан вид конфигурационного регист- ра. Он имеет следующие биты: • DONE — бит завершения преобразования температуры в дво- ичный код. Когда DONE = 1, преобразование завершено; • THF — флаг «высокая температура». Этот флаг устанавливает- ся в «1». когда температура становится равной или больше ус- тановки TIL Этот бит останется в положении «1», пока не будет сброшен программно или не будет отключено питание микро- схемы; • TLF — флаг «низкая температура». Этот флаг устанавливается в «1», когда температура становится равной или ниже установ- ки ТЕ. Работа с флагом аналогична работе с THF; • NVB — флаг записи данных в энергонезависимую память. Ус- тановка в «1» свидетельствует о незавершенности записи ячей- ки памяти; после окончания записи аппаратно сбрасывается. Типичный цикл записи ячейки К) мс; • POL — бит полярности выхода Tout. При установке в «1» актив- ный уровень высокий; при установке в «О» активный уровень низкий. Этот бит энергонезависим; • 1SHOT — бит управления циклом измерения. При установ- ке в «1» преобразование выполняется однократно при полу- чении соответствующей команды; при установке в «О» пре- образование выполняется непрерывно. Этот бит энергонеза- висим. DONE THF TLF NVB 1 0 POL ISHOT Рис. 3.89. Регистр конфигурации Обычно микросхема функционирует в режиме непрерывного преобразования. Тем не менее, в режиме пониженного энергопо- требления возможно использование однократных преобразований. Также в режиме однократного преобразования сигнал на выводе Тоц| сохранит свое значение на момент окончания последнего пре- образования вне зависимости от текущей температуры окружаю- щей среды.
Представители микросхем с интерфейсом 12С 133 Конфигурирование и получение данных от микросхемы происхо- дит по стандартному 12С протоколу посредством передачи управ- ляющих команд. Вначале, как и предписывается, master-устройство передаст slave-адрес, старшие 4 бита которого содержат комбинацию 1001, а младшие 3 — согласно установке сигналов на выводах А0...А2. Условие «R/W» (нулевой бит) устанавливается в состояние «0» После получения АСК передается 8 битов командного слова, и slave-приемник вновь подтверждает получение выдачей АСК. Затем master-устройство может передавать данные к DS1621. Если необхо- димо произвести чтение (этот режим используется наиболее часто), после командного слова следует передать условие «повторный Start» и slave-адрес с битом R/W. установленным в «1». DS1621 использует следующие команды: • AAh — «чтение температуры» — эта команда позволяет прочи- тать значение текущей температуры. Микросхема формирует 2 информационных байта данных: • Alh — «обращение к ТН» команда позволяет установить значение верхнего уровня температуры в режиме термостати- рования. После выдачи этой команды должно быть передано 2 байта, определяющих значение температуры (условие «R/W» = 0). Значение ТН может быть также прочитано (усло- вие «R/W» = 1); • A2h - - «обращение к TL» — команда установки нижнего уров- ня температуры в режиме термостатирования, Работает анало- гично предыдущей команде; • ACh — «регистр конфигурации» — при условии установки «R/W» = 0 данные будут записаны в регистр конфигурации; при условии установки «R/W» = 1 осуществляется чтение регистра конфигурации; • A8h — «чтение счетчика» — команда читает состояние счетчи- ка в схеме определения температуры, связанного с генератором с высоким температурным коэффициентом. Допустимо исполь- зование команды только в режиме чтения; • A9h — «чтение slope» — команда читает состояние счетчика, связанного с генератором с низким температурным коэффици-
134 Представители микросхем с интерфейсом 12С ентом. Допустимо использование команды только в режиме чтения; • EEh — «старт счетчика» — команда начала преобразования температуры. После передачи этой команды не требуется пере- давать никаких дополнительных данных. В режиме непрерыв- ного преобразования эта команда активизирует счетчик, застав- ляет его работать непрерывно; • 22h — «стоп счетчика» — команда окончания преобразования температуры. После передачи команды не требуется дополни- тельных данных. В режиме непрерывного преобразования оста- навливает счетчик; для возобновления требуется передача пре- дыдущей команды. С помощью команд A8h и A9h можно повысить точность измере- ния температуры, вычислив ее с помощью формулы N -N ,О_Т _ п ПС, t^9h] [A8h] 1 Даль] + [A9h] где T[AAh], T[A9h], T[A8h] — соответствующие значения, считанные по командам. Возможные комбинации управляющих сигналов приведены на рис. 3.90. а) S Slave-адрес 0 А Command A p б) S Slave-адрес 0 А Command A DATA A [ 3 в) S Slave-адрес 0 А Command A MSB DATA 1 A SB DATA 2 A 3 г) S Slave-адрес 0 А Command A Sr Slave-адрес 4/V 0 V A DATA 33 4/V V MSB LSB Д) S Slave-адрес 0 А Command A Sr Slave-адрес 0 A DATA 1 A DATA 2 A P Рис. 3.90. Комбинации управляющих сигналов DS1621
Представители микросхем с интерфейсом 12С 135 В табл. 3.44 приводятся режимы и содержание управляющих сиг- налов, с помощью которых возможно осуществить полноценную ра- боту с микросхемой. Таблица 3.44 Инструкция Описание Команда Содержание данных в протоколе Режим преобразования температуры Чтение текущей температуры Чтение регистра температуры AAh Чтение 2 байтов данных Чтение счетчика Чтение счетчика с высоким темпе- ратурным коэффициентом A8h Чтение байта данных Чтение slope Чтение счетчика с низким темпера- турным коэффициентом A9h Чтение байта данных Старт преобразования темпе- ратуры - EEh Не содержатся Стоп преобразования темпера- туры - 22h Не содержатся Режим термостата Обращение к TH Чтение и запись установки темпера- туры в TH A1h Запись данных Обращение к TL Чтение и запись установки темпера- туры в TL A2h Запись данных Регистр конфигурации Чтение и запись данных в регистр конфигурации ACh Запись данных Как уже было сказано ранее, датчик DS1621 измеряет температу- ру с определенной погрешностью. Минимальная погрешность (не более ±0,5 °C) лежит в диапазоне от -15 °C до ±105 °C, за его преде- лами погрешность возрастает. График поведения потрешности дат- чика приведен на рис. 3.91.
136 Представители микросхем с интерфейсом 12С В заключение приведем основные электрические характеристики DS1621. Таблица 3.45 Параметр технических условий Символ Мин. Норма Макс. Ед. изм. Напряжение питания Vdd 2,7 - 5,5 В Время преобразования температуры Ьс - 0,4 1,0 С Частота сигнала SCL: в режиме low-speed 1 в режиме fast-speed *SCL 0 0 100 400 кГц Диапазон рабочих температур T"amb -55 - +125 •с Ток потребления в неактивном режиме Istbv - - 1 мкА
4. Микроконтроллеры с интерфейсом 12С Как Вы уже успели заметить, уважаемый читатель, интерфейс 12С требует мощной программной поддержки, которая немыслима без использования современных однокристальных микроконтроллеров. Являясь идеологом данной шины, фирма Philips выпускает на рынок семейство однокристальных МК структуры MCS-51, поддерживаю- щих аппаратно 12С. Другая известная фирма, имеющая право исполь- зовать наименование «12С» в своей продукции — Microchip, — также выпускает ряд однокристальных микроконтроллеров с описываемым интерфейсом. Существуют микроконтроллеры и других фирм, также аппаратно поддерживающие данный интерфейс. В этой книге мы не будем рас- сматривать подробно архитектуру микроконтроллеров типов MCS-51 и PIC. Особенности данных архитектур описаны в много- численной литературе [33—43], имеются материалы и необходимое бесплатное программное обеспечение в сети Интернет. Возможно, данная тема станет предметом последующих книг серии «просто и доступно». А в рамках этой книги мы сделаем блиц-обзор номенкла- туры МК, поддерживающих интерфейс 12С и расскажем об общих принципах работы с ним в МК архитектуры MCS-51. Подробности о работе с КС в микроконтроллерах архитектуры Р1С приведены в фирменной документации [38—40, 42]. Эта доку- ментация переведена на русский язык, и при необходимости ее мож- но получить в сети Интернет по адресу: http://www.microchip.ru. Фирма Microchip выпускает следующие микроконтроллеры архи- тектуры PIC, оснащенные интерфейсом КС: PIC14000, PIC16C62A, PIC16CR62, Р1С16С62В, PIC16C63, PIC16C63A, PIC16CR63, PIC16C64A, PIC16C64A, PIC16CR64, Р1С16С65А, Р1С16С65В, PIC16CR65, Р1С16С66, Р1С16С67, PIC16C717, Р1С16С72, PIC16C72A, PIC16CR72, Р1С16С73А, PIC16C73B, PIC16C73C, PIC16CR73C, PIC16C74A, PIC16C74B, PIC16C74C, PIC16CR74C, PIC16C76, PIC16C76A, P1C16CR76A, Р1С16С77, PIC16C77A, P1C16CR77A, PIC16C770, PIC16C771,
138 Микроконтроллеры с интерфейсом 12С PIC16C773, Р1С16С774, PIC16F872, PIC16F873, PIC16F874, PIC16F876, PIC16F877, PIC16C923, PIC16C924, PIC17C752, PIC17C756, PIC17C756A, PIC17C762, PIC17C766, PIC18C242, PIC18C442, PIC18C252, PIC18C452. Сведения о возможностях приведенных микроконтроллеров вы сможете получить непосредственно с сайта фирмы Microchip в Ин- тернете (http://www.microchip.com) или заглянув в документ [41]. Рассмотрим теперь (чуть более подробно) предложение фирмы Philips. Те читатели, кто хоть немного имели дело с микроконтролле- рами, знают, что архитектура MCS-51, предложенная Intel в начале 80-х годов XX века, до сих пор остается популярной и у профессио- нальных разработчиков, и у радиолюбителей. Микроконтроллеры на ее основе в мире выпускает множество фирм. Широка номенклатура МК по своим возможностям, по оснащенности периферийными уст- ройствами, по конструктивным исполнениям. Опубликовано боль- шое количество литературы (в том числе на русском языке), расска- зывающей о приемах работы с MCS-51, о программировании, отлад- ке программ и т. д. Если читатель имеет теоретические знания и практический опыт работы с данным типом МК, то он моментально разберется в работе интерфейса 12С. Но если о существовании таких микроконтроллеров читатель лишь наслышан или узнал о них только из этой книги, необходим начальный «ликбез». Чтобы чтение этой главы не стало бесполезным, рекомендуется вначале ознакомиться, например, с изданием [43] и лишь затем продолжать изучение этой книги. Вполне возможно, что читателя вообще не заинтересуют приемы работы с 12С на аппаратном уровне микроконтроллера. Если это так, можно перелистать несколько страниц и перейти к чтению последней — пятой — главы данной книги, где приводятся примеры практических конструкций. Вообще нужно отметить, что несложные практические конструкции, в которых нет необходимости использо- вать режим multi-master, вполне обойдутся без специализированного 12С аппаратного интерфейса. Интерфейс master-устройства, как мы увидим далее в практической части, можно без труда организовать и про!раммно. Но если все же читателю понадобятся более сложные шинные структуры, без изучения аппаратных интерфейсов, встроен- ных в МК, ему едва ли удастся обойтись.
Микроконтроллеры с интерфейсом 12С 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 Микроконтроллеры с интерфейсом 12С МК имеет, наряду со стандартным, два низкотютрсбляющих ре- жима: 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 битов и мультиплексиро- ванными аналоговыми входами; • встроенный порт ГС с возможностью выполнения функций 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 ... 4-125 С (максимальная частота 16 МГц); • корпуса PLCC68 (SOT188-2) и QFP80 (SOT318-2). На рис. 4.1 приведена блок-схема структуры данной серии мик- роконтроллеров. Выполнение портом прямой или альтернативной функции задается соответствующим регистром конфигурации внут- ри МК. CMSR0-CMSR5 RST EW СМТО, СМТ1 Р0 Р1 Р2 РЗ TxD RxD Р5 Р4 CT0I-CT3I 12 RT2 Го] альтернативная функция порта 0 [7] альтернативная функция порта 1 [~2~] альтернативная функция порта 2 О альтернативная функция порта 3 |~4~| альтернативная функция порта 4 |~5] альтернативная функция дополнительного порта (Р5) Рис. 4.1. Блок-схема структуры МК серии 8ХС552
142 Микроконтроллеры с интерфейсом 12С 8ХС65Х [36] Серия 8-разрядных однокристальных микроконтроллеров струк- туры MCS-51, изготовленных по прогрессивной технологии КМОП с ядром 80C5I. Выпускаются следующие разновидности МК этой серии: • 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 read/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). Тактовая частота Счетчики ТО XTAL2 XTAL1 прерывания Рис. 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;
Микроконтроллеры с интерфейсом i'C 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) — S1ADR (адрес 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) необходимо ус- тановить младший бит регистра S1 ADR (именуемый GC). Компаратор сравнивает полученный 7-разрядный slave-адрес с собственным slave-адресом, содержащимся в регистре S1ADR, а так- же идентифицирует общий вызов. Если обнаруживается совпадение, устанавливаются биты в регистре статуса и генерируется прерыва- ние. Регистр данных (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 в регистре S1CON.
148 Микроконтроллеры с интерфейсом 12С Внутренняя шина Рис, 4.3. Общая блок-схема интерфейса ГС в микроконтроллерах серии 8ХС552 S1ADR 7 6 5 4 3 2 1 0 X | X | X | X | X | X | X | GC Slave-адрес I Рис. 4.4, Регистр S1ADR S1DAT SD7 SD6 SD5 SD4 SD3 SD2 SD1 SD0 Рис. 4.5. Регистр S1DAT На рис. 4.6 показана схема фиксации данных в регистре S1DAT. Вместе с ячейкой АСК формируется 9-разрядный сдвиговый ре- гистр, бит АСК задается аппаратно без обращения к центральному процессору. Данные сдвигаются при положительных перепадах сип-
Микроконтроллеры с интерфейсом 12С 149 Рис. 4.6. Фиксация таимых в рс: негре S1DAT хронизирующих импульсов, бит АСК передается на шину в течение 9-го синхронизирующего импульса. Имеется также буфер BSD7. данные из которого сдвигаются по отрицательному перепаду синхро- импульса SCL. Когда центральный процессор записывает данные в S1DAT, бит 7 данных оказывается в ячейке BSD7 и он первым будет передан на шину. После прохождения 9 импульсов SCL данные в ре- гистре S1DAT не изменятся (если осуществлена их передача). Структура управляющего регистра приведена на рис. 4.7. S1 CON Pcb7|lNSi]~ST aJ~STO~[~ si i AA |~CRlJcR<7] Рис. 4.7. PcuicTp SICON Процессор может непосредственно адресовать этот 8-разрядпып регистр по операциям чтения и записи. Регистр имеет несколько би- тов с уникальными названиями, которые используются в следующих случаях: • бит STO очищается, когда возникает условие Stop; этот бит так- же очищается, когда F.NS -- 0; • бит ENS1 — бит разрешения работы 12С шипы; когда ENS1 = О, на линиях SDA и SCL присутствуют высокие уровни сигналов, линии не реагируют на внешние сигналы; интерфейс находится в неадресуемом slave-состоянии, выводы Р 1.6 и Р 1.7 можно ис- пользовать как обычные порты ввода-вывода. Когда ENS1 = 1. выходные уровни (port latches) портов Pl.6 и Pl.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-режиме, когда по шине ЕС необходимо передать усло- вие Stop. Когда условие Stop появилось на шине, бит STO бу- дет очищен. В случае работы в slave-режиме бит STO может быть использован для исправления ошибок. В этом случае ус- ловие Stop на шину передано не будет, но аппаратные средства порта 12С станут вести себя так, как будто условие Stop получе- но, и переключат порт в неадресуемое slave-состояние. Бит STO автоматически очистится. Когда STO = 0, условие Stop не передается; • бит SI устанавливается в случае генерации прерывания от порта ЕС. Если SI = 1 и если регистры ESI и ЕА (interrupt enable registers) — регистры прерываний (не рассматриваются нами в данной книге) — соответствующим образом сконфигурирова- ны, будет происходить генерация прерываний ст порта 12С; • бит АА — флаг подтверждения АСК. Если бит АА = 1, будет сгенерирован сигнал АСК в случае получения собственного slave-адреса, общего адреса запроса (general call address), при получении байта данных в master-режиме, при получении байта данных в slave-режиме. Если АА = О, АСК не будет сгенериро- ван; • биты CRO, CR1, CR2 -- биты задания тактовой частоты SCL в master-режиме. Состояние битов и значение генерируемой так-
Микроконтроллеры с интерфейсом 12С 151 товой частоты приведены в табл. 4.1. В режиме slave-порт 12С автоматически синхронизируется с любой тактовой частотой в пределах 100 кГц. Таблица 4.1 CR2 CR1 CRO Тактовая частота fosc, кГц 6 МГц 12 МГц 16 МГц 0 0 0 23 47 63 0 0 1 27 54 71 0 1 0 31 63 83 0 1 1 37 75 100 1 0 0 6,25 12,5 17 1 0 1 50 100 - 1 1 0 100 - 1 1 1 0,25 < 62,5 0,5 < 62,5 0,67 < 56 Структура регистра статуса приведена на рис. 4.8. 7 6 5 4 3 2 1 0 S1STA | SC4 | SC3 | SC2 | SC1 | SCO | 0 | 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-устрой- ства, желающего стать «хозяином» шины. 7 6 5 4 3 2 1 0 S1CON | CR2 |ENSl| STA | STO | SI | АА | CR1 | CR0 | I I 1 0 0 0 xl I Рис. 4.9. Инициализация режима master-transmitter Итак, как только шина становится свободной, порт ГС генериру- ет условие Start, после чего в регистре статуса S1STA устанавливает- ся код 08h, устанавливается флаг SI. Этот код может быть использо- ван для обработки прерывания. По прерыванию может быть загру- жен регистр S1DAT slave-адресом и битом направления данных R/W — в данном случае W. Бит SI в регистре S1CON должен быть сброшен, прежде чем будет возобновлена передача. Когда slave-ад- рес и бит направления были переданы, получен сигнал АСК, флаг S1 снова устанавливается. Регистр статуса в данном случае может со- держать варианты кодов: 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 slave-адресом с условием W. Slave Receiver. В этом режиме микроконтроллер становится slave-устройством и получает данные от master-устройства, распола- гающегося на шине. Инициализация режима показана на рис. 4.10. 7 6 5 4 3 2 1 0 S1CON | CR2 |eNSi| STA | STO | SI | АА | CR1 | CR0 | 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 не установлен, а также порт 1’С не активизирован. Обычно устанавливается в промежутках меж- ду генерацией других кодов. Код 00h указывает на ошибку, произошедшую во время обмена данными по шине 12С. Обычно ошибки связаны с генерацией усло- вий Start и Stop в непредусмотренное время, например, в течение пе- редачи байта slave-адреса, байта данных или условия АСК. Ошибка может быть также вызвана помехой на шине. При обнаружении ошибки устанавливается бит SI. Чтобы избавиться от состояния ошибки, нужно предпринять сле- дующие действия: установить бит STO и очистить бит SL Эти дейст- вия переведут порт в неадресуемый slave-режим и освободят линии SDA и SCL. Аппаратные средства порта могут отследить одновременную гене- рацию условия «повторный Start» от двух master-абонентов. Причем эти условия могут быть сгенерированы как в режимах master receiver, так и master transmitter, Данная ситуация показана на рис. 4.11. Другой master генерирует Повтор повторный "start" Рис. 4.11. Одновременная генерация условия «повторный START» двумя master-усгройствами Потеря арбитража отражается в регистре S1STA кодами 38h, 68h, BOh. Правила написания программного обеспечения также приводятся в документе [33]. Мы не будем останавливаться на них, поскольку не
Микроконтроллеры с интерфейсом 12С 155 задавались такой целью. Читатель, пожелавший работать с 17С интер- фейсом на уровне программирования микроконтроллеров со специа- лизированными портами, сделает это самостоятельно. Таблица 4.2 Состояние регистров Код Состояние шины S1STA PC S1DAT S1CON Дальнейшие действия STA STO SI АА 08h Передача уело- Загрузка slave + W X 0 0 X slave + W будет передан; вия Start бит АСК будет получен 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 неактивен 0 1 0 0 0 0 X X Аналогично предыдущей лучен S1DAT неактивен S1DAT неактивен 0 1 1 1 0 0 X X ситуации Данные из реги- Загрузка байта данных 0 0 0 X 28h стра S1DAT пере- S1DAT неактивен 1 0 0 X Аналогично предыдущей даны, АСК полу- S1 DAT неактивен 0 1 0 X ситуации чен S1DAT неактивен 1 1 0 X Данные из реги- Загрузка байта данных 0 0 0 X 30h стра S1 DAT пере- S1DAT неактивен 1 0 0 X Аналогично предыдущей даны, АСК не по- S1DAT неактивен 0 1 0 X ситуации лучен S1DAT неактивен 1 1 0 X Шина освобождается, вво- 38h Арбитраж slave + R/W байта дан- S1DAT неактивен S1DAT неактивен 0 1 0 0 0 0 X X дится неадресуемый ре- жим, условие Start будет ных передано, когда шина освободится
156 Микроконтроллеры с интерфейсом 12С Таблица 4.3 Состояние регистров Код Состояние шины S1STA 12С SWAT S1CON , .. .. .! STA STO SI I АА. 08h Передача усло- вия Start Загрузка slave ч R х 0 I 0 х I I I 10b Повторная пере- дача условия Start Загрузка slave + R Загрузка slave ч W I х ' 0 | 0 । х х I 0 i 0 i х 38h Арбитраж, бит S1DAT неактивен । 0 0 I 0 x ‘ АСК не получен S1 DAT неактивен 1 j 0 j 0 ; x ._ i И 40h I I slave -1- R пере- . ----- S1DAT неактивен ! i i 0 1 0 i 0 i 0 дан, АСК получен S1DAT неактивен 0 0 0 11 : i I Дальнейшие действия slave + R будет передан; бит АСК будет получен Аналогично slave + W будет передан Шина PC будет освобождена; порт введет slave-режим; условие Start будет передано, когда шина освободится Байт данных будет получен; бит АСК не будет возвращен, байт данных будет получен; бит АСК будет возвращен Повторное условие Start будет передано; условие Stop будет slave + R пере- S1DAT неактивен 1 0 0 X передано; флаг STO будет 48h дан, ACK не no- S1DAT неактивен 0 1 0 X сброшен; условие Stop, со- лучен S1DAT неактивен 1 I 0 X провождаемое условием Start, будет передано; флаг STO бу- дет сброшен 50h Байт данных при- нят, АСК возвра- Чтение байта данных Чтение байта данных 0 Г) 0 0 0 0 0 1 Байт данных будет получен, бит АСК не будет возвращен; байт данных будет получен; биг АСК будет возвращен Повторное условие Start будет передано; условие Stop будет Байт данных при- Чтение байта данных 1 0 0 X передано; флаг STO будет 58h нят, АСК не воз- Чтение байта данных 0 1 0 X сброшен; условие Stop, со- вращен Чтение байта данных 1 0 0 X провождаемое условием Start, будет передано; флаг STO бу- дет сброшен
Микроконтроллеры с интерфейсом 12С 157 Таблица 4.4 Код S1STA Состояние шины PC Состояние регистров АА ... .. , I Дальнейшие действия S1DAT STA S1CON STO SI slave + W принят, Байт данных будет получен; бит, 6011 S1DAT неактивен X 0 0 0 АСК не будет возвращен; байт дан- ACK возвращен S1DAT неактивен X 0 0 1 ных будет получен, АСК будет воз- вращен 1 68h Арбитраж slave + R/W master; slave S1DAT неактивен X 0 0 0 Аналогично предыдущей ситуации + W принят, ACK возвращен S1DAT неактивен X 0 0 1 । 70h general call ad- dress принят, S1DAT неактивен S1DAT неакгивен X X 0 0 0 0 0 1 Аналогично предыдущей ситуации I ACK возвращен 78h Арбитраж slave + R/W master; ge- S1DAT неактивен х 0 0 0 Аналогично предыдущей ситуации I neral call address принят, ACK воз- вращен S1DAT неактивен X 0 0 1 I 80h slave-адрес полу- чен, данные при- Чтение данных X 0 0 0 Аналогично предыдущей ситуации няты, АСК воз- Чтение данных X 0 0 1 вращен Переключение к не адресуемому slave-режиму; не опознается соб- slave-адрес полу- Чтение данных 0 0 0 0 ственный slave или общий адрес чен, данные при- Чтение данных 0 0 0 1 вызова; собственный slave-адрес няты, АСК не Чтение данных 0 0 0 0 будет распознан; общий вызов бу- возвращен Чтение данных 0 0 0 1 дет распознан, если бит 0 | S1ADR = 1; условие Start будет пе- редано, когда шина освободится
158 Микроконтроллеры с интерфейсом 12С Окончание таблицы 4.4 Код S1STA Состояние шины l2C Состояние регистров Дальнейшие действия S1DAT S1CON STA STO SI АА general call ad- dress принят, ACK возвращен Байт данных будет получен; бит, 90h Чтение данных Чтение данных X X 0 0 0 0 0 1 АСК не будет возвращен; байт дан- ных будет получен, АСК будет воз- вращен Переключение к не адресуемому slave-режиму; не опознается соб- general call ad- Чтение данных 0 0 0 0 ственный slave или общий адрес 98h dress принят, Чтение данных 0 0 0 1 вызова; собственный slave-адрес ACK не возвра- Чтение данных 1 0 0 0 будет распознан; общий вызов бу- щен Чтение данных 1 0 0 1 дет распознан, если бит 0 S1ADR = 1; условие Start будет пе- редано, когда шина освободится Условие Stop и S1DAT неактивен 0 0 0 0 AOh повторное уело- S1DAT неактивен 0 0 0 1 Аналогично предыдущей ситуации вие Start получе- S1DAT неактивен 1 0 0 0 НО S1DAT неактивен 1 0 0 1
Микроконтроллеры с интерфейсом 12С 159 Таблица 4.5 Код S1STA Состояние шины PC Состояние регистров АА Дальнейшие действия S1DAT S1CON STA STO SI A8h slave + R принят, Загрузка данных X 0 0 0 Последний байт данных будет пе- ACK возвращен Загрузка данных X 0 0 1 редан и бит АСК будет получен BOh Арбитраж slave + R/W master, slave Загрузка данных X 0 0 0 Аналогично предыдущей ситуации + R принят, ACK возвращен Загрузка данных X 0 0 1 B8h Байт данных из S1DAT передан, АСК возвращен Загрузка данных Загрузка данных X X 0 0 0 0 0 1 Аналогично предыдущей ситуации Переключение к не адресуемому slave-режиму; не опознается соб- Байт данных из S1DAT неактивен 0 0 0 0 ственный slave или общий адрес COh S1DAT передан, S1DAT неактивен 0 0 0 1 вызова; собственный slave-адрес АСК не возвра- S1DAT неактивен 1 0 0 0 будет распознан; общий вызов щен S1DAT неактивен 1 0 0 1 будет распознан, если бит 0 S1 ADR = 1; условие Start будет передано, когда шина освободит- ся Прошлый байт из S1DAT неактивен 0 0 0 0 C8h S1DAT передан S1DAT неактивен 0 0 0 1 Аналогично предыдущей ситуации (АА = 0); АСК S1 DAT неактивен 1 0 0 0 возвращен S1DAT неактивен 1 0 0 1
5. Практические конструкции В этой завершающей главе автор приводит несколько разрабо- танных им практических конструкций, доступных для повторения в домашних условиях. Необходимо обратить внимание читателя на то, что в составе конструкций используются как описанные в этой книге микросхемы, так и другие, которые остались за рамками книги. Для управления микросхемами по 12С применен отечественный микро- контроллер КР1878ВЕ1, приемы работы с которым описаны, напри- мер, в предыдущей книге серии «просто и доступно» [14]. Там же приведены рекомендации по изготовлению программатора. Все программы «прошивки», упоминаемые в этой книге, можно загрузить с сайта http://wwvv.remserv.ru (раздел «Программы»), Двухдиапазонный УКВ стереотюнер Идея этого тюнера зародилась, когда из печати уже вышла книга [14]. Нужно сразу отмстить, что в приведенной книге автор опубли- ковал две конструкции стереофонических УКВ-ЧМ тюнера, рассчи- танных на работу в западном 88... 108 МГц диапазоне частот. Появле- ние па отечественном рынке микросхемы КР174ХА51 (двухдиапа- зонный стереофонический декодер) стало толчком к раздумьям относительно возможности создания несложного двухдиапазонного приемника, оснащенного синтезатором частоты и электронным зна- косинтезирующим индикатором. Как оказалось, создать такой тюнер можно на основе микросхем ТЕА5710 и TSA6057. Чтобы не вдавать- ся в подробный рассказ о принципах стереовещания на УКВ, об ис- пользовании микросхем радиоприемников, синтезаторов частот, микроконтроллеров, автор рекомендует ознакомиться с книгой [14] или в крайнем случае разыскать документацию [44, 45]. Основные параметры микросхемы ТЕА5710 приводятся в табл. 5.1 (измерение проведено при условии f = 100 МГц, Af = = 22,5 кГц, fm=l кГц, Vp = 3B). Микросхема выпускается в корпусе SDIP24 (SOT234-1) с шагом выводов 1,75 мм, что допускает ее установку на печатную плату в от- верстия.
Практические конструкции 161 Таблица 5.1 Параметр технических условий Напряжение питания Символ Vp Мин. Норма Макс. Ед. изм. В 2,0 - 12 Ток потребления в режиме ЧМ 'р 7,3 9,0 11,2 мА Рабочая температура "^amb -15 - +60 "С мкВ Реальная чувствительность ЧпЗ 1,0 2,0 3,8 Общие гармонические искажения THD - 0,8 2,0 % Входная емкость Q - 3 - пФ Ток индикатора точной настройки в положе- 1 нии «настроено» bnd 2 3,5 6 мА Ток индикатора точной настройки в положе- нии «не настроено» 'indoff - 0 10 мкА Главная проблема, связанная с созданием двухдиапазонного тю- нера, кроется в недостаточном коэффициенте перекрытия диапазона элементами настройки (варикапами). Проще говоря, не хватает диа- пазона изменения их емкости для перестройки частоты от 63 до 108 МГц. Решая задачу электронного переключения диапазонов, ав- тор опробовал варианты переключения диапазонов как индуктивных элементов резонансных контуров, так и емкостных. Оба способа ока- зались работоспособными и имеющими право на существование. Од- нако вариант с переключением емкостных элементов несколько бо- лее прост по практической реализации, поэтому автор на нем и оста- новился. Способ переключения показан на рис. 5.1. Как видно из рисунка, в контур на основе не перестраиваемой индуктивности L включены две независимые параллельные ветки емкостей, образованных С1 и VD1, а также С2 и VD2. Причем ветка С2—VD2 управляется напря- жением настройки UHacip плавно, а ветка С1—VD1 имеет только два значения емкости: минимальное и максимальное. Переключение осу- ществляется транзистором VT1 при помощи напряжения Uncp, кото- рое может формировать либо микроконтроллер, либо другой источ- ник (в авторском варианте это сигнал с вывода 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, МЛТ. Катушки LI и L2 намотаны виток к витку на гладких каркасах диаметром 5 мм. Количество вит- ков: L1 — 4 витка, L2 - - 3 витка. Провод ПЭВ-2, ПЭТВ или анало- гичный диаметром 0,3...0,45 мм. Катушки имеют латунные подстро- ечники длиной 5...6 мм с резьбой М4. При сборке рекомендуется сначала установить только микросхе- мы D7, D8, D9. Включив питание, проверить наличие напряжения +12 В на плюсовом выводе конденсатора СИ, +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 Практические конструкции Рис. 5.3. Печатная плата
Практические конструкции 167 Рис. 5.4. Сборочный чертеж
168 Практические конструкции ским, светодиод HL2 должен сигнализировать об этом. Настройка аналоговой части закончена. Временный переменный резистор мож- но отпаять. Устанавливаем микросхемы D4, D5 и индикатор D6. Естествен- но, микроконтроллер должен быть к этому моменту «прошит» про- граммой. Его желательно установить на «панельку». Имена файлов Termo_0801.sav — для 8-символьного индикатора, termo_1601.sav — для 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. Печатная плата Рис. 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 градуса Цельсия. Если читателя устроит данный вариант, можно от- казаться от установки на лицевой панели кнопок SI...S4. Но пытли- вому читателю, желающему разработать прибор по своему вкусу (на- пример, управляемый термометр-термостат с памятью на несколько
172 Практические конструкции отсчетов температуры), рекомендуется установить кнопки и несколь- ко расширить возможности программного обеспечения. Регулятор громкости и тембра Основой этого регулятора служит оказавшаяся в распоряжении автора микросхема TDA8425 (рис. 5.Ю). Эта микросхема практиче- ски не отличается от описанной в главе 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 1мк х 25В С2 Рис. 5.10. Регулятор громкости и тембра. Схема электрическая принципиальная
174 Практические конструкции 42,5 97,5 Рис. 5.11. Печатная плата Рис. 5.12. Сборочный чертеж
Практические конструкции 175 Цифровое табло с интерфейсом 12С Буквенно-цифровые жидкокристаллические (ЖКИ) индикаторы типа DV-16100, широко используемые в конструкциях, описанной в этой и других книгах, к сожалению, имеют существенный недоста- ток — отсутствие последовательного интерфейса управления. Для управления данными индикаторами необходимо иметь 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 осуществ- ляется запись команды, по субадресу 0lh — запись символа в ви- деопамять) и выдача сигнала АСК при опознавании субадреса; • выдача сигнала NOACK в случае несовпадения субадресов и ожидание условия stop; • передача данных/команд с обязательной выдачей сигнала АСК; • в момент установки линии SCL в высокий уровень прием ин- формации может быть прерван заданием условия stop (линия SDA устанавливается в высокий уровень). В своем составе стандартный индикатор содержит регистр дан- ных (DR), регистр команд (IR), видеопамять (DDRAM), ОЗУ знако- генератора пользователя (CGRAM), счетчик адреса памяти (АС), флаг занятости индикатора. Интерфейс для внешнего управления со- держит 8 линий данных (DB7...DB0), сигнал «запись/чтение» (R/W), сигнал «команда/данные» (RS), строб (Е). Если RS = 0, данные ин- терпретируются как команда управления ЖКИ, если RS = 1, выво-
Практические конструкции 177 дится графический символ. Управление индикатором осуществляет- ся при помощи флагов, назначение которых показано в табл. 5.2. Таблица 5.2. Флаги управления Флаг Назначение I/D Смещение счетчика адреса («0» - уменьшение, «1» - увеличение) S Сдвиг содержимого экрана («0» - сдвиг не происходит, «1» - автоматический сдвиг после записи в DDRAM очередного кода в направлении, определяемом флагом I/D - «0» - вправо, «1» - влево) S/C Сдвиг содержимого экрана без изменения содержимого DDRAM («0» - сдвигается курсор, «1» - сдвигается экран) R/L Сдвиг экрана или курсора («0» - вправо, «1»- влево) D/L Разрядность шины данных («0» - 4 разряда, «1» - 8 разрядов) N Развертка изображения («0» - одна строка, «1» - две строки) F Размер матрицы символа («0» - 5x8, «1» - 5x10) D Включение/выключение («0» - изображение отсутствует, - включено) С Подчеркивание символов («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 I/D S Установка режима ввода 0 0 0 0 1 D С В Режим отображения символов 0 0 0 1 S/C R/L - - Направление сдвига экрана 0 0 1 DL N F - - Конфигурация дисплея | 0 1 АС5 АС4 АСЗ АС2 АС1 AC0 Адрес знакогенератора пользователя 1 АС6 АС5 АС4 АСЗ АС2 АС1 AC0 Адрес встроенного ОЗУ (однострочный режим от 00h до 4Fh; двухстрочный режим от ООП до 27h и от 40h до 67h)
178 Практические конструкции Рис. 5.14. Знакогенератор ЖКИ (русифицированный) Обращаю внимание читателя на то, что бит D/L в команде кон- фигурации может принимать любое значение, так как управление дисплеем осуществляется побайтово, внутренняя же связь контрол- лера с дисплеем организована посредством 4-разрядной шины (DB7...DB4). Формат сообщений представлен на рис. 5.15. Важное замечание: блоки DATA могут следовать один за другим, например, в случае передачи группы команд или в автоинкрементном режиме вывода символов. s 1 0 1 0 АЗ А2 А1 0 АСК О 0 0 0 0 0 °/. АСК АСК о Общий вызов Рис. 5.15. Формат данных, передаваемых по шине 12С для ЖКИ
Практические конструкции 179 Рабочая программа индикатора (ind_I2C.sav) прошивается в МК до установки на печатную плату. Рекомендуется устанавливать МК на контактную панельку, чтобы можно было обновлять программное обеспечение. Печатная плата изображена на рис. 5.16, сборочный чертеж — на рис. 5.17. 80 Рис. 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 и командой jmp zikl. Конфигурирование портов на ввод и на вывод осуществляется с помощью процедур kon_wr и kon_re. Осуществля- ется эта процедура очень просто — по адресу 18h в режиме автоин- ремента задаются соответсвующие функции выводов. Далее проис- ходит возврат в основную программу и продолжается ее выполнение. Протокол шины 12С разложен на элементарные функции, также реализованные с помощью процедур: — sta_mic — формирование условия start; — sto mic — формирование условия stop; — byte_m_w — вывод в порт байта (8 бит); — byte_m_r — чтение из порта байта; — ack_wr — выдача АСК; — noack_wr — выдача NO АС К при чтении. Оперируя этими элементарными функциями, можно составлять протоколы любой сложности. Важной процедурой является процедура вывода на индикатор- тую панель LCD. Поскольку несколько усложнен интерфейс сопря- жения (введен буферный регистр), вспомогательная процедура regist хнабивает» данные в регистр. Стробирование и направление «коман- да/данные» осуществляются процедурами fik_ir и fik_dr. Сопряже- те с разными типами индикаторов реализуется также предельно
182 Приложение просто: команда перевода курсора дисплея в 40-ю позицию подается либо после вывода 4-х символов, либо вообще не подается. Процедура dsat переводит двоичное число, получаемое от датчи- ка в десятичное, готовое в выводу на индикаторную панель. Все временные интервалы задаются таймером, конфигурируе- мым процедурой timer. ;--==-^===l====---= электронный термометр ======================== jmp start начальный пуск пор jmp start rti nop пор пор nop nop nop nop nop nop nop nop nop start: Idr #a,40h Idr #b, 68h Idr #c,18h Idr #d,OOh movl %c1,00011011b movl %d, 00000000b movl %c1,00000000b movl %c1,00000000b movl %c1,00000000b movl %c1,00000000b movl %a5,01100001b movl %a6,10101000b jsr timer movl %a5,00000000b movl %a6,00000011b push #c Idr #c,50h jsr kon_wr jsr sta_mic 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 сек Отарший байт интервального таймера ;младший байт интервального таймера ;конфигурация на запись ;условие STAR1 ; команда StAVE+-W» ;вывод в порт ; команда <-конфиг урированив” ;вывод в порт ;"автопреобразование" ;вывод в порт
Приложение 183 zikl: jsr sta_mic ;повторный START movl %с5,10010000b ;команда «SLAVE+W» jsr byte_m_w ;вывод в порт movl %c5, Oeeh ;команда »старт» jsr byte_m_w ; вывод в порт jsr stojnic ; условие STOP pop #c ; вход в бесконечный цикл вывода movl %a5,00000000b ;старший байт интервального таймера movl %a6,00000011b ;младший байт интервального таймера push ttc Idr He,50h jsr kon_wr конфигурация на запись 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 ttc Idr ttc, 58h ;сегмент чтения из порта jsr byte_m_r ;чтение старшего байта температуры mov %a0,%c5 ;пересылка в %а0 pop ttc jsr kon_wr конфигурация на запись jsr ack_wr ;выдача АСК jsr kon_re push He Idr ttc. 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 tic jmp zikl ;возврат к считыванию kon_wr: ;---------------------- процедуры --------- ;======= процедура конфигурации порта В на запись (write) push #с Id г #с,18h movl %с2,00011011b ;автоинкремент конфигурации порта В movl %с2, 11111111b ; тип вывода - выход movl %с2,11111100b включение р-канального транзистора (кроме битов 0 и 1) movl %с2,00000011b ;выключение нагрузочного резистора (кроме битов 0 и 1)
184 Приложение movl %c2, 00000000b запрещение прерывания от положительного фронта movl %c2, 00000000b pop #c rts запрещение прерывания от отрицательного фронта kon_re: : push #c 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 He rts Запрещение прерывания от отрицательного фронта timer: =— процедура таймера movl %d4,00010000b ;обращение к регистру конфигурации movl %d5,01001001b ;регистр конфигурации: коэффициент деления входной частоты 400 кГц - 1/4 ;пересчет по фронту ;размерность регистра интервала - 16 бит movl %d4,00000100b установка старшего байта интервала mov %d5,%a5 ;старший байт интервала movl %d4,00000000b ;установка младшего байта интервала mov %d5,%a6 ;младший байт интервала movl %d4,00000011b ;пуск таймера на счет wait rts ;возврат из процедуры таймера stajnic: ;======= формирование условия START ===== movl %d2,00000011b jsr timer movl %d2,00000010b jsr timer movl %d2,00000000b jsr timer rts stojnic: ;======= условие STOP ==== movl %d2,00000000b jsr timer movl %d2,00000010b jsr timer movl %d2,00000011b jsr timer rts byte_m_w: ;======= вывод в порт микросхемы ОДНОГО байта === movl %c3,09h ;установка счетчика цикла byte_00: movl %с2,00h shl %с5 adc %с2 mov %d2,%c2 jsr timer
Приложение 185 movl %С4,00000010b or %C2,%C4 mov %d2,%c2 jsr timer movl %c4,00000001b and %c2,%c4 mov %d2,%c2 jsr timer subl %c3,01h cmpl %c3,OOh jnz byte_00 ;пока не будет выведено 9 бит rts byte_m_r: ;чтение из порта микросхемы ОДНОГО байта ==== movl %c3,08h ;установка счетчика цикла movl %с5,OOh byte_01: shl %с5 movl %с2,00000001b mov %d2,%c2 jsr timer movl %c2,00000011b mov %d2,%c2 jsr timer mov %c2, %d2 movl %c4,00000001b and %c2,%c4 or %c5,%c2 movl %c2,00000001b mov %d2,%c2 jsr timer subl %c3,Olh cmpl %c3,00h jnz byte_01 ;пока не будет выведено 8 бит rts ack_wr: ;=====“= дек При чтении movl %d2,00000000b jsr timer movl %d2,00000010b jsr timer movl %d2,00000000b jsr timer rts noack_wr: =====-= NOACK при чтении movl %d2,00000001b jsr timer movl %d2,00000011b jsr timer movl %d2,00000001b jsr timer rts led: ;======= процедура вывода в LCD push ttc
186 Приложение lcd_OO: lcd_02: lcd_01: Idr #с,60h movl %c0,OOOOOO1Ob ;возврат в 1 позицию jsr regist jsr fik_ir movl %c0,00001 100b ;код включения дисплея jsr regist jsr fik_ir movl %cO,00111000b ; код разрядности и строчности jsr regist jsr fik_ir movl %a7,01111101b crop %a0,%a7 jnc lcd_00 movl %cO,20h jsr regist jsr fik_dr jmp lcd_01 movl %cO,2dh jsr regist jsr fik_dr movl %a7,01h cmp %a1,%a7 jz lcd_02 movl %a7,11111111b sub %a7,%a0 mov %a0,%a7 jmp lcd_01 movl %a7,11111111b sub %a7,%aO inc %a7 mov %a0,%a7 jsr dsat ;перевод из 2x в 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 jsr regist jsr fik_ir movl %c0,2ch ;для WM-0801 ;для WM-0801 ;для WM-0801 ;символ «,” jsr regist jsr fik_dr movl %a7,10000000b and %a1,%a7
Приложение 187 cmp %а1,%а7 ]z lcd~03 movl %c0,30h ;символ -0» jsr regist jsr fik_dr jmp lcd_04 lcd_03: movl %c0,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 ttc rts regist: ;======= процедура -набивки» регистра LCD mov %c5,%c0 movl %c3,08h reg_01: 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 %c4,%c2 swap %c4 mov %d2,%c4 subl %c3,01h cmpl %c3,00b jnz reg_01 rts dsat: ;======= процедура перевода чисел 2x в Юх mov %M, %a0 movl %b4,01100100b jsr count movl %b7,00110000b or %b5,%b7 mov %a2,%b5 movl %b4,00001010b jsr count or %b5, %b7
188 Приложение mcv %аЗ,%Ь5 movl %Ь4,01 п jsr count or %Ь5,%Ь7 mov %a4,%b5 rts count: процедура преобразования одного числа 2х в 10х movl %Ь5,00b соо_00: стр %Ы, %Ь4 ic cou_01 jz cou_0i addl %b5,Oln sub %b1,%b4 imp cou-00 rts fik_ir: ,======= фиксация в IR movl %d2,00000011b nop nop movl %d2,01000011b nop nop movl %d2,0000001 1b nop nop t ts ftk_dr: ;= —==== фиксация в OR movl М2, 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 12C-BUS from theory to practice. Wiley, ISBN 0-471-96268-6. 6. Голов Л. А. Общие положения и введение в логику работы шины ГС: Практические рекомендации. КТЦ-МК, 1997. 7. Торрес А. Введение в спецификацию ГС. Харьков, 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 12C 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. 80С51 family derivation 8ХС552/562 overview. Philips Semiconductors, 1997, Aug. 06. 34. 83C751/87C75 1, 80C51 8-bit microcontroller family 2k/64 OTP/ROM 12C, 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, Jul. 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. Программная реализация FC интерфейса (Master-режим) DS00554c. Microchip, http://www.microchip.ru. 39. Модуль SSP в режиме I2C интерфейса для микроконтроллеров PIC16C7X. DS30390e. Microchip, http://www.microchip.ru. 40. Модуль MSSP в режиме FC интерфейса для микроконтроллеров PIC16C87X. DS30292b. Microchip, http://www.microchip.ni. 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 thermoslst, Dallas semiconductors, 102299.