Подцепить датчик DS1821 к 2313

Обсуждаем цифровые устройства...
Аватара пользователя
Sailanser
Друг Кота
Сообщения: 3126
Зарегистрирован: Ср фев 01, 2006 22:29:02
Откуда: г.Ростов-на-Дону

Подцепить датчик DS1821 к 2313

Сообщение Sailanser »

Добрый вечер!
Хотелось бы спросить ни у кого нет случайно куска программы на ASM как подцепить датчик DS1821 к 2313 даташит на него скачал поглядел по инету но там только описания DS1820 различных модификаций. Сам еще только разбираюсь в програмировании микроконтроллеров. А то на днях порылся в своих запасах и его обнаружил и хотелось бы разобраться более подробно глядя в прогу и в даташит на датчик.

Заранее спасибо за ответ.
Реклама
Аватара пользователя
Max
Админ
Сообщения: 10815
Зарегистрирован: Вт авг 23, 2005 15:23:25
Откуда: Москва
Контактная информация:

Сообщение Max »

А чем 1820 не устраивает?
Реклама
Аватара пользователя
Sailanser
Друг Кота
Сообщения: 3126
Зарегистрирован: Ср фев 01, 2006 22:29:02
Откуда: г.Ростов-на-Дону

Сообщение Sailanser »

DS1821 не устраивает по одной простой причине за отсутствием оных в любой модификации интнересовался по нашим фирмам и на нашем базаре говорят нет предлагают 1821 а смысл мне его покупать коль у меня он уже есть :)) А в магазинах предлагают на заказ вести и там срок от 1-3 недель. Как они говорят сначала заказы формируем а потом уще поставщику шлем, вот поэтому и приходиться с DS1821.
Аватара пользователя
Max
Админ
Сообщения: 10815
Зарегистрирован: Вт авг 23, 2005 15:23:25
Откуда: Москва
Контактная информация:

Сообщение Max »

Понятно... и чего - по даташитам они сильно различаются?
По-моему, там базовая система команд одна и таже - по крайней мере, для измерения температуры вполне хватит...
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Sailanser
Друг Кота
Сообщения: 3126
Зарегистрирован: Ср фев 01, 2006 22:29:02
Откуда: г.Ростов-на-Дону

Сообщение Sailanser »

Вроде как гляжу по даташиту там сначала надо переключить из режима термостата в режим термометра. Просто с этой шиной еще ни разу не работал да и только разбираюсь во всем этом.
Реклама
Аватара пользователя
Max
Админ
Сообщения: 10815
Зарегистрирован: Вт авг 23, 2005 15:23:25
Откуда: Москва
Контактная информация:

Сообщение Max »

Ну по 1820 точно тема уже была - посмотрите в форуме...
Реклама
Аватара пользователя
Sailanser
Друг Кота
Сообщения: 3126
Зарегистрирован: Ср фев 01, 2006 22:29:02
Откуда: г.Ростов-на-Дону

Сообщение Sailanser »

Поглядел по форуму по DS1820 поглядел форум есть упоминание там про датчик DS18S20 это полный аналог DS1820 откопал у себя еще DS18B20 но унего разрядность выбирается между 9,10,11 и 12 битами по умолчанию с завода идут настроенны на 12 бит мож ктио подскажет как его переключить на 9 бит. Глядел по даташиту но все равно что-то не пойму.
Аватара пользователя
moLCHec
Мявтор!
Сообщения: 825
Зарегистрирован: Вс дек 18, 2005 20:04:42
Откуда: Свердловская обл.
Контактная информация:

Сообщение moLCHec »

в блокнотной памяти есть байт конфигурации который за это отвечает
адреса его не знаю но думаю в дате найдёшь
Вложения
регистр.JPG
в книге откуда инфу брал байт был под намером 4 после 2-байтов темп. и 2-х байтов темп.границ измерения
(25.87 КБ) 771 скачивание
Настоящий кот всегда либо голоден,
либо невыспался ...
Аватара пользователя
moLCHec
Мявтор!
Сообщения: 825
Зарегистрирован: Вс дек 18, 2005 20:04:42
Откуда: Свердловская обл.
Контактная информация:

Сообщение moLCHec »

почитал тут по 1WRIE вот что я понял;
начинается всё со сброса по этой команде все устройства
подглюченные на шину бросают свои дела и бегут к телевизору
на тебя смотреть :)))
и вот чё они видят
reset:
"садим" линию
ждём 700мкс
"отпускаем" линию
ждём 65мкс
проверяем линию если 0 то продолжаем иначе выводим "Устройство не подключено"
ждём 500мкс
проверяем линию если 1 то продолжаем иначе выводим "КЗ в линии"
ret
после того как мы определили что нас кто-то всё таки глядит проводим интерактивное шоу

чтение слота:
"гасим" линию
ждём 1мкс
"отпускаем"
ждём 13мкс
проверяем линию какой уровень такой и бит
ret

теперь по результатам опроса показываем кино
запись 0 в слот:
"садим" линию
ждём 80мкс
отпускаем линию
ret
запись 1 в слот
"садим" линию
ждём 4.5мкс
отпускаем линию
ждём 75 мкс
ret

если у тебя один датчик подглючен то тебе с ID кодами парится не надо
делаешь так
rcall reset
выводишь на линию команду сетевого уровня пропуск пзу 0x0СС
выводишь транпортную команду 0x44 преобразовать температуру
ждём 750мкс
выводим команду 0x0BE чтение озу
читаем сначала мл. затем старший байт

передачабайта по 1-WIRE осуществляется начинается с млядшего,
по умолчанию датчик выдаёт 9 разрядный код температуры
Настоящий кот всегда либо голоден,
либо невыспался ...
kitOK
Родился
Сообщения: 1
Зарегистрирован: Сб янв 13, 2007 08:04:03

Сообщение kitOK »

Sailanser, про датчики всё подробно есть на http://woland.irk.ru/stm/
Аватара пользователя
Мышонок
Друг Кота
Сообщения: 3792
Зарегистрирован: Чт сен 14, 2006 11:42:09
Откуда: Обитаю на чердаке
Контактная информация:

Сообщение Мышонок »

Была хорошая статья в "Компонентах и технологиях". №2,3-2001 о цифровых датчиках температуры Dallas Semiconductor, т.е. серии DS (не только о DS1820/1821).
DS1820 из-за ошибки в конструкции снят с производства. Вместо него DS18S20 и DS18B20.
Последний раз редактировалось Мышонок Чт янв 18, 2007 20:56:20, всего редактировалось 1 раз.
Память очень интересная штука: бывает так, что запомнишь одно, а вспомнишь другое...
Аватара пользователя
Sailanser
Друг Кота
Сообщения: 3126
Зарегистрирован: Ср фев 01, 2006 22:29:02
Откуда: г.Ростов-на-Дону

Сообщение Sailanser »

Вопрос уже не актуален т.к давно сделал термометрер Atini2313+LCD16x2+два DS18S20. так что теперь все это добро меереет температуру на улице и в доме.
Аватара пользователя
Abakt
Вечно гонимый
Сообщения: 568
Зарегистрирован: Ср янв 10, 2007 19:15:51

Сообщение Abakt »

вот еще проектик
http://startcd.narod.ru/clock/clock.html
часы термометр ATmega8 WinAVR Proteus
Аватара пользователя
Алексей П
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Сб фев 24, 2007 06:26:18
Откуда: г.Нижний Тагил
Контактная информация:

Сообщение Алексей П »

А как бы переделать этот проект под LCD?
Аватара пользователя
Aheir
Модератор
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург
Контактная информация:

Сообщение Aheir »

Как-как..
Исходник же есть? Есть... Даже на С, что гораздо проще.
Берем да переделываем.
В том же CVAVR есть встроенные библиотеки для LCD, так что все условия есть.. :)
Оптимизм х (Опыт + Знания) = const
Dmitro
Открыл глаза
Сообщения: 64
Зарегистрирован: Пт дек 01, 2006 20:32:23
Откуда: Запорожье
Контактная информация:

два DS на один пин МК

Сообщение Dmitro »

Народ, может я ленивый и плохо искал, но вот не нашел, какой алгоритм если у меня два датчика на одной линии сидят, тут Skip ROM не покатит, как МК должен организовать запрос промежуточного ОЗУ, чтобы получить серийники каждго датчика, что-бы потом знать к кому конкретно обращаться, (так как возможно датчики будут меняться, то вариант с заранее известным номером устройства -не катит).
TechMike
Прорезались зубы
Сообщения: 247
Зарегистрирован: Сб дек 15, 2007 23:00:54
Откуда: Moscow
Контактная информация:

Re: два DS на один пин МК

Сообщение TechMike »

Доброго времени суток.
Не получается считать температуры на VB6 с более чем одного датчика
ds18b20. Использую команду 55H но датчики возвращают температуру
только одного из них, т.е. температура одного из дачиков
отображается на обоих.
Делал все по даташиту, подключен датчик паразитным питанием:

dmmy = TMTouchReset(MyHandle) 'сбрасываем шину
If TMAccess(MyHandle, state_buffer(0)) <> 1 Then GoTo point1 'exit function
dmmy = TMTouchByte(MyHandle, &H55) 'даем команду для выбора датчика по
его уникальному номеру
For i = 0 To 8
dmmy = TMTouchByte(MyHandle, ROMid(g).ROMOrig(i)) 'передаем в шину
уникальный номер датчика, с которым хотим работать
Next i
If TMAccess(MyHandle, state_buffer(0)) <> 1 Then GoTo point1 'exit function
dmmy = TMTouchByte(MyHandle, &H44) 'даем команду измерять температуру
Pause (1) ' пауза на время измерения температуры
dmmy = TMTouchReset(MyHandle) 'сбрасываем шину
If TMAccess(MyHandle, state_buffer(0)) <> 1 Then GoTo point1 'exit function
dmmy = TMTouchByte(MyHandle, &H55) 'даем команду для выбора датчика по
его уникальному номеру
For i = 0 To 8
dmmy = TMTouchByte(MyHandle, ROMid(g).ROMOrig(i)) 'передаем в шину
уникальный номер датчика, с которым хотим работать
Next i
If TMAccess(MyHandle, state_buffer(0)) <> 1 Then GoTo point1 'exit function
'Read the scratch of a DS18B20
dmmy = TMTouchByte(MyHandle, &HBE) ' даем команду для чтения
регистров(памяти) датчика
For i = 0 To 8
dmmy = TMTouchByte(MyHandle, &HFF)' читаем данные из регистров
датчика
TEMP_buffer(i) = dmmy
Next i

В ROMid(g).ROMOrig() хранится уникальный код девайса, передаю его полсе H55 в таком же виде как считал с попомщью команды TMRom.
Пробовал и посылать последний байт первым и если If ROM(i) <= &HF то обнулят байт серийного номера.
Все равно не получается, подскажите плс почему?

По даташиту DS18B20.pdf ("MEMORY FUNCTION EXAMPLE Table 5"):
TX Reset Reset pulse (480-960 ?s).
RX Presence Presence pulse.
TX 55h Issue “Match ROM” command.
TX <64> Issue address for DS18B20.
TX 44h Issue “ Convert T” command.
TX I/O line is held high for at least a period of time greater than tconv by bus master to allow conversion to complete.
TX Reset Reset pulse.
RX Presence Presence pulse.
TX 55h Issue “Match ROM” command.
TX <64> Issue address for DS18B20.
TX BEh Issue “Read Scratchpad” command.
RX <9> Read entire scratchpad plus CRC; the master now
recalculates the CRC of the eight data bytes received
from the scratchpad, compares the CRC calculated and
the CRC read. If they match, the master continues; if
not, this read operation is repeated.
TX Reset Reset pulse.
RX Presence Presence pulse, done.

Единственное что не делал, это Strong pull-up после команды начать
измерение температуры(H44). НО температуру датчик измеряет т.е.
ему хватает напруги на линии. Если на шине только один датчик, то
проблем нем, все читается на ура, бъюсь уже три недели - результат
нулевой. Готов уже купить Temp Keeper, так как он все замечательно
меряет =(((

P.S. Проблему победил, исходники тут: http://rn3aig.ru/phpBB3/viewtopic.php?f=3&t=5
Последний раз редактировалось TechMike Вс фев 27, 2011 12:32:56, всего редактировалось 1 раз.
vovik15
Опытный кот
Сообщения: 768
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Контактная информация:

Re: DS1821

Сообщение vovik15 »

здравствуйте! с 18b20 работал ,а вот каие команды посылать на ds1821 никак не пойму.
подскажите пожалуйсто как работать с ds1821 .В нашем городе вообще такая глухомань,можно только детали для телевизора найти,ито не факт :)
пишу на СИ зараннее спасибо
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: Подцепить датчик DS1821 к 2313

Сообщение ChipKiller »

здравствуйте! с 18b20 работал ,а вот каие команды посылать на ds1821 никак не пойму.
... то же самое, но чуть проще :) . После сброса шлете - 0x0C, 0x01 ... разрешение одиночного преобразования. Потом - сброс и 0xАА .. чтение температуры
vovik15
Опытный кот
Сообщения: 768
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Контактная информация:

Re: Подцепить датчик DS1821 к 2313

Сообщение vovik15 »

ChipKiller писал(а):
здравствуйте! с 18b20 работал ,а вот каие команды посылать на ds1821 никак не пойму.
... то же самое, но чуть проще :) . После сброса шлете - 0x0C, 0x01 ... разрешение одиночного преобразования. Потом - сброс и 0xАА .. чтение температуры
извените,немного непонял что должно быть после многоточия
reset();
iw_out(0x0C);
iw_out(0x01);
.........
reset();
//тут чтение
Ответить

Вернуться в «Цифровая техника»