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

 
 
> USB на u-Boot для LPC1788
Novichok1
сообщение Mar 5 2012, 13:13
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 73
Регистрация: 8-07-09
Пользователь №: 51 032



Здравствуйте!

Сделали свою плату на базе процессора LPC1788. Стоит задача поставить туда uCLinux, для этого сперва поставили туда u-boot (http://www.lpcware.com/content/project/lpc177x8x-u-boot-port). Все вроде нормально, консоль и внешняя SDRAM проинициализированы, но возникли проблемы с USB. Использую USBHostLite (отсюда: http://sw.lpcware.com/). В исходниках говориться, что он прошел тестирование на LPC1788. Но у меня почему-то не работает, различие только в распиновке - у меня на USB используются только две ноги: USB_D1+ и USB_D1-. Но я это учел в инициализации ног. Так вот, после инициализации мы входим в прерывание USB_IRQHandler, но в регистре LPC_USB->RhPortStatus1 не поднят бит подключения устройства (CurrentConnectStatus), а взведен только бит PortPowerStatus. Надо отметить, что резет я делаю со вставленной флэшкой. Так что я уже не знаю как завести USB и куда еще можно посмотреть.

Заранее спасибо за любую помощь!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 13)
skripach
сообщение Mar 5 2012, 13:48
Сообщение #2


■ ■ ■ ■
*****

Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443



Цитата
различие только в распиновке - у меня на USB используются только две ноги: USB_D1+ и USB_D1-. Но я это учел в инициализации ног.

USBPortSel - 0x2008 C110 и OTGStCtrl - 0x2008 C110 правильно настроили?


--------------------
Делай что должен и будь что будет.
Go to the top of the page
 
+Quote Post
Novichok1
сообщение Mar 6 2012, 05:45
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 73
Регистрация: 8-07-09
Пользователь №: 51 032



Спасибо за ответ!
Эти регистры вроде настроены правильно:

Код
    // Enable USB host clock, OTG clock & AHB master clock
    uint32 ctrl = ((1 << 0) | (1 << 3) | (1 << 4));
    LPC_USB->OTGClkCtrl   = ctrl;
    while ((LPC_USB->OTGClkSt & ctrl) != ctrl);

    // 01: U1 = host (OTG), U2 = host
    LPC_USB->StCtrl = 0x1;


Регистры OTGStCtrl и USBPortSel располжены по одному адресу 0x2008 C110. Для USB хоста использую USB1, второй канал USB не используется.
Go to the top of the page
 
+Quote Post
Novichok1
сообщение Mar 12 2012, 04:46
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 73
Регистрация: 8-07-09
Пользователь №: 51 032



Все, заработало! Дело было в неправильной документации на LPC1788, если честно, то я первый раз столкнулся с ошибками в документации на микроконтроллер. Так вот, есть два типа частот, это Fcco и pll_out_clk:

Цитата
pll_in_clk - the frequency of the input to the PLL
FCCO - the frequency of the PLL current controlled oscillator
pll_out_clk - the PLL output frequency
M - PLL Multiplier value from the MSEL bits in the PLLCFG register
P - PLL Divider value from the PSEL bits in the PLLCFG register

The PLL output frequency (when the PLL is active and locked) is given by:
pll_out_clk = M * pll_in_clk - or - pll_out_clk = FCCO / (2 * P)
The CCO frequency can be computed as:
FCCO = pll_out_clk * 2 * P - or - FCCO = pll_in_clk * M * 2 * P

The PLL inputs and settings must meet the following criteria:
• M is in the range of 1 to 32.
• P is one of 1, 2, 4, 8.
• pll_in_clk is in the range of 10 MHz to 25 MHz.
• FCCO is in the range of 156 MHz to 320 MHz.
• pll_out_clk is in the range of 9.75 MHz to 160 MHz.


И из документации видно, что источником частоты является Fcco и что делителем частоты могут быть только числа 0, 4 и 6 (USBCLKSEL - address 0x400F C108, поле USBDIV):
Цитата
0 The divider is turned off., no clock will be provided to the USB subsystem.
4 PLL0 output is divided by 4. PLL0 output must be 192 MHz.
6 PLL0 output is divided by 6. PLL0 output must be 288 MHz.
Others Other values cannot produce the 48 MHz clock required for USB operation.


Но по факту, источником частоты для USB является pll_out_clk, и тогда при частоте pll_out_clk = 96 MH USBDIV = 2.
Go to the top of the page
 
+Quote Post
andrewlekar
сообщение Mar 20 2012, 06:04
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163



Цитата(Novichok1 @ Mar 12 2012, 09:46) *
Все, заработало! Дело было в неправильной документации на LPC1788

Немного оффтоп, но у нас в проекте тоже заложен LPC1788 и хочется туда закинуть ucLinux. У вас уже получилось это сделать? Какие минимальные требования по объему ОЗУ/ПЗУ?
Я так понимаю, что цепочка следующая: во внутреннюю флэш LPC1788 грузится U-Boot и больше оттуда никуда не уходит. При запуске инициализирует SDRAM и внешнюю флэш. Затем перекидывает ucLinux из флэша (если он там есть) в ОЗУ и передает туда управление.
Реально ли поместить ucLinux в 2 Мегабайта внешней SPI Flash, хватит ли 16 Мегабайт ОЗУ для работы?
Go to the top of the page
 
+Quote Post
Novichok1
сообщение Mar 20 2012, 07:00
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 73
Регистрация: 8-07-09
Пользователь №: 51 032



Да, цепочка загрузки такая, только в зависимости от настроек сам u-boot может загружаться либо с внутренней памяти, либо с внешней RAM. У нас пока проблемы с NAND памятью, так что uCLinux пока не загружали. Но тот образ, который у нас есть весит около 1,2 MB, так что думаю, 2 метров должно хватить, но учтите, что если вы хотите услилть свой образ, то он может разрастись. По форумам пишут, что оперативки должно быть минимум 2-4 метра.
Go to the top of the page
 
+Quote Post
andrewlekar
сообщение Mar 20 2012, 07:51
Сообщение #7


Знающий
****

Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163



Да, решили на всякий случай заложить флэшку на 64 мбит (M25P64) и ОЗУ поставить потолще (MT48LC16M16) на 256 мбит. Стартовать будет наверное неспешно, но зато памяти с запасом.
У емкрафта вы BSP покупали или нашли на просторах инета халявный? Когда у нас плата будет готова, я думаю можно будет пообщаться по успехам/проблемам в освоении железячки.
Go to the top of the page
 
+Quote Post
Novichok1
сообщение Mar 20 2012, 08:19
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 73
Регистрация: 8-07-09
Пользователь №: 51 032



Ну помойму флэшки все-таки побольше надо, мало ли что там сохранять захотите, и какие фичи захотите включить в образ линукса. У нас и NAND и SDRAM по 32 MByte.

BSP купили - техподдержка не помешает, тем более это наши российские ребята) И цена нормальная. А пообщаться по успехам/проблемам буду рад, контактная инфа у меня вроде открыта. Можете глянуть на топик:Problem with NAND, может сможете помочь)

А, говорят грузиться должен 3-5 секунд.

Сообщение отредактировал Novichok1 - Mar 20 2012, 08:20
Go to the top of the page
 
+Quote Post
andrewlekar
сообщение Mar 20 2012, 08:26
Сообщение #9


Знающий
****

Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163



Про нанд ничего не могу сказать... BSP может и купим, если не найдем чего-нибудь готового.
Go to the top of the page
 
+Quote Post
Novichok1
сообщение Mar 20 2012, 09:03
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 73
Регистрация: 8-07-09
Пользователь №: 51 032



Они откроют его через полторы недели (when-will-uclinux-be-ready-lpc1788)
Go to the top of the page
 
+Quote Post
andrewlekar
сообщение Mar 20 2012, 09:17
Сообщение #11


Знающий
****

Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163



Отличная новость. Сэкономим 100 баксов sm.gif
Go to the top of the page
 
+Quote Post
PoReX
сообщение Mar 22 2012, 07:04
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 112
Регистрация: 1-05-09
Из: Ростов-на-Дону
Пользователь №: 48 518



Цитата(Novichok1 @ Mar 20 2012, 12:03) *
Они откроют его через полторы недели (when-will-uclinux-be-ready-lpc1788)

Вы думаете они выложат исходники в открытый доступ? Напрасно. Это их хлеб, где еще можно найти uClinux под Cortex-m3 кроме как у них?
Получилось запустить uClinux на LPC?

Сообщение отредактировал PoReX - Mar 22 2012, 07:05


--------------------
«У современных мобильных телефонов такая же вычислительная мощь, что и у компьютеров NASA в 60-е годы. И в то время этого хватало, чтобы запустить человека в космос, а сегодня — только чтобы запускать птиц в свиней.»
Go to the top of the page
 
+Quote Post
Novichok1
сообщение Mar 22 2012, 08:30
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 73
Регистрация: 8-07-09
Пользователь №: 51 032



Цитата
For those willing to wait, we've agreed with NXP to
post all of our work for free on this site starting
March 31.


Пока нет, у меня NAND пока не работает.
Go to the top of the page
 
+Quote Post
PoReX
сообщение Mar 22 2012, 09:48
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 112
Регистрация: 1-05-09
Из: Ростов-на-Дону
Пользователь №: 48 518



Не заметил эту высказывание. Выглядит заманчиво, видать NXP им приплатили, но посмотрим, сдержат ли обещания. Вот бы для STM uClinux также выложили)))


--------------------
«У современных мобильных телефонов такая же вычислительная мощь, что и у компьютеров NASA в 60-е годы. И в то время этого хватало, чтобы запустить человека в космос, а сегодня — только чтобы запускать птиц в свиней.»
Go to the top of the page
 
+Quote Post

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

 


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


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