Learn hardware SPI routines:
1.Read data sheet timing diagrams.
2.Test with working SHIFTOUT and SHIFTIN program.
Shiftout is identical to Shout etc.
3.Bitbang above program and watch on a scope (with additonal delays).
Code:
SendData:
'SHOut sDATA, sCLOCK, msbfirst, [255\1, vDAT\8]
nop
nop
nop
nop
Low sCLOCK
High sDATA ' DATA BIT
nop
nop
nop
nop
High sCLOCK
nop
nop
nop
nop
Low sCLOCK
For z = 7 To 0 Step -1 ' MSB FIRST
nop
nop
nop
nop
Low sCLOCK
e = GetBit vDAT,z
If e = 1 Then
High sDATA
Else
Low sDATA
EndIf
nop
nop
nop
nop
High sCLOCK
nop
nop
nop
nop
Low sCLOCK
Next
Return
4.Now sequence is known. Read PIC 452 data sheet page 130 for your SPI configuration of
SSPSTAT = %01000000
SSPCON1 = %00100010
5. Hardware SPI is simply a 2 way simultaneous byte transfer.
One of the bytes can be a dummy byte.
SSPBUF = ySEND_BYTE 'SENDS 1 BYTE TO SD
While SSPSTAT.0 = 0: Wend 'WHILE TX/RX COMPLETE
yREAD_BYTE = SSPBUF 'READS 1 BYTE FROM SD
Norm
Bookmarks