DS18B20 - нет сигнала Presence после Reset в Proteus

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
IvanM
Родился
Сообщения: 11
Зарегистрирован: Сб янв 24, 2009 21:04:12

DS18B20 - нет сигнала Presence после Reset в Proteus

Сообщение 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. Т.е. НЕТ сигнала ПРЕСЕНС :( Может в протеусе чето не так развел и датчик не работает ?
Вложения
proteus.rar
(28.2 КБ) 170 скачиваний
Tom91
Встал на лапы
Сообщения: 108
Зарегистрирован: Пт окт 08, 2010 15:43:55

Re: DS18B20 - нет сигнала Presence после Reset в Proteus

Сообщение Tom91 »

IvanM, у меня такая же проблема...

Вот после экспериментов, выявилось следующее:

Поэкспериментировал с задержками, выяснил что после удержания ("0" в течении >480мкс ) датчик подаёт отклик уже через 5мкс (15-60мкс по ДШ) и удерживает его примерно 10мкс (60-240мкс по ДШ)....

Тоесть после 600мс удержания "0" порт на вход, ждём ~10мкс и проверям состояние...

Так что попробуйте поменять задержки на мои экспериментальные + советую убрать

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

cbi PortB,0
после 600мкс ожидания, он и так у Вас сброшен в начале..

P.S. может партия левая какая... :(
IvanM
Родился
Сообщения: 11
Зарегистрирован: Сб янв 24, 2009 21:04:12

Re: DS18B20 - нет сигнала Presence после Reset в Proteus

Сообщение IvanM »

Tom91 писал(а):P.S. может партия левая какая... :(
Пока до реального устройства не дошел. А в протеусе ведь левой партии быть не может :shock: Гляньте на разводку в протеусе. Чето точно там не так...
Tom91
Встал на лапы
Сообщения: 108
Зарегистрирован: Пт окт 08, 2010 15:43:55

Re: DS18B20 - нет сигнала Presence после Reset в Proteus

Сообщение Tom91 »

IvanM, сорри видно читал не внимательно.... протеуса у меня нет, всё всегда делаю в живую, да там разводить особо нечего.. 1- GND , 2 - выход с подтяжкой через 4,7к к Uпит., 3 - Uпит. +5V
IvanM
Родился
Сообщения: 11
Зарегистрирован: Сб янв 24, 2009 21:04:12

Re: DS18B20 - нет сигнала Presence после Reset в Proteus

Сообщение IvanM »

Tom91 писал(а):Тоесть после 600мс удержания "0" порт на вход, ждём ~10мкс и проверям состояние...
Так Работает!
Ничего не понимаю :shock: А как же тогда даташит. Уже на память его выучил. Какие тайминги при чтении-записи использовать?
Tom91
Встал на лапы
Сообщения: 108
Зарегистрирован: Пт окт 08, 2010 15:43:55

Re: DS18B20 - нет сигнала Presence после Reset в Proteus

Сообщение Tom91 »

IvanM писал(а):
Tom91 писал(а):Тоесть после 600мс удержания "0" порт на вход, ждём ~10мкс и проверям состояние...
Так Работает!
Ничего не понимаю :shock: А как же тогда даташит. Уже на память его выучил. Какие тайминги при чтении-записи использовать?


Для меня это тоже :shock: и после этого несоответствия с даташитом пропал интерес в дальнейшем исследовании, тут либо мы что-то упускаем, либо это какие-то особенные датчики новой версии и ДШ к ним нужен свой особенный... :roll:

P. S. Поднимал уже тему по этому поводу, так и ничего путного не предложили, кроме как попробовать на реально рабочих, проверенных прошивках...
Аватара пользователя
Dmitry Dubrovenko
Поставщик валерьянки для Кота
Сообщения: 2349
Зарегистрирован: Вс янв 09, 2011 16:51:39
Откуда: Санкт-Ленинград
Контактная информация:

Re: DS18B20 - нет сигнала Presence после Reset в Proteus

Сообщение Dmitry Dubrovenko »

Наверное мало чем поможет,
но я всё делал в Протеусе согласно даташита, и всё работало (но МК у меня - ПИКи).
ICQ нет, и, в ближайшее время, не будет.
Tom91
Встал на лапы
Сообщения: 108
Зарегистрирован: Пт окт 08, 2010 15:43:55

Re: DS18B20 - нет сигнала Presence после Reset в Proteus

Сообщение Tom91 »

Dmitry Dubrovenko писал(а):Наверное мало чем поможет,
но я всё делал в Протеусе согласно даташита, и всё работало (но МК у меня - ПИКи).


Да многие делали в Протеусе по ДШ что на AVR так и на PIC у них всё работало, я тогда делал в живую и всё думал на левый датчик, но тут я вижу такую же картину и в самом протеусе...

Тоесть похоже есть какой то скрытый подвох...
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: DS18B20 - нет сигнала Presence после Reset в Proteus

Сообщение Soir »

IvanM писал(а):А в протеусе индикаторы выводят - 10. Т.е. НЕТ сигнала ПРЕСЕНС :( Может в протеусе чето не так развел и датчик не работает ?

Прицепил осциллограф на датчик в Вашем проекте - ничего нет. Давайте весь проект, чтобы можно было отследить в пошаговом режиме.
IvanM
Родился
Сообщения: 11
Зарегистрирован: Сб янв 24, 2009 21:04:12

Re: DS18B20 - нет сигнала Presence после Reset в Proteus

Сообщение IvanM »

Soir писал(а):
IvanM писал(а):Прицепил осциллограф на датчик в Вашем проекте - ничего нет. Давайте весь проект, чтобы можно было отследить в пошаговом режиме.
ДАЮ полный прожект. Задержка там уже стоит 10 мкс. после ресета. а в 70.hex - задержка - 70 мкс
Вложения
proteus.rar
(29 КБ) 183 скачивания
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: DS18B20 - нет сигнала Presence после Reset в Proteus

Сообщение Soir »

IvanM писал(а):ДАЮ полный прожект. Задержка там уже стоит 10 мкс. после ресета. а в 70.hex - задержка - 70 мкс

Нет, так дело не пойдет. Это не ПОЛНЫЙ проект, а всего лишь hex-файл. По нему ничего не определить. Ну да ладно, дело хозяйское...
Tom91
Встал на лапы
Сообщения: 108
Зарегистрирован: Пт окт 08, 2010 15:43:55

Re: DS18B20 - нет сигнала Presence после Reset в Proteus

Сообщение Tom91 »

Для проверки при наличии осцилла для начала нужна простейшая тестовая программа:

1. Сброс шины в ноль
2. Удерживаем её в нуле >480мкс
3. Порт на вход (незабыть про подтяжку через 4,7к к Uпит.) - В этот момент смотрим все возможные изменения состояния на шине!

P.S. думаю в след. выходные удастся прогнать это на оцилле, щас времени нет..
IvanM
Родился
Сообщения: 11
Зарегистрирован: Сб янв 24, 2009 21:04:12

Re: DS18B20 - нет сигнала Presence после Reset в Proteus

Сообщение IvanM »

От футы-нуты-йома-йо. Пресенс то термометр передает нулем! А не единицей :)))
Советую всем кто еще не пробовал - поставить в протеусе осцилограф - НУЖНАЯ ВЕСЧЬ!!!! :))
Tom91
Встал на лапы
Сообщения: 108
Зарегистрирован: Пт окт 08, 2010 15:43:55

Re: DS18B20 - нет сигнала Presence после Reset в Proteus

Сообщение Tom91 »

Так я и отслеживаю его по нулю... вообщем причину пока так и ненашёл... :cry:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»