10445|31

67

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

急!!求各位高手帮忙分析PXA270的SPI初始化!!!! [复制链接]

请问哪位大哥写过PXA270的SPI驱动程序啊

我在初始化SPI中  SPI引脚用的:
                       GPIO23    SSPSCLK     FOUT2
                       GPIO24    SSPSFRM     作为使能(低电平有效)
                       GPIO25    SSPTXD      FOUT2
                       GPIO26    SSPRXD      FIN1
先设置了SPI那4根GPIO的方向、功能
然后设置寄存器sscr0 、sscr1
        g_pSSPRegs->sscr0 = 0x00000000;
        g_pSSPRegs->sscr1 = 0x00000000;
        g_pSSPRegs->sscr0 |= (XLLP_SSCR0_TIM | XLLP_SSCR0_RIM | XLLP_SSCR0_DSS_8BIT);
                                 1<<23            1<<22            0x7
        //g_pSSPRegs->sscr1 |= (XXLP_SSCR1_SPH);

        g_pSSPRegs->sscr0 |= XLLP_SSCR0_SSE;
                                1<<7

最后选第一组SPI:
        g_pCLKRegs->cken |= XLLP_CLKEN_SSP1;    //  XLLP_CLKEN_SSP1    (1<<23)

这样初始化之后为什么
我用示波器量SSPSCLK(GPIO23)没有任何波形
向TX(GPIO25)写入一字节,也没有波形
读出来的,通过打印信息看都是0XFF
打印信息如下:
SPI Write One Byte: 0x0
SPI Read2 One Byte: 0xff
SPI Write One Byte: 0xf0
SPI Read1 One Byte: 0xff
SPI Write One Byte: 0x0
SPI Read2 One Byte: 0xff
设置的寄存器相关打印信息如下:
g_pPIORegs->GPDR0: 0xc3e307e6       //1100 0011 1110 0011 0000 0111 1110 0110
g_pPIORegs->GAFR0_U: 0xa5188110     //1010 0101 0001 1000 10 00 00 01 00 01 00 00
g_pSSPRegs->sscr0: 0xc00087         //1100 0000 0000 0000 1000 0111
g_pSSPRegs->sscr1: 0x0              //0
g_pCLKRegs->cken: 0xc00ae4          //1100 0000 0000 1010 1110 0100

最新回复

不知道你的问题解决了没,我也遇到了同样的问题  详情 回复 发表于 2010-4-13 14:35
点赞 关注

回复
举报

58

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
没看PXA270的datahseet,只好随便提示一下,我看了你的代码,好像设置4个GPIO的方向,然后是使能了SPI的时钟,但是应该还有一个寄存器要配置这几个GPIO是用作普通的GPIO,还是SPI专用控制器。
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
GAFR0_U这个就是GPIO的功能寄存器!
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

4
 
pCKMGR_REG->cken |= XLLP_CLKEN_SSP1;
pSSP_REG->sscr0 =0;     
pSSP_REG->sscr0 = (XLLP_SSCR0_TIM) | (XLLP_SSCR0_DSS_8BIT);
pSSP_REG->sscr1= 这里好像还设置从主/从机模式
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

5
 
我把SSCR1设置成如下:
g_pSSPRegs->sscr1 =  SSCR1_TTELP | SSCR1_TTE | SSCR1_RFT(0x1) | SSCR1_TFT(0x1)
                     (1 << 31)     (1 << 30)    ((0x1) << 10)    ((0x1) << 6)

还是不行!!!
 
 
 

回复

47

帖子

0

TA的资源

一粒金砂(初级)

6
 
首先你要先把时钟配置好,用示波器把时钟弄出来了 ,再看接受和发送。
因为接受和发送都是根据时钟来的
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

7
 
路过,学习
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

8
 
我也再调spi,只不过我是用GPIO口模拟的。时钟也是没有调好,不知道这个怎么调.
关注
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(高级)

9
 
引用 5 楼 kondykuang 的回复:
首先你要先把时钟配置好,用示波器把时钟弄出来了 ,再看接受和发送。
因为接受和发送都是根据时钟来的


时钟是在哪里配置的??
用到哪个寄存器??
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

10
 
现在我往SPI的ssdr中写数
然后通过打印信息看
SSSR的第4位状态位
发现SSSR的第4位始终为0
也就是根本就没有写操作
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

11
 
SPI的时钟是在SPI读写的时候才产生的吧
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(中级)

12
 
引用 5 楼 kondykuang 的回复:
首先你要先把时钟配置好,用示波器把时钟弄出来了 ,再看接受和发送。
因为接受和发送都是根据时钟来的


kondykuang兄  你说的这先把clock调出来是怎么调的? 你的意思是配置好了SSPSCLK就会有clock输出么?
好像spi只有在发送和接收的时候,SCLK才有clock输出吧?

看lz的帖子是clock没有配置好,初始化代码部分也没有配置。
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

13
 
再次顶起!
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

14
 
学习,顶起
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

15
 
顶,我以前pxa270的 spi 也没有调通, 配置寄存器和使能spi时钟, 死活发不出数据
最后只能改用 cpld 来操作spi~
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

16
 
SPI还有钟极性和相位,你设置对了么?  仔细看看datasheet。
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

17
 
引用 15 楼 sherlock_lai 的回复:
SPI还有钟极性和相位,你设置对了么?? 仔细看看datasheet。

请问您说的是PXA270吗?
我看了几个驱动都是这么配置的啊
您说的钟级性和相位是在哪设置的呢???
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

18
 
引用 16 楼 wangxin_801115 的回复:
引用 15 楼 sherlock_lai 的回复:
SPI还有钟极性和相位,你设置对了么?? 仔细看看datasheet。

请问您说的是PXA270吗?
我看了几个驱动都是这么配置的啊
您说的钟级性和相位是在哪设置的呢???

那你可能是使用的默认配置,但是和你通讯的另一方也要和你有相同的配置
关于时钟极性,你可以google SPI 时钟极性,介绍的文章很多的
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

19
 
我是使用了默认的配置,
我设置的是主模式
SPI的另外一端我还没接
我做了个线程一直执行写操作
量SPI的TX和CLK发现什么都没有
请问您说的是PXA270的吗?
因为不同的处理器对SPI有不同的配置方法
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

20
 
引用 18 楼 wangxin_801115 的回复:
我是使用了默认的配置,
我设置的是主模式
SPI的另外一端我还没接
我做了个线程一直执行写操作
量SPI的TX和CLK发现什么都没有
请问您说的是PXA270的吗?
因为不同的处理器对SPI有不同的配置方法

如果CLK什么都没有肯定是不对的,你怎么量的? 用示波器? 有没有设置好触发?
你空闲状态CLK是高还是低?
 
 
 

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

随便看看
查找数据手册?

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
快速回复 返回顶部 返回列表