Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/27: Рейтинг темы: голосов - 27, средняя оценка - 4.96
tyombutot
1

Перенос кода USB с stm32f103 на stm32f107

29.08.2017, 11:54. Показов 5509. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!

Недавно за месяц-другой создал проект работающего композитного USB устройства в связке "CDC - виртуальный СОМ порт" + "Custom HID". Динные по обоим каналам идут туда-сюда без сбоев, потерь и зависаний, все вылизано и отлажено. Проект реализован под контроллер stm32f103, используется IAR в связке со "стандартными" библиотеками от STM: STM32F10x_StdPeriph_Dryver + STM32_USB-FS-Device_Dryver.

Возникла идея прошивки его по USB, однако stm32f103 не имеет встроенного DFU по USB, а пин-ту-пин совместимый stm32f107 имеет такой встроенный загрузчик, поэтому реализация его на новом контроллере проблем вызывать не должна.
В связи с этим вопрос: можно ли без потерь и танцев с бубном перенести код (USB работающий код, а не моргалку светодиодом!) с stm32f103 на stm32f107, используя уже задействованные библиотеки? Пугают две вещи:
- Количество аппаратных endpoints в 103: 7in/out, а в 107: 3in/out. Но вроде должно хватить, т.к. CDC имеет 2in/1out, HID имеет 1in/out.
- Для 105/107 контроллера для USB вроде принято использовать "OTG_DEVICE_LIBRARY"? Не хочется опять с нуля разбираться в совершенно другой библиотеке, когда рабочий код есть и он отлажен. В свое время пытался реализовать somposite USB на STM32CubeMX, но без толку, т.к. по отдельности виртуальный СОМ порт работал, а при попытке организовать составное USB устройство с ним он работать тут же переставал.

Прошу совета, какие будут подводные камни, на что обратить внимание, вообще стоит ли заморачиваться, или лучше написать самому USB DFU на stm32f103? Но очень хочется работающий код перенести, используя стандартные библиотеки от STM.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.08.2017, 11:54
Ответы с готовыми решениями:

stm32f107 любимый usb 2
Здравствуйте уважаемые форумчане! У моего коллеги возникли проблемы с работой usb манипулятором....

USB on stm32f107 + mass storage
Прошу помочь новичку. Задача-сделать хост на stm32f107, подключить к нему флэшку и определить, что...

STM32F107. Модуль USB не передает данные
Добрый день. Не нашел отдельной ветки для STM-контроллеров, поэтому пишу сюда. Имеется контроллер...

STM32F107 HOST USB_OTG_MSC запись/чтение на USB флешки, не все распознаются.
Здравствуйте! У меня появилась задача чтения/записи в файл на флешку. Для примера, реализовал...

USB на STM32F103
Всем привет :) Наконец-то решил разобраться с USB на контроллере ST32F103VCT6. Взял пример Virtual...

2
0 / 0 / 0
Регистрация: 25.10.2013
Сообщений: 1
29.08.2017, 15:51 2
ИМХО - проще перенести DFU на F103, чем мегадевайс на F107.
Количество EP на девайсах с OTG - отдельная засада, пару раз реально не хватало хотя бы одной дополнительной EP. Если вам не нужен OTG - останьтесь на F103.
0
tyombutot
29.08.2017, 16:09 3
Да, решили поднять DFU на f103, тем более есть "стандартный" пример от STM.
29.08.2017, 16:09
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.08.2017, 16:09
Помогаю со студенческими работами здесь

USB на STM32F103
Всем добра. Пытаюсь разобраться с работой USB на камне STM32F103VET6. Пока безуспешно. Находил...

STM32F103 USB speed
Есть задача - передать поток данных от ADC через USB на комп. Два ADC генерируют по больше 20...

stm32f103: cubeMX и USB
Доброго времени суток. Помогите найти проблему: спаял плату по схеме, через cubeMX настроил usbfs...

stm32f103 usb keyboard
Добрый день! Необходимо сделать usb клавиатуру на stm32f103, перерыл весь инет, не нашел ни одного...

STM32F103 и MIDI protocol + USB
Доброго времени суток всем. Стоит следующая задача: Реализовать устройство MIDI контроллер,...

stm32f103 USB изменить endpoint
Доброго времени суток всем. Начал разбираться с USB, использовал пример из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Аутентификация на сайте с помощью формы
bytestream 21.01.2025
В современном цифровом мире безопасная аутентификация становится краеугольным камнем защиты веб-приложений и пользовательских данных. Каждый день миллионы людей используют различные онлайн-сервисы,. . .
Как получить индекс в цикле for в Python
bytestream 21.01.2025
При работе с коллекциями данных в Python часто возникает необходимость не только получить доступ к элементам последовательности, но и знать их позицию в процессе итерации. Индексация в циклах. . .
Как определить адрес, из которого локальный репозиторий Git был клонирован
bytestream 21.01.2025
В современной разработке программного обеспечения система контроля версий Git стала неотъемлемой частью рабочего процесса. При работе с Git разработчики часто сталкиваются с необходимостью. . .
Какая разница между операторами == и === в сравнениях в JavaScript
bytestream 21.01.2025
В мире веб-разработки JavaScript занимает особое место как динамический язык программирования, предоставляющий разработчикам широкий набор инструментов для создания интерактивных веб-приложений. . . .
Из чего и как собрать свой домашний кинотеатр
bt_guru 21.01.2025
Создание домашнего кинотеатра: от идеи до реализации В современном мире домашний кинотеатр стал неотъемлемой частью комфортного жилого пространства, предоставляя возможность наслаждаться. . .
Ошибки стиральных машин
bt_guru 21.01.2025
Современные стиральные машины представляют собой сложные электронные устройства, оснащенные множеством датчиков и систем контроля. Они способны самостоятельно определять вес загруженного белья,. . .
Копирование (маппинг) объектов в JavaScript
bytestream 21.01.2025
В современной разработке программного обеспечения копирование объектов представляет собой фундаментальную операцию, которая требует особого внимания и понимания. Маппинг объектов в JavaScript – это. . .
Как работать с Apache Kafka в C# .NET
bytestream 21.01.2025
Apache Kafka представляет собой распределенную платформу потоковой передачи данных, которая произвела революцию в области обработки больших объемов информации в реальном времени. Эта система,. . .
Как использовать RabbitMQ в C# .NET
bytestream 21.01.2025
RabbitMQ представляет собой мощный брокер сообщений, который эффективно решает эту задачу, обеспечивая надежную передачу данных между множеством приложений. Этот инструмент реализует протокол AMQP. . .
Как объединить последние коммиты в Git
bytestream 21.01.2025
В мире разработки программного обеспечения система контроля версий Git стала незаменимым инструментом для управления исходным кодом. Одной из наиболее полезных, но порой сложных для освоения функций. . .
Как запушить новую локальную ветку (branch) в удалённый репозиторий Git и отслеживать её
bytestream 21.01.2025
В современной разработке программного обеспечения система контроля версий Git стала неотъемлемым инструментом для эффективного управления кодом и организации командной работы. Одной из ключевых. . .
Как создать директорию и все родительские директории, указанные в пути, с помощью Python
bytestream 21.01.2025
Python предоставляет мощные инструменты для работы с файловой системой через встроенные модули os и pathlib, которые значительно упрощают процесс манипуляции директориями. Эти модули содержат. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru