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

Доброго времени суток. Господа, прошу прощения, если вопрос не в той ветке. В ближайшее время предстоит работать с микросхемой FT245RL, в связи с чем активно курю документацию. Не понятен такой момент, по поводо Synchronous/asynch. bit-bang: как я понял из AN232R, асинхронный режим выглядит так: записал биты через драйвер -> получил уровни на ногах -> записал следующие биты -> получил следующие и тд., с чтением - аналогично, команда чтения драйверу считывает уровни с ног. В таком случае не совсем понятно, на кой нужны стробы RD# и WR?

Или я не правильно понимаю вот это:

Asynchronous Bit Bang mode is the same as BM-style Bit Bang mode. Any data written to the device in

the normal manner will be self-clocked onto the data pins which have been configured as outputs. Each

pin can be independently set as an input or an output. The rate that the data is clocked out at is

controlled by the Baud rate generator. For the data to change there, has to be new data written and the

Baud rate clock has to tick. If no new data is written to the device, the pins will hold the last value

written.

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


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

Запись и чтение в FIFO, если девайс медленный/быстрый, накидал быстро данных, потом неспеша считываешь или наоборот

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


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

как трактуется именно для FTDI не знаю, но в аналогах Cypress

"синхронность" подразумевает внешнее тактирование (помимо стробов записи-чтения)

соотв-но, асинхронность - синхротакты не требуются, используется только /WR /RD

 

 

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


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

У меня тоже есть вопрос по работе FT245. Использую FT245 со стандартным VCP-драйвером. В даташите подробно расписан механизм и тайминги отдельно для процессов чтения или записи данных, но шина то у нас двунаправленная и я не нашёл информации о каких-либо ограничениях по таймингам между этими процессами. В результате инициируя процесс чтения данных В ПК сразу после окончания передачи данных из ПК и переходе RXF в неактивное состояние у меня вместо данных из устройства считывается содержимое выходного буфера FT245 (т.е. то, что только что было передано во внешнее устройство).

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


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

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

Поторопился писать в форум, с проблемой разобрался - оказалось что она была вызвана нестабильной работой схемы из-за вынужденного использования в макете логики разных серий. Теперь с уверенность можно говорить, что цикл записи в ПК (по даташиту не менее 50ns) можно начинать сразу же (с 0-ой задержкой) после завершения цикла чтения из ПК (и перехода RXF в неактивное состояние)

 

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


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

Спршу здесь, чтобы не создавать наовую тему.

Правильно ли я понимаю что FT245 не позволяет в одну сторону "сыпать" байты из виртуально COM

Я привык что на ft232 если сыпать подрят информацию она известной скоростью будет видна на Tx или Rx

А 245 серия получается так ен позволяет? Нужно обязательно строб RD подать?

Может есть какие еще варианты?

Задачка ставить байт из COM порта "паралельно".

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


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

"Сыпят" семечки из пакета. Выражайтесь яснее.

А вообще: прочитайте про "Asynchronous Bit Bang Mode" в даташите.

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


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

режим Bit Bang Mode то что нужно, но его нельзя установаить при работе через виртуальный com-порт

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


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

режим Bit Bang Mode то что нужно, но его нельзя установаить при работе через виртуальный com-порт

Добавлю от себя, что возможности так же зависят от версии ft245. Более ранние, с индексом BL, BM если ничего не путаю умеют "сыпать" с заданной скоростью, НО только в асинхронном режиме (чтение в ПК осуществляется по внешнему тактированию, тогда как в синхронном перед записью каждого байта производится чтение состояния шины). и что для меня было особенно печально - без формирования стробов. Ну и да bitbang доступен только с собственным драйвером ftdi. В режиме VCP - чтение и запись только по внешнему стробу.

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


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

режим Bit Bang Mode то что нужно, но его нельзя установаить при работе через виртуальный com-порт

Там оба режима "Bit Bang", Вы какой имеете в виду???

Асинхронный не работает через VCP-драйвер (вроде как). Но никто не мешает в синхронном режиме подать внешний тактовый сигнал нужной частоты на вход RD и тем самым сэмулировать работу асинхронного режима. Успевай только от ПК данные подгружать. Но проблема будет с тем - как со стороны PC узнать сколько данных можно загрузить в FT245 без переполнения и потери? С VCP-драйвером, имхо, это невозможно будет узнать. Но посылки небольшой длительности можно так сделать, до тех пор пока не наступит рассинхронизация.

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


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

я продолжил изучение, нашел примеры для матлаба, но упреся в установку D2XX драйвера.

Скачал. У меня Win7.

Почитал что есть в интернете по этому поводу.

Нашел статью где говорилось следующее

"Немного сложнее обстоит дело в случае использования операционной системы Windows XP, которая уже имеет в своем составе сертифицированные VCP-драйверы FTDI. При попытках присоединить к компьютеру новое USB-устройство со стандартными идентификаторами FTDI (например, любой DLP-модуль) система по умолчанию, не спрашивая пользователя, самостоятельно установит VCP-драйверы. Пользователю, желающему работать с D2XX-драйверами, необходимо в этот момент вспомнить, что очень полезно воспитывать в себе терпение и воспользоваться утилитой ftxprcvr.exe, входящей в состав дистрибутива D2XX-драйверов для Windows XP. Утилита ftxprcvr.exe, используя установившиеся по умолчанию VCP-драйверы, перепрограммирует внешнюю EEPROM, используемую в присоединенном устройстве, и задаст новые значения идентификаторов (VID=0403 и PID=6006). После этого необходимо повторить процедуру установки D2XX-драйверов сначала, т.е отключить и снова присоединить устройство. Теперь система даст возможность пользователю указать директорию для установки D2XX-драйверов."

 

Проделал описанную процедуру, записал PID=6006

Отключил включил девайс и...

При попытке установить драйвер из папки D2XX, говорит не удалось найти драйверы для этого устройства

Причем то же и для драйверов виртуального COM-порта

Вот сижу теперь и думаю что делать дальше

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


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

Добрый день!

Кто нибудь знает как обращаться к конкретной микросхеме в режиме BitBang, если их подкдчено несколько?

Я разобрался как узнать номер.

Когда подключаю по отдельности вижу и №1 и №2, а когда обе микросхемы подключены к ПК обращение идет по умолчанию к №1.

 

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


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

Кто нибудь знает как обращаться к конкретной микросхеме в режиме BitBang, если их подкдчено несколько?

Вы сначала спросите: "Кто-нить тут эти микросхемы использует?"

И зачем она Вам вообще сдалась? В наше время нетрудно найти МК с USB.

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


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

вы название темы смотрели? Здесь обсуждают ft245.

И конечно используют. В приложениях где нет смысла городить схему с МК.

 

может кому пригодиться

f = NET.addAssembly('C:\FTD2XX_NET.dll');

% посмотреть возможные методы

%methodsview( 'FTD2XX_NET.FTDI');

 

% открываем доступ к первому комутатору

fo=FTD2XX_NET.FTDI;

r = OpenByIndex(fo,0);

 

для второго r = OpenByIndex(fo,1);

 

%Запрос номера комутатора

numDevicesMax = 5

myArray = NET.createArray('FTD2XX_NET.FT_DEVICE_INFO_NODE', numDevicesMax)

r = fo.GetDeviceList(myArray)

myArray(1)

 

Switches_Number_1= myArray(1).SerialNumber(1);

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


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

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

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

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

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

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

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

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

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

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