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 and DCLK). 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.