2009-02-16 15:50:28     PPI with external sync

Document created by Aaronwu Employee on Aug 13, 2013
Version 1Show Document
  • View in full screen mode

2009-02-16 15:50:28     PPI with external sync

Kayoko Hickman (UNITED STATES)

Message: 69490   


Hello again...


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.


Thank you.




2009-02-17 04:48:08     Re: PPI with external sync

Michael Hennerich (GERMANY)

Message: 69516   


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.