Микроконтроллеры

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Микроконтроллеры » STM32 » USB на STM32F103


USB на STM32F103

Сообщений 1 страница 21 из 21

1

Сделал себе вот такую штуку, чтобы работать с lqfp48 без необходимости их распайки. С STM32F0x2 все нормально, но вот сел писать USB под STM32F1 и завис... Что-то оно вроде бы с первого взгляда почти такое же, а фактически ни хрена не работает! Взять тот же буфер, который при инициализации конечных точек нужно рассматривать как "прореженный" (т.е. писать туда uint16_t как будто бы пишешь uint32_t). А нет ли того же косяка с буфером данных?
Инициализировал EP0, получаю запрос GET_DESCRIPTOR, и прерывание зацикливается (или ХЗ что там происходит, но МК зависает)...
Была одноименная тема, но ее закрыли. Да и она сразу же как-то превратилась в обсуждение USB на STM32F0...

Может кто-нибудь в меня кинуть более-менее рабочим (но коротким, не как у ST) минимальным кодом USB под STM32F103?
Код под STM32F0x2 я написал на основе труда sobs, очень хорошо пошло...

2

У меня на яндекс-диске [ссылка в профиле] остался старый пример к той закрытой теме
Но ни открывать её снова, ни обсуждать usb на stm32 в форумах я больше не собираюсь - это бессмысленно
Переезжай на ch55, тогда со всей душой )

3

Переезжай на ch55

Полностью переезжать не буду - все-таки, восьмибитки с сильно хреновой периферией, основными для меня пока остаются STM32F0x2.
Но вот как с али придут пробные ch552g, посмотрю, как там у них. Попробую тоже CDC и HID поднять. Очень уж хочется иметь еще и дешевые малоногие микроконтроллеры для некоторых примитивных задач.

А вот с STM32F103 хочу-таки разобраться: у меня несколько девборд на этой дряни, да еще и я зачем-то с полгода назад 5 этих МК прикупил на али. Читаю даташит и поражаюсь, какое же они говно по сравнению с STM32F072!!

4

Eddy_Em написал(а):

Полностью переезжать не буду - все-таки, восьмибитки с сильно хреновой периферией

Ты с какой-то странной стороны на них смотришь
Это просто интерфейсный мк usb to что-то

5

Интерфейсный, не интерфейсный, но у него есть немножко ног и дохленькой периферии → то, для чего бессмысленно выкидывать целый доллар на STM32F072, можно слепить на ch55!

По поводу STM32F103 все больше и больше охреневаю. Судя по дампу, смещение в BTABLE идет не от начала таблицы, а от 32-го байта! Т.е. от конца массива под описание адресов/размером rx/tx буферов каждой из 8 конечных точек!
А еще из-за дебильного выравнивания, которое подсистема USB и само ядро видят по-разному, приходится писать такую чушь:

Код:
endpoints[number].tx_buf = (uint16_t *)(USB_BTABLE_BASE + lastaddr*2);

6

Eddy_Em написал(а):

Интерфейсный, не интерфейсный, но у него есть немножко ног и дохленькой периферии

Ну да, в этом и смысл
И-фейс usb не внутрь мк, к каким-то непонятным программам [как в случае stm32], а наружу, к конкретным ногам и сигналам
Т.е. любое произведение на ch55 - это воленс-ноленс законченный проект, результат
Причём не важно что, как, чем и на чём делается внутри самого ch55

7

В своих мытарствах дошел уже до этого:

Код:
[1228999.503572] usb 1-1.4.3: device descriptor read/64, error -32
[1228999.669678] usb 1-1.4.3: device descriptor read/64, error -32
[1228999.773603] usb 1-1.4-port3: attempt power cycle
[1229000.353615] usb 1-1.4.3: new full-speed USB device number 38 using xhci_hcd
[1229000.365829] usb 1-1.4.3: device descriptor read/8, error -32
[1229000.481815] usb 1-1.4.3: device descriptor read/8, error -32

завтра буду wireshark'ом смотреть, что за фигня... Подозреваю, что и с отправкой данных косяк какой-то...

vt написал(а):

И-фейс usb не внутрь мк, к каким-то непонятным программам [как в случае stm32], а наружу, к конкретным ногам и сигналам
Т.е. любое произведение на ch55 - это воленс-ноленс законченный проект, результат
Причём не важно что, как, чем и на чём делается внутри самого ch55

Ни хрена не понял, честно говоря! И ничего там "внутри самого" не делается как-то отлично от stm32: тоже руками все разруливать надо! Видел я исходники под ch55.

8

Eddy_Em написал(а):

Ни хрена не понял, честно говоря!

Ограниченные ресурсы мк заставляют ограничивать и конкретизировать функционал
Сниппеты сами собой превращаются в законченные программы и девайсы

9

Eddy_Em погляди вот это, не мое где взял не помню скорее всего с форума изиэлектроникса, не проверял. https://drive.google.com/file/d/1jX_aax … sp=sharing

10

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

11

Почему-то у меня hardfault на memcpy/memmove. Заменил тупым копированием, подправил еще кой-какие косяки, заработало.
Но как-то криво: отправляется текст невовремя, может какое-то время просидеть в буфере (даже если его длина превышает 64 байта), а потом выплюнуться по приходу данных.
Ну и непонятно все-таки, что делать с EP1, который interrupt in. Судя по wireshark, компьютер периодически эту точку возбуждает. Но чего ему от нее надо-то???
Сейчас чуть код причешу и выложу на гитхаб. В stm32samples/F1-nolib/F1_testbrd.

Ну и все еще иногда проскакивает ошибка:

Код:
[1288433.974469] pl2303 ttyUSB1: pl2303_set_line_request - failed: -32
[1288433.975049] pl2303 ttyUSB1: pl2303_set_line_request - failed: -32

но это уже мой косяк в реализации протокола PL2303. ЯХЗ, как это исправить, но раз ошибка не критическая, то и фиг с ней.

12

13

Eddy_Em написал(а):

Заметка в ЖЖ

Зачем же ты пять штучек ch552g на али купил, у selevo же сотни ch552t [которые в tssop20 как ты любишь]
Картинки в твоём жж у меня почему-то не показываются, хотя в других жж показываются

14

При чем здесь Серега, он их раздает нахаляву что ли? Или имеешь в виду у него перекупить? Да мне проще с Китая подождать... Все равно наибольшее время посылки проводят в России. И не факт, что из России в Россию посылка будет быстрей доставляться.

Картинки из ЖЖшки лежат на фконтактиге. По-другому сейчас нельзя, к сожалению, т.к. яндекс-диск приказал долго жить. А из гуглофоток или яндофоток прямых ссылок не сделать никак.
Если у тебя нет аккаунта во фконтакте, может картинки и не будут отображаться - не проверял...
Попробуй одну по прямой ссылке октрыть и глянь, что за косяк: https://pp.userapi.com/c848736/v8487362 … NVt814.jpg
По идее, оно не должно регистрации требовать. Разве что ты сидишь за каким-то совсем упоротым прокси, который банит все, что попало!

15

Eddy_Em написал(а):

Если у тебя нет аккаунта во фконтакте, может картинки и не будут отображаться - не проверял...

у мну нет ака там(вк), но фотки отображает.

16

Eddy_Em написал(а):

Разве что ты сидишь за каким-то совсем упоротым прокси, который банит все, что попало!

Я сижу за упоротым фаерфоксом, который последнее время совсем двинулся на безопасности )
Твои картинки я уже нашёл как смотреть - "открыть изображение", и после этого картинка и на странице показывается
По прямой ссылке тоже нормально открывается

Отредактировано vt (2019-05-22 16:53:06)

17

Eddy_Em написал(а):

Если у тебя нет аккаунта во фконтакте, может картинки и не будут отображаться - не проверял...

У меня тоже не показывает, в Украине vk не работает. Через VPN нормально.

Отредактировано Reflector (2019-05-22 16:43:36)

18

vt написал(а):

Я сижу за упоротым фаерфоксом, который последнее время совсем двинулся на безопасности )

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

19

Eddy_Em написал(а):

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

pp.userapi.com [где картинки] фаерфокс считает трекером и блокирует [сам, без плагинов, если включена блокировка трекеров]

20

У меня ff 66.0.5, где там эти настройки? Не видел даже... И нафига эти трекеры блокировать?

21

Eddy_Em написал(а):

У меня ff 66.0.5, где там эти настройки? Не видел даже... И нафига эти трекеры блокировать?

В приватных окнах блокировка трекеров включена по умолчанию


Вы здесь » Микроконтроллеры » STM32 » USB на STM32F103