Главная Файлы Форум Галерея Гостевая книга Обратная связь Карта сайта Поиск
 

 

Моё место работы

СитиСервис
  • Заправка и ремонт лазерных картриджей
  • Ремонт любых принтеров и копиров
  • Оригинальные и совместимые картриджи
  • Доставка бесплатно (от 2-х картриджей)
  • Накопительная система расчётов для корпоративных клиентов
Телефон
+7 (4722) 373-983
8-980-326-01-23
Адрес E-mail
mybelpost@gmail.com

Привет, Гость

Войти
Идентификация
Я забыл свой пароль
Регистрация

Разделы -> Статьи -> Linux - разное -> USB Debug кабель из ...

USB Debug кабель из программатора на основе CH341A

Имеется программатор на основе ИМС CH341A.
Из него можно сделать и USB debug-кабель, а не собирать отдельный прибор.
Т.к. ch341 является ещё и конвертером USB в COM (RS232) с TTL уровнями.

Внешний вид программатора на основе ИМС CH341A



Некоторое время назад, я описывал процедуру прошивки w25q64 под Linux с использованием программатора на ch341a. Сейчас опишу как использовать имеющийся программатор в качестве USB debug-кабеля под Linux.

Сначала определимся, что за железо у нас в руках.

Для этого снимаем перемычку P/S с программатора.
Вставляем его в USB.
Открываем терминал, получаем права root.
Командуем:

dmesg

Вывод после подключения программатора будет примерно таким:

..............
usb 8-2: new full-speed USB device number 5 using uhci_hcd
usb 8-2: New USB device found, idVendor=1a86, idProduct=5523
usb 8-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
ch341 8-2:1.0: ch341-uart converter detected
usb 8-2: ch341-uart converter now attached to ttyUSB0
..............

(лишнее из вывода удалено)

Так сработал родной модуль ядра в Debian 7.8 Wheezy.
С этим драйвером программатор на базе ch341a работать в режиме конвертера USB в COM (RS232) работать не будет!

Если перемычка P/S одета, то idProduct будет другим - 5512. Это не тот режим работы ИМС - снимите перемычку!


Нужно собирать другой модуль ядра.

Открываем терминал.

Качаем исходники модуля для ch34x
(Где взял исходники, я не помню. Возможно у китайцев.)

wget http://www.sakryukin.ru/uploads/src/CH341SER_LINUX.tar.bz2

Распаковываем

tar -xvvjf ./CH341SER_LINUX.tar.bz2

Заходим терминалом в каталог CH341SER_LINUX

cd ./CH341SER_LINUX

Компилируем модуль ядра

make

Получаем в терминале права root и загружаем скомпилированный модуль

make load

Подключаем программатор на базе ch341a к USB и проверяем его определение в системе скомандовав

gmesg

Вывод после установки нового драйвера примерно такой:

..............
USB Serial support registered for ch34x
usbcore: registered new interface driver ch34x
usb 7-2: new full-speed USB device number 2 using uhci_hcd
usb 7-2: New USB device found, idVendor=1a86, idProduct=5523
usb 7-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
ch34x 7-2:1.0: ch34x converter detected
usb 7-2: ch34x converter now attached to ttyUSB0
USB Serial support registered for ch341-uart
usbcore: registered new interface driver ch341
..............

Видим, что ch341-uart изменилось на ch34x - значит всё получилось правильно.

Так же видно, что аппарат имеет в системе интерфейс ttyUSB0, т.е. /dev/ttyUSB0 и это то же правильно.

Далее, для работы с портом /dev/ttyUSB0 нужно включить обычного пользователя в группу dialout
Из консоли командуем (права обычного пользователя):

su -c "usermod -a -G dialout $USER"

Перелогиняем пользователя, чтобы эти изменения прав вступили в силу.

Теперь можно просмотреть текущие параметры порта консольной командой (права обычного пользователя):

stty -F /dev/ttyUSB0 -a

Если этого приложения в системе нет, то его можно установить из оф. репозитория.

Проверка работы USB debug кабеля на основе ch341


Здесь я опишу три варианта проверки и возможно использования.

Задаём скорость работы /dev/ttyUSB0 = 115200 скомандовав в консоли:

stty -F /dev/ttyUSB0 115200

Вариант первый

На программаторе перемыкаем Rx и Tx выводы порта RS232

Запускаем 2 терминала.

В одном даём команду:

/bin/cat /dev/ttyUSB0

В другом командуем:

echo "Hi" > /dev/ttyUSB0

В окне терминала, где командовали /bin/cat ....
Должны увидеть "Hi", т.е. введённую нами фразу.

Вариант второй

Использование консольного приложения minicom.

Ставим его из репозитория.

Запускаем из консоли:

minicom -s

Выбираем "Настройка последовательного порта".
Жмём "а"
Исправляем порт на /dev/ttyUSB0
Жмём ENTER
Отключаем аппаратное управление потоком нажав "f"
Выбираем "Выход"

Включаем режим эхо.

Для этого жмём Ctrl+A и следом жмём "e"

Вводим символ с клавиатуры - он пока не повторяется.

Коротим Rx и Tx на выводе RS232 программатора.

Вводим символ (фразу) в minicom.
Символ (фраза) должен повториться.

Т.е. эхо-режим работает!

Для выхода из minicom нужно нажать Ctrl+a и следом "x".

Вариант третий

Используем приложение cutecom для графического режима.

Ставим его из репозитория.

Запускаем из терминала скомандовав:

cutecom

должно появиться окно приложения:



Настраиваем cutecom:

строка "Device" = /dev/ttyUSB0 (вбиваем вручную)
Строка "Parity" = "None"
В строке "Open for" галки ставим и в "Reading" и в "Writting".
Baud rate = 115200
Data bits = 8
Stop bits = 1
В низу окна приложения, в среднем выпадающем списке выбираем "No line end"

После настройки жмём кнопку "Open device".

В поле "Input" вводим символы с клавиатуры.
Ввод завершаем нажатием ENTER.



Введённые символы будут выводиться только в поле истории команд (среднее поле - рис. выше).

Замыкаем выводы Rx и Tx на программаторе.

Снова вводим символ или фразу в соответствующем поле.

Если всё работает правильно, то мы должны увидеть введённые символы в поле ответа (самое большое поле - рис. ниже)



Если введённые символы повторяются в верхнем поле, значит эхо работает!

Для очистки истории cutecom командуем в консоли:

sed -i 's/History.*/History=/' $HOME/.config/CuteCom/CuteCom.conf

Если эхо-тест пройден, то программатор на базе ch341a можно использовать в качестве USB debug-кабеля.

Подготовка принтера или другого устройства к прошивке через debug-кабель индивидуальна для каждого девайса. Потому здесь описывать не буду.

Скажу лишь, что вместо HiperTerminal применяющегося в Windows, для аналогичных целей, я использую под Linux приложение cutecom или minicom. А вместо usbprns2.exe используется команда cat (см. ниже).

Команда отправки прошивки в принтер:

cat /путь/к_прошивке.hd > /dev/usb/lp0

Всё! Ждём перезагрузки принтера.

Есть нюанс!
 После ввода команды cat /путь/к_прошивке.hd > /dev/usb/lp0, сразу появляется строка приглашения Linux, но принтер всё ешё может перешиваться. Не трогайте его - дождитесь перезагрузки аппарата!




Опубликовано: Константин, Автор/источник: Сакрюкин К.В. 31 Май 2015 21:56:49

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

Вы не залогинены! Регистрация

Афоризмы, мысли

"Единственное средство для поддержания чистоты, которое достойно внимания - жена!"

/Сакрюкин К.В./

Счётчик

Сейчас на сайте - 1 (0 зарег.)
Всего хитов3544 
Сегодня хитов3544 
Сегодня хостов652 

Откуда гости наши?

 
Powered by ReloadCMS 1.5.0.
© 2004-2012 ReloadCMS Team
RSS AggregationPHP powered
Генерация страницы: 0.34
  Яндекс.Метрика
    Сакрюкин К.В.   Яндекс цитирования    
 
Здесь всё можно копировать и цитировать, но рабочая ссылка на мой сайт обязательна!