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

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

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

英創(chuàng)信息技術(shù)EM9170 SPI接口用戶指南簡介

英創(chuàng)信息技術(shù) ? 來源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-01-14 14:51 ? 次閱讀

1、功能描述

EM9170提供了一路硬件4線制SPI接口供用戶使用,它的4條信號線與系統(tǒng)的GPIO復(fù)用,系統(tǒng)上電后,對應(yīng)管腳默認(rèn)為GPIO狀態(tài)(詳見《EM9170工控主板數(shù)據(jù)手冊 》),當(dāng)在應(yīng)用程序中打開SPI接口后,對應(yīng)的信號線將自動切換到SPI狀態(tài)。EM9170 SPI接口支持以下特性:

· 4線制全雙工同步串行接口
· 主控(Master)工作模式
· 可以配置SPI時鐘信號(SPI_SCLK)的相位和極性
· 支持1至32-bit可配置的數(shù)據(jù)通訊位寬
· 支持DMA操作方式
· 最高波特率16Mbps

SPI通訊的時序簡單,主要是在SPI時鐘(SCLK)的同步下,在兩個設(shè)備的移位寄存器間進(jìn)行數(shù)據(jù)通訊。EM9170的SPI接口可以配置SCLK的極性(POL)和相位(PHA),圖1為設(shè)置不同的相位和極性配置時,時鐘信號的輸出波形。

圖1:SPI總線SCLK和MOSI,MISO之間的關(guān)系

圖1中的時鐘極性(POL)決定了SPI串行時鐘信號線(SCLK)空閑時的電平,如果POL=0,串行時鐘空閑時為低電平,POL=1串行時鐘空閑時為高電平。時鐘相位(PHA) 用來決定數(shù)據(jù)在什么時刻輸出和鎖存輸入。如果 PHA=0,SPI控制器在SCLK的下降沿輸出數(shù)據(jù),在SCLK上升沿鎖存輸入的數(shù)據(jù)。當(dāng)PHA=1時,將在SCLK上升沿輸出數(shù)據(jù),而在SCLK下降沿鎖存輸入數(shù)據(jù)。SPI線上的主從設(shè)備必須根據(jù)具體情況設(shè)置匹配的傳輸時序模式,時序只有匹配,數(shù)據(jù)才能正常通訊。

2、操作說明

2.1 打開SPI端口
通過調(diào)用CreateFile( )函數(shù)來打開系統(tǒng)的SPI設(shè)備,設(shè)備名稱為“SPI1:”如下所示:

// Open the SPI port.
hSPI = CreateFile (TEXT”SPI1:”, // name of device
GENERIC_READ | GENERIC_WRITE, // access (read-write) mode
FILE_SHARE_READ | FILE_SHARE_WRITE, // sharing mode
NULL, // security attributes (ignored)
OPEN_EXISTING, // creation disposition
FILE_FLAG_RANDOM_ACCESS, // flags/attributes
NULL); // template file (ignored)

2.2 數(shù)據(jù)通訊
在進(jìn)行SPI數(shù)據(jù)通訊前,需要調(diào)用SPIConfig()函數(shù)對SPI總線做相應(yīng)的配置,函數(shù)申明如下:

BOOL SPIConfig( HANDLE hCSPI, PCSPI_BUSCONFIG_T pCspiConfig );

其中參數(shù)pCspiConfig為SPI總線配置結(jié)構(gòu)體,其定義如下:

typedef struct
{ // CSPI bus configuration
UINT32 freq; // SPI波特率:<=16Mbps
UINT8 bitcount; // 數(shù)據(jù)位寬:1~32bit
BOOL pol; // 設(shè)置時鐘極性
BOOL pha; // 設(shè)置時鐘相位
} CSPI_BUSCONFIG_T, *PCSPI_BUSCONFIG_T;

用戶調(diào)用SPIExchange()函數(shù)來完成一次數(shù)據(jù)收發(fā),函數(shù)申明如下:

BOOL SPIExchange(
HANDLE hCSPI, // 由CreateFile創(chuàng)建的HANDLE
PVOID pTxBuf, // 發(fā)送數(shù)據(jù)緩存
PVOID pRxBuf, // 接收數(shù)據(jù)緩存
UINT32 xchCnt ); // 傳輸?shù)臄?shù)據(jù)個數(shù)

需要注意的是,參數(shù)pTxBuf和pRxBuf是LPVOID型指針變量,當(dāng)設(shè)置SPI通訊位寬(CSPI_BUSCONFIG_T的bitcount成員)為1~8時,數(shù)據(jù)收發(fā)緩存(pTxBuf和pRxBuf)需要定義為UNIT8數(shù)據(jù)類型,當(dāng)SPI通訊位寬為9~16時,數(shù)據(jù)收發(fā)緩存需要定義為UINT16類型,當(dāng)SPI通訊位數(shù)為17~32時,數(shù)據(jù)收發(fā)緩存要定義成UINT32數(shù)據(jù)類型。

下面是示例程序片斷:

HANDLE hSPI; // 定義SPI操作HANDLE
DWORD dwXchCnt; // 定義傳輸字節(jié)個數(shù)
CSPI_BUSCONFIG_T spiConfig; // 定義SPI總線配置數(shù)據(jù)結(jié)構(gòu)體
spiConfig.bitcount = 8; // bit count=8
spiConfig.freq = 16000000; // XCH speed = 16M
spiConfig.pha = FALSE; // Phase 0 operation
spiConfig.pol = FALSE; // Active high operation
// if 1<=cspiConfig.bitcount<=8 收發(fā)緩存需要定義為UINT8類型
UINT8 TxData[1024] = { 0x01, 0x02, 0x03, 0x04, 0x05 };
UINT8 RxData[1024];
// if 9<=cspiConfig.bitcount<=16 收發(fā)緩存需要定義為UINT16類型
// UINT16 TxData[1024] = { 0x01, 0x02, 0x03, 0x04, 0x05 };
// UINT16 RxData[1024];
// if 17<=cspiConfig.bitcount<=32 收發(fā)緩存需要定義為UINT32類型
// UINT32 TxData[1024] = { 0x01, 0x02, 0x03, 0x04, 0x05 };
// UINT32 RxData[1024];
// 打開SPI總線 (SPIOpen( )內(nèi)部調(diào)用了CreateFile()函數(shù))
hSPI = SPIOpen( TEXT(“SPI1:”) );
SPIConfig( hSPI, &spiConfig ); // 設(shè)置SPI總線配置信息
dwXchCnt = 5; // 傳輸5個數(shù)據(jù)
SPIExchange( hSPI, TxData, RxData, dwXchCnt ); // 進(jìn)行SPI數(shù)據(jù)傳輸,傳輸5個數(shù)據(jù)

2.3 關(guān)閉SPI
調(diào)用CloseHandle函數(shù)關(guān)閉由CreateFile創(chuàng)建的HANDLE即可關(guān)閉SPI端口。

CloseHandle( hSPI);

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

    關(guān)注

    7

    文章

    6086

    瀏覽量

    35475
收藏 人收藏

    評論

    相關(guān)推薦

    中科曙光南京研究院方案入選江蘇省信息技術(shù)創(chuàng)新優(yōu)秀解決方案

    對中科曙光南京研究院在信息技術(shù)應(yīng)用創(chuàng)新領(lǐng)域深厚實(shí)力的有力證明,更是對其持續(xù)推動技術(shù)創(chuàng)新、優(yōu)化解決方案能力的廣泛認(rèn)可。該方案集成了高端計算與分布式存儲的先進(jìn)技術(shù),旨在為用戶提供高效、穩(wěn)定
    的頭像 發(fā)表于 01-08 15:41 ?178次閱讀

    飛騰助力首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽圓滿落幕

    近日,由中國教育技術(shù)協(xié)會主辦,教育部教育管理信息中心教育信創(chuàng)實(shí)驗(yàn)室、公安部第三研究所、中國電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會信創(chuàng)工委會支持,北京航空航天
    的頭像 發(fā)表于 12-24 09:57 ?166次閱讀

    有方科技參編的信息技術(shù)團(tuán)體標(biāo)準(zhǔn)發(fā)布

    近日,有方科技參編的《信息技術(shù)產(chǎn)品供應(yīng)鏈成熟度 共性指標(biāo) 第1部分:企業(yè)背景評價》《信息技術(shù)產(chǎn)品供應(yīng)鏈成熟度 共性指標(biāo) 第2部分:技術(shù)掌控評價》《信息技術(shù)產(chǎn)品供應(yīng)鏈成熟度 共性指標(biāo) 第
    的頭像 發(fā)表于 12-23 10:44 ?179次閱讀

    龍芯中科助力2024首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽成功舉辦

    近日,2024首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽在北京航空航天大學(xué)成功舉辦。本次大賽由中國教育技術(shù)協(xié)會主辦,教育信創(chuàng)實(shí)驗(yàn)室、公安部第三研究所、中國電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會信
    的頭像 發(fā)表于 12-19 17:02 ?258次閱讀

    TMS320C672x DSP串行外設(shè)接口(SPI)參考指南

    電子發(fā)燒友網(wǎng)站提供《TMS320C672x DSP串行外設(shè)接口(SPI)參考指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-17 16:09 ?0次下載
    TMS320C672x DSP串行外設(shè)<b class='flag-5'>接口</b>(<b class='flag-5'>SPI</b>)參考<b class='flag-5'>指南</b>

    掌握4G模組SPI|技術(shù)指南

    本次我要分享的是4G模組SPI技術(shù)指南,以合宙Air724UG為例,學(xué)完本章幫你實(shí)現(xiàn)技術(shù)提升。
    的頭像 發(fā)表于 12-14 09:38 ?720次閱讀
    掌握4G模組<b class='flag-5'>SPI</b>|<b class='flag-5'>技術(shù)</b><b class='flag-5'>指南</b>

    Jacinto7 EVM信息娛樂擴(kuò)展用戶指南

    電子發(fā)燒友網(wǎng)站提供《Jacinto7 EVM信息娛樂擴(kuò)展用戶指南.pdf》資料免費(fèi)下載
    發(fā)表于 11-28 15:10 ?0次下載
    Jacinto7 EVM<b class='flag-5'>信息</b>娛樂擴(kuò)展<b class='flag-5'>用戶</b><b class='flag-5'>指南</b>

    USB接口適配器評估模塊用戶指南

    電子發(fā)燒友網(wǎng)站提供《USB接口適配器評估模塊用戶指南.pdf》資料免費(fèi)下載
    發(fā)表于 11-20 11:49 ?0次下載
    USB<b class='flag-5'>接口</b>適配器評估模塊<b class='flag-5'>用戶</b><b class='flag-5'>指南</b>

    中科創(chuàng)達(dá)榮獲2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)

    及前百家企業(yè)”名單。中科創(chuàng)達(dá)憑借非凡的技術(shù)實(shí)力與持續(xù)的創(chuàng)新能力,成功入選“2024年度軟件和信息技術(shù)服務(wù)競爭力百強(qiáng)企業(yè)”以及“2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)”。
    的頭像 發(fā)表于 10-30 11:44 ?517次閱讀

    創(chuàng)國產(chǎn)化背景下的工控主板發(fā)展現(xiàn)狀

    創(chuàng),是信息技術(shù)應(yīng)用創(chuàng)新產(chǎn)業(yè)的簡稱,于2016年“信創(chuàng)工委會”(信息技術(shù)應(yīng)用創(chuàng)新工作委員會)提出,目的就是要推動我們國內(nèi)軟硬件關(guān)鍵技術(shù)的研發(fā)
    的頭像 發(fā)表于 09-21 16:15 ?449次閱讀

    EM430F6137RF900參考設(shè)計指南

    電子發(fā)燒友網(wǎng)站提供《EM430F6137RF900參考設(shè)計指南.pdf》資料免費(fèi)下載
    發(fā)表于 09-19 10:41 ?0次下載
    <b class='flag-5'>EM</b>430F6137RF900參考設(shè)計<b class='flag-5'>指南</b>

    梯度科技入選2023年信息技術(shù)應(yīng)用創(chuàng)新解決方案名單

    日前,工業(yè)和信息化部網(wǎng)絡(luò)安全產(chǎn)業(yè)發(fā)展中心(工業(yè)和信息化部信息中心)在天津舉辦2024信息技術(shù)應(yīng)用創(chuàng)新發(fā)展大會暨解決方案應(yīng)用推廣大會。會上正式公布了2023年
    的頭像 發(fā)表于 09-09 16:29 ?459次閱讀

    【GD32H757Z海棠派開發(fā)板使用手冊】第十一講 SPI-SPI NOR FLASH讀寫實(shí)驗(yàn)

    通過本實(shí)驗(yàn)主要學(xué)習(xí)以下內(nèi)容: ?SPI簡介 ?GD32H7 SPI簡介 ?SPI NOR FLASH——GD25Q128ESIGR
    的頭像 發(fā)表于 06-04 11:42 ?1097次閱讀
    【GD32H757Z海棠派開發(fā)板使用手冊】第十一講 <b class='flag-5'>SPI-SPI</b> NOR FLASH讀寫實(shí)驗(yàn)

    【GD32F470紫藤派開發(fā)板使用手冊】第十一講 SPI-SPI NOR FLASH讀寫實(shí)驗(yàn)

    通過本實(shí)驗(yàn)主要學(xué)習(xí)以下內(nèi)容: ?SPI簡介 ?GD32F470 SPI簡介 ?SPI NOR FLASH——GD25Q32ESIGR
    的頭像 發(fā)表于 05-17 09:57 ?1890次閱讀
    【GD32F470紫藤派開發(fā)板使用手冊】第十一講 <b class='flag-5'>SPI-SPI</b> NOR FLASH讀寫實(shí)驗(yàn)

    龍芯中科三項信創(chuàng)方案入圍工信部2023年信息技術(shù)應(yīng)用創(chuàng)新應(yīng)用示范案例名單

    近日,工業(yè)和信息化部通報了2023年信息技術(shù)應(yīng)用創(chuàng)新解決方案征集遴選結(jié)果,本次共評選出典型解決方案173個、應(yīng)用示范案例83個、單項創(chuàng)新案例64個。
    的頭像 發(fā)表于 03-07 16:45 ?975次閱讀
    龍芯中科三項信<b class='flag-5'>創(chuàng)</b>方案入圍工信部2023年<b class='flag-5'>信息技術(shù)</b>應(yīng)用創(chuàng)新應(yīng)用示范案例名單