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

Написание своего модуля

Есть потребность задействовать FTDI FT245RL для начала в режиме VCP (virt COM port), но хочется это сделать красиво, а именно написать свой компонент с регистрами и прерываниями. Вначале думал переделать уже имеющийся компонент UART, но сразу понял, что с наскока не осилю. Посоветуйте, что именно курить из документации. Так же буду рад мануалам или несложным проектам для примера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть потребность задействовать FTDI FT245RL для начала в режиме VCP (virt COM port), но хочется это сделать красиво, а именно написать свой компонент с регистрами и прерываниями. Вначале думал переделать уже имеющийся компонент UART, но сразу понял, что с наскока не осилю. Посоветуйте, что именно курить из документации. Так же буду рад мануалам или несложным проектам для примера.

Вы ошиблись веткой...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

считаете, что модуль NIOS II должен быть в другой ветке? подскажите тогда в какой.

Изменено пользователем Wic

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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.

Такой вопрос, как получить частоту клока которым тактируется модуль?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

поковыряв чужие модули (компоненты qsys к отладочным платалм различных производителей) я замечал что частота которой тактируется модуль, там где это критично притята константой, тоесть известна. И как следствие, если подать не ту частоту, компонент не работает.

 

Как вариант, может быть, написать ещё 1 компонент на основе счётчика и регистра состояния (хранящий частоту на выходе) вы будете знать частоту и управлять ей по необходимости.

(я в ПЛИС сообществе начинающий, если написал бред прошу не бить, а сказать как принципиально можно сделать это полегче) B)

Изменено пользователем Orochi

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне не нужно ее мерить. Мне нужно значение, которое задано в Qsys.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте, Wic.

Вы хотели выложить компонент для FT245...

Сделал простейший драйвер с прерываниями по окончанию приема и окончанию передачи. Передает по 8 бит.

Чуть позже выложу компонент для QSYS.

Мне сейчас очень актуальна эта тема - как раз разбираюсь с FT245 и хочу приспособитье его под ниос..

Если можете поделитесь HDL-описаниями?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне сейчас очень актуальна эта тема - как раз разбираюсь с FT245 и хочу приспособитье его под ниос..

Если можете поделитесь HDL-описаниями?

"Все уже украдено до нас!" (с) : FT2232H USB Avalon Core

Под свою задачу можете сами допилить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

ps за исполнение прошу прощение, переписать на чем то более приличном пока нет времени.

comonents.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добавил в систему ваш ftdi. Собрал BSP. В проекте Ниоса (в Eclipse) нету ftdi_uart_regs.h, не добавляется он в проект при компиляции. Как вы эту проблему решаете? Руками в проект добавить этот ашник?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

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