加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 01、SPI的工作流程和時(shí)序
    • 02、AM62x處理器中SPI總線的特點(diǎn)
    • 03、AM62x的SPI應(yīng)用
    • 04、總結(jié)
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

技術(shù)帖 | AM62x處理器SPI的詳解與應(yīng)用

03/15 10:50
2381
閱讀需 9 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

SPI(Serial Peripheral Interface)通信總線以其高速、全雙工、同步的特性而被廣泛應(yīng)用,它只需要四根線就能實(shí)現(xiàn)數(shù)據(jù)傳輸,有效地節(jié)約了芯片管腳的數(shù)量,同時(shí)為PCB布局帶來了空間上的優(yōu)化和便捷。正因?yàn)樗唵我子玫奶攸c(diǎn),現(xiàn)在越來越多的芯片選擇集成SPI通信協(xié)議。

作為TI Sitara?產(chǎn)品線新一代MPU產(chǎn)品,TI AM62x處理器特別配備了多達(dá)4路的SPI接口以及1路OSPI接口(有時(shí)也稱為QSPI),豐富的SPI接口配置使得該處理器能夠同時(shí)與多個(gè)設(shè)備進(jìn)行通信連接,大大提高了系統(tǒng)的擴(kuò)展性和靈活性。

在飛凌嵌入式推出的搭載了AM62x處理器的OK6254-C開發(fā)板上,NOR Flash存儲(chǔ)器正是通過連接到處理器的OSPI總線上進(jìn)行工作的。這樣的設(shè)計(jì)充分利用了SPI通信協(xié)議的高速傳輸和全雙工特性,保證了開發(fā)板在數(shù)據(jù)處理和存儲(chǔ)方面的效率。本文就通過OK6254-C開發(fā)板為大家介紹一下AM62x的SPI。

01、SPI的工作流程和時(shí)序

我們首先需要了解一下SPI是如何工作的——通常SPI通過4個(gè)引腳與外部器件相連:

(1) MISO:主設(shè)備輸入/從設(shè)備輸出引腳

該引腳在從模式下發(fā)送數(shù)據(jù),在主模式下接收數(shù)據(jù);

(2) MOSI:主設(shè)備輸出/從設(shè)備輸入引腳

該引腳在主模式下發(fā)送數(shù)據(jù),在從模式下接收數(shù)據(jù);

(3) CLK:串口時(shí)鐘

作為主設(shè)備的輸出,從設(shè)備的輸入;

(4) NSS:從設(shè)備選擇

這是一個(gè)可選的引腳,用來選擇從設(shè)備。

SPI的工作流程是這樣的:

(1) 主機(jī)先將NSS信號(hào)拉低,這樣保證開始接收數(shù)據(jù);

(2) 當(dāng)接收端檢測(cè)到時(shí)鐘的邊沿信號(hào)時(shí),將立即讀取數(shù)據(jù)線上的信號(hào),這樣就得到了一位數(shù)據(jù);

(3) 由于時(shí)鐘是隨數(shù)據(jù)一起發(fā)送的,因此指定數(shù)據(jù)的傳輸速度并不重要,盡管設(shè)備將具有可以運(yùn)行的最高速度;

(4) 主機(jī)發(fā)送到從機(jī)時(shí),主機(jī)產(chǎn)生相應(yīng)的時(shí)鐘信號(hào),然后數(shù)據(jù)一位一位地將從MOSI信號(hào)線上進(jìn)行發(fā)送到從機(jī);

(5) 主機(jī)接收從機(jī)數(shù)據(jù)時(shí),如果從機(jī)需要將數(shù)據(jù)發(fā)送回主機(jī),則主機(jī)將繼續(xù)生成預(yù)定數(shù)量的時(shí)鐘信號(hào),并且從機(jī)會(huì)將數(shù)據(jù)通過MISO信號(hào)線發(fā)送。

SPI工作時(shí)序圖如下:

02、AM62x處理器中SPI總線的特點(diǎn)

在AM62x這款芯片中,TI將SPI的MISO與MOSI設(shè)計(jì)為d0和d1,具體哪一個(gè)作為輸入,哪一個(gè)作為輸出,是由設(shè)備樹中的 ti,pindir-d0-out-d1-in= <1>來設(shè)置的。

默認(rèn)屬性值為0,即d0是輸入,d1是輸出;

當(dāng)屬性值為1時(shí),d0為輸出,d1為輸入。

03、AM62x的SPI應(yīng)用

1. menuconfig配置:

將該項(xiàng)選中,SPI驅(qū)動(dòng)將編譯進(jìn)內(nèi)核中。

makemenuconfiDeviceDrivers ->SPIsupport ->Usermode SPI device driver support

(注:在飛凌嵌入式OK6254-C開發(fā)板中,SPI驅(qū)動(dòng)編譯已進(jìn)去。)

2. 設(shè)備樹配置:

(1) 選擇需要使用的spi,這里我們用spi0,節(jié)點(diǎn)為&main_spi0;

(2) 將該節(jié)點(diǎn)所用的引腳復(fù)用為相應(yīng)的功能。

spi0_pins_default: spi0-pins-default {    pinctrl-single,pins = <            AM62X_IOPAD(0x1B4, PIN_OUTPUT, 0) /* (A13) SPI0_CS0 */            AM62X_IOPAD(0x1B8, PIN_OUTPUT, 0) /* (C13) SPI0_CS1 */            AM62X_IOPAD(0x1C0, PIN_INPUT, 0) /* (B13) SPI0_D0 */            AM62X_IOPAD(0x1BC, PIN_OUTPUT, 0) /* (A14) SPI0_CLK */            AM62X_IOPAD(0x1C4, PIN_INPUT, 0) /* (B14) SPI0_D1 */        >;    };

(3) 描述節(jié)點(diǎn)的屬性,具體配置項(xiàng)的功能見注釋。

&main_spi0 {  status = "okay";  pinctrl-names = "default";  pinctrl-0 = <&spi0_pins_default>; /* 描述引腳復(fù)用節(jié)點(diǎn) */  ti,spi-num-cs = <2>;      /* 描述片選的數(shù)量 */??ti,pindir-d0-out-d1-in?=?<1>;?/*?描述輸入輸出分別是哪個(gè)?*/??  /* 描述子節(jié)點(diǎn)spidev0設(shè)備 */  spidev@0 {              spi-max-frequency = <24000000>; /* 描述spidev0設(shè)備的最大頻率 */              reg = <0>;   /* 描述spidev0設(shè)備所用的片選,這里是第0個(gè) */              spi-cs-high;  /* 描述spidev0設(shè)備高有效 */              compatible = "rohm,dh2228fv";  /* 描述spidev0設(shè)備所用驅(qū)動(dòng) */  };  /* 描述子節(jié)點(diǎn)spidev1設(shè)備 */  spidev@1 {              spi-max-frequency = <24000000>;              reg = <1>;              compatible = "rohm,dh2228fv";  };};

3. 編譯燒錄:

在源碼路徑下輸入以下命令:

. build.shsudo ./build.sh kernel

沒有報(bào)錯(cuò)即為編譯成功。

將源碼路徑下的image中的OK6254-C.dtb文件放到開發(fā)板的/boot目錄中,重啟開發(fā)板即可。

4. SPI測(cè)試:

將spi0_D0和spi0_D1短接

重啟開發(fā)板后,在/dev目錄下看到多出兩個(gè)spidev設(shè)備。

使用我們的測(cè)試程序

fltest_spidev_test -D /dev/spidev3.0 -s 42000

有如下打印信息即為成功:

spimode: 0bitsper word: 8maxspeed: 42000 Hz (42 KHz)FFFF FF FF FF FF4000 00 00 00 95FFFF FF FF FF FFFFFF FF FF FF FFFFFF FF FF FF FFDEAD BE EF BA ADF00D

04、總結(jié)

TI AM62x處理器有著豐富的SPI資源,而SPI又可以作為許多設(shè)備的總線,這使得AM62x能夠接入許多SPI接口的設(shè)備,因此在那些對(duì)SPI有著比較多需求的應(yīng)用場(chǎng)景下,TI AM62x無疑是一個(gè)非常好的主控選擇。

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
AFBR-5803ATQZ 1 Broadcom Limited Transceiver, 1270nm Min, 1380nm Max, 155Mbps(Tx), 155Mbps(Rx), ST Connector, SIP, Board/panel Mount, ROHS COMPLIANT, SIP-9

ECAD模型

下載ECAD模型
$25.4 查看
74HC165D,653 1 Nexperia 74HC165; 74HCT165 - 8-bit parallel-in/serial out shift register@en-us SOP 16-Pin

ECAD模型

下載ECAD模型
$0.46 查看
KSZ8863RLLI 1 Microchip Technology Inc DATACOM, LAN SWITCHING CIRCUIT, PQFP48

ECAD模型

下載ECAD模型
$5.09 查看
飛凌嵌入式

飛凌嵌入式

保定飛凌嵌入式技術(shù)有限公司,創(chuàng)建于2006年,是一家專注嵌入式核心控制系統(tǒng)研發(fā)、設(shè)計(jì)和生產(chǎn)的高新技術(shù)企業(yè),是國內(nèi)較早專業(yè)從事嵌入式技術(shù)的企業(yè)之一。 經(jīng)過十幾年的發(fā)展與積累,公司擁有業(yè)內(nèi)優(yōu)秀的軟硬件研發(fā)團(tuán)隊(duì),在北京及保定建立兩大研發(fā)基地,在蘇州、深圳設(shè)有華東、華南技術(shù)服務(wù)中心,并在北美、歐洲以及亞太等其他國家和地區(qū)擁有國際業(yè)務(wù)網(wǎng)絡(luò)。公司研發(fā)的智能設(shè)備核心平臺(tái)廣泛應(yīng)用于物聯(lián)網(wǎng)、工控、軌道交通、醫(yī)療、電力、商業(yè)電子、智能家居、安防、機(jī)器人、環(huán)境監(jiān)測(cè)等諸多領(lǐng)域。

保定飛凌嵌入式技術(shù)有限公司,創(chuàng)建于2006年,是一家專注嵌入式核心控制系統(tǒng)研發(fā)、設(shè)計(jì)和生產(chǎn)的高新技術(shù)企業(yè),是國內(nèi)較早專業(yè)從事嵌入式技術(shù)的企業(yè)之一。 經(jīng)過十幾年的發(fā)展與積累,公司擁有業(yè)內(nèi)優(yōu)秀的軟硬件研發(fā)團(tuán)隊(duì),在北京及保定建立兩大研發(fā)基地,在蘇州、深圳設(shè)有華東、華南技術(shù)服務(wù)中心,并在北美、歐洲以及亞太等其他國家和地區(qū)擁有國際業(yè)務(wù)網(wǎng)絡(luò)。公司研發(fā)的智能設(shè)備核心平臺(tái)廣泛應(yīng)用于物聯(lián)網(wǎng)、工控、軌道交通、醫(yī)療、電力、商業(yè)電子、智能家居、安防、機(jī)器人、環(huán)境監(jiān)測(cè)等諸多領(lǐng)域。收起

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

秉承專業(yè)態(tài)度,專注智能設(shè)備核心平臺(tái)研發(fā)與制造,以技術(shù)研發(fā)創(chuàng)新為主導(dǎo),以客戶實(shí)用化,產(chǎn)品化為目標(biāo),把握嵌入式行業(yè)的前沿發(fā)展需求,利用核心技術(shù)為客戶提供穩(wěn)定、可靠、功能優(yōu)異的高品質(zhì)產(chǎn)品。合作聯(lián)系:17713286011