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

    文章

    6107

    浏览量

    37175
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    龙芯中科携手五所高校加速构建自主信息技术人才体系

    为推动国产自主可控处理器深度融入高校人才培养全链条,加速构建自主信息技术人才体系,龙芯校园行活动相继走进中国科学技术大学、安庆师范大学、湖南大学、广西大学、大连理工大学5所高校,聚焦龙芯自主信息技术
    的头像 发表于 04-13 14:32 423次阅读

    瑞芯微(EASY EAI)RV1126B SPI使用

    1.SPI简介SPI是串行外设接口(SerialPeripheralInterface)的缩写,是Motorola公司推出的一种同步串行接口技术
    的头像 发表于 01-03 14:00 1969次阅读
    瑞芯微(EASY EAI)RV1126B <b class='flag-5'>SPI</b>使用

    龙芯中科成功举办2025信息技术应用创新产教融合交流会

    11月30日,在教育部教育管理信息中心、山东省电化教育馆的支持和指导下,龙芯中科联合浪潮集团、济南幼儿师范高等专科学校(以下简称“济南幼高专”),成功举办信息技术应用创新产教融合交流会,并同步举行信息技术应用创新实践基地启用仪式
    的头像 发表于 12-08 14:53 999次阅读

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

    2025年11月13日-15日,由中国教育技术协会主办、浙江大学与中国教育技术协会网络安全专业委员会联合承办,中国电子工业标准化技术协会信息技术应用创新工作委员会、浙江高校信
    的头像 发表于 11-21 16:23 940次阅读

    诚迈科技信电脑助力2025第二届教育信息技术应用创新大赛圆满收官

    11月15日,由中国教育技术协会主办、浙江大学与中国教育技术协会网络安全专业委员会联合承办,中国电子工业标准化技术协会信息技术应用创新工作委员会、浙江高校信
    的头像 发表于 11-17 17:58 850次阅读
    诚迈科技信<b class='flag-5'>创</b>电脑助力2025第二届教育<b class='flag-5'>信息技术</b>应用创新大赛圆满收官

    宝马南京信息技术有限公司开业

    今日,宝马(南京)信息技术有限公司在南京正式“挂牌运行”。这家华晨宝马全资子公司由领悦数字信息技术有限公司南京分公司“迭代”而来,代表着一次里程碑式的“进化”。这次升级不仅加速了宝马在华数字化转型进程,更通过深化本土创新,为“未来智慧出行”的发展谱写了核心“代码”。
    的头像 发表于 10-29 15:17 809次阅读

    软通动力入选2025新一代信息技术应用优秀案例

    近日,DBC德本咨询正式发布“2025新一代信息技术应用优秀案例”榜单,软通动力信息技术(集团)股份有限公司携手广西星网智云科技有限公司,为广西玉柴机器集团有限公司打造的“玉柴数智化审计业务场景项目”成功入选,位列榜单第二名,充分彰显了软通动力在企业数智化转型领域的深厚
    的头像 发表于 09-28 17:48 1568次阅读

    易华录入选国家级信息技术应用创新典型解决方案

    近日,工业和信息化部网络安全产业发展中心(工业和信息化部信息中心)公布了“2024年信息技术应用创新解决方案”评选结果。易华录申报的“基于节能高效蓝光的超级智能存储解决方案”凭借显著的
    的头像 发表于 08-07 15:35 1801次阅读

    信息技术应用产学协同人才培养行动计划”正式发布,诚迈科技入选首批参与单位

    设在中国软件评测中心。诚迈科技作为信技术先锋企业,受邀成为首批参与单位,与国内顶尖高校、领军企业和权威机构携手,共同打造具有中国特色的信息技术人才培养新范式,为
    的头像 发表于 08-06 17:29 1747次阅读
    “<b class='flag-5'>信息技术</b>应用产学协同人才培养行动计划”正式发布,诚迈科技入选首批参与单位

    佛瑞亚如何通过信息技术推动业务增长

    在数字化、信息化的浪潮下,信息技术已经不仅是后台工具,更成为驱动企业发展的关键力量。本期Women Inspiring Mobility,我们采访了佛瑞亚中国区信息技术总监马瑛,了解她和团队如何将
    的头像 发表于 07-29 14:00 1068次阅读

    飞腾主板为信产业发展提高硬实力

    信息技术飞速发展的当下,信产业已成为我国实现科技自立自强、保障国家信息安全的关键领域。信,即信息技术应用创新,其核心目标是实现
    的头像 发表于 07-22 18:20 848次阅读

    DEKRA德凯成为沙特通信和信息技术设备技术法规认证机构

    近日,DEKRA德凯成功获得沙特标准、计量和质量组织(SASO)认可,正式成为沙特通信和信息技术设备技术法规(Technical Regulation for Communications
    的头像 发表于 07-15 14:27 1075次阅读

    EM730/EM730E 系列变频器用户手册

    电子发烧友网站提供《EM730/EM730E 系列变频器用户手册.pdf》资料免费下载
    发表于 07-07 10:27 0次下载

    科普|信是什么?一文读懂“信息技术应用创新”战略

    什么是信?信,即“信息技术应用创新”,是国家推动IT系统自主可控、安全可控的重要战略工程。它不仅是技术层面的创新,更承载着保障国家网络安全、推动产业升级和实现数字主权的重任。简单来
    的头像 发表于 06-13 10:06 9673次阅读
    科普|信<b class='flag-5'>创</b>是什么?一文读懂“<b class='flag-5'>信息技术</b>应用创新”战略

    2025第二届教育信息技术应用创新大赛正式开赛

    为进一步落实建设网络强国和教育强国的战略部署,推动各级教育行政部门及高校信息技术应用创新能力提升,培养实战型创新人才。龙芯中科联合太初元碁、诚迈科技在2025第二届教育信息技术应用创新大赛共同发布信息技术应用创新人工智能方向(赛
    的头像 发表于 05-13 16:21 1582次阅读