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

FT232R и FT2232C в режиме bit bang как-то странно работает

FT232R и FT2232C в режиме bit bang как-то странно работает в режиме передачи

передаю меандр в режиме sync/assync на 1 кгц, и есть биты значительно короче.

А есть биты значительно длиннее, причем в первой посылке ( хотя же есть FIFO на 128 байт )

на 100кгц вместо импульса 10мкс вижу 1мкс !

и опять же рвется пакет.

версия драйвера 2.12.28.0 ( самая последняя ). Есть чип не отвалился от нового драйвера, значит сомнительно что это подделка ( или новая подделка ? )

Кто сталкивался ?! Как лечиться ?!

 

ft232r_bitbang.png

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


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

странно, что никто на электрониксе об этом не в курсе

 

что узнал:

согласно официальной еррате эта проблема только у ревизии A, якобы на ревизии B должно быть все пофиксено.

"3.1.2BitBang Mode variable Pulse Width"

 Problem:The output may be clocked out at different speeds to allow for different pulse widths.

However this clocking stage is not synchronized with the incoming data and can result in the pulse widths varying unexpectedly on the output

 

workaround от FTDI полная туфта, вот источник

In the errata, it's suggested that the fix is to run with a baudrate of 3000000, and just generate longer pulses to compensate. This might sound like a usable workaround, but FTDI neglected to tell that the chip is only running with 12.5MBit/s usb speed. Far from the needed ~65MBit/s needed for 3000000 baud (3000000baud * 10bits/byte (with bit stuffing) * 2 (we need to both send and recv) * 10% (usb header overhead).

 

У меня два чипа ревизии B и С, и проблема все равно проявляется. Так же это подтверждают и другие источники

We proved that the FT232R’s clock is unreliable in bit-bang mode, even the newer “C” revision of the chip.

 

вообщем, такие печальные  дела

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


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

On 1/30/2019 at 12:06 PM, megajohn said:

Кто сталкивался ?! Как лечиться ?!

Может поздно отвечаю, но делал так.

 

1. Если нужен только один канал для меандра, то попробовать вывести на ножку TXD данные с чередующимися битами (01010101, или 00110011 сейчас не помню) сплошным потоком. Подобрать длину посылки 10 или 11 бит, чтоб получался меандр вместе с старт-стоп битами (возможно и бит чётности как-то применить). Меняя скорость передачи данных COM-порта, меняем таким образом и частоту меандра.

Но надёжность не 100%, т.к. операционка, API, драйвер - могут иногда делать паузы в потоке.

 

2. Между FTDI и пинами, на которые нужно вывести меандр - поставить МК. Я ставил AVR в TQFP корпусе. Развёл малюсенькую платку с ответным разъёмом, и когда надо, просто добавлял этот "модуль расширения":smile:  От FTDI по UART выдаются короткие задания на контроллер, а тот уже формирует выходные импульсы с нужными параметрами.

Результаты отличные. В МК можно напихать кучу всяких режимов дёргания ножками, и плюс в том, что МК может продолжать "ногодрыг" автономно, даже после закрытия программы на ПК.

 

А просто BitBang-ом сформировать импульсы заданной длины скорее всего не получится. Паузы на шине USB непредсказуемы. Сам чип работает, насколько я помню, только в Bulk режиме, а для критичных ко времени данных требуется режим Isochronous, который FT232R не поддерживает (и FT2232C к сожалению тоже).

Изохронный обмен есть, вроде бы, в FT232B, но я сам не проверял, основываюсь на странице описания микросхемы. (А в самом даташите на FT232B, про изохрон есть только упоминание, что его поддержка была изъята при каком-то очередном обновлении драйвера, так что и здесь ясности никакой :unknw:)

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

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


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

В 10.02.2019 в 01:42, controller_m30 сказал:

Может поздно отвечаю, но делал так.

1...

2...

Спасибо, но оба варианта не подходят

вообщем, есть якобы pin2pin замена в лице CY7C65213, но GPIO находятся отдельно на других пинах а не на уартовских.

У FTDI в корпусе SSOP вообще нет pin2pin совместимого, можно только попытаться натянуть FT240XS согласно картинке в аттаче

я же применил такой метод: вместо одного бита передаю 100, и более менее подошло для синхронного интерфейса

 

fx240xs_to_ft232rl.png

example.png

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


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

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

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

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

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

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

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

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

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

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