Полная версия этой страницы:
Написание своего модуля
Есть потребность задействовать FTDI FT245RL для начала в режиме VCP (virt COM port), но хочется это сделать красиво, а именно написать свой компонент с регистрами и прерываниями. Вначале думал переделать уже имеющийся компонент UART, но сразу понял, что с наскока не осилю. Посоветуйте, что именно курить из документации. Так же буду рад мануалам или несложным проектам для примера.
Maverick
Mar 14 2012, 11:32
Цитата(Wic @ Mar 14 2012, 12:10)

Есть потребность задействовать FTDI FT245RL для начала в режиме VCP (virt COM port), но хочется это сделать красиво, а именно написать свой компонент с регистрами и прерываниями. Вначале думал переделать уже имеющийся компонент UART, но сразу понял, что с наскока не осилю. Посоветуйте, что именно курить из документации. Так же буду рад мануалам или несложным проектам для примера.
Вы ошиблись веткой...
считаете, что модуль NIOS II должен быть в другой ветке? подскажите тогда в какой.
Копейкин
Mar 15 2012, 10:04
FT245 подключается через USB к компьютеру.
Драйвер ОС/FTDI и поставляет Вам VCP. Там уже всё красиво.
Можно пользовать D2XX интерфейс. В некоторых случаях это предпочтительно.
На "другой" стороне FT245 параллельный интерфейс для обмена в внутренним (FT245) FIFO буфером.
Последовательного порта, родного, там нет. Это в FT232 USB <-> UART.
Остаётся только подключить к FPGA, выбрав интерфейс последовательный или параллельный.
Писать свой SOPC компонент для обмена может иметь смысл в случае
параллельного интерфейса для скоростного/потокового обмена.
В противном случае компонента PIO или UART достаточно.
В случае FT232 было бы проще, но уже поставили FT245 и приходится работать с тем, что есть.
Вот я и хочу написать свой компонент для параллельного интерфейса FT245. Вначале сделать простой вариант для VCP, а если понадобится то сделать уже компонент для D2XX.
На данный момент разобрался как создать сам компонент, добавил интерфейсы, создал внешние сигналы, сейчас разбираюсь, что с этим делать дальше и как писать. С частью со стороны FTшки всё просто, сейчас разбираюсь как работает Avalon-MM. Надеюсь в доках что нашел вся информация будет.
Сделал простейший драйвер с прерываниями по окончанию приема и окончанию передачи. Передает по 8 бит.
Чуть позже выложу компонент для QSYS.
Сейчас думаю сделать передачу и прием по 4 байта, аля brust.
Такой вопрос, как получить частоту клока которым тактируется модуль?
Orochi
Apr 30 2012, 15:03
поковыряв чужие модули (компоненты qsys к отладочным платалм различных производителей) я замечал что частота которой тактируется модуль, там где это критично притята
константой, тоесть известна. И как следствие, если подать не ту частоту, компонент не работает.
Как вариант, может быть, написать ещё 1 компонент на основе счётчика и регистра состояния (хранящий частоту на выходе) вы будете знать частоту и управлять ей по необходимости.
(я в ПЛИС сообществе начинающий, если написал бред прошу не бить, а сказать как принципиально можно сделать это полегче)
Я об этом догадался, что частота клока известна. Но вот как получить ее, чтобы можно было на ее основе делать нужные задержки, вот это для меня более интересно. Сейчас частоту задаю при добавление модуля в систему, но хочется сделать, чтобы она сама в зависимости от клока задавалась.
Изнутри модуля тактируемого частотой CLOCK никак не узнать частоту этого CLOCK, так как мерять надо относительно чего то, и не получится измерять частоту относительно этой же частоты. Вам нужена или заведомо большая опять же извесная частота, или внешние модули которые тактируются опять же извесной частотой. В любом случае изврат из области микросхемотехники.
Как вариант добавте в свой модуль субмодуль на который приходит известная частота, он её изменяет на необходимую вам (меньшую) частоту, и регулирует её вам по Вашему же закону и Вашим же условиям, которые вы пропишите.
Мне не нужно ее мерить. Мне нужно значение, которое задано в Qsys.
Egor-ka
Dec 18 2012, 14:54
Здравствуйте, Wic.
Вы хотели выложить компонент для FT245...
Цитата(Wic @ Apr 6 2012, 07:00)

Сделал простейший драйвер с прерываниями по окончанию приема и окончанию передачи. Передает по 8 бит.
Чуть позже выложу компонент для QSYS.
Мне сейчас очень актуальна эта тема - как раз разбираюсь с FT245 и хочу приспособитье его под ниос..
Если можете поделитесь HDL-описаниями?
Stewart Little
Dec 18 2012, 18:24
Цитата(Egor-ka @ Dec 18 2012, 18:54)

Мне сейчас очень актуальна эта тема - как раз разбираюсь с FT245 и хочу приспособитье его под ниос..
Если можете поделитесь HDL-описаниями?
"Все уже украдено до нас!" (с) :
FT2232H USB Avalon CoreПод свою задачу можете сами допилить.
Могу скинуть компонент. Сейчас правда есть мысль дописать контрольные суммы, но это уже разнообразия ради.
ps за исполнение прошу прощение, переписать на чем то более приличном пока нет времени.
Добавил в систему ваш ftdi. Собрал BSP. В проекте Ниоса (в Eclipse) нету ftdi_uart_regs.h, не добавляется он в проект при компиляции. Как вы эту проблему решаете? Руками в проект добавить этот ашник?
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.