S2-LP 内置128 字节 TX/RX 独立 FIFO,小数据传输可直接使用,但面对 500 字节、1000 字节等大数据透传场景,必须依靠阈值中断 + 分段吞吐才能稳定实现。LAT1224 应用笔记清晰拆解了 FIFO 阈值配置、中断触发逻辑、收发控制流程,是做大包无线传输的必备指南。本文用工程师最易懂的方式讲透原理与配置,让你轻松突破 FIFO 大小限制。
资料获取:【应用笔记】LAT1224 S2-LP的FIFO机制
1. S2-LP FIFO 基础特性
- 发送 FIFO(TX):128 字节
- 接收 FIFO(RX):128 字节
- 每组 FIFO 都支持两个可编程阈值:
- Almost Full(几乎满)
- Almost Empty(几乎空)
- 通过中断通知 MCU 及时续发 / 取走数据,实现流式大包传输
2. TX FIFO 发送机制(关键:阈值计算不一样)
TX FIFO 用于存储待发送数据,由两个寄存器配置阈值:
2.1 阈值配置寄存器
- FIFO_CONFIG1[6:0] → TX_AFTHR(Almost Full)
- FIFO_CONFIG0[6:0] → TX_AETHR(Almost Empty)
2.2 计算公式(重点)
- TX Almost Full 阈值:
TX_AFTHR = 128 - (目标阈值 - 2)例:希望 80 字节触发满中断 →TX_AFTHR = 128 - (80-2) = 50 - TX Almost Empty 阈值:
TX_AETHR = 目标阈值。例:希望低于 20 字节触发空中断 →TX_AETHR = 20
2.3 大包发送流程
- 初始填充 TX FIFO
- 达到Almost Full → 暂停填充
- 发送一部分 → 降到Almost Empty
- 中断触发 → 继续填充下一段数据
- 循环直到整包发送完成
这样就能发送远大于 128 字节的数据。
3. RX FIFO 接收机制(计算方式与 TX 不同)
RX FIFO 用于存储接收到的无线数据,同样两个阈值:
3.1 阈值配置寄存器
- FIFO_CONFIG3[6:0] → RX_AFTHR(Almost Full)
- FIFO_CONFIG2[6:0] → RX_AETHR(Almost Empty)
3.2 计算公式(重点)
- RX Almost Full 阈值:
RX_AFTHR = 128 - 目标阈值。例:希望 80 字节触发满中断 →RX_AFTHR = 128 - 80 = 48 - RX Almost Empty 阈值:
RX_AETHR = 目标阈值
3.3 大包接收流程
- 无线数据持续进入 RX FIFO
- 达到Almost Full → 触发中断
- MCU 快速读取数据,腾出空间
- 继续接收下一段
- 直到一帧完整接收
4. 为什么要这样设计?
- S2-LP 硬件 FIFO 只有 128 字节,无法直接存放大包
- 阈值 + 中断可以实现流式收发,MCU 只需要处理缓冲区
- 收发不丢包、不溢出、时序稳定
- 适合:串口透传、高频采集、OTA 升级、大报文指令
5. 典型应用:500 字节透传实现(LAT1224 验证案例)
文档中实测发送 / 接收500 字节长数据:
- 配置 TX/RX 阈值
- 开启 Almost Full/Almost Empty 中断
- 中断服务程序中进行分段填充 / 读取
- 整包接收完成后校验数据
最终结果:DATA CORRECT
接收长度、内容、RSSI 全部正常,稳定无误码。
6. 最容易踩的 3 个坑
- TX 与 RX 阈值计算方式不同,混用必错:TX Almost Full 要减 2,RX 不用
- 只开单阈值,无法完成大包传输:必须同时用 Almost Full + Almost Empty 配合
- 中断响应太慢:会导致 FIFO 溢出或丢包,需提高 SPI 优先级
LAT1224 把 S2-LP FIFO 机制讲得非常实战:
- TX/RX 各 128 字节,靠双阈值 + 中断实现大包
- TX、RX 阈值计算公式不一样,必须严格遵守
- 轻松支持 500 字节、1K、2K 等大数据透传
- 工业级稳定,适合无线串口、远程采集、OTA
只要按这套机制配置,S2-LP 就能实现高吞吐、远距离、大包长帧稳定传输。
阅读全文
693