Шапка

15.8 Внешняя периферия для микроконтроллеров

Инженер приобретает опыт в реальном мире, где требуется невообразимое число и разнообразие видов измерений и методов управления. Программируемый контроллер - полезная вещь, а число периферийных блоков в нём позволяет справиться со множеством задач. Но мир гораздо больше. Когда говорят о движении по дороге, речь может идти о покрышке, колесе или ином специализированном устройстве, которого нет в микроконтроллере.

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

Самыми распространёнными периферийными компонентами для общения с реальным миром являются ЦАПы и АЦП. Если это всё, что требуется, обратитесь к табл. 13.2 , 13.3 , 13.11 ( ЦАПы ) или 13.5 , 13.6 , 13.9 ( АЦП ). В таблицах указывается интерфейс управления - SPI, I2C и др.

При разработке устройства с микроконтроллером приходится встречаться с толпой дьяволов, «прячущихся в деталях». Можно было бы потратить несколько страниц на описание методов организации диалога между этими периферийными устройствами и µC. Вместо этого предлагается аннотированная инструкция в виде трёх плакатов ( рис. 15.20 , 15.21 , 15.22 ), снабжённых номерами для сопровождающих пояснений. Руководство дополнено ссылками на соответствующий материал книги и каталожными обозначениями конкретных компонентов. Руководство пришлось разделить, потому что примеров и вариантов оказалось слишком много. Среди них есть устройства, допускающие прямое подключение к µC ( рис. 15.20 ), компоненты с SPI шиной или её близкими аналогами ( рис. 15.21 ) и ИМС с интерфейсом I2C ( рис. 15.22 ). Жизнь программиста существенно упрощается, если выбранный микроконтроллер уже имеет нужный интерфейс, см., например, рис. 10.86 .

15.8.1 Периферийные устройства с прямым подключением

На рис. 15.20 показан микроконтроллер, весь увешанный компонентами, которые можно подключить к стандартным периферийным блокам µC: портам ввода-вывода, последовательным каналам ( UART, USB, Ethernet ), АЦП и ЦАПам, выходам ШИМ и т.п. Здесь же указаны такие важные компоненты, как схемы управления питанием, сторожевые таймеры, внешние генераторы. Некоторые пояснения, точные обозначения и ссылки на материал в других частях книги даётся в текстовых фрагментах под соответствующими номерами.

Рис. 15.20   Коллекция внешних устройств, которые можно подключить прямо к контроллеру с развитой периферийной поддержкой. Некоторые из компонентов предполагают наличие в µC специализированных интерфейсов. Номера ( 1...29 ) возле экспонатов указывают номер абзаца в §15.8.1.A с пояснениями

15.8.1.A Пояснения для плаката на рис. 15.20

1. Переключатель питания
Если в системе имеются два источника напряжения, ICL7673 с двумя p-канальными МОП ключами может работать «идеальным диодом», автоматически передавая на выход более высокий потенциал. Аналогичные устройства с поддержкой перезаряжаемых батарей описываются в ##§X9.2.
2. Супервизор питания, ИМС сброса, сторожевой таймер
Детектор просадки питания не позволяет µC исполнять программу, удерживая сигнал сброса в активном состоянии, если уровень питания ниже допустимого. См. §10.8.1.B и табл. 10.6 ( стр. 756 ). Супервизоров питания выпускается какое-то невероятное количество. Рекомендуется обратить внимание на ADM705 и TPS3306 ( со сторожевым таймером внутри ) и на ADM691 со встроенным переключателем для батарейного питания.
3. Генераторы
Внутренние - §15.2.1.E , §15.9.2 , внешние с примерами и предупреждениями - §7.1.6 .
4. Клавиатурные матрицы
Рис. 15.8 .
5. Панельные индикаторы
LED, LCD, VFD. §10.6.2 , §12.5.3 , ##§14.6.
6. Внешние линии портов
Линии ввода-вывода требуют защиты входов µC от ESD с внешними элементами, допускающими замену пользователем. §12.1.5 .
7. Светодиодные индикаторы
§12.4 , §12.4.5.A , §12.5.1 .
8. Аналоговые пороговые элементы
§12.1.7 , §12.3 , табл. 12.2 ( стр. 813 ).
9. ЦАПы
§13.2 , ##§14.6.2, табл. 13.2 ( стр. 893 ), 13.3 ( стр. 894 ). LTC2757 - точный 18-разрядный параллельный преобразователь.

10. Ключи и кнопки
§12.1.4 .
11. Приёмопередатчики IrDA
HSDI-3602.
12. Мощные МОП ключи
§3.5 , §12.4 , §15.6 , табл. 3.4 ( стр. 189 - 191 ). Драйверы мощных транзисторов, преобразователи логических уровней в потенциал 0...+12 V на затворе - §3.5.3 , рис. 3.97 , табл. 3.8 ( стр. 218 ). Классическое семейство TC442x. ШИМ - §15.6.1.D , ##§X9.5.
13. 8-разрядные параллельные регистры с последовательным выходом
Внутриплатные варианты ( элемент ’165 ) - рис. 12.40 . 74HC165 стОит $0.35, что гораздо ниже, чем цена расширителей портов под шину I2C - $2.30.
14. 8-разрядные параллельные регистры с последовательным вводом
§12.4 , рис. 12.40 , табл. 12.3 . Типичный представитель - элемент ’565, например 74HC595 ( $0.32 ). Есть также ’594 с двойным буферированием и TPIC6C595 с мощным буфером.
15. Наборы мощных МОП или биполярных транзисторов с логическими уровнями
§12.4 , табл. 3.4a ( стр. 188 ). Типичные представители - ULN2003 ( 7 каналов, $0.33 ), ULN2803, SN75468, TPL7407, MC1413, ULN2068, TD62783.
16. Датчики освещённости
Рис. 12.81 . TSL230 выдаёт частоту, пропорциональную интенсивности света, позволяя легко и точно измерить освещённость в диапазоне шести порядков.
17. Оптические изоляторы
§12.7 , рис. 12.85 - 12.88E . Типичные представители H11L1, HCPL-2201. Микросхемы волоконно-оптической связи - §12.8 , рис. 12.98 .
18. Преобразователи уровней для последовательных интерфейсов
RS-232 ( ±7V ) - §12.10.4 . Классические драйверы DS14C88 и DS14C89 с двуполярным питанием. С однополярным питанием MAX232 ( +5V , $0.90 ), MAX3232E ( от +3.3 до +5V , $3 ). RS-485 - §12.10.3.A , ##§14.7.8. LTC1485.
19. Силовые ключи для нагрузки переменного тока
Изолированные твердотельные реле ( SSR ), оптосимисторы и оптотиристоры. §12.7 , §15.4 , рис. 12.91 - 12.93 . Доступны в виде слаботочных ИМС ( MOC3043, $0.80 ) и в виде модулей с винтовым креплением.
20. Ethernet
##§14.7.16, рис. 12.124 . Микросхемы, обеспечивающие поддержку протокола ( Silicon Labs CP2201, $4.50 в партии 100 шт. ) нуждаются во внешнем трансформаторе ( Pulse PE-36023 ) и розетке RJ-45. Есть комбинации из RJ-45 со встроенными трансформаторами и светодиодами ( Pulse J00-0065NL, $4.75 ).
21. Датчики переменного напряжения
Полезны для наблюдения за реле, предохранителями, наличием переменного напряжения. §12.7.7 , рис. 12.94A [* и 15.4 ] . MOC256.
22. USB
Требует наличия аппаратной поддержки в µC. ##§14.7.13, §15.9.2 , табл. 12.5 , рис. 10.86 . Хосты и хабы должны иметь супервизоры питания с ограничением тока на 500 mA ( AP2156 ).
23. Изолированный передатчик USB
ADuM4160.
24. Контроллеры управления светом DMX512
5-контактный разъём XLR, 1200 m, 250 kBaud ( требует наличия UART ), вентиль «ИЛИ» для символа-разделителя «MAB», кабель с волновым сопротивлением 120 Ω , изоляторы и приёмо-передатчики для RS-485 ( MAX1480, MAX3480B, §12.10.3 ). DMX512 постепенно вытесняется интерфейсом DALI.
25. SPI
Последовательный интерфейс для связи с внешними периферийными устройствами. Под этим названием прячется целый выводок заметно отличающихся вариантов последовательной шины. Читайте справочные данные очень внимательно . SPI легко реализуется как программное переключение состояния индивидуальных линий, и в этом смысле речь скорее идёт о методе передачи данных, чем о шине со множеством абонентов. ##§14.7.1, §15.8.2 .
26. I2C
Мультимастерная последовательная шина. Две линии с открытым коллектором, внешними подтяжками и подключением по «ПРОВОДНОМУ_И». Максимальная ёмкость линии 400 pF . В отличие от SPI, I2C хорошо документирована, а её использование контролируется 40 . ##§14.7.2, §15.8.3 .
27. CAN
Двухпроводная дифференциальная двунаправленная мультимастерная шина. ##§14.7.15. Требует специальных шинных приёмо-передатчиков, например AMIS-42673, AMIS-41683. Если в µC аппаратной поддержки нет, можно взять внешнюю интерфейсную ИС, например MCP2515.
28. Шина «1-wire»
Однопроводная шина для двунаправленной передачи данных и питания по одному проводу. ##§14.7.3. Предложена Dallas Semiconductor ( сейчас MAXIM ). Имеется преобразователь для UART - DS2480B и для USB - DS9490.
28a. Шина «1-wire»
Простая альтернатива для общения с «1-wire»-устройством - линия ввода-вывода и подтягивающий резистор.
29. Мощные ключи
§12.4.4 , табл. 12.5 . Примеры: BTS432, IPS6031 ( 60 V, 550 A ).

15.8.2 Периферия с шиной SPI

Информационный плакат 15.21 даёт некоторое представление о периферии, обменивающейся данными по простой 3-проводной шине SPI с архитектурой ведущий-ведомый 41 . Шина SPI ( ##§14.7.1 ) обычно имеет три линии: тактовый сигнал ( «SCLK» ), входные данные ( «SDI» ) и выходные данные ( «SDO» ), но, кроме того, каждому ведомому устройству требуется линия выбора кристалла ( «/CS» ). Иногда она имеет другие имена: «загрузка» ( «LD» ), «разрешение» ( «EN» ) и т.д. Независимо от названия этот сигнал переносит содержимое входного сдвигового регистра во внутренний регистр данных, когда «/CS» переходит в неактивное ( ВЫСОКОЕ ) состояние. Можно отвести каждому ведомому по отдельной линии порта ввода-вывода, а можно поставить демультиплексор ’138 ( §10.3.3.D ), например 74LVC138. Некоторым периферийным микросхемам может быть мало одной индивидуальной линии, и придётся заводить соединение для сброса, прерывания и т.п. вещей.

Названия линий шины несколько непоследовательны и способны сбить с толку. Например, входная линия µC ( «SDI» ) должна подключаться к выходной линии периферии ( «DO» ). Аналогично, «SDO» соединяется с «DI» ведомого. Правильные наименования, не сбивающие с толку, - «MISO» и «MOSI» ( ##§14.7.1 ), но большая часть справочных данных такие имена не использует.

Ранее утверждалось ( ##§14.7.1 ), что SPI – «стандарт», который плохо стандартизован. Например, некоторые периферийные устройства могут иметь двунаправленную линию данных. Ведущему также придётся переключать направление собственного вывода данных, после передачи команды 42 [* и отказаться заодно от аппаратной поддержки SPI, ибо штатная аппаратура двунаправленности не предусматривает ] .

Рис. 15.21   Коллекция периферийных устройств, с шиной SPI. Номера ( 30...44 ) возле экспонатов указывают номера абзацев с пояснениями в §15.8.2.A

15.8.2.A Пояснения для информационного плаката на рис. 15.21

30. Сенсорный экран
Координатное устройство ввода, чувствительное к нажатию. §13.11.2 , рис. 13.73 . AD7873.
31. Последовательная память данных ( EEPROM )
##§14.4.5.B. 8-выводной корпус. 25LC080A, AT25080, M24C02 ( 256×8 , $0.09 в катушке на 2500шт. )
32. Акселерометры
2-, 3-осевые микромашинные. ADXL345, MMA7455L.
33. Карты памяти
«Защищённая цифровая»: SD , miniSD, microSD 43 . ##§14.4.5.C. Такие карты могут общаться через обычный SPI интерфейс - всё, что нужно, - гнездо для карты, дополнительные компоненты не требуются. miniSD, microSD имеют по 10 выводов. Контакт 1 играет роль «выбора кристалла» ( «CS» ) и признака «наличия карты» ( «CD» ): внутри карты есть подтяжка 50 kΩ , которая позволяет обнаружить появление в гнезде нового устройства. Обмен в режиме SPI начинается, когда ведущий подаёт на этот вывод НИЗКИЙ уровень.
34. Модули «SparkFun»
Широкая номенклатура модулей самого разного назначения под монтаж в отверстия. В списке можно найти акселерометры ( ADXL335 ), гироскопы ( LPY503A ), магнитометры ( MAG3110, HMC5883 ), дисплеи и т.п. См. сайт adafruit.com.
35. Цифровые потенциометры ( DCP, EEPOT )
Точность отношения 1% , но допуск номинала всего 20% , низкое рабочее напряжение. §3.4.3.E [* см. также §X1.2.8 ] . MAX5481 ( 10 kΩ, 1024 уровня, $2.60 ).
36. Цифровые резисторы
Точность номинала 1% , рабочее напряжение ±16 V . См. раздел цифровых резисторов в Части X1 [* §X1.2.8 ] . AD5292.
37. АЦП
§13.11 , ##§14.6.2, ##§14.7, табл. 13.6 , 13.12 , рис. 13.74 . LTC2412, AD7927, AD7734.
38. Цифровые конденсаторы
Разные номиналы и число уровней. См. раздел цифровых резисторов в Части X1 [* §X1.2.8 ] . NCD2400M, кварцевые FLEcap MAX1474.
39. Счётчики электроэнергии
§13.11.1 . ADE7753, ADE7769 ( требует цифрового изолятора ADuM3260 ).
40. МС прямого цифрового синтеза частоты
§7.1.8 , §7.1.9.C , §13.13.6 , рис. 6.8 . AD9954 44 .
41. Мост SPI-I2C
##§14.7.2, §15.8.3 . CP2120, MCP2515, SC18IS600.
42. Индуктивные датчики
Табл. 13.12 . LDC1000 - первый детектор индуктивности и потерь в резонансных LC контурах. Рабочая частота 5 kHz...5 MHz .
43. Переходники на промышленную токовую петлю 4...20 mA
##§14.7.8, табл. ##14.3. DAC161S997 использует 16-разрядный ЦАП для задания точного токового сигнала, передающего результат измерения в промышленном оборудовании.
44. Цифровой канал для термопар
MAX31855 имеет в своём составе схему компенсации холодного спая для семи типов термопар и обеспечивает разрешение 0.25°C в диапазоне от –270 до +1372°C . Можно сравнить с микросхемой CS5532 ( Cirrus ), оптимизированной для термопар, но не имеющей схемы компенсации ( рис. 13.67 ).

15.8.3 Периферийные устройства с шиной I2C

Шина I2C ( иногда обозначается как «IIC» ) описывалась в ##§14.7.2, где были детально расписаны её преимущества и недостатки. I2C - полудуплексная шина с несколькими ведущими, ориентированная на пакетную передачу ( I2C - сокращение для «inter-integrated circuit interface» ). Механизм адресации и передачи данных хорошо описан 45 . По сравнению с SPI, требующей 3 провода и индивидуальные линии выбора кристалла, I2C – «честная» 2-проводная шина. Обмен данными происходит следующим образом. Ведущий передаёт 7-разрядный адрес и бит направления передачи. Выбранный ведомый отвечает битом подтверждения, после чего данные передаются в заявленном направлении. Пакет обрамляется «стартовым» и «стоповым» символами.

I2C сложнее, чем SPI, и требует, чтобы все устройства, подключённые к шине, имели уникальные 7-разрядные адреса. Такая организация хорошо подходит периферии с большим числом внутренних регистров ( номер регистра можно передавать в качестве части данных пакета ), но полудуплексная организация вынуждает иметь служебный заголовок в каждом пакете, что плохо подходит для быстрой и/или длительной передачи данных. В общем случае выбор делается производителем периферии, а большая часть микроконтроллеров имеет поддержку и SPI, и I2C 46 .

Рис. 15.22   Коллекция периферийных устройств для µC с шиной I2C. Номера ( 45...60 ) возле экспонатов указывают номера абзацев с пояснениями в §15.8.3.A

15.8.3.A Пояснения к плакату на рис. 15.22

45. «Расширители портов»
Могут иметь линии прерывания. 8 разрядов - STMPE801, 16 разрядов - TCA6416, 24 разряда - STMPE2401.
46. Интеллектуальные драйверы светодиодов
Плавное изменение яркости, подсветка, учёт уровня внешней засветки: ADP8860, ADP5501, ADP5520 ( со встроенным контроллером клавиатуры 4×4 ).
47. Часы реального времени ( Real-time clock RTC )
Выбор широк: NXP PCA8565 ( 0.65 μA при напряжении от 1.8 до 3.3 V , внешний кристалл 32768 Hz , выход прерывания ), PCF2129 ( содержит кварц, переключаемый интерфейс SPI/I2C, возможность ставить отметку времени внешнего события без участия µC ), PCF8563 ( NXP ) и S-3590A ( Seiko ) - популярные недорогие компоненты ( меньше $1 ).
48. Синтезаторы частоты
§13.13 . FS714x ( ON-Semi ), Si5338 ( Silicon Labs ) до 710MHz , четыре выхода LVDS с отдельными выводами питания.
49. Акселерометры и составные устройства
MMA7660FC, $0.68, MMA7455L, MPL115A2 ( давление, температура ), инерциальный модуль с L3GD20+LSM303+BMP180 ( 10-DOF, $30 ). Многие каталожные обозначения AdaFruit и SparkFun повторяют обозначения используемых в них датчиков, доступных отдельно, но готовый модуль упрощает общение с этими по большей части мелкими поверхностными компонентами.
50. EEPROM
##§14.4.5.B. 24LC256 ( 32k×8, 2.5–5.5V , $0.76 ), 24AA256 ( 1.8 V ).
51. Измерительные системы
AD7294 ( 12 разрядов, 6 входов, температура, ток, 4 выхода, $14, рис. ##14.41 ), AD7730 ( предназначена для весов и тензомостов, рис. 13.75 ).
52. Микросхемы управления шаговыми двигателями
AMIS-30624 ( ON-Semi, встроенная память положения, таблица для 16 микрошагов, плавное изменение скорости, два мостовых драйвера, 29 V@800 mA max ).
53. Контроллеры сенсорных экранов
STMPE811 ( ST, $1.47 ).
54. Цифровое видео
##§14.6.2, ##Приложение_I. NTSC, PAL, S-video.TVP5150 ( TI, 8 разрядов, $4 ), TVP5147 ( 10 разрядов, сдвоенный, 30 Msps , $5 ).
55. Видеогенератор
Видеосигнал из потока битов. ##§14.6.2, рис. ##14.36. CS4954 ( Cirrus Logic ), ADV7390-93 ( Analog Devices, HD ).
56. Двуполярный ключевой источник
§9.6 . LT3582 ( Linear Technology, позволяет устанавливать напряжение с шагом 25 mV в диапазоне ±12 V , показаны не все необходимые компоненты ).
57. Мост I2C-SPI
##§14.7 , §15.8.2 . SC18IS602B ( NXP, четыре выхода «/CS» ).
58. Емкостной сенсор
AD7147 ( Analog Devices, 13 входных линий, чувствительность 1 fF ). STMPE321 ( 3 линии, $1.30 ).
59. Контроллеры осветительных светодиодов
ADP1653 ( повышающий преобразователь, программируемый ток постоянный до 200 mA или импульсный до 500 mA ).
60. Прецизионный измеритель ёмкости
Табл. 13.12 . AD7745 ( Analog Devices, 24 разряда, диапазон ±8pF , разрешение 4 aF ) предназначена для прецизионных измерителей положения. AD7746 - двухканальный вариант.

15.8.4 Некоторые важные аппаратные ограничения

Устройства, включающие микроконтроллеры, могут иметь неочевидные временнЫе и схемные ограничения, о которых надо знать. Вот некоторые из них. Ссылки указывают на поясняющий материал книги.

15.8.4.A Низкие напряжения питания

Вычислительные устройства продолжают сокращаться в размерах с соответствующим снижением напряжения питания. Подобно старшим собратьям - микропроцессорам для настольных систем, микроконтроллеры склонны выдавать на шины питания резкие скачки тока. Переключение из режима ожидания в состояние максимального потребления может измеряться наносекундами. Преобразователи питания должны иметь низкий выходной импеданс и хорошую переходную характеристику. Не стесняйтесь ставить на плату развязочные конденсаторы в SMT корпусах, см. ##§X9.3.

15.8.4.B Преобразование логических уровней

В общем случае встраиваемая система имеет в своём составе несколько частей, часто с разными напряжениями питания и несовместимыми уровнями логики, см. §12.1.3 [* и схему генератора для наручных часов на стр. 448 ( §7.1.6.D ) ] .

15.8.4.C Особые требования к тактированию

Некоторые сложные периферийные элементы требуют проявлять особую заботу об источниках тактирования. В §15.9.2 описывается производительная многоканальная измерительная система, которая вынуждает проявлять особый подход к синхронизации при работе со среднескоростным микроконтроллером.

15.8.4.D Переключение между двумя источниками питания: батареи и сеть

Портативные приборы, которые работают от батарей, имеют обычно устройство подзарядки. Требуется обеспечить гладкое переключение источников напряжения, корректный режим зарядки, защиту и т.п., см. ##§X9.2.

15.8.4.E Интеллектуальный сброс

Настольный телефон одного из авторов зависал (!), если клавиши нажимались слишком слабо или слишком быстро. Перезагрузку приходилось проводить, вынимая источник из розетки. Проблема крылась в плохо продуманной конструкции ( имелось три экземпляра этой модели, и все они вели себя одинаково ), которую легко вылечил бы сторожевой таймер или детектор просадки питания. Ситуация усложняется, когда источников питания несколько. С ними, кстати, появляется ещё одна проблема - правильная последовательность включения и выключения, см. §10.8.1.B .

39 Octopart - отличная поисковая система для компонентов показывает наличие и цену у разных дистрибьюторов. На сайте имеются справочные данные на большую часть номенклатуры. Очень полезны сведения о статусе детали. Если она снята с производства, поисковик сможет отыскать остатки при наличии ( и документацию ) или прямую замену другого производителя.
Одно предупреждение . В момент написания книги Octopart показывал только компоненты на складах дистрибьюторов и не включал в выдачу прямые поставки с фабрик. Если Octopart не показывает компонент, это не значит, что его нельзя купить. Иногда источником может служить сама фабрика, и даже в том случае, когда производитель торгует через дистрибьюторов. Чаще всего покупать прямо у производителя проще, даже если речь идёт о малых партиях. <-

40 The I2C-Bus Specification, Version 2.1, January 2000 (NXP Semiconductors). <-

41 Очень информативна техническая заметка Analog Devices AN-877, описывающая использование SPI шины со скоростными преобразователями фирмы. <-

42 И, естественно, эти данные появляются на выводе «MOSI» других устройств на шине. Это безопасно, потому что вывод выбора кристалла в запрещающем состоянии, но всё равно неприятно. <-

43 SanDisk SD Card Product Family, OEM Product Manual, Table 3-2, and Physical Layer Simplified Specification, Version 2.00, Chapter 7. <-

44 Analog Devices - основной производитель микросхем прямого цифрового синтеза. <-

45 В справочных данных на периферию I2C можно найти следующее объявление: «I2C is a trademark of Philips Corp. Purchase of I2C components from [manufacturer] conveys a license under the Philips I2C Patent Rights to use these components in an I2C system, provided that the system conforms to the I2C Standard Specification as defined by Philips». «I2C - торговая марка Philips. Покупка компонентов [производитель] означает согласие с лицензионными условиями патента фирмы Philips на использование таких компонентов, требующих соблюдения спецификации стандарта I2C описанного Philips». <-

46 Если в контроллере нет аппаратной поддержки I2C, можно задействовать мост SPI-I2C ( рис. 15.21 ), которым можно управлять или через SPI модуль микроконтроллера ( если таковой имеется ), или эмулируя его программно на обычных линиях ввода-вывода. За всеми временами шины I2C и правильной установкой направления передачи проследит мост. <-

Previous part:

Next part: