作者wasidada (dada)
看板ASM
标题Re: [问题] uart & spi
时间Sat Dec 24 20:08:12 2011
请先看看
http://0rz.tw/AqLX5
这是SPI的原理
而我的规格书上传输方式如同网址的内容,其传输方式也是跟网址内容一样
主 从#1,#2
MOSI-------#1:MISO 其传送为同步发送+回传 主 从#1,#2 MOSI---->从MISO
| MOSI-------->MISO
|----#2:MISO MISO<--------MOSI
SCLK-------->SCLK
MISO-------#1:MOSI /SS--------->/SS
|
|----#2:MOSI 目前只做到利用SS切换从主机,使#1或2动作
SCLK-------#1:SCLK [状况]当#1动作时切换过去#2无法切换过去
|
|----#2:SCLK 切换的程式 switch(temp)
{
/SS--------#1:/SS case 0:{}break;
| ˙
|-----#2:/SS ˙
case 12:{P1_4=0; //open#1&close#2
P4_0=0;
}break;
case 13:{P4_0=0;//open#2&close #1
P1_4=1;
}break;
}//利用IO port 控制/SS选择从机
我的#1是用两个输出PORT控制led,#1程式内容为当收到某个值会跑回圈某一灯闪烁
今天尝试了关掉SPEN 使SPI关闭 会延迟一点时间(<<1s)
但是这样又违背了SPI spec. .....因为移位暂存器 主从资料循环发送
关掉spi则等於是主机收不到回传值会错误
我到底是要如何利用SPI控制多机并使他们动作 在MISO总线上又不抢线
请各位板有否有这方面的经验可以分享一下,另外SPI与UART 各大多用在什麽地方??
在此 wasidada 先鞠躬感谢你们看完这篇
※ 引述《wasidada (dada)》之铭言:
吃吃吃吃自己
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.41.67.25
※ 编辑: wasidada 来自: 114.41.67.25 (12/24 21:19)
1F:→ kikiqqp:SPI用於周边设备93C46 IO扩充 LED/LCD扩充IC 简单就是周边 12/25 12:29
2F:→ kikiqqp:UART用於控制和长距离传输,转RS23232 RS485 GPS/BT等等 12/25 12:30
3F:→ kikiqqp:bcf pt4, 0 ;关闭pt4.0 SS 等於关闭pt4.0 上的SPI设备 12/25 12:32
4F:→ kikiqqp:bsf pt4, 1 ;开启pt4.1 SS 等於开启pt4.1 上的SPI设备 12/25 12:33
5F:→ kikiqqp:call delay 12/25 12:34
6F:→ kikiqqp:movlf sspbuf 12/25 12:34
7F:→ kikiqqp:call spiack_chk 12/25 12:35
8F:→ kikiqqp:bsf pt4, 0 12/25 12:35
9F:→ kikiqqp:bcf pt4, 1 12/25 12:36
10F:→ kikiqqp:以此类推 12/25 12:36
11F:→ wasidada:如果是扩充 子板 架当吗 12/25 22:13
12F:→ wasidada:架当吗 更正 恰当吗?? 12/25 22:14
13F:→ wasidada:主机相差一个clock让双从机动作(运转) 请问做得到这个吗? 12/25 23:07
14F:→ wasidada:已解决 12/28 08:41