当前位置: 首页 > news >正文

搞定SPI开发:硬件设计精讲与CH390H示例应用

想要轻松搞定SPI开发?聚焦硬件设计关键要点,结合CH390H芯片示例,带你从理论到实践,全面掌握SPI开发技术。

本文以Air780EPM为例,分享SPI接口的开发注意事项及硬件设计要点。

一、Air780EPM的SPI功能支持

在Air780EPM中,SPI接口通过特定GPIO引脚实现,需结合LuatOS的API进行配置。通过合理设计和调试,可高效连接多种外设,扩展物联网应用功能。

1.1 硬件支持

1)接口数量:

Air780EPM支持4路SPI接口:

1路用于SPI LCD;

1路用于SPI Camera;

2路标准SPI接口(Air780EPM开发板中将SPI0用于了以太网接口)。

这里需要特别注意:LCD和Camera专用SPI接口,无法作为标准SPI接口使用。

管脚映射图等最新资料下载:https://docs.openluat.com/air780epm/luatos/hardware/design/spi/

image

image

2)电压兼容性:

SPI接口电压可通过IO_SEL引脚配置为1.8V或3.3V,需注意与外设的电平匹配,否则需添加电平转换电路。

1.2 软件支持

以下仅针对2路标准SPI接口进行介绍。

协议兼容性:支持标准SPI协议(主模式)。

工作模式:

主模式(Master):支持。

从模式(Slave):不支持(暂不支持)。

速率支持:最大时钟频率:25.6MHz(需外设支持)。

典型应用频率:1MHz~10MHz(需根据外设能力调整)。

LuatOS API:

提供spi.setup()、spi.send()、spi.receive() 等函数控制SPI通信。

image

二、开发注意事项

使用Air780EPM和LuatOS进行SPI开发时,需特别关注以下关键事项。

2.1 硬件设计

1)信号线配置:

确保SPI引脚(CLK、MOSI、MISO、CS)正确连接,避免与其他复用功能(如UART、I2C、PWM、GPIO 等)冲突。

2)电平匹配:

若外设为5V电平,需通过电平转换芯片(如TXB0104)转换至3.3V或1.8V,保持与VDD_EXT电平一致。

3)信号完整性:

SPI线需远离高频干扰源(如电源线、射频模块);高速通信时,SCLK线长度应≤10cm,避免信号反射或延迟。

2.2 软件配置

1)初始化步骤:

image

2)低功耗模式:

SPI接口在模块休眠时会掉电,需在唤醒后重新初始化。

2.3 调试与常见问题

通信失败时,可从以下几个方面进行排查。

1)检查时钟频率:
外设最大支持速率需≥配置速率(如外设仅支持 5MHz,需设置spi.setup(1, 5e6, ...))。

2)数据格式匹配:

确保CPOL/CPHA模式与外设一致(参考具体外设数据手册)。

3)CS信号状态:

确认SS引脚在通信期间保持低电平。

4)信号完整性:

用示波器检查CLK、MOSI、MISO波形是否正常。

2.4 其他关键点:

1)GPIO复用:
确保SPI引脚未被其他功能(如UART、I2C、PWM、GPIO 等)占用,在使用SPI功能之前务必使用LuatIO 工具进行初始化配置。

2)DMA与FIFO优化:

高速传输时启用DMA模式;避免FIFO溢出,需合理设置缓冲区大小。
image

3)固件版本:

使用支持SPI功能的LuatOS固件。

详见最新固件说明:https://docs.openluat.com/air780epm/luatos/firmware/version/

三、以太网芯片CH390H示例

下文以Air780EPM开发板上SPI接口的以太网芯片CH390H为例,分享SPI接口的常用用法。

3.1 硬件电路

Air780EPM二次开发的原理图和PCB等硬件参考设计文件,需要的朋友可通过资料中心下载。

最新参考设计文件下载:https://docs.openluat.com/air780epm/luatos/hardware/design/reference/

image

image

3.2 软件代码

有关CH390H的代码太长,这里仅截取一段有关SPI0的代码作为示例。

CH390H联网测试完整示例代码,详见源码仓库:https://gitee.com/openLuat/LuatOS/tree/master/module/Air780EPM/demo

image

今天的内容就分享到这里了~

http://www.zskr.cn/news/5238.html

相关文章:

  • 我开发的软件和开源/免费软件
  • ubuntu 20.04安装mysql 5.7
  • 企业微信逆向开发协议,ipad协议调用方式
  • OpenStack Nova Scheduler 计算节点选择机制
  • 记一种很新的 bitset
  • 有向图强连通分量
  • Kafka 消费者元数据topicId变化问题
  • 【2025-09-14】连岳摘抄
  • GZY.Quartz.MUI(基于Quartz的UI可视化操作组件) 2.8.0发布 新增仪表盘和检索功能
  • MacOS升级15.2后的问题(二):无法修改mac网络地址
  • HCIA——VLAN间通信
  • vue - 内置指令
  • 读书笔记:为什么你的数据库有时不用索引?一个关键参数告诉你答案
  • MacOS升级15.2后的问题(一):安装第三方下载的软件,提醒文件已损坏
  • 故障分析:ORA-00900 修改props$中字符集导致
  • Ollama + Python 极简工作流
  • 单片机实现挡位调节
  • 长城杯WriteUp
  • vite取别名@
  • kingbase金仓数据库docker部署完整步骤
  • 【VPX361】基于3U VPX总线架构的XCZU47DR射频收发子模块
  • 自动驾驶ADAS数据集 13万张高清道路车辆识别图像 覆盖多场景智能交通应用 支持目标检测图像识别模型训练与AI视觉算法开发
  • Norwood-Hamilton男性脱发分级图像集|2400+张多角度高清头皮图像|涵盖7类脱发诊断标注|适用于AI诊断工具开发、皮肤科研究与植发产品研发|包含5角度标准化拍摄、支持秃顶早期检测
  • 30万份行业报告数据集:覆盖金融科技医疗能源等20+行业领域,2010-2024年完整时间跨度,提供高质量PDF和文本格式,支持深度学习模型训练、行业趋势分析、市场竞争研究、学术论文写作的多场景应用
  • 德创恋爱话术宝典介绍
  • 机器学习回顾(二)——KNN算法 - 教程
  • MyEMS:开源的力量,如何为企业能源管理带来颠覆性变革?
  • 完整教程:【Leetcode hot 100】543.二叉树的直径
  • 【Unity 性能优化之路——渲染流程(1)】 - 详解
  • HCIA回顾——STP