miv
Участник-
Постов
40 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о miv
-
Звание
Участник
- День рождения 10.08.1960
Контакты
-
ICQ
Array
Информация
-
Город
Array
-
PLCKSEL и до работают ;) Для новых чипов.
-
DMA у LPC17xx к любому RAM и кроме того ко всей FLASH не считая переферии. А вот Ether и USB по DMA могут юзать тольк верхнюю RAM c адреса 0x20000000 ( вроде так )
-
Вообще-то в LPC23xx это всё работает правильно, у IAR есть пример передачи из SSP0 в SSP1 по loopback, с использованием DMA и тот канал DMA который работает с SSP на приём настроен на работу под управлением SSP и всё стреляет. Для этого в регистре конфигурации канала DMA надо поставить режим передачи " Переферия-Память ( под управлением переферии )"
-
Что за ядро-то ??? ARM или Cortex ? Вообще-то в любом случае надо StartUp ковырять ;)
-
Проблема в следующем.. Настраиваю канал на работу с SSP0 на приём. Как только разрешаю SSP работать по DMA так моментально принимаю заданное число байт при этом синхрухи на SSP нету. SSP работает как мастер на шине, выдачи в SSP не запущено. Такое чувство что DMA сам себе генерит запросы на чтение регистра данных SSP. В конфигурации канала в поле TransferType уставновлено "010" и там в таблице в коментариях написано что в этом режиме канал управляется DMA контроллером. Режима под управлением переферии, как у LPC23xx, в LPC17xx нет, но в пдф-ке в таблице 567 сказано что генерит запросы к каналу в режиме в котором идёт работа с переферией, сама переферия. Но похоже этого не происходит. Мож кто сталкивался. Кто что посоветует ???
-
При попытке програмировать стек USB HOST на этом контроллере никак не могу получить прерывания по событию подключения устройства MS FullSpeed к USB порту, т.е в регистре HcRhPortStatus ( по спецификации OHCI ) не взводится бит CCS ( CurrentConnectStatus ). При подключении устройства оба сигнала D+ и D- находятся в соостянии определённом спецификацией USB 2.0 ( D+ - Hight Level, D- Low Level ) При этом питание на порт подано, бит PPS ( PortPowerStatus ) в в регистре HcRhPortStatus установлен, и по установке этого бита вырабатывается прерывание. Код написан на С++ и удачно протестирован на контроллере LPC2387. После чего он был портирован на LPC1768. Портирование кода в основном заключалось в небольшом изменении обработчиков прерываний поскольку в ARM7-TDMI ( LPC2387 ) и в Cortex-M3 ( LPC1768 ) они разные в ARM - это VIC а в Cortex - это NVIC. Кто что может подсказать, мож я про какие-то ерраты не знаю ???
-
Если Вы тормозите программу после исполнения while так оно и д.б. Поскольку sw_size равно len, то free == 0 а следовательно при первом же while( free-- ) тело while испонятся не будет а free сразу после выхода free будет == -1 поскольку он int типа. Так устроен язык С а с циклом for тело его тоже выполнятся не будет но free не станет -1 и даже i не станет 1. ;)
-
Хочется прогу прописать так что бы сама определяла на каком проце работает. Сейчас она бежит на LPC2368, а вдальнейшем будет бегать на LPC1768, но в переходном периоде возможны поставки как 2368 так и 1768. в 23хх серии IAP_LOCATION == 0x7FFFFFF1 ( проверено на железе ), а в 17хх серии ( по докеументам ) IAP_LOCATION 0x7FFF1FF1. Так вот собсно вопрос это правда ?? :crying: Если ДА то не понятно зачем NXP-шники в 17хх серии перенесли точку входа :smile3009: ?? Или может опечатка в пдфнике :cranky: ???
-
Я использовал пример HostLite для портирования его на проц LPC2387. Рекомендую свзять пример HostLite для lpc17xx там ошибок меньше :)) Сам мучался с примером для lpc23xx, потом взял для lpc17xx там ошибок меньше, но есть разница. Например USB в lpc2387 работает с памятью начиная с адреса 0x7FD00000 а lpc17xx с любой вроде.
-
На сайте www.usb.org сам вот мучаюсь с LPS2387 Host для Mass Storage, ну не хочет OHCI у него при Resume Detect переходить в состояние RESUME. Хотя то что к нему что-то поключено он определяет и в прерывание попадает с флажком RD ( Resume Detected ) плюс в PortStatus взведён флаг Connect Detected :(
-
Вопрос снят! Но появилось ещё куча :))
-
Кто-нибудь прописывал стек Usb Host для LPC2387 ?
miv опубликовал тема в RS232/LPT/USB/PCMCIA/FireWire
Никак не пойму как заставить OHCI выдавать прерывание в момент подтыкания в USB девайса ! На шине вроде правильная реакция D+ подымается а D- у земли т.е. подтыкается Full Speed Device. Но вот прерывание никак не получить. И вообще не пойму как определить момент подтыкания девайса ? Не полингом же ? :) -
Перешёл на цельно тянутую IAR ARM 5.30 Eval а он ни в какую не хочет заменять в либе функции ввода-вывода низкого уровня. Типа __write и MyLowLevelPutchar. Вот и не пойму то-ли не докрячен то-ли в IAR глюк. Кто-нибудь подскажет ? P.S. А может и я сам чот не то делаю, хотя вряд-ли, в 5.11 всё работало.