Every new data frame is indicated by a start and stop
sequence, as illustrated in
Start Sequence - Start Frame is indicated by SDAT going LOW
when SCLK is HIGH. Every time a start signal is given, the next
8-bit data must be the device address (seven bits) and a R/W
bit, followed by register address (eight bits) and register data
Stop Sequence - Stop Frame is indicated by SDAT going HIGH
when SCLK is HIGH. A Stop Frame frees the bus for writing to
another part on the same bus or writing to another random
During Write Mode the CY22393,CY22394 and CY22395 will
respond with an Acknowledge pulse after every eight bits. This
is accomplished by pulling the SDAT line LOW during the N*9
clock cycle as illustrated in
(N = the number of bytes
transmitted). During Read Mode the acknowledge pulse after
the data packet is sent is generated by the master.
Serial Programming Interface (SPI) Protocol
The CY22393,CY22394 and CY22395 utilizes a 2-serial-wire
interface SDAT and SCLK that operates up to 400 kbits/sec in
Read or Write mode. The basic Write serial format is as
Start Bit; 7-bit Device Address (DA); R/W Bit; Slave Clock
Acknowledge (ACK); 8-bit Memory Address (MA); ACK; 8-bit
Data; ACK; 8-bit Data in MA+1 if desired; ACK; 8-bit Data in
MA+2; ACK; etc. until STOP Bit. The basic serial format is
Default Startup Condition for the CY22393/94/95
The default (programmed) condition of each device is
generally set by the distributor, who will program the device
using a customer-specified JEDEC file produced by
CyClocksRT, Cypress’s proprietary development software.
Parts shipped by the factory are blank and unprogrammed. In
this condition, all bits are set to 0, all outputs are three-stated,
and the crystal oscillator circuit is active.
While users can develop their own subroutine to program any
or all of the individual registers as described in the following
pages, it may be easier to simply use CyClocksRT to produce
the required register setting file.
The device address is a 7-bit value that is configured during
Field Programming. By programming different device
addresses, two or more parts can be connected to the serial
interface and be independently controlled. The device address
is combined with a read/write bit as the LSB and is sent after
each start bit.
The default serial interface address is 69H, but should there
be a conflict with any other devices in your system, this can
also be changed using CyClocksRT.
Data is valid when the clock is HIGH, and may only be transi-
tioned when the clock is LOW as illustrated in
Writing Individual Bytes
A valid write operation must have a full 8-bit register address
after the device address word from the master, which is
followed by an acknowledge bit from the slave (ack = 0/LOW).
The next eight bits must contain the data word intended for
storage. After the data word is received, the slave responds
with another acknowledge bit (ack = 0/LOW), and the master
must end the write sequence with a STOP condition.
Writing Multiple Bytes
In order to write more than one byte at a time, the master does
not end the write sequence with a stop condition. Instead, the
master can send multiple contiguous bytes of data to be
stored. After each byte, the slave responds with an
acknowledge bit, just like after the first byte, and will accept
data until the acknowledge bit is responded to by the STOP
condition. When receiving multiple bytes, the CY22393,
CY22394, and CY22395 internally increments the register
Document #: 38-07186 Rev. *B
Page 8 of 19