15.8 Внешняя периферия для микроконтроллеров
==1078
Инженер приобретает опыт в реальном мире, где требуется невообразимое число и разнообразие видов измерений и методов управления. Программируемый контроллер - полезная вещь, а число периферийных блоков в нём позволяет справиться со множеством задач. Но мир гораздо больше. Когда говорят о движении по дороге, речь может идти о покрышке, колесе или ином специализированном устройстве, которого нет в микроконтроллере.
В этой главе приводятся три информационных плаката с шестьюдесятью примерами специализированных периферийных устройств, включающие, в том числе, и полные каталожные наименования. Можно залезть на сайт Octopart или ещё куда-нибудь 39 и загрузить полные справочные данные, дополнительные примеры, найти другие компоненты аналогичного назначения.
==1079
Самыми распространёнными периферийными компонентами для общения с реальным миром являются ЦАПы и АЦП. Если это всё, что требуется, обратитесь к табл. 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 со встроенным переключателем для батарейного питания.
==1080
==1081
- 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 .
==1082
- 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 .
==1083
==1084
- 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 ).
==1085
==1086
- 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 .
==1086
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 и правильной установкой направления передачи проследит мост. <-