реклама на сайте
подробности

 
 
> USB Host LPC2387, как проинициализировать
Wano
сообщение Mar 14 2011, 11:15
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 272
Регистрация: 3-06-06
Пользователь №: 17 737



День добрый.
Может кто подскажет по настройке первого USB порта как Host.
Ноги настроил так:
P0.29 - USB_D+
P0.30 - USB_D-

P1.18 - USB_UP_LED
P1.19 - USB_PPWR1 - подача питания на USB
P1.22 - USB_PWRD1 - состояние питания
P1.27 - USB_OVRCR1 - перегрузка питания, режим вывода без подтягивающих резисторов

в остальном как по примеру NXP

CODE
PCONP |= 0x80000000;
VICIntEnClr = (1 << 22); /* Enable the USB interrupt source */
VICSoftIntClr = (1 << 22);


OTG_CLK_CTRL|= 0x01;
while(OTG_CLK_STAT != 0x01);
pinsel = HC_REVISION;

/* P0[29] = USB_D+1 */
/* P0[30] = USB_D-1 */
PINSEL1&=0xC3FFFFFF;
PINSEL1|=0x14000000;

/* P1[18] = USB_UP_LED1 01 */
/* P1[19] = USB_PPWR1 10 */
/* P1[22] = USB_PWRD1 10 */
/* P1[27] = USB_OVRCR1 10 */
PINSEL3&=0xFF3FCF0F;
PINSEL3|=0x00802090;
PINMODE3|=0x00800000;

Hcca = (volatile HCCA *)0x7FD00000;
TDHead = (volatile HCTD *)0x7FD00100;
TDTail = (volatile HCTD *)0x7FD00110;
EDCtrl = (volatile HCED *)0x7FD00120;
EDBulkIn = (volatile HCED *)0x7FD00130;
EDBulkOut = (volatile HCED *)0x7FD00140;
TDBuffer = (volatile USB_INT08U *)0x7FD00150;
FATBuffer = (volatile USB_INT08U *)0x7FD001D0;
/* Initialize all the TDs, EDs and HCCA to 0 */
Host_EDInit(EDCtrl);
Host_EDInit(EDBulkIn);
Host_EDInit(EDBulkOut);
Host_TDInit(TDHead);
Host_TDInit(TDTail);
Host_HCCAInit(Hcca);


Host_DelayMS(50); /* Wait 50 ms before apply reset */
HcControl = 0; /* HARDWARE RESET */
HcControlHeadED = 0; /* Initialize Control list head to Zero */
HcBulkHeadED = 0; /* Initialize Bulk list head to Zero */

/* SOFTWARE RESET */
HcCommandStatus = OR_CMD_STATUS_HCR;
HcFmInterval = DEFAULT_FMINTERVAL; /* Write Fm Interval and Largest Data Packet Counter */

/* Put HC in operational state */
HcControl = (HcControl & (~OR_CONTROL_HCFS)) | OR_CONTROL_HC_OPER;
HcRhStatus = OR_RH_STATUS_LPSC;/* Set Global Power */

HcHCCA = (USB_INT32U)Hcca;
HcInterruptStatus |= HcInterruptStatus;/* Clear Interrrupt Status */
/* Enable interrupts */
HcInterruptEnable = OR_INTR_ENABLE_MIE |
OR_INTR_ENABLE_WDH |
OR_INTR_ENABLE_RHSC;

VICIntSelect &= ~(1 << 22); /* Configure the ISR handler */
VICVectPriority22 = 2;
VICVectAddr22 = (USB_INT32U)Host_Isr; /* Set the vector address */
VICIntEnable = (1 << 22); /* Enable the USB interrupt source */


После прохождения HcRhStatus = OR_RH_STATUS_LPSC; никаких признаков жизни на ножках будто порт вообще не подключен.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 15:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01345 секунд с 7
ELECTRONIX ©2004-2016