Ник:
Пароль:

Контакты

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

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:3
Форум » starterkit.ru » Процессорные модули » SK-ATSAMA5D3-SODIMM
Где взять RTS?
_fixer_
Добавлено 04.03.2015 01:48
0
Сообщение: 1
_fixer_
0

Пункты: 516
Регистрация: 01.10.2012
Пол: Мужчина
На пины SODIMM не выведено ни одного пина с функцией RTS ни для одного из USART. Неужели программно придётся делать?
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 04.03.2015 08:38 Сообщение: 2
Pavel Ivanchenko
Admin
4.39

Пункты: 92805
Регистрация: 24.03.2009
Пол: Мужчина
К сожалению, да.
Спуститься к концу Подняться к началу
Персональная информация
Mark
Добавлено 10.06.2017 16:14 Редактировалось 10.06.2017 16:14 Сообщение: 3
Mark
0

Пункты: 3792
Регистрация: 08.02.2015
Здравствуйте !
Возникла необходимость использовать RS485 поверх uart. Как я понимаю лини ~RE-DE соединяются на линия RTS. Но линия RTS на SODIMM не выведена. Почитав доку стало ясно, что можно использовать GPIO.

Код
usart2: serial@f8020000 {
compatible = "atmel,at91sam9260-usart";
reg = <0xf8020000 0x100>;
interrupts = <14 IRQ_TYPE_LEVEL_HIGH 5>;
dmas = <&dma1 2 AT91_DMA_CFG_PER_ID(7)>,
<&dma1 2 (AT91_DMA_CFG_PER_ID(8) | AT91_DMA_CFG_FIFOCFG_ASAP)>;
dma-names = "tx", "rx";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usart2>;
clocks = <&usart2_clk>;
clock-names = "usart";
rts-gpios = <&pioD 19 GPIO_ACTIVE_LOW>;
cts-gpios = <&pioD 22 GPIO_ACTIVE_LOW>;
rs485-rx-during-tx;
linux,rs485-enabled-at-boot-time;
status = "okay";
};


Если отправить данные через echo "test" > /dev/ttyS3 то на линии постоянно высокий уровень.
В тестовом приложении линия RTS также в высоком уровне. Есть подозрение, что что-то делаю не так.

Код
//setup COM port
serial.setBaudRate(QSerialPort::Baud115200);
serial.setDataBits(QSerialPort::Data8);
serial.setParity(QSerialPort::NoParity);
serial.setStopBits(QSerialPort::OneStop);
serial.setFlowControl(QSerialPort::NoFlowControl);
bool open = serial.open(QSerialPort::WriteOnly);

if(open == true) printf("Open OK\n");

qDebug() << serial.error();

qDebug() << serial.setRequestToSend(true);

serial.write("Hello\n");
serial.waitForBytesWritten(3000);

qDebug() << serial.setRequestToSend(false);


пробовал еще так:
Код
//setup COM port
serial.setBaudRate(QSerialPort::Baud115200);
serial.setDataBits(QSerialPort::Data8);
serial.setParity(QSerialPort::NoParity);
serial.setStopBits(QSerialPort::OneStop);
serial.setFlowControl(QSerialPort::HardwareControl);
bool open = serial.open(QSerialPort::WriteOnly);

if(open == true) printf("Open OK\n");

qDebug() << serial.error();


serial.write("Hello\n");
serial.waitForBytesWritten(3000);


qDebug() << serial.bytesToWrite();


Подскажите как правильно указать ногу GPIO что это RTS ?
Спасибо.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 13.06.2017 07:17 Редактировалось 13.06.2017 07:18 Сообщение: 4
sasamy
4.71

Пункты: 83552
Регистрация: 14.08.2009
Ноги которые используете как RTS/CTS переключены на GPIO ? Сделайте по аналогии arch/arm/boot/dts/at91-sama5d3_sk_800x480.dts (название DTS зависит от того какой конфиг вы используете)

Цитата

pinctrl@fffff200 {
board {
pinctrl_mmc1_cd: mmc1_cd {
atmel,pins =
<AT91_PIOD 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
};

pinctrl_usba_vbus: usba_vbus {
atmel,pins =
<AT91_PIOB 16 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
};

pinctrl_pck0_as_audio_mck: pck0_as_audio_mck {
atmel,pins =
<AT91_PIOD 30 AT91_PERIPH_B AT91_PINCTRL_NONE>;
};
};
};
Спуститься к концу Подняться к началу
Персональная информация
Mark
Добавлено 13.06.2017 23:19 Сообщение: 5
Mark
0

Пункты: 3792
Регистрация: 08.02.2015
Цитата
Ноги которые используете как RTS/CTS переключены на GPIO ? Сделайте по аналогии arch/arm/boot/dts/at91-sama5d3_sk_800x480.dts (название DTS зависит от того какой конфиг вы используете)

Цитата

pinctrl@fffff200 {
board {
pinctrl_mmc1_cd: mmc1_cd {
atmel,pins =
<AT91_PIOD 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
};

pinctrl_usba_vbus: usba_vbus {
atmel,pins =
<AT91_PIOB 16 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
};

pinctrl_pck0_as_audio_mck: pck0_as_audio_mck {
atmel,pins =
<AT91_PIOD 30 AT91_PERIPH_B AT91_PINCTRL_NONE>;
};
};
};


Спасибо, разобрался )
Нужно было включить мультиплексинг ножек и прописать их.

Код
usart2: serial@f8020000 {
compatible = "atmel,at91sam9260-usart";
reg = <0xf8020000 0x100>;
interrupts = <14 IRQ_TYPE_LEVEL_HIGH 5>;
dmas = <&dma1 2 AT91_DMA_CFG_PER_ID(7)>,
<&dma1 2 (AT91_DMA_CFG_PER_ID(8) | AT91_DMA_CFG_FIFOCFG_ASAP)>;
dma-names = "tx", "rx";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usart2>, <&pinctrl_usart2_rts_cts>;
clocks = <&usart2_clk>;
clock-names = "usart";
rts-gpios = <&pioB 3 0>;
status = "okay";
};


Код
pinctrl@fffff200 {
[...]

usart2 {
pinctrl_usart2: usart2-0 {
atmel,pins =
<AT91_PIOE 25 AT91_PERIPH_B AT91_PINCTRL_NONE
AT91_PIOE 26 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
};

pinctrl_usart2_rts_cts: usart2_rts_cts-0 {
atmel,pins =
<AT91_PIOB 2 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH
AT91_PIOB 3 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
};
};

[...]
};
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Процессорные модули » SK-ATSAMA5D3-SODIMM