USB Device

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

Модераторы: ea, dav, bkolbov, Alis, pip, _sva_

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

USB Device

Сообщение Дмитрий_0577 »

Здравствуйте!
Задача - выполнить на основе К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;   
/* Включение всех прерываний */
 Энвик_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-разрядные микроконтроллеры»