СОВРЕМЕННАЯ ЭЛЕКТРОНИКА №1/2015
ЭЛЕМЕНТЫ И КОМПОНЕНТЫ 38 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 1 2015 Современные 32-разрядные ARM-микроконтроллеры серии STM32: последовательный интерфейс I 2 С В статье приведено описание последовательного интерфейса I 2 С 32-разрядных ARM-микроконтроллеров серии STM32 от компании STMicroelectronics. Рассмотрены архитектура, состав и назначение регистров конфигурирования интерфейса, а также приведены примеры программ его использования. Олег Вальпа (г. Миасс, Челябинская обл.) Устройство 1 +5 В SCL SDA R1 4К7 R2 4К7 Устройство 2 Устройство N Шина адреса SDA Старший разряд MSB 1 2 8 9 СТАРТ условие СТОП условие Шина синхронизации SCL Бит подтверждения АСК В ВЕДЕНИЕ Интерфейс I 2 С, или IIC получил свою аббревиатуру от английских слов Inter- Integrated Circuit и представляет собой последовательную шину, состоящую из двух двунаправленных линий связи с названием SDA и SCL, как сокращение от слов Serial Data Address и Serial Clock. Он обеспечивает обмен данными меж- ду микроконтроллером и различны- ми периферийными устройствами, такими как АЦП, ЦАП, микросхемы памяти, другие микроконтроллеры и микросхемы. Схема подключения устройств по интерфейсу I 2 C показа- на на рисунке 1. Стандарт на интерфейс I 2 С был разработан фирмой Philips в начале 1980-х годов. Согласно этому стандар- ту, интерфейс имел 7-разрядный адрес. Он позволял обращаться к 127 устрой- ствам на скорости до 100 кбит/с. В даль- нейшем интерфейс получил своё раз- витие и стал 10-разрядным, позволяю- щим обращаться к 1023 устройствам на скорости до 400 кбит/с. Максимальное допустимое количество микросхем, подсоединённых к одной шине, огра- ничивается максимальной ёмкостью шины в 400 пФ. Версия стандарта 2.0, выпущенная в 1998 году, представила высокоскоростной режим работы со скоростью до 3,4 Мбит/с с понижен- ным энергопотреблением. Версия 2.1 2001 года включает в себя лишь незна- чительные доработки. О ПИСАНИЕ ИНТЕРФЕЙСА I 2 C Микроконтроллер STM32 [1] включа- ет в свой состав интерфейс I 2 С, кото- рый отличается своей развитостью. Он допускает несколько ведущих устройств на шине и поддерживает высокоскоростной режим. Кроме того, в микроконтроллере STM32 интерфейс I 2 C можно использовать для широкого спектра приложений, включая генера- цию и верификацию контрольной сум- мы. С ним также можно работать по протоколам SMBus (SystemManagement Bus) и PMBus (Power Management Bus). Большинство моделей STM32 включают в свой состав два интерфейса I 2 С с име- нами I2С1 и I2С2. Интерфейс может работать в одном из следующих четырёх режимов: ● Slave Transmitter (ведомый пере- датчик); ● Slave Receiver (ведомый приёмник); ● Master Transmitter (ведущий пере- датчик); ● Master Receiver (ведущий приёмник). По умолчанию интерфейс работа- ет в режиме «Ведомый» и автоматиче- ски переключается на «Ведущий» после генерирования старт-условия. Пере- ключение с «Ведущего» на «Ведомый» происходит при потере арбитража или после генерирования стоп-условия, что позволяет работать нескольким «Веду- щим» микроконтроллерам в одной системе поочередно. В режиме «Ведущий» I 2 C иницииру- ет обмен данными и генерирует так- товый сигнал. Передаче последова- тельных данных всегда предшеству- ет старт-условие, а завершается обмен всегда стоп-условием. Оба этих условия генерируются в режиме «Ведущий» про- граммно. В режиме «Ведомый» I 2 C способен распознать свой собственный адрес (7 или 10 бит) и адрес общего вызова. Определение наличия адреса общего вызова можно включить или отклю- чить программно. Адрес и данные передаются 8-бит- ными посылками, старшим битом впе- рёд. Первый байт, следующий за старт- условием, содержит адрес (один байт в 7-битном режиме и два байта в 10-бит- ном режиме). Адрес всегда передаётся в режиме «Ведущий». Рис. 1. Схема подключения устройств по интерфейсу I 2 C Рис. 2. Временна ′ я диаграмма одной посылки интерфейса I 2 C
RkJQdWJsaXNoZXIy MTQ4NjUy