- •Микроконтроллеры msp430 Введение
- •1. Центральный процессор msp430
- •1.1. Адресное пространство микроконтроллеров msp430f1xx
- •1.2. Регистровый файл
- •1.3. Байтовая и словная формы инструкций.
- •1.4. Режимы адресации
- •1.4.1 Регистровая адресация
- •1.4.2. Индексная адресация
- •1.4.3 Символьная адресация
- •1.4.4 Абсолютная адресация
- •1.4.5. Косвенная адресация
- •1.4.6. Косвенная адресация с автоинкрементом
- •1.4.7 Непосредственная адресация
- •2. Система команд msp микроконтроллеров
- •2.1. Двухадресные команды
- •2.2 Одноадресные команды
- •2.3 Команды переходов
- •2.4. Эмулируемые команды
- •3. Периферийные устройства микроконтроллеров msp430f1xx
- •3.1 Внешние выводы микроконтроллера msp430f149
- •3.2 Система прерываний
- •3.3 Система тактирования
- •3.4 Сторожевой таймер
- •3.5 Аппаратный умножитель
- •3.6 Порты ввода/вывода
- •3.7 Таймер a3
- •3.8 Таймер b7
- •3.9 Интерфейс usart
- •3.9.1 Режим uart
- •3.9.1.1 Передача данных
- •3.9.1.2 Прием данных
- •3.9.1.3 Поддержка коммуникации в многопроцессорных системах
- •3.9.1.4 Обнаружение стартового бита при приеме
- •3.9.1.5 Скорость передачи
- •3.9.1.6 Регистры usart
- •3.9.2 Режим spi
- •3.9.3 Режим i2c
- •3.9.3.1 Общие сведения о шине i2c
- •3.9.3.2 Режимы работы usart в режиме i2c
- •3.9.3.3 Арбитраж
- •3.9.3.4 Тактирование i2c модуля
- •3.9.3.4 Инициализация модуля i2c
- •3.9.3.5 Регистры модуля usart в режиме i2c
- •3.10 Аналоговый компаратор
- •3.11 Аналого-цифровой преобразователь adc12
- •3.12 Flash контроллер
- •3.12.1 Стирание Flash памяти
- •3.12.2 Запись Flash памяти
- •3.12.3 Регистры Flash контроллера
- •3.13 Цифро-аналоговый преобразователь
- •Контроллер dma
3.9.3.2 Режимы работы usart в режиме i2c
Модуль I2C может работать в режимах ведущего передатчика, ведущего приемника, ведомого передатчика или ведомого приемника.
В режиме ведущего модуль I2C, как было указано выше, должен сначала сформировать стартовое состояние и передать адрес ведомого с указанием типа транзакции (чтение/запись). Тип транзакции, следовательно, и состояние передаваемого бита R/W, определяется битом I2CTRX регистра управления передатчика. Для хранения адреса ведомого устройства используется регистр I2CSA. В зависимости от режима адресации (7-ми или 10-ти битный адрес), определяемым битом XA регистра управления, содержимое этого регистра трактуется как 7-ми или 10-ти битное значение.
Установка бита I2CSTT регистра управления передатчика вызывает автоматическую генерацию стартового условия и передачу адреса ведомого устройства.
Если на момент установки бита I2CSTT был установлен бит I2CSTB этого же регистра, после генерации стартового условия автоматически передается стартовый байт (код 01h). После передачи стартового состояния бит I2CSTT автоматически сбрасывается. Отсутствие подтверждение ведомым устройством фиксируется в бите NACKIFG регистра флагов прерывания.
Для передачи собственно данных мастеру необходимо записать байт или слово в регистр I2CDRB/I2CDRW соответственно. Готовность передатчика определяется аппаратной установкой бита TXRDYIFG регистра управления данными. Режим данных байт/слово определяется состоянием бита I2CWORD регистра управления передатчика. Если выбран байтовый режим, содержимое старшего слова регистра I2CDRх (в этом случае к нему следует обращаться по имени I2CDRB) игнорируется. Если установлен словный режим, после записи данных в регистр I2CDRW, то сначала передается младший байт содержимого этого регистра, затем старший. В бите NACKIFG фиксируется отсутствие подтверждение ведомого устройства.
Режим передачи данных определяется состоянием бита I2CRM регистра управления передачи. Если этот бит сброшен, то количество передаваемых байт данных будет определяться содержимым 8-ми разрядного регистра I2CNDAT. При этом после передачи каждого байта содержимое этого регистра автоматически декрементируется.
Режим с использованием регистра I2CNDAT имеет смысл применять, если размер блока передаваемых данных не превышает 256 байт.
В том случае, если бит I2CRM установлен, содержимое регистра I2CNDAT игнорируется и подсчет передаваемых байт необходимо производить программно.
Для того чтобы сформировать стоповое состояние шины, необходимо установит бит I2CSTP регистра управления передачей. Если используется автоматический подсчет переданных байт (I2CRM=0), бит I2CSTP можно устанавливать совместно с I2CSTT, в противном случае, бит I2CSTP необходимо установить перед записью в буфер передатчика последнего байта данных. После генерации стопового состояния бит I2CSTP сбрасывается автоматически.
Режим ведущего приемника определяется сброшенным битом I2CTRX. Инициация транзакции осуществляется так же, как в предыдущем случае, однако в младшем бите первого байта (R/W бит) передается логическая единица. После получения подтверждения ведомого, контроллер переводит линию SDA в высокоимпедансное состояние и начинает принимать байт или слово, в зависимости от состояния бита I2CWORD, в регистр I2CDR, подтверждая получение каждого байта нулевым состоянием линии SDA в течение девятого бита кадра. Получение данных сигнализируется аппаратной установкой бита RXRDYIFG регистра управления данными.
Желаемое количество принимаемых байтов определяется либо содержимым регистра I2CNDAT (бит I2CRM сброшен) либо программной установкой бита I2CSTP (бит I2CRM установлен).
Если контроллер сконфигурирован в режиме ведомого, его собственный 7-ми или 10-ти битный адрес записывается в регистр I2COA. Контроллер ожидает стартовую последовательность, генерируемую внешним мастером, после чего принимает по шине адрес ведомого и сравнивает с содержимым регистра I2COA. Если адреса не совпали, приемник переходит в режим ожидание следующей стартовой последовательности.
При совпадении адресов контроллер начинает передавать или принимать данные, в зависимости от состояния принятого бита R/W.
