USB
Модераторы: ea, dav, bkolbov, Alis, pip, _sva_
Re: USB
Как понять отвечает контроллер хосту по USB еще на стадии обмена дескрипторами. И вообще, как вести отладку софта при программировании USB.
Re: USB
Лучше конечно воспользоваться аппаратными средствами типо таких https://www.picotech.com/products/oscilloscope https://www.picotech.com/library/oscill ... s-decoding (ну или самому разбирать пакетики по любому осциллограффу, учитывая их структуру и увеличение длины при битстаффинге). А так можно в принципе установить https://www.wireshark.org/ вместе с ней идёт http://desowin.org/usbpcap/ но как правильно говорится тут http://itsecforu.ru/2018/01/25/usbpcap- ... F-windows/, пока драйвер на устройство не поставится, можно ничего не увидеть или криво увидеть только часть дескрипторов, хотя даже по этой информации можно понять, что например дескриптор криво упаковался со стороны микроконтроллера.
Re: USB
Смогли ли вы запустить пример?Сергей писал(а): ↑22 май 2018, 14:27 Используется ли у Вас вход CLK_USB (23 нога контроллера, вход PA0). Если да, то на какую частоту установлен генератор.
Есть предположение, что не работает тактирование от OSC_CLK, так как у меня не заработал Ваш пример на плате от "Мехатроника про", где вход CLK_USB не используется.
Re: USB
Столкнулся с проблемой, не настраивается USB PHY. пишу:
но в регистре USB_CTRL никакой реакции. Пробую вручную менять значение регистра, но после первого такта все сбрасывается в нули. Блок USB успешно включается: в регистре PER_RST0 вижу, что бит USBPHYRST выставлен на единичку.
В чем может быть проблема?
Код: Выделить всё
NT_COMMON_REG->USB_CTRL = 0x00000006; //clk_en, 24MHz, xtal
NT_COMMON_REG->PER_RST0 |= (1<<3); //активируем блок usb
В чем может быть проблема?
Re: USB
Добрый день, Кирилл!
Во первых, все биты регистра USB_CTRL (кроме FSEL) предназначены только для записи, то что по чтению нули, это нормально.
Во вторых,
здесь код не соответствует комментарию - если комментарий отражает то, что вы хотите сделать, то нужно писать 0x7 в регистр.
Во первых, все биты регистра USB_CTRL (кроме FSEL) предназначены только для записи, то что по чтению нули, это нормально.
Во вторых,
Код: Выделить всё
NT_COMMON_REG->USB_CTRL = 0x00000006; //clk_en, 24MHz, xtal
Re: USB
Разве бит FSEL имеет значение, когда у меня источник сигнала тактирования OSC_CLK? (кварцевый резонатор)bkolbov писал(а): ↑18 окт 2018, 09:47здесь код не соответствует комментарию - если комментарий отражает то, что вы хотите сделать, то нужно писать 0x7 в регистр.Код: Выделить всё
NT_COMMON_REG->USB_CTRL = 0x00000006; //clk_en, 24MHz, xtal
в документации написано: FSEL - Бит выбора фиксированной частоты сигнала на входе CLK_USB.
Re: USB
На самом деле имеет. Этот бит даёт понять физическому блоку что у него на входе - 12 или 24 МГц. Источник этой частоты уже не важен в этом плане. Описание не совсем корректное.Разве бит FSEL имеет значение, когда у меня источник сигнала тактирования OSC_CLK? (кварцевый резонатор)
в документации написано: FSEL - Бит выбора фиксированной частоты сигнала на входе CLK_USB.
Re: USB
Не смог. Такое впечатление, что он совсем не рабочий.Кирилл писал(а): ↑04 окт 2018, 11:08Смогли ли вы запустить пример?Сергей писал(а): ↑22 май 2018, 14:27 Используется ли у Вас вход CLK_USB (23 нога контроллера, вход PA0). Если да, то на какую частоту установлен генератор.
Есть предположение, что не работает тактирование от OSC_CLK, так как у меня не заработал Ваш пример на плате от "Мехатроника про", где вход CLK_USB не используется.
Re: USB
А вообще запустить usb? Без примера.