AM62x的SPI總線怎么用?讓我告訴你
TI AM62x處理器擁有4路SPI以及1路Q(chēng)SPI,豐富的SPI接口可以同時(shí)接多個(gè)設(shè)備,飛凌OK6254-C開(kāi)發(fā)板的NOR Flash就接在了OSPI(QSPI)總線上。
一、SPI的工作流程和時(shí)序
在介紹AM62x的SPI之前,我們先來(lái)了解一下SPI是如何工作的。通常SPI通過(guò)4個(gè)引腳與外部器件相連:
MISO:
主設(shè)備輸入/從設(shè)備輸出引腳。該引腳在從模式下發(fā)送數(shù)據(jù),在主模式下接收數(shù)據(jù);
MOSI:
主設(shè)備輸出/從設(shè)備輸入引腳。該引腳在主模式下發(fā)送數(shù)據(jù),在從模式下接收數(shù)據(jù);
CLK:
串口時(shí)鐘,作為主設(shè)備的輸出,從設(shè)備的輸入;
NSS:
從設(shè)備選擇。這是一個(gè)可選的引腳,用來(lái)選擇從設(shè)備。
SPI的工作流程是這樣的——
主機(jī)先將NSS信號(hào)拉低,這樣保證開(kāi)始接收數(shù)據(jù);
當(dāng)接收端檢測(cè)到時(shí)鐘的邊沿信號(hào)時(shí),它將立即讀取數(shù)據(jù)線上的信號(hào),這樣就得到了一位數(shù)據(jù)(1bit);
由于時(shí)鐘是隨數(shù)據(jù)一起發(fā)送的,因此指定數(shù)據(jù)的傳輸速度并不重要,盡管設(shè)備將具有可以運(yùn)行的最高速度;
主機(jī)發(fā)送到從機(jī)時(shí):主機(jī)產(chǎn)生相應(yīng)的時(shí)鐘信號(hào),然后數(shù)據(jù)一位一位地將從MOSI信號(hào)線上進(jìn)行發(fā)送到從機(jī);
主機(jī)接收從機(jī)數(shù)據(jù):如果從機(jī)需要將數(shù)據(jù)發(fā)送回主機(jī),則主機(jī)將繼續(xù)生成預(yù)定數(shù)量的時(shí)鐘信號(hào),并且從機(jī)會(huì)將數(shù)據(jù)通過(guò)MISO信號(hào)線發(fā)送。
SPI工作時(shí)序圖如下:
二、AM62x中SPI總線的特點(diǎn)
在AM62x這款芯片中,TI將SPI的MISO與MOSI設(shè)計(jì)為d0和d1,哪一個(gè)作為輸入,哪一個(gè)作為輸出,是由設(shè)備樹(shù)中的ti,pindir-d0-out-d1-in= <1>來(lái)設(shè)置的。
默認(rèn)這個(gè)屬性值為0,即d0是輸入,d1是輸出。當(dāng)為1時(shí),d0為輸出,d1為輸入。
三、AM62x的SPI應(yīng)用
1. menuconfig配置
將這個(gè)該項(xiàng)選中,SPI驅(qū)動(dòng)將編譯進(jìn)內(nèi)核中。
makemenuconfi
DeviceDrivers ->
SPIsupport ->
Usermode SPI device driver support
注:在飛凌OK6254-C開(kāi)發(fā)板中,已經(jīng)將SPI驅(qū)動(dòng)編譯進(jìn)去。
2. 設(shè)備樹(shù)配置
01. 選擇需要使用的spi,這里我們用spi0,節(jié)點(diǎn)為&main_spi0;
02. 將該節(jié)點(diǎn)所用的引腳復(fù)用為相應(yīng)的功能。
03.描述節(jié)點(diǎn)的屬性,具體配置項(xiàng)的功能見(jiàn)注釋。
3、編譯燒錄
在源碼路徑下輸入以下命令:
沒(méi)有報(bào)錯(cuò)即為編譯成功。
將源碼路徑下的image中的OK6254-C.dtb放到開(kāi)發(fā)板的/boot目錄中,重啟開(kāi)發(fā)板。
4. SPI測(cè)試
將spi0_D0和spi0_D1短接
重啟開(kāi)發(fā)板后,在/dev目錄下看到多出兩個(gè)spidev設(shè)備。
使用我們的測(cè)試程序
四、總結(jié)
AM62x上有著豐富的SPI資源,而SPI又可以作為許多設(shè)備的總線,這使得AM62x能夠接入許多SPI接口的設(shè)備。因此在那些對(duì)SPI有著比較多需求的應(yīng)用場(chǎng)景下,基于TI AM62x設(shè)計(jì)開(kāi)發(fā)的OK6254-C開(kāi)發(fā)板無(wú)疑是一個(gè)非常好的選擇。
相關(guān)產(chǎn)品 >
-
FET62xx-C核心板
FET6254-C核心板基于TI Sitara? AM62x系列工業(yè)級(jí)處理器設(shè)計(jì)。采用Arm Cortex A53架構(gòu),并集成了廣泛的接口,如2路支持TSN的千兆以太網(wǎng)、USB 2.0CAN-FD,AM6254核心板兼容AM62x全系列處理器,提供單核、雙核、四核可選,功能引腳完全兼容,飛凌嵌入式已經(jīng)適配AM6254 AM6231 AM6232三款芯片為您帶來(lái)靈活的成本組合方案,AM62x可應(yīng)用于廣泛的工業(yè)環(huán)境,如人機(jī)界面(HMI)、工業(yè)計(jì)算機(jī)、邊緣計(jì)算、零售自動(dòng)化、充電樁控制單元(TCU)、醫(yī)療設(shè)備等。
了解詳情 -
OK62xx-C開(kāi)發(fā)板
AM62x 開(kāi)發(fā)板是圍繞飛凌AM62x核心板設(shè)計(jì)的獨(dú)立測(cè)試和開(kāi)發(fā)平臺(tái)。AM62x處理器由四核64位Arm -Cortex -A53微處理器 和Cortex-M4F組成。AM62x開(kāi)發(fā)板整板工業(yè)級(jí)設(shè)計(jì),并在開(kāi)發(fā)過(guò)程中進(jìn)行嚴(yán)苛的環(huán)境溫度測(cè)試、壓力測(cè)試、長(zhǎng)期穩(wěn)定性運(yùn)行測(cè)試,使AM62x可在各種嚴(yán)苛環(huán)境穩(wěn)定運(yùn)行 了解詳情