Всё по DS18(B/S)20.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Всё по DS18(B/S)20.
Да и не только схему. Хотелось бы увидеть функции чтения/записи байтов в линию. Интересуют тайминги тайм-слотов. Только не говорите: "Они нормальные и соответствуют даташиту" 
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Всё по DS18(B/S)20.
Кстати, не понимаю: зачем использовать транзистор и лишнюю ногу, когда можно питать датчик напрямую с вывода МК — 1 мА наверняка многие потянут.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: Всё по DS18(B/S)20.
хорошо, схема показана на рисунке прикрепленном, Основной принцим тестов подключены 2 датчика, но поразному типу питания D1 по паразитному, D2 по обычному. контоллер мега32, кварц 16 Мгц. Программа написана в E-lab на паскале(кто нибудь еще в нем програмки пишет?).
Спойлер
Код: Выделить всё
{=======================}
procedure reset_otvet;
begin
excl(PortA,1);
excl(PortA,2);
udelay(480);
incl(PortA,1);
incl(PortA,2);
udelay(480);
end;
{========================}
procedure out_com(com:word);
var i,q : byte;
begin
case com of
$CC: H_com:=H_SkipRom; |
$44: H_com:=H_Convert; |
$BE: H_com:=H_Read_Scr; |
endcase;
i:=1;
while i<=8 do
q:=H_com[i];
if q=0 then excl(PortA,1);
excl(PortA,2);
udelay(65);
incl(PortA,1);
incl(PortA,2);
udelay(2);
elsif q=6 then excl(PortA,1);
excl(PortA,2);
udelay(2);
incl(PortA,1);
incl(PortA,2);
udelay(65);
endif;
inc(i);
endwhile;
end;
{========================}
procedure read_byte;
var i:byte;
w:byte;
begin
i:=1;
while (i<=16) and (i>=1) do
excl(PortA,1);
excl(PortA,2);
udelay(1);
incl(PortA,1);
incl(PortA,2);
udelay(1);
w:=pinA and %00000100;
if w=0 then SetBit(Ttek_voda,i,False);
else SetBit(Ttek_voda,i,True);
endif;
w:=pinA and %00000010;
if w=0 then SetBit(Ttek_maslo,i,False);
else SetBit(Ttek_maslo,i,True);
endif;
inc(i);
endwhile;
Ttek_maslo:=Ttek_maslo shra 5;
Ttek_voda:=Ttek_voda shra 5;
end;
{========================}
procedure opros;
begin
PushAllRegs;
DisableInts;
reset_otvet;
out_com($CC);
out_com($44);
udelay(900);
reset_otvet;
out_com($CC);
out_com($BE);
read_byte;
EnableInts;
PopAllRegs;
end;
{========================}- Вложения
-
- IMAG0148.jpg
- Схема подключения датчиков на макете.
- (151.89 КБ) 456 скачиваний
Re: Всё по DS18(B/S)20.
Осцилограммы приложу завтро, все оборудование на работе.
в этом то и дело, ноги контроллера должно хватить на пару датчиков, но все равно не получается.
Gudd-Head писал(а):Кстати, не понимаю: зачем использовать транзистор и лишнюю ногу, когда можно питать датчик напрямую с вывода МК — 1 мА наверняка многие потянут.
в этом то и дело, ноги контроллера должно хватить на пару датчиков, но все равно не получается.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Всё по DS18(B/S)20.
А почему до 16, а не до 8 ? Бит то 8 всегоКод: Выделить всё
while (i<=16) and (i>=1) do
Код: Выделить всё
udelay(1);
incl(PortA,1);
incl(PortA,2);
udelay(1); <<<<<<<<<< Этого мало перед чтением ! Хотя бы 3-4 us поставьте.
1 Us - маловато.
И ещё, не вижу окончательной задержки для завершения тайм-слота.
Re: Всё по DS18(B/S)20.
Я все 2 байта данных принимаю, задержку увеличу, но оно и так работает на нормальном питании.
"И ещё, не вижу окончательной задержки для завершения тайм-слота." была udelay(30), потом убрал.
"И ещё, не вижу окончательной задержки для завершения тайм-слота." была udelay(30), потом убрал.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Всё по DS18(B/S)20.
Но на "ненормальном" же не работаетоно и так работает на нормальном питании
Почему ? Да и 30-ти то тоже маловато.была udelay(30), потом убрал
PS: Что Вы тогда хотите от девайса, если занимаетесь отсебятиной ?
Re: Всё по DS18(B/S)20.
Как я и говорил - чудес не бывает... И уверяем, что всё строго по даташиту.
Re: Всё по DS18(B/S)20.
добрый день! с тайм словами чтения проблем нет, если датчик подключен по паразитом питанию, то я с него без ошибок считываю данные температуры и получаю 85, делал тайм слои при котором датчик отвечает какое у него питание, отвечал паразитное. Проблема в том что датчик не включается на преобразование.
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Всё по DS18(B/S)20.
anton1814 писал(а):тайменги...соответствуют временам в даташите и в программе
Нюню
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: Всё по DS18(B/S)20.
Попробуйте уменьшить подтягивающий резистор до 2.2К если напряжение питания 5в, до 1.2К если питание 3.3в. Еще не забывайте оставлять логическую "1" на шине перед выходом из подпрограмм инициализации шины, передачи и приема данных.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Всё по DS18(B/S)20.
Да что там уменьшать ? Он итак всё уменьшил да повырезал что можно 
Нужно придерживаться тех. документации, и проблем не будет возникать... А то лезут на форум с вопросом, почему у меня не работает. Потом выясняется, что ТС отсебядины накатал, потому, что ему кажется, что так должно работать. Причём всех упорно убеждает в этом...
Нужно придерживаться тех. документации, и проблем не будет возникать... А то лезут на форум с вопросом, почему у меня не работает. Потом выясняется, что ТС отсебядины накатал, потому, что ему кажется, что так должно работать. Причём всех упорно убеждает в этом...
Re: Всё по DS18(B/S)20.
мужики , подскажите как будет себя вести DS1820 к критическим для него отметкам температуры т.е в реале может быть и 125 гр. делал простенький терморегулятор по этой схеме http://www.radiosait.ru/page_281.html , и планирую его использовать в автоматике самодельного автоклава ? будет ли работать , или загнется быстро?
Re: Всё по DS18(B/S)20.
А чего это он загнется?.....
Это штатные для него температуры, так что смело 125 давай ему....
Правда, если все таки большие температуры возможны, чтобы не гадать, на сколько же его там зашкалило..., то уж лучше более высокотемпературный, но тут уж я не знаю, есть ли цифровые датчики с большей температурой чем у DS1820.....
Это штатные для него температуры, так что смело 125 давай ему....
Правда, если все таки большие температуры возможны, чтобы не гадать, на сколько же его там зашкалило..., то уж лучше более высокотемпературный, но тут уж я не знаю, есть ли цифровые датчики с большей температурой чем у DS1820.....
-
piligrim130
- Поставщик валерьянки для Кота
- Сообщения: 2392
- Зарегистрирован: Пт дек 03, 2010 10:52:25
Re: Всё по DS18(B/S)20.
Подскажите - тоже интересно экстремальное использование DS1820.
Если приклеить датчик к железу тороидального трансформатора получится ли снимать с него показание или магнитный поток убьет его ,трансформаторы от 1 до 4 квт .
Наверное сам датчик надо прятать в железную трубу
Если приклеить датчик к железу тороидального трансформатора получится ли снимать с него показание или магнитный поток убьет его ,трансформаторы от 1 до 4 квт .
Наверное сам датчик надо прятать в железную трубу
Re: Всё по DS18(B/S)20.
Убить - не убьет конечно..... но с уверенностью сказать что ему все ни по чем, тоже сложно.....
Наверное надо эксперементировать, разместить два датчика на поверхность одинаковой температуры, и к одному из них подвести сильное магнитное поле, и понаблюдать за показаниями (хотя, я склоняюсь к тому, что будет все ОК.)
Наверное надо эксперементировать, разместить два датчика на поверхность одинаковой температуры, и к одному из них подвести сильное магнитное поле, и понаблюдать за показаниями (хотя, я склоняюсь к тому, что будет все ОК.)
Re: Всё по DS18(B/S)20.
Больше чем на +125°C лучше не нагревать, кремний все-таки. А в заявленном диапазоне будет работать долго. А какая в автоклаве может быть максимальная температура? Кратковременно я нагревал датчик до 150°C, а может и больше.
Re: Всё по DS18(B/S)20.
максимальная температура будет 121 градус. но кроме температуры , там еще есть один параметр -давление , оно будет максимально атмосфер около четырех .вот тоже думаю , что для датчика это тоже не очень полезный параметр
