USB Device

32-разрядные микроконтроллеры разработки ОАО "НИИЭТ"

Модераторы: pip, _sva_

Ответить
Дмитрий_0577
Сообщения: 4
Зарегистрирован: 09 окт 2017, 20:29
Предприятие: СФ МЭИ

USB Device

Сообщение Дмитрий_0577 » 17 июл 2018, 17:42

Здравствуйте!
Задача - выполнить на основе К1921ВК01Т USB устройство, которое должно быть в роли ведомого всегда. В качестве хоста выступает персональный компьютер. Какова должна быть схемотехника подключения линий USB контроллера в этом случае? Как настроить контроллер так, чтобы режим OTG был выключен? По каким причинам на линии ID может быть низкий уровень при не подключённом кабеле? При подключении к хосту должны ли возникать какие либо прерывания (reset, например) или признаки в регистрах?
Используется кварцевый резонатор 24 МГЦ. Настройка блока USB следующая:

Код: Выделить всё

NT_COMMON_REG->USB_CTRL = 0x05;
RCC_PeriphRstCmd(RCC_PeriphRst_USB, ENABLE); 
NT_GPIOE->ALTFUNCCLR = 0x000c;
NT_COMMON_REG->GPIODENE |= 0x000c;
NT_GPIOE->OUTENSET = 0x000C;
NT_GPIOE->DATAOUT = 0x0000;   
/* Включение всех прерываний */
 NVIC_EnableIRQ(USBOTG_IRQn);
 NT_USBDevice->IRQ_ENB_L = 0x0F;
 NT_USBDevice->USB_IRQ_ENB = 0x7F;
 NT_USBDevice->CEP_IRQ_ENB = 0x1FFF;
 NT_USBOTG->OTG_IRQ_EN = 0x3FF;
 NT_USBDevice->USB_EP->IRQ_ENB = 0x7ff;
/* Взято из примера */
USBDev_Init();
USBDev_ClassCbInit(&USBDEV_CDC_VCP_cb);
USBOTG_SetRole(USB_Role_Device);
При установки бита B_BUS_REQ ничего не происходит. На линии ID всегда 0. При включение один раз происходит прерывание по ADEVSYNCCHNG, вне зависимости подключёна ли вилка micro-b или нет. Сброс контроллера не помогает.

Ответить

Вернуться в «32-разрядные микроконтроллеры на ядре ARM Cortex»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость