Подключение I2C-интерфейса MSP430 к ЭСППЗУ серии 24Схх
Резюме
Данный пример применения описывает как, используя стандартную шину I2C, реализовать интерфейс между микроконтроллером семейства MSP430 и внешней EEPROM памятью. Приведенные схема включения и управляющая программа могут быть использованы для обеспечения интерфейса между любым микроконтроллером семейства MSP430 и EEPROM памятью или другим внешним устройством с I2C интерфейсом.
Введение
Микроконтроллеры семейства MSP430 имеют программируемую в схеме Flash или OTP память. Но многим приложениям требуется дополнительная внешняя EEPROM память. Такая потребность может возникнуть при большом размере прикладной программы или при необходимости хранения больших информационных массивов. У микроконтроллеров с OTP памятью или ROM памятью EEPROM может понадобиться для хранения обновленного программного обеспечения, калибровочных констант, серийных номеров или данных датчиков. Использование I2C шины - наиболее часто используемый метод ведения обмена данными между EEPROM памятью и микроконтроллерами.
Микроконтроллеры семейства MSP430 способны эмулировать выход с открытым коллектором, который необходим для реализации I2C интерфейса. В данном примере применения описывается, как реализовать такой интерфейс между микроконтроллером MSP430x11x1 и 512 байтной EEPROM памятью 24LC04. Для реализации интерфейса не требуется дополнительных специфических приборов, а только используются аппаратные периферийные модули MSP430. Прикладная программа демонстрационной схемы считывает и записывает случайные ячейки внешней EEPROM памяти.
Прикладная программа разработана для ведения обмена данными с внешней EEPROM памятью, но небольшие доработки позволят вести обмен данными и с другими приборами, имеющими I2C интерфейс. Для реализации I2C интерфейса задействовано всего 420 байт памяти программы. Остальная часть памяти программы используется для обеспечения интерфейса микроконтроллера с ПК (пользовательского интерфейса). Для этой подпрограммы требуется около 520 байт памяти программы. Для реализации I2C интерфейса пользовательский интерфейс не нужен, он реализован только для демонстрации работы устройства.
Теория функционирования
Используя две любые доступные линии портов ввода-вывода общего назначения, MSP430 способен эмулировать выходы с открытыми коллекторами для управления линиями SDA и SCL интерфейса I2C. Это достигается за счет установки для этих выводов низкого выходного сигнала и использования прямой установки направленности выводов для задания логического уровня сигнала на линии. Всякий раз, когда необходимо установить на выходе высокий логический уровень, устанавливается бит направленности линии порта, который переводит линию порта в режим входа. А подтягивающий резистор сигнальной линии устанавливает на ней высокий логический уровень. Если требуется установить на линии низкий уровень, то вывод переводится в режим выхода. А так как предварительно в порты был записан ноль, то на линии установится низкий логический уровень.
Перед записью случайного байта MSP430 посылает EEPROM стартовое условие. После этого передается управляющий байт. Управляющий байт состоит из кода прибора, к которому идет обращение, адреса блока памяти и бита определения последующей операции (см. рисунок 1). После этого EEPROM подтверждает получение байта. В ответ MSP430 передает адрес ячейки памяти, в которую будут записываться данные. EEPROM снова передает подтверждение приема. После этого MSP430 передает данные, которые записываются в указанную ячейку памяти. После того, как EEPROM подтвердит прием данных, MSP430 посылает условие останова.
Считывание произвольного байта несколько отличается от записи. Основное отличие состоит в том, что управляющий байт передается дважды. Сначала - для установки требуемого адреса, а потом - для инициализации чтения. В первом случае бит чтения/записи имеет значение логического нуля, а во втором - логической единицы.
Прикладная программа демонстрационной схемы разработана для обеспечения возможности считывания/записи 512 байт EEPROM памяти 24LC04, но микросхемы памяти с меньшим объемом также будут считываться при условии, что старшие биты будут игнорироваться. При небольших доработках этой программы можно осуществлять обмен данными и с микросхемами памяти большего объема.
Интерфейс пользователя обеспечивает связь демонстрационной схемы с терминальной программой, запущенной на ПК. Обмен данными ведется в ASCII кодах. Терминальная программа должна быть настроена на ведение обмена данными со скоростью 9600 бод по протоколу 8N1.
Рисунок 1. Управляющий байт для 24LC04 EEPROM
Демонстрационная схема
Демонстрационная схема, приведенная на рисунке 2, питается непосредственно от RS232 последовательного порта персонального компьютера. Преобразование уровней сигналов выполняют два инвертора SN74AH1G04 производства компании TI. Если требуется полностью RS232- совместимый интерфейс, то можно использовать микросхему MAX3221, которая также выпускается компанией TI. Два резистора необходимы для привязки сигнальных линий к шине питания. TPS77033 - производимый компанией TI стабилизатор с низким падением напряжения, который формирует из сигналов последовательного порта напряжение питания микроконтроллера и памяти.
Рисунок 2. Демонстрационная схема
Прикладная программа
Прикладная программа для MSP430 доступна в интерненте по адресу http://www.ti.com/sc/msp430. Называется она I2C_EEmem. S43 и упакована в zip архив с таким же именем. Код программы написан на ассемблере в интегрированной среде разработки IAR Kickstart.
известный сонник, гороскоп на сегодня
|