Alberto67 0 25 августа, 2006 Опубликовано 25 августа, 2006 · Жалоба При работе с датчиками DS1820 заметил такую странность: при стандартном (рекомендованном) подтягивающем резисторе (5,1 кОм) работает только часть датчиков (процентов 30), подключение +,-,данные. И только когда я заменил резистор на 100 кОм заработали все датчики. В чем причина? Где я допустил ошибку? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NBK 0 25 августа, 2006 Опубликовано 25 августа, 2006 · Жалоба При работе с датчиками DS1820 заметил такую странность: при стандартном (рекомендованном) подтягивающем резисторе (5,1 кОм) работает только часть датчиков (процентов 30), подключение +,-,данные. И только когда я заменил резистор на 100 кОм заработали все датчики. В чем причина? Где я допустил ошибку? А на линии - только один датчик или несколько? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 1 25 августа, 2006 Опубликовано 25 августа, 2006 · Жалоба В чем причина? Где я допустил ошибку? В устройстве к которому Вы подключаете датчик уже есть подтягивающий резистор. При 100K датчик не способен работать в принципе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alberto67 0 25 августа, 2006 Опубликовано 25 августа, 2006 · Жалоба На линии один датчик (есть идея подключить несколько, но пока бы с одним разобраться). Датчик подключен к PIC16F84A (вывод RA4 порта А, а там вроде как нет подтягивающих резисоров). И с другой стороны когда убираю резистор, то на ЖКИ выводятся все нули (тип, CRC, заводской номер), чего при наличии подтягивающего резистора быть не должно. При установке же резистора на 30 кОм работает половина датчиков (в наличии есть 10), при 100 кОм работают все. :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lof 0 2 сентября, 2006 Опубликовано 2 сентября, 2006 · Жалоба Я цеплял DS1820 к AVR AT8535 c длинной линии около 12метров по витой паре, количество датчиков было 6. Проблема была только с формированием времянки для самых дальних датчиков. Резисторы стояли как доке 4.7к. Я вынужден был в конце концов разделить датчики на две группы ( дальние и ближние ) и кинуть две витые пары. А какие расстояния хотите заложить Вы. И что используете для линии связи, может проблема именной в ней? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makwen 0 3 сентября, 2006 Опубликовано 3 сентября, 2006 · Жалоба Также соединял AT89C5131 c DS1820 и проблем не каких не возникало. Подтягивающий резистор был 4,7кОм. Может допущена ошибка в схеме?! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andy-L 0 4 сентября, 2006 Опубликовано 4 сентября, 2006 · Жалоба При работе с датчиками DS1820 заметил такую странность: при стандартном (рекомендованном) подтягивающем резисторе (5,1 кОм) работает только часть датчиков (процентов 30), подключение +,-,данные. И только когда я заменил резистор на 100 кОм заработали все датчики. В чем причина? Где я допустил ошибку? Я как-то подключал к АТ89С51 по такой вот схемке. Правда у МК было задействовано 2 ноги на однопроводную шину, но дальность была 100 метров и порядка 30 датчиков на линии в промышленном цеху с кучей частотников (производство мороженого). Цеплял по неэкранированной витой паре 5-й категории. Датчики с внешним питанием все, на конце линии диод шоттки в обратном включении. Ошибки конечно сыпались, но если выводить сообщение об ошибке только после 4-го неудачного чтения - то они практически не появлялись. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
OgRom 0 4 сентября, 2006 Опубликовано 4 сентября, 2006 · Жалоба Как показал опыт, подключать линию MicroLAN длиннее нескольких метров непосредственно на порт нежелательно. Любой микроконтроллер переключает свои порты очень быстро - единицы...десятки наносекунд, от этого удара линия банально "звенит", что портит весь обмен. Более того, работающие при комнатной температуре датчики могут перестать обмениваться на "минусе" и прочие сюрпризы. Необходимо использовать аппаратный драйвер линии с "мягкими" фронтами. Советую посмотреть также Application Note 108:App108.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alberto67 0 4 сентября, 2006 Опубликовано 4 сентября, 2006 · Жалоба Спасибо всем кто ответил. Сейчас все собрано на макетке, так что расстояние соединительных проводов не больше 15-20 см. До этого работал с DS1990A (ключ), никаких проблем небыло. Ошибку в схеме, вреде бы, допустить сложно, всего-то три провода... :( Попробую воспользоваться советами от OgRom и Andy-L. Буду бороться дальше :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andy_Mozzhevilov 0 5 сентября, 2006 Опубликовано 5 сентября, 2006 · Жалоба Попробуйте посмотреть софт и сравнить состояния пина с диагармой из даташита. Насколько я помню, единица должна делаться подтягивающим резистором и пином, настроенным на вход как при передаче, так и при приеме данных с 1-wire. Иногда встречается ошибка, что при передаче единицу делают пином контроллера, настроенным на режим output. Для х51 это до лампочки, а вот для PIC, AVR - нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alberto67 0 5 сентября, 2006 Опубликовано 5 сентября, 2006 (изменено) · Жалоба Вся проблема в том, что софт писал я сам :) по даташиту. Единица (и при вводе и при выводе) формируется за счет перевода вывода МК на вход (имитация схемы с открытым коллектором), так что здесь проблем нет. DS1990A (ключ) с таким же протоколом обмена (поддерживается только команда 33Н - чтение ПЗУ) работает прекрасно, а вот с термометрами какие-то непонятки. Может я чего не понимаю, но тот же протокол, все должно работать, но нет: ключи читаются, а термометры нет. Хотя при увеличении сопротивления резистора до 100К все Ok. Изменено 5 сентября, 2006 пользователем Barmaley67 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lof 0 5 сентября, 2006 Опубликовано 5 сентября, 2006 · Жалоба А Вы пытались посмотреть сигнал осцилографом? Может быть сигнал действительно с резкими фронтами и увеличивая резистор до 100к Вы просто датчики вводите в состояние когда им начинает нехватать питания и они сами внутри себя начинают сглаживать фронты и начинают работать. А попробуйте для эксперимента между входом процессора и линией до подтягивающего резистора 4.7к вставить резистор 100-200ом и тем самым сгладить фронты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alberto67 0 6 сентября, 2006 Опубликовано 6 сентября, 2006 (изменено) · Жалоба Стоит резистор и как раз на 200 Ом. Как я уже писал данная схема подключения использовалась для чтения ключей DS1990A и резистор я поставил для предотвращения замыкания на землю, да и в дельнейшем собираюсь использовать несколько датчиков (подключение/отключение на рабочем устройстве), так что стоит резистор. А сам сигнал не смотрел, приду домой - посмотрю. Изменено 6 сентября, 2006 пользователем Barmaley67 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться