Обновить
32K+
265

Пользователь

201
Рейтинг
130
Подписчики
Отправить сообщение

Спасибо за дополнение к статье.

Спасибо за хороший вопрос, который я упустил в статье. Байты передаются по схеме Little Endian, биты - по схеме LSB.

Можно собрать на макетной плате. Понадобится: макетная плата, соединительные провода, разъемы USB Type C, USB Type A для макетных плат и кабель USB type A - USB Type C.

Если у устройства три интерфейса, у устройства есть одна двунаправленная EP0, и у каждого интерфейса есть IN EP и OUT EP, тогда будет 1 + 3 × 2 = 7 точек.

всего может быть 16 точек для отсылки данных на устройство и 16 точек для приёма данных с устройства.” Почему EP однонаправлен? Почему EP не может работать в обоих направлениях, почему нужно создавать In EP 1, Out EP 1 вместо In-out EP 1

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

Для конфигурирования USB используется конечная точка по умолчанию, имеющая номер 0.” Получается, в распоряжении программиста может быть 15 точек для отсылки данных на устройство и 15 точек для приёма данных с устройства. Потому что 0th точка зарезервирована, верно?

Если я правильно помню,  статусы индикаторов USB-клавиатуры  передаются через EP0.

на практике 16 EP в каждом направлении это много или мало? Почему не может быть всего 2 EP в каждом направлении (из которых одна - Control, то есть особая), то есть по сути всего 1 EP в каждом направлении в распоряжении программиста. И пусть программист на своём уровне уже добавляет метки пакетов своего кастомного протокола

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

Я так и делал в Ну, Погоди!. Я думал вопрос был в многопоточности на одном ядре.

Нормально. Особенно удобно с плагином для VS Code и вторым пико для дебага и заливки. С многопоточностью не работал на нем. Только использовал два ядра в своем эмуляторе "Ну, погоди!". Для многопоточности нужно использовать FreeRTOS или ZephyrOS, как я понимаю.

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

Добавил видео работы устройства в действии. Вместо монитора можно использовать или проектор или телевизор с входом HDMI.

Вы правы, добавлю видео.

Спасибо. Рвассмотрю. Просто я хотел разобраться как сделать корпус, питание, работу с BLE, USB, HID, какие использовать библиотеки, вот и оформил в виде двух статей.

В любом случае преобразование USB - BLE неэффективно из-за постоянного питания USB-клавиатуры.

Спасибо за замечание. Не знал этого. Но зарядка вроде всегда работала без проблем.

Спасибо за полезное замечание. Постараюсь учесть в следующей статье, где уже будет питание от аккумулятора.

Вторая статья будет с описанием, как я упаковал это в корпус

Будет без провода. Это серия статей из двух частей

Столбец или строку? Я читаю со столбцов. Я правильно понимаю, что включение только одного вывода как раз и будет эмуляция open drain?

Спасибо за дельные замечания. За ток и дребезг.

Про open drain я не стал писать, потому что в pico нужно его эмулировать, как вы написали, чтобы не усложнять описание.

Visual Studio Code c официальным pico vscode plugin

1
23 ...

Информация

В рейтинге
21-й
Зарегистрирован
Активность