реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Написание своего модуля, Драйвер для FTDI
Wic
сообщение Mar 14 2012, 10:10
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 183
Регистрация: 16-03-08
Из: Новосибирск
Пользователь №: 35 954



Есть потребность задействовать FTDI FT245RL для начала в режиме VCP (virt COM port), но хочется это сделать красиво, а именно написать свой компонент с регистрами и прерываниями. Вначале думал переделать уже имеющийся компонент UART, но сразу понял, что с наскока не осилю. Посоветуйте, что именно курить из документации. Так же буду рад мануалам или несложным проектам для примера.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Mar 14 2012, 11:32
Сообщение #2


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



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

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


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Wic
сообщение Mar 15 2012, 02:47
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 183
Регистрация: 16-03-08
Из: Новосибирск
Пользователь №: 35 954



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

Сообщение отредактировал Wic - Mar 15 2012, 04:55
Go to the top of the page
 
+Quote Post
Копейкин
сообщение Mar 15 2012, 10:04
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 190
Регистрация: 7-11-07
Из: С-Петербург
Пользователь №: 32 134



FT245 подключается через USB к компьютеру.
Драйвер ОС/FTDI и поставляет Вам VCP. Там уже всё красиво.
Можно пользовать D2XX интерфейс. В некоторых случаях это предпочтительно.
На "другой" стороне FT245 параллельный интерфейс для обмена в внутренним (FT245) FIFO буфером.
Последовательного порта, родного, там нет. Это в FT232 USB <-> UART.
Остаётся только подключить к FPGA, выбрав интерфейс последовательный или параллельный.
Писать свой SOPC компонент для обмена может иметь смысл в случае
параллельного интерфейса для скоростного/потокового обмена.
В противном случае компонента PIO или UART достаточно.

Сообщение отредактировал Копейкин - Mar 15 2012, 10:08
Go to the top of the page
 
+Quote Post
Wic
сообщение Mar 16 2012, 06:03
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 183
Регистрация: 16-03-08
Из: Новосибирск
Пользователь №: 35 954



В случае FT232 было бы проще, но уже поставили FT245 и приходится работать с тем, что есть.
Вот я и хочу написать свой компонент для параллельного интерфейса FT245. Вначале сделать простой вариант для VCP, а если понадобится то сделать уже компонент для D2XX.
На данный момент разобрался как создать сам компонент, добавил интерфейсы, создал внешние сигналы, сейчас разбираюсь, что с этим делать дальше и как писать. С частью со стороны FTшки всё просто, сейчас разбираюсь как работает Avalon-MM. Надеюсь в доках что нашел вся информация будет.
Go to the top of the page
 
+Quote Post
Wic
сообщение Apr 6 2012, 03:00
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 183
Регистрация: 16-03-08
Из: Новосибирск
Пользователь №: 35 954



Сделал простейший драйвер с прерываниями по окончанию приема и окончанию передачи. Передает по 8 бит.
Чуть позже выложу компонент для QSYS.
Сейчас думаю сделать передачу и прием по 4 байта, аля brust.
Такой вопрос, как получить частоту клока которым тактируется модуль?
Go to the top of the page
 
+Quote Post
Orochi
сообщение Apr 30 2012, 15:03
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 6-07-11
Из: Кострома
Пользователь №: 66 096



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

Как вариант, может быть, написать ещё 1 компонент на основе счётчика и регистра состояния (хранящий частоту на выходе) вы будете знать частоту и управлять ей по необходимости.
(я в ПЛИС сообществе начинающий, если написал бред прошу не бить, а сказать как принципиально можно сделать это полегче) cool.gif

Сообщение отредактировал Orochi - Apr 30 2012, 15:04
Go to the top of the page
 
+Quote Post
Wic
сообщение May 2 2012, 03:17
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 183
Регистрация: 16-03-08
Из: Новосибирск
Пользователь №: 35 954



Я об этом догадался, что частота клока известна. Но вот как получить ее, чтобы можно было на ее основе делать нужные задержки, вот это для меня более интересно. Сейчас частоту задаю при добавление модуля в систему, но хочется сделать, чтобы она сама в зависимости от клока задавалась.
Go to the top of the page
 
+Quote Post
Orochi
сообщение May 2 2012, 08:51
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 6-07-11
Из: Кострома
Пользователь №: 66 096



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

Как вариант добавте в свой модуль субмодуль на который приходит известная частота, он её изменяет на необходимую вам (меньшую) частоту, и регулирует её вам по Вашему же закону и Вашим же условиям, которые вы пропишите.
Go to the top of the page
 
+Quote Post
Wic
сообщение May 3 2012, 03:11
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 183
Регистрация: 16-03-08
Из: Новосибирск
Пользователь №: 35 954



Мне не нужно ее мерить. Мне нужно значение, которое задано в Qsys.
Go to the top of the page
 
+Quote Post
Egor-ka
сообщение Dec 18 2012, 14:54
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 9-10-07
Пользователь №: 31 202



Здравствуйте, Wic.
Вы хотели выложить компонент для FT245...
Цитата(Wic @ Apr 6 2012, 07:00) *
Сделал простейший драйвер с прерываниями по окончанию приема и окончанию передачи. Передает по 8 бит.
Чуть позже выложу компонент для QSYS.

Мне сейчас очень актуальна эта тема - как раз разбираюсь с FT245 и хочу приспособитье его под ниос..
Если можете поделитесь HDL-описаниями?
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Dec 18 2012, 18:24
Сообщение #12


Лентяй
******

Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843



Цитата(Egor-ka @ Dec 18 2012, 18:54) *
Мне сейчас очень актуальна эта тема - как раз разбираюсь с FT245 и хочу приспособитье его под ниос..
Если можете поделитесь HDL-описаниями?

"Все уже украдено до нас!" (с) : FT2232H USB Avalon Core
Под свою задачу можете сами допилить.


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post
Wic
сообщение Dec 19 2012, 08:53
Сообщение #13


Частый гость
**

Группа: Свой
Сообщений: 183
Регистрация: 16-03-08
Из: Новосибирск
Пользователь №: 35 954



Могу скинуть компонент. Сейчас правда есть мысль дописать контрольные суммы, но это уже разнообразия ради.
ps за исполнение прошу прощение, переписать на чем то более приличном пока нет времени.
Прикрепленные файлы
Прикрепленный файл  comonents.rar ( 9.59 килобайт ) Кол-во скачиваний: 27
 
Go to the top of the page
 
+Quote Post
juvf
сообщение Jan 11 2013, 02:16
Сообщение #14


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



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

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 15:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01592 секунд с 7
ELECTRONIX ©2004-2016