嵌入式爱好者

查看: 9556|回复: 6

[Win CE] WINCE SPI1 寄存器无法修改

[复制链接]

2

主题

8

帖子

19

积分

扫一扫,手机访问本帖
发表于 2013-8-8 17:53:40 | 显示全部楼层 |阅读模式

1.

pSPIregs = (volatile S3C6410_SPI_REG *)DrvLib_MapIoSpace(S3C6410_BASE_REG_PA_SPI1, sizeof(S3C6410_SPI_REG), FALSE);


2.
pSPIregs->CH_CFG     = CPOL_FALLING|CPHA_FORMAT_A;  
pSPIregs->CLK_CFG    = 0x0502;
pSPIregs->MODE_CFG   = MODE_DEFAULT;



2配置后打印出来的寄存器和没配置的一样?为什么这些寄存器无法更改?

SPI Config  = 00000040
SPI Clock Config = 00000000
SPI Mode Config = 00000000

请大家给予帮助,谢谢!




回复

使用道具 举报

2

主题

8

帖子

19

积分

 楼主| 发表于 2013-8-8 20:38:24 | 显示全部楼层
飞凌提供的驱动也无法正常使用,示波器里根本就没有任何CLOCK的波形。

但是通过上面的操作对于GPIO就可以,SPI0和SPI1的寄存器都无法修改。
点评回复 支持 反对

使用道具 举报

110

主题

1358

帖子

1443

积分

A40i/T3/T507/T527通行证i.MX6Q通行证i.MX6UL通行证i.MX8MM通行证i.MX8MP通行证RK3568通行证RK3588通行证RK3399通行证LS1028A通行证G2L通行证LS1012A通行证LS1043A\46A通行证TCU通行证FDU产品通行证FCU1401通行证FCU1301通行证FCU11xx通行证FCU1201通行证FCU2201通行证FCU2301/FCU2302通行证FCU2401通行证5G转接卡通行证FCU3001通行证AM5718通行证Hi3519A通信证AM335x通行证i.MX RT通行证XX18通行证AM62x资料下载FDU070K02\FDU101K02通行证i.MX9352通行证

发表于 2013-8-8 21:44:56 | 显示全部楼层
楼主是自己写的一个spi的驱动还是修改的我们写好的呢?
该会员没有填写今日想说内容.
点评回复 支持 反对

使用道具 举报

2

主题

8

帖子

19

积分

 楼主| 发表于 2013-8-9 10:23:06 | 显示全部楼层
首先感谢路飞的回复,我使用了你们的驱动(TE6410 + SPI驱动),反馈的寄存器都是最原始的状态,只能读不能改,后来我自己搞一了个非常简单的驱动,也无法修改该寄存器,在网上找了一个叫MEMMgr的驱动调试工具(直接写地址的)也是只能读不能改,这个问题困惑我两周了{:soso_e134:}
点评回复 支持 反对

使用道具 举报

2

主题

8

帖子

19

积分

 楼主| 发表于 2013-8-9 10:24:37 | 显示全部楼层
本帖最后由 conspec 于 2013-8-9 10:34 编辑
飞凌-路飞 发表于 2013-8-8 21:44
楼主是自己写的一个spi的驱动还是修改的我们写好的呢?

都是下载最新的文件。

是操作系统配置导致的吗?

查了一下微软的资料:

User
        
          0x70000000 - 0x7FEFFFFF
        
          255 MB
        
          Shared system heap
        
          Shared heap between the kernel and processes.
          Kernel and kernel servers can allocate memory in the heap and write to it.
          Read-only for user processes.
          Enables a process to get data from a server without having to make a kernel call.


是不是驱动配置的有问题?
点评回复 支持 反对

使用道具 举报

2

主题

8

帖子

19

积分

 楼主| 发表于 2013-8-9 23:58:35 | 显示全部楼层
终于找到问题了:

#if  (SPI_SELECT == SPI1) //使用SPI1
    pSYSCONregs->PCLK_GATE |= SPI1_POWER_ON;
#else
    pSYSCONregs->PCLK_GATE |= SPI0_POWER_ON;
#endif

必须把SPI对应PCLK的Enable位打开才可以对SPI Register Controller进行读写,这个芯片文档上我是没找到。
点评回复 支持 反对

使用道具 举报

110

主题

1358

帖子

1443

积分

A40i/T3/T507/T527通行证i.MX6Q通行证i.MX6UL通行证i.MX8MM通行证i.MX8MP通行证RK3568通行证RK3588通行证RK3399通行证LS1028A通行证G2L通行证LS1012A通行证LS1043A\46A通行证TCU通行证FDU产品通行证FCU1401通行证FCU1301通行证FCU11xx通行证FCU1201通行证FCU2201通行证FCU2301/FCU2302通行证FCU2401通行证5G转接卡通行证FCU3001通行证AM5718通行证Hi3519A通信证AM335x通行证i.MX RT通行证XX18通行证AM62x资料下载FDU070K02\FDU101K02通行证i.MX9352通行证

发表于 2013-8-10 08:46:03 | 显示全部楼层
恭喜楼主,其实有时候问题是需要自己孜孜不倦的钻研下去的,这样的解决方法才属于自己!
该会员没有填写今日想说内容.
点评回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-12-22 19:57

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表