Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
22.07.2009, 21:44
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
|
Проблема с датчиком влажности SHT10
Приветствую всех. Собственно проблема в том, что не получается считать результат измерения влажности или температуры. При чтении результата влажности считываются все время 0FFF (12-бит), а при чтении температуры считывается не верное значение. Причем вычисленная CRC для 0FFF совпадает с принятым CRC. STATUS регистр считывается нормально (записываю его, затем считываю все верно и CRC совпадает). Протокол обмена похож на I2C, но это не он. Вроде делаю все по примеру из даташита. Может кто-нибудь сталкивался с этим датчиком?
-- Прилагается рисунок: --
|
|
|
|
23.07.2009, 10:00
|
|
Прохожий
Регистрация: 29.01.2009
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Предположений есть пока 2:
- проверь команды на запуск измерения температуры и влажности,
- выдерживаеш ли время до окончания измерения?
Работал с таким датчиком где-то год назад, особых проблем не возникало.
|
|
|
|
23.07.2009, 10:22
|
|
Прохожий
Регистрация: 12.09.2008
Сообщений: 9
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Как раз сейчас экспериментирую с этим датчиком. Могу скинуть программу и функцию опроса SHT1*. Контроллер - Mega32. Всё работает.
|
|
|
|
23.07.2009, 10:28
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
|
Команды датчик воспринимает, потому что отвечает на них ACK. По даташиту после окончания преобразования датчик тянет линию DATA к 0, у меня контроллер дожидается этого и дальше считывает, к примеру если установить 8-битное измерение влажности, то 8 нулей для старшего байта и все 1 для младшего и считываю CRC для этого результата, вычисляю и они совпадают. Я уже 3 дня с ним ковыряюсь, ничего не получается. Уже думаю может он сдох от статики, я его один раз пальцем тронул.
|
|
|
|
23.07.2009, 10:32
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
|
Сообщение от liza171
|
Как раз сейчас экспериментирую с этим датчиком. Могу скинуть программу и функцию опроса SHT1*. Контроллер - Mega32. Всё работает.
|
Буду признателен. Посмотреть как у вас реализован обмен данными с этим датчиком. Я использую PIC24FJ64GA002.
|
|
|
|
23.07.2009, 10:45
|
|
Прохожий
Регистрация: 12.09.2008
Сообщений: 9
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Ничё ему не будет. Я его руками брал, когда паял. У меня были проблемы при длинном 4-х проводном кабеле из-за помех на линии. Пришлось стормозить sck до 100 кГц. А если CRC8 совпадает, тогда что-то не так с пересчётом битов в температуру. Да, ещё питание датчика и контроллера должно быть одинаковое. Для AVR подтягивающий резистор на sda можно не ставить.
Прикрепленный файл: 9611327.zip
|
|
|
|
23.07.2009, 11:08
|
|
Прохожий
Регистрация: 12.09.2008
Сообщений: 9
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
У вас ещё версия даташита старая, в ней на Figure 17 сигналы и фронты неправильно нарисованы.
Прикрепленный файл: 2359788.pdf
|
|
|
|
23.07.2009, 11:28
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
|
Спасибо, вечером посмотрю. А температуру пересчитываю пока вручную, к примеру получаю значение 23CF (9167) , пересчитываю по формуле 9167*0,01-39,6= 52 гр. а действительная температура 16 гр. Датчик находится в 2 см от контроллера на плате. У меня обе линии подтянуты к +3,3 так как на этих пинах висит еще И2С, использую выходы типа открытый коллектор. Питание одно.
|
|
|
|
23.07.2009, 11:39
|
|
Частый гость
Регистрация: 08.12.2006
Сообщений: 24
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Прилагаю свой рабочий пример для Silab.
У меня в свое время была похожая фигня. А оказалось, что я один из верхних контактов NC замкнул на землю - и пошли глюки.
Прикрепленный файл: 6500899.rar
|
|
|
|
23.07.2009, 11:47
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
|
Спасибо. Может действительно один из контактов NC висит на земле. У меня под датчиком проходит земляной полигон, может действительно замыкание на землю.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 06:32.
|
|