Всё по DS18(B/S)20.

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Аватара пользователя
Gerik_PP
Открыл глаза
Сообщения: 59
Зарегистрирован: Вт ноя 07, 2006 14:14:16
Откуда: пос. Правдинский
Контактная информация:

Re: Всё по DS18(B/S)20.

Сообщение Gerik_PP »

IM1 писал(а):Почитайте ради интереса руководства по применению от Максим. Там много чего интересного, вот например: о линиях до 600м.

Спасибо, действительно интересно! Наконец-то хоть что-то толковое на русском почитать можно.
rain27
Родился
Сообщения: 1
Зарегистрирован: Вс мар 10, 2013 13:26:15

Re: Всё по DS18(B/S)20.

Сообщение rain27 »

подскажите, есть у кого пример функции для расчета CRC что то поиском ничего похожего немогу найти
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Всё по DS18(B/S)20.

Сообщение Аlex »

что то поиском ничего похожего немогу найти
http://yandex.ru/yandsearch?clid=9582&t ... 2+CRC&lr=5
Куча ссылок...
Аватара пользователя
wellcom
Нашел транзистор. Понюхал.
Сообщения: 190
Зарегистрирован: Чт фев 24, 2011 13:00:49

Re: Всё по DS18(B/S)20.

Сообщение wellcom »

Нужны ваши идеи :idea: по поиску неисправности/бага.
Устанавливаю по серийнику 18В20 разрешение в 11 бит и сохраняю в EEPROM. После, сразу пытаюсь прочитать регистры, но датчик не отвечает (читаю все время единицы).
Использую следующую последовательность команд
1. //сброс
2. MATCH_ROM; //и отправляю серийник
3. WRITE_SCRATCHPAD
4. _TH; //пишем в регистр TH
5. _TL //пишем в регистр TL
6. _RES //пишем в регистр конфигурации
7. COPY_SCRATCHPAD
-пробовал ставить здесь задержки - не помогают.
8. READ_SCRATCHPAD //попытка прочитать память
9. //читаю память. но читаются только единицы :shock:

Из другой ф-ции чтения (везде одинаковы) после сброса видно что разрешение установилось, вопрос - почему я сразу не могу его прочитать?????
:solder: 32-х ядерный процессор из П213В
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Всё по DS18(B/S)20.

Сообщение Gudd-Head »

wellcom писал(а):Из другой ф-ции чтения (везде одинаковы) после сброса видно что разрешение установилось

Опишите подробней последовательность, где вы ресеты делаете.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
wellcom
Нашел транзистор. Понюхал.
Сообщения: 190
Зарегистрирован: Чт фев 24, 2011 13:00:49

Re: Всё по DS18(B/S)20.

Сообщение wellcom »

В ф-ции чтения температуры я тоже читаю всю память 18В20 по такому алгоритму
1. //сброс 1wire
2. MATCH_ROM; //и отправляю серийник
3. READ_SCRATCHPAD //попытка прочитать память
4. //читаю память, пров CRC - все ок.
А когда я меняю разрешение, то после этого сразу память не могу прочитать, и не пойму в чем дело. В итоге ресет только в начале каждой ф-ции чтения/записи 18В20
Последний раз редактировалось wellcom Пн мар 11, 2013 11:47:30, всего редактировалось 1 раз.
:solder: 32-х ядерный процессор из П213В
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Всё по DS18(B/S)20.

Сообщение Gudd-Head »

Бля, ну неужели так сложно посмотреть ДШ и сделать всё как там?
СпойлерИзображение
Это почти то, что вам нужно. А вообще, для кого в ДШ нарисована диаграмма Commands Flowchart (это оттуда выдержка)?
Вложения
Безымянный.GIF
(40.61 КБ) 833 скачивания
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
wellcom
Нашел транзистор. Понюхал.
Сообщения: 190
Зарегистрирован: Чт фев 24, 2011 13:00:49

Re: Всё по DS18(B/S)20.

Сообщение wellcom »

Gudd-Head писал(а):Бля, ну неужели так сложно посмотреть ДШ и сделать всё как там?

Не тяжело, если бы знал английский. Чичал переведенный даташит, там такой таблицы нет, зато написано что после подачи серийника, все 18В20 откл до след ресета и работает только тот к которому мы обратились., т.е. я понял это так - после выдачи серийника и до сброса я могу слать/читать все что угодно но только с указанным 18В20. Теперь ясно, без сброса и очередного чтения ничего не выйдет. спасибо что ткнули носом.
:solder: 32-х ядерный процессор из П213В
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Всё по DS18(B/S)20.

Сообщение Gudd-Head »

wellcom писал(а):после выдачи серийника и до сброса я могу слать/читать все что угодно но только с указанным 18В20

Да, всё так. Но! Только одну команду. Для подачи следующей надо снова выдавать серийник.

Работайте с оригинальными документами, английского тут (в технической документации) не так уж много, можно выучить.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7359
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: Всё по DS18(B/S)20.

Сообщение uldemir »

В конце-концов, не понимаете английский - разглядывайте картинки. Там есть диаграмма "Figure 11. ROM Commands Flowchart" на два листа. Ходить можно только по стрелочкам.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Всё по DS18(B/S)20.

Сообщение Gudd-Head »

Знать бы ещё что в прямоугольниках и ромбиках написано :)))
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
wellcom
Нашел транзистор. Понюхал.
Сообщения: 190
Зарегистрирован: Чт фев 24, 2011 13:00:49

Re: Всё по DS18(B/S)20.

Сообщение wellcom »

Gudd-Head писал(а):Знать бы ещё что в прямоугольниках и ромбиках написано :)))
:)
:solder: 32-х ядерный процессор из П213В
Аватара пользователя
Aid1992
Встал на лапы
Сообщения: 140
Зарегистрирован: Вс ноя 11, 2012 14:13:02

Re: Всё по DS18(B/S)20.

Сообщение Aid1992 »

Ребята, помогите плиз по языку Си. Изучал проект Цифрового термометра ATMega8+DS18B20. Никак не могу понять, процедуру считывания температуры с датчика.

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

while(devices>0) //если датчики найдены, то бесконечный цикл запускается
    {
        temp=ds18b20_temperature(0); //считываем температуру с датчика
        if(temp>1000){  //если датчик выдает больше 1000
            temp=4096-temp; //отнимаем от данных 4096
            temp=-temp; //и ставим знак "-"
            }
            //sprintf(lcd_buffer,"t=%i.%u\xdfC",temp,temp%1); //записываем в массив для вывода на экран температуру


Что значит строчка если датчик выдает больше 1000, то его отнимаем от 4096, и записываем как отрицательную температуру. Объясните поподробнее плиз.
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: Всё по DS18(B/S)20.

Сообщение ChipKiller »

Объясните поподробнее плиз.
... самое подробное "объяснение" можно получить скачав datasheet на DS18b20, который есть даже с русским переводом, и посмотреть формат хранения температуры....
Аватара пользователя
Aid1992
Встал на лапы
Сообщения: 140
Зарегистрирован: Вс ноя 11, 2012 14:13:02

Re: Всё по DS18(B/S)20.

Сообщение Aid1992 »

ChipKiller писал(а):
Объясните поподробнее плиз.
... самое подробное "объяснение" можно получить скачав datasheet на DS18b20, который есть даже с русским переводом, и посмотреть формат хранения температуры....

Спасибо. Сейчас почитаю.
Аватара пользователя
Aid1992
Встал на лапы
Сообщения: 140
Зарегистрирован: Вс ноя 11, 2012 14:13:02

Re: Всё по DS18(B/S)20.

Сообщение Aid1992 »

ChipKiller писал(а):... самое подробное "объяснение" можно получить скачав datasheet на DS18b20, который есть даже с русским переводом, и посмотреть формат хранения температуры....

Все равно не понял ничего. Прошу на пальцах объяснить.
Аватара пользователя
ILYAUL
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Re: Всё по DS18(B/S)20.

Сообщение ILYAUL »

Чего не поняли? Каждое десятичное число можно представить в двоичном коде и наоборот. Тогда смотрите перевод из одной системы счисления в другую.
Аватара пользователя
shads
Опытный кот
Сообщения: 882
Зарегистрирован: Ср фев 22, 2012 01:25:21

Re: Всё по DS18(B/S)20.

Сообщение shads »

Aid1992 писал(а):Все равно не понял ничего. Прошу на пальцах объяснить.

Тут почитай.....
http://www.digit-el.com/files/open/ds18x20/ds18x20.html
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Всё по DS18(B/S)20.

Сообщение Аlex »

Тоже никогда не понимал эти условия, вычитания, ... Датчик отдаёт температуру в нормальном виде, уложив которую побайтно в int16, получаем нормальное знаковое значение температуры, умноженное на 16 (при 12-ти битах). Остаётся только поделить её на 16 и получим температуру с десятыми.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Всё по DS18(B/S)20.

Сообщение Gudd-Head »

Оффтоп в тему: :)
СпойлерИзображение
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Ответить

Вернуться в «Периферия»