Авторизация
Зарегистрироваться

Делаем шлюз Ethernet-RS485 на STM32 для Mysensors

Данный пост посвящён DIY разработке Ethernet-RS485 шлюза. Цель данного шлюза – обеспечение централизованного управления нодами Mysensors со стороны контроллера умного дома.

Недавно меня таки достали провода, дюпоны, навесная пайка и т.п. и было принято давно оттягиваемое решение — сделать свои платы с нуля, т.е. всё по серьёзному. :)
Сказано — сделано!


Первым делом была разработана и нарисована принципиальная схема шлюза, в которой я постарался учесть все свои хотелки и пожелания. Далее произведена компоновка и подгонка платы под требуемые размеры (50x50мм). И последний этап, это заказ плат на производстве. Я заказывал на фабрике JLCPCB, 5 плат — 2$ + доставка.

Данный шлюз построен на базе МК STM32F103CB(8)T6. В качестве Ethernet чипа выступает достаточно известная микросхема от WIZnet — W5500. Транспортом данного шлюза в сети Mysensors является проводной интерфейс RS485. В качестве драйвера RS485 был выбран чип — MAX13488EESA+T, в том числе и в связи с наличием у него режима автоматического выбора направления приёма/передачи.

Итак пройдёмся поподробнее по основным частям шлюза.

Сердцем шлюза является МК STM32F103CBT6 в корпусе 48LQFN. МК построен на ядре Cortex-M3, имеет 128Кб встроенной флэш памяти и 20Кб ОЗУ. Штатная частота МК — 72МГц, но если не использовать встроенный USB порт, то частоту можно разогнать и до 128МГц, он на ней вполне стабильно работает. МК питается от 3.3В. Для полноценной работы нужны два кварца, на 8МГц и 32.768КГц. Для программирования и отладки имеется интерфейс SWD. МК можно заменить и на STM32F103C8T6, он на данный момент по памяти вполне проходит.

Ethernet чип W5500. Внутри имеет ядро Cortex M0, для связи с внешним миром присутствует порт SPI (скорость до 80 МГц). При скорости 100Mbps Full Link имеет потребление в 132мА. Есть поддержка Wake on LAN, для обозначения своего режима умеет управлять 4 светодиодами 4 (SPD / DUP / ACT / Link). В наличии 32 кбайт буферной памяти RAM для обеспечения процесса передачи TCP/IP пакетов, аппаратно обеспечивает до 8 независимых TCP/UDP сокетов (канальных соединений). Аппаратно поддерживает следующие коммутационные протоколы обработки проводного TCP/IP стека: TCP, UDP, MAC, ICMP, IPv4, ARP, IGMP, PPPoE. Диапазон рабочих температур -40...85°C. Напряжение питания — 3.3В.

И наконец драйвер RS485 — MAX13488EESA+T. Микросхема в корпусе SOIC-8 150mil. Скорость передачи данных до 16 Mb/s. Рабочее напряжение — 5В, потребляемый ток — 4.5 мA. Позволяет подключать до 128 узлов на одну линию RS485. Из главных особенностей это возможность включения режима автоматического определения направления приёма/передачи, т.е. данный драйвер может подключаться напрямую к порту UART и всё! Никаких лишних телодвижений совершать не надо.

Принципиальная схема шлюза разбита на три части:
Схема RS485 части шлюза.


Схема МК и его периферии.


Схема части Ethernet.


Т.к. шлюз в сети Mysensors является единой точкой отказа, то к нему предъявляются повышенные требования по надёжности и безопасности. И в первую очередь он должен быть гальванически развязан от самой линии RS485. Для гальванической развязки линии данных была установлена микросхема — цифровой изолятор от TEXAS INSTRUMENTS — ISO7321CDR. Для развязки по питанию был использован изолированный DC/DC преобразователь от Traco Power – TME0505S. Защита драйвера RS485 от высоковольтных импульсов при необходимости реализовывается отдельной платой. Единственно, в виду своей компактности был оставлен защитный диод (подавитель ЭСР) VD1.

В результате многочисленных оптимизаций и передвижек, был получен следующий результат:

Рендеринг шлюза
Верхний слой.


Нижний слой.


3D — вид сверху.


3D — вид снизу.


Теперь поподробнее о схеме. Для функционирования шлюза, от МК нам необходим один порт USART и один порт SPI. МК STM32F103CBT6 имеет 3 порта USART с максимальной скоростью до 4.5Mbits/s. И два SPI порта. В результате компромисса (компоновка деталей на плате), для взаимодействия с драйвером RS485 был выбран порт USART1 (ноги PB6, PB7 с ремапом). А для взаимодействия с W5500 — порт SPI1 (ноги PA4-7).

Подключение Ethernet контроллера W5500 выполнено в соответствии с рекомендациями производителя. Единственное, что может вызвать некоторые сложности, это высокоточные резисторы, которых может не оказаться в наличии в местном радиоларьке. Но на сайте lcsc.com и ему подобных с данными резисторами всё в порядке. Для Ethernet разъёма был выбран широко распространённый бюджетный модуль — HR911105A, имеющий на борту трансформатор и два светодиода.

Самое сложное в данной плате, это запаять две 48-ножечные lqfp микросхемы. Если с этим справились, то дальнейшая сборка не представляет никаких сложностей. Настроек плата не требует и сразу после сборки готова к работе.

Хоть это и шлюз, но чтобы не пропадать добру на плате были разведены практически все пины МК, разведён ресет, и два светодиода (один из них RGB). Сделаны две площадки под микросхемы, одна под I2C EEPROM и вторая для цифрового термометра/измерителя влажности HDC1080. Термометр конечно будет измерять общую температуру по больнице, так как он установлен рядом с двумя чипами, но мало ли, вдруг кому понадобиться.

В качестве разъёма для RS485 был выбран, трёх пиновый зелёный разъём DB2EV-5.08-3P, с шагом 5.08мм. Он конечно великоват, но удобен в использовании. Остальные разъёмы за исключение microUSB выбраны — 1.25мм JST, они достаточно компактны и хорошо фиксируются.

Фото собранного шлюза
Вид сверху


Вид снизу


Для питания платы необходимы 5В, которые можно подать через разъём microUSB, либо через разъём Power. 5В питание необходимо драйверу RS485, микросхеме гальванической развязки и DC/DC преобразователю. Т.к. МК STM32 и Ethernet чип требуют питания 3.3В, на плате предусмотрен LDO регулятор — на базе микросхемы LDL1117S33R. На линиях питания 5 и 3.3В установлены танталовые и керамические конденсаторы. Большинство используемых смд компонентов — 0603.

Т.к. у всех всегда ситуации и подходы бывают разные, то некоторые вещи оставлены на откуп пользователю. Если нам не нужна гальваническая развязка от линии RS485, то мы можем не устанавливать изолирующий DC/DC преобразователь — D1, микросхему опторазвязки — D3. В таком случае надо напаять «соплей» в предназначенные для этого места на плате.

Смотреть




По необходимости устанавливаем резисторы R31, R32 и R2, защитный диод VD3.

При первом включении на столе, шлюз нормально видел ноду, прошивки в неё залетали за 30 секунд, всё было хорошо. И да, планируемая мной скорость сети RS485 — 0.5-1Mbit. В доме будет 1Mbit, на улице 0.5Mbit. Так вот когда я поставил шлюз на его рабочее место в серверную, а ноду подключил к устройству на улице, я вполне ожидаемо столкнулся с тем, что они друг друга не увидели. С помощью осциллографа я мог наблюдать весьма удручающую картину линии RS485, но пара подтягивающих резисторов R31 и R32 быстро решила данную проблему. На фото шлюза, данные резисторы подпаяны проводками. Дело в том, что изначально я не планировал ставить их на шлюз, т.к. они нужны только на концах линии RS485, а шлюз у меня планировался в середине. Но когда подключена только одна нода, они всё же нужны и поэтому они были добавлены во второй ревизии. Терминирующий резистор на 120Ом устанавливается прямо в разъём RS485, так его проще переносить от устройства к устройству при наращивании линии.

Как это ни удивительно, но плата первой ревизии показала полную работоспособность и стабильную работу. За несколько месяцев не произошло ни одного зависания. Но с другой стороны ещё не было и гроз, а данный шлюз у меня смотрит как-раз на улицу.

Но — поживём увидим! :)

Таким образом была выполнена основная задача — создать компактный, высокоскоростной и надёжный Ethernet-RS485 шлюз. Чтобы не расплываться мыслями по древу, статья сосредоточена только на железной части, а программная часть сознательно вынесена за скобки.

Репозиторий с проектом шлюза.

С радостью отвечу на конструктивные вопросы.

Для интересующихся постройкой УД на базе Mysensors существует русскоязычная группа в телеграмм и русскоязычный сайт.

P.S. Цель данной статьи показать, что нет ничего сложного в разработке и создании своих собственных плат и готовых устройств. Главное ставить цель и идти к ней!
Добавить в избранное +62 +106
свернуть развернуть
Комментарии (111)
RSS
+
avatar
  • usb350
  • 15 февраля 2020, 22:20
+44
обеспечение централизованного управления нодами Mysensors со стороны контроллера умного дома



Очень не хватает описания назначения и возможностей устройства «на пальцах» для непосвященных в начале статьи.
+
avatar
  • Dab0G
  • 16 февраля 2020, 16:16
+8
Администрация не разрешает постить ссылки на ресурсы Mysensors. Вот дословно их ответ:
Кто заинтересуется и захочет разбираться — найдет их
+
avatar
+2
Самый первый вопрос — это «цена вопроса»?
+
avatar
  • Dab0G
  • 16 февраля 2020, 17:00
+4
Ну, самый первый вопрос — это «цена вопроса»? USR-TCP232-T2 стоит 7 долларов, RS485 к нему обойдется от 0.5 до 1.5 в зависимости от качества обвязки. Овчинка стоила выделки?

Второй вопрос — про питание, не логичнее ли было бы собрать сразу на плате понижающий преобразователь, чтобы вместо «капризных» к длине и качеству провода 5 вольт получить возможность «из коробки» питаться от 12/24?
1. Т.к этот шлюз создавался под конкретные требования и проект, то да, овчинка конечно того стоила. Цена была не особо важна — главное было создать стабильно работающее устройство.
2. Т.к. это шлюз, то ему не нужно никакого питания кроме 5В. Т.к. он стоит либо в серверной, либо в аналогичном месте, т.е. там где есть стабильное гарантированное питание.
А вот для нод, там да, сделан понижающий DC/DC 12-60В -> 5В.
+
avatar
+2
интересно что за перемычки во фторопласте
+
avatar
  • kirich
  • 16 февраля 2020, 19:56
-3
Просмотрел обзор, о каком фторопласте речь?
+
avatar
+5
+
avatar
  • Dab0G
  • 16 февраля 2020, 20:06
+3
В статье про это написано. Не читаем?
+
avatar
+2
так ведь «Настроек плата не требует и сразу после сборки готова к работе». какие перемычки могут быть после этого предложения? кто так пишет?)
+
avatar
  • Dab0G
  • 16 февраля 2020, 20:20
0
Почитайте пожалуйста весь текст повнимательнее. И такие вопросы пропадут.
+
avatar
  • kirich
  • 16 февраля 2020, 21:30
0
Не, я не понял именно по поводу фторопласта. Вроде плата из обычного стеклотекстолита, да и нет надобности делать здесь из фторопласта.
+
avatar
  • Dab0G
  • 16 февраля 2020, 21:39
-11
+
avatar
+22
да куда уж нам до вас, не знающих что означает буковка Ф в аббревиатуре МГТФ))
+
avatar
+11
Вы вроде и обзоры толковые пишете, а понять банального вопроса не в состоянии. Разжую для Вас за автора вопроса — перемычки во фторопластовой изоляции.
+
avatar
  • Dab0G
  • 17 февраля 2020, 10:00
0
Так экстрасенсы вроде в отпуске, а в кроссворды я уже дано не играю.
Если вопрос был про перемычки из МГТФ, то в статье про это написано:

С помощью осциллографа я мог наблюдать весьма удручающую картину линии RS485, но пара подтягивающих резисторов R31 и R32 быстро решила данную проблему. На фото шлюза, данные резисторы подпаяны проводками. Дело в том, что изначально я не планировал ставить их на шлюз, т.к. они нужны только на концах линии RS485, а шлюз у меня планировался в середине. Но когда подключена только одна нода, они всё же нужны и поэтому они были добавлены во второй ревизии.
Т.е. при установке шлюза в центр линии они не нужны, а нужны только на самом первом этапе, при работе с одной нодой. Хотя если сразу ставить две ноды по краям линии, то и в начале не нужны.
Но зачем нам внимательно читать?! :/
+
avatar
  • kirich
  • 17 февраля 2020, 22:40
0
Разжую для Вас за автора вопроса — перемычки во фторопластовой изоляции.
Сначала показалось что речь о перемычках на плате, ну т.е. такие, которые припоем замыкают.

Приболел, вот и показалось что речь о другом, у Вас так не бывает?
+
avatar
0
Ну… пока Вы тут собрались можно нубский вопрос?
Есть ограниченное число аналоговых ног, надо снимать аналоговые показания с термисторов которых больше чем ног. Как быть? чем дешевле коммутировать датчики на ногу? дешевле во всех смыслах.
+
avatar
+4
Готовый модуль 16-канального мультиплексора на HC4067 стоит меньше доллара. Нужен один аналоговый вход и 4 цифровых выхода — и 16 аналоговых входов вот они.
+
avatar
0
Понял, принял. Спасибо большое. Я что-то затупил )
+
avatar
  • KiV
  • 16 февраля 2020, 18:48
+11
Настроек плата не требует и сразу после сборки готова к работе.
Так прям сразу??? Даже микроконтроллер прошивать не надо???
Чтобы не расплываться мыслями по древу, статья сосредоточена только на железной части, а программная часть сознательно вынесена за скобки.
Таким образом, ценность статьи стремится к нулю, если не считать ссылки на телеграмм-канал в комментариях. Ну да — " покупайте наших слонов"… ой, извините — «идите на наш канал».
+
avatar
  • Dab0G
  • 16 февраля 2020, 19:05
-3
Настроек плата не требует и сразу после сборки готова к работе.
Так прям сразу??? Даже микроконтроллер прошивать не надо???
Да, плата готова к работе. Или вы не видите разницу между платой и шлюзом? :))
+
avatar
  • KiV
  • 16 февраля 2020, 19:32
+14
Плата — это вот та зелёненькая.
И когда не неё напаяют детали, она
Не выполняет.
Никакой.
Работы.

Без программы это ноль. Да дорогой, да красивый, но — ноль. Да, работает стабилизатор напряжения… и… и всё.
Да, плата готова к работе. Или вы не видите разницу между платой и шлюзом? :))
Ваша демагогия мне очень напоминает американца из фильма «Начальник Чукотки», который вместо граммофона продавал чукче только трубу от него.
+
avatar
  • robosku
  • 16 февраля 2020, 19:37
-2
Ваша демагогия мне очень напоминает американца из фильма «Начальник Чукотки», который вместо граммофона продавал чукче только трубу от него.
Давайте я помогу Вам в ЛС найти исходный код «mysensors ethernet gateway» в гугле, который можно скомпилить и влить в плату, раз администрация тут ссылки на mysensors постить запрещает?
+
avatar
  • KiV
  • 16 февраля 2020, 19:55
+10
И это конечно же будет Ваш телеграмм канал? Поскольку на гитхабе, где по логике должен быть код, я его не наблюдаю. Даже ссылки на код нет, зато есть ссылка на канал, как и здесь.
+
avatar
  • peetbull
  • 16 февраля 2020, 19:58
+8
реклама, что тут еще сказать
навязчивая.
+
avatar
  • berk
  • 16 февраля 2020, 20:31
0
ну вы сначала потратьте месяц другой на разработку платы, ее тестирование, потом отдайте это людям за просто так и уже тогда раскажите нам про рекламу. Смысл автору форкать себе на гит майсенсорс? идите на их гит, качайте, устанавливайте в ардуино иде, открывайте пример гейта и грузите его в этот девайс.
+
avatar
  • KiV
  • 16 февраля 2020, 20:55
+8
потратьте месяц другой на разработку платы, ее тестирование,
Про месяц для данного проекта Вы загнули. Это если сосвем с нуля с изучением всей документации на каждый компонент. А тестировать там особо и нечего, если программа, как Вы говорите:
идите на их гит, качайте
И дать ссылку прямо в статье на нужный гит и проект религия не позволила?
+
avatar
  • berk
  • 16 февраля 2020, 21:04
0
github.com/mysensors/MySensors

а можно в поиске вбить — mysensors github
+
avatar
  • Dab0G
  • 16 февраля 2020, 21:05
-3
Игорь, электронный тролль, где ваши обзоры?

+
avatar
  • KiV
  • 16 февраля 2020, 21:13
+1
Пишу.
:)))))))
+
avatar
  • Dab0G
  • 16 февраля 2020, 21:18
+1
Месяц? Вроде уже 8 месяцев на сайте…
+
avatar
-4
Уже поднимал вопрос о том, что участники с нулевым количеством обзоров открыто и цинично развлекаются на сайте, повышая своё ЧСВ.

Но я был послан куда подальше. Мол, это норма, так и должно быть.

Вспомнилось выступление Жванецкого:

Стиль спора
Хватит спорить о вариантах зернопогрузчика. Долой диспуты вокруг технических вопросов.

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

Что может говорить хромой об искусстве Герберта фон Караяна? Если ему сразу заявить, что он хромой, он признает себя побежденным.

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

И вообще, разве нас может интересовать мнение человека лысого, с таким носом? Пусть сначала исправит нос, отрастит волосы, а потом и выскажется.

Поведение в споре должно быть простым: не слушать собеседника, а разглядывать его или напевать, глядя в глаза. В самый острый момент попросить документ, сверить прописку, попросить характеристику с места работы, легко перейти на «ты», сказать: «А вот это не твоего собачего ума дело», и ваш партнер смягчится, как ошпаренный.

В наше время, когда уничтожают вредных насекомых, стерилизуя самцов, мы должны поднять уровень спора до абстрактной высоты. Давайте рассуждать о крахе и подъеме Голливуда, не видя ни одного фильма. Давайте сталкивать философов, не читая их работ. Давайте спорить о вкусе устриц и кокосовых орехов с теми, кто их ел, до хрипоты, до драки, воспринимая вкус еды на слух, цвет на зуб, вонь на глаз, представляя себе фильм по названию, живопись по фамилии, страну по «Клубу кинопутешествий», остроту мнений по хрестоматии.

Выводя продукцию на уровень мировых стандартов, которых никто не видел, мы до предела разовьем все семь чувств плюс интуицию, которая с успехом заменяет информацию. С чем и приходится себя поздравить. Прошу к столу — вскипело! ©
+
avatar
  • Eddy_Em
  • 17 февраля 2020, 09:54
+4
А смысл здесь обзоры делать, если их постоянно отбрасывают с требованием «доработать»? На кой хрен стараться полчаса ради того, чтобы все равно труды в /dev/null пошли?
Логичней на ЖЖ выкладывать: там никакой нехороший человек не прибежит и в топку содержимое не отправит!
Вот я когда-то писал на ЖЖ и копии выкладывал на быдлохабру. Но быстро понял, что там контингент — по большей части то самое быдло. И очень мало реальных людей, которые что-то нормальное пишут и оставляют дельные комментарии (пусть даже с матом).
+
avatar
-4
Было бы полезно ввести ограничение на количество сообщений.

Например, установить лимит количества сообщений в чужих топиках, равный количеству своих обзоров, помноженный на 10.
В своих топиках — безлимит по ответам.


И все тролли отвалились бы автоматически.
+
avatar
  • Dab0G
  • 17 февраля 2020, 10:38
0
Раз не меняют, значит устраивает. :/
Народ то веселиться, чего ещё надо?!
+
avatar
-1
Ну вот пусть и развлекаются с паяльником и измерительными приборами.

А мы будем, как голуби, отмечать их обзоры. )))
+
avatar
-4
Да, карма с минусами как на Хабре отлично бы подошла.
+
avatar
+1
На ВМ, когда поняли ситуацию с рейтингом, отменили это уродство раз и навсегда.
Народ поворчал, но ничего, всё улеглось.

Теперь все замечательно живут.

Кстати, хейтеры и минусаторы негодуют. Только ответить ничего не могут, т.к. стесняются засветиться.
+
avatar
  • igsru
  • 18 февраля 2020, 02:34
-1
Будите тролить сами себя?! прям кружок по интересам- вход 1 статья
+
avatar
  • Ivan374
  • 18 февраля 2020, 03:01
0
А смысл здесь обзоры делать, если их постоянно отбрасывают с требованием «доработать»? На кой хрен стараться полчаса ради того, чтобы все равно труды в /dev/null пошли?
Может всё дело в том, что хороший обзор не за полчаса делается? Тут присутствует некий аналог рецензирования. А вот в нерецензируемых изданиях как раз любую хрень и публикуют.
+
avatar
+1
Мне показалось, или процитированный вами Жванецкий на самом деле отстаивает точку зрения, прямо противоположную вашей?

«О чем может спорить человек, который не поменял паспорт? Какие взгляды на архитектуру может высказать мужчина без прописки? Пойманный с поличным, он сознается и признает себя побежденным.» — от этого ведь не так далеко до «Какие взгляды на вопросы электроники может иметь человек, не написавший ни одного обзора?»
+
avatar
  • robosku
  • 16 февраля 2020, 20:28
0
И это конечно же будет Ваш телеграмм канал? Поскольку на гитхабе, где по логике должен быть код, я его не наблюдаю. Даже ссылки на код нет, зато есть ссылка на канал, как и здесь.
Мой канал? Во-первых, он не мой, во-вторых, я про него ни слова не сказал и искренне хотел помочь Вам.
+
avatar
  • KiV
  • 16 февраля 2020, 20:46
+4
Извиняюсь. В комментариях о канале сказали действительно не Вы. По крайней мере, ник другой.

Но на Вашем гитхабе ссылка только на него. Поэтому фраза про «ни слова» не принимается. :))))))))

А за помощь спасибо.
+
avatar
  • robosku
  • 16 февраля 2020, 21:22
0
Но на Вашем гитхабе ссылка только на него. Поэтому фраза про «ни слова» не принимается. :))))))))
Вы меня с кем-то путаете, я не владелец канала, у меня нет исходников обсуждаемой железки или её прошивки, я даже не планирую её делать.
+
avatar
  • KiV
  • 16 февраля 2020, 22:13
0
Еще раз извиняюсь.
Действительно перепутал.
Вечер воскресенья :)))
+
avatar
  • prohuk
  • 16 февраля 2020, 20:00
+2
Отличный проект.
И очень в тему. Сейчас строю дом и тоже проектирую систему умный дом.
Пришел к аналогичному решению.
Но планирую на плате установить
* 2 реле для управления сервоприводами,
* 1 аналоговый вход для усилителя микрофона
* интерфейс к dali-bus
* вывести 2 цифровых входа для считывания цифровых датчиков:
— герконов,
— pir сенсора,
— microwawe сенсора,

Пока собрал часть на макетке и все в стадии отладки.

Спасибо за то что делитесь опытом.
В чем рисовали, трассировали создавали gerber?
+
avatar
  • Dab0G
  • 16 февраля 2020, 20:13
+2
Пожалуйста!
Это шлюз, он только собирает данные с нод и транслирует всё это в контроллер и наоборот.
А вот в нодах, там да, к ним много чего можно подключить. Попозже постараюсь статью про ноду написать, там поинтереснее.
+
avatar
  • prohuk
  • 16 февраля 2020, 20:18
0
У меня мысль сделать универсальную плату, на которой в зависимости от назначения будет распаиваться необходимые части.
+
avatar
  • Dab0G
  • 16 февраля 2020, 20:22
+2
Хех. Я свою ноду тоже универсальной назвал, т.к. напихал туда почти всё, что может пригодиться. Ну а там уже по необходимости, что надо, то и паяем на плату.
И да, разъёмы тоже есть, но это если надо что-то ещё подключить.
+
avatar
  • Eddy_Em
  • 16 февраля 2020, 21:29
+5
Это — копия статьи с быдлохабры?
+
avatar
  • peetbull
  • 17 февраля 2020, 08:41
-1
ссылка на оригинал?
+
avatar
  • Eddy_Em
  • 17 февраля 2020, 09:38
+4
habr.com/ru/post/488408/

А, вижу, логины одинаковые и здесь, и там. Видимо, один и тот же человек. Но зачем размножать — не понимаю. Тогда уж разместил бы в ЖЖ оригинал, а на всякие хабры копировал бы оттуда, чтобы хоть где-то можно было нормально обсудить!
P.S. Первый коммент на быдлохабре: «ТС, на кой черт тебе часовой кварц?». Ответ просто убил: «для запуска вотчдога!».
Я под столом!!!
+
avatar
+1
и там тоже попутано 48LQFN и 48LQFP :) ой не простят там… не простят…
+
avatar
+2
Проект понравился, спасибо.
Впервые узнал про микросхему MAX13488 с автоматическим управлением направлением передачи. Интересно.
+
avatar
+3
Каждый уважающий себя электронщик должен сделать свой шлюз с преферансом и куртизанками. Из чего-то во что-то :))
типа вот так

или так
+
avatar
  • berk
  • 17 февраля 2020, 02:19
+1
Прикольненько, а где про черненький почитать?
+
avatar
+2
Пока нигде :)
Это не совсем шлюз… Хотя… В общем контроллер управления сауной. Синие коннекторы — CAN шина.
На ней же модуль реле + модуль температуры/влажности.
То есть шина из трёх блоков и благодаря esp-01 всё это хозяйство коннектится к локалке/инету. Так что наверное все же шлюз :)
Вкратце, на борту много вкусностей:
— основной МК PIC18F46K80 64МГц
— часики DS3231 i2c с батарейкой
— ферритовая память FM24C04 i2c с божественным количеством циклов перезаписи и временем записи
— MCP2551 в виде передатчика CAN
— PIC32MX170F256B 50МГц в виде VGA-адаптера к матрице IPS 8" (видеокарта в общем) 640x480 1bps
— 12 GPIO под тач-кнопки
— 2 хороших DC-DC на MP1584 5.0в и 3.3в
— 2 силовых транзисторных выхода, один подает питание на матрицу
— пищалка
В общем хобби у меня такое. Запридумать, зарисовать, запаять, запрограммить.
+
avatar
  • Dab0G
  • 17 февраля 2020, 09:47
0
А на CAN FD не думали переходить? Там и скорость и размер кадра побольше. Или пока это лишнее? Какая длинна CAN линии?
+
avatar
0
Камни дороговатые с CAN FD. А так конечно покруче всё.
Тут и так пакетов в секунду можно протолкнуть столько, что не успеешь обработать.
Я использую 250кбит/с — длина соответственно до 250м, мне хватает для любой разработки.
+
avatar
  • Eddy_Em
  • 17 февраля 2020, 10:02
0
Спасибо за CAN FD. Почитал — круто! Там вместо 8 байт максимальная длина пакета аж 64!!! Блин, я сразу захотел такое.
Жаль только, у STM32F0 нет такого ☹
+
avatar
  • prohuk
  • 17 февраля 2020, 10:54
0
2 хороших DC-DC на MP1584 5.0в и 3.3в
Блин, сколько у них обвески…
AMS1117-3.3 экономичнее. Не?
+
avatar
0
Дофига :)
Линейные стабилизаторы ну не люблю. Вот прям выворачивает от их не фен-шуйности. Руки потом тщательно мою после них.
Кстати, если нужен достойный питальник — HX1314G. Обвязки поменьше, защиты все есть.
Сказка а не микросхема.
+
avatar
  • prohuk
  • 17 февраля 2020, 11:36
0
Ну тогда уж лучше LT1300
Для местного питания цифры самое то.
+
avatar
+1
не, боюсь от 12-24в на входе из нее волшебный дым выйдет :)
+
avatar
  • prohuk
  • 17 февраля 2020, 11:49
0
Это да, ей на вход до 10 В можно.
+
avatar
  • runner
  • 17 февраля 2020, 22:00
0
И я своими похвастаю
Раз


Два

+
avatar
0
Вторая железка чет знакомая- вайренбордовский датчик чтоль?
+
avatar
  • runner
  • 17 февраля 2020, 22:22
0
Нет, похожая форма обусловленна стандартным китайским корпусом, функционал где-то пересекается.
+
avatar
  • Dab0G
  • 17 февраля 2020, 22:59
0
Интересно. Какой МК, по какому протоколу идёт общение?
+
avatar
  • runner
  • 17 февраля 2020, 23:04
0
МК — Mega328 (Ардуина рулит!), протокол Modbus по RS485.
+
avatar
  • Eddy_Em
  • 17 февраля 2020, 09:44
0
Тогда тоже картинками поделюсь:
Раз

Два
+
avatar
+4
Кто же так изолятор разводит, хоть бы даташит открыл
+
avatar
  • spc
  • 17 февраля 2020, 10:27
+3
Цель данной статьи показать, что нет ничего сложного в разработке и создании своих собственных плат и готовых устройств.

Я человек простой, я это так вижу

+
avatar
+1
Вы не путайте обзоры готовых товаров (это которые купил-распаковал и можно использовать) и товары\комплектующие\запчасти, к которым еще надо руки приложить.

Уже в каждом обзоре DIY находится троль, который напишет «так интересно, но я ничего не понял» (и фото тупой мордой приаттачит). Всё, успех троллю гарантирован.
+
avatar
  • spc
  • 17 февраля 2020, 10:38
+3
Я на самом деле ничего не путаю, просто обычно «ничего сложного» говорит человек, который потратил уйму времени, чтобы разобраться — и тогда внезапно все становится яснее ясного. И это время, между прочим, включает все секунды с момента, как человек вообще начал электроникой интересоваться, а не только на брейнсторм по указанному объекту.
+
avatar
0
Надо принять, как есть, наличие обзоров для гуманитариев и блондинок (обзоры расчёсок, кукол и всего подобного) и обзоров, рассчитанных на подготовленного специалиста (электроника, программирование и др. разработка).
+
avatar
  • Ivan374
  • 18 февраля 2020, 03:16
+2
Извините, но слова
Цель данной статьи показать, что нет ничего сложного в разработке и создании своих собственных плат и готовых устройств
кому адресованы, опытным специалистам? По-Вашему выходит, «подготовленный специалист (электроника, программирование и др. разработка)» только из таких обзоров и узнаёт, «что нет ничего сложного в разработке и создании своих собственных плат и готовых устройств». Интересно, чем же такой «подготовленный специалист» раньше-то занимался, к чему готовился? Не иначе как распаковкой готовых изделий под причитания, как сложно самому что-то сделать. ;)

По-моему, что-то не сходится при такой точке зрения ;)))
+
avatar
+2
Фраза «ничего сложного» это же для хабра. Без этой фразы там нельзя, поскольку там
у каждого двадцатилетнего руководителя крупной компании 30 лет стажа в разработке.
Нельзя писать как сильно ты устал делая эту железку, потому что они там по 10шт таких в час рисуют и паяют.
+
avatar
  • Eddy_Em
  • 18 февраля 2020, 14:21
-1
А что, там есть что-то сложное? Освоить базис аналоговой и цифровой электроники, почитать про рекомендации трассировки. Примеры из Хоровица&Хилла посмотреть, Титце&Шенка полистать…
А потом поставить кикад и начать что-нибудь для себя рисовать. ЛУТом попробовать платы делать, убедиться, что фигня получается, перейти на фоторезист. А когда надоест переходные отверстия паять, заказывать у китайцев (правда, тут тоже подумаешь, что проще: ждать плату прототипа 2-3 месяца, либо же за 2-3 дня сделать ее самому).
Кстати, параллельно с трассировкой платы-прототипа нужно активно пользоваться даташитом и RM на микроконтроллер, т.к. неоднократно возникает необходимость перебросить что-то с одних ног на другие — для простоты трассировки и вообще возможности впихнуть все на два слоя. Я вот последний раз рисовал контроллер шагового двигателя, так SPI для работы с драйвером, а также ШИМ-выход таймера для генерации CLK-импульсов раза четыре переносил на другие ноги… Благо, с GPIO для ногодрыга все намного проще (разве что иной раз нужны 5v-tolerant).
+
avatar
  • tklim
  • 17 февраля 2020, 10:46
-2
Тот момент, когда ардуина не отпускает…
А ведь в стм32 уже давно завезли эзернет. Но надо всё равно лепить костыли в виде визнета. Просто потому что ардуинщики наклепали библиотек.
+
avatar
0
медь надёжнее!
+
avatar
  • tklim
  • 17 февраля 2020, 15:54
+1
А?
+
avatar
0
без очков «стм32» прочел как «esp32» :)
+
avatar
+1
Просто потому что f103+w5500 дешевле, чем f107+какой-нибудь-phy
+
avatar
  • Eddy_Em
  • 18 февраля 2020, 14:13
0
в стм32 уже давно завезли эзернет
Ну и что, что завезли? А библиотек нормальных не завезли еще!
И толку с этого эзернета, если с ним можно только напрямую работать? Даже элементарные udp самому писать придется…
И не надо мне про всякие жиробасы вроде lwip говорить!!! Не годится оно.
+
avatar
  • slabnoff
  • 19 февраля 2020, 20:37
0
Чем Вам так lwIP не угодил? Что-то серьезное и достаточно производительное практически только на нем сделать получается. Если хочется по-проще — пожалуйста есть uIP. Примеры и с тем и другим были в комплекте с FreeRTOS.

Вся жиробасность в lwIP нормально регулируется настройками. Можно что угодно подрезать/отключить. Портируется на нужную архитектуру быстро. Качественно и надежно сделано (код плотно анализировал, т.к. не раз его портировал под разные архитектуры).

Wiznet конечно сейчас сильно лучше, чем во времена 3100 (тогда просто шляпа по глюкам была), но все равно медленное и глюковатое поделие. И действительно выживающее за счет ардуинщиков и прочих 8-битников.
+
avatar
  • DSergio
  • 17 февраля 2020, 13:59
0
А какая максимальная скорость по 485?
Какой смысл использования связки TME0505S + ISO7321CDR+MAX13488E +T вместо одного ADM2587? Скорость?
+
avatar
  • Dab0G
  • 17 февраля 2020, 14:21
0
Да, MAX13488E до 16Мбит, и несколько TME0505S у меня уже было в наличии. Ну и главное желание уйти от ногодрыга.
+
avatar
  • kn_dima
  • 17 февраля 2020, 20:34
0
А для чего требуется такая скорость?
+
avatar
  • Dab0G
  • 17 февраля 2020, 20:50
0
16 — это максимальная скорость драйвера, я планирую использовать на 1-2Мбит. Хочется, чтобы прошивки в ноды залетали секунд за 20-30.
+
avatar
  • kn_dima
  • 17 февраля 2020, 20:59
0
20сек * 1 000 000 бод / 10бит = 2 000 000 байт.
Неужто такие большие прошивки?
+
avatar
  • Dab0G
  • 17 февраля 2020, 21:44
0
Сеть рабочая, Пакеты маленькие, CRC и т.п., так что не очень быстро.
+
avatar
+1
Не увидел, писал ещё кто-то или нет, но если вы делаете гальваническую развязку, то неплохо бы и на плате сделать фрезой вырез по границе DC-DC преобразователя и микросхемы, обеспечивающей развязку RS485. Места для smd-перемычек — как вишенка на торте защиты от пробоев.
+
avatar
  • Dab0G
  • 17 февраля 2020, 19:51
0
Да, были такие предложения, но имхо делать вырез, это уже перебор. Я понимаю, для серьёзного промышленного образца, там да, это можно и нужно делать. Так то их сделать не сложно, вот только они будут увеличивать размер платы. Я в следующей ревизии постараюсь сделать побольше зазоры.
Всё же это DIY разработка для дома :)
+
avatar
  • kn_dima
  • 18 февраля 2020, 09:51
+1
Там у DC/DC допустимое напряжение 1000В.
И накой там нужен вырез?
Девайс не предназначен для сетей высокого напряжения, и изолятор там не для безопасности, а для устранения помех в интерфейсе RS485, вызванных разностью потенциалов земли у разнесённых в пространстве устройств.
+
avatar
  • Alexeink
  • 18 февраля 2020, 21:31
0
Автоматическое управление направлением передачи реализовано за счет отклонения от стандарта RS485. Во время передачи битов «1» драйвер по факту отключается и уровень на линиях A,B определяется только резисторами подтяжки (в вашем случае 4,7 КОм, что многовато по номиналу), что накладывает ограничения по количеству узлов в сети, длинне линии связи и помехоустойчивости.
Кстати, такое же автоматическое управление направлением передачи делается для любого приемопередатчика RS485 на 1 инверторе (74HC04), RC цепочке и диоде.
+
avatar
  • Dab0G
  • 18 февраля 2020, 21:41
0
4.7кОм — это подобрано опытным путём для текущей линии. Понятное дело, что с увеличением её длинны и количества узлов, сопротивление придётся уменьшать. Но всё же автоматическое определение направления удобно.
Хотя сейчас уже периодически задумываюсь о CAN шине. CAN FD очень интересен, но линейка F1 её не поддерживает. :(
+
avatar
  • Z2K
  • 19 февраля 2020, 01:40
0
А что для ваших задач критически важно то, что есть в кан фд, но нет в кан?
+
avatar
  • Dab0G
  • 19 февраля 2020, 11:22
0
Нет конечно, не критически. Просто у FD гораздо большие возможности в плане скорости и размера пакета.
+
avatar
  • Z2K
  • 19 февраля 2020, 14:44
0
«задумываюсь о CAN шине.» — а что здесь думать, трусить надо. :) Так почему не применять кан и лин который аппаратный в самых дешевых стм32? Из-за невостребованости СТ выпилит его из интерфейсов, если не ошибаюсь, в поколении G кан уже нет.
+
avatar
  • Nuts_
  • 22 февраля 2020, 13:09
0
добавлю в здешнюю коллекцию шлюзов вот таких платок
с виду очень напоминают описываеый здесь шлюз
www.ldm-systems.ru/catalog/urob
на выбор — со встроенным сетевым контролером и с отдельным
can тоже вроде можно допилить в них.
железо готовое но софта нет так что радости от програмисткого творчества можно поиметь…
+
avatar
  • pe4enbka
  • 10 февраля 2022, 13:37
0
Здравствуйте. Скажите пожалуйста, есть ли пример кода для устройства описанного в статье?
Изучил ваш гитхаб с общедоступными проектами, не очень понял какой репозиторий относится к этому устройству.
Заметил что есть репозитории для беспроводных адаптеров.
Меня в большей степени интересует возможность работы с CAN шиной и интернет.
+
avatar
  • Prodif
  • 30 сентября 2023, 08:45
0
Простите а исходников на С ни где не поглядеть?

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.