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

 
 
 
Reply to this topicStart new topic
> CY7C68013A FIFO, как вставить свои 5 байт в начало пакета?
Igoryok
сообщение Feb 12 2007, 15:07
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 12-02-07
Пользователь №: 25 265



Доброго времени суток. Мучаюсь одним вопросом-как вставить несколько байт в начало пакета, передаваемого в FIFO?. Суть в следующем: с АЦП идет поток данных и пишется в FIFO, чтоб передать по USB HS в комп. Предполагается использовать GPIF для ввода данных. НО! Необходимо в самое начало каждого пакета вставлять несколько байт служебной информации (счетчик шины, который требуют программисты). Судя по TRM можно редактировать пакеты при AUTOIN=0, но очень расплывчыто написано...Можно ли записать в буфер несколько байт, а потом включить запись с АЦП через GPIF? Не потрутся ли записанные данные? И по какому принципу работает адресный счетчик этого FIFO?
Go to the top of the page
 
+Quote Post
jur
сообщение Feb 12 2007, 20:54
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 205
Регистрация: 16-10-05
Пользователь №: 9 704



Цитата(Igoryok @ Feb 12 2007, 14:07) *
Судя по TRM можно редактировать пакеты при AUTOIN=0, но очень расплывчыто написано...
Написано расплывчато, да.
Цитата(Igoryok @ Feb 12 2007, 14:07) *
Можно ли записать в буфер несколько байт, а потом включить запись с АЦП через GPIF? Не потрутся ли записанные данные? И по какому принципу работает адресный счетчик этого FIFO?
Суть тут очень проста. Дело в том, что когда буфер FIFO заполнен, он поступает в распоряжение SIO. Если AUTOIN=1, то он тут же передается в шину. Но если AUTOIN=0, то с буфером можно делать, что заблагорассудится. В частности, изменить в нем любые байты. А после изменения нужно "вручную" передать их в USB. Вот пример:

// FIFO заполнен, корректируем содержимое пакета
EP4FIFOBUF[0] = packet_counter++;
EP4BCH = 2; // send 512 bytes
SYNCDELAY;
EP4BCL = 0; // arm EP4IN

В этом примере в начало пакета добавляется его номер и скорректированный пакет уходит в USB.


--------------------
MPEG-4 - в массы!
Go to the top of the page
 
+Quote Post
Igoryok
сообщение Feb 13 2007, 09:11
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 12-02-07
Пользователь №: 25 265



[/quote]
Дело в том, что когда буфер FIFO заполнен....... с буфером можно делать, что заблагорассудится..
[/quote]
Это я понял из TRM, у меня ситуация другая-мне СНАЧАЛО надо записать 5 байт в буфер FIFO, а потом уже заполнять его через GPIF. Если сначало его заполнить, а потом начать редактировать первые 5 байт, то по логике они потрутся (потеряются 5 байт информации) и заменятся на новые (отредактированные), что в моем случае недопустимо. Может кто сталкивался с подобной проблемой?
Go to the top of the page
 
+Quote Post
jur
сообщение Feb 13 2007, 09:43
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 205
Регистрация: 16-10-05
Пользователь №: 9 704



Цитата(Igoryok @ Feb 13 2007, 08:11) *
у меня ситуация другая-мне СНАЧАЛО надо записать 5 байт в буфер FIFO, а потом уже заполнять его через GPIF. Если сначало его заполнить, а потом начать редактировать первые 5 байт, то по логике они потрутся (потеряются 5 байт информации) и заменятся на новые (отредактированные), что в моем случае недопустимо.
Не представляю себе ситуации, когда было бы нельзя записать эти 5 байт в буфер после его заполнения... А так они конечно затрутся GPIF'ом. Тут надо что-то извращенное замутить...


--------------------
MPEG-4 - в массы!
Go to the top of the page
 
+Quote Post
vmp
сообщение Feb 13 2007, 11:03
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 20-01-05
Из: Зеленоград
Пользователь №: 2 070



Глупый вопрос - а почему именно в начало буфера?
Может быть программистов устроят 5 байт в конце буфера?
Go to the top of the page
 
+Quote Post
Raimis
сообщение Feb 18 2007, 20:12
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 23-11-05
Пользователь №: 11 279



Цитата(Igoryok @ Feb 13 2007, 10:11) *
Если сначало его заполнить, а потом начать редактировать первые 5 байт, то по логике они потрутся (потеряются 5 байт информации) и заменятся на новые (отредактированные), что в моем случае недопустимо. Может кто сталкивался с подобной проблемой?

С подобной проблемой несталкивался, но одно решение пришло в голову:
В GPIF надо писать не в 8-битным, а 16-битным режимом. С АЦП подавать 8 бит, а в С68013 записать 16 бит. Тогда только половина пакета пакета будет заполнена (каждый второй байт будет с АЦП). Ну вот эту другую 'половину' можно заполнить любой информацией. Такой метод подойдет конечно только в том случае если есть двойной запас скорости.
Go to the top of the page
 
+Quote Post

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

 


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


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