Контрактное производство электроники. Полный цикл работ
РадиоЛоцман - Все об электронике

Freescale выпускает барометр и термодатчик с цифровым интерфейсом в одном корпусе

Freescale MPL115A

Компания Freescale Semiconductor выпустила новый датчик давления с цифровым выходом MPL115A для недорогих приложений, где требуется измерение атмосферного давления.

MPL115A

Микросхема содержит встроенный MEMS-датчик давления, датчик температуры, АЦП, а также блок цифрового интерфейса I²C или SPI. Во встроенном ПЗУ размещены данные по калибровке давления, которые считываются управляющим контроллером по цифровому интерфейсу для реализации алгоритмов температурной компенсации.

Датчики давления азиатских производителей

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

Основные параметры MPL115A:

  • Диапазон измеряемых давлений: 50…115 КПа;
  • Точность измерения: 1 КПа;
  • Ток потребления:
    • в спящем режиме 1 мкА;
    • в рабочем режиме 5 мкА (при одном измерении в секунду);
  • Напряжение питания: 2.4…5.5 В;
  • Цифровой интерфейс:
    • SPI (MPL115A1), быстродействие до 8 МГц;
    • I²C (MPL115A2), быстродействие до 400 кГц;
  • Рабочий диапазон температур: -40…+85 ºС;
  • Корпус LGA (3×5×1.2 мм).

MPL115A Block Diagrams

Кликните для увеличения

ЭЛТЕХ

21 предложений от 16 поставщиков
Датчик давления, I2C цифровой, абсолютное давление, 0.11мВ/кПа, 50кПа, 115кПа, 2.375В, 5.5В
ЗУМ-СМД
Россия
MPL115A2
NXP
287 ₽
Элитан
Россия
MPL115A1
NXP
609 ₽
727GS
Весь мир
MPL115A2
NXP
по запросу
LifeElectronics
Россия
MPL115A1
Freescale
по запросу
ТМ Электроникс. Электронные компоненты и приборы. Скидки, кэшбэк и бесплатная доставка
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения (только последние 20 сообщений):Полный вариант обсуждения »
  • Трудно сказать, я не уверен, что все данные считываются правильно. Хотя форматы данных, вроде бы совпадают. Значение давления и тем-ры считываются в 10 битном формате, т.е. последние 6 битов в младшем байте всегда равны 0, значения считываемых коэфф. тоже вроде бы правильные. "Прогнал" программу на ПК, ввел в нее полученные значения , рузультат не совпадает с реальным давлением, оно должно быть примерно 101 кПа.
  • Документ [URL="http://www.rlocman.ru/forum/showpost.php?p=24157&postcount=8"]AN3785.pdf[/URL] смотрели. Все ли пункты и условия выполнены. Т.е. ошибка в расчетах, насколько я понял, аппаратно все работает корректно?
  • К сожалению, я понятия не имею какие реально значения должны считываться из этой микросхемы. Никаких примеров в даташитах нет, кроме этой дурацкой программы. В самом даташите полно не точностей, программа составлена тупо по алгортиму. В ней есть явные несуразицы. С помощью контроллера я просчитать не могу, пришлось переделывать ее под ПК. В результате на выходе получается 400 с копейками, явная ерунда.Что касается интерфейса I2C, то он вроде бы работает нормально, вместо датчика давления я подключал часовую микросхему, считывал показания регистра секунд.Вроде бы тикали....секунды.
  • Да, информации по этому датчику еще мало, новый прибор. Просмотрев документ еще раз, я так понял, что константы компенсации постоянны (т.е. прибор калибруется в заводских условиях), хранятся во внутренней ROM и их нужно лишь один раз считать и затем применять при расчетах. Т.е. с выхода датчика мы получаем «сырые» данные с АЦП. Далее (как по даташиту) значение Pcomp мы получаем (должны получить) в диапазоне от 0 до 1023. В выражение подставляются калибровочные коэффициенты и значение температуры (тоже сырые данные). Значение Pcomp=0 соответствует 50 kPa, значение 1023 – 115 kPa Если вы получали на выходе значение 400 (что это за значение, где на выходе), То вычислив (применительно к диапазону 50 - 115 kPa мы получим 75 kPa, что тоже не внушает доверия... Это так, были рассуждения мои. Как получить и где какие коэфф. я так и не разобрался по даташиту.... Ан нет, разобрался... :) Правильно ли считывали коэффициенты?
  • Прибор калибруется производителем и все компенсирующие коэф. действительно записаны в память. Вот считывать их не необходимости. Все коррекции происходят в самом датчике. на выходе точная инф. Взгляните... [url]http://cache.freescale.com/files/sensors/doc/app_note/AN3785.pdf?fpsp=1[/url]
  • Этот документ уже есть во вложении в этой ветке чуть выше. Однако... по доке утверждается, что Host контроллер выполняет вычисления. Т.е. эти коэфф. используются для применения компенсационного алгоритма к данным поступаемым с АЦП датчика давления/температуры.
  • Рассуждения верные. На выходе датчика действительно должны быть значения в диапазоне 0 - 1023. Коэфф-ты . храняться во вн. ROM. Но вычисдятся должны произв. каждый раз при измерении.Т.к. там учитывается тем-ра. Далее, скоректированное значение давления (т.е. с учетом тем-ры и поправочных коэфф-тов) подставляется в формулу , по которой мы и получаем конечный результат. Проблема в том, что датчик выдает на выходе АЦП примерно 400 (0х1АА), а это в два раза меньше нормы. Дальше, для вычимсления полинома необх 32 битные переменные, а Си компилятор фирмы Keil, с которым я работаю, не поддерживает переменные типа long int. Я пробовал "прогонять" эту программу на ПК , в С++ Билдере, подставлял разные значения от 0 до 1023, на выходе результат все равно не правильный. Из чего я сделал вывод, что считываемые мною данные, все таки, не верны. Хотя форматы считываемых данных совпадают. Это сбивает столку. Сегодня попробую предпринять очередной мозговой штурм. Дело в том что с системой команд мне тоже не все до конца ясно. В приведенных примерах, по моему есть не понятные вещи. Например - [Start],0x60+[W],0x12,0x01,Stop. Не пойму, для чего нужна команда 0х01.
  • Программа расчета тоже написана убого, я меня сложилось впечатление, что ее писал не программмист а была составл. с помощью другой программы.Много лишнего кода.
  • Насчет этой команды 0x01 - мне так же не ясно ее происхождение именно в тексте приведенной программы. Хотя честно признаюсь, что работа с этми датчиком какая-то мудреная. В протоколе I2C для меня остались несколько непонятных моментов.
  • Я вначале решил, что эта команда, использ для временной задержки, т.к. после команты Старт, и до команды Чтение должно пройти 1-3 mSек (в разных дадашитах это время уазано разное), а сейчас у меня возникли сомнения, т.к. 0х01 - это команда чтения мл.байта датчика давления. Что касается протокола I2C вообще, то у меня к нему отношение тоже неоднозначное.В моем МК обе протокола (I2C и SPI), реализованы аппаратно, но протокол I2C реализован на мой взгляд очень неудачно, программная поддержка для него очень сложная, вся обработка происходит в обработчике прерываний, при входе в него, выставляется куча всяких флагов, затем в самом обработчике анализируются комбинации аппаратных флагов плюс программные. К тому же возможны коллизии, поэтому для работы этой шины использ. 2 таймера (второй таймер исп. для контроля за состоянием шины). А это на мой взгдят - очень расточительно. Поэтому я заказал себе новые КИТ наборы KITMPL115A1, думаю что к концу мая я их получу и перейду на шину SPI, там и скорость обмена гораздо выше и программная реализация по проще.
  • ОК, будем ждать результатов. Самому интересно, почему такая неразбериха с датчиком получается.
  • С командой 0х01, разобрался, но в остальном - все по прежнему. Данные считываются не верные. Мне кажется , что с этим датчиком я вляпался..... Такое впечатление, что покупая эти микросхемы, внес свою лепту в восстановления разрушенной ураганами американской экономики в Аризонне.
  • использование датчиков, подобных этому обсуждалось на авиа и парашютных форумах. Может быть Вам удасться "выудить" то туда полезную инф. Вот ссылка на одну из разработок [URL]http://www.avispro.com.ua/doc.php?id=1178[/URL] [URL]http://pdf1.alldatasheet.com/datasheet-pdf/view/226173/ETC2/SMD500.html[/URL] [URL]http://www.sensorica.ru/d1-5b.shtml[/URL]
  • Большое спасибо за ссылки. Некоторые из этих датчиков я встречал в инете. Я зарегистрирован на одном из авиамодельных форумов, авиабазе. Датчики очень неплохие, у них высокая точность, т.к. АЦП - 16 битный. Один недостаток. время преобразования 35-100 мСек. Ну и потом, я уже изрядно потратился на MPL115A2. На выходных протестировал шину I2C, подключив вместо датчика давления, RTC (DS3231). Вывел информацию из МК на ПК, на терминал.Часы работают нормально, время выставляется, к шине нет претензий. На скорости 100 КГц все работает, на 400 не пробовал. Вчера , проанализировав ситуацию, принял окончательное решения перейти на шину SPI. Датчики давления (MPL115A1), под эту шину я уже заказал, к тому же в моем МК для тактирования этой шины не нужен таймер, достаточно имеющегося предделителя. Пока не пришли датчики, буду осваивать SPI, подключу к МК RTC (DS3224). Попробую вначале поработать на скорости 500 кГц, а потом подниму скорость по максимуму. (2-4 МГц)
  • Рад что иф. оказалась полезной для Вас. При работе с датчиком абсолютного давления Honeywell столкнулся с интересным эффектом. Датчик чуствителен к звуку, пришлось поместь в демпфированый объём и использовать цифровой фильтр/интегратор.
  • У меня тоже были подозрения, что эти датчики чувствительные к разного рода воздействиям, вибрации, тем-ре, а тут ещек и звук... Я проверял свои датчики, при нагревании рукой корпуса микросхемы, меняется не только выходное значение тем-ры , но и давления.Кстати, значение тем-ры обратно пропорционально тем-ре
  • Так, для чего команда 0х01, если не секрет?
  • [B][COLOR="black"][COLOR="Blue"]ame50[/COLOR][/COLOR][/B]Что не понятно.....[COLOR="Blue"]Кстати, значение тем-ры обратно пропорционально тем-ре [/COLOR] по подробнее пож... Изменение показаний давления от температуры - два варианта: 1 датчик приводит показние давления к НОРМАЛЬНЫМ УСЛОВИЯМ 2 коррекция "безбожно врёт"
  • Начну по порядку. Насчет команды 0х01. Насколько я понял, микросхема работает как обычная флэшь память, т.е. команда 0х10 ,к примеру, это адрес одноименного регистра управления, для того что бы она возимела действие, туда нужно записать любую информацию. Я пробовал писать 0, 01, 02, 04, 0х12, 0xFF, результат одинаковый. И наоборот, записывая в микросхему просто команду 0х10, запуска АЦП не происходило.
  • Насчет датчика тем-ры. Считываемые значения Тadc, с увеличеним тем-ры - уменьшаются. По поводу коэффициентов. Прогонял программу на ПК, подставляя туда все считынные из МК значения, получается ерунда, 400 KPa. Я подставлял в нее данные Padc от 0 до 1023, результат тот же. к примеру, при значении Padc = 0, на выходе получаю 200 KPa. Подставлял в формулу для расчета давления значения Padc, без учета коэфф. получается слишком низкое давление. decPcomp = ((65.0/1023.0)*437)+50 = 27,77 + 50 = 77,77 KPa. Не думаю, что поправочные коэффициенты, сильно влияют на окончательный результат. Если кому интересно, файл со считынными значениями , прилагаю. Может у кого нибудь появятся мысли.
Полный вариант обсуждения »