Приехали с Али усилители P82B715. Самое смешное, что в корпусах DIP-8 опять пришли опять нерабочие. Прям ковид какой-то на эти усилители в ДИПах. Хорошо, что параллельно, на всякий случай, заказал еще и в других корпусах (SOP8) у другого поставщика. Они, с переходником, на этом же макете работают. Так что, если кому-то нужны P82B71, то здесь и здесь не берите. Это пустышки. Здесь (SOP8) можно брать.
serjrv
Кандидат наук
Камышин
382 202
Отв.2244 14 Нояб. 21, 20:52
Приехали с Али усилители P82B715.OldBean, 14 Нояб. 21, 17:31
Я немного не понимаю, зачем пытаться применить в данном случае спец. микросхемку, если можно воткнуть 2 полевика + 4 резистора. При этом не только линию можно усилить, но и уровни автоматом согласовать. Цена слаботочного полевика - 2 рубля, плюс копейки за резисторы. Понятно что имеем ограничение по максимальному току, ограниченного портом проца (когда линия на ноль замыкается), но даже на самых дохлых все прокатывает, т.к. получим при резисторе в 470 Ом всего 7 с копейками мА на контроллерах запитанных от 3.3 вольта, и 10 с копейками мА на 5 вольтовых процах. Тут гораздо большая проблема защитить линию от наведенных импульсных помех, но ранее я уже писал про это (внимание на это ни кто не заострил просто). Но и тут тоже все просто: устройство(линия SDA или SCL) - резистор 10 Ом - супрессор на соответствующее напряжение + мелкий кондер (примерно 24 - 100 pF) - линия связи (провода) - супрессор на соответствующее напряжение + мелкий кондер (примерно 24 - 100 pF) - резистор 10 Ом - устройство(линия SDA или SCL). Все это проверено годами непрерывной работы на "шумных" линиях связи до 10 метров с протоколом I2C, 1-Wire с таким подключением пашет гарантированно до 300 метров (более длинные линии просто не проверял).
OldBean
Доцент
Красноярск
1K 1.4K
Отв.2245 15 Нояб. 21, 12:14
зачем пытаться применить в данном случае спец. микросхемку, если можно воткнуть 2 полевика + 4 резистораserjrv, 14 Нояб. 21, 20:52
Честно говоря, я не понимаю как усилить две двунаправленные линии при помощи всего двух полевиков. Не могли бы схемку набросать?
PS Если речь идет о схеме вроде известных преобразователей уровня (там действительно 1 полевик на канал), то, к сожалению, на большие емкостные нагрузки ее не удается приспособить. Ну, по крайней мере, мне не удалось. Вот здесь (в самом конце топика) про это писал.
serjrv
Кандидат наук
Камышин
382 202
Отв.2246 15 Нояб. 21, 22:17
OldBean, про усиление я конечно как то не подумав ляпнул, при этом сам же и написал про допустимые токи самих портов. Про малинку ты зря переживаешь, с ее стороны порты как раз довольно мощные, вроде до 50 мА вытягивают. Чего не сказать про разнообразные датчики, ограничение может и в 4 мА всего быть, но довольно редкий случай, обычно не менее 10 мА. Схемка вот: Sch. Ненавязчивая автоматизация ректификационной установки. Автоматика. Я ее в реальных условиях применял, требовалось иметь возможность подключать устройства на "горячую" и иметь помехозащищенность. Линия примерно 10 метров, все прекрасно работает по сей день, частота 400 кГц. Резистор R5 правда у меня 2.4 кОм стоит, как раз одно из устройств слаботочное. На стороне 3.3 вольта контроллер, на 5 вольтовой постоянно подключен датчик тампературы и влажности, а на горячую подключается контроллер с дисплеем и кнопками, пульт проще говоря. Народ на тематических форумах пишет что к примеру BMP280 и на 40 метров вешали без усилителей шины. Гораздо большая проблема в выборе кабеля, емкость желательна минимальная. И в данном случае витая пара оказывается не лучшим вариантом.
p.s. А почему выбор пал именно на I2C? Применить UART совместно с RS485 было бы более логично, не только в борьбе за расстояние, но и с точки зрения оптимальности построения кода программы. UART даже в самых "тупеньких" контроллерах имеет как минимум буфер хотя бы на 4 байта, а в той же малинке еще и DMA. В итоге плюнул данные в буфер и занимайся дальше своими делами. А I2C просто содержит один сдвиговый регистр без всяких буферов, а где то и этого нет - просто "ногодрыг" используют, в итоге ты всю передачу сидишь как на иголках пока весь пакет не передашь. Только одно преимущество у I2C вижу, простота борьбы с коллизиями на лини данных.
OldBean
Доцент
Красноярск
1K 1.4K
Отв.2247 16 Нояб. 21, 06:47
Про малинку ты зря переживаешь, с ее стороны порты как раз довольно мощные, вроде до 50 мА вытягивают.serjrv, 15 Нояб. 21, 22:17
Ни в коем случае!!! 50 мА , если не изменяет память, это предельный суммарный ток на все пины GPIO. Данные из официальной документации с сайта Raspberry Pi: например, для 3-й малинки средний ток пина GPIO, на который рассчитано питание - 3 мА. Драйверы можно агрегировать до 16 мА, но лучше все-таки ориентироваться на ток в несколько мА. И это похоже на правду - есть печальный опыт из собственной практики. Попытка как-то нагрузить SDA пин малинки током порядка 6-7 мА (за счет уменьшения подтягивающего резистора) стоило жизни этому бедному пину :((( Хотя вроде бы должен был бы держать до 16 мА (с просадкой, если без настройки). Но, таки, умер...
Схемка вот:serjrv, 15 Нояб. 21, 22:17
Спасибо! Да, именно такую схемотехнику я и имел в виду в конце этого топика и, как итог, в конце этого топика. Я пробовал такую схему (только без элементов защиты и правой части, вместо нее справа был только подтягивающий на +5V резистор). На 6 метровой линии (5 кат.) 100 кбит/с шина более-менее работает, но форма импульсов (SCL) жуткая. Это практически "пила". Очень затянуты фронты. И низкий уровень приподнят, практически на пределе и плавает. Короче - эту "пилу" не удалось исправить даже минимальным (для малинки) подтягивающим резистором (что-то на уровне того же кОма, с учетом собственного 1.8к на плате). При увеличении длины линии, ошибки обмена становились уже недопустимо частыми. Поэтому-то и было принято решение - поставить нормальные интегральные усилители (что-нибудь типа P82B715). Увы, малинка - самое слабое звено такой i2c-сети. Ее, таки, лучше полноценно "забуфферировать" :)))
А почему выбор пал именно на I2C?serjrv, 15 Нояб. 21, 22:17
i2c - это тоже вполне осознанный выбор. Вот где-то в этом месте мы немножко обсуждали эту тему. PS Про физические характеристики пинов GPIO можно почитать здесь.
serjrv
Кандидат наук
Камышин
382 202
Отв.2248 16 Нояб. 21, 11:58
Данные из официальной документации с сайта Raspberry Pi: например, для 3-й малинки средний ток пина GPIO, на который рассчитано питание - 3 мА.OldBean, 16 Нояб. 21, 06:47
Прочитал уже, называется не верь русскоязычным ресурсам..., это я про тот случай где про 50 мА увидел. Хотя конечно странная ситуация, я бывает использую контроллеры с аналогичной конфигурацией портов (от 4 до 25 мА.) Но если конфигурируешь порт на работу по I2C, автоматом используется внутренний буфер на 12 мА (даже если порт сконфигурирован на 4 мА). А этого уже хватает чтобы резистор снизить до 470 Ом при питании 3,3 вольта. Да и угробить порт проца обычно не получается при превышении допустимого тока, выглядит это примерно так у большинства процов и мк (циферки тока естественно будут свои): Drv. Ненавязчивая автоматизация ректификационной установки. Автоматика. В общем странная засада с малинкой...
OldBean
Доцент
Красноярск
1K 1.4K
Отв.2249 21 Нояб. 21, 13:29
3. I2C-сеть. Тестирование репитеров P82B715
3.1. Введение
Текущая версия ненавязчивой автоматики (LITE) конструктивно выполнена на основе крейта, в который могут вставляться модули, необходимые для решения конкретной задачи автоматизации. По сути, это старый-добрый КАМАК, с "поправкой" на современные протоколы, элементную базу и микроконтроллеры. Крейт - удобная основа для гибкой, перестраиваемой автоматики. Тем не менее, для "распределенных" установок (и, тем более, когда их несколько) крейт, в силу своей "локальности", не всегда удобен. Поэтому появилась идея сделать некий распределенный (сетевой) вариант автоматики, в которой модули не привязаны к крейту и могут располагаться в любых удобных местах. Например, модуль контроллера ТЭНа, действительно, удобнее расположить рядом с самим ТЭНом, вместе с датчиком RMS (или потребляемой мощности), датчиком температуры и давления в кубе. То же самое касается контроллера устройств отбора и других элементов оборудования. Условное название этой версии - LEGO. Программно, она будет полностью совместима с вариантом LITE. Более того, сам крейт автоматики LITE может быть узлом (а точнее - кластером) сети автоматики LEGO.
Первый вопрос, который возникает при конструировании распределенной системы - какой низкоуровневый протокол взять за основу. Поскольку в крейте варианта LITE используется i2c, то, для физической совместимости, было бы вполне естественно положить в основу сетевой версии (вариант LEGO) этот же протокол. К сожалению, многие слаботочные устройства не рассчитаны на работу с длинными линиями связи. По стандарту i2c емкость линий не должна превышать 400 пФ. Поэтому физически сеть необходимо организовывать в виде кластеров. Внутренняя i2c-шина кластера относительно короткая (десятки сантиметров, до метра). Устройства подключаются к внутренней шине кластера непосредственно. Сами же кластеры связаны посредством усилителей (репитеров) при помощи длинных линий (до десятков метров). В качестве репитеров в варианте LEGO будут использоваться интегральные двухканальные двунаправленные усилители P82B715. На рисунке ниже, взятом из документации на P82B715 показан практический пример реализации сети кластеров с длинными линиями связи между ними. 00_i2c_net. Ненавязчивая автоматизация ректификационной установки. Автоматика. 3.2. Испытательный стенд
Для тестирования репитеров P82B715 на макетных платах был собран небольшой стенд. Схема его приведена на следующем рисунке. 01_scheme. Ненавязчивая автоматизация ректификационной установки. Автоматика. В правой части схемы изображена модель кластера малинки, состоящая собственно из малинки, датчика атмосферного давления BMP180 и согласователя логических уровней 3.3-5V. В левой части - модель кластера, содержащего микроконтроллер (Arduino Nano) и датчик температуры LM75A. Каждый кластер содержит репитер P82B715 и гнездо RJ45 для подключения стандартного Ethernet кабеля, соединяющего кластеры между собой. Номиналы подтягивающих резисторов на внутренних шинах - 4.7 кОм, на внешних - 470 Ом. Общий вид стенда показан на следующем рисунке. 02_prototype_view. Ненавязчивая автоматизация ректификационной установки. Автоматика. Справа - кластер малинки, слева - контроллер с датчиком температуры. Кластеры соединены двумя патч-кордами 15м и 7м, включенными последовательно. Т.е. суммарная длина внешней шины - 22м.
3.3. Результаты испытаний
В данных испытаниях малинка является мастером всей шины i2c. Другие три устройства на шине: датчик давления BMP180, Arduino Nano и датчик температуры LM75A - ведомые (slave). Их адреса 0x77, 0x41 и 0x48, соответственно. Поскольку сигнал синхронизации выдается мастером, то осциллограммы линии SCL снимались на внутренней шине i2c кластера с Arduino Nano и датчиком LM75A (см. схему испытательного стенда). Осциллограммы приведены на рисунке ниже. 03_oscillograms_0_5m_and_22m. Ненавязчивая автоматизация ректификационной установки. Автоматика. Левая осциллограмма - сигнал SCL для короткой линии связи (0.5м), правая - тот же сигнал для длинной линии (22м). Из осциллограмм видно, что репитеры P82B715 вполне успешно справляются с работой на длинных линиях. По крайней мере, до 22м. Небольшой дребезг на правой осциллограмме связан с отражением сигнала от конца линии и обусловлены очень резкими спадами импульсов SCL. Такие резкие спады формируются полевыми транзисторами преобразователей логических уровней 3.3-5V малинки. Этот дребезг никак не сказывается на работе шины. Поэтому никакие меры для его устранения не применялись.
В следующем тесте изучалась стабильность работы такой длинной (22м) шины i2c. Для этого малинка периодически посылала ардуинке пакеты длиной 8 байтов, ардуинка их принимала и отправляла малинке обратно. Малинка побитно сравнивала отправленные и принятые пакеты и, на основе этого сравнения, регистрировала наличие или отсутсвие ошибок обмена. Скорость работы шины i2с - 100 кбит/сек, содержимое пакетов формировалась при помощи генератора псевдослучайных чисел.
22-метровая шина работала очень стабильно. При обмене более миллиона пакетов ошибок обнаружено не было. На следующем рисунке приведен скриншот экрана малинки во время выполнения данного теста. Первое число - количество отправленных/принятых пакетов, второе - количество ошибок. Как видно - ошибок нет совсем. 04_screenshot. Ненавязчивая автоматизация ректификационной установки. Автоматика. Таким образом, эти испытания показывают, что репитеры P82B715 обеспечивают стабильную и надежную работу шин i2c длиной, по крайней мере, до 20м. Более длинные линии не тестировались, поскольку указанных длин вполне достаточно для поставленных задач.
ruslan_ka
Студент
Железнодорожный
29 6
Отв.2250 22 Нояб. 21, 09:50
Ненавязчивая автоматизация ректификационной установки. Автоматика. Супер! Осталось проверить работу подключения slave модулей "звездой" и "гирляндой".
Resok
Новичок
Килия
2
Отв.2251 04 Дек. 21, 23:14
Добрый день. Не смог ничего подобного найти тут. Но варианты автоматизации построены на базе Ардуино, малинки. Для этих целей вполне может подойти ноутбук, если я не ошибаюсь. Может кто то подсказать по этому поводу или хотя бы показать в какую сторону копать?
sig
Кандидат наук
Ростов-на-Дону
305 140
Отв.2252 05 Дек. 21, 13:56
Для этих целей вполне может подойти ноутбук, если я не ошибаюсь.Resok, 04 Дек. 21, 23:14
Ошибаешься. Ноутбук не позволяет подключать датчики и управлять клапанами. Поэтому ноутбук может выступать только как средство удаленного мониторинга для управляющего микроконтроллера системы автоматизации.
ekochnev
Магистр
Екатеринбург
210 54
Отв.2253 05 Дек. 21, 15:08
Ошибаешься. Ноутбук не позволяет подключать датчики и управлять клапанами. Поэтому ноутбук может выступать только как средство удаленного мониторинга для управляющего микроконтроллера системы автоматизации.sig, 05 Дек. 21, 13:56
Ну так Вы же сами писали тут пару страничек назад, что у любого компа и ноутбука на портах VGA и HDMI есть шина I2C. Значит, теоретически, подключение всех датчиков и внешних плат, что сейчас подключаются к малинке, можно вынести туда. Ну а то, что на ноутбуке и любимый всеми питон запустится, думаю, сомнения вообще ни у кого не вызывает... Я полагаю, что ноутбук тут не рассматривается сейчас исключительно из-за своей стоимости, малинка выполняя все необходимые функции банально дешевле .
sig
Кандидат наук
Ростов-на-Дону
305 140
Отв.2254 05 Дек. 21, 20:17
Я полагаю, что ноутбук тут не рассматривается сейчас исключительно из-за своей стоимостиekochnev, 05 Дек. 21, 15:08
Не только из-за стоимости. Я имел печальный опыт использования LinuxCNC на ноутбуке. Эта система через порт принтера управляет фрезерным станком - генерит импульсы для шаговых двигателей. Так вот - постоянно пришлось бороться с железом ноута, который норовит снизить энергопотребление снижением производительности, частоты, напряжения на элементах. И если программные заморочки можно победить, то заложенные в железо - фиг победишь. Ноут физически не способен сутками работать как сервер.
serjrv
Кандидат наук
Камышин
382 202
Отв.2255 06 Дек. 21, 00:20
Я имел печальный опыт использования LinuxCNC на ноутбуке.sig, 05 Дек. 21, 20:17
Видимо ты просто все "фишки" энергосбережения не отключил, работает ноут (и не один) уже много лет на CNC`шных программах. Но там все по другому по уму затачивается, по USB все шарашим. НО, все равно на дополнительный контроллер, который и рулит периферией. Вспоминаю смутное время зарождения домашних ЧПУ с управлением по порту для принтера (LPT), вот там точно жопочка была с таймингами. У нас все гораздо проще, хватает не то что малинки, а даже "тупеньких" МК. У Сергея с малинкой в принципе весьма не плохая идея, когда можно просто скрипт Питоновский под любую систему подстроить, но к сожалению не все это осилят.
Resok
Новичок
Килия
2
Отв.2256 06 Дек. 21, 16:43
Я полагаю, что ноутбук тут не рассматривается сейчас исключительно из-за своей стоимости, малинка выполняя все необходимые функции банально дешевле .ekochnev, 05 Дек. 21, 15:08
Есть в наличии планшетный ПК на винде. Не вижу смысла покупать ещё один компьютер
ekochnev
Магистр
Екатеринбург
210 54
Отв.2257 06 Дек. 21, 18:40
Не вижу смысла покупать ещё один компьютерResok, 06 Дек. 21, 16:43
Вы под под "компьютером" малинку имеете в виду или что? Если малинку, то у нее ценник как у среднего комплекта клавиатура-мышь. В данной теме она является центром управления всего комплекса. Если Вас этот вариант не устраивает, то как уже писалось выше, теоретически шина I2C есть у любого компьютера, ищите ее на своем планшете, подключайте, адаптируйте софт, потом нам расскажете. Думаю, всем будет очень интересен данный опыт.
BogAD
Кандидат наук
Красногорск - Белово
403 184
Отв.2258 06 Дек. 21, 20:09
Мужики, вы INT и RES как в планшеты, буки и т.п. будете заводить? RES, конечно, он перестраховочный сигнал сброса, но, без INT'a, увы, безопасность системы в целом, под вопросом...
ekochnev
Магистр
Екатеринбург
210 54
Отв.2259 06 Дек. 21, 20:18, через 10 мин
Тем не менее, на текущий момент ни RES ни INT в софте малинки не используется, поэтому ничто не мешает запустить все это на ноуте в текущем функционале. RES вообще к малинке даже не подключен, INT подключен, но софтом не обрабатывается.