Вопросы по работе с термометрами DS18B20

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

sheva_s писал(а):Подскажите датчик ds18b20 с завода настроен на какое разрешение ? Если я его перенастрою на другое разрешение сохраняються ли эти настройки в датчике после отключения питания, или стают на заводские. (может глупый вопрос просто хочу как можно больше упростить программу избавиться от настройки датчика)
а даташит слабО посмотреть? если сохраните конфигурацию в EEPROM - сохранится она и после выключения питания. а по умолчанию он в 12-битном режиме работает, если не ошибаюсь.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
sheva_s
Грызет канифоль
Сообщения: 256
Зарегистрирован: Пт апр 27, 2007 14:32:48
Откуда: Украина Кривой Рог
Контактная информация:

Сообщение sheva_s »

в даташит не слабо , проблема с английским. :(
Подскажите еще пожалуйста вот в этой строке

Код: Выделить всё

ds18b20_init(0,-55,125,DS18B20_9BIT_RES);

цифрами -55,125 что настраивается ?
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

Сообщение Igor_67 »

Ну, если внимательно прочитать ветку сначала, то можно обнаружить много полезной информации, как, например, то что минимальная температура, которую меряет DS18B20 = -55 град., а максимальная = 125 град. Вот это они и есть! :tea:
Цапу крутить надо!!! Ку или не ку?
Аватара пользователя
Pooher
Мучитель микросхем
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

в даташит не слабо , проблема с английским.

:)))
Настоящий даташит ПО-РУССКИ
А вообще, буржуйский учите, пригодится.
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

Igor_67 писал(а):Ну, если внимательно прочитать ветку сначала, то можно обнаружить много полезной информации, как, например, то что минимальная температура, которую меряет DS18B20 = -55 град., а максимальная = 125 град. Вот это они и есть! :tea:
а вот если почитать хелп к неизвестно за что всеми любимому CVAVR, то можно выяснить, что -55 и 125 в данном случае - это пороги "срабатывания" этого термометра-термостата (как в данном контексте перевести ALARM я не знаю). иначе говоря, для практического применения по барабану, какие цифры там писать - хоть нули.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Петро
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Вс сен 13, 2009 15:42:50
Откуда: Львів
Контактная информация:

Сообщение Петро »

здравствуйте!
Пытаюсь получить от DS18B20 сигнала присутствия, но не получается... Подтягивающий резистор подключен, использую все три вывода DS18B20, он же подключен к mega8l. Посмотрите плиз код инициализации

Код: Выделить всё

.def counter=R16
.def temp=R17
.def Delay_reg=R18
.equ tempIO=1   ;вивод 1-Wire интерфейса

.cseg
.org 0
   rjmp Program

Program:
   ldi temp,high(RAMEND)
   out SPH,temp
   ldi temp,low(RAMEND)
   out SPL,temp
;SFIOR.PUD=1
   ldi temp,(1<<PUD)
   out SFIOR,temp
   cbi PORTB,tempIO      ;подсаживаэм линию
   sbi DDRB,tempIO   
   ldi counter,0x86
;задержка 700 мкс
   _delay1_:
      rcall Delay
      dec counter
      brne _delay1_      
   cbi DDRB,tempIO      ;отпускаэм линию
;задержка 65 мкс
   ldi counter,0xD
   _delay2_:
      rcall Delay
      dec counter
      brne _delay2_
   sbic PORTB,tempIO ;если PORTB(1)=1 -нет датчика
      ret            ;выход
;задержка 500 мкс
   ldi counter,0x60
   _delay3_:
      rcall Delay
      dec counter
      brne _delay3_
       sbis PORTB,tempIO ;если PORTB(1)=0 краткое замикание на линии
      ret            ;выход

Main: rjmp Main
reti

Вот схемка в Proteus:
Вложения
DS18B20.doc
(254.17 КБ) 273 скачивания
Петро
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Вс сен 13, 2009 15:42:50
Откуда: Львів
Контактная информация:

Сообщение Петро »

кто-нибудь меня слышет? сюда можно еще что нибудь писать, тема еще не закрыта?
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

Петро писал(а):кто-нибудь меня слышет? сюда можно еще что нибудь писать, тема еще не закрыта?
да надоело просто на одни и те же вопросы отвечать одно и то же...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
tankjr
Родился
Сообщения: 14
Зарегистрирован: Пн май 11, 2009 23:11:01

Сообщение tankjr »

поделитесь прошивкой под авр на ассемблере
Аватара пользователя
Alex72
Прорезались зубы
Сообщения: 201
Зарегистрирован: Пн сен 08, 2008 11:21:11
Откуда: Пермь
Контактная информация:

Сообщение Alex72 »

tankjr писал(а):поделитесь прошивкой под авр на ассемблере


Наверно хотел сказать библиотеками под AVR на ассемблере. DS18B20 это прежде всего шина 1Wire. Вот что наше у себя навскидку, а вообще поисковики никто не отменял
Вложения
1Wire(asm).rar
(78.02 КБ) 314 скачиваний
Аватара пользователя
Pooher
Мучитель микросхем
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

Кнопочка есть на верху, ПОИСК называется :lol:
http://radiokot.ru/forum/viewtopic.php?p=159943#159943
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Аватара пользователя
AI_Disable
Сверлит текстолит когтями
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб
Контактная информация:

Сообщение AI_Disable »

Подскажите, где можно на русском почитать про алгоритм работы с более чем одним датчиком. Или сами объясните, если не очень лениво. :)
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

AI_Disable писал(а):Подскажите, где можно на русском почитать про алгоритм работы с более чем одним датчиком. Или сами объясните, если не очень лениво. :)
а что тут рассказывать? при обращении к датчику надо указать его конкретный адрес, вот и все. 20 датчиков у вас - должны знать все 20 их адресов. работа ведется очень просто:
- Иванов!
- Я!
- Уздечка от коня! давай температуру!
- Петров!
- Я!
- стекло от бутыля! давай температуру!

но прежде, разумеется, надо устроить перекличку, т.е. затребовать все адреса у всех датчиков. конкретные команды давным давно описаны, если самому не лень - найдете легко, на русском, и не в одном месте. дерзайте!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
AI_Disable
Сверлит текстолит когтями
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб
Контактная информация:

Сообщение AI_Disable »

Опять я забыл конкретизировать вопрос. :oops:
Да, я понимаю, как решить задачу, если известны все ROM. Но как быть, если они не известны? При посылке команды READ ROM все начинают отвечать хором, и различить датчики не представляется возможным.
Насколько я понял, для нескольких датчиков используется команда SEARCH ROM, но вот беда: в тех описаниях датчиков, которые я находил, про эту команду обычно написано что-то вроде "А, это типо слишком сложно/долго описывать/etc, так что пропустим этот шаг, а кому надо, найдёт где-то ещё".
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

а вы собрались самостоятельно делать функцию поиска адресов? вас не устраивают уже готовые исходники?

кстати, я не сторонник определять адреса датчиков в ходе работы устройства. я считаю, что значительно разумнее заранее определить их при помощи компьютера и потом уже прошивать глухо в программу МК.

в крайнем случае можно использовать не одну линию, а несколько, и по каждой обращаться к ЕДИНСТВЕННОМУ датчику, избавив себя, таким образом,ю от проблемы поиска адресов и неизбежного головняка "кто есть кто"...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Pooher
Мучитель микросхем
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

Я вот вообще очень долго думал, и так и не придумал в каком приложении можно использовать много датчиков, не зная "Кто есть кто". Ведь командой SEARCH ROM мы можем прочитать(вычислить) код каждого, но вот каким он окажется на линии, первым, четвёртым, сто двадцать восьмым, мы не знаем. Это хорошо если их два, а если сто? Подумайте, оно Вам надо?
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Аватара пользователя
AI_Disable
Сверлит текстолит когтями
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб
Контактная информация:

Сообщение AI_Disable »

ARV, да, есть желание написать такую функцию, если смогу, конечно. Судя по вашему иронизирующему вопросу, это не такая простая задача? Готовые исходники, не устраивают тем, что я не могу понять как они работают :)
Определять код заранее, тоже не очень удобно: во-первых, чтоб повторить устройство понадобится компьютер+адаптер+софт, а во-вторых, после замены датчика потребуется перепрошивка МК.
Проблему определения "какой датчик, где расположен" собираюсь решить записью всех ROM в eeprom или флэш, при первом включении устройства.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

AI_Disable писал(а):ARV, да, есть желание написать такую функцию, если смогу, конечно. Судя по вашему иронизирующему вопросу, это не такая простая задача? Готовые исходники, не устраивают тем, что я не могу понять как они работают :)
Определять код заранее, тоже не очень удобно: во-первых, чтоб повторить устройство понадобится компьютер+адаптер+софт, а во-вторых, после замены датчика потребуется перепрошивка МК.
Проблему определения "какой датчик, где расположен" собираюсь решить записью всех ROM в eeprom или флэш, при первом включении устройства.
лучше, чем уже написано в даташите, точнее, апноуте, вы все равно не сделаете :) задача там не суперсложная для понимания, но потеть над давно решенной задачей - как-то не гуд... иронии нет, есть удивление бессмысленностью занятия.

по поводу вашего прибора. допустим, у вас 2 датчика: один в доме, другой на улице. адреса у них, естественно, разные. вы запукстили поиск, нашли 2 адреса - как ваш прибор узнает, что первый найденный датчик - это уличный? а второй - домашний? если затем один из датчиков вы замените на другой - еще вопрос, окажется его адрес меньше или больше оставшегося - как ваша система опознает, вместо которого появился новый датчик - вместо уличного или домашнего?! она ведь знает только НОМЕР, но не МЕСТО.

значит, вам надо продумывать целую систему настроек, писать инструкцию пользователя, как все это настраивать... морока да и только :)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
AI_Disable
Сверлит текстолит когтями
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб
Контактная информация:

Сообщение AI_Disable »

Согласен, если датчика два-три, то "игра не стоит свеч". Я сейчас пытаюсь сделать устройство с 20-тью датчиками и возможностью добавления ещё n-ого количества. Тянуть к каждому датчику свой провод, как-то не очень хочется, тем более, если нужно будет добавить датчиков, то придётся лезть в устройство. Да и портов на всех не напасешься.
Предполагаю сделать начальную настройку, когда человек "объяснит" устройству какой датчик, где находится.
Также предполагается, что в один момент времени может выйти из строя не более одного датчика, так что устройство сразу сможет понять, какой из датчиков заменили.
Аватара пользователя
Pooher
Мучитель микросхем
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

А не проще сделать меню? Подключаем датчик, прописываем, подключаем второй, прописываем,..... Вот это, на мой взгляд, самое выгодное решение.
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»