Pull to refresh

Comments 32

Обмен происходит в прерывании 1 миллисекунда от таймера. Состояние пинов нужно менять синхронно. Да и не сможете Вы работать с прерываниями на 1.5 мегагерц. А так у меня процессор практически свободен. Опрос устройств происходит не каждую миллисекунду. Да и не всю. Процессор занят процентов на 5

Для таких дел DMA хорошо подходит. Делаешь в памяти данные для записи в GPIO порты и потом по таймеру ДМА сам дергает ножками в весьма хорошей скоростью и точностью. Так же и принимать можно — ДМА читает порт поу таймеру и складывает в память. Делаешь оверсампл в 3-4 раза и потом легко восстанавливаешь входные данные. Я так софт-uart делал на lpc1769.

В данном случае — не сработает. У каждого контроллера — свои особенности. И у каждого протокола -тоже. Ну хотя бы тупо не успеете переключить ножки с приема на передачу. Нужно поймать условие завершение передачи устройством пакета (это ноль на двух линиях) и ответить ACK- ом в 6 циклов. А если влезете с чтением из памяти процессором при работающем dma то побьете времена. USB — очень противный протокол для программиста.

Да, bitbang USB это развлечение не для слабонервных. Снимаю шляпу. :-)

Это даже скорее bitsex. С уклоном в мазохизм.
UFO just landed and posted this here

Спасибо, не знал. На lpc17хх ДМА тактируется от CCLK — те же 100/120MHz что и core, если память не изменяет.

UFO just landed and posted this here

Наверное это because you can задача, потому что pill на STM32F401, который умеет аппаратный USB host, продают на али за меньше $3.

Не совсем.
1 можно подключить больше 4 устройств одновременно без хаба и к 401 тоже, таким же манером, через GPIO.
2 401 из коробки с хабом не работает. С клавиатурой как на картинке- тоже не работает -она комбинированная мышь и клава. Хотите переписать для него HAL?

Ага, об этом в предыдущей статье было, понял, спасибо.

HAL как раз переписывать не надо, а добавить поддержку устройств! USB Hub-а с полгода тому назад не было. Но на github видел, но не пробовал!
А я пробовал. С лету не заработало(конфликты в версиях), а возиться было лень, проще переписать с нуля… И где то проскакивала инфа, что у стм-ок какой баг в железе, что затыкается в работе с хабом в случайные моменты времени. Так что плюнул и бросил. Вообще, довольно сложно встроиться и исправить криво построенную экосистему(даже если писал сам :). Если только на работе и за зарплату. А просто так — ну ее нафиг, пусть ST сама свои баги чинит
Я писал поддержку rndis usb hs устройства — lte модем, на основе cdc, на stm32f4. Работает, не падает. И поддержку виртуального порта — команды модема. Но на этом всё.
А почему должен был падать? Сторона устройства (device side) у стм-ок отлично отлажена и работает.
Не точно описал: делал Host для rndis, а не само устройство. Но и хаб начинал, но задача с хабом отпала. На сколько я помню там чисто протокольный уровень
USB-HS -(480mbit) только с внешним PHY( c ним тоже бывают проблемы). Опять не тот случай. STM3F4XX -там уже начинает быть маловато, тяжело им.
Отлаживать хост ещё можно, ты управляешь всеми операциями на порту, а вот устройство сложнее
Все относительно. Хост просто объемнее, устройства -разные, нужно разговаривать со всеми, хотя бы одного класса. А по таймингу — да, хост проще, поскольку он активно ведет протокол.
Какие-то сомнения закрались про 4.12 в 81-м году. Поскольку дословно помню диалог с одним строителем в те годы.
— У вас крышки для унитазов есть? (Большой дефицит в те времена)
— Есть, по 5.30 и по 6.20
Пришлось уточнить в гугле, 4.12 это до 81-го года, после 81-го 5.30
:) @
Стишок из СССР: (про водку)
было три, а стало пять — всё равно берём опять!
даже если будет восемь — всё равно мы пить не бросим!
передайте Ильичу — нам десять по плечу,
ну а если будет больше — то получится как в Польше!
ну, а если — двадцать пять — Зимний снова будем брать!

Прошло 25 лет…

Вот она уже и двести, Зимний все ещё на месте.

3.62 цена одной полулитровой бутылки водки «Московская» — по разным сведениям, примерно 1968—1980 гг.
Снится мне по ночам
Продавщица одна.
Позабыть я не в силах молодку.
Улыбаясь, застенчиво шепчет она:
«С вас 4.12, за водку»
А чем Вы смотрите сигналы? Я про скрин программы.
Супер!
Давно мечтаю сделать USB перекл.ючатель который позволит подключить клаву и мышу к нескольким компьютерам. И что-бы можно было переключаться между компами сочетанием клавиш. Насколько я понимаю, нужно подключить клаву и мышу контроллеру с USB — host, а он уже будет отправлять другому контроллеру который USB клиент?
Да, можно, но понадобится две таких таблетки, по одной на каждый компьютер. Программно ведь реализован только хост а не девайс, который на ней только один.

Не хотите взять на алиэкспресс квм типа Aimos? Есть на два компа тысячи за две, есть на четыре тысячи за 3.5. Переключаются последовательным нажатием клавиш — Ctrl, Ctrl, 1/2/3/4.
Единственно, клавиатура A4 tech KV-300H плохо работает, наверное из-за встроенного USB хаба, но её можно воткнуть в другое гнездо, потеряв возможность управления через hot key.

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

Переключение комбинацией клавиш есть! В моём два варианта: Ctrl + Ctrl + 1 ( 2/3/4), или Scroll + Scroll + 1 ( 2/3/4). Девайсы можно погуглить по словам Hotkey kvm switch. Насчёт переопределения USB устройств при переподключении — согласен, переопределяются. А вы хотите сделать чтобы kvm был как постоянно подключённый хост, который транслирует данные от дочерних устройств?

Sign up to leave a comment.

Articles