Страница 1 из 1
DS18B20 - нет сигнала Presence после Reset в Proteus
Добавлено: Вс фев 06, 2011 11:44:11
IvanM
МК AT90S2313, три 7-сегм. индикатора, DS18B20.
;Функция ресета :
Код: Выделить всё
ds18b20_reset:
cbi PortB,0 ; подготовим порт перед изменением направления - будем передавать землю
sbi DDRB,0 ; меняем порт термометра на ВЫХОД
ldi tmp,248
rcall delay ; делает задержку макс.250 мкс. В tmp пишем нужное количество мкс.-2
ldi tmp,248
rcall delay
ldi tmp,98
rcall delay
; итого землю держали 600 мкс. Нам достаточно! (нужно не менее 480 мкс)
cbi PortB,0
cbi DDRB,0 ; меняем порт термометра на ВХОД
ldi tmp,68 ; даем 70 мкс. порту на формирование PRESENCE (формирует макс. 60 мкс. - т.е. с запасом)
rcall delay
sez ; PRESENCE (флаг установлен)
sbis PinB,0 ; если есть PRESENCE - следующую пропускаем
clz ; ошибка (флаг сброшен)
ret
Вызываю так :
Код: Выделить всё
rcall ds18b20_reset
ldi command,0b00010100 ; пишем 10 - если НЕТ СИГНАЛА ОТ ДАТЧИКА (на самом деле это 10, просто в формате термометра (далее
; в BinToDig нулевой бит сдвигается)
brne PC+2 ;brne label ; branch if not equal - переход если флаг нуля сброшен.
ldi command,0b00101000 ; пишем 20 - если ПРЕСЕНС ЕСТЬ! (на самом деле это 20, просто в формате термометра (далее
; в BinToDig нулевой бит сдвигается)
rcall BinToDig ; преобразовываем формат датчика в символы индикатора посимвольно (входящий параметр - command)
rcall displays ;отображаем посимвольно
Функции отображения и конвертирование - проверенные - работают.
А в протеусе индикаторы выводят - 10. Т.е. НЕТ сигнала ПРЕСЕНС

Может в протеусе чето не так развел и датчик не работает ?
Re: DS18B20 - нет сигнала Presence после Reset в Proteus
Добавлено: Вс фев 06, 2011 11:59:52
Tom91
IvanM, у меня такая же проблема...
Вот после экспериментов, выявилось следующее:
Поэкспериментировал с задержками, выяснил что после удержания ("0" в течении >480мкс ) датчик подаёт отклик уже через 5мкс (15-60мкс по ДШ) и удерживает его примерно 10мкс (60-240мкс по ДШ)....
Тоесть после 600мс удержания "0" порт на вход, ждём ~10мкс и проверям состояние...
Так что попробуйте поменять задержки на мои экспериментальные + советую убрать
после 600мкс ожидания, он и так у Вас сброшен в начале..
P.S. может партия левая какая...

Re: DS18B20 - нет сигнала Presence после Reset в Proteus
Добавлено: Вс фев 06, 2011 13:22:34
IvanM
Tom91 писал(а):P.S. может партия левая какая...

Пока до реального устройства не дошел. А в протеусе ведь левой партии быть не может

Гляньте на разводку в протеусе. Чето точно там не так...
Re: DS18B20 - нет сигнала Presence после Reset в Proteus
Добавлено: Вс фев 06, 2011 13:27:29
Tom91
IvanM, сорри видно читал не внимательно.... протеуса у меня нет, всё всегда делаю в живую, да там разводить особо нечего.. 1- GND , 2 - выход с подтяжкой через 4,7к к Uпит., 3 - Uпит. +5V
Re: DS18B20 - нет сигнала Presence после Reset в Proteus
Добавлено: Вс фев 06, 2011 15:08:01
IvanM
Tom91 писал(а):Тоесть после 600мс удержания "0" порт на вход, ждём ~10мкс и проверям состояние...
Так Работает!
Ничего не понимаю

А как же тогда даташит. Уже на память его выучил. Какие тайминги при чтении-записи использовать?
Re: DS18B20 - нет сигнала Presence после Reset в Proteus
Добавлено: Вс фев 06, 2011 15:45:17
Tom91
IvanM писал(а):Tom91 писал(а):Тоесть после 600мс удержания "0" порт на вход, ждём ~10мкс и проверям состояние...
Так Работает!
Ничего не понимаю

А как же тогда даташит. Уже на память его выучил. Какие тайминги при чтении-записи использовать?
Для меня это тоже

и после этого несоответствия с даташитом пропал интерес в дальнейшем исследовании, тут либо мы что-то упускаем, либо это какие-то особенные датчики новой версии и ДШ к ним нужен свой особенный...
P. S. Поднимал уже тему по этому поводу, так и ничего путного не предложили, кроме как попробовать на реально рабочих, проверенных прошивках...
Re: DS18B20 - нет сигнала Presence после Reset в Proteus
Добавлено: Вс фев 06, 2011 16:53:46
Dmitry Dubrovenko
Наверное мало чем поможет,
но я всё делал в Протеусе согласно даташита, и всё работало (но МК у меня - ПИКи).
Re: DS18B20 - нет сигнала Presence после Reset в Proteus
Добавлено: Вс фев 06, 2011 17:08:08
Tom91
Dmitry Dubrovenko писал(а):Наверное мало чем поможет,
но я всё делал в Протеусе согласно даташита, и всё работало (но МК у меня - ПИКи).
Да многие делали в Протеусе по ДШ что на AVR так и на PIC у них всё работало, я тогда делал в живую и всё думал на левый датчик, но тут я вижу такую же картину и в самом протеусе...
Тоесть похоже есть какой то скрытый подвох...
Re: DS18B20 - нет сигнала Presence после Reset в Proteus
Добавлено: Вс фев 06, 2011 17:24:42
Soir
IvanM писал(а):А в протеусе индикаторы выводят - 10. Т.е. НЕТ сигнала ПРЕСЕНС

Может в протеусе чето не так развел и датчик не работает ?
Прицепил осциллограф на датчик в Вашем проекте - ничего нет. Давайте весь проект, чтобы можно было отследить в пошаговом режиме.
Re: DS18B20 - нет сигнала Presence после Reset в Proteus
Добавлено: Вс фев 06, 2011 21:03:46
IvanM
Soir писал(а):IvanM писал(а):Прицепил осциллограф на датчик в Вашем проекте - ничего нет. Давайте весь проект, чтобы можно было отследить в пошаговом режиме.
ДАЮ полный прожект. Задержка там уже стоит 10 мкс. после ресета. а в 70.hex - задержка - 70 мкс
Re: DS18B20 - нет сигнала Presence после Reset в Proteus
Добавлено: Вс фев 06, 2011 21:28:08
Soir
IvanM писал(а):ДАЮ полный прожект. Задержка там уже стоит 10 мкс. после ресета. а в 70.hex - задержка - 70 мкс
Нет, так дело не пойдет. Это не ПОЛНЫЙ проект, а всего лишь hex-файл. По нему ничего не определить. Ну да ладно, дело хозяйское...
Re: DS18B20 - нет сигнала Presence после Reset в Proteus
Добавлено: Вс фев 06, 2011 21:38:01
Tom91
Для проверки при наличии осцилла для начала нужна простейшая тестовая программа:
1. Сброс шины в ноль
2. Удерживаем её в нуле >480мкс
3. Порт на вход (незабыть про подтяжку через 4,7к к Uпит.) - В этот момент смотрим все возможные изменения состояния на шине!
P.S. думаю в след. выходные удастся прогнать это на оцилле, щас времени нет..
Re: DS18B20 - нет сигнала Presence после Reset в Proteus
Добавлено: Пн фев 07, 2011 10:14:09
IvanM
От футы-нуты-йома-йо. Пресенс то термометр передает нулем! А не единицей
Советую всем кто еще не пробовал - поставить в протеусе осцилограф - НУЖНАЯ ВЕСЧЬ!!!!

Re: DS18B20 - нет сигнала Presence после Reset в Proteus
Добавлено: Пн фев 07, 2011 18:16:12
Tom91
Так я и отслеживаю его по нулю... вообщем причину пока так и ненашёл...
