搜索
bottom↓
回复: 7

MSP430149 SPI速度问题

[复制链接]
(227379893)

出0入0汤圆

发表于 2014-11-7 17:09:03 | 显示全部楼层 |阅读模式
这几天用430 spi 模块驱动SD卡实验,SPI在低速情况下,读取数据是正常的,在数据手册查到F149 SPI最大速度是4MHZ,但是在实际情况中只能达到1MHz,速度在高一点读到数据就出错了,一直找不到其中原因,恳请有经验有坛友指教!
(227379454)

出0入0汤圆

发表于 2014-11-7 17:16:22 | 显示全部楼层
关注,用的是串口的设置?
(227371667)

出0入0汤圆

 楼主| 发表于 2014-11-7 19:26:09 | 显示全部楼层
sky_walker 发表于 2014-11-7 17:16
关注,用的是串口的设置?

SPI设置参照ti官方例程
(227146004)

出0入0汤圆

 楼主| 发表于 2014-11-10 10:07:12 | 显示全部楼层
sky_walker 发表于 2014-11-7 17:16
关注,用的是串口的设置?

找到问题了,这是原来的程序
void SPI_Write_Byte(unsigned char byte)
{
  IFG2 &= 0xCF;
  U1TXBUF = byte;
  while(!(IFG2 & UTXIFG1));
}

unsigned char SPI_Read_Byte(void)
{
  IFG2 &= 0xCF;
  U1TXBUF = 0xFF;
  while(!(IFG2 & URXIFG1));                                //判断URXIFG1为接收完成标志
  return U1RXBUF;
}
这是改过后程序
void SPI_Write_Byte(unsigned char byte)
{
  IFG2 &= 0xCF;
  U1TXBUF = byte;
  while(!(IFG2 & UTXIFG1));
}

unsigned char SPI_Read_Byte(void)
{
  IFG2 &= 0xCF;
  U1TXBUF = 0xFF;
  while(!(IFG2 & UTXIFG1));                                //判断UTXIFG1为接收完成标志
  return U1RXBUF;
}
两个程序不同之处就是接收字节完成判断的标志位,造成SPI速度上不去,两个程序各有优缺点,以前我采用的是第二程序,但是存在一个问题就是SPI接收的第一个字节是错误的,永远是0xFF,所以我用判断URXIFG1来确认接收是否完成,但是又出现了另一个问题,在实际中如果接收字节是0xFF,URXIFG1是不置位的,程序会一直死在那里
(226941548)

出0入0汤圆

发表于 2014-11-12 18:54:48 | 显示全部楼层
官方也是这么配置的?
(226939593)

出0入0汤圆

发表于 2014-11-12 19:27:23 | 显示全部楼层
        while (!(IFG2 & UCB0TXIFG))                                // USCI_B0 TX buffer ready?
        {
        }
        UCB0TXBUF = *pbuf;                                     // Previous data to TX, RX

        while(UCB0STAT & UCBUSY)
        {
        }

        temp = UCB0RXBUF;
(226928760)

出0入0汤圆

 楼主| 发表于 2014-11-12 22:27:56 | 显示全部楼层
sky_walker 发表于 2014-11-12 19:27
while (!(IFG2 & UCB0TXIFG))                                // USCI_B0 TX buffer ready?
        {
        }

好的,回去试下,对了还要咨询你一下,spi寄存器里里有个CKPH和CKPL两个标志位设置,一直没搞清楚什么时候需要设置,而且不同spi速率下对数据是有影响的
(226448673)

出0入0汤圆

发表于 2014-11-18 11:49:23 | 显示全部楼层
1M基本上小应用都可以了吧
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号 )

GMT+8, 2022-1-21 10:13

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表