ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
26 ноября
602805
Эдуард1978 (08.06.2015 12:31, просмотров: 6591)
Всем привет! После инициализации USB микроконтроллера at90usb647 не приходят SETUP пакеты Windovs пишет неизвестное устройство вот часть кода при инициализации и при сбросе на шине что то не так помогите плиз void InitUSB () инициализация { UHWCON =(1<<UVREGE)|(1<<UIMOD);// вкл встроенный стабилизатор и выбран режим devis // UDIEN=0; UDINT=0; _delay_ms(15); PLLCSR=0x16; while ((PLLCSR & 1)==0);// насторойка прескаллера на 48 мегагерц // UEIENX=0; USBCON=0x90; / /включили модуль USB USBCON=(1<<USBE)|(1<<OTGPADE); USBCON=0x90;//USBCON&=~((1<<HOST)|(1<<FRZCLK)); // 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); назначили память USB while(!(UESTA0X&(1<<CFGOK)));// Endpoint X configuration: Control, OUT 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 () //фунция настройки конторльной точки при сбросе на шине { UDADDR = 0; USB_address_pending=0; UERST=0xff; UERST=0; // USBCON=(1<<USBE)|(1<<OTGPADE); UDINT=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=0; index1=0; USB_curr_config=0; USB_device_status=1; USB_USWSTAT=DEFAULT_STATE; //bufferusb[10]={0x31}; // UEINTX=0; }