国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 906|回復: 0
打印 上一主題 下一主題

基于TI AM62x的SPI接口配置

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2024-3-22 15:52:36 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

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

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



01 SPI的工作流程和時序

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

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

該引腳在從模式下發送數據,在主模式下接收數據;

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

該引腳在主模式下發送數據,在從模式下接收數據;

(3) CLK:串口時鐘

作為主設備的輸出,從設備的輸入;

(4) NSS:從設備選擇

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


SPI的工作流程是這樣的:

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

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

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

(4) 主機發送到從機時,主機產生相應的時鐘信號,然后數據一位一位地將從MOSI信號線上進行發送到從機;

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


SPI工作時序圖如下:



02

AM62x處理器中SPI總線的特點

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


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

當屬性值為1時,d0為輸出,d1為輸入。


03 AM62x的SPI應用

1. menuconfig配置:

將該項選中,SPI驅動將編譯進內核中。

makemenuconfi

DeviceDrivers ->

SPIsupport ->

Usermode SPI device driver support

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


2. 設備樹配置:

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

(2) 將該節點所用的引腳復用為相應的功能。



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) 描述節點的屬性,具體配置項的功能見注釋。


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

3. 編譯燒錄:

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

. build.shsudo ./build.sh kernel

沒有報錯即為編譯成功。


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


4. SPI測試:

將spi0_D0和spi0_D1短接

重啟開發板后,在/dev目錄下看到多出兩個spidev設備。

使用我們的測試程序


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


您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久99热这里只有精品 | 国产精品欧美亚洲日本综合 | 最近韩国日本免费观看mv | 精品自拍视频在线观看 | 91久久线看在观草草青青 | 青青操免费在线视频 | 99热这里| 日本特黄的免费大片视频 | 亚洲 欧美 日韩在线一区 | 91国内精品| 欧美天堂在线观看 | 亚洲国产成+人+综合 | 99热99热| 日本阿v精品视频在线观看 日本xxxxx高清免费观看 | 一二三四免费视频社区 | 国内精品免费网站牛牛 | 国产4tube在线播放 | 亚洲国产成人精品久久 | 成人精品视频网站 | 国产精品欧美久久久久天天影视 | 四虎新网站 | 亚洲欧美日韩精品高清 | 老师的小兔子好大好软水好多视频 | 日韩欧美精品在线观看 | 国产成人欧美一区二区三区vr | 啦啦啦高清影视在线观看视频? | 国产精久久一区二区三区 | 91网页| 青青青手机在线视频 | 妈妈的朋友伦理片在线观看 | 中文字幕一区二区三匹 | 自拍视频在线观看完整版 | 国产原创麻豆精品视频 | 久久99久久99精品免观看动漫 | 日本不卡一区二区三区四区 | chengren网站| 日韩在线免费视频 | 亚洲黄色免费在线观看 | 精品国精品国产自在久国产不卡 | 无圣光私拍一区二区三区 | 国产精品久久久久一区二区三区 |