Цитата(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.