作者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)
→ kikiqqp:SPI用於週邊設備93C46 IO擴充 LED/LCD擴充IC 簡單就是週邊 12/25 12:29
→ kikiqqp:UART用於控制和長距離傳輸,轉RS23232 RS485 GPS/BT等等 12/25 12:30
→ kikiqqp:bcf pt4, 0 ;關閉pt4.0 SS 等於關閉pt4.0 上的SPI設備 12/25 12:32
→ kikiqqp:bsf pt4, 1 ;開啟pt4.1 SS 等於開啟pt4.1 上的SPI設備 12/25 12:33
→ kikiqqp:call delay 12/25 12:34
→ kikiqqp:movlf sspbuf 12/25 12:34
→ kikiqqp:call spiack_chk 12/25 12:35
→ kikiqqp:bsf pt4, 0 12/25 12:35
→ kikiqqp:bcf pt4, 1 12/25 12:36
→ kikiqqp:以此類推 12/25 12:36
→ wasidada:如果是擴充 子板 架當嗎 12/25 22:13
→ wasidada:架當嗎 更正 恰當嗎?? 12/25 22:14
→ wasidada:主機相差一個clock讓雙從機動作(運轉) 請問做得到這個嗎? 12/25 23:07
→ wasidada:已解決 12/28 08:41