ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
26 ноября
602803 Топик полностью
Эдуард1978 (08.06.2015 12:19, просмотров: 165) ответил vovanadze на Добрый день товарищи! Возникла проблема с USB контроллера AT90USB1287, работает только в девайс-режиме. Не проходит инициализация - нет никаких прерываний, end of reset в том числе. Только v-bus прерывание происходит. Интересует только инициализация, ч
void InitUSB () функция инициализации { UHWCON =(1<<UVREGE)|(1<<UIDE)|(1<<UIMOD); UERST=0xff; UERST=0; // UDIEN=0; UDINT=0; _delay_ms(15); PLLCSR=0x16; while ((PLLCSR & 1)==0); // UEIENX=0; // USBCON=(1<<USBE)|(1<<OTGPADE); // USBCON&=~((1<<HOST)|(1<<FRZCLK)); USBCON=0x90; USBCON=0x90; // Endpoint 0 selected UENUM=0; // Device endpoint registers initialization // Endpoint 0: On UECONX=0x01; UECFG0X=0x00; // Endpoint X size: 8 // Endpoint X Banks: 1 //ALLOC ON UECFG1X=0x30; UECFG1X|=(1<<ALLOC); while(!(UESTA0X&(1<<CFGOK)));// Endpoint X configuration: Control, OUT USBCON&=~((1<<HOST)|(1<<FRZCLK)); UDCON&=~((1<<LSM)|(1<<DETACH)); USB_curr_config=0; USB_USWSTAT=POWERED_STATE;// ; default to powered state USB_device_status=1;//, BANKED USB_dev_req=NO_REQUEST;//, BANKED ; No device requests in process //bufferusb[9]={0x30}; } void USBReset () функция инициализации при сбросе на шине usb { UDADDR = 0; USB_address_pending=0; UHWCON |=(1<<UIMOD)|(1<<UVREGE); UERST=0xff; UERST=0; // USBCON=(1<<USBE)|(1<<OTGPADE); // USBCON&=~((1<<HOST)|(1<<FRZCLK)); // UDIEN=0; UDINT=0; // UEINTX=0; // UEIENX=0; USBCON=0x90; USBCON=0x90; // Endpoint 0 selected UENUM=0; // Device endpoint registers initialization // Endpoint 0: On //UECONX=0x00; UECONX=0x01; UECFG0X=0x00; // Endpoint X size: 8 // Endpoint X Banks: 1 //ALLOC ON UECFG1X=0x30; UECFG1X|=(1<<ALLOC); while(!(UESTA0X&(1<<CFGOK)));// Endpoint X configuration: Control, OUT //USBCON&=~((1<<HOST)|(1<<FRZCLK)); // UDCON&=~((1<<LSM)|(1<<DETACH)); UDCON=0x02; UEIENX|=(1<<RXSTPE);// РАЗРЕШЕНР?Р• ПРЕРЫВАНР?Р• РџРћ ТОКЕНУ SETUP index1=0; USB_curr_config=0; USB_device_status=1; USB_USWSTAT=DEFAULT_STATE; //bufferusb[10]={0x31}; // UEINTX=0; }