-
- Значение частоты кварца в программе соответствует реальному? - misyachniy(13.03.2015 20:25)
- Соответствует. Кварц=12 МГц; PLL=6; частота=72 МГц; делитель_USB=1,5; частота_USB=48 МГц. Как положено. - usb здесь(18.03.2015 16:58)
- 1 сек - винда не видит ?! ali00ff(787 знак., 18.03.2015 13:12)
- А разве требуется под Windos ставить специальный драйвер? USB-COM подозреваю должен работать искаропки, нет? - usb здесь(19.03.2015 14:09)
- Из коробки - subser.sys , только ini файл правильный сделать надо, vid pid драйвер - OlegPowerC(19.03.2015 14:18)
- Я надеюсь под Линаксом (когда заработает) определится что-то типа /dev/ttyd0 - типо просто RS232 COM-порт - USB здесь(19.03.2015 21:41)
- Пока vid/pid весьма странен USB\VID_0000&PID_0000\5&39DD11F1&0&3 ; GUID класса устройств {36fc9e60-c465-11cf-8056-444553540000} ; Имя объекта физического устройства \Device\USBPDO-9 ; текущее состояние электропитания D3 ; код проблемы 0000002B ; USB здесь(49 знак., 19.03.2015 21:38)
- Завтра по гляжу что у меня, давно это было, уже несколько лет к USB не подходил - OlegPowerC(19.03.2015 23:53)
- Из коробки - subser.sys , только ini файл правильный сделать надо, vid pid драйвер - OlegPowerC(19.03.2015 14:18)
- Спасибо, буду курить. Брал на ST пример Virtual COM Loopback. Без КубовMX. Выпилил SPL. Только CMSIS. Не видит устройства. Попробовал допилить типо флешку из C:\Program Files (x86)\Keil\ARM\Boards\ST\EK-STM32F\USBMem для теста с учётом своей usb здесь(172 знак., 18.03.2015 17:10)
- А разве требуется под Windos ставить специальный драйвер? USB-COM подозреваю должен работать искаропки, нет? - usb здесь(19.03.2015 14:09)
- чуть позже будет как всегда - "ой я usb клока не включил"? - Hives(13.03.2015 18:39, )
- Неправда ваша: RCC->APB1ENR=RCC_APB1ENR_USBEN; - usb здесь(18.03.2015 17:11)
- Вот тут еще почитай, пригодится :-) - il-2(13.03.2015 14:46, ссылка, ссылка)
- Схема рабочая. Примеры должны работать, скорее всего ты что-то порушил когда адаптировал. Код давай, прежде всего - код инициализации. - il-2(13.03.2015 14:41)
- #define USB_pullup_off GPIOA->CRH=(GPIO_CRH_CNF8_0|GPIO_CRH_CNF9_0); // 8,9 floating input, 10-15 analog input usb здесь(1551 знак., 18.03.2015 17:14)
- Сразу навскидку - отсутствует конфигурация PA11/PA12 в режим Alternate function. Единственный запрос на прерывание у тебя - скорей всего на вход в Suspend (флаги в ISTR смотрел??). - il-2(20.03.2015 10:51 - 10:54)
- Пофиксил, всё равно не работает( Непонятка с клоками - USB здесь(01.04.2015 06:53, ссылка)
- Ну а функция USB_LP_CAN1_RX0_IRQHandler где-то есть? Нужно поставить в ней точку останова и посмотреть, происходят ли вообще прерывания от USB. - йцукен(19.03.2015 14:32, )
- Странно, что прерывание USB_LP_CAN1_RX0_IRQHandler() выполняется только один раз. Процесс энумерации, как я понимаю, минимум 20 пакетов всяких переговоров с хостом. А их нет совсем, согласно BusHound - usb здесь(20.03.2015 08:56)
- Спасибо. Поставил точку останова. Прерывание происходит один раз. USB_LP_CAN1_RX0_IRQHandler() есть, определена в stm32_it.c и вызывает только USB_Istr(), определённую в usb_istr.c USB здесь(362 знак., 19.03.2015 21:29, ссылка)
- Конфигурировать там особо нечего, вот вся инициализация из работающего проекта: йцукен(363 знак., 20.03.2015 16:28, )
- Подскажите единицы измерения __delay(1000); Микросекунды? Как раз 1 миллисекунда - период обмена USB 2.0 - usb здесь(30.03.2015 17:23)
- delay там в абстрактных попугаях, фактически мельче микросекунды. Это время не играет особой роли, всё происходит до того, как включен pullup, так что никаким "обменом" ещё не пахнет. Инициализация позволяет получать SOF и Bus Reset, после Bus йцукен(45 знак., 30.03.2015 19:28, )
- Вроде так и сделал. Не работает( Стал подозревать неверные клоки. Решил проверить таймером и светодиодом. Теперь в полных непонятках. 72MHz/72/1000/10000 должно давать 10 секундные интервалы между переключениями. По факту примерно в 100 раз чаще. usb здесь(69 знак., 31.03.2015 11:49)
- Из функции delay нужно выкинуть йцукен(324 знак., 01.04.2015 19:44, )
- Решил попробовать SysTick для проверки SYSCLK=72MHz, раз не понял фокус с TIM3, теперь периодически валится в HardFault_Handler() usb здесь(69 знак., 03.04.2015 13:03)
- Поменял направление up->down: TIM3->CNT=timeout-1; TIM3->CR1=(TIM_CR1_OPM|TIM_CR1_CEN|TIM_CR1_DIR); Не помогло, всё равно непонятный период моргания контрольного светодиода USB здесь(02.04.2015 06:45)
- За минуту прерывание тикает примерно 24 раза, вместо ожидаемых 60. Что-то не так. Вроде кварц 12 МГц. PLL*=6; SYSCLK=72 МГц; USB здесь(359 знак., 02.04.2015 01:16)
- Спасибо, период таймера стал ближе к ожидаемому. Смысл был в том, чтобы немедленно применились новые значения PSC, ARR и начать новый период с нулевых теневых счётчиков (с которыми сравниваются теневые аналоги PSC и ARR). Для гарантии, что USB здесь(363 знак., 02.04.2015 00:36)
- И еще - ты в курсе что шина APB1 может работать только на <=36MHz? А ты ее на 72MHz гоняешь, судя по этому коду. - il-2(01.04.2015 11:42)
- Спасибо, пофиксил, теперь с RCC_CFGR_PPRE1_DIV2 USB здесь(02.04.2015 00:39)
- Вот я лошара. В RM же на 90 странице по-русски написано "The maximum allowed frequency of the APB1 domain is 36 MHz." А TIM3 как раз висит на APB1. Дикий оверклок получаецца. Чо удивляться таймер не так тикает. - usb здесь(01.04.2015 13:12)
- Зачем закомментировал? Как он у тебя выйдет из Suspend??? Так и будет висеть на __WFI(). В обработчике прерывания не забудь сделать сброс запроса на прерывание (больше там ничего не нужно). il-2(99 знак., 01.04.2015 11:01)
- Спасибо, вернул EXTI->IMR=EXTI_IMR_MR18; USB здесь(420 знак., 02.04.2015 00:49)
- Из функции delay нужно выкинуть йцукен(324 знак., 01.04.2015 19:44, )
- Вроде так и сделал. Не работает( Стал подозревать неверные клоки. Решил проверить таймером и светодиодом. Теперь в полных непонятках. 72MHz/72/1000/10000 должно давать 10 секундные интервалы между переключениями. По факту примерно в 100 раз чаще. usb здесь(69 знак., 31.03.2015 11:49)
- Может, ты имел в виду период тика SOF USB full speed. А что такое "период обмена"? - ASDFS(30.03.2015 17:50)
- Да, период тика. Чаще чем хост выдаст Start-Of-Frame обмен ведь не происходит? Для VirtualCOM размер пакета не более 64 байт. Выходит пиковая скорость 64000 байт/сек. Немного, но в любом случае в разы быстрее 115200 бит/с. - usb здесь(31.03.2015 11:11)
- Не надо путать Interrupt режим и Bulk, в котором и работает VCP. И скорость там ограничена практически только Phy уровнем = реально можно на USB1.1 больше 1Мб/с получить. - Hives(01.04.2015 11:09, )
- Зависит от драйвера. Если драйвер позволяет - можно и чаще. Ограничение один пакет на тик явным образом прописано в стандарте только для HID драйверов. У остальных это определяется авторами конкретных дровишек. И потом есть USB High Speed, там тик ASDFS(9 знак., 31.03.2015 12:12)
- В stm32f103 нет HighSpeed :( - usb здесь(31.03.2015 14:21)
- Да, период тика. Чаще чем хост выдаст Start-Of-Frame обмен ведь не происходит? Для VirtualCOM размер пакета не более 64 байт. Выходит пиковая скорость 64000 байт/сек. Немного, но в любом случае в разы быстрее 115200 бит/с. - usb здесь(31.03.2015 11:11)
- delay там в абстрактных попугаях, фактически мельче микросекунды. Это время не играет особой роли, всё происходит до того, как включен pullup, так что никаким "обменом" ещё не пахнет. Инициализация позволяет получать SOF и Bus Reset, после Bus йцукен(45 знак., 30.03.2015 19:28, )
- Подскажите единицы измерения __delay(1000); Микросекунды? Как раз 1 миллисекунда - период обмена USB 2.0 - usb здесь(30.03.2015 17:23)
- Конфигурировать там особо нечего, вот вся инициализация из работающего проекта: йцукен(363 знак., 20.03.2015 16:28, )
- убери-ка ты вот это: Hives(34 знак., 18.03.2015 22:59, )
- блин, не тот регистр посмотрел - USB висит на CRH... не трогай, в общем. - Hivex(18.03.2015 23:04, )
- Сразу навскидку - отсутствует конфигурация PA11/PA12 в режим Alternate function. Единственный запрос на прерывание у тебя - скорей всего на вход в Suspend (флаги в ISTR смотрел??). - il-2(20.03.2015 10:51 - 10:54)
- #define USB_pullup_off GPIOA->CRH=(GPIO_CRH_CNF8_0|GPIO_CRH_CNF9_0); // 8,9 floating input, 10-15 analog input usb здесь(1551 знак., 18.03.2015 17:14)
- Цепочка выглядит норм ASDFS(255 знак., 12.03.2015 16:20)
- BusHound показывает тишину - значит глюк в софте. Подтяжка включилась и висит. - USB здесь(12.03.2015 22:00)
- Я в Москве. Спасибо за на водку. Буду гуглить BusHound - usb здесь(12.03.2015 16:24)
- Значение частоты кварца в программе соответствует реальному? - misyachniy(13.03.2015 20:25)