Возникла проблема при работе с ds18b20

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Леонид_М
Грызет канифоль
Сообщения: 257
Зарегистрирован: Пн окт 03, 2016 10:06:09

Возникла проблема при работе с ds18b20

Сообщение Леонид_М »

Доброго времени суток,
возникластранная ситуация. По порядку:
atmega8a к выводам РС0 и РС1 подключены по 1 датчику ds18b20,
программа сначала считывает данные с датчика на РС0, потом с датчика на РС1,
по все время при считывании 1-го датчика все проходило нормально,
а - 2-го датчика происходило зависание, я так понял, что
из-за того, что после сигнала сброса не проходила команда 0xCC, при чем если
поменять местами датчики, то было то же самое, не работал датчик именно на РС1,
при этом подпрограмма обработки - одна и та же, подумал, что проблема в МК,
поробовал другой - но получил то же самое, как итог я понял, что так работает только
на РС1 даже на разных контроллерах, проблема была решена добавлением задержки после команды сброса на 1мс.

В итоге проблема не из-за датчика, т.к. на РС0 - они оба работали с исходной версией программы,
а проблема возникала только на РС1 - можно было бы грешить на него, но опять же непонятка: на другогм МК
было все один в один...
Хоть проблема и решена, но от этого она все одно - не стала понятна...
Кто нибудь сталкивался с таким? в чем м.б. проблема?
akl
Друг Кота
Сообщения: 4442
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: Возникла проблема при работе с ds18b20

Сообщение akl »

А на AVCC питание подано?
Леонид_М
Грызет канифоль
Сообщения: 257
Зарегистрирован: Пн окт 03, 2016 10:06:09

Re: Возникла проблема при работе с ds18b20

Сообщение Леонид_М »

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

Добавлено after 6 minutes 15 seconds:
не помого... значит в чем-то еще...

кондеры по питанию тоже ставил, и электролит, и керамику... не помогло...
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15539
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Возникла проблема при работе с ds18b20

Сообщение BOB51 »

Обычно используют несколько устройств на одном выводе с адресным вызовом необходимого.
А на каждое устройство по одному выводу... Это по меньшей мере не одновременно...
Второе нужна копия уже имеющейся программы - так что скорее всего программу "с пристрастием" смотреть надо.
8)
Леонид_М
Грызет канифоль
Сообщения: 257
Зарегистрирован: Пн окт 03, 2016 10:06:09

Re: Возникла проблема при работе с ds18b20

Сообщение Леонид_М »

Обычно используют несколько устройств на одном выводе с адресным вызовом необходимого.
А на каждое устройство по одному выводу... Это по меньшей мере не одновременно...
Второе нужна копия уже имеющейся программы - так что скорее всего программу "с пристрастием" смотреть надо.
8)


у меня там есть регистр ,который определяет, какой выход использовать: РС0 или РС1,
а код импользую один и тот же,
вот пример:

tst bit_b
brne no_03
cbi PORTC,PC0
sbi DDRC,0
rjmp no_13
no_03:
cbi PORTC,PC1
sbi DDRC,1
no_13:
ldi temp, 72
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15539
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Возникла проблема при работе с ds18b20

Сообщение BOB51 »

Под ассемблером не пытайтесь упрощенными решениями пользоваться.
Или полностью раздельные подпрограммы у каждой из которых свой вывод указан.
Единственно общий буфер блокнота.
8)
Леонид_М
Грызет канифоль
Сообщения: 257
Зарегистрирован: Пн окт 03, 2016 10:06:09

Re: Возникла проблема при работе с ds18b20

Сообщение Леонид_М »

а чем так плохо?
программу это сильно не усложнило...

да ,в протеусе работает без проблем, понятно ,что не показатель, но так, на всякий случай.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15539
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Возникла проблема при работе с ds18b20

Сообщение BOB51 »

Работа с uLAN это режим реального времени - жесткое соблюдение интервалов, соизмеримых со временем исполнения команд (по пакостности его только WS2812 на 800МГц превосходит). Посему не условные переходы по флажкам, а два независимых модуля дрыголапа должны быть.
Каждый вызывается в зависимости от требуемого выходного порта.
Была бы возможность косвенной адресации по содержимому регистра и/или памяти - тогда еще можно (например с масками можно эксперимент сделать) и то при тактировании заметно выше чем 1МГц (стандартное для АВР, ежли не трогать предделитель).
:roll:
ШПРОТ- не аргумент.
8)
Леонид_М
Грызет канифоль
Сообщения: 257
Зарегистрирован: Пн окт 03, 2016 10:06:09

Re: Возникла проблема при работе с ds18b20

Сообщение Леонид_М »

переделал на отдельные подпрограммы - вообще не стало работать без задержки,
при более внимательном чтении даташита увидел, что окончание сигнала присутствия от датчика
не говорит о его готовности, там нужна еще задержка, как раз ее я добавлял,
чтобы заработало, но тогда непонятно, почему работает именно на РС0, он тогда
тоже не должен был работать...
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Возникла проблема при работе с ds18b20

Сообщение oleg110592 »

обычно если в протеусе работает - значит и в железе будет (у меня так было). Только в протеусе идеал, а реально DS18B20 нормальных сейчас похоже не найти
https://www.drive2.ru/b/513061538530066675
а может маленькая доп. задержка влияет, если так попробовать:

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

tst bit_b
brne no_03
cbi PORTC,PC0
sbi DDRC,0
rjmp no_13
no_03:
cbi PORTC,PC1
sbi DDRC,1
rjmp no_13 ; добавить!
no_13:
ldi temp, 72

и в протеусе есть мощный виртуальный осциллограф - там времена замерять можно...
а в реале есть очень дешевый китайский Logic Analyzer (клон Saleae) - он 1-Wire знает...
https://www.drive2.ru/c/487568261928452488/
Леонид_М
Грызет канифоль
Сообщения: 257
Зарегистрирован: Пн окт 03, 2016 10:06:09

Re: Возникла проблема при работе с ds18b20

Сообщение Леонид_М »

oleg110592, идея понятна, спасибо, вечером попоробую, но только у меня тактавая 4МГц, и врятли одна команда так влияет,
т.к. когда я ставил задержку порядка 10мкС - это не помогло, а это уже 40 тактов, не вычислял, с какой минимальной заработает, но 250мкС - работает,
при чем если менять местами датчики - то все тоже самое... а датчики покупал в чипидип, не китайские вроде, хотя точно не скажу...
плохо, что пока что-то с осцилографом протеуса то ли не разобрался ,то ли он глючный -в пошаговом режиме на экране не отображается текущее действие,
такое впечатление, что осцилограф отстает..
otest
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Re: Возникла проблема при работе с ds18b20

Сообщение otest »

Отстой ослик. Измеряй логическим анализатором.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15539
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Возникла проблема при работе с ds18b20

Сообщение BOB51 »

В принципе... схема "паразитки" по даташиту должна подключать полное питание в перерывах между обменом.
На то специальный блочек ставится
http://img.radiokot.ru/files/20529/1us0r4a0ua.GIF
(и схемка с его использованием
http://img.radiokot.ru/files/20529/kc1ezblxl.JPG)
- минус три лапки МК использовать надо.
Ну и завал фронтов - зависит от типа кабеля.
Ну и производитель ессно свое может добавить:

qt18b20.pdf
(444.39 КБ) 327 скачиваний

MAX31820.pdf
(1.02 МБ) 301 скачивание

(https://www.maximintegrated.com/en/supp ... 0-faq.html)
IN18B20D-TSr.pdf
(301.26 КБ) 258 скачиваний

.....
У меня под АВРки готовых прожек нету - основа на ПИКи MCS51 прорабатывалась...
Ежли интересно - могу прислать для анализа-сравнения...
:roll:
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Возникла проблема при работе с ds18b20

Сообщение oleg110592 »

такое впечатление, что осцилограф отстает..

там волшебные кнопочка (One-Shot) есть - ничего не отстает
Изображение
поглядеть как
https://youtu.be/rp6nR8nT3x4?t=356
Леонид_М
Грызет канифоль
Сообщения: 257
Зарегистрирован: Пн окт 03, 2016 10:06:09

Re: Возникла проблема при работе с ds18b20

Сообщение Леонид_М »

otest, поробую, только сначала найду где в протеусе логический анализатор )

Добавлено after 33 seconds:
oleg110592, спасибо!

Добавлено after 8 minutes 45 seconds:
BOB51, у меня , если ставить задержку -все работает, просто хочу понять, почему без задержки
с РС0- любой датчик работает и без задержки, а на РС1 - любой только с задержкой.

при этом я не использую паразитное питание, так что завалов на импульсах быть не должно.
я попробую программно поменять их местами - если поменяются рабочие выводы - то все же проблема в
программе , а если и тут будет то же самое - тогда вообще непонятка...
akl
Друг Кота
Сообщения: 4442
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: Возникла проблема при работе с ds18b20

Сообщение akl »

Может на PC1 резистор не того номинала?
Леонид_М
Грызет канифоль
Сообщения: 257
Зарегистрирован: Пн окт 03, 2016 10:06:09

Re: Возникла проблема при работе с ds18b20

Сообщение Леонид_М »

akl, я просто пробовал менять местами подключение датчиков вместе с резисторами - именно провода между ножками МК, одно и то же...
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15539
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Возникла проблема при работе с ds18b20

Сообщение BOB51 »

Значит ошибка в полном тексте программы.
У атмеги 8/8А из альтернативного РС только с АЦП работает (и то одинаково для РС0 и/или РС1).
Для АВР достаточно выполнять "разворот шины" с постоянно присутствующим в регистре порта 0 (вариант работы с шиной "ОК").
Ну и не забываем, что данные на выводах устанавливаются минимум через NOP после выполнения команды, изменяющей статус вывода.
:roll:
NStorm
Поставщик валерьянки для Кота
Сообщения: 1978
Зарегистрирован: Ср июл 17, 2013 13:55:57

Re: Возникла проблема при работе с ds18b20

Сообщение NStorm »

DS18B20 с Китая куплены? Там 99% их фейка. Многие юзать можно (хотя некоторые врут сильно), но есть нюансы. Например версия от GXCAS/UMW больше 600мс на преобразование могут тратить. Монументальный труд по сравнению и отличиям копий собран тут: https://github.com/cpetrich/counterfeit_DS18B20/
Леонид_М
Грызет канифоль
Сообщения: 257
Зарегистрирован: Пн окт 03, 2016 10:06:09

Re: Возникла проблема при работе с ds18b20

Сообщение Леонид_М »

BOB51, дело в том, что у меня на оба датчика (выхода РС0 и РС1) - одна порограмма, я только в регистре ззадаю какой из них, все операции одни и теже ,что для
РС0, что для РС1 - выборка РС0 или РС1 идет только именно перед самим действием с РС0 и РС1. выше я приводил пример как сделано, повторю:
tst bit_b
brne no_03
cbi PORTC,PC0
sbi DDRC,0
rjmp no_13
no_03:
cbi PORTC,PC1
sbi DDRC,1
no_13:
ldi temp, 72

Добавлено after 35 seconds:
NStorm, покупал в чипи дип.
Ответить

Вернуться в «Разные вопросы по МК»