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

 
 
> 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
Ответов
Des V. Maryin
сообщение Mar 10 2009, 17:42
Сообщение #2





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



Проблема решена, дело было в незапущенном OTG клоке в OTGClkCtrl. Прерывание приходит, буду разбираться дальше. Отдельное спасибо meister за наводку.
Go to the top of the page
 
+Quote Post



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

 


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


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