欢迎光临散文网 会员登陆 & 注册

平头哥CDK助力中科昊芯HX2000系列芯片之SPI通信协议

2021-11-15 09:22 作者:中科昊芯  | 我要投稿

全球智能环保优先,高效便捷的数据处理已成为未来必然趋势。SPI协议因其传输速率高,通讯简单等优势,在电机转向转速指令收发、射频通讯与A/D、D/A传感器LCD/OLED显示等方面得到快速应用。

在平头哥半导体有限公司的剑池集成开发环境(简称“CDK”)V2.10.1版本开始支持中科昊芯HX2000系列芯片开发与调试后,本文以HXS320F28027的SPI模块向串行FLASH通讯实例对SPI协议及程序展开介绍。

HX2000系列SPI通讯原理如下,通过IO MUX设置外设引脚功能,CPU通过主控制器输出预分频与时钟使能,通过时钟引脚为通信网络提供时钟,通过SPIBRR寄存器配置波特率,数据写到SPIDAT或SPITXBUF时会启动发送最高有效位,之后数据移入SPIDAT最低有效位,以右对齐方式存储到SPIRXBUF中。

SPI模块使用前,需先进行:(1)复位初始化操作:

①通过SPICCR[SPI SW RESET]位清零复位SPI;

②根据需要进行SPI的初始化、格式与波特率及管脚功能配置;

③SPI SW RESET位置1,使SPI脱离复位。

(2)FIFO配置:

①通过SPIRST在任一阶段复位FIFO模式;

②通过SPIFFTX[SPIFFENA]置位使能FIFO模式,以激活SPI及其FIFO寄存器;

③发送SPITXINT,接收错误与溢出中断SPIRXINT配置;

④通过SPIFFCT调整传输速率延迟0~255个SPCLK周期,以匹配外设通讯速率;

⑤通过TXFFST或RXFFST判断发送与接收到的字的数量,确认收发成功。


本例程主要完成SPI与W25Q64系列FLASH数据访问功能,通过IO MUX配置GPIO19在传输期间维持低电平,复位初始化期间高电平输出,与SPI外设的选通CS引脚相连,实现FLASH数据读写。其连接原理如下图,访问过程为:

①读Flash.ID与Flash.SReg状态;②写使能,读取读与写寄存器状态;③写使能,擦除芯片;④延时等待4个周期,等待芯片数据擦除完成;⑤写使能,向FLASH写入数据;⑥读出写入FLASH芯片的数据;注:每次读写后需延时等待,以匹配外设传输速率。

详细介绍参见公众号B站视频讲解,二维码为下图:

工欲善其事必先利其器,程序开发前准备阶段如下表:

·开发环境:剑池集成开发环境V2.10.1

下载地址:https://occ.t-head.cn/community/download?id=575997419775328256

·开发板:Core_DSC28027核心板

http://haawking.cn/core28027

·仿真器:

申请地址:http://haawking.cn/DSP-EMULATOR

下载界面如下:

准备好开发工具后就可以开始程序开发。详细的“CDK”安装及创建工程方法请看第一篇推送《芯教程|平头哥CDK助力中科昊芯HX2000系列芯片系统开发》。例程选用HXS320F28027核心板与W25Q64系列FLASH进行数据访问,硬件连接如下:

接着在CDK上开发SPI访问FLASH读写数据程序,代码包括:①外设GPIO引脚、复位初始化操作与FIFO配置;②SPI发送与接收、W25Q64系列FLASH芯片访问程序;

CDK上开发SPI访问FLASH读写数据程序的截图如下:

编译成功后就可进入“Debug”模式调试了,其界面如下:

下图一为HX2000系列芯片SPI发送的数据upper_100,图二为FLASH接收的数据upper_128,由图可得upper_128数组与upper_100数组相等,故SPI读写FLASH数据成功。

(图一)

(图二)

SPI访问FLASH数据收发状态及数据正确性显示如下:


平头哥CDK助力中科昊芯HX2000系列芯片之SPI通信协议的评论 (共 条)

分享到微博请遵守国家法律