CLK, DO, and DI Lines

Each communication channel comprises a clock line (CLK), data out (DO) line (a.k.a. "master out, slave in" — MOSI), and data in (DI) line ("master in, slave out" — MISO). Ssi.clkmap, ssi.dimap, and ssi.domap properties define which three general-purpose I/O lines of your device are assigned to serve as the CLK, DI, and DO of the selected channel.

Some interfaces, notably, I2C, use a single physical line for moving data in both directions (slave-to-master and master-to-slave). With such interfaces, ssi.dimap and ssi.domap must point to the same physical I/O line. Furthermore, ssi.zmode property must be set to 1- PL_SSI_ZMODE_ENABLED_ON_ZERO and there may be a need for a "pull-up resistor" on the data line (in the I2C world this joint line is called "SDA" and the pull-up resistor is directly specified by relevant datasheets).

Many interfaces require additional interface lines. For example, there is a chip select (CS) line in SPI. The ssi. object does not control such lines — handle them directly using the io. object.

On devices with unidirectional I/O lines, the I/O lines forming your SSI channels must be properly configured (see io.enabled): CLK and DO lines must be set as outputs, and the DI line must be set as input. To find out the type of GPIO lines on your device, refer to its platform documentation (for example, EM1000's is here).