CM1K Hardware User’s Manual
34
5
The optional I2C slave controller
The CM1K features a serial interface slave running at 100 or 400 Kbit per second. In a configuration with N CM1K
chips daisy-chained together, only one of them can enable its I2C controller. The latter will convert the commands
received though the I2C lines into commands transmitted over the parallel control bus.
The two-wire serial interface defines several different transmission codes, as follows:
-
A start bit
-
An eight-bit address consisting of SlaveID, a 7-bit fixed address, followed by 1 bit of direction (0 if request
to Write, 1 is request to Read). The 7-bit SlaveID of the CM1K is 0x4A. The 8-bit address is 0x94 in the case
of a Write and 0x95 in the case of a Read.
-
An acknowledge bit.
-
An 8-bit message (The CM1K uses 16-bit data for its internal registers, thus requiring two 8-bit transfers
per read or write command)
-
A stop bit
Definition:
-
SlaveID= 0x4A
-
SlaveID_Wr= 0x94
-
SlaveID_Rd=0x95
5.1
Write sequence
Step Master
Slave
1
A typical write sequence begins by a master sending a
start bit followed by SlaveID_Wr
2
If the address is not equal to SlaveID the request
is ignored by the CM1K. Otherwise it returns an
acknowledge bit to the master.
3
The master then transfers the 8-bit address of the
register to write.
4
The slave sends an acknowledge bit to indicate
that the register address has been received.
5
The master transfers the lower byte of the 16-bit data
to write.
6
The slave sends an acknowledge bit.
7
The master transfers the upper byte of the 16-bit data
to write.
8
The slave sends an acknowledge bit.
9
The master stops the request by sending a stop bit.
Example: The waveform below illustrates a Write command. The value 0x0284 is written to a register 0x09 of a
device with a slave address 0xB8 (not a CM1K).