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

kray

Участник
  • Постов

    37
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о kray

  • Звание
    Участник
    Участник
  1. Все, проект заработал, нужно было раскомментировать строки с PLL: SCU_PLLFactorsConfig(192, 25, 2); SCU_PLLCmd(ENABLE); SCU_MCLKSourceConfig(SCU_MCLK_PLL); а также FMI_Config(FMI_READ_WAIT_STATE_2, FMI_WRITE_WAIT_STATE_0, FMI_PWD_ENABLE, \ FMI_LVD_ENABLE, FMI_FREQ_HIGH); Рабочий проект прикрепил к этому сообщению может кому-нибудь пригодиться. myProj_usbSTR912FW44.zip
  2. Взял пример usb драйвера для str9 virtual com port чтобы на основе него сделать свой драйвер для STR912FAW44. Немного допилив его удалось сделать так, чтобы usb определялся как неизвестное устройство (раньше и этого не было). Однако дальше процесс не идет (прикрепил скриншот программного анализатора на ПК). Т.е. нет запросов GET_STATUS (0x00), GET_DESCRIPTOR (0x06) и т.д. Вот кратко мой код (большая часть кода которая была для uart я удалил или закомментировал, т.к. он мне пока не нужен): //1) Инициализация периферии и тактового генератора SCU_MCLKSourceConfig(SCU_MCLK_OSC); SCU_AHBPeriphClockConfig(__VIC, ENABLE); SCU_AHBPeriphReset(__VIC, DISABLE); /*USB clock = MCLK= 48MHz*/ SCU_USBCLKConfig(SCU_USBCLK_MCLK2); SCU_AHBPeriphClockConfig(__USB48M, ENABLE); /*Enable USB clock*/ SCU_AHBPeriphClockConfig(__USB, ENABLE); SCU_AHBPeriphReset(__USB, DISABLE); //2) Настраиваем ножку port2 pin7 (USBCLK) на выход: SCU->GPIOOUT[0x02] = 0x4000; // 3) Настройка прерывания по умолчанию: VIC_DeInit(); VIC_InitDefaultVectors(); //4) Настройка прерывания для usb: void USB_Interrupts_Config(void) { VIC_Config(USBLP_ITLine, VIC_IRQ, 3); VIC_ITCmd(USBLP_ITLine, ENABLE); } Обработчик прерывания USB_Istr() в файле usb_istr.c срабатывает, чтобы запустился код на обработку запросов должна сработать вот эта вот ветка: #if (IMR_MSK & ISTR_CTR) if (wIstr & ISTR_CTR & wInterrupt_Mask) { /* servicing of the endpoint correct transfer interrupt */ /* clear of the CTR flag into the sub */ CTR_LP(); Т.е. бит CTR в регистре USB_ISTR говорящей об успешности транзакции должен сработать. Однако этого почему-то не происходит. (Приложил к сообщению свой проект, проект делал в keil находиться по пути "um0290\str91x demos\Virtual Com Port\project\RVMDK" ). Подскажите пожалуйста в чем может быть проблема ? Как правильно произвести инициализацию ? myProjectSTR912FW44.zip
  3. Здравствуйте, на мк STR912FAW44 был когда-то сделан usb драйвер. Все работало (более-менее) нормально на старых ОС до winXP включительно. Однако на новой ОС в частности win7 x64 устройство перестало инициализироваться. В диспетчере устройств показывает ошибку "Запуск этого устройства невозможен. (Код 10)" Возможно что-то в inf файле конечно ни так. Для winXP inf файл уже был. Для win7 я скачал с сайта ST virtual com port драйвера для STM32 и установил этот драйвер. (Далее C:\Windows\System32\DriverStore\FileRepository в каталоге нашел этот inf файл, вложил в виде архива CDC_INF.zip в этом же архиве inf файл для winXp). Также решил проанализировать трафик который идет из хоста на МК и обратно с помощью USBTrace. Проблемным оказался участок SetConfiguration (его я выделил). Как я понял хост устанавливает конфигурацию и потом отправляет на МК (OUT message). От МК приходит сообщение об установленной конфигурации (IN message). И в этом сообщении ошибка USBD_STATUS_INVALID_PARAMETER (0x80000300). (Детальный анализ в виде html файлов прикрепил к этому сообщению в виде архива "usbTrace.zip". Там находятся описание всех сообщений при подключении usb к ПК. Я вложил отчет как для проблемной ОС win7 x64, так и там где все норм - winXP. В отчетах же можно посмотреть на дискриптор устройства. ) Я думал что различие в OUT и в IN сообщениях дадут разгадку почему происходит ошибка invalid parameter однако сообщения в IN и OUT различаются как для win7 так и в winXP (где все в порядке). Подскажите пожалуйста в чем тут может быть проблема ? Можно ли по статусу SBD_STATUS_INVALID_PARAMETER определить какой параметр неверный ? CDC_INF.zip usbTrace.rar
  4. AlexandrY, спасибо большое за ссылки буду изучать. Еще один вопрос, вы свой проект на основе STR9 не пробовали подключать к современным ПК с win7, win8 и более с usb 2.0 и 3.0 ? Он у вас нормально работает с нынешними ПК ? Спрашиваю потому что до этого у меня уже на плате стоял usb драйвер для STR912FAW44 и со старыми ПК он работает отлично, а вот с новыми не хочет работать (выше в одном из комментариев я уже описывал эту проблему). Это и сподвигло начать ковыряться в usb модуле для этого МК.
  5. Спасибо большое за пример, AlexandrY, буду его изучать. Подскажите пожалуйста где можно найти информацию об упомянутых вами "конвеерах и событиях" ? Если вам не трудно не могли бы вы указать где про это написано в референс мануал я не смог найти, возможно не внимательно смотрел кончено. Заранее спасибо.
  6. Спасибо большое, controller_m30. Не хотел я загромождать свой пост лишней информации (как мне показалось), но думаю стоит упомянуть. До этого на моей плате уже стоял драйвер для виртуального com порта, но программировался он очень давно для usb 1.1. И на современных ПК под windows 7, windows 8 при соединении платы с ПК com порт определяется, но не хочет запускаться, ошибка 10 ("Не удается запустить устройство"). Копаться в чужом коде, где никакой документации кроме скудных комментариев нет мне показалось достаточно сложным. Поэтому я решил попробовать запустить готовый пример под STR9, который предоставляется непосредственно STMicroelectronics и отталкиваться уже от него. К чему я это виду, со схемой скорее всего все норм, в том плане, что если правильно все инициализировать то usb порт появляется в ПК (как я упоминал выше предыдущий драйвер для виртуального com порта ПК-ом распознается, просто работает неправильно), хоть и не совсем корректно. Т.е. видимо нужно провести правильную инициализацию, а в готовом примере этого не делается.
  7. Спасибо за подсказку, Genadi Zawidowski. Т.е. в моем случае получается что нужно смотреть непосредственно на инициализацию usb ? Судя по тому что при подключении по usb моей платы к ПК ничего не происходит в диспетчере устройств, получается что на usb со стороны платы (т.е. usb контроллера на МК STR912FAW44) вообще не включается, вроде как на него не подается тактирование или что-то в этом роде ? Спасибо за ответ, AlexandrY. Да у меня плата примерно такая же, т.е. она не является стандартной платой от ST типа Discovery а сделано под определенно изделие, т.е. ни общего назначения. Не могли бы вы подсказать как вы начинали программировать usb для str9, с чего начинали копать ? Мне интересна ваша методология. Также было бы хорошо если бы вы мне скинули откуда вы брали материалы чтобы начать программировать usb контроллер. Заранее спасибо большое.
  8. Спасибо за ответ, Genadi Zawidowski, т.е. если прошивка работает, то в диспетчере устройств должно появиться устройство даже без драйвера на ПК (хосте) ? Genadi Zawidowski, для STR9 уже есть свой пример проекта для usb драйвера. Но он почему-то не работает вообще, ПК его не распознает после прошивки. Вопрос нужно ли этот пример как то допиливать под свою плату ? Потому как плата не стандартная, а под конкретное изделие. Или же что-то с примером ни так ?
  9. Здравствуйте, на плате для определенного изделия на базе старого микроконтроллера STR912FAW44 появилась необходимость прикрутить виртуальный COM порт для usb. Первым делом я решил посмотреть есть ли примеры создания виртуального COM порта, нашел пример на сайте ST. Т.к. я пользуюсь keil3 для компиляции программы то выбрал готовый проект "\um0290\str91x demos\Virtual Com Port\project\RVMDK". Для ПК я установил драйвера предназначавшиеся для stm32, взял отсюдого. Прошив данный пример в плату с МК STR912FAW44, и соединившись с хостом ПК (windows 7 64bit) никакой реакции, в диспетчере устройств ПК вообще ничего не происходит при соединении по usb ПК и МК. Пробовал подключиться к старому ноутбуку (windows XP) там такая же ситуации ПК вообще не видит МК, никакого com порта не появляется. Далее я скачал документ UM0290 отсюдого чтобы прочитать более подробно о примере предоставленном ST. На с.54 написана краткаz инструкция запуска примера: 1)Load the application and 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 provided in the Kit) С первыми 2 пунктами все понятно. А вот в 3ем пункте ни совсем понятно, откуда взять файл stmcdc.inf ? У меня ведь нет evolution board. Возможно из-за этого ПК и не распознает мой МК с прошитым примером для виртуального com порта. Подскажите пожалуйста, что можно сделать в данной ситуации, чтобы хост (ПК) распознал МК в качестве виртуального com порта ? Или где можно взять stmcdc.inf ? И Каким образом нужно сделать: "Indicate to the PC the location of the stmcdc.inf file" ? Заранее спасибо всем за помощь.
  10. Работаю над реализацией протокола ModBus RTU на DE1-SoC. Собрала в Quartus II процессор Nios II с UART (вывод на 2 ножки GPIO). Осталось в Eclipse на языке Си FreeModBus поместить (пока не получается из-за отсутствия нужных библиотек) Может есть другой способ реализации протокола ModBus (RTU или TCP) на отладочной платформе DE1-SoC фирмы Altera?
  11. Здравствуйте, рассчитываю индукторный двигатель с полым ротором по книге "Асинхронные исполнительные микродвигатели для систем автоматики Е.М.Лопухина 1988". Дойдя до расчета площади паза в свету столкнулся с небольшой трудностью. В таблице написано что при нахождении площади паза нужно вычесть площадь сегмента S = 0.735. Площадь сегмента, как пишет автор , нужно находить по эскизу, никаких подробностей как он находил по эскизу площадь автор не дает. Подскажите пожалуйста как автор нашел площадь сегмента по эскизу, сам я никак не могу понять как он это делает ? Выложил рисунки: 1) Формулы нахождения площади паза в свету 2) Эскиз с размерами ИДП (индукторного двигателя с полым ротором) 3) Таблица 7,4 в которой приведена формула нахождения площади паза в свету 4) Рисунок с параметрами паза статора к которому идет ссылка в 1). Заранее большое спасибо всем за помощь.
  12. Ураа наконец-то все получилось !!! :) Теперь можно например скачав с google пример программы AndroidChat передавать строки на ПК, например "Hello world." через программу терминал. Далее изложена инструкция, возможно кому-то поможет: Проблема: необходимо связать между собой планшет и bluetooth usb модуль (usb dongle). Так чтобы можно было передавать не файлы, а байты данных от планшета через андроид приложение на ПК через bluetooth модуль. Переданные на ПК байты данных необходимо смотреть с помощью программы терминала считывающая инфу с с последовательного порта, в частности с того порта куда воткнут bluetooth модуль. При втыкании bluetooth модуля в usb порт ПК начинают устанавливаться драйвера. Ни все драйвера могут установиться правильно (смотри картинку). В данном случае в "Диспетчере устройств" видно, что неправильно установились драйвера на "Периферийное устройство Bluetooth " и "Последовательный порт PCI" (отмечены желтой меткой в группе "Другие устройства"). На сомом деле это ни проблема, и с драйверами можно не заморачиваться. Решение: 1) Скачиваем программу Терминал (упомянутую выше) CoolTerm отсюдого Здесь имеется небольшое описание по этой программе: Можно сразу же ее запустить, устанавливать не нужно. 2) Устанавливаем сопряжение между планшетом и bluetooth модулем ПК. У меня пару раз этот процесс сбивался, но после нескольких попыток сопряжение удалось сделать. 3) В "Диспетчере устройств" в группе "Порты" находим "Стандартный последовательный порт по соединению Bluetooth (COM29)" (у меня это 29 порт, смотри картинку). Этот номер порта устанавливаем в "Option" в программе CoolTerm (смотри рисунок). Если этого номера порта нет, то нужно нажать кнопку "Re-Scan Serial Ports". Порт с таким номером должен появиться в списке. 4) После этого нажимаем кнопку Connect, если внизу появились 8 зеленых индикатора (Rx, Tx), значит все норм можно пользоваться. Вся эта инструкция примерная, похожа на танцы с бубном. Возможно некоторые моменты я упустил, всю досконально последовательность действий я, к сожалению, уже не помню. Если у вас не будет выполняться один из вышеперечисленных пунктов попробуйте зайти в "Устройства и Принтеры" и удалить ваш телефон или планшет. И заново провести все вышеперечисленные действия. Всем большое спасибо, за помощь. :) Baser, Хорошо, спасибо вам большое за помощь.:)
  13. Baser, в крайнем случае на друго попробую перейти ПК. Все равно, спасибо большое вам за помощь. :):) uriy, вот в ИД оборудования на Generic Bluetooth Radio нашел следующее USB\VID_0A12&PID_0001&REV_0134 USB\VID_0A12&PID_0001 Как теперь можно найти информацию про оборудование ?
  14. Спасибо, Baser, :) дело в том, что этот донгл мне достался без коробки, а коробку и все остальное потеряли, по устройству через ОС можно как то узнать, что за производитель и какая модель ? В параметрах bluetooth написано: Изготовитель: Cambridge Silicon Radio Ltd. И все.
×
×
  • Создать...