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

 
 
> 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

Сообщений в этой теме
- Dmitriy_V   FTDI FT232R BitBangMode   Aug 30 2006, 20:45
|- - KRS   Цитата(Dmitriy_V @ Sep 1 2006, 14:11) Инт...   Sep 1 2006, 11:32
|- - Dmitriy_V   Цитата(KRS @ Sep 1 2006, 15:32) Цитата(Dm...   Sep 1 2006, 23:40
- - 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 Текстовая версия Сейчас: 30th July 2025 - 01:28
Рейтинг@Mail.ru


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