看板 ASM 關於我們 聯絡資訊
請先看看 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