注册会员
- 积分
- 173
- 威望
- 147
- 贡献
- 26
- 兑换币
- 0
- 注册时间
- 2011-10-25
- 在线时间
- 0 小时
|
5贡献
本帖最后由 keg13579 于 2011-10-25 23:13 编辑
自己写的都用不了。。。
用的是龙丘的集成SD模块的112针的XS128,
通过测试,SD对应的引脚应该是S4 S5 S6 S7
spi的初始化程序:
- void SPI_Init(void)
- {
- MODRR_MODRR4=0; //使用s口
- //DDRM = 0x31; //SCK0=1,MOSI=1,pm0为cs 0b00110001
- DDRS_DDRS5 =1;
- DDRS_DDRS5 =1;
- DDRS_DDRS6 =1;
- DDRS_DDRS7 =1;
- SPI0CR1 = 0x5e; //CPOL=1,CPHA=1 0b01011110
- SPI0CR2 = 0x10; //0b00010000
- SPI0BR = 0x07; // 80M / 256 = 312.5k
- }
复制代码
但在sd的初始化阶段传送SPI数据就没有相应。
- while (!SPI0SR_SPTEF);
- SPI0DRL = ch;
- while (!SPI0SR_SPIF);
- spi_tmp = SPI0DRL;
复制代码
一直卡在while (!SPI0SR_SPIF);里面。
网上的源码写的都是M口的,自己改成S口的,不知道有没有什么要注意的地方。
硬件是集成好的模块,供电什么的也没问题。
第一次写freescale,求指导,谢谢 |
|