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

 
 
> FTDI FT232R BitBangMode, Непрерывная запись в порт и считывание
Dmitriy_V
сообщение Aug 30 2006, 20:45
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 57
Регистрация: 31-07-06
Пользователь №: 19 217



Необходимо осуществить непрерывный вывод информации с определенной частотой.
Для этой цели использовался BitBangMode микросхемы FT232R.
Однако после вызова процедуры FT_WRITE программа зависает до полного вывода данных.
При этом возникают две серьезные проблемы:
1. невозможно проводить промежуточные вычисления с полученными данными.
2. после полного вывода данных возникает промежуток между окончанием
предыдущего и началом следующего вызова функции FT_WRITE.

Можно ли для данной микросхемы решить эти проблемы?

Сообщение отредактировал Dmitriy_V - Aug 30 2006, 20:46
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Alexsys
сообщение Aug 31 2006, 07:45
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 47
Регистрация: 8-08-06
Из: Москва
Пользователь №: 19 398



Если я правильно понял, тут нужно функцию обмена выносить в отдельный поток. Тогда основная программа подвисать не будет.
Go to the top of the page
 
+Quote Post
Dmitriy_V
сообщение Aug 31 2006, 20:33
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 57
Регистрация: 31-07-06
Пользователь №: 19 217



Цитата(Alexsys @ Aug 31 2006, 11:45) *
Если я правильно понял, тут нужно функцию обмена выносить в отдельный поток. Тогда основная программа подвисать не будет.


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

Остается промежуток времени между окончанием обработки последнего вызова процедуры и
началом следующего. К тому же появляется проблема с определением окончания действия вызываемой процедуры.
Go to the top of the page
 
+Quote Post
Alexsys
сообщение Sep 1 2006, 06:44
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 47
Регистрация: 8-08-06
Из: Москва
Пользователь №: 19 398



Цитата(Dmitriy_V @ Sep 1 2006, 00:33) *
Остается промежуток времени между окончанием обработки последнего вызова процедуры и
началом следующего. К тому же появляется проблема с определением окончания действия вызываемой процедуры.


Мне кажется в многозадачной ОС этот промежуток времени полностью устранить не удастся. А момент окончания процедуры можно отслеживать с помощью глобальной переменной или события.
Go to the top of the page
 
+Quote Post
Dmitriy_V
сообщение Sep 1 2006, 10:11
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 57
Регистрация: 31-07-06
Пользователь №: 19 217



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


Поскольку в самом устройстве есть буфер передачи, то оно будет некоторое время посылать
данные из него до тех пор, пока не придет следующая порция или не закончится предыдущая.
Поэтому сами данные не обязательно записывать в порт непрерывно, они все равно будут
передаваться пакетами, а вот выводится постоянно.

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

К сожалению, данная логика не работает с FT232R


Цитата(KRS @ Sep 1 2006, 12:00) *
у FTDI есть еще одна серьезная проблема с bit bang!!!
дело в том что между выводами бит у них бывает пауза до нескольких ms!! причем это не связано с задержками в USB данные уходят в одном пакете! и даже внутри 2 выводов бывают задержки для теста выводил в USB по 2 байта что бы получать одиночный импульс и задержка на 500 ms!
данные всегда уходили в одном USB пакете! прроверял так вот длина этого импульса часто бывала несколько ms! хотя бауд рейт стоял что бы импульс был 1 микросекунда!
Второй этап делал на максимальном баудрейте вывод как обычный UART так вот там эти два байта выдвигались всегда без задержки!!! Так что у них где то в логике пробелмы!
наблюдал это и в FT232BM и в FT232RL sad.gif


Спасибо, попробую посмотреть данные баги на своем устройстве.

Интересно, в FT245R есть описанные проблемы или нет, он ведь изначально проектировался
для параллельного вывода данных.

И еще, при сбоях в выдаче сигналы #WR на выходе микросхемы тоже сбоит или выводится с постоянной частотой?

Сообщение отредактировал Dmitriy_V - Sep 1 2006, 10:11
Go to the top of the page
 
+Quote Post
KRS
сообщение Sep 1 2006, 11:32
Сообщение #6


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Dmitriy_V @ Sep 1 2006, 14:11) *
Интересно, в FT245R есть описанные проблемы или нет, он ведь изначально проектировался
для параллельного вывода данных.


Так она тоже может работать в обычном режиме (просто там не сдвиговый регистр, а парралельный выход и от баудрейта кстати не зависит, весь пакет можно быстро считать! RXF появляется через каждые 80ns пока есть данные.
Мы использовали и FT245BM и FT245RL с атмлом!

А вот в битбанг режиме у FT245RL те же проблемы (просто сделана возможность апгрейда атмела через нее и на ней делается spi! так вот там те же задержки иногда возникают! хотя данные 100% в одной посылке по USB идут.

Я вот думал С2 интерфейс для силабсов сделать на FT232RL (там получатеся и UART и SPI можно) а вот С2 никак из за этой задержки там клоки нельзя вниз опускать на милисекунды sad.gif
Go to the top of the page
 
+Quote Post
Dmitriy_V
сообщение Sep 1 2006, 23:40
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 57
Регистрация: 31-07-06
Пользователь №: 19 217



Цитата(KRS @ Sep 1 2006, 15:32) *
Цитата(Dmitriy_V @ Sep 1 2006, 14:11) *

Интересно, в FT245R есть описанные проблемы или нет, он ведь изначально проектировался
для параллельного вывода данных.


Так она тоже может работать в обычном режиме (просто там не сдвиговый регистр, а парралельный выход и от баудрейта кстати не зависит, весь пакет можно быстро считать! RXF появляется через каждые 80ns пока есть данные.
Мы использовали и FT245BM и FT245RL с атмлом!

А вот в битбанг режиме у FT245RL те же проблемы (просто сделана возможность апгрейда атмела через нее и на ней делается spi! так вот там те же задержки иногда возникают! хотя данные 100% в одной посылке по USB идут.

Я вот думал С2 интерфейс для силабсов сделать на FT232RL (там получатеся и UART и SPI можно) а вот С2 никак из за этой задержки там клоки нельзя вниз опускать на милисекунды sad.gif


Для Bit Bang можно выводить сигналы RDn и WRn как для параллельного порта.
При этом они идут с частотой битрейта или нет?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Dmitriy_V   FTDI FT232R BitBangMode   Aug 30 2006, 20:45
- - iosifk   Цитата(Dmitriy_V @ Aug 31 2006, 00:45) Не...   Aug 31 2006, 08:05
|- - Dmitriy_V   ЦитатаЭтот вопрос меня тоже интересует. Я еще не п...   Aug 31 2006, 20:52
- - KRS   у FTDI есть еще одна серьезная проблема с bit bang...   Sep 1 2006, 08:00
- - Седой   ЦитатаНеобходимо осуществить непрерывный вывод инф...   Sep 3 2006, 14:41
|- - Dmitriy_V   Цитата(Седой @ Sep 3 2006, 18:41) Если не...   Sep 4 2006, 09:54
- - Седой   ЦитатаКакой дешевый микроконтроллер посоветуешь дл...   Sep 4 2006, 12:00
|- - Dmitriy_V   Цитата(Седой @ Sep 4 2006, 16:00) А самым...   Sep 8 2006, 10:25
- - Седой   ЦитатаА он работает с USBXpress или нет? Есть каки...   Sep 8 2006, 14:34
|- - Dmitriy_V   Цитата(Седой @ Sep 8 2006, 18:34) ЦитатаА...   Sep 10 2006, 17:02
- - Седой   Прошивается, если написать загрузчик. PS. Сейчас,...   Sep 17 2006, 10:26
- - Dmitriy_V   Цитата(Седой @ Sep 17 2006, 14:26) Прошив...   Sep 19 2006, 18:39
- - Dmitriy_V   Цитата(Dmitriy_V @ Sep 19 2006, 22:39) Вс...   Oct 12 2006, 09:35


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 21:57
Рейтинг@Mail.ru


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