您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> [求助]BF531的SPI驱动SD卡,传输一定数据后... 
本帖共有743个阅读者
发表帖子 发表投票 回复主题
[求助]BF531的SPI驱动SD卡,传输一定数据后SCLK波形异常
415619(论坛新手)
415619
头衔:社区公民
帮派:无帮无派
帖数:1
金钱:112
积分:2
注册时间:2013/7/11
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
[求助]BF531的SPI驱动SD卡,传输一定数据后SCLK波形异常
用论坛的BF531核心板,做了个底板,SPI连接TF卡,PF1为片选,

SPI初始化代码:

*pFIO_DIR |= PF1;
*pFIO_FLAG_S |= PF1;
*pSPI_FLG |= FLS1;
*pSPI_BAUD = 800;
*pSPI_CTL = 0x0000;
*pSPI_CTL = 0x0001 | MSTR | CPHA | CPOL;
*pSPI_CTL = (*pSPI_CTL | SPE);

SD卡初始化完毕后,切换SPI时钟到高速:
void SPI_SetSpeed(u8 SpeedSet)
{
while((*pSPI_STAT & TXS));//等待数据发送完毕
*pSPI_CTL &= ~SPE;

if(SpeedSet == 0)
{
*pSPI_BAUD = 500;
}
else
{
*pSPI_BAUD = 14;//14,SHDC速度到5,普通的只到14,原因未知
}

*pSPI_CTL |= SPE;

ssync();
}

SD卡初始化正常,读卡中的数据也正常,连续向卡内写数据,会经常出问题,
测试波形,发送SCLK信号开始正常,传输一些数量的数据后,突然波形就混乱了,程序打了断点,数据异常后,后续波形都是异常的。
板子上没有大功率器件。
波形如下图,麻烦大家帮忙分析分析,谢谢了!

上传的图片
  201371521212749.bmp [ 146.30 KB 320×234 ] (缩略时请点击查看原图)

 




这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2013/7/15 21:29:11
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
不清楚,感觉时钟上有串扰,你可以尝试停止SPI的时钟信号,然后测量时钟和数据线上此时的波形。

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2013/7/16 19:40:22
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159178 Call, 1 Queries, Processed in 0.015625 second(s),