понедельник, 22 мая 2017 г.

Произвольная скорость порта с Prolific PL2303 в Linux

Тут описаны мои попытки разобраться в настройку нестандартной скорости порта 74880 бит/с используя usb-to-serial конвертор prolific pl2303. Похоже в linux модуль ядра pl2303 реализует только стандартные скорости для передачи данных: 9600, 14400, 28800 и т.д. Но скорость 74880 не входит в этот список и драйвер хотя и принимает настройку через anybaud, но ничего при этом не изменяется.

Я нашел в сети два патча для pl2303, которые решают проблему задания произвольной скорости порта в linux. Первый патч меняет формулу расчета делителя частоты, а второй патч использует эту формулу для любой скорости, не входящей в список поддерживаемых драйвером. Соответственно для стандартных скоростей ничего поменяться не должно.

Чтобы не возиться с установкой модуля в linux я подготовил репозитарий с версией для dkms

sudo apt-get update
sudo apt-get install linux-headers-$(uname -r) dkms
wget -O pl2303-dkms.tar.gz https://github.com/tataranovich/pl2303/archive/master.tar.gz
tar -xzf pl2303-dkms.tar.gz
cd pl2303-master
sudo make install

После выполнения этой команды dkms должен собрать и установить обновленную версию модуля pl2303 и загрузить его в систему. Теперь можно задать произвольную скорость (например через anybaud, которая есть в том же репозитарии):

cd pl2303-master
./anybaud /dev/ttyUSB0 74880
Changed successfully.

Комментариев нет:

Отправить комментарий