日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

探秘 SPI 總線

KiCad ? 來源:KiCad ? 作者:KiCad ? 2025-03-25 11:11 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

詳解串行外設(shè)接口及其與存儲(chǔ)器、顯示屏、Wi-Fi模塊和SD卡的通信應(yīng)用。

wKgZO2fiH7aATIdwAAG5L5i7K3I122.png

在先前文章中,我探討了現(xiàn)代 OLED 顯示屏與裸機(jī)微控制器對(duì)接的驚人便捷性。我的觀點(diǎn)很簡(jiǎn)單:多數(shù)嵌入式應(yīng)用中,采用完整 Linux SoC 平臺(tái)(如樹莓派)不僅冗余,反而會(huì)引發(fā)更多待解難題。

可能會(huì)有人反駁:OLED 模塊或許是個(gè)特例。比如為 MCU 添加無線連接或外部閃存模塊,工程復(fù)雜度必定陡增。

雖無普適答案,但我認(rèn)為 OLED 相關(guān)的練習(xí)比大多數(shù)練習(xí)都要更難。在無需千兆級(jí)傳輸速率的場(chǎng)景中,嵌入式外設(shè)多采用串行外設(shè)接口(SPI):這種極其簡(jiǎn)單的全雙工總線輕松實(shí)現(xiàn)超 50 Mbps 傳輸速率,且通常規(guī)避了 OLED 內(nèi)存排序邏輯等異常設(shè)計(jì)。

SPI 的基本原理和操作方式很容易理解:由 MCU 主導(dǎo)通信流程。當(dāng)需傳輸數(shù)據(jù)時(shí),MCU 將對(duì)應(yīng)外設(shè)的「片選」(CS-)引腳拉低,并向總線 SCK(串行時(shí)鐘)線輸出時(shí)鐘信號(hào)。MCU 通過 MOSI(主出從入)逐位發(fā)送數(shù)據(jù)(通常在時(shí)鐘上升沿觸發(fā)),外設(shè)則通過 MISO(主入從出)并行回應(yīng)。

wKgZO2fiH7aAfD3tAAB8Hwr_jBg107.jpg 常用(“模式 0”)的 SPI 協(xié)議要點(diǎn)

時(shí)鐘信號(hào)在傳輸單個(gè)字節(jié)或其整數(shù)倍后自動(dòng)停止。當(dāng) MCU 需單向接收數(shù)據(jù)時(shí),可通過 MOSI 發(fā)送虛擬字節(jié)以激活總線時(shí)鐘,同時(shí)讀取 MISO 數(shù)據(jù);同理,外設(shè)亦可借此機(jī)制保持通信同步。

盡管從某種角度來說,為 SPI 總線提供硬件驅(qū)動(dòng)可能并不是絕對(duì)必要的,但很多微控制器還是會(huì)提供一個(gè)針對(duì) SPI 總線的硬件驅(qū)動(dòng)。以 ATmega328P 為例,其 SPI 數(shù)據(jù)寄存器(SPDR)具備自動(dòng)收發(fā)功能:當(dāng)向該寄存器寫入字節(jié)時(shí),系統(tǒng)自動(dòng)執(zhí)行 SPI 總線傳輸,發(fā)送數(shù)據(jù)的同時(shí),該寄存器還會(huì)被來自 MISO(Master In Slave Out)的數(shù)據(jù)替換。傳輸完成時(shí),微控制器就會(huì)在 SPI 狀態(tài)寄存器(SPSR)中設(shè)置“SPI 完成”(SPIF)標(biāo)志位。

假設(shè)我需要將 ATmega328P 與一款 128kB SRAM模塊(型號(hào)23LC1024)對(duì)接。該模塊僅有 8 個(gè)引腳:2 個(gè)電源引腳(支持 2.5-5.5V 輸入),4 個(gè)基礎(chǔ) SPI 接口引腳,以及 2 個(gè)無需連接的冗余引腳。具體連接時(shí),需將模塊的"串行輸入"(SI)引腳接至 MCU 的 MOSI 線路,"串行輸出"(SO)引腳接至 MISO 線路,SCK(時(shí)鐘)線需互聯(lián)。最后的"片選"(CS-)引腳可接至 MCU任意輸出線,本例將采用端口B的第 0 位。

完成硬件連接后,需返回微控制器進(jìn)行配置:通過 DDRB 寄存器的位映射設(shè)置 MOSI 和 SCK 引腳為輸出模式,MISO 為輸入模式(如先前所述)。接著在 SPI 配置寄存器(SPCR)中激活兩個(gè)標(biāo)志位:"SPI 使能"(SPE)與"主控模式"(MSTR):

DDRB=0b11101111;SPCR= (1<< SPE) | (1?<< MSTR);
除基本配置外,SPCR 寄存器還支持總線速率分頻設(shè)置(如SPI2X、SPR1/SPR0位),但實(shí)驗(yàn)階段默認(rèn)速率(通常為系統(tǒng)時(shí)鐘的1/4)已能滿足需求。完成寄存器初始化后,可通過以下函數(shù)實(shí)現(xiàn)與存儲(chǔ)控制器的單字節(jié)雙向通信:

uint8_tspi_rxtx_byte(uint8_tval){ SPDR = val;while(!(SPSR & (1<< SPIF)));??return?SPDR;}
應(yīng)用層協(xié)議也很簡(jiǎn)單,寫入流程如下:

發(fā)送寫指令碼 0x02

發(fā)送 3 個(gè)字節(jié)的寫入地址

連續(xù)發(fā)送待寫入數(shù)據(jù)流

拉高 CS- 引腳結(jié)束操作

wKgZO2fiH7aAFEk3AAK4pY1Ro4k108.png

雖然圖表看似復(fù)雜,但實(shí)現(xiàn)這一功能的代碼卻簡(jiǎn)單而貼心:

voidwrite_ext_ram_bytes(uint32_taddr,constuint8_t* ptr,uint16_tlen){ PORTB &= ~1;/* CS- down */spi_rxtx_byte(0x02);spi_rxtx_byte(addr >>16);spi_rxtx_byte(addr >>8);spi_rxtx_byte(ext_addr);while(len--)spi_rxtx_byte(*(ptr++)); PORTB |=1;/* CS- up */}
讀取存儲(chǔ)器的工作原理大致相同,MCU 會(huì)發(fā)送一條 “讀取 ”命令 (0x03),然后不斷發(fā)送虛字節(jié),同時(shí)保存從存儲(chǔ)器芯片收到的響應(yīng):

voidread_ext_ram_bytes(uint32_taddr,uint8_t* ptr,uint16_tlen){ PORTB &= ~1;/* -CS down */spi_rxtx_byte(0x03);spi_rxtx_byte(addr >>16);spi_rxtx_byte(addr >>8);spi_rxtx_byte(addr);while(len--) *(ptr++) =spi_rxtx_byte(0); PORTB |=1;/* -CS up */}
無論是與SRAM芯片通信、對(duì)接非易失性閃存控制器、驅(qū)動(dòng)SD存儲(chǔ)卡,還是操作樂鑫(Espressif)等廠商推出的低成本W(wǎng)iFi+TCP/IP模組,SPI總線協(xié)議棧的核心交互邏輯均高度統(tǒng)一。
值得關(guān)注的是,當(dāng)前主流WiFi模組的應(yīng)用層協(xié)議竟沿用了1980年代Hayes調(diào)制解調(diào)器的指令體系(經(jīng)適度現(xiàn)代化改造)。例如,開發(fā)者仍可通過經(jīng)典"AT"指令集發(fā)起HTTP請(qǐng)求——這種將復(fù)古命令行與現(xiàn)代物聯(lián)網(wǎng)技術(shù)深度融合的設(shè)計(jì),堪稱嵌入式領(lǐng)域的"復(fù)古科技彩蛋"。

原文轉(zhuǎn)載自:https://lcamtuf.substack.com/p/mcu-land-part-2-mysteries-of-the,經(jīng)過翻譯及校驗(yàn)

注意:如果想第一時(shí)間收到 KiCad 內(nèi)容推送,請(qǐng)點(diǎn)擊下方的名片,按關(guān)注,再設(shè)為星標(biāo)。

常用合集匯總:

和 Dr Peter 一起學(xué) KiCad

KiCad 8 探秘合集

KiCad 使用經(jīng)驗(yàn)分享

KiCad 設(shè)計(jì)項(xiàng)目(Made with KiCad)

常見問題與解決方法

KiCad 開發(fā)筆記

插件應(yīng)用

發(fā)布記錄

審核編輯 黃宇

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

    關(guān)注

    39

    文章

    7760

    瀏覽量

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

    關(guān)注

    17

    文章

    1900

    瀏覽量

    102226
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    3062

    瀏覽量

    91903
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    深入解析Microchip 23A256/23K256 256-Kbit SPI總線低功耗串行SRAM

    深入解析Microchip 23A256/23K256 256-Kbit SPI總線低功耗串行SRAM 在電子設(shè)計(jì)領(lǐng)域,存儲(chǔ)設(shè)備的性能和特性對(duì)整個(gè)系統(tǒng)的運(yùn)行起著至關(guān)重要的作用。今天,我們就來詳細(xì)探討
    的頭像 發(fā)表于 04-05 13:50 ?716次閱讀

    探秘MIC5162:高速總線終端的雙路調(diào)節(jié)器控制器

    探秘MIC5162:高速總線終端的雙路調(diào)節(jié)器控制器 一、引言 在高速數(shù)字系統(tǒng)的設(shè)計(jì)中,信號(hào)完整性和總線終端匹配是至關(guān)重要的問題。MIC5162作為一款專為高速總線終端設(shè)計(jì)的雙路調(diào)節(jié)器控
    的頭像 發(fā)表于 03-29 15:15 ?471次閱讀

    DS3234:高精度SPI總線實(shí)時(shí)時(shí)鐘的卓越之選

    DS3234:高精度SPI總線實(shí)時(shí)時(shí)鐘的卓越之選 在電子設(shè)備中,實(shí)時(shí)時(shí)鐘(RTC)是確保設(shè)備準(zhǔn)確計(jì)時(shí)的關(guān)鍵組件。DS3234作為一款低功耗、高精度的SPI總線實(shí)時(shí)時(shí)鐘,集成了溫度補(bǔ)償晶
    的頭像 發(fā)表于 03-24 16:00 ?244次閱讀

    探秘74LVC1T45:?jiǎn)伪忍仉p電源總線收發(fā)器的卓越性能

    探秘74LVC1T45:?jiǎn)伪忍仉p電源總線收發(fā)器的卓越性能 在當(dāng)今的電子系統(tǒng)設(shè)計(jì)中,電壓轉(zhuǎn)換和數(shù)據(jù)傳輸是至關(guān)重要的環(huán)節(jié)。SG Micro Corp推出的74LVC1T45單比特雙電源總線收發(fā)器,憑借其
    的頭像 發(fā)表于 03-13 15:40 ?580次閱讀

    探秘MAX16550B:12V總線集成保護(hù)IC的卓越之選

    探秘MAX16550A/MAX16550B:12V總線集成保護(hù)IC的卓越之選 在電子工程師的日常工作中,對(duì)12V電源總線的保護(hù)、控制和監(jiān)測(cè)是一項(xiàng)至關(guān)重要的任務(wù)。今天,我們就來深入了解一下Maxim
    的頭像 發(fā)表于 02-06 16:45 ?1037次閱讀

    使用PicoScope示波器解碼SPI總線信號(hào)

    串行外設(shè)接口(SPI, Serial Peripheral Interface)總線最早由 Motorola 開發(fā),用于其微控制器產(chǎn)品。由于其結(jié)構(gòu)簡(jiǎn)單、實(shí)現(xiàn)直接,隨后被其它廠商廣泛采用,目前已在嵌入式系統(tǒng)領(lǐng)域的各類器件中得到普及。
    的頭像 發(fā)表于 02-04 09:49 ?8153次閱讀
    使用PicoScope示波器解碼<b class='flag-5'>SPI</b><b class='flag-5'>總線</b>信號(hào)

    瑞芯微(EASY EAI)RV1126B SPI使用

    1.SPI簡(jiǎn)介SPI是串行外設(shè)接口(SerialPeripheralInterface)的縮寫,是Motorola公司推出的一種同步串行接口技術(shù),是一種高速、全雙工、同步的通信總線在用戶空間
    的頭像 發(fā)表于 01-03 14:00 ?1972次閱讀
    瑞芯微(EASY EAI)RV1126B <b class='flag-5'>SPI</b>使用

    探秘SN65HVD23x:3.3V CAN總線收發(fā)器的卓越性能與應(yīng)用

    探秘SN65HVD23x:3.3V CAN總線收發(fā)器的卓越性能與應(yīng)用 在工業(yè)自動(dòng)化、汽車電子等領(lǐng)域,CAN總線憑借其高可靠性、實(shí)時(shí)性和多主通信能力,成為了數(shù)據(jù)傳輸?shù)闹匾x擇。而SN65HVD23x
    的頭像 發(fā)表于 12-30 17:00 ?1182次閱讀

    探秘SN65HVD23x 3.3-V CAN總線收發(fā)器:特性、應(yīng)用與設(shè)計(jì)要點(diǎn)

    探秘SN65HVD23x 3.3-V CAN總線收發(fā)器:特性、應(yīng)用與設(shè)計(jì)要點(diǎn) 在工業(yè)自動(dòng)化、汽車電子等領(lǐng)域,CAN總線憑借其高可靠性和抗干擾能力,成為了數(shù)據(jù)傳輸?shù)闹匾绞?。而SN65HVD233
    的頭像 發(fā)表于 12-30 10:40 ?808次閱讀

    深入解析AT25SF2561C/AT25QF2561C:高性能SPI串行閃存的技術(shù)探秘

    深入解析AT25SF2561C/AT25QF2561C:高性能SPI串行閃存的技術(shù)探秘 在電子設(shè)備的世界里,閃存作為數(shù)據(jù)存儲(chǔ)的關(guān)鍵組件,其性能和功能直接影響著設(shè)備的運(yùn)行效率和穩(wěn)定性。今天,我們將深入
    的頭像 發(fā)表于 12-26 17:45 ?909次閱讀

    PCA9958HN - ARD評(píng)估板:24通道SPI總線LED驅(qū)動(dòng)評(píng)估利器

    PCA9958HN - ARD評(píng)估板:24通道SPI總線LED驅(qū)動(dòng)評(píng)估利器 在電子設(shè)計(jì)領(lǐng)域,LED驅(qū)動(dòng)的評(píng)估和設(shè)計(jì)是一個(gè)重要的環(huán)節(jié)。NXP的PCA9958HN - ARD評(píng)估板為工程師們提供了一個(gè)
    的頭像 發(fā)表于 12-24 11:50 ?828次閱讀

    SPI的多機(jī)通信

    SPI支持多機(jī)通信模式。在該模式下,主機(jī)的從機(jī)選擇 CS 引腳應(yīng)配置為輸入,與其他主機(jī)的總線申請(qǐng)信號(hào)相連,用于檢測(cè) SPI 總線是否發(fā)生沖突。如果某一主機(jī)的從機(jī)選擇 CS 引腳被拉為低
    發(fā)表于 12-08 06:47

    搞不定示波器SPI解碼?這幾步就行!

    SPI總線是為芯片間的數(shù)據(jù)通信而設(shè)計(jì)的,因此,在大多數(shù)情況下,由于傳輸數(shù)據(jù)的不同使得信號(hào)并非周期性信號(hào)。這就要求在對(duì)該總線進(jìn)行測(cè)試時(shí),要能準(zhǔn)確地觸發(fā)到數(shù)據(jù)幀的“頭”,并將其“穩(wěn)定”顯示在儀器上,便于
    的頭像 發(fā)表于 11-19 17:32 ?1151次閱讀
    搞不定示波器<b class='flag-5'>SPI</b>解碼?這幾步就行!

    深入剖析SPI協(xié)議

    SPI,全稱(Serial Peripheral interface)是由摩托羅拉公司首先定義的協(xié)議,中文名為串型外圍設(shè)備接口。SPI是一種高速全雙工的總線協(xié)議。
    的頭像 發(fā)表于 08-21 15:04 ?4317次閱讀
    深入剖析<b class='flag-5'>SPI</b>協(xié)議

    第十七章 SPI——讀寫串行FLASH

    本章介紹SPI協(xié)議,其為高速全雙工通信總線,含物理層、協(xié)議層內(nèi)容,還講解W55MH32的SPI特性、初始化及DMA相關(guān)配置。
    的頭像 發(fā)表于 06-19 17:06 ?1461次閱讀
    第十七章 <b class='flag-5'>SPI</b>——讀寫串行FLASH
    无为县| 内江市| 苏尼特左旗| 开化县| 万宁市| 年辖:市辖区| 仙桃市| 文成县| 梁平县| 中牟县| 巴林右旗| 云阳县| 上虞市| 叙永县| 卫辉市| 山阳县| 沂源县| 铜山县| 双流县| 临澧县| 山丹县| 将乐县| 沂源县| 云浮市| 晴隆县| 天柱县| 楚雄市| 久治县| 温宿县| 乡城县| 汝阳县| 原阳县| 阿拉善盟| 高清| 定西市| 泰安市| 珲春市| 黔西县| 扎兰屯市| 宜宾县| 宁波市|