boboo 发表于 2011-12-27 14:10:44

SPI读取多片165问题,求助【自己已经解决】

连线如下:
http://cache.amobbs.com/bbs_upload782111/files_49/ourdev_708007WD4H8R.JPG
(原文件名:TU.JPG)

代码如下:
Uint16 TMP1,TMP2;
LOAD = 0;
delay_loop();
LOAD = 1;

SpiaRegs.SPITXBUF = 0;
while(SpiaRegs.SPIFFRX.bit.RXFFST !=1) { }
TMP1 = SpiaRegs.SPIRXBUF<<8;
SpiaRegs.SPITXBUF = 0;
while(SpiaRegs.SPIFFRX.bit.RXFFST !=1) { }
TMP2 = SpiaRegs.SPIRXBUF;

Word = TMP1 + TMP2;

----
结果实际中,IN_7出现2次,U2的H没有出现。
不知道哪出错了,还是我对165理解错误?各位帮忙修改一下 谢谢


===================
已经解决
原来是配置CLK上升/下降问题,以前是18个上升沿,修改配置(SPICCR.6) (SPICTL.3),可以变成17个上升沿,这样数据刚好合适

ahuang227 发表于 2011-12-27 14:19:57

10脚都当输出了还能当输入啊?你以为这是CPLD啊?

boboo 发表于 2011-12-27 14:26:55

回复【1楼】ahuang227 《黄海》
-----------------------------------------------------------------------

你咋看是输出的?
都是输入

weakdancer 发表于 2011-12-27 14:47:36

原理图上没有看到74hc165的输入引脚的下拉电阻,有可能是这个原因,coms器件不允许悬空引脚。
所以我为了省事一直用的74ls165,不过不知道为什么很贵。

boboo 发表于 2011-12-27 15:00:01

回复【3楼】weakdancer 郜帅
-----------------------------------------------------------------------

这个只是示意图,硬件方面肯定没问题的

只是不知道软件哪出错了

dragon_hn 发表于 2011-12-27 16:39:12

明明是硬件问题还说不是硬件问题.

boboo 发表于 2011-12-27 17:00:26

回复【5楼】dragon_hn
-----------------------------------------------------------------------

DSP寄存器的配置问题

dragon_hn 发表于 2011-12-27 17:06:18

<<U2的H没有出现。>>
U2的H端都接地了,读出来的肯定是0.
比较正确的做法是U2的PIN10接地.
GND->PIN10
IN_7->PIN11
IN_8->PIN12
IN_9->PIN13
IN_10->PIN14
IN_11->PIN3
IN_12->PIN4
IN_13->PIN5
IN_14->PIN6

因为PIN10不受锁存信号控制,所以你这样会导致IN_7与其它不同步.

click_lijie 发表于 2014-7-7 01:42:45

165手册中时序中看到,在Load 变为低电平时,Qh就已经有第一个最高位输出了。若想兼容SPI 片选信号,应该在LOAD前加一个反相器。
页: [1]
查看完整版本: SPI读取多片165问题,求助【自己已经解决】