attiny167-esxz ATMEL Corporation, attiny167-esxz Datasheet - Page 144

no-image

attiny167-esxz

Manufacturer Part Number
attiny167-esxz
Description
8-bit Avr 8-bit Microcontroller Microcontroller With 16k Bytes In-system Programmable Flash And Lin Controller
Manufacturer
ATMEL Corporation
Datasheet
14.3.2
144
ATtiny167
SPI Master Operation Example
Figure 14-3. Three-wire Mode, Timing Diagram
The Three-wire mode timing is shown in
erence. One bit is shifted into the USI Data Register (USIDR) for each of these cycles. The
USCK timing is shown for both external clock modes. In External Clock mode 0 (USICS0 = 0), DI
is sampled at positive edges, and DO is changed (Data Register is shifted by one) at negative
edges. External Clock mode 1 (USICS0 = 1) uses the opposite edges versus mode 0, i.e.,
samples data at negative and changes the output at positive edges. The USI clock modes corre-
sponds to the SPI data mode 0 and 1.
Referring to the timing diagram
1. The Slave device and Master device sets up its data output and, depending on the proto-
2. The Master generates a clock pulse by software toggling the USCK line twice (C and D).
3. Step 2. is repeated eight times for a complete register (byte) transfer.
4. After eight clock pulses (i.e., 16 clock edges) the counter will overflow and indicate that
The following code demonstrates how to use the USI module as a SPI Master:
CYCLE
USCK
USCK
col used, enables its output driver (mark A and B). The output is set up by writing the
data to be transmitted to the USI Data Register. Enabling of the output is done by setting
the corresponding bit in the port Data Direction Register. Note that point A and B does
not have any specific order, but both must be at least one half USCK cycle before point C
where the data is sampled. This must be done to ensure that the data setup requirement
is satisfied. The 4-bit counter is reset to zero.
The bit value on the slave and master’s data input (DI) pin is sampled by the USI on the
first edge (C), and the data output is changed on the opposite edge (D). The 4-bit counter
will count both edges.
the transfer is completed. The data bytes transferred must now be processed before a
new transfer can be initiated. The overflow interrupt will wake up the processor if it is set
to Idle mode. Depending of the protocol used the slave device can now set its output to
high impedance.
SPITransfer:
SPITransfer_loop:
DO
DI
sts
ldi
sts
ldi
sts
lds
sbrs
( Reference )
A
USIDR,r16
r16,(1<<USIOIF)
USISR,r16
r16,(1<<USIWM0)|(1<<USICS1)|(1<<USICLK)|(1<<USITC)
USICR,r16
r16, USISR
r16, USIOIF
B
MSB
MSB
C
1
D
2
(Figure
6
6
3
14-3), a bus transfer involves the following steps:
5
5
Figure 14-3
4
4
4
At the top of the figure is a USCK cycle ref-
5
3
3
6
2
2
7
1
1
LSB
LSB
8
7728A–AUTO–07/08
E

Related parts for attiny167-esxz