打印

使用过2410SPI的兄弟进来一下

[复制链接]
2400|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yuyu8444|  楼主 | 2007-12-9 22:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
spi, ps, ST, DSP, dc
在驱动中遇到奇怪的问题,请大家帮忙指点:    

在2410的驱动程序中初始化SPI0的过程如下:
1)时使能S3C2410_CLKCON中的SPI位;
2)设置与SPI0有关的GPIO口,并将相应的PULL UP位设置为1;
3)预想将SPI设置为SLAVE,POLLING模式,所以对SPCON0写值:0x0;

至此,初始化完毕。

初始化后,遇到的问题如下:
1)发现SPSTA0中的REDY位始终为0,如对SPTSAT0写如一个字节,SPSTA0寄存器的返回值是4,即DCOL位置位;
2)如果通过前端DSP对2410的MOSI写入一个字节的数据,则在SPRDAT0中可以读到相应的值,但是REDY位依然还是0;

请问我的初始化过程是否有问题?
为什么REDY位始终为1?问题在哪里啊?谢谢。

相关帖子

沙发
yuyu8444|  楼主 | 2007-12-10 12:21 | 只看该作者

我的初始化程序

我的SPI接口初始化程序,请大家帮我看看哪里的问题:

//使能系统时钟可以进入SPI模块
writel(readl(S3C2410_CLKCON)|SPI_INTERNAL_CLOCK_ENABLE,S3C2410_CLKCON
    
//配置SPI0所需要使用的IO口的功能
s3c2410_gpio_cfgpin(S3C2410_GPG2,S3C2410_GPG2_NSS0);
s3c2410_gpio_cfgpin(S3C2410_GPE11,S3C2410_GPE11_SPIMISO0);
s3c2410_gpio_cfgpin(S3C2410_GPE12,S3C2410_GPE12_SPIMOSI0);
s3c2410_gpio_cfgpin(S3C2410_GPE13,S3C2410_GPE13_SPICLK0);
    
//向所需IO口的PULL UP寄存器写1
s3c2410_gpio_pullup(S3C2410_GPG2,1);
s3c2410_gpio_pullup(S3C2410_GPE11,1);
s3c2410_gpio_pullup(S3C2410_GPE12,1);
s3c2410_gpio_pullup(S3C2410_GPE13,1);
    
//将SPI配置成SLAVE,POLLING,对SPCON0写0;
writel(0x00000000,spcon0);


至此初始化完毕


可是在此时读取SPSTA0的状态,REDY位为0,而不为1,不知道是什么原因。请高手指点。

使用特权

评论回复
板凳
阿南| | 2007-12-10 12:22 | 只看该作者

楼主,可以用2410test程序测试一下,它应该有正确的SPI部分

如果它的可以为1,您再对照你们之间的差别

使用特权

评论回复
地板
yuyu8444|  楼主 | 2007-12-10 18:47 | 只看该作者

我买的优龙的开发板,没有TEST程序啊

使用特权

评论回复
5
阿南| | 2007-12-10 18:56 | 只看该作者

优龙的应该有硬件test程序的,它们是直接修改公版的

如果没有可以向他们要.再没有,阿南给您发一个

使用特权

评论回复
6
yuyu8444|  楼主 | 2007-12-10 20:44 | 只看该作者

没有找到啊

啊南大哥,在优龙硬件的TEST中,没有使用SPI口的程序,他们把SPI1的某些脚配置成中断接按键了,SPI0留给用户扩展了。我没有找到,
我的邮箱是jiangyu8444@uestc.edu.cn
先谢谢啊南大哥了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

23

帖子

0

粉丝