Всем привет!
Помогите пожалуйста как правильно инициализировать at90usb647 в режим хоста .
Согласно даташиту для осуществления сброса шины USB (USB_RESET) надо установить бит RESET регистра UHCON (UHCON |= (1<<RESET));, но
ничего не происходит .Хотя если сигнальные пины подключаемого устройства коротнуть на 0 тем самым имитируя сброс шины то подключаемое usb устройство сбрасывается . Может быть надо еще какие нибудь регистры настроить . Вот мой вариант инициализации:

CODE
void inytHost()
{
UHWCON |= (1<<UIDE) | (1<<UVREGE); // это надо если нужно включить регулятор напряжения для USB модуля
_delay_ms(15);
PLLCSR |= (1<<PLLP2) | (1<<PLLP1) |(0<<PLLP0)| (1<<PLLE);
while ((PLLCSR & 1)==0);
UDCON&=~(1<<DETACH);
USBCON |= (1<<USBE) |(1<<HOST)|(1<<OTGPADE);
USBCON&=~(1<<FRZCLK);
USBCON |= (1<<HOST);


UPNUM=0;
UECONX=0x00;
UPCONX|=0x01;
UPCFG0X|=0x00;

//ALLOC ON
UPCFG1X|=0x30;
UPCFG1X|=(1<<ALLOC);
while(!(UPSTAX&(1<<CFGOK)));
//UDCON&=~((1<<LSM)|(1<<DETACH));

//OTGCON=0x04;
//PORTE|=(1<<7);

}



int main (void)
{
CLKPR=0x80;
CLKPR=0x00;

PORTC=0x00;
DDRC=0xff;
DDRE=(1<<7);
PORTD=0x00;
DDRD=0xFF;
inyt();

void inytHost();

OTGCON|=(1<<VBUSHWC);
PORTE|=(1<<7); подаем на шину напряжение

while (1) {


UHCON|=(1<<RESET); //// сброс шины

OLCD(OTGINT,0);/// сдесь выводится значение регистров на дисплей
OLCD(UHINT ,1);
OLCD(UHCON,2);
OLCD(UPCONX ,3);
OLCD(UDCON ,4);
OLCD(UPINT ,5);
OLCD(UPINT,6);
OLCD(OTGTCON,7);
OLCD(UPINTX ,8);

display();
}




хотя бы для начала добиться сброса шины USB
}