关于SPI时钟没有输出的问题

yonglixueer 2009-06-26 01:22:05
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 引脚连续输出。

可是现在就是没有时钟输出!
...全文
6586 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhao1223 2009-07-01
  • 打赏
  • 举报
回复
一般来说设置好SPI寄存器后,只要一使能即会有时钟出来.可能你的SPI寄存器配置有点问题.
fengxiasha 2009-06-30
  • 打赏
  • 举报
回复
有没有可能是被slave端拉住了呢?
zyzhang365 2009-06-26
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 yonglixueer 的回复:]
谢谢回帖!设置是正确的,连续的输出一个数据是有数据输出的,在第一个数据输出,会有一个SS高脉冲,也是有的,但是就是没有时钟。我也不知道是怎么回事,硬件我都差了很多了次了,应该没问题的,我再查查程序吧!
[/Quote]

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

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

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





yonglixueer 2009-06-26
  • 打赏
  • 举报
回复
谢谢回帖!设置是正确的,连续的输出一个数据是有数据输出的,在第一个数据输出,会有一个SS高脉冲,也是有的,但是就是没有时钟。我也不知道是怎么回事,硬件我都差了很多了次了,应该没问题的,我再查查程序吧!
dthxman 2009-06-26
  • 打赏
  • 举报
回复
不写数据是没有时钟的。
dthxman 2009-06-26
  • 打赏
  • 举报
回复 1
首先,确定你的spi配置,是否完全配置成功,这个要完全看datasheet,没法帮你,关键是主从的配置,要看清楚。
然后,在满足第一步的情况下,尝试写一个字节到spi输出,判断写标志,可以循环,然后再看时钟,如果还没有,再回到第一步。
yonglixueer 2009-06-26
  • 打赏
  • 举报
回复
你说的太对了 ,我也是这么觉得,可是就是没有啊!
wohoo2002 2009-06-26
  • 打赏
  • 举报
回复
时钟一直都应该有。
yonglixueer 2009-06-26
  • 打赏
  • 举报
回复
谢谢!这个例子我已经看了,没什么实质的帮助。不过还是谢谢你!
zyzhang365 2009-06-26
  • 打赏
  • 举报
回复
找个例子看看吧。
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1408

21,618

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧