diff options
Diffstat (limited to 'doc/protocol.txt')
-rw-r--r-- | doc/protocol.txt | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/doc/protocol.txt b/doc/protocol.txt new file mode 100644 index 0000000..3f86bde --- /dev/null +++ b/doc/protocol.txt @@ -0,0 +1,37 @@ +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. |