Jump to content

    

billidean

Свой
  • Content Count

    245
  • Joined

  • Last visited

Everything posted by billidean


  1. Знаете, ответы в виде "читайте доку", "курите мануал" - это или от незнания, или от жадности. Если бы я нашел ответы на свои опросы, то и не задавал бы их вообще.
  2. Доброго дня. Недавно тоже начал разбираться с USB-HID (STM32F4-DISCOVERY). До этого, ООЧЕНЬ давно, работал с контроллерами, так что небольшое представление о них имею. С этой платой начал только разбираться, поэтому в его регистрах пока не очень. По поводу ST-библиотеки - ужас+вынос_мозга, потыкал-повключал примеры и все, даже в голову мысли не пускаю об её использовании в своих проектах. То, что я изобретаю велосипед (да еще и не оптимальной конструкции) - это все понятно. Но то, что это будет МОЙ велосипед - это и есть радость разработчика. adnega, спасибо за исходники, скачал, начал разбирать их. ViKo, у Вас получилось запустить на stm32f4? Есть вопрос по файлу stm32f10x_map.h /* System Control Space memory map */ #define SCS_BASE ((u32)0xE000E000) Откуда взялся адрес 0xE000E000? (в референс мануале на stm32f10xx не нашел такого адреса) И ещё: /*------------------------ SystemTick ----------------------------------------*/ typedef struct { vu32 CTRL; vu32 LOAD; vu32 VAL; vuc32 CALIB; } SysTick_TypeDef; - этих регистров не нашел в доке, вообще про SysTick там пара фраз. Подскажите, где искать, если кто знает.
  3. НИОС при записи/чтении по Авалону использует 32-хбитную шину, но при этом он оперирует шиной BYTEENABLE, адресация всегда остается 4-байтовой. Используя типы данных можно заставить его писать и по 8 бит. Например: alt_u8 temp_8 = 0xab; IOWR(EXTERNAL_MEM_0_BASE, 0, temp); а вот зпись IOWR(EXTERNAL_MEM_0_BASE, 0, 0xAB); приведет действительно к записи 4-хбайтового слова.
  4. Еще не забывайте об используемых ресурсах: фифо - на ячейках памяти (даже минимальное фифо задействует целый блок памяти) массив - на регистрах. Бывает, что лишней памяти уже нет, а нужно добавить фифо, в этом случае приходится делать на регистрах.
  5. Добрый день. Хорошее занятие - воспитание разработчиков профессионалами. К сожалению таких мест ОЧЕНЬ мало, точнее почти нет, поэтому многим, кто учился по другой специализации, но решил стать разработчиком (FPGA например), приходится самим изучать все вопросы, что часто приводит к неверному пониманию многих вещей, и последующему неверному их использованию. Скажите, а можно стажироваться/сотрудничать с вашей конторой удаленно? С одной стороны - это доп.нагрузка на ваши плечи, НО с другой - дополнительное решение/реализация каких-то ваших задач.
  6. Спасибо за ответ, Koluchiy. Действительно, упростив все до минимума, я выявил косяк с одним сигналом управления, и теперь все гуд.
  7. Спасибо за совет. Я сегодня глянул один из Ваших проектов по этой теме и увидел, что кэш отключен в НИОСе. Отключил у себя, и все стало отлично (надеюсь надолго).
  8. Проект НИОСа грузится с компа в ДДР, там и работает (работаю с отладочной платой BeMicro Ciclone IV). Он-чип памяти нет в проекте (кроме памяти для дескрипторов sgdma). Сегодня вечером попробую отключить кэш данных, а кэш инструкций оставлю. Но вот в описании функции alt_remap_uncached() сказано: The alt_remap_uncached() function remaps a region of memory for uncached access. The memory to map is len bytes, starting at address ptr., разве использование этой функции не достаточно, чтобы область памяти стала некэшируемой?
  9. Доброго времени суток. Я понимаю, что тема работы с Езернетом уже очень много где обсуждалась, но вопрос не в том как настроить PHY или почему нет линка. У меня проблема в следующем: НИОС принимает пакеты, вроде без каких-либо проблем, идентифицирует их и отсылает в ответ разные пакеты. Поток контролирую WireShark'ом. Иногда со стороны НИОСа пакеты идут непонятно какие, их содержимое сильно отличается от истинного, часть похожа на предыдущий пакет, часть на тот, который нужен, часть вообще какие-то ноли. Файлы своего проекта прикладываю (проект сырой, поэтому не упрекайте в лишних кодах). my_eth.rar Если не сложно, гляньте в чем может быть косяк. З.Ы.: я что-то слышал, что такое может быть из-за кэша, но это было давно, и мне оно тогда не нужно было. В своем проекте вроде что-то сделал типа использования "alt_remap_uncached", но особо это не дало результатов. Пробовал использовать "alt_remap_cached" - результат еще хуже. З.Ы.: и еще один не понятный момент - когда добавляю где-то или убираю принты, то программа как-то иначе начинает работать.
  10. Здравствуйте. Не знаю как с использование ALTASMI, но при использовании epcs_flash_controller'а все нормально работает, и позволяет перевести зарезервированные выводы как user-io после конфигурирования.
  11. Народ...неужели никто не использовал "Custom PHY"??? Очень нужна помощь. Не могу запустить проект.
  12. Итак, для Arria V использую "Custom PHY". Настраиваю передатчик и приемник отдельно. На отладочной плате выход передатчика соединяю со входом приемника. Провожу сбросы как в документации "Transceiver Reset Control in Arria V Devices". На вход передатчика подаю контрольный код (28.5). На выходе приемника вижу полную лажу: нет признака принятия контрольного кода (28.5), сами данные равны нулю. На плате лампочка приемника моргает в процессе транзакции. Кто использовал данное ядро, помогите разобраться.
  13. Действительно, я использую свой протокол. Я уже нашел ядро "Custom PHY IP Core" и попробовал его использовать, но чо-то с первого раза не получилось заставить работать связку передатчик-приемник. А по интерфейсу и настройкам он действительно больше похож на ALTGX, чем "Arria V Transceiver Native PHY v13.0". Буду пытаться заставить работать "Custom PHY". Если у кого есть опыт его использования, буду очень рад помощи. З.Ы.: Достали уже эти "бубны" при переходе от версии-к-версии.
  14. Приветствую всех. Работал с отладочной платой Stratix IV GX. Проект использовал модуль ALTGX для обмена по скоростному интерфейсу (3 ГБ/с) - отдельно передатчик и приемник. Передатчик имел 16-разрядный вход данных для передачи, встроенный кодер 8/10, 2-разрядный вход для управления выдачей контрольного кода (28.5). Приемник имел 16-бит выходных данных, встроенный декодер 8/10, 2-разряда признака принятия контрольного кода (28.5). Сейчас перешел на отладку Arria V GX. В проекте нужен тот же самый интерфейс. В мегавизарде уже нет доступа к модулю ALTGX для этой плиски. Нашел что-то похожее "Arria V Transceiver Native PHY v13.0", но там с шинами данных для передатчика и приемника какая-то заморочка. И вообще непонятно зачем такие широкие шины этих данных. Просто нет времени, чтобы потратить его зря, если этот модуль не подходит для моей задачи. Может для замены ALTGX'а нужно использовать что-то другое? Кто работал с этим модулем для Арии, объясните, пожалуйста, как вы его использовали, как управляли контрольными кодами при передаче, как их детектировали при приеме. Какие частоты на клоковые входы приемника/передатчика подавали.
  15. Из последнего: отработан модуль, который при подключении к НИОС позволяет работать в флэш-памятью EPCS как с обычной областью ОЗУ и не требует дополнительных интерфейсов. Пример кода использования модуля (для НИОСа): typedef struct my_struct { alt_u32 s_32; alt_u8 s_m_3[3]; alt_u16 s_16; } my_struct; int main() { my_struct *ms; ms = (my_struct*)alt_remap_uncached((void*)(EPCS_CONTROLLER_0_BASE),sizeof(my_struct)); // сброс рабочего сектора флэшки перед записью ms->s_32 = 0xABCDEF55; // Clear this sector printf("Clear end\n"); ms->s_16 = 0xabcd; ms->s_m_3[0] = 0x1; ms->s_m_3[1] = 0x2; ms->s_m_3[2] = 0x3; ms->s_32 = 0xdeadbeaf; printf("ms->s_32 = 0x%lx\n", ms->s_32); printf("ms->s_16 = 0x%x\n", ms->s_16); printf("ms->s_m_3[0] = 0x%x\n", ms->s_m_3[0]); printf("ms->s_m_3[1] = 0x%x\n", ms->s_m_3[1]); printf("ms->s_m_3[2] = 0x%x\n", ms->s_m_3[2]); Таким образом нет необходимости использования Альтеровских драйверов. Большой плюс модуля - это бО'льшая скорость отработки транзакций с флэш-памятью по сравнению с драйверами Альтеры. При необходимости можно проработать применение модуля и к другим типам флэш-памяти. З.Ы.: на данный момент загруженность не большая. Могу выполнять новые заказы.
  16. Блин засиделся за компом называется :laughing: :laughing: Спасибо.
  17. Посмотрел даташит на флэшку M25P10A. Да, описание совпадает с описанием на ЕПЦС. Но вот названия выводов - это конечно что-то. Модель заработала. Нашел еще, что обязательно нужно проинициализировать модель перед работой. Спасибо за помощь.
  18. Приветствую всех форумчан. Тетирую свой модуль работы НИОСа с флэшкой аля ДМА. Погонял тесты данных 32, 16, 8-битных массивов - все ОК, НО здесь подвох - все массивы начинались с "ровного" адреса, т.е. с выровненного по 32 бита. Захотелось прогнать тесты работы с данными не выровненными по начальному адресу, т.е. со смешанной структурой. При попытке объявления типа структуры: ... typedef struct my_struct { alt_u32 s_32; alt_u8 s_m_3[3]; alt_u16 s_16; } my_struct; int main() { my_stuct *ms; ms = (my_stuct*)alt_remap_uncached((void*)(EPCS_CONTROLLER_0_BASE),sizeof(my_struct)); ... выдает такой казус: Не подскажете в чем прикол?? Может компилятору чо-то нужно "посоветовать", я в настройках компилятора НИОС - не айс.
  19. Попробую почитать доки на эту микросхему. Просто я на железе работаю с EPCS16. Хочу в моделсиме работать с моделью этой флешки. Завел тему. Мне показали, что эта модель подходит под модель ЕПЦС-ки. На железе у ЕПЦС интерфейс не совсем похож на интерфейс той модели, которую мне подсказали. Кардинально переделывать интерфейс своих модулей не собираюсь. Поэтому конечно же почитаю даташит на эту "железную" микруху (просто пока некогда). И конечно, спасибо всем неравнодушным к чужим проблемам.
  20. Не получается работать с предложенной моделью. В своем тест-бенче модель флэшки подключил следующим образом M25P10A_pm : M25P10A port map ( c => epcs_dclk, --: in std_logic; data_in => epcs_asdo, --: in std_logic; s => epcs_ncso, --: in std_logic; w => '1', --: in std_logic; hold => '1', --: in std_logic; data_out => epcs_asdi --: out std_logic ); и при чтании (статусного регистра, данных) на линии epcs_asdi имею всегда '0'. Выводы модели определил так: c - тактовый вход data_in - информационный вход s - вход чип-селект w - не понял, что такое, решил установить в '1' hold - не понял, что такое, решил установить в '1' data_out - информационный выход Все сигналы "epcs_.." явяляются выводами SPI-модуля (его работа с реальной ЕПЦС проверена на железе). Может не правильно подключил выводы??
  21. Понятно. Я увидел их на сайте альтеры http://www.buyaltera.com/scripts/partsearc...e=544-2567-5-ND и подумал, что это их производство. Спасибо за помощь.
  22. Спасибо за ссылку, но я хотел найти модель альтеровской ЕПЦС.
  23. Приветствую всех. Задался целью реализовать свой модуль управления epcs_flash_controller'ом (а-ля ДМА), чтобы со стороны НИОСа обращение к флэшке выглядело как обычное обращение к памяти, а не через API-функции. Сделал интерфейсы Авалон-слейв (для управления от НИОСа) и Авалон-мастер (для управления ЕПЦС-контроллером). Что-то сразу на железе не заработало, поэтому хочется покопаться на модели. В инете не могу найти модели флэшки ЕПЦС. Кто-нибудь встречал такую модель?? Может кто реализовывал уже такой модуль и может поделиться секретами??
  24. Из новых направлений добавил в свою копилку проект с использованием Езернета как интерфейса обмена между ПК и ПЛИС StratixIV.