LINUX.ORG.RU

LIRC не понимает USB-UART в принципе?

 ,


1

2

или как?

Есть у меня товарищ, а аккаунта на ЛОРе у него нет, зато есть уже на пару дней боль как подружить lirc и ИК-приемник за 23 рубля через usb-uart кабелек. Собсна, слово потерпевшему:

есть pl2303, к нему ик-приёмник vs1838, какой драйвер в лирке использовать и скакими параметрами

putty при подключение на 9600 бод показывает байты

sudo mode2 -Husb_uirt_raw -d/dev/ttyUSB0 ничего не показывает

только устанавливает 115200 бод

после этого cat /dev/ttyUSB0 | hexdump -Cv показывает одни нули

делаем sudo stty -F /dev/ttyUSB0 9600, затем опять cat /dev/ttyUSB0 | hexdump -Cv, есть последовательность 0х80/0х00

как быть?

помогите, люди добрые, не проходите мимо!

★★★★★

Ответ на: комментарий от damix9

вот, что в лирковом драйвере

  • Mode2 receiver + transmitter using the bitbang mode of an FTDI
  • USB-to-serial chip such as the FT232R, with a demodulating IR receiver
  • connected to one of the FTDI chip’s data pins – by default, D1 (RXD).
pihter ★★★★★
() автор топика
Ответ на: комментарий от ex-kiev

В этом и прелесть lirc (если вам вообще нужен и нравится пульт), что когда уже заработает, то можно использовать хоть копеечный ноунейм универсальный из гипермаркета, хоть тот самый любимый пульт от любимого кондиционера Мицубиси.

token_polyak ★★★★
()
Ответ на: комментарий от token_polyak

Да. Мы уже смекнули.

Есть ftdi и, если я правильно понимаю, то там UART RX используется на вход, а bit bang - на передачу. Это бы объяснил почему нет драйверов на большинство популярных уарт свистков: в них нет бит банга для передачи,

Но ведь нам-то только приём нужен

pihter ★★★★★
() автор топика
Ответ на: комментарий от Motif

Купил у китайцев готовый пульт, ему LIRC не нужен, он прикидывается USB мышкой или клавой

Я тоже так сделал на одном телике: совсем не так удобно, как одним пультом на втором телике и телевизором и приставкой

pihter ★★★★★
() автор топика
Ответ на: комментарий от token_polyak

Предлагаю либо забить на USB-UART и использовать абдурину с Girs, либо писать свой плагин.

Всё возможно :) в принципе, достаточно купить свисток на основе ftdi - заработает

Но людей тоже можно послушать: не может быть чтоб никто не ходил по этим граблям до нас

pihter ★★★★★
() автор топика
Ответ на: комментарий от pihter

Если и ходил, то в далёкие нулевые, когда актуальными были пульты, телевидение и прочая дрянь. Так что большего успеха вы добъётесь перечесывая архивы форумов/ньюсгрупп/мейлинглистов.

Кстати, только сейчас заметил, что коллега напрямую втыкает ИК-приёмник/демодулятор во вход UART. «Это вообще законно?», как говорят школьники? Откуда идея, что это вообще заработает? Там же дико различающиеся тайминги, совсем непохоже на монотонные 9600 бод.

token_polyak ★★★★
()
Последнее исправление: token_polyak (всего исправлений: 3)
Ответ на: комментарий от token_polyak

«Это вообще законно?», как говорят школьники? Откуда такая идея?

C сайта LIRC :)

там атас: ноль или единица кодируется длинной паузы перед импульсом ИК. Все это подаем на Rx вход уарта, он тригерится на начало передачи и потом в зависимости от длинны паузы получается или полностью нулевой байт или не нулевой. Я сам смузи на подворот шатанов изо рта выронил, когда мне такое сказали :)

pihter ★★★★★
() автор топика
Ответ на: комментарий от pihter

Я думаю, если покупать, то плату с распаянной FT232RL, и не надо три месяца ждать, есть в ближайшем магазине радиодеталей, а если хочется DIY, то собрать одно из указанных на официальном сайте устройств на программируемом микроконтроллере.

damix9 ★★★
()

А ваш pl2303 на 115200 нормально работает в loop режиме (замкнуть rx tx и прогнать кучу байт)? У меня какой-то usb->uart очень не хотел работать на usb-удлинителе, портил байты.

mky ★★★★★
()
Ответ на: комментарий от token_polyak

Это в ТС'а назвали «коллега»? Мне показалось, что ещё по кого-то говорили.

Я вобще не понял, что делает ТС, вроде как usb_uirt_raw расчитан на подключение UIRT (Universal Infra-Red Transceiver). UIRT, это, вроде как, микроконтроллер+IR приёмник (ну и IR светодиод). В режиме raw он шлёт длительность между получаемыми от IR приёмника импульсами.

Возможно, что способ ТС рабочий, но, вроде, LIRC просто и имеет нужного модуля/драйвера.

mky ★★★★★
()
Ответ на: комментарий от pihter

то там UART RX используется на вход, а bit bang - на передачу.

Там, если bitbang, то в обе стороны. Если синхронный, то при каждой отправке бит происходит и чтение выводов. Если асинхроный, то одна скорость на передачу бит из буфера на выводы, а другая на чтение в буфер состояния выводов. RX в этом режиме самая обычная ножка, никакого UART (start/stop bit и т.д.) там нет.

А IR-приёмник вешают на RX чтобы не сжечь выход приёмника. После включения выводы ftdi в режиме обычного uart.

mky ★★★★★
()

На всякий случай, если кто-то не в курсе: стандартный режим для LIRC вообще не использует TX|RX

https://www.lirc.org/receivers.html

Он использует линию обнаружения несущей, которая была актуальна только для работы с непосредственно модемами (для которой и разрабатывался RS232), причём модемами, которые именно модулированием-демодулированием в основном занимались, чтобы сообщать компьютеру о состоянии линии и всём таком.

К сожалению, сегодня подавляющее большинство адаптеров USB-COM ориентированы не на эти модемы, а на всякие контроллеры и прочее «снятие данных». Из-за чего линии DCD, RTS и др. не распаиваются. И такой адаптер в стандартном для LIRC режиме снятия данных с DCD использовать нельзя.

Вот для FT232 нашли вариант через bit bang.

Но в любом случае смотреть на непосредственные данные с последовательного порта к которому припаяли vs1838 бесполезно.

Scondo
()
Ответ на: комментарий от pihter

http://microsin.net/adminstuff/hardware/bit-bang-modes-ft232r-and-ft245r.html

Плюс в настройках модуля lirc для ft232 можно выбрать любой pin в роли input, просто по умолчанию «1» (RX).

То, что длительность импульса с IR-приёмника, подключенному к RX, можно определять по значению прочитанного байта это понятно. Под вопросом определение длительность паузы между импульсами. Получается, что часть паузы будет в значении байта, а часть — время между приходами байт с usb-uart. Не знаю, насколько это точно будет.

mky ★★★★★
()
Последнее исправление: mky (всего исправлений: 1)
Ответ на: комментарий от Scondo

Из-за чего линии DCD, RTS и др. не распаиваются.

Но физически то они там есть :) Когда захотелось перешить USBasp я проволочкой от ножки soic-корпуса вывел на штырёк какую-то из квитирующих линий.

Вопрос, насколько точно через usb-uart получется определить времена изменения состояния DCD линии.

mky ★★★★★
()
Ответ на: комментарий от token_polyak

Так у современных теликов тоже ИК-пульты. Хотя у некоторых есть и блютус. Тоже, кстати, неплохой вариант для дистанционного управления компом, даже более дистанционного.

«Это вообще законно?», как говорят школьники?

Уже не говорят.

damix9 ★★★
()
Ответ на: комментарий от ex-kiev

Я в своё время обычный пульт от телевизора использовал. Читал из потока что пишет при нажатии той или иной клавиши пульта и составил табличку действий. Но это было лет 12 назад Приемником был ик-девайс какой-то дешманский

saibogo ★★★★
()
Последнее исправление: saibogo (всего исправлений: 1)
Ответ на: комментарий от pihter

Выпросить? Дак он же 23 рубля стоит :)

Посмотрел ещё раз разные ИК-протокол. Пока не совсем понимаю, как rs232 позволит принять каждый передаваемый бит, ИМХО, там некоторые передаваемы биты будут восприняты как stop-бит и потеряются.

Там на форуме обсуждали чтение любого ИК-сигнала или от конкретного пульта?

mky ★★★★★
()
Ответ на: комментарий от mky

Выпросить? Дак он же 23 рубля стоит :)

Так за ним же переться надо! А он себе явно не один купил

Я думаю ты прав. Не получится так принимать сигнал, я, по неопытности, когда все это затевалось, думал что ИК - это тот же уарт, тока по свету, а там вообще ниче общего в протоколах. Не знаешь, кстати, зачем так?

pihter ★★★★★
() автор топика
Ответ на: комментарий от pihter

Такое разнообразние, ИМХО, из-за каких-нибудь патентов, а может боялись конфликтов пултов. А то, что в каждом бите есть имульс и пауза (в отличии от rs232), ликвидирует большие интервалы тишины (при передачи нулей), что по идее, упрощает приём (всё время можно подстраивать АРУ) и больший допустимый разброс частот генераторов на приёмнике и передатчике.

Там же, вроде как, нет кварцевых резонаторов, так дешевле и надёжнее, кварцы не любят, когда их роняют.

Но это всё мои размышления.

mky ★★★★★
()
Ответ на: комментарий от yandrey

Не полностью пропали, сложно найти без COM только Mini-ITX где их нет из-за экономии места.

Ты не поверишь, у меня целых два. И куча всего остального. n3150n-d3v.

hbars ★★★★★
()
Ответ на: комментарий от pihter

Вообще, он уже сделал на микроконтроллере, но лично мне тема почему-то по прежнему интересна

По какой схеме, как заставил работать на онтопике? Мне тоже интересно. Очень мало промышленно выпускалось таких адаптеров, чтобы с любым пультом работали.

damix9 ★★★
()
Ответ на: комментарий от damix9

В итоге он запилил свой переходник на rp2040 (rpi pico) и свой драйвер на лирк. Кодом делиться пока отказался, говорит - там трешак не готовый, еще допиливает

pihter ★★★★★
() автор топика
Ответ на: комментарий от mky

это он с моей подачи: раньше я в любую фигню применял мегу8, но после того как попробовал rp2040 – я понял что жил неправильно. Купил коробку по 270 руб/шт и не жалею (меги обходились по 60-140)

коллега наслушался моих восторгов и сунул мне пятихатку с предложением отжалеть ему парочку. Тоже, (как и я, как и ты, как и все) сначала сокрушался что, де, негоже такую мощь расходовать на такую пустяковую задачу, но я его переубедил, с такой логикой далеко пойти можно. Вопрос в цене. Ну и занимается он этим всем для удовольствия удовлетворения инстинкта самоделкина, а не потому что не может купить пульт-клавиатуру за 300 руб, которую коди схавает сходу

pihter ★★★★★
() автор топика
Ответ на: комментарий от mky

Прям вчера сравнивал доступные платки с микроконтроллерами для самоделкиных, как раз с этой целью - найти неоверкильный вариант для очень простого устройства, но с нативным USB. Давно присматривался к CH55x, и изначально сосредоточился на этих мк. И с некоторым удивлением обнаружил, что

  • CH55x на допотопной архитектуре 8051
  • Blue Pill на STM32 или китайском клоне
  • китайский ARM не клон STM32
  • китайский клон Arduino Nano на оригинальном или неоригинальном AVR
  • платка с ESP32
  • китайское чудо W801 с блютусом, вайфаем и нормальным армом вместо хтенсы

— все они в розницу продаются за те же два с чем то доллара. Так что даже не то, что нет смысла экономить - просто экономии никакой не выйдет, пока не покупаешь голые чипы пачками.

token_polyak ★★★★
()
Последнее исправление: token_polyak (всего исправлений: 1)
Ответ на: комментарий от mky

https://www.lirc.org/images/schematics.gif

ну сам же писал DCD, откуда там стоп биты?

собирал эту чудо вундервафлю еще в нулевых, вполне работало.

На нынешних мостах возможно будет хороший такой джитер ибо никаких хард прерывах, однако и скорости современных железяк наверное уже позволяют обрабатывать даже весьма скоростные пульты.

фтишки хороши тем, что хорошо эмулируют все пины rs, бонусом для поделок является любой битрейт, подчеркну любой, а не только модемный ряд, как у других вендоров

Morin ★★★★
()
Ответ на: комментарий от token_polyak

Возможно, я как-то упустил момент, когда rpi pico стали по 300 руб. Хотя мне и нативный usb не особо, только если делать мышь/клаву. А так на rs232 и опторазвязка дешевле и можно несколько МК объединять.

Пойду куплю себе парочку rpi pico, может получится эмулятор FDD сделать.

mky ★★★★★
()
Ответ на: комментарий от Morin

Читай тему целиком. ТС с товарищем думали про такое подключение https://qna.habr.com/q/979729 . И я писал, про то, что какие-то импульсы приниматься будут, будут приходить байты из ttyUSBx, но не факт, что однозначно и воспроизводимо.

фтишки хороши тем что хорошо эмулируют все пины rs

Почти все usb-uart имеют полный набор квитирующих битов, но часто продают платы где они не выведены на гребёнку.

любой битрейт

синхронный bitbang, за это ft232rl и применяют, что как отдельный драйвер в LIRC, что как программатор в avrdude.

И схему эту с DCD все видели, но непонятно, почему её нет для usb-uart, и не гуглятся истори (не)успеха. Может не все usb-uart нормально предают DCD. Но списка на каких чипах заработает как-то не видно.

mky ★★★★★
()
Ответ на: комментарий от mky

фтишек навалом, икприемник наврятли найду (за давностью лет скорее всего в помойке), придется заказывать и время надо выкроить. Если совсем лень не одолеет, попробую собрать

Morin ★★★★
()