Перейти к содержанию
    

mega8 не получается найти ds18b20

Доброго дня.

 

Имеется сеть из ds18b20 в квартире по топологии звезда, на концах звезды (две ветви) находятся 3+3=6 датчиков, шина проложена на UTP5E, в центре сейчас роутер с программой digitemp.

Задача была заменить роутер на mega8 для сбора температуры с датчиков ds18b20.

Схема прилагается.

В реультате облом, датчики не ищутся, периодически находятся аж 35 шт но не тех, а с произвольным ROM. На двух датчиках воткнутых в макетку все работает идеально.

Перестроить шину не получится, кабель уже заложен в принтуса, если только на радиоканал перевести.

Было предпринято:

вставка доп. задержки в ресет шины.

запаралелено еще две ножки МК для лучшей подтяжки.

 

Не помогло.

В приложении осцилограммы.

Сейчас прихоит на ум:

сделать полевиком активную подтяжку к питанию с программынм уравлением.

установить на концах звезды шины восстановители сигнала: востановитель цифровых сигналов

Что посоветуете?

post-39302-1419694028_thumb.jpg

ds18b20_rs485_27122014.rar

waveform_after_paralel_pin.rar

waveform_before_paralel_pin.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что посоветуете?

1. Взять-таки осциллограф и на месте все выяснить. Это самый простой и быстрый способ решения вашей проблемы.

2. С "землями" Меги и датчиков все гуд ? В смысле, у вас куча датчиков и в центре Мега. Так вот, я подозреваю, что датчики в тех местах, где они установлены, не изолированы от труб отопления, бетонных полов, арматуры и проч. Т.е., у каждого (или не у каждого) датчика есть гальваническая связь со зданием, причем связь эта всякий раз реализуется через разные сопротивления (сопротивление бетонного пола и сопротивление труб, например, различаются очень заметно). Проблема усугубляется тем, что датчики дополнительно заземлены на Мегу через кабель, в результате начинается натуральный кавардак. Или я не прав ?

3. 100 пик на кварце - это атас. Равно как и кнопка сброса, вызывающая КЗ в линии питания :)

4. От C2 один вред, уберите его поскорее ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Взять-таки осциллограф и на месте все выяснить. Это самый простой и быстрый способ решения вашей проблемы.

2. С "землями" Меги и датчиков все гуд ? В смысле, у вас куча датчиков и в центре Мега. Так вот, я подозреваю, что датчики в тех местах, где они установлены, не изолированы от труб отопления, бетонных полов, арматуры и проч. Т.е., у каждого (или не у каждого) датчика есть гальваническая связь со зданием, причем связь эта всякий раз реализуется через разные сопротивления (сопротивление бетонного пола и сопротивление труб, например, различаются очень заметно). Проблема усугубляется тем, что датчики дополнительно заземлены на Мегу через кабель, в результате начинается натуральный кавардак. Или я не прав ?

3. 100 пик на кварце - это атас. Равно как и кнопка сброса, вызывающая КЗ в линии питания :)

4. От C2 один вред, уберите его поскорее ...

 

1. что собственно и делаю, уже раз в пятый, у самого уже идей не осталось, нужна помощь.

2. считаю, что нормально, т.к. этот косяк уже исправлял когда только начинал делать шину с датчиками, все датчики прилегающие к поверхностям от них изолированы и выводы датчиков в отдельных термоусадках.

3. это ошибка на схеме, там 22пФ, кнопка сброса на пине ресета.

4. чем он плох, емкость на порядок сократить, а так в паре с керамикой очень даже?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуйте на каждый датчик установить 1 кОм резистор между DATA и VCC.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

поставьте ключ подтяжки и сопротивление R2 уменьшите (у Вас 6 датчиков + длинные провода и все это нужно запитать через 4,3К а потом прокачать это все через бедную мегу) вот и глючит

 

даже в даташите есть рекомендация работать через ключ подтяжки уже с одним датчиком, если нет внешнего питания

Изменено пользователем cant

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуйте на каждый датчик установить 1 кОм резистор между DATA и VCC.

 

Так не получился, датчики закатаны в термоусадку, часть на улице в герметике. Можно в конце лучей шины поставить такой резистор на 3 и 3 датчика одновременно, до датчиков в этом случае будет где-то 5метров.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно в конце лучей шины поставить такой резистор...

Что ж, физика - экспериментальная наука.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

поставьте ключ подтяжки и сопротивление R2 уменьшите (у Вас 6 датчиков + длинные провода и все это нужно запитать через 4,3К а потом прокачать это все через бедную мегу) вот и глючит

 

даже в даташите есть рекомендация работать через ключ подтяжки уже с одним датчиком, если нет внешнего питания

 

Пробовал R2 уменьшить до 2к, не помогло.

Ключь по какой схеме поставить (Pull-Down или Pull-Up)?

В Application Note 148 есть разные варианты.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

на пять метров мега точно не вытянет. У вас бы не возникло вопросов при проброске питания напрямую, а не через линию связи.

 

ставьте мощный драйвер для прокачки сигнала так, чтоб еще и на питание всех датчиков с лихвой хватало, и про длину проводо не забывайте.

 

мне кажется, вам будет достаточна схема APPENDIX B – IMPROVED CPU BUS INTERFACE

 

из Application Note 148

 

APPENDIX C – ADVANCED 1-WIRE NETWORK DRIVER на мой взгляд весьма избыточна для вас

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У вас бы не возникло вопросов при проброске питания напрямую, а не через линию связи.

+100

С паразитным питанием не пробовал, а активное: сотни метров - без проблем.

Настоятельно рекомендую переделать подключение. Изыскать лишний провод и подать по нему питание на датчики.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

+100

С паразитным питанием не пробовал, а активное: сотни метров - без проблем.

Настоятельно рекомендую переделать подключение. Изыскать лишний провод и подать по нему питание на датчики.

Это все наработки прошлого,все новое с питанием и вот хочу на 485 перетащить шину.

 

на пять метров мега точно не вытянет. У вас бы не возникло вопросов при проброске питания напрямую, а не через линию связи.

 

ставьте мощный драйвер для прокачки сигнала так, чтоб еще и на питание всех датчиков с лихвой хватало, и про длину проводо не забывайте.

 

мне кажется, вам будет достаточна схема APPENDIX B – IMPROVED CPU BUS INTERFACE

 

из Application Note 148

 

APPENDIX C – ADVANCED 1-WIRE NETWORK DRIVER на мой взгляд весьма избыточна для вас

 

Позволю немного не согласиться, судя по осцилограммам, датчикам не хватает энергии, чтобы отработать на шине обмен и думаю надо делать Pull-Up, например как в AN4206 вот на этой картинке

4206Fig01.gif

Я не к тому что самый умный или пробывать не хочу, просто пробывал уже подтягивать полевиком к земле и не получилось, схема была похожая как раз на APPENDIX B – IMPROVED CPU BUS INTERFACE в AN148.

Вот осцилограмма сброса и ответа датчика при К2=4,7k

post-39302-1419770881_thumb.jpg

видно что нарастающий фронт после окончания сброса завален. Тоже самое при запаралеливании еще двух портов mega8 на шину (чтобы больше отдать по току в шину):

post-39302-1419770959_thumb.jpg

post-39302-1419771103_thumb.jpg

уже лучше но видимо недостаточно. А вот если поставить еще R2=2k

post-39302-1419771042_thumb.jpg

т.е. стало хуже, появились выбросы.

 

Согласны с моими выводами?

 

Схему поправил.

post-39302-1419771512_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

т.е. стало хуже, появились выбросы.

А не земля ли это подпрыгивает?

R2 (а еще лучше дополнительное R2') нужно установить на конце линии рядом с датчиком.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А не земля ли это подпрыгивает?

R2 (а еще лучше дополнительное R2') нужно установить на конце линии рядом с датчиком.

 

1k?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1k?

У вас же есть скоп. Подобрать, чтоб фронты стали рабочими.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Позволю немного не согласиться, судя по осцилограммам, датчикам не хватает энергии, чтобы отработать на шине обмен и думаю надо делать Pull-Up, например как в вот на этой картинке

 

Согласны с моими выводами?

 

если вы внимательно прочитаете мое предыдущее сообщение, то там четко указано, что вам необходимо обеспечить достаточное питание вашим датчикам.

 

Как вы этого добьетесь, уже другой вопрос: ТОЛЬКО ВЫ знаете как проложены провода и какой они длины.

 

Ваша задача - доставить питание и сигнал по одному длинному проводу. В каждом конкретном случае реализация может существенно отличаться от общепринятой, что вполне нормально.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...