Не могу завести BMP085 на Атмеге32 в Codevision. Датчик брался в деалэктриме уже распаянный с подтяжкой, конденсаторами и стабилизатором на 3,3 В. Мега питалась от 5 В и 3,8 В (ниже уже не показывает ЖК). Проблема в том, что содержимое любого байта регистра возвращается как FF, да и при отключеном датчике программа работает также и показывает 255 (т.е. FF). Ощущение, что датчик совсем нерабочий. вот код чтения
Если Мега работала на +5, то эти +5 были и по SDA/SDL. Могло пожечь датчик.
Dj_Alex писал(а):
Ощущение, что датчик совсем нерабочий.
Документация на датчик читалась?
Dj_Alex писал(а):
i2c_start() выдает 1, что означает шина свободна. Это значит нет устройств?
А что говорит документация CV на эту функцию? Что должно вернуть?
Dj_Alex писал(а):
Как определить адреса устройств, которые висят на шине? В примере для Raspberry Pi значится #define BMP085_I2C_ADDRESS 0x77
Понятно, вопрос о документации снимаю как неактуальный. Я уже не удивлен. Такое ощущение, что нынче не модно читать документацию 4.2 Device and register address The BMP085 module address is shown below. The LSB of the device address distinguishes between read (1) and write (0) operation, corresponding to address 0xEF (read) and 0xEE (write).
Имхо, гораздо проще, быстрее и интереснее открыть даташит на BMP085, даташит на TWI в Атмеге и за полчаса набросать функции записи/чтения. Вместо использования каких-то примеров, без понимания что и как там делается.
Согласно ДШ байт с I2C адресом для записи в BMP085 должен быть 0хЕЕ. Я не знаю как работает CodeVison, может он сдвигает адрес 0х77 на бит влево для получения 0хЕЕ. Однако, тогда, адрес для чтения 0х77 | 1 до сдвига будет тоже 0х77 (?) Попробуйте адреса 0хЕЕ и 0хEF. http://www.bosch-sensortec.com/content/language1/downloads/BST-BMP085-DS000-05.pdf
Народ, аналогичная проблема, помогите понять алгоритм обращения к датчику. У меня есть адаптер USB <-> I2C на микроконтроллере PIC (с поддержкой шины). Обмен данными с этим адаптером осуществляется через виртуальный COM-порт, собственно, какие последовательности я должен слать, например в терминал, чтобы получить данные?
На складе КОМПЭЛ уже готовы к поставке одни из самых востребованных литиевых батареек типов ER и CR производства FANSO EVE Energy – одного из мировых лидеров на рынке первичных литиевых элементов питания.
Данные источники тока получили широкое применение в различных областях, будь то системы безопасности, приборы учета или мелкая бытовая техника.
Компэл расширяет складскую программу по специальным ИП для применения в медицинских приборах и устройствах. Представлены ИП в диапазоне мощности от 5 до 500 Вт, по медицинскому стандарту EN60601-1 с двумя мерами защиты пациента (2хMOPP; тип BF) для устройств, контактирующих с пациентом. Все эти надежные источники питания могут применяться не только в медицинских устройствах.
Спасибо, но если бы мне необходимо было получать данные микроконтроллером, то вопросов бы не было. У меня же замеры должны осуществляться компьютером через виртуальный COM-порт, который по сути выполняет функции шины I2C. И прежде чем написать софт, мне необходимо узнать, какую последовательность команд выставлять на шину I2C через тот же терминал, чтобы получить ответ от датчика.
Извините не понял сразу. Да пожалуй и никто не поймет. Вы ничего не сказали, что у вас за адаптер. Какой датчик температуры они там подключают... Надо разбираться как реализован т.н. "автомат состояний" в вашем пике. Обмен данных по iic шине с BMP085 приводится на стр. 15 даташита. Морока в общем. Проще к готовому проекту типа того, что я вам привел поддержку RS232 прикрутить.
Zorg - народ прав, в том, что ответ на Ваш вопрос присутствут в явном виде в ДШ на сенсор. Именно, внизу на стр. 18 приведен (осциллограммы) пример какие нужно формировать сигналы на выводах SDA и SCL для чтения 2-х байт из сенсора. В проектах на МК для работы с сенсором формируются точно такие-же сигналы, какие Вам нужно будет генерировать через преобразователь USB-I2C. Поэтому посмотреть исходник работающего проекта будет очень полезно. Кстати, не забудьте о необходимости формирования сигналов типа START, STOP, ACK, NACK, которые не сводятся просто к посылке определенных байтов в сенсор.
Ниже написанный код неверно выдает показания с датчика завышает примерно на 29 мм.рт.ст.
Завышение всегда одно и тоже - +29?
vvsv писал(а):
В чем может быть причина?
Уверен в том значении, от которого завышено? Может быть врет не BMP, а "калибровочный" замеритель?
По коду вроде бы все правильно. Могу только посоветовать вывести все-все сырые значения (калибровочных регистров, сырой замер давления и температуры), посчитать руками и сравнить. Я в своё время так нашёл ошибку со скобками.
Теперь имеется библиотека для работы BMP180 ( BMP085) на CodeVisionAVR
Прошу прощения за беспокойства, имеется датчик BMP180, хочу сделать метеостанцию, могу писать только CVAVR? подскажите какую библиотеку надо заменить? подскажите начинающему. Заранее спасибо.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения