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

 
 
> LPC2388 USB host -- отсутствие OTG регистров
Des V. Maryin
сообщение Mar 9 2009, 16:49
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 3-02-09
Пользователь №: 44 352



Пробую запустить USB host на LPC2388, доска SK-MLPC2388 от starterkit.ru, схема здесь: http://www.starterkit.ru/doc/SK_MLPC2378_88.pdf
разъем USB host подключен к первому каналу USB (p0.29, p0.30). Для начала пробую адаптировать под эту плату код Usbhost.Lite от NXP
Использую CrossStudio с отлажчиком MT-Link.
После инициализации хоста, при вставлении флешки в разъем не приходит прерывание. Программный вызов прерывания ( VICSoftInt = (1<<22); ) приводит к вызову обработчика, отсюда делаю вывод что прерывания сконфигурированны правильно.

При более пристальном изучении кода инициализации хоста пришел к выводу что в нем не хватает такого куска:

#define PORT_FUNC_U1DEV_U2HST 0
#define PORT_FUNC_U1HST_U2HST 1
#define PORT_FUNC_RESERVED 2
#define PORT_FUNC_U1HST_U2DEV 3
OTGStCtrl = ( PORT_FUNC_U1HST_U2DEV << OTGStCtrl_PORT_FUNC_BIT );

так как в спецификации на LPC23xx упоминается, что OTG контроллер перед использованием необходимо сконфигурировать, дабы он понял, что порт 1 ( в моем случае ) будет использоваться в режиме хоста.

проблема собственно в том, что при выполнении этой строчки кода я вылетаю в Data Abort.
в LPC2388.h OTGStCtrl определен так:
#define OTGStCtrl (*(volatile unsigned *)0xFFE0C110)
и это полностью совпадает с LPC23xx User Manual
при попытке просмотреть под отладчиком содержимое памяти по этому адресу вижу 0xAAAAAAAA, что наводит на мысли о том, что отладчик тоже не справляется с чтением этого региона. (все адреса, начиная с FFE0C100, задефайненного (правда в кейловских хедерах, но думаю это не принципиально) как USBOTG_BASE_ADDR читаются как 0xAAAAAAAA )

Подскажите, уважаемые коллеги, в какую сторону копать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Androliz
сообщение Mar 11 2009, 18:41
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 34
Регистрация: 22-09-06
Из: Беларусь
Пользователь №: 20 595



Занимаюсь сейчас примерно той же задачей: LPC2388 + USBHost.Lite. Но плата у меня конкретного устройства, без поддержки OTG. Host stack запустился с первого раза. И файлы читал/писал. Дальше стал вопрос создания директорий. Выбрал tiny-FatFs и быстренько "прикрутил" её к hoststack'у. Пока работает.
Пока это делал столкнулся с проблемой многократного подключения-отключения флешки: при втором включении на этапе инициализации mass storage class (MS_init -> MS_TestUnitReady) не приходит прерывание и процессор зависает в цикле его ожидания. Поскольку планируется подключение только одной флешки зараз, то решил эту проблему полной реинициализацией HostStack'а после каждого отключения флешки. Хотя думаю это не оптимальное решение и хотелось сделать это более элегантно.
Go to the top of the page
 
+Quote Post



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

 


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


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