Warning: touch() [function.touch]: Unable to create file /home/starterkit/starterkit.ru/html/error.log because Permission denied in /home/starterkit/starterkit.ru/html/errorhandler.php on line 51
Запускаю UART : tcdrain отрабатывает поздно - Embedded Linux - Форум - starterkit.ru
Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Embedded Linux
Запускаю UART : tcdrain отрабатывает поздно
sasamy
Добавлено 22.05.2015 15:33 Сообщение: 11
sasamy
4.70

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

fsl,pins = <
MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA 0x1b0b1
MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA 0x1b0b1
>;


RTS на неиспользуемом пине надо искать от этого порта и дописывать аналогично с RX/TX, только это же консольный порт - вряд ли это удачная идея использовать его как rs-485
Спуститься к концу Подняться к началу
Персональная информация
Wad1970
Добавлено 22.05.2015 15:54 Редактировалось 22.05.2015 15:58 Сообщение: 12
Wad1970
5

Пункты: 3692
Регистрация: 24.11.2014
Непонятно . По идее там же где указывается каким уровнем и с какими задержками разрешать передачу должна быть указана и нога процессора которая будет переключать rs485...

Или ноги заданы жёстко ??
В Manual_SK-iMX6S-OEM указаны ноги RTS для UART1,UART4 и UART5
CSI_D6 - M6: CSI0 D18, GPIO_6_4, UART5 RTS
..
а для UART 2 и 3 не указаны
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 22.05.2015 16:04 Сообщение: 13
sasamy
4.70

Пункты: 76182
Регистрация: 14.08.2009
serial: imx: add support for half duplex rs485
The transmitter is expected to be controlled by the UART's RTS pin
Спуститься к концу Подняться к началу
Персональная информация
lexx666
Добавлено 23.05.2015 20:39 Сообщение: 14
lexx666
3.83

Пункты: 11780
Регистрация: 28.07.2011
Пол: Мужчина
Из: Барнаул
Не запутайтесь с CTS и RTS. У imx всё наоборот, в режиме rs485 аппаратно дергается CTS, а RTS это вход. У всех производителей наоборот.
Спуститься к концу Подняться к началу
Персональная информация
Wad1970
Добавлено 26.05.2015 07:36 Редактировалось 26.05.2015 14:45 Сообщение: 15
Wad1970
5

Пункты: 3692
Регистрация: 24.11.2014
Не пойму . Указал в dtsi вот так.
uart5 {
pinctrl_uart5_oem: uart5-oem {
fsl,pins = <
MX6QDL_PAD_KEY_COL1__UART5_TX_DATA 0x1b0b1
MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA 0x1b0b1
MX6QDL_PAD_KEY_ROW4__UART5_CTS_B 0x1b0b1
MX6QDL_PAD_KEY_ROW4__UART5_RTS_B 0x1b0b1
>;
};
};
Этого достаточно?
Или это только перечисление ног используемых UART5, и теперь надо как то указать функцию каждой ноги, как в примере с SD:
"пин настроен, теперь нужно сообщить драйверу usdhc GPIO для детектирования карты

&usdhc1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usdhc1_sodimm>;
vmmc-supply = <&reg_3p3v>;
keep-power-in-suspend;
enable-sdio-wakeup;
no-1-8-v;
cd-gpios = <&gpio4 12 0>;
status = "okay";
"
А у меня
&uart5 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart5_oem>;
status = "okay";
};
Как здесь написать.. Помогите, кто знает...
А где их (RTS и CTS) искать на модуле, осциллографом куда тыкать?
Ну нога полагаю должна быть X8-36..

Ничего не работает
Спуститься к концу Подняться к началу
Персональная информация
Wad1970
Добавлено 27.05.2015 08:31 Сообщение: 16
Wad1970
5

Пункты: 3692
Регистрация: 24.11.2014
Нашел в другом dtsi вот это..
uart5: serial@021f4000 {
compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
reg = <0x021f4000 0x4000>;
interrupts = <0 30 0x04>;
clocks = <&clks 160>, <&clks 161>;
clock-names = "ipg", "per";
dmas = <&sdma 33 4 0>, <&sdma 34 4 0>;
dma-names = "rx", "tx";
status = "disabled";
};
Откуда здесь адрес - serial@021f4000 ..
Что здесь изменить чтобы у меня с 485 заработало? ..
Спуститься к концу Подняться к началу
Персональная информация
lexx666
Добавлено 03.06.2015 14:51 Редактировалось 03.06.2015 14:51 Сообщение: 17
lexx666
3.83

Пункты: 11780
Регистрация: 28.07.2011
Пол: Мужчина
Из: Барнаул
Цитата

Не пойму . Указал в dtsi вот так.
uart5 {
pinctrl_uart5_oem: uart5-oem {
fsl,pins = <
MX6QDL_PAD_KEY_COL1__UART5_TX_DATA 0x1b0b1
MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA 0x1b0b1
MX6QDL_PAD_KEY_ROW4__UART5_CTS_B 0x1b0b1
MX6QDL_PAD_KEY_ROW4__UART5_RTS_B 0x1b0b1
>;
};
};
Этого достаточно?

Да, для UART5. Пины определены. Теперь необходимо в
DTS файле для UART5 прописать режим работы с RTS, CTS...

https://www.kernel.org/doc/Documentation/devicetree/bindings/serial/fsl-imx-uart.txt

fsl,uart-has-rtscts;
fsl,dte-mode; если нужен и т.д.
Спуститься к концу Подняться к началу
Персональная информация
Wad1970
Добавлено 05.06.2015 10:56 Редактировалось 05.06.2015 10:59 Сообщение: 18
Wad1970
5

Пункты: 3692
Регистрация: 24.11.2014
Спасибо, сделал как вы сказали.
fsl,uart-has-rtscts;
При передаче (write(...)) на TX перестала выдаваться последовательность - может ждёт RTS-готовности от устройства,
пощупал ногу RTS-CTS они подтянуты RTS к 5В, CTS к 0
Рискнул на RTS ткнуть 0, на CTS 5В на TX ничего не появляется
Вот так в dtsi файле

&uart5 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart5_oem>;
fsl,uart-has-rtscts;
/* rs485-rx-during-tx; */
status = "okay";
};
Спуститься к концу Подняться к началу
Персональная информация
Wad1970
Добавлено 08.06.2015 14:16 Сообщение: 19
Wad1970
5

Пункты: 3692
Регистрация: 24.11.2014
Нашёл страничку
https://community.freescale.com/thread/310625
Переназначил ноги RTS и CTS на те которые там прописаны-

MX6QDL_PAD_CSI0_DAT18__UART5_RTS_B 0x1b0b1
MX6QDL_PAD_CSI0_DAT19__UART5_CTS_B 0x1b0b1 ,

Передача по tx пошла, но ноги CTS, да и RTS не шевелятся.
Может причина что у меня CSI не отключен, а у меня не получается его отключить-
компилятор ругается на некорректную структуру devicetree,
хотя disp и audio e меня получилось а с csi не выходит..
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux