Итак...
Даже пока не касаясь всяких передач в EP0, девайс же должен определиться хоть как что-то неопознанное и подключенное, если
Код
PCONP |= 0x80000000; /* Turn On USB Power CLK */
PINMODE3 |= 0x30000000; // VBUS pull-down
OTG_CLK_CTRL = 0x1A;
while ((OTG_CLK_STAT & 0x1A) != 0x1A);
OTG_STAT_CTRL=3; //3-U2,0-U1
/* P2.9 is USB1 SoftConnect, P1.18 is GoodLink, P0.29 is USB1_D+,
P0.30 is USB1_D-. PINSEL1 bit 26~27 0x01, bit 28~29 0x01.
PINSEL3 bit 4~5 0x01. PINSEL4, bit 18~19 0x01. */
PINSEL1 &= ~0xC0000000;
PINSEL1 |= 0x40000000;
/* P1.30 is VBus, for testing purpose, I will try both VBus enable and
GPIO for polling. P1.30, PINSEL3 28~29, 0x10. It should not make any difference
on the Keil MCB2300 board. */
PINSEL3 &= ~0x30000000;
PINSEL3 |= 0x20000000; // (~Overcount) USB2 off by ?
/* SoftConnect is GPIO*/
FIO0DIR |= (1 << 14);
FIO0SET = 1 << 14;
PINMODE3 |= 0x30000000; // VBUS pull-down
OTG_CLK_CTRL = 0x1A;
while ((OTG_CLK_STAT & 0x1A) != 0x1A);
OTG_STAT_CTRL=3; //3-U2,0-U1
/* P2.9 is USB1 SoftConnect, P1.18 is GoodLink, P0.29 is USB1_D+,
P0.30 is USB1_D-. PINSEL1 bit 26~27 0x01, bit 28~29 0x01.
PINSEL3 bit 4~5 0x01. PINSEL4, bit 18~19 0x01. */
PINSEL1 &= ~0xC0000000;
PINSEL1 |= 0x40000000;
/* P1.30 is VBus, for testing purpose, I will try both VBus enable and
GPIO for polling. P1.30, PINSEL3 28~29, 0x10. It should not make any difference
on the Keil MCB2300 board. */
PINSEL3 &= ~0x30000000;
PINSEL3 |= 0x20000000; // (~Overcount) USB2 off by ?
/* SoftConnect is GPIO*/
FIO0DIR |= (1 << 14);
FIO0SET = 1 << 14;
то есть даже фиг с ней с power на USB, последние две строки включают "паттяшко", хост должен по спецификации определить устройство на шине... пусть и неопознанное (если у меня что-то не работает). Гружу в проц проект VirtualCOM - все гуд, т.е. транзистор на pullup живой.
Убодался, помогите, товарищи