Ник:
Пароль:

Контакты

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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:7
Форум » starterkit.ru » Embedded Linux
подключение UART2 по каналу RS-485
sergzaytsev
Добавлено 16.08.2016 00:39
0
Сообщение: 1
sergzaytsev
0

Пункты: 3694
Регистрация: 19.07.2016
Доброго времени суток, уважаемые коллеги.
Изделие SK-iMX6S-SODIMM, совместное использование с SK-iMX6-MB-SODIMM. Цель - подключение UART2 по каналу RS-485, управление направлением передачи с помощью сигнала UART2 CTS_B.
1. В файле imx6qdl-sodimm.dtsi выпилил устройство ecspi1, закомментив строки 120-146, 276, 309-319. Цель - освободить контакт проца G23 EIM_D28.
2. Воткнул после строки 505 (там где пины UART2 описаны) строку вида
MX6QDL_PAD_EIM_D28__UART2_CTS_B 0x1b0b1 - подключил сигнал UART2_CTS_B к освободившемуся контакту EIM_D28.
3. пересобрал ядро, вызвав kernel_rebuild.sh и залил все в плату SK-iMX6S-SODIMM.

В результате пин EIM_D28 сидит в нуле и управлять направлением не желает. Я что-то не доделал. Подскажите пожалуйста, что я недоделал и где прочитать про это. Заранее благодарен.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 16.08.2016 09:20 Сообщение: 2
sasamy
4.70

Пункты: 76642
Регистрация: 14.08.2009
В ядре 3.10.17 не реализовано управление трансмиттером. Как сделано в 3.14 и 4.1.15 написано тут

http://starterkit.ru/html/index.php?name=forum&op=view&id=26393#26401
Спуститься к концу Подняться к началу
Персональная информация
sergzaytsev
Добавлено 16.08.2016 21:28 Сообщение: 3
sergzaytsev
0

Пункты: 3694
Регистрация: 19.07.2016
sasamy спасибо Вам большое, а какое ядро Вы порекомендуете - 3.14 или совсем новое 4.1.15?
Спуститься к концу Подняться к началу
Персональная информация
sergzaytsev
Добавлено 17.08.2016 08:56 Сообщение: 4
sergzaytsev
0

Пункты: 3694
Регистрация: 19.07.2016
4.1.15 наверное допиливают еще.....
Дайте ссылку пожалуйста, откуда можно скачать 3.14.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 17.08.2016 09:34 Сообщение: 5
sasamy
4.70

Пункты: 76642
Регистрация: 14.08.2009
на solo без нанд можно и 4.1.15 использовать. Ссылка на 3.14

http://starterkit.ru/html/index.php?name=forum&op=view&id=25861
Спуститься к концу Подняться к началу
Персональная информация
sergzaytsev
Добавлено 17.08.2016 22:57 Сообщение: 6
sergzaytsev
0

Пункты: 3694
Регистрация: 19.07.2016
sasamy добрый вечер. скачал по Вашей ссылке ядро версии 3.14, распаковал рядом с версией 3.10.17, зашел в каталог версии 3.14, выполнил make clean, make imx6sk_qt5gst_defconfig, make menuconfig, выбрал тип платы, типы дисплеев, включил watchdog, запомнил.
Запустил make. Собралось с ошибками. Запустил make повторно, в консоли указав файл лога ошибок. Файл присоединяю.
Если не трудно, взгляните на лог. Где я мог накосячить?
Делал все точно как с версией 3.10.17 - эта версия собирается отлично.
Версия 3.14 собираться не хочет. Заранее благодарен.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 17.08.2016 23:11 Редактировалось 17.08.2016 23:12 Сообщение: 7
sasamy
4.70

Пункты: 76642
Регистрация: 14.08.2009
Лог не вижу но подозреваю какая ошибка, попробуйте доустановить в виртуалке pkg-config

$ sudo apt-get install pkg-config

http://starterkit.ru/html/index.php?name=forum&op=view&id=25861#25883
Спуститься к концу Подняться к началу
Персональная информация
sergzaytsev
Добавлено 19.08.2016 02:27 Сообщение: 8
sergzaytsev
0

Пункты: 3694
Регистрация: 19.07.2016
sudo apt-get install pkg-config выполнил, Версия 3.14 собралась. При попытке вставить MX6QDL_PAD_ХХХ_ХХХ__GPIO1_IO11 0x80000000 и rs485-gpio = <&gpio1 11 0>; сигнал GPIO1_IO11 начинает управлять направлением передачи, однако перестает выдавать данные передатчик!
Пробовал использовать сигнал GPIO1_IO14 - результат тот же - при активизации сигнала GPIO1_IOхх в фале dtsi сигнал начинает управлять, но перестает выдавать данные передатчик, а если закомментить сигнал GPIO1_IOхх в фале dtsi, то передатчик начинает работать, но управление не работает. Может это ошибка в драйвере?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 19.08.2016 14:55 Сообщение: 9
sasamy
4.70

Пункты: 76642
Регистрация: 14.08.2009
Скорей всего порт настроен неправильно, повторюсь - нужен raw режим с полным отключением эха и управления потоком. Драйвер я проверял так - соединял два порта через трансмиттеры и гонял данные - у меня ничего не перестает передавать, если отключить управление и эхо.
Спуститься к концу Подняться к началу
Персональная информация
sergzaytsev
Добавлено 20.08.2016 19:28 Сообщение: 10
sergzaytsev
0

Пункты: 3694
Регистрация: 19.07.2016
sasamy добрый день.
Прошу Вас посмотреть код инициализации UART:
sfd = open("/dev/ttymxc1", O_RDWR | O_NOCTTY);
if (sfd < 0) {
qDebug() << "Can't open %1, error code %2", sfd, strerror(errno);
return;
}
qDebug() << "UART Status: Running, connected to port ttymxc1";
rc = tcgetattr(sfd, &tty);
if (rc < 0) {
qDebug() << "Failed to get attr: %1, error code %2", rc, strerror(errno);
return;
}
savetty = tty; /* preserve original settings for restoration */
spd = B115200;
cfsetospeed(&tty, (speed_t)spd);
cfsetispeed(&tty, (speed_t)spd);
cfmakeraw(&tty);
tty.c_cc[VMIN] = 1;
tty.c_cc[VTIME] = 1000;
tty.c_cflag &= ~CSTOPB;
tty.c_cflag &= ~CRTSCTS; /* no HW flow control? */
tty.c_cflag |= CLOCAL | CREAD;
rc = tcsetattr(sfd, TCSANOW, &tty);
if (rc < 0) {
qDebug() << "Failed to set attr: %1, error code %2", rc, strerror(errno);
return;
}
Я видимо установил raw режим не полностью, так как проблема осталась:
как только я устанавливаю пин управления направлением передачи, перестает работать передатчик (да и приемник тоже). Что я забыл?
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux