14243|27

349

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

LM3S的SPI,用SPI读写设置,读不到数据啊! [复制链接]

LM3S的SPI,用SPI读写TC72一直都不到数据,读时,在主模式下SCK有波形吗?设置如下。
    // Enables a peripheral SSI0
    SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI0);
    // Configures pin(s) for use by the SSI peripheral
    // PA2 SSI0CLK(SSCK)  PA4 SSI0RX(MISO) PA5 SSI0TX(MOSI)
    GPIOPinTypeSSI(GPIO_PORTA_BASE,(GPIO_PIN_2 | GPIO_PIN_4 | GPIO_PIN_5));
    // PA2 SSI0CLK(SSCK)
    //GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_2);
    // PA4 SSI0RX(MISO)
    //GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_4); 
    // PA5 SSI0TX(MOSI)
    //GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_5);

    // Disables the synchronous serial interface 
    SSIDisable(SSI0_BASE);

   // Configure the SSI, 1MHZ 
    SSIConfigSetExpClk(SSI0_BASE,   // Base 
                                    //SysCtlClockGet(),  // SSIClk
                                   20000000,            // 5MHZ
                                  SSI_FRF_MOTO_MODE_2, // Protocol
                                  SSI_MODE_MASTER,     // Mode
                                 1000000,             // BitRate 
                                  8 // DataWidth
         ); 
   // Enables the synchronous serial interface  
   SSIEnable(SSI0_BASE);
有用模块读写SPI EEPROM的吗? 

最新回复

你好,在吗?希望学习一下LM3s SSI读外扩Flash的例程,看你们调试成功,很希望分享一下你们的代码,我这里遇到原来和你们一样的麻烦,谢谢!  详情 回复 发表于 2010-12-4 14:47
 
点赞 关注(1)

回复
举报

109

帖子

0

TA的资源

纯净的硅(初级)

沙发
 
你这问题,我手头上没有板子,我无法调试.你把spi的协议多看看,抓一下它的波形.分析波形是否符合spi的要求.
 
 

回复

349

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
谢谢了
 
 
 

回复

6892

帖子

0

TA的资源

五彩晶圆(高级)

4
 

用SPI提供的函数,可以读到有SPI接口的芯片数据的。

 
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 

回复

349

帖子

0

TA的资源

一粒金砂(中级)

5
 
为什么我看不到25LC256 SO口上的数据,而且再读时SCK在上没有波形
 
 
 

回复

349

帖子

0

TA的资源

一粒金砂(中级)

6
 
写时SCK、SDO的波形都正常
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(高级)

7
 
你的电路呢?EEROM几伏供电的?主模式,SCK是M3提供出来的时钟信,必然有波形
 
 
 

回复

349

帖子

0

TA的资源

一粒金砂(中级)

8
 
我就是SPI接了25LC256,接口都对啊。电路上传不了吧?SCK在写完后,就没有了。奇怪?可能是那里设置不对。
 
 
 

回复

349

帖子

0

TA的资源

一粒金砂(中级)

9
 
25LC256是2.5-5.5V的啊!我SPI上还有一个TC72,3.3V的,也是读不到数据。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(高级)

10
 

回复 9楼 yuchenglin 的帖子

我的意思是说,M3的IO可以承受5V电压,但是它输出的电平,不是5V,你的EEROM,要求的高电平下限阈值是0.7VCC?

这个,SCK的波形,你先测M3出来的有问题没,再接你的EEROM,开始使用低速,调通了再提高……
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(高级)

11
 
TI的8962开发板的OLED就是spi的,你看下例程……
 
 
 

回复

349

帖子

0

TA的资源

一粒金砂(中级)

12
 
25LC256 VIH 0.7VCC , VOH  VCC -0.5,我现在用的是100K啊!M3定时器和IO口都能正常工作。取数据前需写一个0XFF吗?感觉是需要的,如:SSIDataPut(SSI0_BASE, 0xFF);
              SSIDataGet(SSI0_BASE, pulData++);但是还是没有数据。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(高级)

13
 

回复 12楼 yuchenglin 的帖子

需要些0XFF,你说的SCK没信号的一个原因,就是发送寄存器里没东西,你在线调试,单步,看SPI的寄存器有没有不对

[ 本帖最后由 mawenwei 于 2010-8-23 15:42 编辑 ]
 
 
 

回复

349

帖子

0

TA的资源

一粒金砂(中级)

14
 
没有什么不对啊!奇怪
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(高级)

15
 

原帖由 yuchenglin 于 2010-8-23 22:14 发表 没有什么不对啊!奇怪

 

嘿嘿,仔细检查,要有耐心,或者换个M3的板子来读读看

 
 
 

回复

42

帖子

0

TA的资源

一粒金砂(中级)

16
 
这几个问题你看看:
第一:你的CS端是用的SSI的FSS吗?如果不是,这个会有可能影响你的数据发送。
怎么解释呢?咱们先看看函数给的发送函数是怎么编写的吧:
void
SSIDataPut(unsigned long ulBase, unsigned long ulData)
{
    ASSERT((ulBase == SSI0_BASE) || (ulBase == SSI1_BASE));
    ASSERT((ulData & (0xfffffffe << (HWREG(ulBase + SSI_O_CR0) &
                                     SSI_CR0_DSS_M))) == 0);// 这个不管
    while(!(HWREG(ulBase + SSI_O_SR) & SSI_SR_TNF))  //(重要)先等待缓冲区中的数据为空
    {
    }
    HWREG(ulBase + SSI_O_DR) = ulData;   //  再把数据发送出去!!!
}
这样的程序有可能发生这样的状况就是:你往外发送数据,用SSIDataPut函数,如果下一条指令是CS(无效),那么你的从芯片还没有接收到数据,你就把信号接收功能给断掉了。实际ARM还在发送信号,只是从芯片接收不到!!!
第二、接收函数之前进行了多少次发送。如果超过八次,则你的接收FIFO已经满了,SSIDataGet函数只是从FIFO中接收数据。你可以做个简单的测试,让你的RX和TX接在一起。然后用SSIDataPut发送8个字符,然后发送第九个字符的时候和前面八个不一样,你用SSIDataGet读取数据,只能读到前八个数据,第九个数据就丢失了。
如果这样还不行,我就没有太好的办法了。呵呵。
写的有些乱,自己领悟吧。
祝你早日调出来。
 
个人签名相信自己,相信未来
 
 

回复

2641

帖子

0

TA的资源

五彩晶圆(中级)

17
 
原帖由 zfnuaa 于 2010-8-25 19:34 发表 这几个问题你看看: 第一:你的CS端是用的SSI的FSS吗?如果不是,这个会有可能影响你的数据发送。 怎么解释呢?咱们先看看函数给的发送函数是怎么编写的吧: void SSIDataPut(unsigned long ulBase, unsigned lo ...

我的SPI读没有问题,就是写数据的时候在这句进死循环了 while(!(HWREG(ulBase + SSI_O_SR) & SSI_SR_TNF)) //(重要)先等待缓冲区中的数据为空
 
 
 

回复

349

帖子

0

TA的资源

一粒金砂(中级)

18
 
我没有办法用IO口模拟,实现了25LC256和TC72的读写,数据都正常。我只是读写4个字节数据,CS在读后才无效的。楼上读得是什么?
 
 
 

回复

349

帖子

0

TA的资源

一粒金砂(中级)

19
 
但感觉IO口模拟很浪费资源
 
 
 

回复

2641

帖子

0

TA的资源

五彩晶圆(中级)

20
 
我直接读有数据,但是不知道对不对
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表