HXDSP2441-SPI(Serial Peripheral Interface)总线

SPI(Serial Peripheral Interface)总线

串行外设接口 (SPI) 是同步串行通信的事实上的标准(有许多变体),主要用于嵌入式系统中集成电路之间的短距离有线通信。

SPI 使用主-子节点(主/从)架构,其中一个主设备通过提供控制任意数量从属外设的时钟信号和片选信号来协调通信。

摩托罗拉的原始规格使用四根线来执行全双工通信。 它有时被称为四线串行总线,以与半双工的三线变体以及两线 I²C 和 1-Wire 串行总线形成对比。

典型应用包括将微控制器与安全数字卡、液晶显示器、模数和数模转换器、闪存和 EEPROM 存储器以及各种通信芯片的外围芯片连接起来。

SPI 可以准确地描述为同步串行接口,但它不同于同步串行接口 (SSI) 协议。
在这里插入图片描述

HXDSP2441 SPI

HXDSP2441在BSP中提供的SPI裸机驱动接口具体查询《HXDSP2441裸机驱动用户手册》4.4。需要特别说明的是,因为BSP内提供的所有SPI相关接口均针对Flash器件,如果SPI所控为非Flash器件,则需要仔细阅读BSP源码并在必要时重新实现驱动接口。由于Demo板通过SPI接口控制ADC器件(MAX11635),所以对BSP的SPI相关源码进行修改,以下涉及源码文件均在BSP包的drivers/spi/文件夹下。

以spi_write接口为例,分析其调用路径:

spi_bus.c
spidrv.c
resolve_command
handle_message
spi_transfer_data
spi_unload
spi_transfer
spi_transfer_wait_poll
spi_transfer_wait
spi_write

spi_write传入spi_bus结构体,最终由resolve_command函数解析结构体成员spi_bus.spi_message.flag进而确认SPI操作Flash的命令字,原本flag为SPI_WRITE时对应写flash_readwrite的写功能,将flash_readwrite对应改为我自己实现的spi_readwrite函数,spi_read接口同理,spi_readwrite函数实现如下(spi_readwrite接口并不需要device_type,只为与原有接口保持一致)。

/**功能:SPI RAW 读写*参数:总线结构*/
spi_status_code spi_readwrite(spi_bus *bus,uint32_t device_type){uint64_t base = bus->base;uint32_t status = 0;/** 写入的字节数*/int count = bus->msg->len;/** 写入的缓冲区*/uint8_t *wbuf = bus->msg->buf;uint8_t *rbuf = bus->msg->buf;epos_interrupt_disable(0);uint32_t fake_data = 0;uint32_t tx_cnt=0, rx_cnt=0;for(;tx_cnt<count || rx_cnt < count;){status = *((volatile uint32_t*)base + SSI_SR_OFFSET);if((tx_cnt<count) && (status & SR_TFNF)){*((volatile uint32_t*)base + SSI_DR_OFFSET) = wbuf[tx_cnt];tx_cnt++;}if((rx_cnt < count) && (status & SR_RFNE)){rbuf[rx_cnt] = *((volatile uint32_t*)base + SSI_DR_OFFSET);rx_cnt++;}}wait_spi_completion(base);epos_interrupt_enable(0);return SPI_SUCCESSFUL;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/255038.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在 Windows 桌面的redis中远程连接到 VMware 中运行的 Linux 上的 Redis

先修改一下docker容器中的redis(一会连上之后看效果) 我使用的是VMware的虚拟机 选择的网络设置为桥接模式 查到虚拟机独立的ip是如下 允许 Linux 虚拟机上的 Redis 监听外部连接&#xff1a; 打开 Linux 虚拟机上的 Redis 配置文件。在大多数系统上&#xff0c;配置文件位于…

TikTok与互动广告:品牌如何打破传统界限

随着数字时代的蓬勃发展&#xff0c;广告行业也经历了翻天覆地的变革。在这个变革的浪潮中&#xff0c;TikTok作为一款崭新的社交媒体平台&#xff0c;通过其独特的短视频形式为品牌提供了全新的互动广告机会。 本文将深入探讨TikTok与互动广告的结合&#xff0c;以及品牌如何…

基于ssm助学贷款网站论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本助学贷款管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息…

CentOS系统下常见HTTP服务器故障排除

在CentOS系统上&#xff0c;HTTP服务器是用于托管和提供Web内容的关键组件。然而&#xff0c;由于各种原因&#xff0c;服务器可能会出现故障或问题。以下是在CentOS系统下常见HTTP服务器故障排除的步骤和建议&#xff1a; 服务器无法启动&#xff1a; 如果您的HTTP服务器无法…

【华为网络-配置-025】- 同 VLAN 下不同网段通信(启用 Sub 地址)

要求&#xff1a; 1、各接口配置 VLAN 后配置 Sub 地址使 PC1 与 PC3 通信。 一、sub 地址配置 [LSW1]vlan 10 [LSW1]port-group group-member GigabitEthernet 0/0/1 to GigabitEthernet 0/0/2 [LSW1-port-group]port link-type access [LSW1-port-group]port default vla…

速达软件任意文件上传漏洞复现

简介 速达软件专注中小企业管理软件,产品涵盖进销存软件,财务软件,ERP软件,CRM系统,项目管理软件,OA系统,仓库管理软件等,是中小企业管理市场的佼佼者,提供产品、技术、服务等信息,百万企业共同选择。速达软件全系产品存在任意文件上传漏洞,未经身份认证得攻击者可以通过此漏…

内衣洗衣机哪个牌子好用?家用小型洗衣机推荐

由于现在社会的工作压力越来越大&#xff0c;使得许多的上班族在白天已经精疲力尽&#xff0c;而下班后只想好好地躺平&#xff0c;但是每次洗澡的时候&#xff0c;一想到自己的内衣裤还要自己手洗&#xff0c;真是让人头疼。有的用户由于便利&#xff0c;会存上几天再一起扔到…

创新释放:Atlassian 人工智能引领现代工作

01 背景介绍 随着人工智能技术的蓬勃发展&#xff0c;越来越多企业开始关注将 AI 技术应用于业务。作为一家备受瞩目的协作软件工具提供商&#xff0c;Atlassian 积极探索并应用人工智能技术。 在人类历史上&#xff0c;团队一直是最伟大成就的核心。Atlassian 的使命在于释放…

超大规模集成电路设计----基于阵列的可编程逻辑(七)

本文仅供学习&#xff0c;不作任何商业用途&#xff0c;严禁转载。本篇文章绝大部分资料来自中国科学院段成华教授PPT 超大规模集成电路设计----基于阵列的可编程逻辑&#xff08;七&#xff09; 7.1 引言7.1.1.回顾7.1.2. 数字逻辑系列Digital Logic Families7.1.3.从定制到半…

Python版本与opencv版本的对应关系

python版本要和opencv版本相对应&#xff0c;否则安装的时候会报错。 可以到Links for opencv-python上面查看python版本和opencv版本的对应关系&#xff0c;如图&#xff0c;红框内是python版本&#xff0c;绿框内是opencv版本。 查看自己的python版本后&#xff0c;使用下面…

Towards High-Quality and Efficient Video Super-Resolution via

code:coulsonlee/STDO-CVPR2023: [CVPR2023] Towards High-Quality and Efficient Video Super-Resolution via Spatial-Temporal Data Overfitting (github.com) 随着深度卷积神经网络&#xff08;DNN&#xff09;在计算机视觉的各个领域得到广泛应用&#xff0c;利用DNN的过…

蓝牙挂耳式耳机什么牌子好?推荐几款自用不错的蓝牙耳机

"放弃纠结&#xff0c;挑选蓝牙挂耳耳机从此不再头疼&#xff01;面对市面上琳琅满目的选择&#xff0c;到底哪个蓝牙耳机好用&#xff0c;成了一个谜&#xff0c;我这里有几款个人亲测过的蓝牙挂耳式耳机&#xff0c;让你在自用的道路上不再盲目&#xff0c;无论是办公、…