Например TDA7294

Форум РадиоКот • Просмотр темы - Всё по DS18(B/S)20.
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Пт мар 29, 2024 07:36:52

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 1164 ]     ... , , , 47, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Чт фев 11, 2016 21:28:15 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 1368
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 7212
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Фигуре 11 и 12. Хоть они и на двух листах - смотреть вместе - 12-я продолжение одиннацатой. А дальше ходим по стрелочкам.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Чт фев 11, 2016 21:39:31 
Встал на лапы

Карма: 3
Рейтинг сообщений: 0
Зарегистрирован: Ср фев 04, 2015 21:08:59
Сообщений: 135
Рейтинг сообщения: 0
спасибо


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вс фев 14, 2016 09:37:59 
Грызет канифоль
Аватар пользователя

Карма: 2
Рейтинг сообщений: 10
Зарегистрирован: Сб янв 23, 2016 00:59:59
Сообщений: 287
Откуда: Чебоксары
Рейтинг сообщения: 0
вот решил самостоятельно написать код для работы с датчиком.начал с первых строчек разбирать и вникать почему да как....оказывается не все так просто как кажется изначально.
так вот возник очередной вопрос:

мне никак не понятно каким образом происходит притягивание шины к нулю

#define OWI_LOW OWI_DDR |= 1<<OWI_BIT //притягиваем шину к 0

упрощу написанное и запишу так: DDRD|=1<<0

и разложу как DDRD=0b 0000 0000 // я так полагаю что раз мы никак не сконфигурировали этот регистр
он имеет значение 0
далее: 1<<0 =0b 0000 0001 //ну тут вроде все ясно


выполняю сложение: 0b 0000 0000|0b 0000 0001

получаю в регистре DDRD 0b 0000 0001 // что я понимаю как BIT0 у PORTD настроен на выход

так как происходит тот самый нулевой уровень на общей шине????
знаю что в покое на общей шине 1...


вот тот отрывок с рабочего кода))
#define OWI_PORT PORTD
#define OWI_DDR DDRD
#define OWI_PIN PIND
#define OWI_BIT 0

#define OWI_LOW OWI_DDR |= 1<<OWI_BIT//притягиваем шину к 0
#define OWI_HIGH OWI_DDR &= ~(1<<OWI_BIT)//отпускаем шину



заранее благодарен!!!


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вс фев 14, 2016 10:45:40 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Вы же сами написали :
ROMan2947 писал(а):
что я понимаю как BIT0 у PORTD настроен на выход

А если он настроен на выход, то на него можно вывести что угодно - хоть 0, хоть 1.


Вернуться наверх
 
Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Пн фев 15, 2016 01:28:24 
Грызет канифоль

Зарегистрирован: Ср дек 30, 2009 09:55:39
Сообщений: 277
Рейтинг сообщения: 0
ROMan2947 писал(а):
...так как происходит тот самый нулевой уровень на общей шине????....


помимо регистра направления порта, смотрите что изначально было выведено в данный порт.
т.е. идёт управление не выводом в порт а именно направлением, чтобы не мешать выставлению уровня "0" датчику (ну или через резистор идёт подтяжка к "1")

удачи вам
(круглый)
ЗЫ
Ещё обратите внимание как идёт чтение каждого бита в протоколе 1-Wire. Более того - рекомендую прочитать именно текст, а не рассматривать картинку.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Пт апр 08, 2016 16:18:24 
Встал на лапы

Зарегистрирован: Вс окт 11, 2009 09:54:59
Сообщений: 111
Откуда: Пенза
Рейтинг сообщения: 0
:beer: Всем доброго.
зарылся я тут с 1wire и ds18b20 в частности.
попытался получить хоть байт от датчика-и ни в какую :cry: на линии приходит сплошная единица.
Тестирую на 100% рабочей плате.Используется PIC16F628A у которого на выводе RA4 подключен датчик..импульсы reset и presence проходят нормально-и далее ничего.Писал и свой код и брал с AppNote у Microchip"а.Не хочет сотрудначать и все тут.Так как железо рабочее- видимо ошибка в коде,может кто посмотрит на досуге и подскажет где её искать :dont_know:


Вложения:
Комментарий к файлу: файлы программы С
1wire.rar [3.97 KiB]
Скачиваний: 158

_________________
Интересная,однако,штука
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Сб апр 09, 2016 13:43:19 
Друг Кота

Карма: 64
Рейтинг сообщений: 964
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4210
Откуда: Ижевск
Рейтинг сообщения: 0
Может читаете поздно. Код удерживает линию 6мкс в 0, потом отпускает линию и только через 9мкс идет опрос. По мне, т.к. нижняя граница валидности не указана, лучше опрашивать несколько раз, допустим через 1мкс, на интервале 6...15мкс.
Цитата:
Read Data Valid tRDV max 15 μs


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Сб апр 09, 2016 18:05:11 
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватар пользователя

Карма: 133
Рейтинг сообщений: 775
Зарегистрирован: Чт апр 21, 2011 17:55:50
Сообщений: 4990
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
На АВР я бы свою библиотеку выложил.. А в ПИК, там подругому ассемблер команды называет. ))))
К моей же самописанной библиотеке надо добавить только подсчет контрольной суммы. Но с одним датчиком температуры работает и без контрольной суммы, хоть это и не правильно. :)))
Там просто надо быть очень точным во всех задержках.

_________________
Станислав


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вс апр 10, 2016 08:54:22 
Встал на лапы

Зарегистрирован: Вс окт 11, 2009 09:54:59
Сообщений: 111
Откуда: Пенза
Рейтинг сообщения: 0
СКАЗОЧНИК
'Там просто надо быть очень точным во всех задержках'.Так и есть))


akl Пасибки.Вы вовремя.поправил и получил 'настоящий' байт

_________________
Интересная,однако,штука


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Пт сен 09, 2016 07:33:24 
Родился

Зарегистрирован: Ср сен 07, 2016 15:19:47
Сообщений: 2
Рейтинг сообщения: 0
Доброго времени суток. Никак не могу понять как вывести адрес датчика на LCD. Имеется "unsigned char * id" с записанным туда адресом.
Что делать далее - не могу понять


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Пт сен 09, 2016 08:42:48 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
:facepalm:
Писать программу, что же ещё делать то...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Пт сен 09, 2016 08:55:13 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1018
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4871
Откуда: Минск
Рейтинг сообщения: 0
Адрес датчика - это набор из восьми 8-битных чисел. Вот и выводите эти числа (id[0], id[1] и т.д.), лучше в шестнадцатеричном виде - получится 2 символа на байт, как раз в 16 позиций поместится.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Пт сен 09, 2016 09:02:18 
Родился

Зарегистрирован: Ср сен 07, 2016 15:19:47
Сообщений: 2
Рейтинг сообщения: 0
WiseLord писал(а):
выводите эти числа (id[0], id[1] и т.д.)

Спасибо, всё получилось :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Ср сен 28, 2016 09:38:11 
Сверлит текстолит когтями
Аватар пользователя

Карма: 25
Рейтинг сообщений: 168
Зарегистрирован: Ср янв 29, 2014 08:41:31
Сообщений: 1231
Откуда: Баку
Рейтинг сообщения: 0
Всем доброго 24/7.

В досье на 18В20 (да и на других его родственников наверное) написано, что после команды 0х44 (начать преобразование) датчик сажает шину в ноль на все время преобразования. На практике я такого не замечаю. Можно конечно тупо вставить паузу по ДШ (от 100 до 750 мс в зависимости от битности), а потом температуру читать, но...

Сразу скажу, что все работает и читается, но вот мысль, что либо ДШ врет, либо я туплю не дает мне покоя.
То есть если я делаю так
Код:
if (init_ds())
    {
        send_ds(0xCC); // Skip ROM
        send_ds(0x44); // Start conversion
    }
        else return 0;
// Ждем окончания преобразования.
    t1over = tconv/100;  // Количество переполнений Т1.
    t1set(0x3CAF);  // 100ms to overflow
    while (t1over);

то всё работает.

Если же добавляю проверку, кто отработает первым - шина или таймаут:
Код:
if (init_ds())
    {
        send_ds(0xCC); // Skip ROM
        send_ds(0x44); // Start conversion
    }
        else return 0;
    _nop();
// Ждем окончания преобразования, на время которого DQ дожен быть в 0.
    if (DQ) return 0;  // Датчик не отвечает. Почему не 0 как говорит ДШ?????!!!
        else
        {
            t1over = tconv/100;  // Количество переполнений Т1.
            t1set(0x3CAF);  // 100ms to overflow
            while (DQ ^ t1over);  // Пока 0 и 1 результат будет 1.
        }

то получаю в ответ отсутствие датчика.

Кто-то реально заморачивался этим вопросом? Должен или не должен датчик сажать шину на все время преобразования?
На всякий случай цитата из ДШ на 18В20 (стр.11):

_________________
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Ср сен 28, 2016 09:41:08 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2057
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18024
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Zhuk72 писал(а):
В досье на 18В20 (да и на других его родственников наверное) написано, что после команды 0х44 (начать преобразование) датчик сажает шину в ноль на все время преобразования.
это не правда, там такого не написано. читайте внимательно: там написано, что в течение всего времени преобразования на тайм-слот чтения датчик всегда отвечает низким уровнем, т.е. нулем - это совсем не то же самое, что "сажает в 0 линию"! подавая время от времени тайм-слоты чтения вы можете определить конец преобразования более точно, чем просто подождав сколько-то там миллисекунд... но делать это нет особого смысла...

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

скушно, бабоньки!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Ср сен 28, 2016 09:53:51 
Сверлит текстолит когтями
Аватар пользователя

Карма: 25
Рейтинг сообщений: 168
Зарегистрирован: Ср янв 29, 2014 08:41:31
Сообщений: 1231
Откуда: Баку
Рейтинг сообщения: 0
Ясно, спасибо за разъяснение.

_________________
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Пт сен 30, 2016 20:51:45 
Сверлит текстолит когтями
Аватар пользователя

Карма: 25
Рейтинг сообщений: 168
Зарегистрирован: Ср янв 29, 2014 08:41:31
Сообщений: 1231
Откуда: Баку
Рейтинг сообщения: 0
Вчера случайно воткнул 1820 с обратной полярностью на несколько секунд в рабочую схему. Сперва не понял, с чего это вдруг упала яркость 7-сегментника. Спохватился, выдернул, вставил правильно. Работает :)

При этом абсолютно новый, правда очень давно купленный, 18В20 не желает работать. Причем в двух разных схемах, на двух абсолютно разных контроллерах. Проверял 2 штуки 1820 и один (другой уже) 18В20. Они работают без проблем, а этот выдает 85. Его я переполюсовкой не баловал :)))

_________________
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Пт сен 30, 2016 21:37:16 
Друг Кота
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1859
Зарегистрирован: Чт сен 12, 2013 00:54:12
Сообщений: 4119
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5
Получил миской по аватаре (5)
Для DS18B20:
Цитата:
The power-on reset value of the temperature register is +85°C
Скорее всего, где то в программе не выдержаны времена (вернее, допуски времён) при работе с DS18B20.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Сб окт 01, 2016 12:03:05 
Сверлит текстолит когтями
Аватар пользователя

Карма: 25
Рейтинг сообщений: 168
Зарегистрирован: Ср янв 29, 2014 08:41:31
Сообщений: 1231
Откуда: Баку
Рейтинг сообщения: 0
Другой 18В20 работает же. Тем более я использую 9-битный режим, там 100 мс хватает, но пробовал и 800 с тем же результатом. И с тайм-слотами все должно быть нормально, если три других датчика работают.

_________________
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Сб окт 01, 2016 16:03:41 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2057
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18024
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
датчик всегда выдает 85, если не принял команду старта измерения. так что либо с процессом обмена что-то не то (адрес, например, не тот), либо вообще не начинается измерение

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

скушно, бабоньки!


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 1164 ]     ... , , , 47, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y