Перейти к содержанию

STM32F407ZGT USB OTG FS CDC


SuperЛёха

Рекомендуемые сообщения

Доброго всем времени суток и времени года :-)

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

Использую связь устройства на STM32F407ZGT с ПК по USB CDC (периферия USB OTG FS).

Использую HAL STM32CubeIDE.

В программе много критических прерываний от таймеров, куда важнее чем USB, но очень нужно чтобы и USB работало. 

Естественно что у критических событий приоритет наивысший, и если приоритет прерывания USB понизить - USB перестаёт работать в Windows, оно определяется но мол не может работать и всё тут.

Если же приоритет повысить - USB работает, но прерывание USB как то долго обрабатывается в коде, драйвере ST или ещё в какой то ж-пе (не могу разобраться в ST дебрях) и перебивает надолго критически важные прерывания.

Может я сделал ошибку используя  USB OTG FS и нужно было иными способами с USB OTG HS как то через DMA сделать это? Но через DMA обмениваться 8 байтами как то тоже не правильно посчитал я в начале проекта.

Может у кого то есть код USB CDC более оптимален по быстродействию?

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

46 минут назад, SuperЛёха сказал:

оно определяется но мол не может работать и всё тут.

Правильно, USB критичен к времени обработки запросов.

 

47 минут назад, SuperЛёха сказал:

но прерывание USB как то долго обрабатывается в коде

Придется избавляться от HAL, калокуба и прочего мусора. Да и что там вообще может долго обрабатываться? Там же просто работа с буферами памяти. Или вы туда всю логику работы программы засунули?

 

49 минут назад, SuperЛёха сказал:

используя  USB OTG FS и нужно было иными способами с USB OTG HS

Каким боком OTG относится к CDC? Это разные вещи вообще. Плюс не проще ли поставить туда USB-UART конвертер?

 

51 минуту назад, SuperЛёха сказал:

Может у кого то есть код USB CDC более оптимален по быстродействию?

Поищите на форуме easyelectronics, мне в свое время там помогли с USB HID под 303 камень...

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

19 минут назад, BARS_ сказал:

Придется избавляться от HAL, калокуба и прочего мусора. Да и что там вообще может долго обрабатываться? Там же просто работа с буферами памяти. Или вы туда всю логику работы программы засунули?

Я в прерывании от USB поднимаю только флаг, что данные приняты, но как будто до функции прерывания ещё что то делается и это "долго".

21 минуту назад, BARS_ сказал:

Каким боком OTG относится к CDC? Это разные вещи вообще. Плюс не проще ли поставить туда USB-UART конвертер?

Я про периферийные блоки, их 2 в 407-м один вроде как с DMA может работать, другой нет.

22 минуты назад, BARS_ сказал:

Придется избавляться от HAL, калокуба и прочего мусора. Да и что там вообще может долго обрабатываться? Там же просто работа с буферами памяти. Или вы туда всю логику работы программы засунули?

Это нужно быть уже мега программистом :-)), а я больше универсальный спец, таким не возможно освоить всё в идеале.

26 минут назад, BARS_ сказал:

Каким боком OTG относится к CDC? Это разные вещи вообще. Плюс не проще ли поставить туда USB-UART конвертер?

Если не получится довести до ума, видимо так и придётся конвертер ставить и забыть этот страшный сон с USB.

Ссылка на комментарий
Поделиться на другие сайты

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

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

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

1 час назад, tvvm сказал:

Посмотрите статью https://habr.com/ru/post/674662/ .

Благодарю, статья интересная, но автор использует ту же библиотеку от ST. 

Только что, SuperЛёха сказал:

 

Подозреваю, что в дебрях USB не просто разобраться и не осилить мне, поэтому буду смотреть и добавлять скорее всего CP2102 и далее работать с UART->CP2102->USB

Ссылка на комментарий
Поделиться на другие сайты

А думаешь если задействуешь USART то что то изменится? Всё равно придётся слать данные и получать в прерывании и это же прерывание будет мешать я уже пробовал у хвалёных STM на 100 МГц сил не хватает.

Ссылка на комментарий
Поделиться на другие сайты

9 часов назад, MechanicV сказал:

А думаешь если задействуешь USART то что то изменится? Всё равно придётся слать данные и получать в прерывании и это же прерывание будет мешать я уже пробовал у хвалёных STM на 100 МГц сил не хватает.

Думаю это решит проблему, т.к. один UART уже задействован под modbus, и работает без нареканий.

Ссылка на комментарий
Поделиться на другие сайты

В STM работа с UART очень красиво решается с использованием DMA и прерывания IDLE. В результате получаем полностью аппаратный прием данных с прерыванием в конце каждого пакета. Нагрузка на камень в итоге минимальная.

Ссылка на комментарий
Поделиться на другие сайты

22 минуты назад, BARS_ сказал:

В STM работа с UART очень красиво решается с использованием DMA и прерывания IDLE. В результате получаем полностью аппаратный прием данных с прерыванием в конце каждого пакета. Нагрузка на камень в итоге минимальная.

А имеет смысл задействовать DMA для UART если объём передаваемых данных всего 8 байт, туда сюда?

Ссылка на комментарий
Поделиться на другие сайты

Ну тут уже вам решать, что лучше. 8 прерываний, или DMA но одно. Ну а передавать 8 байт можно и просто с ожиданием флага окончания передачи.

Изменено пользователем BARS_
Ссылка на комментарий
Поделиться на другие сайты

4 часа назад, BARS_ сказал:

Ну тут уже вам решать, что лучше. 8 прерываний, или DMA но одно. Ну а передавать 8 байт можно и просто с ожиданием флага окончания передачи.

Кстати да, я чёт не подумал. Благодарю!

Ссылка на комментарий
Поделиться на другие сайты

В 13.09.2022 в 19:12, SuperЛёха сказал:

Подозреваю, что в дебрях USB не просто разобраться и не осилить мне, поэтому буду смотреть и добавлять скорее всего CP2102 и далее работать с UART->CP2102->USB

и не стоило начинать. Работа с UART почти не грузит камень и позволяет избавиться от привязки ко времени. USB не дает в контроллере никаких преимуществ перед UART-USB и скоростей выше 1,5 мегабит все равно не получить. И не важно - HAL используется или LL. Так что правильное решение

В качестве бонуса при использовании свистка получается хоть небольшой, но все же шанс, что свисток в случае чего умрет первым, сохранив жизнь контроллеру. В СР2102 конечно защитка не шикарная, но все же есть. В стм надо городить отдельную канитель на линии связи. Можно конечно и не городить, но это не надолго как правило

Изменено пользователем mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...