Задача - выполнить на основе К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);