eddy_em: (Default)
eddy_em ([personal profile] eddy_em) wrote2024-11-24 04:53 pm
Entry tags:

USB-I2C на STM32F103

Ковыряю помаленьку. Собрал модуль ядра для i2c-tiny-usb, проверю на "заглушке". Потом добавлю оставшийся функционал, чтобы работало и I2C. Зачем-то там инициировали interrupt endpoing, но она вообще не используется.
Однако, как-то не нравится мне эта побайтовая работа. В исходниках нашел еще и модуль robotfuzz-osif — здесь все более вменяемо, можно читать-писать + есть вызов установки скорости. Правда, автор модуля ядра тоже тяп-ляп навалял: большие объемы не прочитаешь (хотя, судя по командам железки, там есть такая возможность: читать-читать, а потом отправить STOP), да еще и гвоздями прибита скорость: в самом модуле выставляется только 100кГц — и больше ничего (а могли бы параметром модуля выделить; я, конечно, могу модуль переделать, как надо, но кто его поддерживать будет? Ну, а т.к. Линус оказался нациком, то никаких коммитов от российских разработчиков он принимать не будет).
Ладно, пока что tiny добью, а потом, если будет желание, попробую и этот robotfuzz реализовать.

Правда, меня ждало охрененное разочарование: STM32 жестко привязывает номер после энумерации, поэтому играть роль виртуального хаба (чтобы на борту было несколько устройств с разными VID/PID) не может. Потом, конечно, можно будет попробовать - а не выйдет ли просто сделать составное устройство. Правда, ХЗ, каким чертом привязать к этому VID/PID еще и модуль pl2303, чтобы помимо интерфейса I2C было и всякое разное.

А тем временем на алике обнаружил cp2112. Полистал исходник модуля ядра — оно точно так же создает устройство /dev/i2c-xxx, с которым можно работать, как и с прочими шинами I2C. Купил, пощупаю. Думаю, это будет самым простым вариантом аппаратно что-нибудь I2C'шное к компьютеру подключить. Ну, а с составным устройством когда-нибудь потом поиграюсь, хоть и надежды особой нет.

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org