V PERIPHERAL MODULES 3 (INTERFACE): DIRECTION CONTROL SERIAL INTERFACE (DCSIO)
S1C33E07 TECHNICAL MANUAL
EPSON
V-3-7
V
DCSIO
V.3.5 Control of Data Transfer
Preparation for data transfer
Perform the following procedure before starting data transfer:
1. Set up the DCSIO conditions as described in the previous section.
2. Set up the interrupt and DMA conditions using the ITC registers and the DCSIO interrupt control register
(explained later). When using the DCSIO interrupt, the cause of DCSIO interrupt flag in the ITC must be
cleared before enabling the interrupt.
3. Write 1 to the DCSIOEN (D0/0x301800) to turn the DCSIO circuit on.
The DCSIO circuit starts frequency division of the source clock.
DCSIOEN: DCSIO Enable Bit in the DCSIO Control Register (D0/0x301800)
The following explains how to control data transfer assuming that Line A is used for data transfer, Line B is used
for clock output, and the transfer rate of Line A is set to Line B (base line)
× 1/8.
Data transmission
Write a transmit data to TXDA[7:0] (D[23:16]/0x301804) and a bit stream of the clock (e.g., 00001111) to
TXDB[7:0] (D[7:0]/0x301804). Be sure to write these data simultaneously as these bits are assigned in the
same register.
TXDA[7:0]: Line A Transmit Data Bits in the DCSIO Data Load Register (D[23:16]/0x301804)
TXDB[7:0]: Line B Transmit Data Bits in the DCSIO Data Load Register (D[7:0]/0x301804)
DCSIO starts data transmission by writing data to the DCSIO Data Load Register (D[23:16]/0x301804).
The DCSIO circuit loads the data written to the register into the respective shift registers. The data bits in the
shift registers are shifted one by one at the rising edge of the transfer clock and are output from the DCSIO0
and DCSIO1 pins. Data is output from the MSB or the LSB according to the LSBFIRST (D1/0x301800) set
value.
LSBFIRST: LSB First Select Bit in the DCSIO Control Register (D1/0x301800)
The DCSIO circuit provides TXBE (D1/0x301818) to indicate the DCSIO Data Load Register (0x301804)
status. This flag is reset to 0 (not empty) when data is written to the DCSIO Data Load Register (0x301804)
and is set to 1 (empty) when the written data is loaded into the shift register. An interrupt can be generated
simultaneously with this flag set to 1. Check to see if the TXBE (D1/0x301818) is set to 1 by polling or using
this interrupt before the next transmit data can be written to the DCSIO Data Load Register (0x301804).
TXBE: Transmit Data Empty Flag in the DCSIO Status Register (D1/0x301818)
The DCSIO circuit continues data output until the 8-bit data has been transmitted.
ADVRATE (D3/0x301800) is set to 1 (Base line
× 1/8) in this example, therefore, Line B transmits the contents
of TXDB[7:0] (D[7:0]/0x301804) 8 times while Line A transmits an 8-bit data.
If the next transmit data exists in the DCSIO Data Load Register (0x301804) when a data transfer has finished,
the DCSIO circuit repeats the same transmit operation as above.
If no data exists, data transfer is terminated. The DCSIO0 and DCSIO1 pins maintain the status of the last bit
transmitted. It continues until the next data transfer is started, 0 is written to DCSIOEN (D0/0x301800), or the
S1C33E07 is reset.
The transmitter/receiver status sets/resets BUSY (D0/0x301818). BUSY (D0/0x301818) is set to 1 when data is
being transferred and reset to 0 upon completion of a data transfer. Use this flag to check if a data transfer has
completed.
BUSY: DCSIO Busy Flag in the DCSIO Status Register (D0/0x301818)