0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术EM9170 SPI接口用户指南简介

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-01-14 14:51 次阅读

1、功能描述

EM9170提供了一路硬件4线制SPI接口供用户使用,它的4条信号线与系统的GPIO复用,系统上电后,对应管脚默认为GPIO状态(详见《EM9170工控主板数据手册 》),当在应用程序中打开SPI接口后,对应的信号线将自动切换到SPI状态。EM9170 SPI接口支持以下特性:

· 4线制全双工同步串行接口
· 主控(Master)工作模式
· 可以配置SPI时钟信号(SPI_SCLK)的相位和极性
· 支持1至32-bit可配置的数据通讯位宽
· 支持DMA操作方式
· 最高波特率16Mbps

SPI通讯的时序简单,主要是在SPI时钟(SCLK)的同步下,在两个设备的移位寄存器间进行数据通讯。EM9170的SPI接口可以配置SCLK的极性(POL)和相位(PHA),图1为设置不同的相位和极性配置时,时钟信号的输出波形。

图1:SPI总线SCLK和MOSI,MISO之间的关系

图1中的时钟极性(POL)决定了SPI串行时钟信号线(SCLK)空闲时的电平,如果POL=0,串行时钟空闲时为低电平,POL=1串行时钟空闲时为高电平。时钟相位(PHA) 用来决定数据在什么时刻输出和锁存输入。如果 PHA=0,SPI控制器在SCLK的下降沿输出数据,在SCLK上升沿锁存输入的数据。当PHA=1时,将在SCLK上升沿输出数据,而在SCLK下降沿锁存输入数据。SPI线上的主从设备必须根据具体情况设置匹配的传输时序模式,时序只有匹配,数据才能正常通讯。

2、操作说明

2.1 打开SPI端口
通过调用CreateFile( )函数来打开系统的SPI设备,设备名称为“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 数据通讯
在进行SPI数据通讯前,需要调用SPIConfig()函数对SPI总线做相应的配置,函数申明如下:

BOOL SPIConfig( HANDLE hCSPI, PCSPI_BUSCONFIG_T pCspiConfig );

其中参数pCspiConfig为SPI总线配置结构体,其定义如下:

typedef struct
{ // CSPI bus configuration
UINT32 freq; // SPI波特率:<=16Mbps
UINT8 bitcount; // 数据位宽:1~32bit
BOOL pol; // 设置时钟极性
BOOL pha; // 设置时钟相位
} CSPI_BUSCONFIG_T, *PCSPI_BUSCONFIG_T;

用户调用SPIExchange()函数来完成一次数据收发,函数申明如下:

BOOL SPIExchange(
HANDLE hCSPI, // 由CreateFile创建的HANDLE
PVOID pTxBuf, // 发送数据缓存
PVOID pRxBuf, // 接收数据缓存
UINT32 xchCnt ); // 传输的数据个数

需要注意的是,参数pTxBuf和pRxBuf是LPVOID型指针变量,当设置SPI通讯位宽(CSPI_BUSCONFIG_T的bitcount成员)为1~8时,数据收发缓存(pTxBuf和pRxBuf)需要定义为UNIT8数据类型,当SPI通讯位宽为9~16时,数据收发缓存需要定义为UINT16类型,当SPI通讯位数为17~32时,数据收发缓存要定义成UINT32数据类型。

下面是示例程序片断:

HANDLE hSPI; // 定义SPI操作HANDLE
DWORD dwXchCnt; // 定义传输字节个数
CSPI_BUSCONFIG_T spiConfig; // 定义SPI总线配置数据结构体
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 收发缓存需要定义为UINT8类型
UINT8 TxData[1024] = { 0x01, 0x02, 0x03, 0x04, 0x05 };
UINT8 RxData[1024];
// if 9<=cspiConfig.bitcount<=16 收发缓存需要定义为UINT16类型
// UINT16 TxData[1024] = { 0x01, 0x02, 0x03, 0x04, 0x05 };
// UINT16 RxData[1024];
// if 17<=cspiConfig.bitcount<=32 收发缓存需要定义为UINT32类型
// UINT32 TxData[1024] = { 0x01, 0x02, 0x03, 0x04, 0x05 };
// UINT32 RxData[1024];
// 打开SPI总线 (SPIOpen( )内部调用了CreateFile()函数)
hSPI = SPIOpen( TEXT(“SPI1:”) );
SPIConfig( hSPI, &spiConfig ); // 设置SPI总线配置信息
dwXchCnt = 5; // 传输5个数据
SPIExchange( hSPI, TxData, RxData, dwXchCnt ); // 进行SPI数据传输,传输5个数据

2.3 关闭SPI
调用CloseHandle函数关闭由CreateFile创建的HANDLE即可关闭SPI端口。

CloseHandle( hSPI);

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6085

    浏览量

    35319
收藏 人收藏

    评论

    相关推荐

    飞腾助力首届教育信息技术应用创新大赛圆满落幕

    近日,由中国教育技术协会主办,教育部教育管理信息中心教育信实验室、公安部第三研究所、中国电子工业标准化技术协会信工委会支持,北京航空航天
    的头像 发表于 12-24 09:57 84次阅读

    有方科技参编的信息技术团体标准发布

    近日,有方科技参编的《信息技术产品供应链成熟度 共性指标 第1部分:企业背景评价》《信息技术产品供应链成熟度 共性指标 第2部分:技术掌控评价》《信息技术产品供应链成熟度 共性指标 第
    的头像 发表于 12-23 10:44 103次阅读

    龙芯中科助力2024首届教育信息技术应用创新大赛成功举办

    近日,2024首届教育信息技术应用创新大赛在北京航空航天大学成功举办。本次大赛由中国教育技术协会主办,教育信实验室、公安部第三研究所、中国电子工业标准化技术协会信
    的头像 发表于 12-19 17:02 198次阅读

    TMS320C672x DSP串行外设接口(SPI)参考指南

    电子发烧友网站提供《TMS320C672x DSP串行外设接口(SPI)参考指南.pdf》资料免费下载
    发表于 12-17 16:09 0次下载
    TMS320C672x DSP串行外设<b class='flag-5'>接口</b>(<b class='flag-5'>SPI</b>)参考<b class='flag-5'>指南</b>

    掌握4G模组SPI|技术指南

    本次我要分享的是4G模组SPI技术指南,以合宙Air724UG为例,学完本章帮你实现技术提升。
    的头像 发表于 12-14 09:38 590次阅读
    掌握4G模组<b class='flag-5'>SPI</b>|<b class='flag-5'>技术</b><b class='flag-5'>指南</b>

    拓维信息参与牵头组建!长沙新一代信息技术产教联合体正式获批

    的长沙新一代信息技术产教联合体成功获批,为长沙市信息技术产业发展注入了新的活力。图/《2024年长沙市市级市域产教联合体名单》长沙新一代信息技术产教联合体将依托龙头企
    的头像 发表于 12-07 01:06 367次阅读
    拓维<b class='flag-5'>信息</b>参与牵头组建!长沙新一代<b class='flag-5'>信息技术</b>产教联合体正式获批

    Jacinto7 EVM信息娱乐扩展用户指南

    电子发烧友网站提供《Jacinto7 EVM信息娱乐扩展用户指南.pdf》资料免费下载
    发表于 11-28 15:10 0次下载
    Jacinto7 EVM<b class='flag-5'>信息</b>娱乐扩展<b class='flag-5'>用户</b><b class='flag-5'>指南</b>

    USB接口适配器评估模块用户指南

    电子发烧友网站提供《USB接口适配器评估模块用户指南.pdf》资料免费下载
    发表于 11-20 11:49 0次下载
    USB<b class='flag-5'>接口</b>适配器评估模块<b class='flag-5'>用户</b><b class='flag-5'>指南</b>

    中科达荣获2024年软件和信息技术服务优秀企业

    及前百家企业”名单。中科达凭借非凡的技术实力与持续的创新能力,成功入选“2024年度软件和信息技术服务竞争力百强企业”以及“2024年软件和信息技术服务优秀企业”。
    的头像 发表于 10-30 11:44 483次阅读

    国产化背景下的工控主板发展现状

    ,是信息技术应用创新产业的简称,于2016年“信工委会”(信息技术应用创新工作委员会)提出,目的就是要推动我们国内软硬件关键技术的研发
    的头像 发表于 09-21 16:15 398次阅读

    EM430F6137RF900参考设计指南

    电子发烧友网站提供《EM430F6137RF900参考设计指南.pdf》资料免费下载
    发表于 09-19 10:41 0次下载
    <b class='flag-5'>EM</b>430F6137RF900参考设计<b class='flag-5'>指南</b>

    梯度科技入选2023年信息技术应用创新解决方案名单

    日前,工业和信息化部网络安全产业发展中心(工业和信息化部信息中心)在天津举办2024信息技术应用创新发展大会暨解决方案应用推广大会。会上正式公布了2023年
    的头像 发表于 09-09 16:29 430次阅读

    【GD32H757Z海棠派开发板使用手册】第十一讲 SPI-SPI NOR FLASH读写实验

    通过本实验主要学习以下内容: •SPI简介 •GD32H7 SPI简介SPI NOR FLASH——GD25Q128ESIGR
    的头像 发表于 06-04 11:42 1002次阅读
    【GD32H757Z海棠派开发板使用手册】第十一讲 <b class='flag-5'>SPI-SPI</b> NOR FLASH读写实验

    【GD32F470紫藤派开发板使用手册】第十一讲 SPI-SPI NOR FLASH读写实验

    通过本实验主要学习以下内容: •SPI简介 •GD32F470 SPI简介SPI NOR FLASH——GD25Q32ESIGR
    的头像 发表于 05-17 09:57 1790次阅读
    【GD32F470紫藤派开发板使用手册】第十一讲 <b class='flag-5'>SPI-SPI</b> NOR FLASH读写实验

    龙芯中科三项信方案入围工信部2023年信息技术应用创新应用示范案例名单

    近日,工业和信息化部通报了2023年信息技术应用创新解决方案征集遴选结果,本次共评选出典型解决方案173个、应用示范案例83个、单项创新案例64个。
    的头像 发表于 03-07 16:45 928次阅读
    龙芯中科三项信<b class='flag-5'>创</b>方案入围工信部2023年<b class='flag-5'>信息技术</b>应用创新应用示范案例名单