Перейти к содержанию
    

Polaris

Свой
  • Постов

    299
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные Polaris


  1. Доброго дня всем!

     

    Пытаюсь прикрутить LPCUSBlib к проекту с LPC4088. В отзывах и документации ничего по поводу не нахожу, вроде бы собрал библиотеку, выяснил, что она использует свою интерпретацию CMSIS, у меня с официального сайта какая-то другая, вырезал и переписал в ней куски, на которые ругался компилятор. Сменил порт с USB1 на USB2 (разработчик подбросил задачу), запустил - не работает. Запускается, но никаких прерываний по вставлению-выниманию устройства нет, есть одно прерывание сразу после запуска проекта, потом глухо. Думал, что проблема какая-то на уровне железа, взял из CMSIS проект USBHostLite, адаптировал с теми же настройками - заработало. Но хотелось бы иметь более взрослую и независимую библиотеку, так как возможно подключение не только MassStorage, но и принтера, CDC. Все-таки в LPCUSBlib это уже реализовано.

    Хотелось бы спросить, понимаю, что LPC4088 редкий зверь (опять же отдельное спасибо разработчику за выбор), но, возможно, кто-то имел дело с адаптацией библиотеки хотя бы под LPC1788. Есть ли там какие-то подводные камни, почему не вызываются прерывания? Вроде бы пробежался по коду, инициализация регистров вполне соответствует USBHostLite. На что еще следует обратить внимание?

    Как-то в документации к LPC4088 вообще очень скудно все описано, а в CMSIS вообще ошибка присутствует с запуском тактового генератора USB.

     

    Был бы рад хотя бы какому-то направлению поиска, уже всю голову себе сломал.

     

    Спасибо!

  2. Во-первых: изначально Вы говорили про разработку нового устройства:

    Зачем тогда совета просите?

    Ситуация изменилась после изучения документации. Ведь теоретически все это можно заставить работать и на этой платформе, так что изменить ее вряд ли уже разрешат, так что пространство по маневру стало очень ограниченным.

  3. Я вообще-то Вам советовал не код, а объёмные данные из внешней параллельной флешь перенести в SDRAM, чтобы не переключать параллельную шину. На старте грузить SDRAM из SPI-flash.

    Это другой вопрос. А нужно ли там переключение шины вообще - вот что меня на данный момент беспокоит.

  4. Если у вас свой бутлоадер и ПО вы обновляете через свой протокол, то не вижу особой сложности:

    1. Если не нужно безопасное обновление ПО: грузите по своему протоколу новое ПО в ОЗУ (из hex-файла, разбирая 2 области), прошиваете загруженные области соответственно - одну во внутреннюю flash, другую - во внешнюю.

    2. Если нужно безопасное обновление: грузите в ОЗУ, затем пишете его в теневую копию внешней flash, перегружаетесь, бутлоадер обнаружив новое ПО в теневой области flash, переписывает его с разбивкой по областям (также как в 1-м пункте) во внутреннюю flash и область рабочего ПО внешней flash.

    У меня весь срок на проект - полгода, если я начну требовать переделывать еще и плату, потом писать загрузчики, которые при такой логике работы существенно снизят скорость разработки, пересаживаться на новую платформу, добавлять кучу функционала и перетаскивать всю логику, попутно пытаясь ее еще оптимизировать - то мне и года не хватит. Нужно решение, максимально работающее из коробки. По поводу SDRAM уже говорил - на данном контроллере и в данных условиях скорость выполнения будет слишком низкой, я потом устану объяснять, почему все тормозит.

  5. Не понятно - зачем??? Если у вас всё ПО влезает в обычную SPI-flash. Зачем этот лес городить? SDRAM подразумевает большой объём памяти. На старте всё грузить в SDRAM из SPI-flash и дальше работать чисто в ОЗУ.

    Ну если объём ПО очень большой (что не влазит в SPI-flash или скорость старта не устраивает) - тогда тоже грузить на этапе старта переключая режимы (либо ещё как), а затем - только с ОЗУ работать.

    Потому что пишут, что скорость выполнения кода из SDRAM очень низкая, плюс TFT. Поэтому основная часть кода будет располагаться во внутренней флэше, а картинки, тексты и прочее некритичное, но объемное - в NOR. Проект будет цельным и не требовать массы ухищрений в производстве и при разработке.

  6. Уже создавал тему про LPC4088, но теперь вопрос иного свойства. Постепенно разбираюсь и вырисовываю в голове, как примерно строится приложение. Но встал вопрос по работе модуля EMC для LPC1788/LPC4088 и LPC18xx/LPC43xx.

    Ранее использовал его на LPC2478/LPC1788 для подключения SDRAM, это понятно. Понятно, что вместо SDRAM можно подключить NOR-Flash как внешнюю статическую память. А можно ли подключить параллельно NOR-Flash и SDRAM? Вроде бы посмотрел по диагонали настройки регистров - по сути это две разных группы, для статической (NOR-Flash) и динамической (SDRAM) памяти. Возможно ли одновременное использование и того, и другого? Я не имею возможности переключать режимы туда-сюда, потому что SDRAM будет использоваться как экранный буффер TFT, так что использование должно быть постоянным.

    И еще вопрос, по различию LPC1788/LPC4088 и LPC18xx/LPC43xx. Судя по карте памяти, внешняя память отображается для них в разные участки, для LPC1788/LPC4088 - выше 0x80000000, а вот у LPC18xx/LPC43xx - в пределах 0x40000000. Значит ли это, что у LPC18xx/LPC43xx возможно расположение таблицы векторов прерываний во внешней памяти, а у LPC1788/LPC4088? Какие ограничения это накладывает на отладку? Вроде бы где-то видел, что дебаггер не может работать с Cortex-M4 для адресов выше 0x80000000, правда ли это? Просто у меня сомнения по поводу того, стоять ли на своем - я хотел бы получить в устройство LPC43xx, или же все-таки можно будет обойтись в рамках LPC4088.

     

    Всем заранее спасибо!

  7. Может Вы поспешили со сменой платформы (если быстродействия старой хватает)?

    А если Вам линковать код и быстрые данные - в одну область памяти (int. flash), а всякие иконки и т.п. тряхомудрию большого размера - в другой регион (SDRAM)? Берёте LPC1788, ставите SDRAM + внешнюю флешку (SPI) большого размера. При старте ПО в бутлоадере инитите SDRAM и грузите второй регион из внешней SPI-флешь в SDRAM.

    Кэша там нет, так что все будет довольно медленно, учитывая еще постоянное дергание данных из TFT. По поводу внешнего флэша - да, такие идеи были, но тогда существенно усложняется процесс обновления прошивки.

     

  8. STM32F439 как вариант. Скорости больше - до 180МГц. Корпуса есть всякие. Контроллер хоть и новый, но уже живые образцы есть (в России).

    Да там скорость не так и определяет все. Про LPC40xx сказать ничего не могу, ничего не находит в Гугле, а у LPC43xx скорость до 204МГц, а толку? Пишут, что код исполняется из SDRAM не быстрее 50МГц, а с учетом того что я еще буду интенсивно лезть в SDRAM с целью обновления TFT (30МГц), то даже боюсь подумать, как это все работать будет.

  9. Доброго всем времени суток!

     

    В связи со сменой платформы в сторону умощнения возникла проблема с планированием грамотной архитектуры будущего устройства на LPC4088. Приложение следующее - TFT-консоль разрешения 800x480, внешний тачскрин, на борту память NAND, SDRAM, какая-то несущественная мелочевка (SD-карточка, USB, Ethernet, CAN, звук и прочее). Раньше все работало на меньшем разрешении и с меньшей внешней периферией на LPC2478 на 72МГц, были попытки перевести это на LPC1788, но там особо суть дела не менялась, разве что частота всего увеличивалась дл 120МГц. Но платформа достигла своего максимума - если общая длина кода составляла где-то 200 кб, то всевозможные ресурсы (тексты, иконки, звуки) выросли до 300 кб. Да, иконки сжаты по RLE, так что там уже дальше некуда сжимать. Поэтому встал вопрос по переходу на что-то большее, тем более что и внешней периферии стало не хватать по причине неправильной изначальной архитектуры.

     

    Теперь вопросы - документация по LPC4088 по сути никакая, от сходного LPC4357 тоже толку немного, пытаюсь хотя бы схематически представить для себя, как это все будет работать. Итак: во внутренней флэши контроллера планирую хранить только Bootloader, задача которого - загрузить из внешней флэш-памяти образ в SDRAM и передать на него управление. Ну и обновление, конечно же. Но как лучше всего и где хранить образ? Я работаю с Keil, вроде бы там есть возможность отладки для Cortex-M4 кода в SPIFI, но по идее скорость работы такого кода будет низкой, ниже, чем из SDRAM? Кроме того люди пишут, что есть проблемы с отладкой в SPIFI, так что этот вариант использовать не хотелось бы. Отладки кода в NAND как и загрузки его туда в Keil вроде бы вообще нет, поправьте меня, если это не так.

    Насколько медленно будет работать код, выполняемый в SDRAM?

    Как вообще под Keil принято осуществлять отладку подобных композитных проектов?

    Есть ли какие-то примеры подобного функционирования на сайте NXP?

    Может быть, кто-то уже делал нечто подобное и подскажет, как это все лучше реализовать? Смену платформы не предлагать, решил не я, плюс есть проблемы с изготовлением плат с BGA, мне тут не переубедить.

     

    Что вообще можно почитать по этому поводу?

     

    Заранее спасибо за советы!

  10. Оказывается, у меня личка не работает :) Я вам примерную цену озвучил, хочу посмотреть на чертёж, поэтому и просил. Если там что-то уж очень простое то скинем конечно. khaemn закорючка gmail точка ком.

    Отправил письмо

  11. цена 3 цента за точку пайки. Если устраивает, пришлите мне в личку пожалуйста сборочный чертёж вашей платы, посмотрим.

    Добрый день. Мне кажется, что 25 копеек за точку - это выше средних по Киеву цен.

  12. ...Плюс всякие защиты, такие, что хоть 220 на все подай ничего им не будет. Вот такую плату да, можно отдать "монтировать самому".

    Почитав статьи DiHalt'а, сильно сомневаюсь, что он настолько продвинут, что все позащищал и закрыл. 95% подаваемой им информации - радиолюбительщина, уважения заслуживает только то, что он это все подает на сайте и делает это грамотно с маркетинговой точки зрения. Сочетать же в себе маркетинговый гений и умение сделать что-то сложное не всем дано.

  13. Доброго всем дня!

     

    Мне нужен надежный человек в Киеве, который мог бы собрать 25 плат размера 150 на 100 мм, количество точек пайки - примерно 350. На плате часть элементов в DIP, часть в SMD, но не микроразмеры, обычные 0805, самый сложный элемент по сути - TSSOP24.

    Хотелось бы услышать суммарную стоимость заказа и примерные сроки. В случае взаимного удовлетворения совместной работой мог бы подбрасывать такие заказы периодически. Платы разработал я, так что не посредник. Сам сделать не могу по причине отсутствия инструмента и довольно плохих навыков владения паяльником, а сделать нужно красиво. Все отработано, так что если сделать строго по схеме, то ничего потом перепаивать не придется.

    Иные города рассматривать не готов, нужен личный контакт.

     

    Жду предложений в личку.

     

    Спасибо за внимание!

  14. ЧТобы не вводить в заблуждение сообщество, отпишу. Все нормально с принтерами, просто в UsbHostLite не реализован разбор композитных устройств, коими стали многие принтеры. Проблема была, собственно в этом. Как только получили принтер и распарсили ответ - все стало очевидно.

  15. Вроде бы опыта хватает, делал достаточно обширные проекты (написание прошивки), есть время для сторонней работы, но непонятно, откуда ее брать. Плюс нет доверенного человека, который бы занимался железной частью. Хотелось бы это все как-то найти. Территориально в Киеве. Примеры работ могу сбросить в личку.

  16. Игорю Богданову (GarikBaza) осенью 2011 года были переданы исходные данные проекта, разработанные другим программистом (работа более 8 месяцев) с целью доработки (заработок первоночальный + процент от проекта). До последнего дня Игорь тянул с результатом (должен был закончить до декабря 2011 г.) Вот уже более месяца не отвечает на телефонные звонки, периодически проскакивает в скайпе - не отвечает. Есть копии переписок и т.д. Есть договор о сотрудничестве им подписанный. Возможно, что то случилось - я не в курсе, но учитывая, что до последнего дня был на связи, закрадываются сомнения в его порядочности. Надеюсь, выйдет на связь с готовым проектом и отговорка будет - "не успевал, хотел закончить".

    А что за прибор, еще актуальна разработка?

  17. Так и все! производительность памяти в 2 раза ниже поэтому прироста и нет почти!

    Да, но LPC2478 использовался с разрешением 640 на 480, а LPC1788 - с разрешением 480 на 272. Плюс там при ширине шины в два раза больше скорость работы в два раза больше не становится, вроде около 1,5 раза прирост.

     

  18. На сайте NXP есть интересное видео.

    сравнение быстродействия 2478 и 1788, разница впечатляет :)

     

    http://www.youtube.com/watch?v=Jn53eBMfsqQ1

    Видел видео, тоже впечатлило, но по реальным результатам на 120МГц - ожидал большего. В частности, более быстрой перерисовки в emWin. Даже не знаю, в чем причина, буду, конечно, копать. Но отрисовка все равно заметна глазу. Я, конечно, на LPC2478 пользовался 32-битной шиной памяти, а на LPC1788 взял 16 бит с целью экономии ног и места, но все равно прирост производительности не радикальный.

  19. С неделю назад запустил LPC1788 с памятью K4S281632 с каналом в 16 бит. Да, слегка отличается настройка, не только в таймингах. Но вроде бы запустилась на предельной частоте в 120МГц. Если нужно, могу сбросить. Среда - Keil uVision4

  20. А, так это на одном таком принтере, другие той же модели работают нормально ? Тогда он может быть просто неисправным ...

    Да, есть такие подозрения. Наверное, стоит посмотреть, как UsbHostLite реагирует на всякие непредсказуемые ситуации, тут вроде бы писали, что отработки их там нет вообще...

  21. Обязана энумерация работать на FS, как минимум. И принтер почти наверняка будет работать на FS. Варианта два. Первый - модифицировать ваш проект так, чтобы он по UART выдавал внешней машине все запросы, которые МК шлет принтеру в процессе энумерации и все ответы принтера. Второй - использовать аппаратный сниффер USB, если таковой у вас есть ...

    Это хорошая идея. Но, думаю, что все-таки нужно на живом принтере экспериментировать, а его нет. Почему есть сомнения в железе - пробовали вчера в сервисном центре P2035, на нем все работает, пробовали массу других - тоже работает, энумерация по крайней мере. Это пока единственный экземпляр, который вызвал подобные проблемы. Есть подозрение, что может быть что-то с током потребляемым от порта, у нас там стоит LM3525 в качестве супервизора тока.

  22. Доброго дня!

     

    Столкнулся со следующей проблемой - слегка подправленный для работы с USB-принтером UsbHostLite для LPC1768 преподнес сюрприз. Довольно обширное число принтеров работает нормально (если не GDI, конечно). Но вот подключили клиенты HP P2055, а он просто виснет в процедуре энумерации. Никаких идей нет, разве что предположение о том, что принтер USB2.0 HighSpeed, что LPC1768 точно не поддерживает. И вообще, судя по тому, что написано в интернете, OHCI, реализованная в хосте LPC1768, не имеет никакого отношения к USB2.0. По принтерам HP информации толком не найти, они у них все исключительно USB2.0 уже тысячу лет, но при этом совершенно точно все печаталось с струйником HP5550 и более старым лазером P2015. В чем вообще может быть корень проблемы? Есть ли USB-устройства, которые принципиально не работают с хостами USB1.1, которым по сути, как я понял, и является LPC1768 несмотря на все заверения производителя? В чем искать корень проблемы - в стеке UsbHostLite или все-таки в принтере?

     

    Спасибо за возможные ответы!

×
×
  • Создать...