SPI接口的4種模式(根據時鐘極性和時鐘相位)

SPI(Serial Peripheral Interface) 接口根據時鐘極性(CPOL)和時鐘相位(CPHA)的不同組合,共有 4種工作模式。這些模式決定了數據采樣和傳輸的時序關系,是SPI通信中必須正確配置的關鍵參數。以下是詳細解析:


1. SPI的4種工作模式

SPI模式由兩個參數定義:

  • CPOL(Clock Polarity):時鐘空閑時的電平狀態。
    • CPOL=0:空閑時為低電平。
    • CPOL=1:空閑時為高電平。
  • CPHA(Clock Phase):數據采樣的時鐘邊沿。
    • CPHA=0:在時鐘的第一個邊沿(上升沿或下降沿)采樣數據。
    • CPHA=1:在時鐘的第二個邊沿采樣數據。

組合后形成4種模式:

模式CPOLCPHA空閑時鐘數據采樣邊沿數據切換邊沿
Mode 000低電平第一個上升沿(SCK從低→高)下降沿(SCK從高→低)
Mode 101低電平第一個下降沿(SCK從高→低)上升沿(SCK從低→高)
Mode 210高電平第一個下降沿(SCK從高→低)上升沿(SCK從低→高)
Mode 311高電平第一個上升沿(SCK從低→高)下降沿(SCK從高→低)

2. 模式對比與波形示例

Mode 0(最常用)
  • 波形特點
    • 空閑時SCK為低電平。
    • 數據在SCK上升沿被采樣,下降沿切換。
  • 典型應用:多數傳感器(如BME280)、FLASH芯片(如W25Q64)。
Mode 1
  • 波形特點
    • 空閑時SCK為低電平。
    • 數據在SCK下降沿被采樣,上升沿切換。
  • 典型應用:部分ADC芯片(如MCP3008)。
Mode 2
  • 波形特點
    • 空閑時SCK為高電平。
    • 數據在SCK下降沿被采樣,上升沿切換。
  • 典型應用:較少見,某些特定射頻模塊。
Mode 3
  • 波形特點
    • 空閑時SCK為高電平。
    • 數據在SCK上升沿被采樣,下降沿切換。
  • 典型應用:部分EEPROM(如AT25系列)。

3. 如何選擇SPI模式?

  1. 查閱器件手冊:從設備的SPI模式是固定的,必須與主設備匹配。
    • 例如:BMP280傳感器默認Mode 0,而ADXL345支持Mode 0和Mode 3。
  2. 觀察時序圖
    • 確認數據采樣邊沿與時鐘極性/相位的對應關系。
  3. 實驗調試
    • 若通信失敗,可嘗試切換模式(常見錯誤:Mode 0與Mode 3混淆)。

4. SPI的其他關鍵配置

除了模式,還需配置以下參數:

  • 時鐘頻率(SCK):從設備支持的最大頻率(如10 MHz)。
  • 數據位順序(MSB/LSB First):通常MSB優先。
  • 片選信號(CS):高電平有效或低電平有效。

5. 代碼示例(STM32配置SPI Mode 0)

// STM32 HAL庫配置SPI Mode 0
SPI_HandleTypeDef hspi;
hspi.Instance = SPI1;
hspi.Init.Mode = SPI_MODE_MASTER;
hspi.Init.Direction = SPI_DIRECTION_2LINES;
hspi.Init.DataSize = SPI_DATASIZE_8BIT;
hspi.Init.CLKPolarity = SPI_POLARITY_LOW;   // CPOL=0
hspi.Init.CLKPhase = SPI_PHASE_1EDGE;       // CPHA=0
hspi.Init.NSS = SPI_NSS_SOFT;
hspi.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_32;
HAL_SPI_Init(&hspi);

6. 常見問題

  • 模式不匹配:主從設備模式不一致導致數據讀取錯誤。
  • 時鐘頻率過高:從設備無法響應,表現為數據丟失。
  • 片選信號未控制:未拉低CS導致通信無響應。

總結

SPI的4種模式通過CPOL和CPHA組合定義,需嚴格匹配從設備要求。Mode 0和Mode 3最為常見,Mode 1和Mode 2多用于特定器件。配置時務必結合時序圖和手冊驗證!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/91387.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/91387.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/91387.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java:高頻面試知識分享2

HashSet 和 TreeSet 的區別?底層實現:HashSet 基于 HashMap 實現,使用哈希表存儲元素;TreeSet 基于 TreeMap,底層為紅黑樹。元素順序:HashSet 無序;TreeSet 會根據元素的自然順序或傳入的 Compa…

C語言習題講解-第九講- 常見錯誤分類等

C語言習題講解-第九講- 常見錯誤分類等1. C程序常見的錯誤分類不包含:( )2. 根據下面遞歸函數:調用函數 Fun(2) ,返回值是多少( )3. 關于遞歸的描述錯誤的是:( &#x…

A?算法(A-star algorithm)一種在路徑規劃和圖搜索中廣泛使用的啟發式搜索算法

A?A*A?算法(A-star algorithm)是一種在路徑規劃和圖搜索中廣泛使用的啟發式搜索算法,它結合了Dijkstra算法的廣度優先搜索思想和啟發式算法的效率優勢,能夠高效地找到從起點到終點的最短路徑。 1. 基本原理 A*算法的核心是通過估…

UniappDay06

1.填寫訂單-渲染基本信息 靜態結構&#xff08;分包&#xff09;封裝請求API import { http } from /utils/http import { OrderPreResult } from /types/orderexport const getmemberOrderPreAPI () > {return http<OrderPreResult>({method: GET,url: /member/orde…

論文略讀:GINGER: Grounded Information Nugget-Based Generation of Responses

SIGIR 2025用戶日益依賴對話助手&#xff08;如 ChatGPT&#xff09;來滿足多種信息需求&#xff0c;這些需求包括開放式問題、需要推理的間接回答&#xff0c;以及答案分布在多個段落中的復雜查詢RAG試圖通過在生成過程中引入檢索到的信息來解決這些問題但如何確保回應的透明性…

從內部保護你的網絡

想象一下&#xff0c;你是一家高端俱樂部的老板&#xff0c;商務貴賓們聚集在這里分享信息、放松身心。然后假設你雇傭了最頂尖的安保人員——“保鏢”——站在門口&#xff0c;確保你準確掌握所有進出的人員&#xff0c;并確保所有人的安全。不妨想象一下丹尼爾克雷格和杜安約…

Redis 中 ZipList 的級聯更新問題

ZipList 的結構ZipList 是 Redis 中用于實現 ZSet 的壓縮數據結構&#xff0c;其元素采用連續存儲方式&#xff0c;具有很高的內存緊湊性。ZipList 結構組成如下&#xff1a;zlbytes&#xff1a;4字節&#xff0c;記錄整個ziplist的字節數zltail&#xff1a;4字節&#xff0c;記…

【蒼穹外賣項目】Day05

&#x1f4d8;博客主頁&#xff1a;程序員葵安 &#x1faf6;感謝大家點贊&#x1f44d;&#x1f3fb;收藏?評論?&#x1f3fb; 一、Redis入門 Redis簡介 Redis是一個基于內存的 key-value 結構數據庫 基于內存存儲&#xff0c;讀寫性能高適合存儲熱點數據&#xff08;熱…

語音識別dolphin 學習筆記

目錄 Dolphin簡介 Dolphin 中共有 4 個模型&#xff0c;其中 2 個現在可用。 使用demo Dolphin簡介 Dolphin 是由 Dataocean AI 和清華大學合作開發的多語言、多任務語音識別模型。它支持東亞、南亞、東南亞和中東的 40 種東方語言&#xff0c;同時支持 22 種漢語方言。該模…

視頻生成中如何選擇GPU或NPU?

在視頻生成中選擇GPU還是NPU&#xff0c;核心是根據場景需求、技術約束和成本目標來匹配兩者的特性。以下是具體的決策框架和場景化建議&#xff1a; 核心決策依據&#xff1a;先明確你的“視頻生成需求” 選擇前需回答3個關鍵問題&#xff1a; 生成目標&#xff1a;視頻分辨率…

從豆瓣小組到深度洞察:一個基于Python的輿情分析爬蟲實踐

文章目錄 從豆瓣小組到深度洞察:一個基于Python的輿情分析爬蟲實踐 摘要 1. 背景 2. 需求分析 3. 技術選型與實現 3.1 總體架構 3.2 核心代碼解析 4. 難點分析與解決方案 5. 總結與展望 對爬蟲、逆向感興趣的同學可以查看文章,一對一小班教學:https://blog.csdn.net/weixin_…

RustDesk 使用教程

說明&#xff1a; 使用RustDesk 需要在不同的電腦安裝對應系統型號的客戶端&#xff0c;然后再去云服務器安裝一個服務端即可。 1、到網站下載客戶端&#xff1a;https://rustdesk.com/zh-cn/ 兩臺電腦安裝客戶端。 2、在云服務器安裝服務端 1&#xff09;官網教程&#xff1a;…

【C語言網絡編程基礎】TCP 服務器詳解

在網絡通信中&#xff0c;TCP&#xff08;Transmission Control Protocol&#xff0c;傳輸控制協議&#xff09;是一種可靠、面向連接的協議。一個 TCP 服務器正是基于這種協議&#xff0c;為客戶端提供穩定的網絡服務。本文將詳細介紹 TCP 服務器的基本原理和工作流程。 一、什…

一篇就夠!Windows上Docker Desktop安裝 + 漢化完整指南(包含解決wsl更新失敗方案)

前言 在現代軟件開發和人工智能應用中&#xff0c;環境的穩定性和可移植性至關重要。Docker 作為一種輕量級的容器化技術&#xff0c;為開發者提供一致的運行環境&#xff0c;使得軟件可以在不同平臺上無縫運行&#xff0c;極大地提升了開發和部署的效率。無論是本地開發、測試…

設計模式(二十四)行為型:訪問者模式詳解

設計模式&#xff08;二十四&#xff09;行為型&#xff1a;訪問者模式詳解訪問者模式&#xff08;Visitor Pattern&#xff09;是 GoF 23 種設計模式中最具爭議性但也最強大的行為型模式之一&#xff0c;其核心價值在于將作用于某種數據結構中的各元素的操作分離出來&#xff…

USRP X440 和USRP X410 直接RF采樣架構的優勢

USRP X440 和USRP X410 直接RF采樣架構的優勢概述什么是直接RF采樣&#xff1f;如何實現直接采樣&#xff1f;什么情況下應考慮使用直接RF采樣架構&#xff1f;概述 轉換器技術每年都在發展。主要半導體公司的模數轉換器(ADC)和數模轉換器(DAC)的采樣速率比十年前的產品快了好…

P4568 [JLOI2011] 飛行路線

P4568 [JLOI2011] 飛行路線 題目描述 Alice 和 Bob 現在要乘飛機旅行&#xff0c;他們選擇了一家相對便宜的航空公司。該航空公司一共在 nnn 個城市設有業務&#xff0c;設這些城市分別標記為 000 到 n?1n-1n?1&#xff0c;一共有 mmm 種航線&#xff0c;每種航線連接兩個城市…

MySQL 中的聚簇索引和非聚簇索引的區別

MySQL 中的聚簇索引和非聚簇索引的區別 總結性回答 聚簇索引和非聚簇索引的主要區別在于索引的組織方式和數據存儲位置。聚簇索引決定了表中數據的物理存儲順序&#xff0c;一個表只能有一個聚簇索引&#xff1b;而非聚簇索引是獨立于數據存儲的額外結構&#xff0c;一個表可以…

全局異常處理,可以捕捉到過濾器中的異常嗎?

全局異常處理,可以捕捉到過濾器中的異常嗎? 全局異常處理器(如Spring的@ControllerAdvice+@ExceptionHandler)默認無法直接捕獲過濾器(Filter)中拋出的異常,這是由過濾器和Spring MVC的執行順序及職責邊界決定的。具體原因和解決方案如下: 一、為什么全局異常處理器默…

市政道路積水監測系統:守護城市雨天出行安全的 “智慧防線”

市政道路積水監測系統&#xff1a;守護城市雨天出行安全的 “智慧防線”柏峰【BF-DMJS】每逢汛期&#xff0c;強降雨引發的城市道路積水問題&#xff0c;不僅會造成交通擁堵&#xff0c;更可能危及行人和車輛安全&#xff0c;成為困擾城市管理的一大難題。傳統的積水監測主要依…