4396|10

75

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于SPI时钟没有输出的问题 [复制链接]

SPI是不是只要发送数据,就会有时钟信号?现在时有数据发送出去,但是却没有时钟信号输出,我是这样设置的:主控模式,SDO由模块控制,8位传输,中间采样,CKE=0,SSEN=0,CKP=1,SPRE<2:0>=111(1:1),PPRE<1:0>=00(64:1),SPI帧禁止和使能都设置过。请熟悉SPI通讯的指点一下,谢谢!

初始化代码:
PIN_SPI:
  bclr TRISG,#6 ;SCK
  bset TRISG,#7 ;SCI
  bclr TRISG,#8 ;SCO
  bclr TRISG,#9 ;SS
  bclr LATG,#9

_SPIInit:
  bclr IFS1,#10
  bset IEC1,#10
  bset IPC3,#6
  bset IPC3,#5
  bset IPC3,#4
  mov  #0x407c,w0
  mov  w0,SPI2CON
  clr  SPI2STAT
  bset SPI2STAT,#15


使用的IC:dspic30f5013

资料内容:
SPI 串行接口由以下四个引脚组成:
? SDIx:串行数据输入
? SDOx:串行数据输出
? SCKx:移位时钟输入或输出
? SSx:低电平有效从动选择或者帧同步I/O 脉冲

SPI 主控模式和帧主控模式,通过将MSTEN (SPIxCON<5>)和FRMEN (SPIxCON<14>)位置1 并将SPIFSD,(SPIxCON<13>)位清零可使能此帧SPI 模式。在此模式下,无论模块是否正在发送,串行时钟都将在SCKx 引脚连续输出。

可是现在就是没有时钟输出!

最新回复

一般来说设置好SPI寄存器后,只要一使能即会有时钟出来.可能你的SPI寄存器配置有点问题.  详情 回复 发表于 2009-7-1 10:19
点赞 关注

回复
举报

64

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
找个例子看看吧。
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1408
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
谢谢!这个例子我已经看了,没什么实质的帮助。不过还是谢谢你!
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

4
 
时钟一直都应该有。
 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

5
 
你说的太对了 ,我也是这么觉得,可是就是没有啊!
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

6
 
首先,确定你的spi配置,是否完全配置成功,这个要完全看datasheet,没法帮你,关键是主从的配置,要看清楚。
然后,在满足第一步的情况下,尝试写一个字节到spi输出,判断写标志,可以循环,然后再看时钟,如果还没有,再回到第一步。
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

7
 
不写数据是没有时钟的。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

8
 
谢谢回帖!设置是正确的,连续的输出一个数据是有数据输出的,在第一个数据输出,会有一个SS高脉冲,也是有的,但是就是没有时钟。我也不知道是怎么回事,硬件我都差了很多了次了,应该没问题的,我再查查程序吧!
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 7 楼 yonglixueer 的回复:
谢谢回帖!设置是正确的,连续的输出一个数据是有数据输出的,在第一个数据输出,会有一个SS高脉冲,也是有的,但是就是没有时钟。我也不知道是怎么回事,硬件我都差了很多了次了,应该没问题的,我再查查程序吧!


SS会有高脉冲吗? 怀疑! 这个都是低有效。  
没有时钟怎么会有第一个数据输出?数据每位(bit)是靠每个时钟沿给送出的。没有数据传输是不会有时钟的!

另外,多个字节(byte)连续传输时需要注意,有的工作模式下传完一个字节ss就自动变高了, 这样一次只能传一个字节。 所以, 如果需要连续传多个字节(比如某些SPI flash, spi ADC/DAC)的场合,就需要正确设置工作模式。

disPIC的spi控制器是否支持连续传送多个字节不是很清楚。
  




 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

10
 
有没有可能是被slave端拉住了呢?
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(中级)

11
 
一般来说设置好SPI寄存器后,只要一使能即会有时钟出来.可能你的SPI寄存器配置有点问题.
 
 
 

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

随便看看
查找数据手册?

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