Последние статьи из блога
- MegaD-485-TTL - изолированный конвертер индустриального класса
- MegaD-4VC - подключаем сигналы 0-10В и 4-20мА к контроллеру
- MegaD-4CM - высокоточный 4-х канальный измеритель тока
- MegaD-4US - 4-х канальный датчик напряжения на DIN-рейку
- Как я боролся с собаками с помощью нейросети
- Интеграция ультразвукового датчика скорости и направления ветра
- Установка WiFi-камеры на робота-газонокосилку
- Твердотельный датчик направления и скорости ветра. Эксперимент
- iPhone на стене в качестве панели управления домом
- MegaD-16M-XT - подсветка выключателей и не только
- Переделка выключателей в кнопки и мини-обзор текущего рынка
- RadSens - модульный счетчик Гейгера с интерфейсом I2C
- "U" - значит универсальный. Обзор модуля MegaD-16U-XT
- SCD4x - современная альтернатива для измерения концентрации CO2
- HTU31D - новый датчик температуры и влажности с нагревательным элементом
- Измерение коэффициента пульсации ламп с помощью MegaD-2561
Подключение цифровых датчиков и шин. Особенности. Выбор кабеля
Контроллер MegaD-2561 поддерживает широкий спект различных цифровых датчиков и устройств, к которым в том числе относятся модули-расширители. При подключении подобной периферии короткими проводами (до 3-5 метров) никаких сложностей, как правило, не возникает. Но если длина кабеля до датчика или устройства больше 5-7 метров, то при подключении требуется учитывать некоторые особенности, которые описаны ниже. Реальная максимальная длина линии от контроллера до датчика зависит от множество факторов, такие как: тип кабеля и его характеристики, способ подключения к конкретным жилами кабеля, наличии рядом источников электромагнитных полей и идущих параллельно сигнальному силовых кабелей, номинала цифровой подтяжки, напряжения питания датчика и т.д.
Кабель и подключение к кабелю
- С цифровыми датчиками и шинами рекомендуется использовать кабель типа UTP (неэкранированная витая пара) категории 5e или выше. Материал проводников желательно медь (Cu), а не обмедненный алюминий (CCA). Сечение жил 22-24 AWG. Свитость пар в кабеле UTP существенно повышает стабильность и помехозащищенность линии при передаче цифровых данных. Поэтому, например, кабель КСПВ с цифровыми датчиками работает хуже.
- Желательно избегать применения FTP (экранированной витой пары), если экран кабеля не заземлен. При незаземленном экране характеристики FTP в плане помехозащищенности хуже, чем у кабеля UTP. Если используется заземление, то заземлять экран необходимо только в одной точке максимально близко к контроллеру. Под заземлением понимается реальное заземление, а не зануление и не подключение к общему минусу ("сигнальной земле", GND)
- Линии данных должны быть свиты с GND, но не между собой. GND выступает в роли экрана для цифровых линий. Для датчиков DS18B20 линия данных (Data, 1-wire) и GND должны быть в одной свитой паре. Для датчиков и устройств I2C подключение такое: SDA/GND (в одной паре) и SCL/GND (в другой паре), а питание к любому другому свободному проводу кабеля. Если доступно только 2 пары, то рекомендуется подключать так: SDA/GND и SCL/Vcc (питание +3.3В). Возможно, но не желательно подключать к одной паре цифровую линию и питание +12В.
- Следует использовать для питания датчика +5В вместо +3.3В, если датчик согласно документации допускает подключение такого напряжения.
Подтяжка цифровой шины
Как правило со стандартной интегрированной подтяжкой (например, на портах P30-P35, P38-P44) датчики типа DS18B20 стабильно работают на расстояниях до 12-15 метров, I2C-датчики с питанием до 5В до 30-35 метров. Комбинированные датчики типа MegaD-Wallmount-Sensor или MegaD-Outdoor-Sensor в силу применения в них определенных схемотехнических решений могут при правильном подключении работать на линиях до 80 метров.
"Подтяжка" - это резисторы, которые установлены в контроллере на каждом цифровом порту между линией данных и питанием. Подробнее о pull-up резисторе можно узнать в Википедии. Задача такого резистора сформировать на цифровом входе определенное логическое состояние (в данном случае высокий уровень). Если его не будет, то порт, как говорят в мире электроники, будет болтаться в воздухе (floating) и может при определенных условиях принимать случайное состояние, которое контроллер ошибочно будет воспринимать как цифровой сигнал.
В тех случаях, когда необходимо увеличить дальность или стабильность работы на длинных линиях следует снизить номинал встроенного подтягивающего резистора. Сделать это можно с помощью внешнего резистора. Например, установка внешнего резистора номиналом 4,7кОм между клеммой порта и клеммой +3.3В снизит номинал подтяжки в два раза. Эквивалентное сопротивление параллельно соединенных резисторов является величиной, обратной сумме величин, обратно пропорциональных сопротивлениям этих резисторов. Поэтому дополнительный резистор, включенный параллельно существующему резистору, не увеличивает, а уменьшает сопротивление.
В модулях MegaD-14-IOR для контроллеров V3 предусмотрены потенциометры, с помощью которых можно легко регулировать подтяжку, не прибегая к дополнительным мерам. Поворот против часовой стрелки уменьшит номинал подтяжки. По часовой стрелке - увеличит. Диапазон регулировок от 1кОм до 5,9кОм. Обычно в цифровых шинах на длинных линиях применяется номинал подтяжки около 2кОм, а на коротких от 4,7кОм до 10кОм. Необходимо иметь ввиду, что слишком малый номинал подтяжки на короткой линии может также негативно сказаться на стабильности работы.

Под лицевой крышкой MegaD-14-IOR находятся потенциометры (круглые элементы)
Подключение нескольких датчиков шиной
Для некоторых датчиков поддерживается работа в режиме общей шины. Это когда несколько датчиков подключатся к одному порту в целях экономии цифровых портов. В этом случае следует учитывать, что работать это будет только если датчики подключены к одному кабелю с минимальными ответвлениями. Если же два разных датчика подключаются к одному порту контроллера звездой (у каждого датчика свой длинный кабель), то общая шина или не будет работать или будет работать со сбоями.
Все описанные выше особенности имеют значение при длинах более 3-5 метров. Если же датчики или устройства находятся в непосредственном близости от контроллера, например, при подключении расширителей, данными рекомендациями можно пренебречь.
Хитрости реализации цифровых протоколов в MegaD-2561
Контроллер MegaD-2561 поддерживает работу с датчиками температуры DS18B20 по протоколу 1-wire и множеством различных цифровых датчиков по протоколу I2C. Причем такая поддержка есть абсолютно на всех портах. То есть, любой порт, который оснащен подтягивающим резистором (уже установлены на портах P30-P35, P38-P44, с помощью MegaD-14-IOR на любых портах P0-P13, P15-P28 или даже при ручном монтаже резистора к пинам разъемов XP1, XP2) будет иметь возможность работать со всем перечнем поддерживаемой периферии. Но у каждого протокола есть свои нюансы.
Преимущество DS18B20 в наличии уникального адреса у каждого датчика и использовании всего одного цифрового порта с функцией термостата. Причем в режиме 1WBUS к одному порту можно подключить пару десятков DS18B20 (правда у этого режима нет функции термостата). Но недостаток - крайне жесткие требования к реализации протокола и тайм-слотам. Если на длинной трассе фронты сигналов будут растянуты и не уложатся в отведенные тайминги, будут сбои и ошибки при передаче данных.
Протокол I2C устроен иначе. У него две отдельные линии. Линия данных SDA и линия тактирования SCL. Необходимо 2 цифровых порта. При этом протоколом никак не регламентируется частота тактирования, а значит скорость передачи данных. Фактически от 0 до 400кГц (а в более новых версиях стандарта до 3,4Мгц). По умолчанию для большинства устройств стандарт I2C подразумевает работу на частоте 100кГц. Но наши исследования показали, что при такой частоте максимальная дальность ограничивается несколькими метрами. Поэтому был выбран режим с частотой 38кГц, который с одной стороны позволяет в десятки раз повысить дальность, с другой стороны, учитывая крайне малый объем передаваемых данных, а зачастую всего несколько байт, сохранить хороший баланс производительности. Недостаток I2C - отсутствие уникальной адресации. Множество устройств, работающих по I2C, даже не имеют возможности смены адреса при этом требуя со стороны контроллера определенной процедуры инициализации. Подобные датчики нельзя подключать шиной, а при настройке порта они должны быть указаны в поле Dev.
При некоторых обстоятельствах контроллер позволяет экономить цифровые порты, используя для подключения разных устройств, даже с одинаковым адресом, одну линию SCL. Это возможно в двух случаях:
- Устройство или датчик находятся в непосредственной близости от контроллера (до 2-3 метров)
- Устройства подключены к одному кабелю минимальными ответвлениями шиной