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

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> XMega - FT232RL - PS
zombi
сообщение May 16 2012, 10:04
Сообщение #31


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(XVR @ May 16 2012, 12:53) *
Я тоже, но там есть функции Purge,Clear и EventSymbol в настройках. Возможно что то из этого может помочь. Еще там есть настройки таймаутов для read/write (отдельно).
FTшные функции которые хоть както могут влиять на буфер практически такие же как обычные WINIP.
WINIPшные все перепробывал, безрезультатно.
Таймауты как только не крутил всё в пустую.

Go to the top of the page
 
+Quote Post
ReAl
сообщение May 16 2012, 10:34
Сообщение #32


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(zombi @ May 16 2012, 08:27) *
Поставил 1 и задержка действительно стала 1мс, правда иногда скачет до 2-х мс, но это видать винда чудит.
Я делал пакетный протокол (в рамке SLIP, которой и Wake пользуется), так установкой EventChar на символ разделителя пакетов обошёлся, не хуже было точно.
Если FTDI-шному драйверу виртуального COM-порта задать EventChar, то не только поток программы в Win не дёргается по каждому байту и спокойно спит, пока в буфере драйвера не появится этот символ, но в при передаче драйвер, и при приёме сама микросхема FTDI отправляет недозаполненный буфер по приходу этого символа.
Дело было давно с FT232BM, точных времён не помню, но я в дальнейшем даже не трогал в настройках те 16 мс по умолчанию.
Без прописывания EventChar все те милисекунды, которые должны быть.

Цитата(zombi @ May 16 2012, 12:48) *
Кажется я поторопился с предсказуемостью biggrin.gif
Если устанавливаю скорость больше чем 2Mb/s то, ниче не работает crying.gif
Токи комп не понимает толи проц чегото не успевает laughing.gif
Года три назад — та же FT232BM, завалявшаяся в столе + Cyclone EP1C3.
По ТЗ на мой кусок был UART 2 Mbps (и не от компа), но я c заглушкой в альтерине, которая принятый байт тут же отдаёт в UART на передачу (заменяя по дороге '?' на '!') гонял и на 3 MBps.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
zombi
сообщение May 16 2012, 18:01
Сообщение #33


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(ReAl @ May 16 2012, 13:34) *
...установкой EventChar на символ разделителя пакетов обошёлся
Но у меня и на приём и на передачу могут быть любые байты 0..FF как использовать EventChar ?

Уже 10 лет чип на рынке и неужели ни укого не возникло необходимости начать передачу не полностью заполненного буфера?
Неужели разработчики не заложили такую возможность? или заложили но почемуто скрывают?
А может всё на столько элементарно что об этом никто не упоминает?
Пол для в гугле искал хоть что то подобное, но ничего не нашел.
КАПЕЦ! wacko.gif
Go to the top of the page
 
+Quote Post
ReAl
сообщение May 16 2012, 19:49
Сообщение #34


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(zombi @ May 16 2012, 21:01) *
Но у меня и на приём и на передачу могут быть любые байты 0..FF как использовать EventChar ?
Пакетная передача с byte-stuffing. Выделенный байт используется для отмашки границ пакета и при наличии в сообщении подменяется парой других байт.
В данном конкретном случае использовалась рамка SLIP (почти эта подстановка используется в Wake, но в спецификации от Леонида Ивановича байт FEND не передаётся в конце пакета, что делает бессмысленной установку его как EventChar).

Есть ещё COBS.
SLIP в катастрофически неудачном случае может удвоить длину пакета, у COBS удлиннение максимум байт на пакет (при пакетах короче 254 байт).
SLIP мне когда-то был навязан необходимостью работы с радиомодемом, после чего исходники копировались в несколько других проектов. Про COBS узнал позже и пока не было куда приткнуть.



Цитата(zombi @ May 16 2012, 21:01) *
Уже 10 лет чип на рынке и неужели ни укого не возникло необходимости начать передачу не полностью заполненного буфера?
Неужели разработчики не заложили такую возможность? или заложили но почемуто скрывают?
У FT2232D на каждом канале есть нога SI/WU - SendImmediate/WakeUp
То, что надо. Но это побольше байда, чем FT232R
Никогда не пользовался, мне EventChar хватало. Причём он был еще для обычного RS232 использован и там тоже был полезен, а с переходом на FT232/FT245 так просто дополнительній бонус получился.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
zombi
сообщение May 16 2012, 20:16
Сообщение #35


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Аглицкий со словарём и то со скрипом.
Цитата(ReAl @ May 16 2012, 22:49) *
Пакетная передача с byte-stuffing. Выделенный байт используется для отмашки границ пакета и при наличии в сообщении подменяется парой других байт.
А что делать если в сообщении уже есть такая пара байт?
Или оную нужно определить и сообщить принимающей стороне?

ЗЫ. Ага всё сам нашел. всё понятно. Спасибо ReAl, буду пробывать.
Цитата
Он использует специальные символы для ограничения кадра данных в последовательном канале. SLIP определяет следующие два символа, служащие для этой цели: End и Esc. Символом End служит символ с кодом ASCII 192 (ОхСО), символом Esc - символ с кодом 219 (OxDB). Компьютер с протоколом SLIP передает символ End в конце каждого пакета данных. Символ Esc используется для обозначения данных, имеющих тот же номер, что и символы Esc и End внутри пакета данных. В том, что для Esc и End выбрали именно указанные коды, нет особого скрытого смысла. Просто они были выбраны, и все. Поэтому почти наверняка в потоке данных пользователя будут встречаться как символы Esc, так и End. Когда это происходит, SLIP использует Esc, чтобы сообщить приемнику, что следующий символ с кодом End на самом деле не является концом кадра. Например, когда в пакете данных попадается байт с номером ОхСО (код символа End), SLIP подставляет двухбайтную Esc-последовательность Esc OxDC. Если байт имеет код самого символа Esc, SLIP вставляет двухбайтную Esc-последовательность Esc OxDD.

ЗЫ.ЗЫ. Обидно только что придётся заниматься паковкой/распаковкой блоков , тратить на это ресурсы мк и всё только потому что FTDIшники поленились реализовать функцию принудительной выгрузки буфера или хотябы сделать задержку меньше 1мс maniac.gif
Go to the top of the page
 
+Quote Post

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

 


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


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