Датчики

Датчик давления MPL115A2

mpl115 Датчик давления MPL115A предназначен для измерения абсолютного давления в диапазоне от 50кПа до 115кПа с точностью 1кПа. Фактически данный диапазон перекрывает значения атмосферного давления, что позволяет использовать датчик для построения барометров, альтиметров, бытовой и промышленной техники. Выпускается MPL115A2 фирмой Freescale Semiconductor.

Основу MPL115 составляет MEMS‑сенсор, показания, которого обрабатываются встроенным АЦП. Для компенсации температурных возмущений, датчик также содержит термометр. Показания этого термометра доступны для считывания. Интерфейс пользователя реализован с помощью шины SPI (MPL115A1) или I2C (MPL115A2).

Конструкция и характеристики датчика

MPL115A изготавливается в корпусе LGA, размером 3 х 5 х 1.2 мм, что позволяет его использовать в компактных и портативных устройствах. Этому также способствует малый ток, потребляемый датчиком. В режиме сна он составляет 1 мкА, в работе с периодом измерений 1сек - 5 мкА. Напряжение питания 2.4 - 5.5 Вольт. Датчик сохраняет работоспособность в диапазоне температур -40…+105°C.

Цоколевка mpl115a2

CAP – вывод для подключения конденсатора емкостью1мкФ.

SCL – тактовая линия шины I2C

SDA – информационная линия шины I2C

SHDN – спящий режим. Подключение к GND переводит датчик в спящий режим

RST – сброс датчика. Подключение к GND останавливает обмен по шине

Получение информации от датчика

MPL115A позволяет реализовать алгоритмы калибровочной и температурной компенсации измеренного значения давления, необходимые для исключения внешних возмущений и улучшения точности. При этом датчик не содержит законченной схемы обработки сигналов. Это значит, что часть операций по вычислению реального значения давления должна быть возложена на микроконтроллер. Алгоритм работы последнего с датчиком серии MPL115A изображен на рисунке.

mpl115diagИнициализация.

Инициализация датчика выполняется подачей питания на него. При этом никаких измерений не производится, датчик находится в режиме ожидания.

Чтение калибровочных коэффициентов.

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

Измерение давления.

В процессе измерения давления, встроенный АЦП производит опрос датчиков и преобразование их сигналов в цифровую форму. Измерение запускается после записи команды CONVERT в регистр датчика. Длительность преобразования, согласно документации, составляет от 1.6 до 3мсек. По окончании преобразования полученные данные записываются в выходные регистры, а датчик переводится в режим ожидания.

Расчет давления.

После окончания измерений, управляющий микроконтроллер должен прочитать необходимые данные из датчика и произвести расчет значения давления. При необходимости повторных измерений, необходимо по новой произвести преобразование давления.

Спящий режим

С целью экономии электрической мощности, в датчике реализован «Спящий режим». Активируется он путем подключения вывода SHDN к нулевому потенциалу. В этом режиме внутренние схемы датчика отключаются от шин питания, все регистры сбрасываются, информационные линии переводятся в высокоимпедансное состояние.

Вывод датчика из спящего режима производится подачей положительного напряжения на линию SHDN. Время «пробуждения» составляет максимум 5 мсек.

Регистры MPL115A2

Датчик MPL115A2 содержит 19 регистров с разрядностью 8 бит, 6 из которых не используются. Список рабочих регистров приведен ниже

Адрес (HEX)

Имя

Описание

Количество значащих бит

0x00

Padc_MSB

Padc – 10-ти разрядный код АЦП, соответствующий измеренному значению давления

8

0x01

Padc_LSB

2

0x02

Tadc_MSB

Tadc – 10-ти разрядный код АЦП, соответствующий измеренному значению температуры

8

0x03

Tadc_LSB

2

0x04

a0_MSB

a0 – коэффициент смещения давления

8

0x05

a0_LSB

8

0x06

b1_MSB

b1 – коэффициент чувствительности по давлению

8

0x07

b1_LSB

8

0x08

b2_MSB

b2 – коэффициент смещения температуры

8

0x09

b2_LSB

8

0x0A

c12_MSB

c12 – коэффициент чувствительности по температуре

8

0x0B

c12_LSB

8

0x12

CONVERT

Старт преобразования давления

Внешний вид калибровочных коэффициентов.

Калибровочные коэффициенты хранятся в памяти датчика в двоичном виде. При этом они представляют собой знаковые дробные числа. Перед использованием, двоичные значения необходимо перевести в формат с плавающей точкой. Кодирование произведено по правилам записи знаковых двоичных чисел. Обозначения: S – знак, F – дробная часть, I – целая часть.

Коэффициент смещения давления a0.

Коэффициент записан в виде 16-разрядного двоичного числа. Старший бит MSB определяет знак. Младшие три бита – дробная часть.

Байт

MSB

LSB

Бит

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

Код

S

I11

I10

I9

I8

I7

I6

I5

I4

I3

I2

I1

I0

F2

F1

F0

Коэффициент чувствительности по давлению b1.

Коэффициент b1 - 16-разрядное двоичное числ. Старший бит MSB определяет знак. Биты 6 и 5 MSB кодируют целую часть, оставшиеся 13 бит - дробную.

Байт

MSB

LSB

Бит

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

Код

S

I1

I1

F12

F11

F10

F9

F8

F7

F6

F5

F4

F3

F2

F1

F0

Коэффициент смещения температуры b2.

Коэффициент b2 также 16-разрядный. Старший бит MSB определяет знак. Бит 6 MSB кодирует целую часть, младшие14 бит - дробную.

Байт

MSB

LSB

Бит

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

Код

S

I0

F13

F12

F11

F10

F9

F8

F7

F6

F5

F4

F3

F2

F1

F0

Коэффициент чувствительности по температуре с12.

В отличие от предыдущих, с12 имеет разрядность 14. Старший бит MSB также отвечает за знак, следующие 13 бит определяют дробную часть, а 2 младших бита LSB не используются. При этом дробная часть имеет 9 нулей (в двоичном формате) перед первой значащей цифрой.

Байт

MSB

LSB

Бит

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

Код

S

F12

F11

F10

F9

F8

F7

F6

F5

F4

F3

F2

F1

F0

0

0

Вычисление давления. 

Схема включения MPL115a2
Схема включения MPL115A2

Вычисление давления, измеренного датчиком MPL115A, производится в два этапа. На первом этапе выполняется расчет скомпенсированной величины, представляющей собой значение АЦП с компенсацией по температуре и наложенными калибровочными коэффициентами. Второй этап предназначен для приведения скомпенсированного давления к диапазону измерений датчика и получению давления в виде реальной физической величины.

Расчет скомпенсированного давления производится по формуле:

Pcomp = a0 + ( b1 + c12 * Tadc ) * Padc + b2 * Tadc

Формула приведения к диапазону измерений:

P(кПа) = Pcomp * (115 - 50) / 1023 + 50

Шина I2C в MPL115A2

Шина I2C датчика MPL115A2 поддерживает высокоскоростной режим. Для обмена используется стандартный протокол I2C. Адрес датчика на шине равен 0xC0 или 1100000X в двоичном варианте.

Фактически, при обмене с датчиком выполняется только три операции:

- чтение калибровочных коэффициентов

- команда старта преобразования

- чтение измеренных значений

Чтение данных выполняется с помощью классического варианта обмена по I2C. Микроконтроллер выставляет на шину адрес микросхемы и адрес первого регистра чтения. После повторного старта, формируется вновь адрес микросхемы, но с установленным битом чтения. Далее датчик последовательно передает содержимое регистров, начиная с заданного. Чтение калибровочных коэффициентов доступно в любое время работы датчика.

Для получения кода АЦП, соответствующего давлению и температуре, требуется вначале выполнить команду старта преобразования. Данная команда заключается в записи в регистр CONVERT числа 0. Максимальное время преобразования, согласно документации, составляет 3 мсек. После его истечения, данные кода АЦП записываются в соответствующие регистры и становятся доступными для считывания.

В статье использованы материалы Data Sheet: MPL115A2 Miniature I2C Digital Barometer, распространяемого Freescale Semiconductor.

You have no rights to post comments