ktouch 发表于 2008-6-2 20:01:40

ADSP-BF531的SPORT问题求助

*pSPORT1_TCR1 = TCKFE | LATFS | DITFS | ITFS | ITCLK;
        *pSPORT1_TCR2 = SLEN_8;
        *pSPORT1_TCLKDIV = 200;
        *pSPORT1_TFSDIV = 200;


void SPI_SendByte(INT8U byte)
{
        INT8U temp;

   *pSPORT1_TCR1 |= TSPEN;
   ssync();
   *pSPORT1_TX =byte;
   while (!(*pSPORT1_STAT & 0x0040));//等待字节传输完成
   *pSPORT1_TCR1 &= (~TSPEN);
    printf("TSPORT1_STAT=%X",*pSPORT1_STAT);

}
我调用这函数发数据的时候不能发数据,请大侠帮我解决一下啊,谢谢大家了

hackdj 发表于 2008-6-2 20:26:14

这里懂blackfin 的人少,我都是在uclinux下开发,不关心底层

ktouch 发表于 2008-6-3 17:05:03

问题解决了,改为
while (!(*pSPORT1_STAT & TUVF));//等待字节传输完成
但现在不能接收数据了:-(
INT8U SPI_RecByte(void)
{
   INT8U temp;
   unsigned short testtemp,testtemp0;

   *pSPORT1_TCR1 |= TSPEN;
   *pSPORT1_RCR1 |= RSPEN;
   
   *(unsigned short *)pSPORT1_TX = 0xff;

   while (!(*pSPORT1_STAT & RXNE));//等待接收到数据
   testtemp=*(unsigned short *)pSPORT1_RX;
   temp=*pSPORT1_STAT;
   while (!(*pSPORT1_STAT & RUVF));//等待读完数据
   temp=*pSPORT1_STAT;

   *pSPORT1_TCR1 &= (~TSPEN);
   *pSPORT1_RCR1 &= (~RSPEN);

   temp=(unsigned char)testtemp;
   return(temp);
}

请各位大侠指点小弟啊

ktouch 发表于 2008-6-4 14:58:30

现在能发收数据了,我是仿的SPI来读写SD卡,但是有问题了,SPI通信是每8位数据有8个时钟信号
但是SPORT是每8位数据有很多时钟信号,SPORT一打开就有时钟信号了,这样就通信失败了,有哪位
大侠给我指点一下啊,怎么解决这个问题

qwernet 发表于 2008-6-7 02:26:09

有没有用GPIO口做片选呢?

microyao 发表于 2008-6-7 02:31:06

http://lakefrog.spaces.live.com/blog/cns!3EE1F9C9CF182CD8!479.entry
页: [1]
查看完整版本: ADSP-BF531的SPORT问题求助