. SPI. SPI / . / .
SPI , .
, SPI -. . SPI . . 2.9.
: MOSI, MISO, SCK. (. 2.9).
MOSI , SCK . SCK , . /4.
, MISO. UART, SPI .
SPI:
1. , .
2. / .
3. .
4. ( ).
SS. MISO, MOSI . , .
: SPDR, SPCR, SPSR.
SPDR. .
SPCR. .
:
D7-SPIE .
D6-SPE SPI.
D5-DORD . , .
D4-MSTR /.
D3-CPOL .
D2-CPHA .
D1,D0-SPR1,SPR0 .
SPSR. . :
D7-SPIF /.
D6-WCOL .
D5-D0 .
SPI . .
;------------------------------------------------------------
;
ldi r16,high(ramend)
out sph,r16
ldi r16,low(ramend)
out spl,r16
;------------------------------------------------------------
|
|
;
clr r16
out DDRA, r16
;------------------------------------------------------------
;
ldi r16,(1<<DDB5)|(1<<DDB4)
; MOSI SCK ,
out DDRB,r16
; SPI , fck/16
ldi r17,(1<<SPE)|(1<<MSTR)|(1<<SPR0)
out SPCR,r17
Start:
In r16, PORTA;
RCall Transmit;
rjmp start
;------------------------------------------------------------
;
Transmit:
out SPDR,r16;
Wait:
sbis SPSR,SPIF;
rjmp Wait
ret
6
()
1. , , , SPI.
2. SPI .
3. SPI. , , - .
4. SPI. , A, - .
5. SPI. , , - .
6. SPI. , A, - .
7. SPI . .
8. SPI .
6
1. SPI .
2. SPI .
3. SPI - SPSR . SPI
4. SPI - SPCR . SPI.
5. .
6. SPI - SPDR.
7. SPI, SPI.
8. SPI . / .
9. / SPI .
10. SPI .
11. SPI .
12. - -?
13. - -?
7