您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 技术讨论区 -> 请问怎样检测BF518的SPI工作正常啊?
本帖共有460个阅读者
发表帖子 发表投票 回复主题
请问怎样检测BF518的SPI工作正常啊?
yuangj(论坛新手)
yuangj
头衔:社区公民
帮派:无帮无派
帖数:3
金钱:129
积分:5
注册时间:2014/9/13
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
请问怎样检测BF518的SPI工作正常啊?
我做了一个BF518板子,其他调试都正确,但是在调试SPI是没有任何反应,请问有什么方法测试吗?SPI口做普通GPIO口是一切正常。但是就是SPI模式时我任何现象。可以给一个测试程序吗?谢谢!

人生不管有多大困难,都将被克服~~,至少我还活着!
等级:论坛新手 参考IP地址:*.*.*.*
2014/11/8 18:31:12
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
/********************************************************
*
*   北京四维卓信电子有限公司
*
*  【OpenADSP开源社区】
*
********************************************************/
#include <cdefBF518.h>
#include <ccblkfn.h>
#include "cpld.h"

unsigned char buff_w[512];
unsigned char buff_r[512];

void Init_SDRAM(void)
{
*pEBIU_SDRRC = 0x00000817;
*pEBIU_SDBCTL = 0x00000025;
*pEBIU_SDGCTL = 0x0091998d;
ssync();
}

void Init_EBIU(void)
{
*pEBIU_AMBCTL0 = 0x7bb07bb0;
*pEBIU_AMBCTL1 = 0xffc07bb0;
*pEBIU_AMGCTL = 0x000f;
}

void Set_PLL(int pmsel,int pssel)
{
int new_PLL_CTL;
*pPLL_DIV = pssel;
asm("ssync;");
new_PLL_CTL = (pmsel & 0x3f) << 9;
*pSIC_IWR |= 0xffffffff;
if (new_PLL_CTL != *pPLL_CTL)
{
*pPLL_CTL = new_PLL_CTL;
asm("ssync;");
asm("idle;");
}
}

void init_port(void)
{
*pPORTF_FER |= PF7;
*pPORTF_MUX = 0;
*pPORTG_FER |= PG12|PG13|PG14|PG15;
*pPORTG_MUX =  0 ;
*pPORTG_FER |= PG11;
    *pPORTG_MUX |= (1<<12);
    ssync();
}

void SPI_init(void)
{
*pSPI0_BAUD=  2; //配置速率为1/4系统时钟  SPI速率 = SCLK/2*SPI_BAUD
*pSPI0_FLG |=FLS1;   //选择SPI0SEL2接口
*pSPI0_CTL = 0x1001|CPHA| CPOL|EMISO; //配置模式为手动片选模式
*pSPI0_CTL = (*pSPI0_CTL | SPE); //使能SPI0接口
}

void delay(void)
{
int i;
for(i=0;i<100000;i++);
}

int main()
{
int i;
Set_PLL(16,4);
Init_EBIU();
init_port();

*pDEVICE_OE |=  PPI_SET0;
*pDEVICE_OE |=  PPI_SET1;
SPI_init();
while(1)
{
*pSPI0_FLG &= ~FLG1; //将SPI0SEL2拉到0
while(!(*pSPI0_STAT & SPIF));   //查看SPI0传输状态是否完成
*pSPI0_TDBR = 0xff;       //将数据送入SPI传输数据寄存器
while(*pSPI0_STAT & RXS) //查看SPI0传输状态是否有数据需要接收
i = *pSPI0_RDBR; //读取数据
*pSPI0_FLG |= FLG1;
delay();
}
while(1);
}


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2014/11/8 21:50:18
yuangj(论坛新手)
yuangj
头衔:社区公民
帮派:无帮无派
帖数:3
金钱:129
积分:5
注册时间:2014/9/13
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

谢谢了!我试试!



人生不管有多大困难,都将被克服~~,至少我还活着!
等级:论坛新手 参考IP地址:*.*.*.*
2015/1/21 10:43:06
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.154451 Call, 1 Queries, Processed in 0.015625 second(s),