Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
23.04.2010, 20:26
|
|
Временная регистрация
Регистрация: 03.02.2005
Сообщений: 52
Сказал спасибо: 8
Сказали Спасибо 8 раз(а) в 6 сообщении(ях)
|
Опять про DS18B20
Извиняюсь если это FAQ, но мои поиски не дали результата.
Имею схему с датчиком DS18B20, подтягивающий резистор 2.4к и Мега8, напряжение питание девайса 4в (+/- 0.05в). Программа на Си+WinGCC.
Вариант с нормальным питанием датчика: работает на ура.
Вариант с паразитным питанием: измерение Т в цикле, получаю следующие данные 85.0, 85.0, 85.0, 25.2, 85.0, 85.0, 85.0, 85.0, 85.0, 25.2 .....
То есть якобы датчик сбрасывает значения в первоначальное состояние.
Ощущение, что при чтении первоначальный RESET который должен быть 480мкс у меня чуть больше, и датчик выдает исходное значение температуры.
В даташите не нашел за какое время датчик сбрасывается в исходное состояние.
Может кто то сталкивался с подобным?
|
|
|
|
24.04.2010, 09:14
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
Re: Опять про DS18B20
Да шиту контроллер обязан работать от 3 Вольт, у Вас запитывается от 4 минус падение напряжения на диоде - итого где-то 3.5 . попробуйте уменьшить резистор до килоома - ничего страшного, что через дс-ку будет идти 3 милиампера, у нее максимальный 5 - но без фанатизма - сначала 2к, затем полтора , потом килоом - и замените обычный диод на Шоттки в паразитном питании.
|
|
|
|
24.04.2010, 13:32
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Опять про DS18B20
А на время преобразования Вы переводите вывод контроллера на выход? Иначе внутреннего конденсатора не хватает для питания датчика на все время преобразования и датчик переходит в исходное состояние. Я при паразитном питании и в паузах между битовыми интервалами подпитываю датчик через вывод контроллера.
|
|
|
|
24.04.2010, 16:04
|
|
Вид на жительство
Регистрация: 13.05.2005
Сообщений: 386
Сказал спасибо: 9
Сказали Спасибо 44 раз(а) в 37 сообщении(ях)
|
Re: Опять про DS18B20
А точно STRONG PULLUP держится на время преобразорвания?
|
|
|
|
24.04.2010, 18:34
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Re: Опять про DS18B20
А зачем питать паразитным питанием вообще? понимаю когда это таблетка на замок.
__________________
Глаза боятся,а руки делают.
|
|
|
|
24.04.2010, 19:53
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,018
Сказал спасибо: 348
Сказали Спасибо 1,024 раз(а) в 552 сообщении(ях)
|
Re: Опять про DS18B20
Сообщение от kison
|
А на время преобразования Вы переводите вывод контроллера на выход? Иначе внутреннего конденсатора не хватает для питания датчика на все время преобразования и датчик переходит в исходное состояние. Я при паразитном питании и в паузах между битовыми интервалами подпитываю датчик через вывод контроллера.
|
+1, аналогично считаю так же
Из даташита
Цитата:
|
To assure that the DS18B20 has sufficient
supply current, it is necessary to provide a strong pullup on the 1-Wire bus whenever temperature
conversions are taking place or data is being copied from the scratchpad to EEPROM
|
Беглый перевод
Цитата:
|
Чтобы быть уверенным, что у DS18B20 есть достаточно питания,необходимо обеспечить pullup(подтяжку к питанию) на шине 1-Wire всякий раз, когда температурные преобразования имеют место, или данные копируются с временного буфера на EEPROM
|
|
|
|
|
27.04.2010, 07:49
|
|
Прописка
Регистрация: 09.10.2007
Сообщений: 235
Сказал спасибо: 27
Сказали Спасибо 24 раз(а) в 24 сообщении(ях)
|
Re: Опять про DS18B20
Сообщение от urry
|
и замените обычный диод на Шоттки в паразитном питании.
|
А зачем вообще диод ставить?
При паразитном питании именно этих датчиков я использовал 2к, 3.3в (из-за дисплея), на порту устанавливал лог "0" и управлял им только через DDR. Висело 6 датчиков и всё было отлично.
igor-k, приведите схему и прогу, тогда помощь от нас будет эффективней.
|
|
|
|
27.04.2010, 18:41
|
|
Временная регистрация
Регистрация: 03.02.2005
Сообщений: 52
Сказал спасибо: 8
Сказали Спасибо 8 раз(а) в 6 сообщении(ях)
|
Re: Опять про DS18B20
Вот схема включения, без изысков. В исходнике то что касается обмена с DS.
В схеме номиналы сопротивлений не все правильны (схему делал для разводки ПП). С DS стоит сопротивление 2.4ком. Питание меги и датчика 4в
Последний раз редактировалось igor-k; 28.04.2010 в 08:03.
|
|
|
|
28.04.2010, 09:15
|
|
Вид на жительство
Регистрация: 13.05.2005
Сообщений: 386
Сказал спасибо: 9
Сказали Спасибо 44 раз(а) в 37 сообщении(ях)
|
Re: Опять про DS18B20
igor-k, повторяю вопрос: "Программа STRONG PULLUP на время CONVERT T делает или нет? Вообще, где-нибудь проверяется тип питания датчика? Я не увидел этого."
|
|
|
|
28.04.2010, 10:33
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Опять про DS18B20
Сообщение от chapa
|
Программа STRONG PULLUP на время CONVERT T делает или нет?
|
Ну судя по
Код:
|
ow_command( DS18X20_CONVERT_T, NULL );
ow_parasite_enable(); |
делает.
А вот алгоритм работы станный - сброс шины и затем сразу команда конвертации температуры. Без SKIP_ROM или MATCH_ROM. Удивительно, что вообще что то конвертируется. А дальше - чтение. Тоже без выбора датчика! Мне вот даже любопытно стало - почему с нормальным питанием работает? По идее не должно.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 10:08.
|
|