Новичок
Регистрация: 26.04.2011
Сообщений: 19
Репутация: 11
|
Рассуждения верные.
На выходе датчика действительно должны быть значения в диапазоне 0 - 1023. Коэфф-ты . храняться во вн. ROM. Но вычисдятся должны произв. каждый раз при измерении.Т.к. там учитывается тем-ра. Далее, скоректированное значение давления (т.е. с учетом тем-ры и поправочных коэфф-тов) подставляется в формулу , по которой мы и получаем конечный результат. Проблема в том, что датчик выдает на выходе АЦП примерно 400 (0х1АА), а это в два раза меньше нормы. Дальше, для вычимсления полинома необх 32 битные переменные, а Си компилятор фирмы Keil, с которым я работаю, не поддерживает переменные типа long int. Я пробовал "прогонять" эту программу на ПК , в С++ Билдере, подставлял разные значения от 0 до 1023, на выходе результат все равно не правильный. Из чего я сделал вывод, что считываемые мною данные, все таки, не верны. Хотя форматы считываемых данных совпадают. Это сбивает столку. Сегодня попробую предпринять очередной мозговой штурм. Дело в том что с системой команд мне тоже не все до конца ясно. В приведенных примерах, по моему есть не понятные вещи. Например - [Start],0x60+[W],0x12,0x01,Stop. Не пойму, для чего нужна команда 0х01. |
||
Оценка
|
Специалист
|
Насчет этой команды 0x01 - мне так же не ясно ее происхождение именно в тексте приведенной программы. Хотя честно признаюсь, что работа с этми датчиком какая-то мудреная. В протоколе I2C для меня остались несколько непонятных моментов.
__________________
Уважаемые пассажиры, самолет ТУ-134 садится. У кого есть зарядка от ТУ-134, просьба пройти в кабину пилота. |
||
Оценка
|
Новичок
Регистрация: 26.04.2011
Сообщений: 19
Репутация: 11
|
Я вначале решил, что эта команда, использ для временной задержки, т.к.
после команты Старт, и до команды Чтение должно пройти 1-3 mSек (в разных дадашитах это время уазано разное), а сейчас у меня возникли сомнения, т.к. 0х01 - это команда чтения мл.байта датчика давления. Что касается протокола I2C вообще, то у меня к нему отношение тоже неоднозначное.В моем МК обе протокола (I2C и SPI), реализованы аппаратно, но протокол I2C реализован на мой взгляд очень неудачно, программная поддержка для него очень сложная, вся обработка происходит в обработчике прерываний, при входе в него, выставляется куча всяких флагов, затем в самом обработчике анализируются комбинации аппаратных флагов плюс программные. К тому же возможны коллизии, поэтому для работы этой шины использ. 2 таймера (второй таймер исп. для контроля за состоянием шины). А это на мой взгдят - очень расточительно. Поэтому я заказал себе новые КИТ наборы KITMPL115A1, думаю что к концу мая я их получу и перейду на шину SPI, там и скорость обмена гораздо выше и программная реализация по проще. |
||
Оценка
|
Специалист
|
ОК, будем ждать результатов. Самому интересно, почему такая неразбериха с датчиком получается.
__________________
Уважаемые пассажиры, самолет ТУ-134 садится. У кого есть зарядка от ТУ-134, просьба пройти в кабину пилота. |
||
Оценка
|
Новичок
Регистрация: 26.04.2011
Сообщений: 19
Репутация: 11
|
С командой 0х01, разобрался, но в остальном - все по прежнему.
Данные считываются не верные. Мне кажется , что с этим датчиком я вляпался..... Такое впечатление, что покупая эти микросхемы, внес свою лепту в восстановления разрушенной ураганами американской экономики в Аризонне. |
||
Оценка
|
Гуру
Регистрация: 08.05.2006
Адрес: москва
Сообщений: 8,268
Репутация: 2207
|
использование датчиков, подобных этому обсуждалось на авиа и парашютных форумах. Может быть Вам удасться "выудить" то туда полезную инф. Вот ссылка на одну из разработок http://www.avispro.com.ua/doc.php?id=1178
http://pdf1.alldatasheet.com/datashe...C2/SMD500.html http://www.sensorica.ru/d1-5b.shtml |
||
Оценка
|
Новичок
Регистрация: 26.04.2011
Сообщений: 19
Репутация: 11
|
Большое спасибо за ссылки.
Некоторые из этих датчиков я встречал в инете. Я зарегистрирован на одном из авиамодельных форумов, авиабазе. Датчики очень неплохие, у них высокая точность, т.к. АЦП - 16 битный. Один недостаток. время преобразования 35-100 мСек. Ну и потом, я уже изрядно потратился на MPL115A2. На выходных протестировал шину I2C, подключив вместо датчика давления, RTC (DS3231). Вывел информацию из МК на ПК, на терминал.Часы работают нормально, время выставляется, к шине нет претензий. На скорости 100 КГц все работает, на 400 не пробовал. Вчера , проанализировав ситуацию, принял окончательное решения перейти на шину SPI. Датчики давления (MPL115A1), под эту шину я уже заказал, к тому же в моем МК для тактирования этой шины не нужен таймер, достаточно имеющегося предделителя. Пока не пришли датчики, буду осваивать SPI, подключу к МК RTC (DS3224). Попробую вначале поработать на скорости 500 кГц, а потом подниму скорость по максимуму. (2-4 МГц) |
||
Оценка
|
Гуру
Регистрация: 08.05.2006
Адрес: москва
Сообщений: 8,268
Репутация: 2207
|
Рад что иф. оказалась полезной для Вас. При работе с датчиком абсолютного давления Honeywell столкнулся с интересным эффектом. Датчик чуствителен к звуку, пришлось поместь в демпфированый объём и использовать цифровой фильтр/интегратор.
|
||
Оценка
|
Новичок
Регистрация: 26.04.2011
Сообщений: 19
Репутация: 11
|
У меня тоже были подозрения, что эти датчики чувствительные к разного рода воздействиям, вибрации, тем-ре, а тут ещек и звук...
Я проверял свои датчики, при нагревании рукой корпуса микросхемы, меняется не только выходное значение тем-ры , но и давления.Кстати, значение тем-ры обратно пропорционально тем-ре |
||
Оценка
|
Обратная связь РадиоЛоцман Вверх |