Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы

AT90USB647 не приходит SETUP пакет

Непрочитано 06.06.2015, 01:12  
Эдуард1978
Частый гость
 
Регистрация: 04.09.2014
Сообщений: 23
Сказал спасибо: 10
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Эдуард1978 на пути к лучшему
По умолчанию AT90USB647 не приходит SETUP пакет

После включения USB интерфейса на микроконтроллере AT90USB647 и при повторном конфигурировании контрольной точки по сбросу шины , не приходит пакет SETUP то есть в регистре UEINTX не устанавливается бит RXSTPI вот фрагмент кода :

в чем ошибка инициализации ?
==========================================

void InitUSB ()// функция ключения модуля usb
{
UHWCON =(1‹‹UIMOD)|(1‹‹UVREGE);//выбор режима устройство и вкл стабилизатор напряжения
PLLCSR=0x16;
while ((PLLCSR & 1)==0);


USBCON=(1‹‹USBE)|(1‹‹OTGPADE);// вкл модуль юсб

USBCON&=~((1‹‹HOST)|(1‹‹FRZCLK));// режим устройсво синхроницация вкл



// выбираем 0 конечную точку
UENUM=0;
// Device endpoint registers initialization
// Endpoint 0: On
UECONX=0x01;// установили EPEN в 1

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;// ; запитано юсб
USB_device_status=1;//, BANKED
USB_dev_req=NO_REQUEST;//, BANKED ; No device requests in process


}

void USBReset ()//функция настройки модуля usb по сбросу на шине
{


UDADDR = 0;
USB_address_pending=0;
UHWCON =(1‹‹UIMOD)|(1‹‹UVREGE);
USBCON=(1‹‹USBE)|(1‹‹OTGPADE);

USBCON&=~((1‹‹HOST)|(1‹‹FRZCLK));

// USBCON=(1‹‹USBE)|(1‹‹OTGPADE);

//UDINT=0;
// UDIEN=0;

// выбираем 0 конечную точку
UENUM=0;
// Device endpoint registers initialization
// Endpoint 0: On
//UECONX=0x00;
UECONX=0x01; //// установили EPEN в 1
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_device_status=1;
USB_USWSTAT=DEFAULT_STATE;




}
Реклама:

Последний раз редактировалось Эдуард1978; 07.06.2015 в 16:16.
Эдуард1978 вне форума  
Непрочитано 09.06.2015, 11:04  
Эдуард1978
Частый гость
 
Регистрация: 04.09.2014
Сообщений: 23
Сказал спасибо: 10
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Эдуард1978 на пути к лучшему
По умолчанию Re: AT90USB647 не приходит SETUP пакет

Ура все заработало !!!! Вот исправленный код.

void InitUSB ()
{
//UHWCON =(1‹‹UVREGE)|(1‹‹UIDE)|(1‹‹UIMOD);

UHWCON = (1‹‹UIMOD) | (1‹‹UVREGE); // это надо если нужно включить регулятор напряжения для USB модуля

// UDINT=0;
_delay_ms(15);

PLLCSR = (1‹‹PLLP2) | (1‹‹PLLP1) |(0‹‹PLLP0)| (1‹‹PLLE);
while ((PLLCSR & 1)==0);

USBCON = (1‹‹USBE) | (1‹‹VBUSTE)| (1‹‹OTGPADE) ;
USBCON&=~((1‹‹HOST)|(1‹‹FRZCLK));
UDINT=0;

// 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

UDINT=0;

}

void USBReset ()
{


UDADDR = 0;
USB_address_pending=0;

USBCON = (1‹‹USBE) | (1‹‹VBUSTE)|(1‹‹OTGPADE) ;;
USBCON&=~((1‹‹HOST)|(1‹‹FRZCLK));

UDINT=0;

// 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));

index1=0;
USB_curr_config=0;
USB_device_status=1;
USB_USWSTAT=DEFAULT_STATE;

UDINT=0;
PORTB|=(1‹‹5);
}
Эдуард1978 вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Diptrace - пакет программ для разработки печатных плат alder Proteus, KiCAD и другие ECAD 4562 23.07.2026 10:22
из DVD в DVD-player реально? Altalimir Микроконтроллеры, АЦП, память и т.д 14 17.09.2007 21:21


Часовой пояс GMT +4, время: 03:29.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.