- SPI (Serial Peripheral Interface), Mega, . -, SPI , , () , , -, SPI , SPI. . , , (master). , , (slave). . .
SPI AVR-.
SPI:
,
(Idle)
() SPI (CK/2)
() CPU SPI . 2.26. . SPI SS , . ( ) , SCK. MOSI , MISO, , . SPI SS ( ).
SPI (), SS . . SPI 8- . SPI , (SPIF). SPIE SPCR, SPI . , SPDR, SS. . , SPI , MISO , , SS . SPI (SPDR), SS. , , SPIF. SPI (SPIE) SPCR, SPIF . SPDR . .
|
|
, . , SPI, . , SPI, . .
SPI SCK. SPI fosc/4.
SPI , MOSI, MISO, SCK SS (. . 2.48).
2.48. SPI
SPI | SPI | |
MOSI | ||
MISO | ||
SCK | ||
SS |
. . B, , SPI.
SPI .
; ;SPI
.include m128def.inc
;*********************************************************
.DSEG
var1:.BYTE 5; 5 var1
.CSEG
ldi r30,low(var1); Z
ldi r31,high(var1); Z
ld r1,Z; VAR1 r1
;
ldi r16,high(ramend)
out sph,r16
ldi r16,low(ramend)
out spl,r16
mm11:
Ldi r18,$05;
; MOSI (PB2) SCK (PB1) ,
;
ldi r16,(1<<PB2)|(1<<PB1)
out DDRB,r16
; SPI , ;fck/16
ldi r17,(1<<SPE)|(1<<MSTR)|(1<<SPR0)out SPCR,r17
SPI_MasterInit:
Ld r16,Z+
Call SPI_MT
dec r18
Brne SPI_MasterInit
rjmp mm11
; (r16)
SPI_ MT:
out SPDR,r16
Wait_Transmit:
sbis SPSR,SPIF;
rjmp Wait_Transmit
ret