Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ATmega8 + DS18B20. Включаешь - не работает.
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
Илья Сивков
Доброго времени суток.

Сделал термометр на указанных деталях. В симуляторе Proteus ISIS отлично работает, а в железе - нет. На трёхзначном семисегментном индикаторе отображаются нули - признак того,что DS18B20 не найден. У кого-нибудь было что-то подобное? Чем может реальный термодатчик отличаться от модели?

Писал на AlgoritmBuilder, 1-wire интерфейс делал сам по спецификации.

Заранее благодарен, Илья Сивков.
haker_fox
Цитата(Илья Сивков @ May 25 2009, 10:36) *
Доброго времени суток.

Сделал термометр на указанных деталях. В симуляторе Proteus ISIS отлично работает, а в железе - нет. На трёхзначном семисегментном индикаторе отображаются нули - признак того,что DS18B20 не найден.

Вы уверенны, что причина неработоспособности в датчике? Может быть виновата индикация, управление портами, схема?
Я это к тому, что была ли выполнена поэтапная отладка проекта? Т.е. сначала отладили индикацию. Затем уже взялись за остальное.
Цитата(Илья Сивков @ May 25 2009, 10:36) *
Чем может реальный термодатчик отличаться от модели?

Именно тем, что он реальный) На него действует любой чих, в отличие от тепличной модели симулятора)
Цитата(Илья Сивков @ May 25 2009, 10:36) *
Писал на AlgoritmBuilder, 1-wire интерфейс делал сам по спецификации.

На счет AB: ужас! И как Вам терпения хватило?
На счет стандарта: если все сделано правильно, еще не факт, что должно работать. Проблема может быть в промежуточных преобразования. Насколько я помню, биты нужно последовательно принять, оформить в число... и тд и тп.

Как итог всего сказанного, я бы мог посоветовать только поэтапную отладку. Больше никак. А для ускорения и упрощения написания программы воспользоваться AVR Studio 4.xx с ее симулятором и ассемблером. О Си/Си++ молчу...
oll
Цитата(Илья Сивков @ May 25 2009, 06:36) *
В симуляторе Proteus ISIS отлично работает, а в железе - нет. На трёхзначном семисегментном индикаторе отображаются нули

Давайте кусок кода для DS18b20 - посмотрим.
ARV
в отличие от протеуса у натурального МК еще надо фьюзами тактовую частоту задавать smile.gif
кстати, модель DS18S20 в протеусе некорректно имитирует содержимое scratchpad для разных температур
Илья Сивков
Цитата
Давайте кусок кода для DS18b20 - посмотрим.


Вот.
Нажмите для просмотра прикрепленного файла Нажмите для просмотра прикрепленного файла
oll
Цитата(Илья Сивков @ May 25 2009, 14:29) *
Вот.

Непонятно - похоже что-то не так с временами. Поглядите код - проверено работает.
Pippeytz
Может стоит поробовтаь С\С++, AVRstudio , CV, или другой приличный компилятор , где можно заглянуть в готовые библиотеки, или
же изпользовать их. Если конечно не стоит цель зделать все ето в алгоритм билдере, что для моего ненабитого глаза являеться екстримом biggrin.gif
Илья Сивков
Цитата(oll @ May 25 2009, 17:10) *
Непонятно - похоже что-то не так с временами. Поглядите код - проверено работает.


Поставил себе те же интервалы - в железе не работает, хотя в симуляторе всё нормально.
SysRq
А reti там зачем?
oll
Цитата(SysRq @ May 25 2009, 21:47) *
А reti там зачем?

Точно - не заметил RETI там лишнее. А подпорка 4.7К есть?
_Pasha
Цитата(SysRq @ May 25 2009, 19:47) *
А reti там зачем?

В начале запрещаются прерывания (0->I), при выходе - разрешаются reti  Так что все нормально.
Илья Сивков
А кому-нибудь попадались дохлые датчики? Может, у меня именно этот случай?
clpe
Схемку в протеусе покажи
Red73
Цитата(Илья Сивков @ May 28 2009, 13:18) *
А кому-нибудь попадались дохлые датчики?

Делал несколько термометров с DS18B20. В разное время купил штук 10 датчиков, все работают до сих пор без проблем. Хотя, бывало, путал полярность питания и случайно закорачивал их выводы под напряжением - живучие!
Илья Сивков
Цитата
Схемку в протеусе покажи


Вот

Нажмите для просмотра прикрепленного файла
SysRq
М.б. у вас реальный датчик в режим термостата переведен? Попробуйте попереключать...
Илья Сивков
Расстрелять меня через повешанье!

Я просто забыл запрограммировать FUSE-биты, в результате чего МК работал от встроенного генератора.

Всем спасибо!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.