|
Пытаясь запустить UsbHostLite для LPC2468 с nxp.com |
|
|
|
Aug 20 2009, 10:27
|
Участник

Группа: Участник
Сообщений: 57
Регистрация: 3-09-08
Пользователь №: 39 972

|
Всем привет! Работаю с стартер китом с lpc2468... В апноуте на UsbHostLite пишут что *Загрузите этот пример на нашу борду и наслаждайтесь?*... Но как он может заработать если там даже не настроены порты USB? Даже в USBClkCtrl какой то бред пытаються записать... Лопачу под себя Поставил 1ый порт хостом, и настроил по мануалу USBClkCtrl... USBClkCtrl = 0x0000001A; OTGStCtrl |= 0x00000003; Ноst_Init(); проходит... в самом конце разрешают прерывание для USB, VICIntEnable = (1 << 22)... Через небольшое время не зависимо от того вставлено что либо в разъем хоста(да и вообще в любой usb порт) или нет срабатывает это прерывание, но функция обработчик( Host_Isr() ) толком ничего не делает, т.к. Host_Isr спрашивает у HcInterruptStatus что там случилось, но там всегда одни нули... Далее в функции Host_EnumDev(), навечно заваливаюсь в while (!HOST_RhscIntr); HOST_RhscIntr должна изменяться в Host_Isr, но из-за вечной нулевости HcInterruptStatus этого никак не сделать... Также еще раз отмечу прерывание для Host_Isr вызываеться только один раз через некоторое время после VICIntEnable = (1 << 22), не зависимо от того вставлено что либо в хост или нет... Позже это прервывание не вызываеться вообще...
Может подсобите чем нибудь, я пока в ступоре...
|
|
|
|
|
 |
Ответов
|
Apr 26 2011, 09:47
|
Группа: Новичок
Сообщений: 1
Регистрация: 26-08-08
Пользователь №: 39 827

|
Доброго времени суток! Помогите решить проблему, я использую для LPC17xx USBHostLite, всё работает, но вот непонятно, почему скорость записи на USB флешку вариируется от 200 до 350 кБайт/сек, хотя комп пишет на неё со скоростью 3 МБайта/сек. Для контроля работы хоста дёргаю отдельной ножкой контроллера, и смотрю осциллографом. Наблюдается следующая картина: где-то после 7-10 пакетов (передача буферов по 4096 байт происходит по 8 мс) идёт очень длинное ожидание - около 120 мс. Т.е. ~7-мь пакетов без существенной задержки, потом задержка ~120 мс, и так далее. Вот код где я смотрю задержки на осциллографе: в функции Host_ProcessTD перед ожиданием ответа от флехи Host_WDHWait() дёргаю ножкой проца, и в функции MS_BulkSend на втором вызове функции Host_ProcessTD иногда происходит задержка ~100 мс. Как увеличить скорость и откуда такие задержки? CODE rt_int32_t MS_BulkSend ( rt_uint32_t block_number, volatile rt_uint8_t *user_buffer, rt_uint16_t num_blocks) { rt_int32_t rc;
Fill_MSCommand(block_number, MS_BlkSize, num_blocks, MS_DATA_DIR_OUT, SCSI_CMD_WRITE_10, 10);
rc = Host_ProcessTD(EDBulkOut, TD_OUT, TDBuffer, CBW_SIZE); if (rc == OK) { Host_DelayMS(20); rc = Host_ProcessTD(EDBulkOut, TD_OUT, user_buffer, MS_BlkSize * num_blocks); if (rc == OK) { rc = Host_ProcessTD(EDBulkIn, TD_IN, TDBuffer, CSW_SIZE); if (rc == OK) { if (TDBuffer[12] != 0) { rc = ERR_MS_CMD_FAILED; } } } } return (rc); }
rt_int32_t Host_ProcessTD (volatile HCED *ed, volatile rt_uint32_t token, volatile rt_uint8_t *buffer, rt_uint32_t buffer_len) { volatile rt_uint32_t td_toggle;
if (ed == EDCtrl) { if (token == TD_SETUP) { td_toggle = TD_TOGGLE_0; } else { td_toggle = TD_TOGGLE_1; } } else { td_toggle = 0; } TDHead->Control = (TD_ROUNDING | token | TD_DELAY_INT(0) | td_toggle | TD_CC); TDTail->Control = 0; TDHead->CurrBufPtr = (rt_uint32_t) buffer; TDTail->CurrBufPtr = 0; TDHead->Next = (rt_uint32_t) TDTail; TDTail->Next = 0; TDHead->BufEnd = (rt_uint32_t)(buffer + (buffer_len - 1)); TDTail->BufEnd = 0;
ed->HeadTd = (rt_uint32_t)TDHead | ((ed->HeadTd) & 0x00000002); ed->TailTd = (rt_uint32_t)TDTail; ed->Next = 0;
if (ed == EDCtrl) { LPC_USB->HcControlHeadED = (rt_uint32_t)ed; LPC_USB->HcCommandStatus = LPC_USB->HcCommandStatus | OR_CMD_STATUS_CLF; LPC_USB->HcControl = LPC_USB->HcControl | OR_CONTROL_CLE; } else { LPC_USB->HcBulkHeadED = (rt_uint32_t)ed; LPC_USB->HcCommandStatus = LPC_USB->HcCommandStatus | OR_CMD_STATUS_BLF; LPC_USB->HcControl = LPC_USB->HcControl | OR_CONTROL_BLE; }
if (DebugValue) LPC_GPIO0->FIOSET = 1<<11; else LPC_GPIO0->FIOCLR = 1<<11; DebugValue = !DebugValue; Host_WDHWait();
// if (!(TDHead->Control & 0xF0000000)) { if (!HOST_TDControlStatus) { return (OK); } else { return (ERR_TD_FAIL); } }
Сообщение отредактировал IgorKossak - Apr 26 2011, 09:50
Причина редактирования: [codebox] !!!
--------------------
ZeeXor
|
|
|
|
|
Sep 29 2011, 11:20
|
Участник

Группа: Свой
Сообщений: 65
Регистрация: 9-02-11
Из: Трехгорный
Пользователь №: 62 814

|
Приветствую! А у меня другая проблема. Объединил UsbHostLite с FATFS. Чтение проходит на ура. подключаю USB, монтирую диск, читаю список файлов, открываю файл и успешно читаю из него. Идет подвисание при попытке записи/удаления файла Зависает в функции MS_BulkSend на строчке Код rc = Host_ProcessTD(EDBulkOut, TD_OUT, user_buffer, MS_BlkSize * num_blocks); в режиме ожидания Host_WDHWait(); С чем может быть связан подобный висяк?
|
|
|
|
Сообщений в этой теме
Gizma Пытаясь запустить UsbHostLite для LPC2468 с nxp.com Aug 20 2009, 10:27 IgorMarx Цитата(Gizma @ Aug 20 2009, 14:27) HcInte... Aug 20 2009, 15:46 Gizma Цитата(IgorMarx @ Aug 20 2009, 19:46) А о... Aug 20 2009, 18:48  IgorMarx Gizma, вы понимаете, о чём речь? Внимательно прочи... Aug 20 2009, 20:10   Gizma Цитата(IgorMarx @ Aug 21 2009, 00:10) Giz... Aug 20 2009, 20:52 IgorMarx Понятно. Вообще-то у NXP исключительно плохая доку... Aug 21 2009, 05:57 Gizma Цитата(IgorMarx @ Aug 21 2009, 09:57) Пон... Aug 21 2009, 07:38 GetSmart Цитата(IgorMarx @ Aug 21 2009, 11:57) Пон... Aug 21 2009, 08:30  IgorMarx Цитата(GetSmart @ Aug 21 2009, 12:30) А м... Aug 24 2009, 05:49   GetSmart Цитата(IgorMarx @ Aug 24 2009, 11:49) Ну,... Aug 25 2009, 08:14 etoja Цитата(IgorMarx @ Aug 21 2009, 09:57) Воо... Sep 21 2009, 07:16 Gizma Отловил еще пару багов, совсем мелких, и теперь УР... Aug 21 2009, 09:31 GetSmart Цитата(Gizma @ Aug 21 2009, 15:31) fdr = ... Aug 21 2009, 09:40 esaulenka Гм. Простите, а кто-нибудь тут спецификацию OHCI ч... Aug 21 2009, 13:21 Gizma Цитата(esaulenka @ Aug 21 2009, 17:21) Гм... Aug 21 2009, 14:27 esaulenka Также хочется заметить, что
а) VICIntEnClr - ну с... Aug 21 2009, 16:11 Gizma Цитатаа) VICIntEnClr - ну совершенно НЕ "ena... Aug 21 2009, 18:02  aaarrr Цитата(Gizma @ Aug 21 2009, 22:02) ну тут... Aug 21 2009, 19:03  zltigo Цитата(Gizma @ Aug 21 2009, 20:02) Просто... Aug 21 2009, 19:12   aaarrr Цитата(zltigo @ Aug 21 2009, 23:12) Изред... Aug 21 2009, 19:21  shahr Цитата(Gizma @ Aug 21 2009, 22:02) ну тут... Aug 25 2009, 07:37 sergvks На какую скорость обмена с usb-носителями можно ра... Sep 1 2009, 18:19 goodwin LPC1758, 48Мгц,чтение - 215 кб/сек.
Подправил ... Sep 18 2009, 18:17 goodwin С FAT_FS от Чена скорость чтения ~ 700 кб/сек (FAT... Sep 19 2009, 10:26 alevnew У меня USBHoslLite заработал сразу, как и написано... Oct 23 2009, 05:49 argentum Здравствуйте. Подскажите пожалуйста. Работаю с lpc... Nov 9 2009, 08:19 alevnew Цитата(argentum @ Nov 9 2009, 14:19) Здра... Nov 9 2009, 08:59  argentum Цитата(alevnew @ Nov 9 2009, 11:59) Vbus ... Nov 9 2009, 11:15 miv Я использовал пример HostLite для портирования его... Nov 11 2009, 08:39 HARMHARM Дабы не плодить новые темы спрошу здесь.
Зачем воо... Nov 25 2010, 23:22 DpInRock Эти сигналы можно использовать. Но самое главное -... Nov 26 2010, 02:07 Дмитриос Может быть зря поднимаю тему. Но у меня также проб... Apr 10 2011, 16:48 yarunt Цитата(Дмитриос @ Apr 10 2011, 20:48) .
... Apr 12 2011, 10:27 yurmala Я вообщем в тупике. Не пойму куда смотреть.
чтение... Sep 30 2011, 07:06 yurmala Товарищи дорогие! Прошу помощи. Так и не могу ... Oct 3 2011, 09:11 Olga83 Хм, у меня полностью аналогичная ситуация. Как то ... Apr 23 2012, 10:37 yurmala Тут есть полезная информация:
http://www.keil.com/... Nov 6 2012, 04:10 SyncLair Цитата(yurmala @ Nov 6 2012, 08:10) Тут е... Nov 6 2012, 18:42 yurmala SyncLair, я уже разобрался. Потому и дал полезную ... Nov 7 2012, 07:29 SyncLair Цитата(yurmala @ Nov 7 2012, 11:29) Поэто... Nov 7 2012, 12:52 GetSmart Убил пару дней на поиск грабли в стоге сена NXP US... Jul 29 2014, 23:33
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|