Шлюз RS485/RS232 в Ethernet


Добрый день!
Для реализации будущих проектов мне потребовались шлюзы RS-485/Ethernet и RS-232/Ethernet. Если говорить точнее, необходим шлюз, который сможет самостоятельно опрашивать устройства по интерфейсам RS-485 и RS-232, а затем выдавать готовые данные по Ethernet. Устройство должно передавать информацию, например, в формате JSON или инициализировать TCP/IP-соединение с сервером для отправки данных с заданной периодичностью (допустим, раз в минуту). Таким образом, требовалась аппаратная платформа со следующими интерфейсами: 2 ? RS-485, 1 ? RS-232 и 1 ? Ethernet.
Свой вариант шлюза я решил построить на базе микроконтроллера STM32G070RB, так как уже имею опыт работы с линейкой STM32. В качестве Ethernet-контроллера используется готовый модуль на базе чипа W5500. Микроконтроллер STM32G070RB оснащен несколькими портами USART. Два из них задействованы под интерфейс RS-485 на базе микросхем трансиверов SP3485EN, а один — под RS-232 на базе микросхемы MAX3232.
В роли понижающего DC-DC преобразователя выступает миниатюрный ШИМ-контроллер HT7463B. Его можно заменить и на аналогичные микросхемы, но в таком случае потребуется пересчитать индуктивность дросселя и номиналы резисторов делителя напряжения. Для подбора компонентов рекомендую удобный ресурс со списком ШИМ-контроллеров и встроенным калькулятором: ссылка. Также на плате предусмотрены три светодиода для отладки и вывода пользовательских состояний.
Для расширения функционала в будущих проектах может потребоваться дискретный вход. К нему можно будет подключить внешний датчик, сигнал с которого послужит триггером для опроса устройств по RS-485/RS-232. Для этих целей я вывел на разъем несколько линий GPIO, подтянув их к шине питания внешними резисторами номиналом 1 кОм.
При проектировании упор делался на SMD-монтаж. Изготовление печатных плат было заказано в Китае. После сборки первого опытного образца выявился ряд аппаратных ошибок. Схема шлюза и Gerber-файлы для производства прикреплены во вложении. В следующей статье я подробно опишу применение этого шлюза в одном из реальных проектов.
А теперь разберем допущенные ошибки:
  1. Перепутана полярность светодиодов. Все три диода на этой ревизии платы необходимо запаивать в обратном направлении.
  2. Ошибка с конфигурацией режима загрузки (Boot). Порт USART1 был переназначен на альтернативные выводы. Однако встроенный загрузчик микроконтроллера использует строго стандартные пины, из-за чего прошивка устройства через интерфейс RS-232 оказалась невозможной.
  3. Некорректная разводка DC-DC преобразователя. В силовой петле (ШИМ-микросхема, дроссель, диод и конденсаторы) следовало сделать более широкие дорожки. Из-за нарушения рекомендаций по трассировке из четырех протестированных микросхем стабильно заработала только HT7463B. Остальные аналоги при включении, выходил из них волшебный дым smiley  и переставали работать.
В следующей ревизии платы данные недочеты будут исправлены. Пока же тестирование остальной периферии продолжится в текущем режиме на опытном образце.
Всем удачи в проектировании!
Как всегда большая благодарность Веимьла А. С. за редактирование и исправление ошибок.

Файлы проекта







Фото годового изделия 


скачать dle 11.3
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.