Эдуард1978 (21.06.2015 23:43, просмотров: 223) ответил Ксения на Так это опять вы? :)
Так точно я опять!Хочу с помощью этой микрухи считывать значения с флешки вот и приходится использовать в качестве ХОСТА .Спасибо за совет вот мой вариант инициализации дальше пока на стадии разработки))) void inytHost()
{
UHWCON = (1<<UIDE) | (1<<UVREGE); // это надо если нужно включить регулятор напряжения для USB модуля
_delay_ms(15);
PLLCSR |= (1<<PLLP2) | (1<<PLLP1) |(0<<PLLP0)| (1<<PLLE);
while ((PLLCSR & 1)==0);
USBCON = (1<<USBE) |(1<<OTGPADE) |(1<<HOST); выбираем режим Хост
USBCON&=~(1<<FRZCLK);
USBCON |= (1<<HOST);
//UHWCON |= (1<<UVCONE); эти биты упраляют линие Vbus но эти две команды в теле основной программы
//OTGCON=0x02;
PORTE|=(1<<7);
UPNUM=0;
// Device endpoint registers initialization
// Endpoint 0: On
//UECONX=0x00;
UPCONX|=0x01;
UPCFG0X|=0x00;
// Endpoint X size: 8
// Endpoint X Banks: 1
//ALLOC ON
UPCFG1X|=0x30;
UPCFG1X|=(1<<ALLOC);
while(!(UPSTAX&(1<<CFGOK)));// ЕСЛИ ВСЕ корректоно то ок . у меня вроде ок
UDCON&=~((1<<LSM)|(1<<DETACH)); ПОДКЛЮЧАЕМ ВЫВОДЫ , НО НЕЗНАЮ КОРРЕКТОНО ИЛИ НЕТ????
}
int main (void)
{
CLKPR=0x80;
CLKPR=0x00;
DDRB=0x20;
PORTC=0x00;
DDRC=0xff;
DDRE|=(1<<7);
PORTD=0x00;
DDRD=0xFF;
inyt(); ИНИЦИАЛИЗАЦИЯ ГРАФИЧЕСКОГО ДИСПЛЕЯ wg12864a
inytHost();
UHWCON |= (1<<UVCONE);
OTGCON=0x02; ПОДАЕМ ПИТАНИЕ НА Vbus Если обнаруживается подключение device-интерфейса (подтяжка к плюсу питания на линии DP или DM) в течение 300 мс после подачи Vbus, флаг DCONNI перейдет в высокое состояние. Если же после установки бита VBUSREQ в течение 300 мс не будет обнаружен device-интерфейс, будет выполнена установка флага (и сгенерировано прерывание) BCERRI и приостановлена подача Vbus (UVCON равен 0).
OLCD(UHWCON,0);выовд значение регистров
OLCD(OTGCON,1);
OLCD(USBSTA,2);
OLCD(USBINT,3);
OLCD( UHINT ,4);
OLCD(USBCON,5);
OLCD(UPCFG0X,6);
OLCD(UPSTAX,7);
display();
}
}
вообщем пока на этом уровне