Позвольте мне рассказать вам, как эффективно реализовать подключение Ethernet к DMX512 с помощью W5500 и FreeRTOS.
Оригинал статьи на английском языке - https://www.instructables.com/Ethernet-to-DMX512/
Шаг 1: Вещи, которые нужно подготовить.
- Любая плата, содержащая MCU и W5500.
Моя специальная плата, которую я подготовил, имеет STM32f103VC (cortex m3) и Wiznet W5500 TCP/IP IC.
Если хотите, напишите мне по электронной почте. Я вышлю вам все (схема колодок, файл с изображением и файл gerber) Мой адрес электронной почты: bangbh@gmail.com
-
IDE.
Все должно соответствовать вашей платформе (board). Я использовал CoIDE. -
Исходный код
EthernetDMX512-master.zip (6.5 МБ)
GitHub - bangbh81/EthernetDMX512: EthernetDMX512 using freeRTOS
Шаг 2: Скомпилируйте и загрузите во Flash.
Исходный код имеет 3 задачи. Задача DMX512, задача TCP и задача времени (задача времени не имеет смысла).
- Скомпилируйте и скачайте.
Шаг 3: Тест
-
На самом деле протокол DMX512 составляет всего 250 кбит/с, 2 стоповых бита в одностороннем режиме. И аппаратный интерфейс RS-485. Поэтому вы должны проверить форму сигнала на выводе uart tx.
-
Невозможно проверить полную форму волны dmx512, потому что пакет dmx512 составляет 513 байт. Просто проверьте только начало пакета.
-
Протокол Ethernet очень прост. Задача TCP запускается как сервер TCP, а данные TCP составляют всего 5 байт.
STX(1) - Адрес DMX512(2) - Данные DMX512(1) - ETX(1)
EX) Адрес: 5, данные: 0xff => 0x02|0x00|0x05|0xff|0x03
Вы можете протестировать его любым TCP-инструментом, таким как Hercules.
- Если вы хотите идеально реализовать dmx512, добавьте в схему микросхему передатчика RS485.