0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

飛凌嵌入式 ? 2024-03-15 08:01 ? 次閱讀

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

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

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

wKgZomXzvB-AKTm0AAFtT0h6wIw54.jpeg

1、SPI的工作流程和時序

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

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

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

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

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

(3) CLK:串口時鐘

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

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

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

SPI的工作流程是這樣的:

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

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

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

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

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

SPI工作時序圖如下:

wKgaomXzvB-ASN8oAAHOmqe753k000.png

2、AM62x處理器中SPI總線的特點

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

默認屬性值為0,即d0是輸入,d1是輸出;

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

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

(1)menuconfig配置:

將該項選中,SPI驅(qū)動將編譯進內(nèi)核中。

makemenuconfi

DeviceDrivers ->

SPIsupport ->

Usermode SPI device driver support

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

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

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

2) 將該節(jié)點所用的引腳復(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é)點的屬性,具體配置項的功能見注釋。

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

(3)編譯燒錄:

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

. build.sh

sudo ./build.sh kernel

沒有報錯即為編譯成功。

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

(4)SPI測試:

將spi0_D0和spi0_D1短接

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

使用我們的測試程序

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

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

spimode: 0

bitsper word: 8

maxspeed: 42000 Hz (42 KHz)

FFFF FF FF FF FF

4000 00 00 00 95

FFFF FF FF FF FF

FFFF FF FF FF FF

FFFF FF FF FF FF

DEAD BE EF BA AD

F00D

4、總結(jié)

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    9116

    瀏覽量

    368191
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1715

    瀏覽量

    91830
  • 嵌入式技術(shù)
    +關(guān)注

    關(guān)注

    10

    文章

    360

    瀏覽量

    36332
收藏 人收藏

    評論

    相關(guān)推薦

    基于TI AM62xSPI接口配置

    了空間上的優(yōu)化和便捷。正因為它簡單易用的特點,現(xiàn)在越來越多的芯片選擇集成SPI通信協(xié)議。 作為TI Sitara?產(chǎn)品線新一代MPU產(chǎn)品,TI AM62x處理器特別配備了多達4路的SPI
    發(fā)表于 03-22 15:52

    TI AM62x處理器SPI總線怎么用

    。TI [AM62x]處理器擁有4路[SPI]以及1路QSPI,豐富的SPI接口可以同時接多個設(shè)備,[飛凌]OK6254-C[開發(fā)板]的NOR Flash就接在了OSPI(QSPI)總
    發(fā)表于 10-31 09:06

    AM62x相比AM335x,到底升級了什么?

    正式推出極有可能引領(lǐng)未來10年工業(yè)潮流的最新明星處理器平臺-AM62x,創(chuàng)龍科技作為TI的官方合作伙伴,亦緊跟潮流正式推出搭載AM62x處理器的工業(yè)核心板-SOM-TL
    發(fā)表于 05-03 23:37

    搭載TI AM62x處理器,飛凌FET6254-C核心板震撼發(fā)布

    搭載TI AM62x處理器,飛凌FET6254-C核心板登陸展臺首發(fā)!
    的頭像 發(fā)表于 06-24 14:16 ?1140次閱讀
    搭載TI <b class='flag-5'>AM62x</b><b class='flag-5'>處理器</b>,飛凌FET6254-C核心板震撼發(fā)布

    AM62xSPI總線怎么用?讓我告訴你

    TI AM62x處理器擁有4路SPI以及1路QSPI,豐富的SPI接口可以同時接多個設(shè)備,飛凌OK6254-C開發(fā)板的NOR Flash就接在了OSPI(QSPI)總線上。
    的頭像 發(fā)表于 10-28 17:14 ?995次閱讀
    <b class='flag-5'>AM62x</b>的<b class='flag-5'>SPI</b>總線怎么用?讓我告訴你

    TI AM62x接替AM335x,米爾核心板開發(fā)板

    TI AM62x接替AM335x,續(xù)寫下一個十年 AM62x是TI在智能工控領(lǐng)域新一代高性能、超高效處理器
    的頭像 發(fā)表于 08-08 11:58 ?1213次閱讀
    TI <b class='flag-5'>AM62x</b>接替<b class='flag-5'>AM335x</b>,米爾核心板開發(fā)板

    AM62x基于GPMC的ARM+FPGA通信方案

    。 GPMC是AM62xAM64x、AM437x、AM335x、AM57x處理器專用于與外部
    的頭像 發(fā)表于 09-25 12:18 ?1038次閱讀
    <b class='flag-5'>AM62x</b>基于GPMC的ARM+FPGA通信方案

    米爾AM62x核心板,高配價低,AM335x升級首選

    、醫(yī)療等領(lǐng)域的應(yīng)用面臨迫切的升級需求,AM62x處理器作為TI Sitara?產(chǎn)品線新一代MPU產(chǎn)品,相比上一代經(jīng)典處理器AM335x具備更高性能及功能擴展性,在內(nèi)核、GPU、存儲、顯
    的頭像 發(fā)表于 11-20 11:32 ?680次閱讀
    米爾<b class='flag-5'>AM62x</b>核心板,高配價低,<b class='flag-5'>AM335x</b>升級首選

    沒搶到?米爾AM62x開發(fā)板限量5折又來了

    AM62x替代AM335x處理器上次米爾AM62x開發(fā)板的5折活動沒搶到,今天又來了?。?!精彩不容錯過,限量30PCSSitara作為TI處理器
    的頭像 發(fā)表于 05-17 08:01 ?530次閱讀
    沒搶到?米爾<b class='flag-5'>AM62x</b>開發(fā)板限量5折又來了

    AM62x Sitara?處理器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《AM62x Sitara?處理器數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 08-03 10:51 ?0次下載
    <b class='flag-5'>AM62x</b> Sitara?<b class='flag-5'>處理器</b>數(shù)據(jù)表

    使用SPI將MSPM0–ADC連接到AM62x

    電子發(fā)燒友網(wǎng)站提供《使用SPI將MSPM0–ADC連接到AM62x上.pdf》資料免費下載
    發(fā)表于 08-30 10:27 ?0次下載
    使用<b class='flag-5'>SPI</b>將MSPM0–ADC連接到<b class='flag-5'>AM62x</b>上

    AM62x最大電流額定值

    電子發(fā)燒友網(wǎng)站提供《AM62x最大電流額定值.pdf》資料免費下載
    發(fā)表于 09-06 10:33 ?0次下載
    <b class='flag-5'>AM62x</b>最大電流額定值

    AM62x延長開機時間應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《AM62x延長開機時間應(yīng)用說明.pdf》資料免費下載
    發(fā)表于 09-13 10:01 ?0次下載
    <b class='flag-5'>AM62x</b>延長開機時間應(yīng)用說明

    AM62x低功耗SK EVM用戶指南

    電子發(fā)燒友網(wǎng)站提供《AM62x低功耗SK EVM用戶指南.pdf》資料免費下載
    發(fā)表于 11-12 15:00 ?0次下載
    <b class='flag-5'>AM62x</b>低功耗SK EVM用戶指南

    AM62x SK EVM用戶指南

    電子發(fā)燒友網(wǎng)站提供《AM62x SK EVM用戶指南.pdf》資料免費下載
    發(fā)表于 11-13 15:53 ?0次下載
    <b class='flag-5'>AM62x</b> SK EVM用戶指南