5016|12

63

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

2410 SPI 驱动遇到的问题 [复制链接]

在LINUX 2.6下写了一个简单的SPI口驱动,
在驱动中遇到奇怪的问题,请大家帮忙指点:   

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

至此,初始化完毕。

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

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


最新回复

感谢zgz:    在加载spidev.ko后,生成spidev0.1 153 0接点了  详情 回复 发表于 2008-5-21 08:39
点赞 关注

回复
举报

75

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
我对SPI口的SLAVE模式接收数据的过程理解是:
首先REDY位应该是1,要想收数据,首先对SPTSAT0写入一个字节,此时REDY清零,等待主机发送数据,如果此时主机发送一个字节的数据到SLAVE,则REDY置1,此时读取SPRDAT0则可得到输入的数据.
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
我的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,不知道是什么原因。请高手指点
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

4
 
我也要写SPI驱动,顶一下,关注ing
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

5
 
不知道楼主解决了这个问题没?我也遇到了这个问题,正头疼呢!
望赐教!
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

6
 
我的SPI口,没有时钟波形,我是配置的2410SPI为主模式的
为什么楼主的SPI口要禁止上拉呢?这一点不太清楚,可否指点 一下,谢谢
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

7
 
你好~  不知道楼主解决了这个问题没?我刚刚写了一个类似程序也遇到了这个问题,正头疼呢!
望赐教!
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

8
 
有点难度哦
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

9
 
好久不来了,问题早解决了,对最后一个寄存器的赋值赋错了,呵呵,datasheet没看清楚。当时对寄存器的写值参考的一个网上的blog,那个blog里面提到的寄存器的写值问题比较多。
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

10
 
2.6内核有s3c2410现成的SPI控制器驱动(drivers/spi/spi_s3c24xx.c),为何要自己写?

我用最新的2.6.25内核,SPI工作很正常。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

11
 
请问zgz:
   使用linux自带的spi_s3c24xx.c驱动后,/dev无法找到自动创建的接点,/proc/devices中也没有,但是把spidev.c文件编译模块后,/proc/devices中就有了major=153的设备了,,?/QQ:70438592,不吝赐教!
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

12
 
spi_s3c24xx.c本身并没有生成设备节点,spidev.c的任务就是为了再user space访问spi设备而设,就是通过它来进行spi设备的读写。详细方法请阅读内核Documents/spi目录下的例子。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

13
 
感谢zgz:
   在加载spidev.ko后,生成spidev0.1 153 0接点了
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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