Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.98/281: Рейтинг темы: голосов - 281, средняя оценка - 4.98
oxytt
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
1

Есть ли у кого примеры применения датчика давления bm085?

21.10.2013, 17:13. Просмотров 50652. Ответов 128
Метки нет (Все метки)

с I2C не очень силен, пока читаю даташит как китайскую грамоту)
примеров найти не смог, есть только для ардуино
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2013, 17:13
Ответы с готовыми решениями:

Чтение датчика абсолютного давления BMP085
Помогите, пожалуйста, разобраться! Датчик был куплен уже на плате.Подключался к ATMEGA 128. При...

KP1878BE1. Передача значений с датчика давления по UART
Суть проблемы в следующем: Есть датчик с которого непрерывно посылаются данные (датчик давления),...

Есть у кого примеры работы с AdoCommand
Как запрограммировать кнопку на запуск Ado команд Или как пользоваться обновлением ячеек и...

Есть у кого примеры DDD проектов?
1) Писали ли вы в стиле ДДД? Как он , этот опыт? 2) Есть ли примеры на шарпе(актуальные, которые...

Retrofit + simpleXml может у кого есть примеры?
Retrofit + simpleXml может у кого есть примеры рабочего кода? Что-то с JSON чего хочешь. А с XML...

128
YTYOUT
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
10.04.2014, 14:32 101
проц скажи какой
0
Skyir
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 19
10.04.2014, 16:08 102
ATmego32
0
YTYOUT
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
10.04.2014, 23:17 103
RCALL I2C_Send и в прочих , есть проверка кода возврата?
Код
;   RCALL   I2C_Stop ;/////////
RCALL   Delay5ms
RCALL   I2C_Start
RCALL   I2C_Start
Зачем два старта?
0
Skyir
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 19
10.04.2014, 23:21 104
Два старта это я ставил когда была проблема со стопом, как-то сегодня не заметил, щас попробую без них. А в процедурах чтения и отправки используется следующий код
Код
I2C_Woyt:
; Берём значение из TWCR и помещаем в Temp1
IN       Temp1,TWCR
; Пока флаг прерывания в 1 - идёт передача
SBRS    Temp1,TWINT
RJMP    PC-2
RET
0
10.04.2014, 23:21
Skyir
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 19
10.04.2014, 23:27 105
К сожалению реакции ноль. Может выложить весь код работы с I2С? Хотя с докой я сверялся, ошибок не нашел
0
YTYOUT
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
10.04.2014, 23:35 106
Давай выкладывай, пока не пойму в чем проблема.
Кстати , когда без стопа всё пролетает , показания выдает правильные?
0
Skyir
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 19
10.04.2014, 23:41 107
Прикладываю весь код связанный с датчиком. Код для работы с I2C прекрасно работает с DS1307.

P.S. Отмечу также что МК работает на 8 Мгц, прерывания отключены, код задержки 5мс я проверял в студии все по тактам сходится, команда преобразования на датчик приходит (смотрел на работе осциллом, щас его под рукой нет).

[8.4 Кб]
0
YTYOUT
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
11.04.2014, 00:24 108
Да , ошибок не вижу. Завтра буду в Москве , прогоню твой код на реальном датчике.
0
Skyir
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 19
11.04.2014, 00:28 109
Ну я тоже щас доку просмотрел и вроде все норм. Есть у меня только одно сомнение, я когда его подключал первый раз, то цеплял без преобразователя 5.5 в 3.3 В. То есть запустил, увидел что не работает и осенило, понятно конечно что мог попалить, но EEPROM он выдает мне, а работа судя по доке идет через Control unit что с АЦП, что с EEPROM. Надеюсь ваш тест позволит узнать что и как) если что придется заказывать новый на ebay.
0
Skyir
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 19
11.04.2014, 00:33 110
Прошелся по ebay. Может тогда уже заказывать BMP180? Судя по описанию это дальнейшее развитие BMP085
0
YTYOUT
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
11.04.2014, 00:39 111
http://www.bossh-simsortec.com/en/homep ... 280/bmp280
0
Skyir
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 19
11.04.2014, 00:44 112
Датчик хорош, но к сожалению братья китайцы его еще не освоили в производстве) а покупать и собирать самому выйдет в разы дороже. Для сравнения BMP085 в чип-нн 360р и готовая плата на ebay стоит 90р
0
YTYOUT
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
12.04.2014, 13:25 113
Странно , что у Вас он как-то работал ибо не должен был работать по определению.
У Вас ошибка в подпрограмме - здесь поправлена , lds используется для моего проца(не обращать внимание)
Код
; Ожидание готовности передатчика
I2C_Woyt:
; Берём значение из TWCR и помещаем в Temp1
lds       Temp1,TWCR
; Пока флаг прерывания в 1 - идёт передача
SBrs    Temp1,TWINT
RJMP    PC-3
RET
Кстати и очень многих определений в Вашей программе не хватает.
0
Skyir
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 19
12.04.2014, 16:28 114
Я так понял проблема на ваш взгляд в PC-3 вместо PC-2? Поставил сначала PC-3 и получил везде 0xFF. Но все равно заменив это на метку I2C_Woyt получил первоначальный результат, EEPROM читается, а АЦП нет. Каких определений не хватает в коде? Названий регистров?

Прикладываю весь код. В нем по UART получаю 21 FD FC 02 C7 3F 7D DC 62 18 56 E6 15 7A 00 34 80 00 D4 BD 09 80 и далее два раза FF для отладки.

[9.01 Кб]
0
YTYOUT
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
12.04.2014, 18:47 115
rjmp PC-2 возвращает Вас на sbrs , Что бы использовать такие переходы необходимо знать сколько места занимает та или иная команда в памяти программ.
Вот Ваш - мой код , где я спокойно дохожу до
Код
Start2:
RET
Сравнивайте

[7.56 Кб]
0
Skyir
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 19
12.04.2014, 18:52 116
Дак теперь то я напрямую задал метку

Прикрутил Ваши функции для I2C и получаю
EF EF EF EF EF EF EF EF EF EF EF EF EF EF EF EF EF EF EF EF EF FF FF EF EF EF EF
0
YTYOUT
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
12.04.2014, 19:10 117
Мои функции это какие ? Свои выбросили как у меня?
0
Skyir
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 19
12.04.2014, 19:14 118
Под Вашими я подразумевал мои с вашими исправлениями в последнем файле (где Вы написали сравнивайте). Щас я поставил обратно метку и та же сиуация (вместо PC-3 прямо на I2C_Woyt) - выводит только EEPROM. Гляньте этот код заработает ли у Вас

[9.07 Кб]
0
YTYOUT
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
12.04.2014, 19:21 119
А где установка частоты TWI
Код
;**************************************************
;*         ;;/Init Byt Rate fot TWI;;*           *
;**************************************************
ldi      temp1,(SYSCLK/(2*SCL_Freq)-8);/TWI Byt Rate Register - TWBR
sts      TWBR,temp1      ;+ ??????? TWI=384 ??? 0x10
Всё Ваше заблокировано, если Вы заметили
Код
;   LDI      Temp1,0<<TWBR2|0<<TWBR0
;   sts      TWBR,Temp1
;   LDI      Temp1,0<<TWPS1|0<<TWPS0
;   sts      TWSR,Temp1
Конечно надо подставить Вашу частоту и частоту шины
0
Skyir
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 19
12.04.2014, 19:33 120
Не не, смотрите в том файле что я выложил там I2C настраивается. Но все равно при замене
Код
   ; настройка I2C - скорость и предделитель
;   LDI      Temp1,0<<TWBR2|0<<TWBR0
;   OUT      TWBR,Temp1
;   LDI      Temp1,0<<TWPS1|0<<TWPS0
;   OUT      TWSR,Temp1
на
Код
 ldi      temp1,(XTAL/(2*SCL_Freq)-8);/TWI Byt Rate Register - TWBR
sts      TWBR,temp1      ;+ ??????? TWI=384 ??? 0x10
ничего не дало, так же зависает, но если изменить STS на OUT то выдает что-то, щас попробую пересчитать. Но ведь STS и OUT делают одно и то же? По тактам занимают одинаково, в чем нигия?
0
12.04.2014, 19:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.04.2014, 19:33

У кого нибудь есть примеры создания консольного чата
У кого нибудь есть примеры создания консольного чата ? Хочу чат создать прямо в консольном...

Есть у кого-нибудь примеры программ для МК51
Есть у кого - нибудь программа (пример решение любой задачи ) для МК51???? очень нужно.

У кого есть примеры проетов для ПЛИС фирмы Xilinx?
Здравствуйте! У кого есть примеры проетов для ПЛИС фирмы Xilinx? для любой серии и в любой САПР. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
120
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru