免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4139 | 回复: 3
打印 上一主题 下一主题

[Linux] SPI自发自收数据检测不到时钟信号,自己添加CS信号也不成功的问题! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-12-24 15:44 |只看该作者 |倒序浏览
请问大神们:
      1、 我在做S5PV210开发板的SPI口自发自收数据时,用自带的spidev.c驱动和spidev_test.c测试程序,串口工具显示可以发送数据,但为什么出不来时钟信号?
一般检测不到时钟信号都是由什么造成的?准确的说有波形出来,但不是标准方波,而是高电平往低电平跳2下马上回到高电平。(我发的一组数据是spidev_test.c自带的,时钟应该是标准方波才对。)
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  0x40, 0x00, 0x00, 0x00, 0x00, 0x95,
  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  0xDE, 0xAD, 0xBE, 0xEF, 0xBA, 0xAD,
  0xF0, 0x0D,)
      2、同样在做SPI自收自发数据时,在spidev.c驱动程序的open函数中将cs拉高
{gpio_direction_output(S5PV210_GPB(1), 1);},cs还是默认的低电平状态呢?无论我加入中断后,在读写函数里分别拉高拉低,cs都没有任何反应,全是低电平呢?是因为cs复用了吗?那我重新设置寄存器状态
{s3c_gpio_cfgpin(S5PV210_GPB(1), S3C_GPIO_OUTPUT);s3c_gpio_setpin(S5PV210_GPB(1), 1);}再拉高也不行啊?这样设置直接烧进去后,不能正常开机了?
注:我在这添加cs信号是主从模式收发数据时,需要cs信号拉低来判断是否有数据发送,这个是项目要求的,其实可以用其他GPIO口,但是最好要cs口。我觉得是不是我在驱动程序里面直接拉低GPIO口的写法有误啊?还是需要怎么设置下?这个问题困扰我耽误项目几天了,请教大神们啊,拜谢@!
       请教大神啊,项目特别急,特别是第二个问题,求教版主。谢谢~!

论坛徽章:
0
2 [报告]
发表于 2013-12-26 14:00 |只看该作者
hi LZ,
你可以做这么一个测试,VA = ioremap(PA); 把CS的地址直接map出来再用readl  writel来操作下,看看你能不能控制对这cs.
还有看你的操作是用GPIO来作CS线的?很大怀疑你的GPIO没有配置好,你可以检查一下这个GPIO状态。

论坛徽章:
8
2015年辞旧岁徽章
日期:2015-03-03 16:54:15午马
日期:2015-02-04 12:00:07羊年新春福章
日期:2015-02-04 11:57:56双子座
日期:2014-12-02 11:44:59金牛座
日期:2014-10-08 16:47:08狮子座
日期:2014-08-29 13:37:46巳蛇
日期:2014-08-26 17:32:29NBA常规赛纪念章
日期:2015-05-04 22:32:03
3 [报告]
发表于 2014-01-17 16:29 |只看该作者
楼主执行完SPI的初始化后,先看看SPI和GPIO控制器的寄存器的值,看是否设的是正确的。

论坛徽章:
0
4 [报告]
发表于 2014-02-15 16:27 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP