新手上路
- 积分
- 29
- 金钱
- 29
- 注册时间
- 2013-9-5
- 在线时间
- 0 小时
|
楼主 |
发表于 2013-9-7 10:20:32
|
显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,板子是自己做的,电压那里我加了电阻,已经是3.3v了,可是还是不能初始化。都快急死了,原子哥快救命呐。
我的程序使用汇编写的,还是在CMD8那里返回的四个字节不对
CHUSHI: MOV SPCTL,#0DFH ;低速SPI
MOV R1,#200
SETB 5.3
MOV SPSTAT,WCOL|SPIF
D1: MOV A,#0FFH;延时74个时钟
LCALL RW_BYTE
MOV A,#0FFH
LCALL RW_BYTE
MOV A,#0FFH
LCALL RW_BYTE
MOV A,#0FFH
LCALL RW_BYTE
MOV A,#0FFH
LCALL RW_BYTE
MOV A,#0FFH
LCALL RW_BYTE
MOV A,#0FFH
LCALL RW_BYTE
MOV A,#0FFH
LCALL RW_BYTE
MOV A,#0FFH
LCALL RW_BYTE
MOV A,#0FFH
LCALL RW_BYTE
MOV A,#0FFH
LCALL RW_BYTE
MOV A,#0FFH
LCALL RW_BYTE
MOV A,#0FFH
LCALL RW_BYTE
MOV A,#0FFH
LCALL RW_BYTE
MOV A,#0FFH
LCALL RW_BYTE
LCALL DEL10
CLR 5.3
NOP
S1:MOV A,#0FFH
LCALL RW_BYTE
MOV A,#40h ;CMD0
LCALL RW_BYTE
MOV A,#00H
LCALL RW_BYTE
MOV A,#00H
LCALL RW_BYTE
MOV A,#00H
LCALL RW_BYTE
MOV A,#00H
LCALL RW_BYTE
MOV A,#95h
LCALL RW_BYTE
MOV A,#0DDH
LCALL RW_BYTE
CJNE A,#01H,SSS1
JMP SPI_INIT2
SSS1JNZ R1,S1
JMP CHUSHI
SPI_INIT2: MOV A,#0ffh
LCALL RW_BYTE
MOV A,#48h ;CMD8
LCALL RW_BYTE
MOV A,#00h
LCALL RW_BYTE
MOV A,#00h
LCALL RW_BYTE
MOV A,#01h
LCALL RW_BYTE
MOV A,#0AAh
LCALL RW_BYTE
MOV A,#87h
LCALL RW_BYTE
MOV A,#0DDH
LCALL RW_BYTE
CJNE A,#01H,SPI_INIT2 ;版本2.0返回01
MOV A,#0ffh ; CMD8随后的4个字节
LCALL RW_BYTE
MOV A,#0ffh
LCALL RW_BYTE
MOV A,#0ffh
LCALL RW_BYTE
MOV A,#0ffh
LCALL RW_BYTE
MOV A,#0ffh
LCALL RW_BYTE
cjne A,#0AAH,SPI_INIT2
CLR 4.2
D22: MOV A,#0ffh
LCALL RW_BYTE
MOV A,#77h ;CMD55
LCALL RW_BYTE
MOV A,#00h
LCALL RW_BYTE
MOV A,#00h
LCALL RW_BYTE
MOV A,#00h
LCALL RW_BYTE
MOV A,#00h
LCALL RW_BYTE
MOV A,#0ffh
LCALL RW_BYTE
MOV A,#0ffh
LCALL RW_BYTE
MOV A,#0ffh
LCALL RW_BYTE
MOV A,#69h ;ACMD41
LCALL RW_BYTE
MOV A,#40h
LCALL RW_BYTE
MOV A,#00h
LCALL RW_BYTE
MOV A,#00h
LCALL RW_BYTE
MOV A,#00h
LCALL RW_BYTE
MOV A,#0ffh
LCALL RW_BYTE
MOV A,#0DDH
LCALL RW_BYTE
CJNE A,#00H,D11;返回值为什么01H
JMP D2
D11:JMP D22
D2: MOV SPCTL,#0DCH ;高速SPI
SETB 5.3 |
|