[問題]SPI 多機控制

看板ASM (組合語言)作者 (dada)時間13年前 (2011/12/24 20:08), 編輯推噓0(0014)
留言14則, 2人參與, 最新討論串1/1
請先看看 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)

12/25 12:29, , 1F
SPI用於週邊設備93C46 IO擴充 LED/LCD擴充IC 簡單就是週邊
12/25 12:29, 1F

12/25 12:30, , 2F
UART用於控制和長距離傳輸,轉RS23232 RS485 GPS/BT等等
12/25 12:30, 2F

12/25 12:32, , 3F
bcf pt4, 0 ;關閉pt4.0 SS 等於關閉pt4.0 上的SPI設備
12/25 12:32, 3F

12/25 12:33, , 4F
bsf pt4, 1 ;開啟pt4.1 SS 等於開啟pt4.1 上的SPI設備
12/25 12:33, 4F

12/25 12:34, , 5F
call delay
12/25 12:34, 5F

12/25 12:34, , 6F
movlf sspbuf
12/25 12:34, 6F

12/25 12:35, , 7F
call spiack_chk
12/25 12:35, 7F

12/25 12:35, , 8F
bsf pt4, 0
12/25 12:35, 8F

12/25 12:36, , 9F
bcf pt4, 1
12/25 12:36, 9F

12/25 12:36, , 10F
以此類推
12/25 12:36, 10F

12/25 22:13, , 11F
如果是擴充 子板 架當嗎
12/25 22:13, 11F

12/25 22:14, , 12F
架當嗎 更正 恰當嗎??
12/25 22:14, 12F

12/25 23:07, , 13F
主機相差一個clock讓雙從機動作(運轉) 請問做得到這個嗎?
12/25 23:07, 13F

12/28 08:41, , 14F
已解決
12/28 08:41, 14F
文章代碼(AID): #1EzS2laZ (ASM)
文章代碼(AID): #1EzS2laZ (ASM)