2009-02-16 15:50:28 PPI with external sync
Kayoko Hickman (UNITED STATES)
I will appreciate it very much if someone can tell me if I am understanding this right or not.
I want to read data through PPI with 1 external frame sync (FS1). Does this mean that PPI starts storing data in PPIfifo when it sees FS1 high (if I set "ioctl(ppiFD, CMD_PPI_TRIG_EDGE, CFG_PPI_TRIG_EDGE_RISE);") ? My CPLD sends 1 to PPIFS1 and stays 1 until it finishes sending data. When I set "ioctl(ppiFD, CMD_PPI_TRIG_EDGE, CFG_PPI_TRIG_EDGE_RISE);", ppiread hangs, but when "ioctl(ppiFD, CMD_PPI_TRIG_EDGE, CFG_PPI_TRIG_EDGE_FALL);", it goes through (but I read same data over and over again...). FS1 is level sensitive? Edge sensitive?
Any help will be appreciated.
2009-02-17 04:48:08 Re: PPI with external sync
Michael Hennerich (GERMANY)
The ppi frame syncs are typically edge sensitive.
But be aware of Anomaly 05000313. Some Blackfin derivatives feature this.
Please check the Anomaly sheet for your part in question.
05000313 - PPI Is Level-Sensitive on First Transfer In Single Frame Sync Modes:
When the PPI is configured to trigger on a single external frame sync, all of the transfers require an edge on the frame sync except for the
first transfer. For the first transfer only, the frame sync input is level-sensitive. This will make the PPI begin a transfer if the frame sync is at
the active state, which can cause the PPI to start prematurely.
This anomaly does not apply when the PPI uses 2 or 3 frame syncs.
When using a single external frame sync with the PPI, ensure that the frame sync is in the inactive state when the PPI is enabled.