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

 
 
> CY7C68013A и PKTEND, поведение CY7C68013A с использованием PKTEND
MSL
сообщение Aug 17 2009, 09:55
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 75
Регистрация: 25-07-04
Из: Rostov-on-Don
Пользователь №: 382



Работаю с CY7C68013A в режиме синхронного slave fifo, EP6 настроена как IN в AUTOIN mode c EP6AUTOINLEN = 0x200, quad buffered. Мастер пишет в EP6 данные и когда ему приходит команда - заканчивает запись дергая PKTEND вместе с последним SLWR. Размеры таких пакетов могут быть от 4х байт до нескольких килобайт. Проблема в том, что если размер отсылаемых данных случайным образом совпадет с 0x200 - то пакет просто "исчезает". В принципе проблема решается если флаг ZEROLEN поставить в 1 и PKTEND дергать через такт после последнего SLWR, но так бы делать не хотелось... Если кто знает - подскажите плиз как лучше решить данную проблему. Считать байты просьба не предлагать-)) Спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ArMouReR
сообщение Aug 17 2009, 17:13
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 61
Регистрация: 3-03-06
Пользователь №: 14 936



Я дергал PKTEND через много клоков после последнего SLWR. Стоял счетчик и если не приходили данные в течении 2^16 слоков то срабатывал PKTEND.
Флаг ZEROLEN был в нуле.
Попробуйте так. Или вам как то мешает задержанный PKTEND ?
Go to the top of the page
 
+Quote Post
MSL
сообщение Aug 18 2009, 13:16
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 75
Регистрация: 25-07-04
Из: Rostov-on-Don
Пользователь №: 382



Цитата(ArMouReR @ Aug 17 2009, 21:13) *
Я дергал PKTEND через много клоков после последнего SLWR. Стоял счетчик и если не приходили данные в течении 2^16 слоков то срабатывал PKTEND.
Флаг ZEROLEN был в нуле.
Попробуйте так. Или вам как то мешает задержанный PKTEND ?


Да просто не хочется "лишних" тактов.

Вообще мне немного непонятно в моем случае поведение EP6 в AUTOIN режиме. Если не использовать PKTEND, то данные отсылаются драйверу только после заполнения всего буфера 2048 байт. По идее же если EP6AUTOINLEN = 0x200, то данные должны отсылаться драйверу как только в буфере 512 байт без PKTEND? А этого не происходит. Если поставить например EP6AUTOINLEN = 0x100, то данные начинают отсылаться драйверу как только в буфере 0x100 байт. Сам обмен in/out происходит без ошибок.
Go to the top of the page
 
+Quote Post



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

 


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


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