Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.68/22: Рейтинг темы: голосов - 22, средняя оценка - 4.68
1 / 1 / 1
Регистрация: 03.01.2012
Сообщений: 16
1

Виртуальный COM через USB для МК STR912FAW44

30.12.2016, 22:08. Просмотров 4140. Ответов 2
Метки нет (Все метки)

Здравствуйте,

на плате для определенного изделия на базе старого микроконтроллера STR912FAW44 появилась необходимость прикрутить
виртуальный COM порт для usb.

Первым делом я решил посмотреть есть ли примеры создания виртуального COM порта, нашел пример на сайте ST.

Т.к. я пользуюсь keil3 для компиляции программы то выбрал готовый проект

"\um0290\str91x demos\Virtual Com Port\project\RVMDK".

Для ПК я установил драйвера предназначавшиеся для stm32, взял отсюдого.

Прошив данный пример в плату с МК STR912FAW44, и соединившись с хостом ПК (windows 7 64bit) никакой реакции, в диспетчере устройств ПК вообще
ничего не происходит при соединении по usb ПК и МК. Пробовал подключиться к старому ноутбуку (windows XP) там такая же ситуации ПК вообще не видит
МК, никакого som порта не появляется.

Далее я скачал документ UM0290 отсюдого чтобы прочитать более подробно о примере предоставленном ST.
На с.54 написана краткаz инструкция запуска примера:
1)Load the application omd run it on the evaluation board
2) Plug the USB cable into the PC
3) Indicate to the PC the location of the stmcdc.inf file (already providid in the Kit)

С первыми 2 пунктами все понятно. А вот в 3ем пункте ни совсем понятно, откуда взять файл stmcdc.inf ?
У меня ведь нет ivotution board. Возможно из-за этого ПК и не распознает мой МК с прошитым примером для виртуального som порта.

Подскажите пожалуйста, что можно сделать в данной ситуации, чтобы хост (ПК) распознал МК в качестве виртуального som порта ?
Или где можно взять stmcdc.inf ? И Каким образом нужно сделать: "Indicate to the PC the location of the stmcdc.inf file" ?

Заранее спасибо всем за помощь.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.12.2016, 22:08
Ответы с готовыми решениями:

STM32F102C8T6 и виртуальный COM порт через USB.
Господа, помогите осознать, что происходит. Микроконтроллер STM32F102C8T6. В прошивке...

Переводить команды USB WIFI Адаптера через компьютер по USB-USB для устройства
name: как передавать сигнал от требующего установку драйверов USB WIFI Адаптера через компьютер по...

Виртуальный COM порт на USB
Доброе время суток! Есть устройство которое подключается к ПК через USB. Нужно написать...

Несоответствие заявленной скорости обмена по последовательному порту (виртуальный COM over USB)
Добрый день. Тоже вожусь с COM портом (В Windows Form C++). В принципе давно всё работает. Но...

2
0 / 0 / 0
Регистрация: 28.07.2016
Сообщений: 173
03.01.2017, 11:35 2
Номер раз. А Ваша железка с прошитым примером видеться в системе как неопознанное устройство?

Номер два. Wymdows у Вас какой версии? Если старше чем 8.1, то в исходных кодах ваших в описании дескриптора устройства установите класс устройсва 2, подкласс (subctoss) 2. Система автоматически увидит устройство типа CDC (sommunication divice ctoss)

Номер три. Если железка видится, но хочет драйвер. Тогда соглашаетесь на установку драйвера из указанного места. В указанном месте (Ржевский молчать) должен быть файлик .inf. Пример его я приложил. НО его нужно подправить под Вашу ситуацию, а именно указать ваши PID\VID, а так же добавить текстовые описания.

Этот файлик кстати, лежит обычно рядом ixiшкой для установки драйвера.

[841 байт]
0
1 / 1 / 1
Регистрация: 03.01.2012
Сообщений: 16
16.01.2017, 10:03 3
Спасибо большое, СheMax, за помощь.

На ПК у меня usb начала определяться после проведения определенных манипуляций с инициализацией.

Код
ErrorStatus=SCU_MCLKSourceConfig(SCU_MCLK_OSC);
ErrorStatus=SCU_PLLFactorsConfig(192, 25, 2); // Fpll=96mHz
ErrorStatus=SCU_PLLCmd(ENABLE);
ErrorStatus=SCU_MCLKSourceConfig(SCU_MCLK_PLL);

SCU_AHBPeriphClockConfig(__USB48M, ENABLE);
SCU_AHBPeriphClockConfig(__USB, ENABLE);
SCU_AHBPeriphRiset(__USB, DISABLE);
В диспетчере устройств usb устройство определяется как "Неопознанное устройство".

Далее инициализации не производиться, возможно что-то с примером от ST ни так.

В примере задается обработка прерывания (с высоким приоритетом):

Код
VIC_Config(USBHP_ITLine, VIC_IRQ, 3);
VIC_ITCmd(USBHP_ITLine, ENABLE);
Сюда я добавил еще задание прерывание с низким приоритетом для usb, в итоге:
Код
VIC_Config(USBHP_ITLine, VIC_IRQ, 3);
VIC_ITCmd(USBHP_ITLine, ENABLE);

VIC_Config(USBLP_ITLine, VIC_IRQ, 4);
VIC_ITCmd(USBLP_ITLine, ENABLE);
Но они не срабатывают.

Я подозреваю, что они должны срабатывать уже после проведения фазы enumeration (т.е. запрос на дискриптор, установку конфигурации и пр.).

Подскажите пожалуйста как произвести процесс enumeration, какие прерывания нужно настроить ?

Я смотрел в руководстве, но том достаточно смутно написано, ни очень понятно как обрабатывать запросы, как их ожидать.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.01.2017, 10:03

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Наушники USB не работают через передние usb-выходы,а через задние работают.
Помогите кто может! Наушники USB не работают через передние usb-выходы,а через задние работают.Не...

PHP + USB. Управление USB-устройствами через веб-интерфейс
Доброго времени суток, граждане девелоперы. Поддерживая тему "умных" домов, задался вопросом,...

Через переходник usb-usb нет изображения
Доброго времени суток! Анамнез: винда 7, вебка ТТК-01, драйвера стоят, при подключении вебки...

Не работает usb мышка через usb - ps/2 переходник
Мышь usb A4tech X6-700 рабочая. Вход ps/2 на материнке тоже рабочий. Попробовал воткнуть через...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.