Эдуард1978 (25.06.2015 15:32 - 08.07.2015 00:23, просмотров: 199) ответил MBedder на Достаточно не менять местами, а просто закомментить строку с DISABLED
Привет! После инициализации хоста пытаюсь осуществить сброс шины UHCON|=(1<<RESET); но при этом нечего происходит т е подключенное USB устройство не сбрасывается , хотя если искуственно сигальные линии коротить на корпус имитируя сброс шины подключенные устройства сбрасываются т.е. не получается программно сбросить шину . Может быть еще какие биты надо уставить
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<<LSM)|(1<<DETACH));
USBCON = (1<<USBE) |(1<<OTGPADE) |(1<<HOST);
USBCON&=~(1<<FRZCLK);
USBCON |= (1<<HOST);
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)));// Endpoint X configuration: Control, OUT
//UDCON&=~((1<<LSM)|(1<<DETACH));
OTGCON=0x04; отключение аппаратного подачи питания на шину
PORTE|=(1<<7); подача питания на шину
for(;;){
UHCON|=(1<<RESET); сброс шины
}
вообщем сброс удался и стандартные запросы тож удалось отправить ошибка была в неправильной подачи напряжения на шину и разрешения работы шины