吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

SPI外設與MAX7651處理器的接口

星星科技指導員 ? 來源:ADI ? 作者:ADI ? 2023-02-24 16:22 ? 次閱讀

本文介紹如何將 GPIO 端口連接到 SPI 外設。它定義了SPI協議的基礎知識,信號和SCK信號的四種傳輸變體。包括一個軟件程序,用于使用MAX7651實現SPI接口,MAX12是一種閃存可編程的<>位集成數據采集系統。

介紹

The SPI?總線是許多微處理器外設芯片使用的4線串行通信接口。MAX7651微處理器不包括實現接口的專用硬件。但是,圖中顯示了可以向SPI外設發送和接收數據的簡單軟件例程。

SPI接口的4個引腳如下:

SCK(串行數據時鐘):數據在SCK的上升沿或下降沿上移動/鎖定(請參閱下一節)。

MOSI(主輸出/從輸入):如果芯片是主設備,則數據從此引腳傳輸出去,如果芯片是從設備,則數據傳輸到此引腳。

MISO(主輸入/從輸出):如果芯片是主設備,則數據接收到此引腳,如果芯片是從設備,則從該引腳傳輸出去。

/CS(芯片選擇,低電平有效):告知外圍設備傳輸即將開始。

SPI協議定義了SCK相位和極性的四種數據組合。如果芯片具有設置這四種狀態的控制位,則它們通常稱為CPOL(時鐘極性)和CPHA(時鐘相位)。SPI 始終以 8 位塊傳輸數據。您可以根據需要傳輸任意數量的 8 位塊。例如,16 位寫入從前 8 位開始到第 <> 位結束斷言/CS。

CPOL CPHA Transfer
0 0 SCK上升沿轉移。
SCK 在位定時中間進行轉換。
1 0 SCK 落邊轉移。
SCK 在位定時中間進行轉換。
0 1 SCK 落邊轉移。
SCK 在位時序開始時轉換。
1 1 SCK上升沿轉移。
SCK 在位時序開始時轉換。

在讀取SPI外設的數據手冊時,通常會看到對SPI模式的引用為CPOL = 0、CPHA = 0等,即使芯片本身在物理上不包含這些位定義。相反,SPI接口是“硬連線”的,以發送/接收數據,就好像CPOL和CPHA位已設置為0一樣。例如,MAX5154 12位DAC采用SPI接口,具有上升沿中位數據傳輸功能。這對應于CPOL = 0,CPHA = 0協議。因為這是迄今為止最常見的SPI傳輸,所以這就是我們將要討論的示例代碼。下圖來自MAX5154數據資料。信號/CS是SPI信號Active-Low SS,SCLK是SCK,DIN將連接到MODI,因為外設是從機,只有一個輸入(沒有回讀)。這部分在傳輸中使用 16 位。

poYBAGP4c9GAYukiAAAORlzC4Tw434.gif

圖1.串行接口時序圖。

代碼示例:8 位數據傳輸

以下示例是最常見的 SPI 傳輸類型,CPO = 0,CPHA = 0。該例程不假設MAX7651的時鐘速度,因為I/O端口位只是盡可能快地“位敲擊”。數據傳輸時間顯示在本節末尾。

圖2所示為MAX7651/MAX7652與SPI外設之間的典型連接。

pYYBAGP4c9GABmreAAAOL3vqPGk115.gif

圖2.通用 SPI 連接。

注釋字段中的數字 {N} 是執行指令的時鐘周期數。

;用于 8 位外設的 SPI 數據傳輸。MAX7651為主站;外圍是奴隸。
;
;使用以下SPI定義的引腳。(某些外圍設備是寫入的 僅,因此只需要 3 根電線。
;SCK:數據傳輸時鐘
;MISO:主輸入數據(來自外設),并不總是使用
;MOSI:主輸出數據(到外設);
SS:從選擇(低電平有效))
;

SCK EQU P1.0
MISO EQU P1.1
MOSI EQU P1.2
.CS EQU 小1.3 ;使用端口 1,但這是 100% 任意的。使用任何可用的 引 腳。

;
;現在我們需要使用MAX7651中的一些內部RAM作為數據存儲。
;為了執行速度,其中兩個變量必須位于 RAM 區域
;這允許在字節內進行位尋址。在MAX7651中,RAM空間對應于
;到地址 20H 到 2FH。低于 20H 或高于 2FH 的地址不能被位尋址!

SPI_In EQU 30H ;從從屬設備讀取 8 位的結果。
SPI_Out EQU 21小時 ;我們希望發送給奴隸的數據。

;
;最后,我們需要一個循環計數器來跟蹤發送 8 位。
;這可以是“R”寄存器 (R0-R7) 或
;任何 RAM 寄存器(不必是位可尋址的)。讓我們使用
內存 ;注冊。

LOOP EQU 30H ;可以在地圖中的任何位置;這只是一個例子。

;
;假設調用時,已經設置了片選位SS 到 1.

SPI_IO: CLR SCK ; SCK starts off low. {1}
CLR CS ; Clearing CS begins the data transfer. {1}
SETB MISO ; To be used as input, must be set internally. {1}
MOV LOOP,#8 ; Eight bits to transfer. {3}
XFER: MOV C,SPI_Out.7 ; Move bit 7 into Carry (SPI is MSB first). {2}
MOV MOSI,C ; I/O port reflects the Carry bit, which is the Data bit. {2}
SETB SCK ; Generate SCK rising edge, after Data is stable. {1}
MOV C,MISO ; Read data from Slave into Carry (optional). {2}
MOV SPI_In.7,C ; Copy into the received data byte, bit-7 position. {2}
CLR SCK ; Generate SCK falling edge, after data read in. {1}
MOV A,SPI_Out ; Accumulator is temp holder for shift operation. {2}
RL A ; Rotate left (but not through Carry!). {1}
MOV SPI_Out, A ; Prepare bit 7 for next transfer to Slave. {2}
MOV A,SPI_In ; Get previous Slave read data. {2}
RL A ; Rotate left to get next bit position into proper spot. {1}
MOV SPI_In,A ; Save result. {2}
DJNZ LOOP,XFER ; Decrement LOOP. Jump if not zero to XFER. {3}
; Transfer done.
SETB CS ; De-assert chip select. {1}
.END ; Tell assembler code completed.

傳輸 8 位(讀取和寫入從屬)的 CPU 周期總數為 6 + 8 × 23 + 1 = 191。僅供讀取或寫入,總數為 6 + 8 × 18 + 1 = 151 個 CPU 周期。下表給出了使用MAX7651常用時鐘速度的各種傳輸速率。

MAX7651時鐘速度 位傳輸時間 總讀/寫
傳輸時間
12兆赫 7.95us (~125KHz) 63.6秒
11.0592兆赫 8.63us (~116KHz) 69.08秒
4兆赫 23.88us (~41.9KHz) 191us

從此表中,我們可以看到最快的SPI字節傳輸約為15.7KHz,而最慢的速率為5.2KHz。這比專用的1MHz SPI硬件端口慢得多!因此,如果MAX7651用作從機,則必須將SPI主機設置為最慢的位傳輸速度(125KHz),MAX7651必須工作在12MHz時鐘速度。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    456

    文章

    51192

    瀏覽量

    427314
  • 微處理器
    +關注

    關注

    11

    文章

    2274

    瀏覽量

    82778
  • GPIO
    +關注

    關注

    16

    文章

    1216

    瀏覽量

    52387
收藏 人收藏

    評論

    相關推薦

    RK3399處理器與AR9201處理器有哪些不同之處呢

    RK3399處理器與AR9201處理器有哪些不同之處呢?hi3559A處理器與RV1126處理器有哪些不同之處呢?
    發表于 02-21 07:29

    基于ARM的PC/104處理器模塊設計

    提出了一種低成本的PC/104處理器模塊的設計。該模塊硬件上以ARM處理器為核心實現了PC/104處理模塊的基本結構、總線接口,軟件上構建了嵌入式Linux操作系統。以ARM
    發表于 08-25 10:36 ?20次下載

    MAX7651評估板配置Keil µVisio

    摘要:本文討論了為MAX7651評估板建立項目和配置Keil µVision® IDE的操作流程,并給出了一個第三方的應用實例:程序編寫、編譯以及下載到MAX7651評估板的步驟。
    發表于 04-23 14:08 ?1070次閱讀
    為<b class='flag-5'>MAX7651</b>評估板配置Keil µVisio

    利用MAX7651實現ADC轉換

    摘要:本文提供了利用MAX7651評估板實現模/數轉換的源代碼和函數。它是MAX7651評估板提供的3個應用例程之一,能夠進行寫、編譯和下載等簡單的編程功能。 另請參考:
    發表于 04-23 14:09 ?889次閱讀

    Interfacing the MAX7651/MAX765

    to interface the MAX7651 and MAX7652 12-bit data acquisition system to the 24C02 2-wire serial EEPROM. Detailed software code is provid
    發表于 04-23 15:12 ?1442次閱讀
    Interfacing the <b class='flag-5'>MAX7651</b>/<b class='flag-5'>MAX</b>765

    外圍設備的SPI接口MAX7651處理器-Interfac

    Abstract: This article explains how to interface a GPIO port to an SPI peripheral. It defines
    發表于 04-24 16:10 ?852次閱讀
    外圍設備的<b class='flag-5'>SPI</b><b class='flag-5'>接口</b>的<b class='flag-5'>MAX7651</b><b class='flag-5'>處理器</b>-Interfac

    外圍設備的SPI接口MAX7651處理器-Interfac

    Abstract: This article explains how to interface a GPIO port to an SPI peripheral. It defines
    發表于 05-08 09:41 ?507次閱讀
    外圍設備的<b class='flag-5'>SPI</b><b class='flag-5'>接口</b>的<b class='flag-5'>MAX7651</b><b class='flag-5'>處理器</b>-Interfac

    Intel 64位處理器,Intel 64位處理器結構原理

    Intel 64位處理器,Intel 64位處理器結構原理 現在人們廣泛使用的是由32位微處理器構成的計算系統,但是32位的計算和操作系統不能支持
    發表于 03-26 15:07 ?3337次閱讀

    蘋果a6處理器怎么樣_a6處理器參數

    蘋果正式發布iphone5,iphone5采用A6處理器,那么A6處理器怎么樣?a6處理器參數是什么呢?a6處理器四核的嗎?帶著這些疑問,我們來一起了解下A6
    發表于 09-13 14:29 ?2.6w次閱讀

    如何將ADS7866/67/68ADC連接TMS470處理器的串行外設接口端口的概述

    該應用報告提出了將ADS7866/67/68 12/10/8位SAR模數轉換連接到TMS470處理器的串行外設接口SPI)端口的方法。T
    發表于 05-25 16:03 ?9次下載
    如何將ADS7866/67/68ADC連接TMS470<b class='flag-5'>處理器</b>的串行<b class='flag-5'>外設</b><b class='flag-5'>接口</b>端口的概述

    麒麟9000處理器和高通驍龍875處理器相比如何?

    隨著華為mate10系列的發布,華為最后一代旗艦處理器,麒麟9000也就此亮相,大家對于麒麟9000處理器十分的看好。因為麒麟9000處理器在安兔兔的跑分竟然高達72萬分,較上一代麒麟990
    的頭像 發表于 11-03 11:31 ?5972次閱讀

    MAX7651評估板配置Keil μVision IDE

    本文給出了啟動項目和為MAX7651評估板配置Keil μVision? IDE軟件的分步步驟。本文為MAX7651評估板目標板編寫、編譯和下載簡單程序的三部分應用示例中的第二個。
    的頭像 發表于 01-23 14:53 ?1309次閱讀
    為<b class='flag-5'>MAX7651</b>評估板配置Keil μVision IDE

    MAX7651/MAX7652 12位數據采集系統與24C02 2線串行EEPROM接口

    本文介紹將MAX7651MAX7652 12位數據采集系統連接至24C02 2線串行EEPROM所需的特定硬件描述和軟件程序。提供了詳細的軟件代碼。由于MAX7651/52基于標準
    的頭像 發表于 03-01 14:18 ?1260次閱讀
    <b class='flag-5'>MAX7651</b>/<b class='flag-5'>MAX</b>7652 12位數據采集系統與24C02 2線串行EEPROM<b class='flag-5'>接口</b>

    SPI外設MAX7651處理器接口

    The SPI?總線是許多微處理器外設芯片使用的4線串行通信接口MAX7651處理器不包括實
    的頭像 發表于 03-28 11:14 ?1084次閱讀
    <b class='flag-5'>SPI</b><b class='flag-5'>外設</b>與<b class='flag-5'>MAX7651</b><b class='flag-5'>處理器</b>的<b class='flag-5'>接口</b>

    基于全志V853處理器的智能輔助駕駛算法介紹

    全志V853處理器,是專為智慧視覺領域設計的AI處理器,配備了高效的NPU算力和豐富的外設接口,能夠提供穩定的AI邊緣計算支持;同時,基于V853
    的頭像 發表于 09-14 09:23 ?1208次閱讀
    基于全志V853<b class='flag-5'>處理器</b>的智能輔助駕駛算法介紹
    百家乐官网软件编辑原理| 太阳城巧克力| 百家乐官网园云顶娱乐主页| 大发888游戏下载| 24个招财方法| 大东方百家乐官网游戏| 威尼斯人娱乐城网络百家乐| 百家乐官网怎么玩会| 伊金霍洛旗| 威尼斯人娱乐城澳门赌博| 百家乐官网园首选| 百家乐官网好多假网站| 大发888娱乐城下| 百家乐百姓话题| 百家乐官网牌路图表下| 88真人娱乐城| 万达百家乐娱乐城| 24山向山摆设| 百家乐官网一直下注庄家| 大发888爱好| 澳门百家乐哪家信誉最好| 百家乐官网网站制作| 360博彩通| 威尼斯人娱乐场官网是多少| 百家乐是骗人吗| 百家乐官网现金网平台排行榜| 大发888国际娱乐| 赌片百家乐的玩法技巧和规则| 实战百家乐官网十大取胜原因百分百战胜百家乐官网不买币不吹牛只你能做到按我说的.百家乐官网基本规则 | 大发888官方下载 网站| 百家乐的方法和公式| 百家乐官网庄闲和的倍数| 百家乐官网破解视频| 大发888澳88| 凯发百家乐是否是程序控制| 云鼎百家乐官网的玩法技巧和规则 | 百家乐官网软件稳赚| 赌博娱乐城| 大发888国际赌场娱乐网规则| 网上百家乐真的假| 百家乐现金网平台|