Top.Mail.Ru
Уведомления
Очистить все

[Решено] STM32, CAN и USB?

Warhammer
(@warhammer)
Active Member

Всех приветствую!

Столкнулся со странной проблемой... Создаю проект для STM32F103RB с работой по CAN и по USB. Идея такая, что данные, принятые по USB, надо перекидывать в CAN. Но не в этом суть =)

Генерирую голый проект с одной лишь инициализацией этих интерфейсов, STM32Cube версии 6.2.1. Прошиваю, втыкаю USB-кабель - сбой запроса дескриптора устройства, код ошибки 43:

usb

Непонятно, но это только начало) Случайно так вышло, что у меня установлен еще STM32Cube версии 5.6.0. Проделываю в нем аналогичные действия, создаю пустой проект с USB - подключаю, устройство определяется.

Что происходит?)

P.S. Класс USB - CDC.

Цитата
Topic starter Размещено : 30.06.2021 22:58
Тэги темы
Aveal
(@aveal)
Illustrious Member Admin
От: @warhammer

Случайно так вышло, что у меня установлен еще STM32Cube версии 5.6.0. Проделываю в нем аналогичные действия, создаю пустой проект с USB - подключаю, устройство определяется.

А в этом втором проекте точно аналогично - и CAN и USB? )

Вообще в STM32F103 USB и CAN используют общий буфер памяти SRAM, поэтому одновременно не могут работать априори, к сожалению... На практике, как только включается тактирование CAN - отваливается USB, это и происходит.

Возможное решение - переключаться между использованием USB и CAN на лету, во время работы ПО. Ну либо переходить на F105, например.

ОтветитьЦитата
Размещено : 01.07.2021 20:56
Warhammer
(@warhammer)
Active Member

Ах вот оно что!

От: @aveal

А в этом втором проекте точно аналогично - и CAN и USB? )

Да, действительно, во втором был только один USB активирован 😀 

По итогу - в обеих версиях STM32Cube работает USB, когда интерфейс в одиночестве, и не работает связка CAN + USB. В общем, как и должно быть))

Aveal, спасибо!

ОтветитьЦитата
Topic starter Размещено : 01.07.2021 21:32
Поделиться: