Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:1
Поисковых ботовПоисковых ботов:1
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:3
Форум » starterkit.ru » Процессорные модули » SK-A40i-SODIMM
SK-A40i-SODIMM + armbian, /dev устройства
Vladimir8246
Добавлено 28.11.2023 03:57
0
Сообщение: 1
Vladimir8246
0

Пункты: 403
Регистрация: 02.11.2023
Прошивка sk_min_defconfig + armbian bullseye

1. Подскажите пожалуйста, на какое /dev/ устройство в системе должен отображаться штатный RS485(который на uart7) ?

2. На uart3 повесили модем sim800c , на каком устройстве он должен отображаться ?

устройства /dev/ttymxc* в системе отсутствуют...
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 28.11.2023 09:45 Сообщение: 2
sasamy
4.71

Пункты: 89873
Регистрация: 14.08.2009
Цитата

1. Подскажите пожалуйста, на какое /dev/ устройство в системе должен отображаться штатный RS485(который на uart7) ?


/dev/ttyS7

Цитата

2. На uart3 повесили модем sim800c , на каком устройстве он должен отображаться ?


/dev/ttyS3
Спуститься к концу Подняться к началу
Персональная информация
Vladimir8246
Добавлено 28.11.2023 19:58 Сообщение: 3
Vladimir8246
0

Пункты: 403
Регистрация: 02.11.2023
Цитата
Цитата

1. Подскажите пожалуйста, на какое /dev/ устройство в системе должен отображаться штатный RS485(который на uart7) ?


/dev/ttyS7

Цитата

2. На uart3 повесили модем sim800c , на каком устройстве он должен отображаться ?


/dev/ttyS3


Пробую опрашивать rs485 по модбас, устройство /dev/ttyS7,
получаю ошибки при каждом обращении при любых настройках соединения и любом номере слейва. Опрашиваемое устройство обращения вроде видит, мигает диодом. Софт рабочий, проверено не раз на другом железе.
У rs485 есть driver enable, PB18, может нужно как то пин PB18 настраивать ?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 28.11.2023 20:40 Сообщение: 4
sasamy
4.71

Пункты: 89873
Регистрация: 14.08.2009
Цитата

У rs485 есть driver enable, PB18, может нужно как то пин PB18 настраивать ?


он настроен, проверьте на всякий случай в своём DTS

Цитата

&uart7 {
pinctrl-names = "default";
pinctrl-0 = <&uart7_pi_pins>;
rts-gpios = <PIN_PB 18 GPIO_ACTIVE_HIGH>;
linux,rs485-enabled-at-boot-time;
status = "okay";
};


да и осцилом можно посмотреть
Спуститься к концу Подняться к началу
Персональная информация
Vladimir8246
Добавлено 30.11.2023 21:18 Сообщение: 5
Vladimir8246
0

Пункты: 403
Регистрация: 02.11.2023
Цитата
Цитата

У rs485 есть driver enable, PB18, может нужно как то пин PB18 настраивать ?


он настроен, проверьте на всякий случай в своём DTS

Цитата

&uart7 {
pinctrl-names = "default";
pinctrl-0 = <&uart7_pi_pins>;
rts-gpios = <PIN_PB 18 GPIO_ACTIVE_HIGH>;
linux,rs485-enabled-at-boot-time;
status = "okay";
};


да и осцилом можно посмотреть


Да, PB18 программно настроен в DTS нормально.
Запускались со сниффером, вроде разобрались, в чем ошибка.
У вас контакт enable рисивер в микросхеме rs485 всегда ON.
Получается, я делаю модбас исходящий мастер запрос, и его же получаю как входящий ответ... и он естественно ошибочный, по правилам модбас. Работаем через библиотеку libmodbus, она почти промышленный стандарт.
Сделали следущее: отпаяли контакт enable рисивер микросхемы от контактной площадки и соединили его соплёй с соседним контактом enable драйвер. Всё сразу заработало.
Вопрос, можно ли сделать тоже самое без перепайки, может программно ?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 01.12.2023 14:36 Сообщение: 6
sasamy
4.71

Пункты: 89873
Регистрация: 14.08.2009
Цитата

Вопрос, можно ли сделать тоже самое без перепайки, может программно ?


попробуйте пересобрать ядро с патчем

https://disk.yandex.ru/d/A6H4E1089NQALw

его нужно скопировать в директорию

buildroot-2022.08-xxx/linux/

и собрать ядро с нуля

make linux-dirclean
make
Спуститься к концу Подняться к началу
Персональная информация
Perevezentsev
Добавлено 20.06.2025 23:23 Сообщение: 7
Perevezentsev
5

Пункты: 1278
Регистрация: 08.10.2023
Цитата
Цитата

У rs485 есть driver enable, PB18, может нужно как то пин PB18 настраивать ?


он настроен, проверьте на всякий случай в своём DTS

Цитата

&uart7 {
pinctrl-names = "default";
pinctrl-0 = <&uart7_pi_pins>;
rts-gpios = <PIN_PB 18 GPIO_ACTIVE_HIGH>;
linux,rs485-enabled-at-boot-time;
status = "okay";
};


да и осцилом можно посмотреть


Доброго дня. Подскажите, пожалуйста.
Плата SK-A40i-NANO-2E. Использую UART3 и UART4, пины PI13 для UART3 и SPI1_CLK (PI17) для UART4в качестве управляющих сигналов DIR RS-485.

В dts добавляю:

&pio {
uart3_rs485_pin: uart3-rs485-pin {
pins = "PI13"; // пин для DIR UART3
function = "gpio_out";
drive-strength = <20>;
bias-disable;
};

uart4_rs485_pin: uart4-rs485-pin {
pins = "PI17"; // SPI1_CLK пин для DIR UART4
function = "gpio_out";
drive-strength = <20>;
bias-disable;
};
};

&uart3 {
pinctrl-names = "default";
pinctrl-0 = <&uart3_pg_pins>, <&uart3_rs485_pin>;
rts-gpios = <&pio 8 13 GPIO_ACTIVE_HIGH>; // Банк I (8), пин 13 (PI13)
linux,rs485-enabled-at-boot-time;
status = "okay";
};

&uart4 {
pinctrl-names = "default";
pinctrl-0 = <&uart4_ph_pins>, <&uart4_rs485_pin>;
rts-gpios = <&pio 8 17 GPIO_ACTIVE_HIGH>; // Банк I (8), пин 17 (PI17)
linux,rs485-enabled-at-boot-time;
status = "okay";
};

Правильно ли я делаю? Просто не нашел, где в DTS инициализируется SPI, чтоб отключить использование этого пина.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 21.06.2025 03:21 Сообщение: 8
sasamy
4.71

Пункты: 89873
Регистрация: 14.08.2009
Цитата

Правильно ли я делаю? Просто не нашел, где в DTS инициализируется SPI, чтоб отключить использование этого пина.


если spi не описан в DT платы (у вас это sun8i-a40i-nano2e-none-sk.dts) то пины его можно использовать , достаточно просто указать их

Цитата

PI13 для UART3 и SPI1_CLK (PI17) для UART4


&uart3 {
pinctrl-names = "default";
pinctrl-0 = <&uart3_pg_pins>;
rts-gpios = <PIN_PI 13 GPIO_ACTIVE_HIGH>;
linux,rs485-enabled-at-boot-time;
status = "okay";
};

&uart4 {
pinctrl-names = "default";
pinctrl-0 = <&uart4_ph_pins>;
rts-gpios = <PIN_PI 17 GPIO_ACTIVE_HIGH>;
linux,rs485-enabled-at-boot-time;
status = "okay";
};
Спуститься к концу Подняться к началу
Персональная информация
Perevezentsev
Добавлено 22.06.2025 13:00 Сообщение: 9
Perevezentsev
5

Пункты: 1278
Регистрация: 08.10.2023
Цитата
Цитата

Правильно ли я делаю? Просто не нашел, где в DTS инициализируется SPI, чтоб отключить использование этого пина.


если spi не описан в DT платы (у вас это sun8i-a40i-nano2e-none-sk.dts) то пины его можно использовать , достаточно просто указать их

Цитата

PI13 для UART3 и SPI1_CLK (PI17) для UART4


&uart3 {
pinctrl-names = "default";
pinctrl-0 = <&uart3_pg_pins>;
rts-gpios = <PIN_PI 13 GPIO_ACTIVE_HIGH>;
linux,rs485-enabled-at-boot-time;
status = "okay";
};

&uart4 {
pinctrl-names = "default";
pinctrl-0 = <&uart4_ph_pins>;
rts-gpios = <PIN_PI 17 GPIO_ACTIVE_HIGH>;
linux,rs485-enabled-at-boot-time;
status = "okay";
};


Понял. Спасибо большое за ответ.

Пины CAN (PA16, PA17) так же можно использовать для DIR RS-485 закомментировав в DTS только это?

/*
&can0 {
pinctrl-0 = <&can_pa_pins>;
pinctrl-names = "default";
status = "okay";
};
*/

Или изменив на

&can0 {

status = "disabled"; // Отключаем CAN0

};
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 22.06.2025 13:26 Сообщение: 10
sasamy
4.71

Пункты: 89873
Регистрация: 14.08.2009
Цитата


Пины CAN (PA16, PA17) так же можно использовать для DIR RS-485 закомментировав в DTS только это?

/*
&can0 {
pinctrl-0 = <&can_pa_pins>;
pinctrl-names = "default";
status = "okay";
};
*/

Или изменив на

&can0 {

status = "disabled"; // Отключаем CAN0

};


да - оба варианта отключат CAN и можно использовать его пины.
Чтобы использовать пин как gpio его не надо переключать самому - достаточно просто указать его.
Пины описывают когда надо использовать их как функцию периферийного контроллера, например tx/rx uart описаны, если бы rts использовался аппаратный его тоже надо было бы дописать, но в данном случае rts-gpios т.е. управляет им драйвер програмно через интерфейс gpio, так что описывать не надо.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Процессорные модули » SK-A40i-SODIMM