В HTML      В PDF
микроэлектроника, микросхема, транзистор, диод, микроконтроллер, память, msp430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, avr, mega128
Предприятия Компоненты Документация Применения Статьи Новости

 
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации





Главная страница > Применение > Микроконтроллеров > MSP430
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации


Подключение ADS1100 к MSP430F413

Резюме

В данном примере применения описывается, как можно подключить дифференциальный 16-разрядный сигма-дельта АЦП ADS1100 к микроконтроллеру MSP430F413. Для примера осуществляется измерение и индикация на ЖКИ выходного сопротивления полномостового тензорезистивного датчика.

Описание аппаратной части

Микроконтроллер MSP430F413, используемый в этом примере применения - это недорогой микроконтроллер со встроенным драйвером ЖКИ. Он осуществляет считывание данных от АЦП и индикацию результата измерения на жидкокристаллическом дисплее. Для подключения к ведущему устройству ADS1100 имеет I2C интерфейс. Так как используемый микроконтроллер MSP430F413 не имеет аппаратного периферийного модуля I2C интерфейса, то для реализации его задействованы линии P2.0 и P2.1 второго порта ввода-вывода общего назначения. Выбор этих линий был сделан произвольно, и они могут быть переназначены путем изменения основного файла I2C_Master.h. К линиям I2C шины подключены 10- кОм подтягивающие резисторы. На рисунке 1 показана схема электрическая принципиальная описываемого устройства.

Питание мостового датчика осуществляется от выводов порта ввода-вывода. Это позволяет снизить потребление путем отключения питания мостового датчика после окончания измерения. Для реализации шины питания мостового датчика по три линии портов микроконтроллера были подключены параллельно.

3.5- цифровой статический ЖКИ марки VI-302 производства компании Varitronix используется для отображения результата измерения и подключается непосредственно к микроконтроллеру MSP430. Кнопки PB1 и PB2 подключены к линиям P1.6 и P1.7 и подтянуты к линии питания 100- кОм резисторами.

Описание программы

Краткий обзор

Демонстрационное программное обеспечение данного примера применения написано как на С, так и на ассемблере. Обе программы функционально идентичны и используют общую библиотеку ведущего I2C интерфейса, которая написана на ассемблере. Проект, сформированный только из программ, написанных на ассемблере, имеет размер приблизительно на 20 % меньше, чем смешанный проект, сформированный из программы, написанной на С и библиотеки, написанной на ассемблере.

Таблица 1. Описание файлов

Имя файла Описание
ADS1100_Demo.c Демонстрационная программа считывания данных из ADS1100, написанная на С
ADS1100_Demo.s43 Демонстрационная программа считывания данных из ADS1100, написанная на ассемблере
I2C_Master.s43 Библиотека реализации ведущего I2C интерфейса
I2C_Master.h I2C Основной файл процедуры ведущего I2C интерфейса

Работа программы

После сброса при подаче питания происходит инициализация периферийных устройств MSP430. При этом происходит отключение сторожевого таймера, настройка нагрузочных конденсаторов генератора LFXT1 для работы с внешним часовым кварцевым резонатором и инициализация контроллера ЖКИ и основного таймера. В исходном тексте для хранения калибровочных данных резервируется два 16- битных слова в сегменте А Flash памяти MSP430. Если оба слова содержат одинаковое значение (например, как после сброса при включении питания - 0xFFFF), то активизируется режим калибровки. В противном случае микроконтроллер входит в режим измерения.

ADS1100 настроен на работу в непрерывном режиме преобразования с 16-разрядной точностью. Для усиления выходного напряжения дифференциального мостового датчика коэффициент усиления усилителя с программируемым коэффициентом усиления (УПКУ) АЦП установлен равным 8. Более подробное описание режима работы ADS1100 можно найти в техническом описании данного прибора. Запись конфигурационного байта в АЦП по I2C интерфейсу осуществляет библиотечная функция I2CWrite8().

Затем, MSP430 переходит в режим пониженного потребления LPM3, при этом прерывания разрешены. С этого времени программа управляется только по прерываниям. Разрешены два источника прерывания. Основной таймер ISR формирует сигнал прерывания каждые 0.25 сек. и, в основном, используется для того, чтобы получить и отобразить результаты измерения. Порт 1 ISR используется для отслеживания нажатия кнопки.

В режиме калибровки задаются две константы. Это нижний (CAL LO) и верхний (CAL HI) пороги диапазона измерений. При нажатии одной из кнопок результат преобразования АЦП ADS1100 считывается при помощи функции I2CRead16() и сохраняется в соответствующей временной переменной. По окончании калибровки обе эти переменные сохраняются сегменте INFOA Flash памяти при помощи функции внутрисистемного самопрограммирования. После этого система переходит в режим измерения. В этом режиме результат преобразования ADS1100 считывается и сравнивается с предыдущим каждые 0.25 сек. Если значения отличаются, то состояние индикатора обновляется. Это позволяет избежать ненужных 32-разрядных целочисленных умножений и делений при неизменности измеряемого сигнала. Значение индицируемого значения рассчитывается по следующей формуле:

DisplayValue = (Value CurrentADC - CalMin) * SPAN_MAX_MIN_CAL / (CalMin - CalMax)

Диапазон от CalMax до CalMin пересчитывается в значение от 0 до CAL_MIN_MAX_SPAN. По умолчанию CAL_MIN_MAX_SPAN установлен равным 1,000. При помощи кнопки PB2 можно в любое время перейти в режим калибровки.

Нажатие кнопки PB1 вызывает остановку преобразования, отключает ЖКИ и переводит MSP430 в режим пониженного потребления LPM3. В этом режиме устройство потребляет менее 1 мкА, при этом 32 кГц генератор остается в рабочем состоянии. Если необходимо, то можно задействовать режим пониженного потребления LPM4. При повторном нажатии кнопки PB1 происходит переход в нормальный режим работы.

Библиотечная функция ведущего I2C интерфейса

Эта библиотека была создана для того, чтобы микроконтроллеры семейства MSP430, не имеющие аппаратного модуля I2C интерфейса, могли все же вести обмен данными с внешними устройствами по этому интерфейсу. Для передачи и приема данных по I2C интерфейсу эта библиотека использует технологию bit-bang. По стандарту I2C требуется выход с тремя состояниями. Для этого линии переводятся в режим входов, а выводы притягиваются к линии питания при помощи внешних подтягивающих резисторов. При этом только при необходимости формирования нуля на линии MSP430 переводит вывод в режим выхода и удерживает его в низком состоянии

Для того чтобы иметь возможность правильно формировать временные параметры, библиотека написана на ассемблере. Если написать ее на С, то временные параметры будут зависеть от компилятора и настроек оптимизатора. Когда микроконтроллер работает на заданной по умолчанию частоте 1 048 576 Гц, все временные параметры сгенерированного I2C интерфейса удовлетворяют требованиям к работе в нормальном режиме. Библиотека может использоваться любыми микроконтроллерами семейства MSP430.

Из основных программ, написанных на С или ассемблере, можно легко организовать вызов любых подпрограмм пользователя. Для упрощения интеграции в среду C существует основной файл. Имеется возможность вызова трех функций:

· void I2CSetup(void)

Эта функция инициализирует выводы MSP430, предназначенные для ведения обмена данными по I2C интерфейсу. Выводы портов SDA и SCL, так же как и определения состояния портов PI2C_DIR, PI2C_OUT и PI2C_IN, могут быть изменены в основном файле I2C_Master.h. Для обслуживания линий интерфейса рекомендуется использовать 4 младшие линии портов. В этом случае для манипуляции битами вычислительное ядро MSP430 способно использовать характеристику постоянного генератора, что позволяет уменьшить размер кода и повысить быстродействие. Более подробно об этом можно прочитать в руководстве пользователя по 16- битным RISC микроконтроллерам семейства MSP430x4xx.

· unsigned int I2CRead16(unsigned char Addr)

Эта функция считывает 16-разрядные данные из указанного внешнего подчиненного I2C устройства. LSB передаваемого адресного I2C байта устанавливается внутренне и служит для указания запрашиваемого устройства. Данные считываются с шины старшим значащим битом вперед.

· void I2CWrite8(unsigned char Addr, unsigned char Data)

При вызове этой функции осуществляется передача 8- битных данных Data устройству с адресом Addr.

Кроме того, библиотека содержит дополнительные вспомогательные функции, позволяющие генерировать I2C условия старта, останова и подтверждения (ACK или nACK). Как было сказано выше, эти функции могут вызываться и различными пользовательскими функциями. Для удовлетворения специфических требований можно создать и свои варианты функций.

На рисунке 1 приведена схема электрическая принципиальная описанного устройства.


Рисунок 1. Схема электрическая принципиальная

Програмы:

  11 Kb Engl Примеры программ

В компании АПЕКСТРОЙ китайский керамогранит. Цены в Москве низкие! | BLINDS-LTD: защитные жалюзи, рольставни (роллеты) в продаже! | PROMVOROTA: секционные ворота и откатные ворота! Промышленные ворота в подарок | Как выбрать лучший домашний кинотеатр | Завод металлоизделий №2. Мы производим гвозди