Anonymous
Not applicable
Jun 05, 2009
11:23 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 05, 2009
11:23 AM
Hello,
in our design I want to stream data in one consecutive stream into a synchronous FIFO until it's full using the GPIF with a flowstate of
~FifoFlag (==Empty) AND RDY0
This works nicely as long as RDY0 is not 0 for several seconds at a consecutive time. If the FIFO is full for several seconds (thus RDY0 is low for some time), GPIF hangs and does not detect when RDY0 becomes 1 again. In this case the flags say the FIFO is not full, not empty and TC transaction Counter is for example 510 when it was started with 512, the DONE bit is not set, but nothing happens any more.
I've tried several ideas for workarounds, without success:
- GPIFABORT=0xff in a timer-interrupt and re-triggering GPIF
- Using the programmable FIFO flag to stop GPIF before the FIFO is really empty
- Checking the FIFO to be empty from the Host using a vendor-command before sending 512 Bytes more.
- Using the Coding-Style suggested in the FAQ with a while loop until GPIF sets DONE bit again.
Any suggestions?
Bernd
in our design I want to stream data in one consecutive stream into a synchronous FIFO until it's full using the GPIF with a flowstate of
~FifoFlag (==Empty) AND RDY0
This works nicely as long as RDY0 is not 0 for several seconds at a consecutive time. If the FIFO is full for several seconds (thus RDY0 is low for some time), GPIF hangs and does not detect when RDY0 becomes 1 again. In this case the flags say the FIFO is not full, not empty and TC transaction Counter is for example 510 when it was started with 512, the DONE bit is not set, but nothing happens any more.
I've tried several ideas for workarounds, without success:
- GPIFABORT=0xff in a timer-interrupt and re-triggering GPIF
- Using the programmable FIFO flag to stop GPIF before the FIFO is really empty
- Checking the FIFO to be empty from the Host using a vendor-command before sending 512 Bytes more.
- Using the Coding-Style suggested in the FAQ with a while loop until GPIF sets DONE bit again.
Any suggestions?
Bernd
0 Replies