Работа с DT, rs-485, перенос пина управления RTS

Добрый день!

Мой вопрос касается больше теоретической части. Я только начинаю осваивать wb и меня очень заинтересовала платфрма imx6.

У меня есть плата wb6 hw 6.6.0, модуль WBE2-I-RS485-ISO и преобразователь WB-M1W2. Подключено это к MOD1
С помощью этого тестового стенда я могу оправшивать преобразователь и видеть данные регистров (просто сам факт что rs-485 работает, у меня нет устройств на 1-wire)

echo 73 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio73/direction
echo 1 > /sys/class/gpio/gpio73/value

modbus_client -mrtu -a179 -t3 -c5 -r200 -pnone -s2 /dev/ttyMOD1

modbus_client -mrtu -a179 -t3 -c5 -r200 -pnone -s2 /dev/ttyMOD1 SUCCESS: read 5 of elements:
Data: 0x0057 0x0042 0x004d 0x0031 0x0057

Моих знания по работе с rs-485 очень поверхностные и как я понимаю сейчас для работы ему нужны 2 линии rx/tx, плюс одна для управления потоком.

26 gpio RTS, он управляется програмно.

Я хочу задействовать RTS с MOD2, а RX/TX оставить с MOD1, те свапнуть


на


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

Зачем мне все это просите вы :slight_smile: Я пока использую эту плату как dev-board, разбираюсь как работает DT в линуксе, u-boot да и вся платформа imx6 в целом. Хочу научиться работать с выводами, менять их назначение и прочее.

Я понимаю, что в WB очень много “магии” в wb-hwconf-manager через dt-overlay. Но чем больше я погружаюсь, тем больше мне становится ясно как все работает и я больше влюбляюсь в архитектуру.

Если можно объясните простым языком, т.к. я еще дилетант и спасибо такую классную платформу.

Ну собственно пины RTS определяются в оверлеях, которые лежат в wb-hwconf-manager. Т.е. вы наверное можете их там поменять местами.

Но кроме оверлеев, есть ещё pinmux-ноды, которые задают режимы ножек процессора. Они заранее определены в общем dtb платы.

Т.е. если поменяете местами, то работать будет, но только если в обоих модулях выберете rs485.