PASSIVE SERIAL configuration mode
In PASSIVE SERIAL configuration mode, an external controller passes
configuration data to one or more devices via a serial data stream. The
hardware resources required by the controller to configure such devices
are very reduced, involving ony five lines: two bi-directional lines
(CONF_DONE and nSTATUS), and three device input lines (DATA, nCONFIG
PS configureation mode can be used to configure merely one device or a
chain of devices; int he last case, the nCEO output pin from the first
device is cascaded into the nCE pin of the second device and so on.
It is a three steps process:
1 - Start: the controller check that nSTATUS is high, put a zero on
nCONFIG, waits until CONF_DONE and nSTATUS to go zero, then writes a
one on nCONFIG and waits until the target device releases nSTATUS.
2 - Data transfer: after the configuration process has started, the
controller places the configuration data one bit a time, generation
DCLK positive edges to input this data in the target devices, with a
clock frequency up to 16MHz. Following the falling edge of DCLK after
all it configuration bits are received, the device just configured
release CONF_DONE and pulls down it nCEO output. While loading data,
the controller must check the nSTATUS line, which is pulled down by the
device under configuration if it detects some error. This error
detection capability is obtained through checksum information embedded
with the configuration data.
3 - Initialization: after CONF_DONE goes high, DCLK must be clocked 40
additionnal times for APEX devices, and 10 times for FLEX devices to
initialize the device, going into user mode. When multiple devices are
configured, the wired-AND CONF_DONE line remains low until the last
device is configured, therefore all devices go to initialization mode
at the same time.