Например TDA7294

Форум РадиоКот • Просмотр темы - STM32 и USB (практика)
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 23, 2024 20:47:15

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 583 ]     ... , , , 25, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: STM32 и USB (практика)
СообщениеДобавлено: Вт ноя 15, 2022 18:00:25 
Это не хвост, это антенна
Аватар пользователя

Карма: 8
Рейтинг сообщений: 193
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1441
Рейтинг сообщения: 0
Чтобы реализовать USB storage, придется еще и файловую систему выдирать и причесывать.

Тот же FAT достаточно простой чтобы в реальном времени его генерировать. По крайней мере, мне удавалось с FAT16. Собственно, для FS-device большего и не надо: скорости больше 600 - 900 кБ/с физически не выжать. Значит, ограничение ФС на размер файлов не критично: быстрее ждать устанешь пока 4 ГБ файл скопируется.
VladislavS писал(а):
Ну да, в начале раздела USB. А вы про USB в разделе GPIO что-ли читаете обычно?

Об основных характеристиках контроллера я читаю, как ни странно, в разделе об основных характеристиках контроллеров. В случае STM это одна-дву первые страницы плюс таблица, в которой перечислены скорость, память и основная периферия.
Читать от корки до корки десяток даташитов на разные контроллеры, по 200 страниц каждый, чтобы выбрать нужный у меня желания почему-то нет.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 и USB (практика)
СообщениеДобавлено: Ср ноя 16, 2022 21:22:13 
Родился
Аватар пользователя

Зарегистрирован: Вт май 07, 2019 12:55:34
Сообщений: 6
Откуда: 62
Рейтинг сообщения: 0
правда ли, что из распространенных ARM'ов и RISC-V этот USB-HS есть только в gd32e505, gd32e507 или все же есть что-то более доступное?

Еще есть в CH32V305 и CH32V307 и доступная отладочная плата.

_________________
Зачем делать сложным, то что проще простого...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 и USB (практика)
СообщениеДобавлено: Чт ноя 17, 2022 10:00:44 
Это не хвост, это антенна
Аватар пользователя

Карма: 8
Рейтинг сообщений: 193
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1441
Рейтинг сообщения: 0
Ага, спасибо, чуть раньше нашел, чем вы написали. Очень хочется с ними поиграться.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: STM32 и USB (практика)
СообщениеДобавлено: Сб ноя 26, 2022 17:55:35 
Это не хвост, это антенна
Аватар пользователя

Карма: 6
Рейтинг сообщений: 42
Зарегистрирован: Пт ноя 27, 2009 19:47:13
Сообщений: 1312
Откуда: Казань
Рейтинг сообщения: 0
Всем доброго времени суток :)
Изучаю USB, камень STM32F070F6P6

Ковыряю библиотечку для STM32F103 - https://github.com/saewave/STM32F103-USB-CDC-CMSIS

По логике ее работы, при инициализации юсб, после команды
Код:
USB->CNTR |= USB_CNTR_FRES;
должен возводится флаг прерывания и после разрешения прерывания по ресету, программа должна сразу улетать на обработчик прерываний по ресету, и уже в обработчике режим принудительного ресета снимается.

Но вот на моем камне сама по себе эта команда ничего не вызывает, а прерывание возникает только после выключения режима принудительного ресета, т.е. после кода:
Код:
USB->CNTR |= USB_CNTR_FRES;
...
USB->CNTR &= ~USB_CNTR_FRES;


Описание бита в реф.мануалах на два камня одинаковое:
Код:
Bit 0 FRES: Force USB Reset
0: Clear USB reset.
1: Force a reset of the USB peripheral, exactly like a RESET signaling on the USB. The USB
peripheral is held in RESET state until software clears this bit. A “USB-RESET” interrupt is
generated, if enabled.


Я что-то не так делаю? :roll:


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32 и USB (практика)
СообщениеДобавлено: Сб ноя 26, 2022 23:21:24 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 1
Вы путаете состояние ресета контрооллера USB и прерывание по состоянию ресета в линии. Правильная последовательность включения:
- сконфигурировать ноги USBDP и USBDM
- настроить тактирование USB на 48 МГц и включить его;
- настроить домены питания и источники опорного напряжения (в контроллерах где они есть);
- снять PowerDown *
Код:
USB->CNTR = USB_CNTR_FRES;
- снять ресет с контроллера USB и включить нужные прерывания
Код:
USB->CNTR = USB_CNTR_CTRM | USB_CNTR_RESETM | USB_CNTR_SUSPM | USB_CNTR_WKUPM;
- заполнить таблицу дескрипторов буферов;
- разрешить прерывания;
Код:
USB USB->ISTR = 0;
NVIC_EnableIRQ(USB_IRQn);
- подключить PullUp резистор в линию.

Вот только теперь прилетит прерывание Reset из линии и в нём надо делать остальные настройки (сбросить адрес в 0 и настроить конечные точки) и дальше действовать по протоколу энумерации.

----------
* - при включении питания в регистре USB->CNTR взведено два бита USB_CNTR_FRES и USB_CNTR_PDWN. То есть, контроллер USB находится в состоянии Power Down c нажатой линией Reset. То есть, ваша
Код:
USB->CNTR |= USB_CNTR_FRES;
фактически ничего не делает, бит и так взведён. Вместо этого надо написать
Код:
USB->CNTR = USB_CNTR_FRES;
Этим вы сбросите бит USB_CNTR_PDWN. Затем надо сбросить и бит USB_CNTR_FRES. Можно сделать
Код:
USB->CNTR = 0;
А затем включить нужные прерывания
Код:
USB->CNTR = USB_CNTR_CTRM | USB_CNTR_RESETM | USB_CNTR_SUSPM | USB_CNTR_WKUPM;
Последнее действие автоматом делает и предпоследнее. Так что, USB->CNTR = 0; можно опустить. И никаких "|=" и "&=" тут не надо. Отучайтесь их применять просто так. Есть же простой оператор присваивания - пользуйтесь.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32 и USB (практика)
СообщениеДобавлено: Сб ноя 26, 2022 23:55:43 
Это не хвост, это антенна
Аватар пользователя

Карма: 8
Рейтинг сообщений: 193
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1441
Рейтинг сообщения: 0
- сконфигурировать ноги USBDP и USBDM

Вы уверены, что это относится к контроллеру ТСа? А то в f103 или l151 или аналогах от WCH ноги конфигурируются автоматически, их вручную-то фиг отключишь.
VladislavS писал(а):
- разрешить прерывания

Вот это важный момент: по-хорошему сначала настраивается периферия, и только потом прерывания разрешаются глобально. То есть пока USB не настроен, прерываний нет и быть не может.
VladislavS писал(а):
- заполнить таблицу дескрипторов буферов;

Опять же - это для всех контроллеров? А то я к GD32VF103 подступиться боюсь - у них тоже буферы отдельно настраиваются, как и у f103?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 и USB (практика)
СообщениеДобавлено: Вс ноя 27, 2022 00:18:32 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
Вы уверены, что это относится к контроллеру ТСа?
Они вроде ремапиться в этом чипе могут. Так же, будут ли они без тактирования GPIOА работать я не проверял. Конкретно с этим чипом я не работал. Вот пусть ТС сам и проверит. Чтобы потом как Эдуард локти не кусать.

VladislavS писал(а):
- разрешить прерывания

Вот это важный момент: по-хорошему сначала настраивается периферия, и только потом прерывания разрешаются глобально.
В моей последовательности всё что нужно для принятия ресета настроено.

VladislavS писал(а):
- заполнить таблицу дескрипторов буферов;
Опять же - это для всех контроллеров?
Что вы понимает под словом ВСЕХ? Всех существующих в природе?

А то я к GD32VF103 подступиться боюсь - у них тоже буферы отдельно настраиваются, как и у f103?
У него же OTG. Там не буферы, а FIFO. Настраивается не как у f103, а скорее как у F4. Там FIFO ещё и чистить надо. Глянул краем глаза доку GD32VF103 - там прямо последовательности "Global register initialization sequence" и "Endpoint initialization and enable sequence" приведены.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 и USB (практика)
СообщениеДобавлено: Вс ноя 27, 2022 00:59:23 
Это не хвост, это антенна
Аватар пользователя

Карма: 8
Рейтинг сообщений: 193
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1441
Рейтинг сообщения: 0
Они вроде ремапиться в этом чипе могут.

Не похоже. По крайней мере, судя по даташиту DP соединен только с PA12, а DM - PA11.
VladislavS писал(а):
В моей последовательности всё что нужно для принятия ресета настроено.

Да в вашей-то наверняка. Как и в моей или Эдуарда. А вот в последовательности ТСа - не факт, раз он ожидает прерывания во время настройки.
VladislavS писал(а):
У него же OTG. Там не буферы, а FIFO. Настраивается не как у f103, а скорее как у F4.

Хорошо, спасибо. Просто он по периферии весьма похож на f103, мало ли чего там наворотили. Ковырять принципиально иной USB у него я не хочу. Есть камни с более интересным USB, их тут уже упоминали.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 и USB (практика)
СообщениеДобавлено: Вс ноя 27, 2022 01:09:36 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
Не похоже. По крайней мере, судя по даташиту DP соединен только с PA12, а DM - PA11.
В даташите на 28 странице в примечании 5 указано. У него же малоногий корпус TSSOP20 может быть, вот ремапов и завезли. В любом случае, вопрос не стоит споров - проще проверить и забыть.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 и USB (практика)
СообщениеДобавлено: Вс ноя 27, 2022 06:54:19 
Это не хвост, это антенна
Аватар пользователя

Карма: 8
Рейтинг сообщений: 193
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1441
Рейтинг сообщения: 0
Там написано про ремап GPIO, а не USB. А про проверить это к ТСу, у меня такого контроллера нет.


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: STM32 и USB (практика)
СообщениеДобавлено: Вс ноя 27, 2022 09:58:54 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн апр 02, 2012 15:56:23
Сообщений: 138
Рейтинг сообщения: 0
Вставлю свои 5 копеек, большая часть проблем с USB, которую я получал при простом переносе кода (когда на 103 работает, а на 072, например, тот же код не работает, хотя модули практически идентичны) была с неправильной настройкой тактирования USB, поэтому советую внимательно эту часть посмотреть.
ЕМНИП на том же 103 все просто: настроил PLL и тогда USB либо тактируется напрямую, либо с полуторным делением, на F0 (конкретно 070 у меня нет, делал для 072) для такой же схемы надо сначала установить бит тактирования от PLL в RCC.CFGR3 (USBSW_PLLCLK), для деления на 1,5 еще бит в RCC.CFGR (USBPRE). Также вроде для F0 надо включить тактирование SYSCFG.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 и USB (практика)
СообщениеДобавлено: Вс ноя 27, 2022 10:11:43 
Собутыльник Кота
Аватар пользователя

Карма: -12
Рейтинг сообщений: -25
Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 2525
Рейтинг сообщения: 0
У 0x2 есть HSI48 с АПЧ, к сожалению, у всяких 303 и 407 такого нет, и приходится лепить долбаный кварц!

_________________
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 и USB (практика)
СообщениеДобавлено: Вс ноя 27, 2022 17:20:24 
Это не хвост, это антенна
Аватар пользователя

Карма: 6
Рейтинг сообщений: 42
Зарегистрирован: Пт ноя 27, 2009 19:47:13
Сообщений: 1312
Откуда: Казань
Рейтинг сообщения: 0
Большое спасибо за ответы :)
Действительно, не обратил внимания, что в библиотеке же используется оператор присваивания, а я себе написал вариант с побитовым или. Исправлю и буду дальше посмотреть, что получится :)

На счет ремапа, действительно, он нужен, т.к. по умолчанию dp и dm к ножкам не подключены в корпусе-малютке :))
Код:
Bit 4 PA11_PA12_RMP: PA11 and PA12 remapping bit for small packages (28 and 20 pins).
Available on STM32F070x6 devices only.
This bit is set and cleared by software. It controls the mapping of either PA9/10 or PA11/12 pin
pair on small pin-count packages.
0: No remap (pin pair PA9/10 mapped on the pins)
1: Remap (pin pair PA11/12 mapped instead of PA9/10)


Добавлено after 2 hours 14 minutes:
У 0x2 есть HSI48 с АПЧ, к сожалению, у всяких 303 и 407 такого нет, и приходится лепить долбаный кварц!

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 и USB (практика)
СообщениеДобавлено: Вс ноя 27, 2022 17:52:51 
Собутыльник Кота
Аватар пользователя

Карма: -12
Рейтинг сообщений: -25
Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 2525
Рейтинг сообщения: 0
НАПАЛМ, никаких проблем при температуре воздуха от -20℃ до +30℃ не встречал. Меньше у нас не бывает, больше — тоже.
А еще у меня на БТА работают сборщики температуры главного зеркала. Пять контроллеров общаются с мастером по CAN-шине. Везде CAN тактируется от HSI48, и вообще нет проблем. Но там и АПЧ нет!!!

_________________
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 и USB (практика)
СообщениеДобавлено: Пн ноя 28, 2022 18:36:19 
Встал на лапы

Зарегистрирован: Пн июн 13, 2016 10:41:52
Сообщений: 129
Рейтинг сообщения: 0
Меня, кстати, поначалу смутила олимексовская плата, которая сейчас на столе лежит (я все надеюсь, что таки смогу выделить неделю-две на опыты с USB, чтобы и на F407 написать CDC). Так у нее разведены оба USB, а внешнего PHY нет! Я вот и понадеялся, что там HS внутри STM'ки, а фигвам… Т.е. оба выхода подключены как обычные FS. Ну и ладно, зато можно придумать какую-нибудь непонятную хрень, чтобы 2 USB было. Не знаю, правда, зачем такое может в реальной жизни понадобиться. Это как мои 7 CDC на одном микроконтроллере: прикольно, но бесполезно. Разве что разделить интерфейсы и вывести один отладочный — с одного подаем команды и смотрим выхлоп, а отладочный через wireshark парсим. Это если вдруг в башку дурь какая зайдет вроде storage реализовать (но, надеюсь, что смогу прожить в полном уме и здравии еще хотя бы лет 10).


Можно взять внешний USB-PHY. Самый распространенный вариант - это USB3300 с ULPI интерфейсом. На 407м поддержка ULPI имеется.
Или же искать STM32F7xx (там USB-PHY уже вроде как встроен).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 и USB (практика)
СообщениеДобавлено: Вс фев 26, 2023 22:10:59 
Открыл глаза

Зарегистрирован: Вт фев 15, 2022 21:28:35
Сообщений: 59
Рейтинг сообщения: 0
При включении контроллера stm32f407 USB устанавливается в режим хоста, PA9(Vbus) PA10(ID) на разъем USB не подключены. При обращению к регистрам периферии происходит прерывание MMISM mode mismatch.
Как переключиться в режим девайса?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 и USB (практика)
СообщениеДобавлено: Пн фев 27, 2023 00:18:16 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
Начало инициализации
СпойлерИзображение
Вложение:
Screenshot_20230227-001544_Chrome.jpg [226.85 KiB]
Скачиваний: 64


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 и USB (практика)
СообщениеДобавлено: Ср мар 01, 2023 10:39:37 
Открыл глаза

Зарегистрирован: Вт фев 15, 2022 21:28:35
Сообщений: 59
Рейтинг сообщения: 0
Хост управляет потоком, то есть отправляет периферийному устройству команды. Что будет если хост отпрвит их другому хосту? Или такое невозможно? Может ли хост определить в каком режиме находится оппонент по связи? Можно ли юсб устройства подключать паралельно как например на i2c?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 и USB (практика)
СообщениеДобавлено: Ср мар 01, 2023 10:47:23 
Это не хвост, это антенна
Аватар пользователя

Карма: 8
Рейтинг сообщений: 193
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1441
Рейтинг сообщения: 0
Нет. USB это шина с единственным хостом. Соединять несколько хостов друг с другом нельзя. Соединять несколько девайсов друг с другом нельзя. Соединять по одним и тем же проводам больше двух устройств нельзя. Не просто так придуманы usb-хабы.
Есть, конечно, otg, но и там устройство по напряжению на ножке определяет быть ли ему хостом или девайсом.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 и USB (практика)
СообщениеДобавлено: Чт мар 02, 2023 10:46:32 
Открыл глаза

Зарегистрирован: Вт фев 15, 2022 21:28:35
Сообщений: 59
Рейтинг сообщения: 0
Чего-то не фу-фу! Я так понял, перед инициализацией usb ядра в режиме периферии, usb порт уже должен быть в этом режиме. Приземляю id, включаю питание, а оно опять хост. Pa10,11,12 в af-mode, pa9-analog input. PortA-enable. Частота 48, что я мог пропустить?


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 583 ]     ... , , , 25, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: azhel12 и гости: 23


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y