0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

应用笔记|S2-LP 的 FIFO 机制

STM32单片机 来源:未知 2023-05-17 23:45 次阅读

关键字:S2-LP,FIFO,大数据透传

目录预览

1 引言2 应用场景3 实验结果4 小结

1. 引言

众所周知,S2-LP 拥有两个数据 FIFO,一个用于数据传送,另外一个用于数据接收,它们各自的长度均为 128 字节。针对普通的小数据量而言,128 字节长度的 FIFO 基本上可以满足大部分应用。但是,随着应用越来越复杂以及对数据量的需求越来越大,128 字节就不够用了,此时就需要对 FIFO 进行管控,才能接收或者发送更多的数据。本文将详细介绍 S2-LP 针对大数量场景时的 FIFO 机制。

2. 应用场景

为了更好地阐述 S2-LP 针对大数据量传输时的 FIFO 机制,这里以发送/接收 500 字节的数据内容为例,讲解 S2-LP 如何管控 FIFO 来达到这个目的。对于 TX/RX FIFO 而言,它们均有两个可编程的阀值,S2-LP 就是基于这两个阀值来对 TX/RX 的 FIFO 进行管控,具体如下图 1 所示:

2e92b144-f4c9-11ed-90ce-dac502259ad0.png

2.1 TX FIFO 由上述的内容可知,当 TX FIFO 中的数据达到对应的阀值时,就会产生相应的中断,从而通知用户做出下一步的动作。对于可编程阀值而言,S2-LP 有专属的寄存器FIFO_CONFIG1、FIFO_CONFIG0 来配置这两个阀值,如下所示:

1. FIFO_CONFIG1[6:0]-->TX_AFTHR,用于设置 FIFO Almost Full 阀值

2. FIFO_CONFIG0[6:0]-->TX_AETHR,用于设置 FIFO Almost Empty 阀值

由于 S2-LP FIFO 的特性,这两个阀值的配置是不一样的。例如,当用户希望 TX FIFO 达到 80 Bytes 时,产生 FIFO Almost Full 中断,那么 TX_AFTHR = 128 - (80-2);而当用户希望 TX FIFO 达到 20 Bytes 时,产生 FIFO Almost Empty 中断,那么TX_AETHR = 20。因此,如果 S2-LP 要发送 500 字节的数据,就需要利用这两个中断,即当 FIFO Almost Full 中断触发时,及时将数据传送出去,而当 FIFO Almost Empty 中断触发时,及时将剩余的数据填充至 TX FIFO。 2.2RXFIFO 同理,当 RX FIFO 中的数据达到对应的阀值时,也会产生相应的中断 ,从而用户可以根据中断做出下一步的动作;S2-LP 有专属的寄存器 FIFO_CONFIG3、FIFO_CONFIG2 来配置这两个阀值,如下所示:

1. FIFO_CONFIG3[6:0]-->RX_AFTHR,用于设置 FIFO Almost Full 阀值

2. FIFO_CONFIG2[6:0]-->RX_AETHR,用于设置 FIFO Almost Empty 阀值

但是,相较于 TX FIFO 的阀值设置,RX FIFO 有些许不同,即当用户希望 RX FIFO 达到80 Bytes 时,产生 FIFO Almost Full 中断,那么 RX_AF_THR = 128 - 80;而当用户希望 RX FIFO 达到 20 Bytes 时,产生 FIFO Almost Empty 中断,那么 RX_AE_THR = 20。因此,如果 S2-LP 要接收 500 字节的数据,就需要利用 FIFO Almost Full 中断,当其触发时,及时将数据从 RX FIFO 取走,从而陆陆续续地将这 500 字节的数据获取到。

3. 实验结果

基于上述的内容,利用 S2-LP FIFO Almost Full 和 FIFO Almost Empty 的机制就可以实现大数据传输的场景,测试结果如下图 2 所示,其中对应的源码文件见下述的附件

2ea67cd8-f4c9-11ed-90ce-dac502259ad0.png

其中测试结果中的 DATA_CORRECT 意思是说,发送的数据与接收的数据是一致的。

4. 小结

本篇章重点描述了 FIFO Almost Full 和 Almost Empty 工作原理及特性,并利用该特性实现了 500 字节的数据透传。同时也给需要使用数据量比较大的应用场景,提供一个很好的参考样例。

完整内容请点击“阅读原文”下载原文档。

2ecd9958-f4c9-11ed-90ce-dac502259ad0.png

长按扫码关注公众号

更多资讯,尽在STM32

点击“阅读原文”,可下载原文档


原文标题:应用笔记|S2-LP 的 FIFO 机制

文章出处:【微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6037

    文章

    44558

    浏览量

    635263
  • STM32
    +关注

    关注

    2270

    文章

    10900

    浏览量

    355998

原文标题:应用笔记|S2-LP 的 FIFO 机制

文章出处:【微信号:STM32_STM8_MCU,微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    用笔记 | SiC模块并联驱动振荡的抑制方法

    是市场的重要课题之一。 本应用笔记将介绍有效抑制功率模块振荡的方法。 基础理论 基础理论分别为各位工程师详细介绍振荡发生的机制、振荡抑制的想法(改善相位差)、影响相位裕量的实际参数三部分内容。 振荡
    发表于 11-27 14:23

    安富利推出S2-LP超低功耗射频收发器

    在物联网迅速普及的当下,对任何一个物联网系统来说,能否做到低功耗和长距离的稳定通信,直接决定了其在未来应用中的潜力。而在这个领域,一款名为S2-LP的超低功耗射频收发器正悄然走红,它不仅是一次威廉希尔官方网站 创新,更是在物联网生态中引发了一场“低能耗革命”。
    的头像 发表于 11-14 11:51 351次阅读
    安富利推出<b class='flag-5'>S2-LP</b>超低功耗射频收发器

    用笔记1604:去补偿运算放大器

    电子发烧友网站提供《应用笔记1604:去补偿运算放大器.pdf》资料免费下载
    发表于 09-29 10:30 0次下载
    应<b class='flag-5'>用笔记</b>1604:去补偿运算放大器

    LP8864-Q1 LP8864S-Q1 LP8866-Q1和LP8866S-Q1诊断说明和故障处理程序

    电子发烧友网站提供《LP8864-Q1 LP8864S-Q1 LP8866-Q1和LP8866S-Q1诊断说明和故障处理程序.pdf》资料免费下载
    发表于 09-18 11:36 1次下载
    <b class='flag-5'>LP</b>8864-Q1 <b class='flag-5'>LP8864S</b>-Q1 <b class='flag-5'>LP</b>8866-Q1和<b class='flag-5'>LP8866S</b>-Q1诊断说明和故障处理程序

    通过设置全局变量I2S0,I2S1触发DMA机制的疑问求解答

    在跟踪esp32-web-camera的代码时,看到了通过设置全局变量I2S0,I2S1,触发DMA的机制,对于结构体i2s_dev_t的各字段不是很理解,不懂哪里有这方面的文档,另外
    发表于 06-13 07:42

    芯海CS32F0XXTIMER外设模块应用笔记

    本应用笔记旨在展示使用CS32FOxx微控器,针对定时器外设的应用。帮助用户了解CS32FOxx定时器的基本特性、操作模式及相关应用的示例代码。提供的一些高级应用以便缩短用户开发周期。对所介绍的特定
    发表于 05-16 15:02

    芯海CS32F0XXADC外设模块应用笔记

    本应用笔记旨在展示使用CS32FOxx微控器,提高A/D转化精度的应用。帮助ADC模块用户了解 CS32微控器提供的一些高级应用并加快开发周期。所介绍的每种模式都提供一个应用示例,以方便用户快速移植
    发表于 05-16 14:58

    芯海应用笔记:通用 MCU IAR 开发指南

    本应用笔记旨在帮助指导用户针对芯海通用 MCU 基于 IAR 环境的快速开发,帮助用户快速建立应用工程。芯海科技通用 MCU 提供的 pack 开发包都是仅支持芯海 CSU、MDK 或 IAR 通用
    发表于 05-16 11:50

    芯海应用笔记:通用 MCU 基于 GCC 编译开发应用

    本应用笔记旨在帮助指导用户针对芯海通用 MCU 基于 GCC 环境的快速开发。芯海科技通用 MCU 提供的 pack 开发包都是仅支持芯海 CSU、MDK 或 IAR 通用集成的 IDE 工具,如果
    发表于 05-16 11:47

    芯海通用 MCU 应用笔记 :CS32F103 系列 MCU IAP 升级指南

    本应用笔记旨在帮助指导用户针对芯海 CORTEX-M3 MCU CS32F103 系列单片机 IAP 应用的快速开发。本应用笔记实现了 CAN 和 USART 两种接口方式来开发 IAP 应用,协议
    发表于 05-16 11:40

    芯海科技应用笔记:CS32F0XX TIMER外设模块指导

    本应用笔记旨在展示使用 CS32F0xx 微控器,针对定时器外设的应用。帮助用户了解 CS32F0xx 定时器的基本特性、操作模式及相关应用的示例代码。提供的一些高级应用以便缩短用户开发周期。对所介
    发表于 05-16 10:52

    芯海应用笔记:CS32F0XX ADC外设模块指导

    本应用笔记旨在展示使用 CS32F0xx 微控器,提高 A/D 转化精度的应用。帮助 ADC 模块用户了解CS32 微控器提供的一些高级应用并加快开发周期。所介绍的每种模式都提供一个应用示例,以方
    发表于 05-16 10:49

    芯海CSU18P88应用笔记

    本应用笔记旨在为用户提供关于CSU18P88的详细信息和使用指南,帮助用户快速开发基于CSU18P88的应用。*附件:CSU18P88应用笔记V1.5.pdf
    发表于 05-16 10:24

    CSU18MX86应用笔记

    本应用笔记旨在为用户提供关于CSU18MX86的详细信息和使用指南,帮助用户快速开发基于CSU18MX86的应用。*附件:CSU18MX86应用笔记_V1.0.pdf
    发表于 05-16 10:21

    Microchip TCP/IP 协议栈应用笔记

    电子发烧友网站提供《Microchip TCP/IP 协议栈应用笔记.pdf》资料免费下载
    发表于 04-17 14:16 1次下载