Можно собрать на макетной плате. Понадобится: макетная плата, соединительные провода, разъемы 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 выход устройства к реальному проектору, телевизору или монитору. Устройство просто эмулилирует фильмоскоп, а программа, запущенна в нем, позволяет удобно просматривать отсканированные диафильмы.
Спасибо. Рвассмотрю. Просто я хотел разобраться как сделать корпус, питание, работу с BLE, USB, HID, какие использовать библиотеки, вот и оформил в виде двух статей.
В любом случае преобразование USB - BLE неэффективно из-за постоянного питания USB-клавиатуры.
Спасибо за дополнение к статье.
Спасибо за хороший вопрос, который я упустил в статье. Байты передаются по схеме Little Endian, биты - по схеме LSB.
Можно собрать на макетной плате. Понадобится: макетная плата, соединительные провода, разъемы USB Type C, USB Type A для макетных плат и кабель USB type A - USB Type C.
Если у устройства три интерфейса, у устройства есть одна двунаправленная EP0, и у каждого интерфейса есть IN EP и OUT EP, тогда будет 1 + 3 × 2 = 7 точек.
Одна точка - EP0, является двунаправленной. Я думаю, чтобы проще реализовывать буфер для каждой точки.
Если я правильно помню, статусы индикаторов USB-клавиатуры передаются через EP0.
Обычно всего две в каждом направлении и используются, но устройство может содержать несколько интерфейсов. Нумерация точек происходит для устройства. Например, если три интерфейса, нужно 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
Спасибо