打印
[技术相关]

SWM芯片UART FIFO应用笔记

[复制链接]
718|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
SSWMCU|  楼主 | 2023-2-10 09:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 SSWMCU 于 2023-2-10 09:43 编辑

简介
本应用笔记介绍了Synwit SWM系列单片机的UART FIFO 如何配合接收门限中断、接收超时中断完成UART数据接收,如何配合发送门限中断完成UART数据发送。SWM 芯片 UART 有独立的 RX FIFO 和 TX FIFO,深度都是 8。RX FIFO 可以设定当 FIFO 中数据个数大于指定个数时产生中断,通知 APP 将接收到的数据读走。TX FIFO 可以设定当 FIFO 中数据个数小于指定个数时产生中断,通知 APP 将需要发送的数据写入 TX FIFO。通过使用 FIFO 和 门限中断,可以大幅减少UART_Handler 中断函数执行的频率,提高芯片执行效率。
接收门限中断与接收超时中断
以如下配置为例:
RXThreshold = 3;
RXThresholdIEn = 1;
TimeoutTime = 10;
TimeoutIEn = 1;


SWM181SWM260SWM320对方发送8个数据的情况
每接收到一个数据,RX FIFO中数据个数加一,当RX FIFO中数据个数大于RXThreshold时,触发接收中断。



对方发送9个数据的情况

只有当接收FIFO中有数据,且在指定时间内未接收到新的数据时,才会触发超时中断。

若应用中希望通过数据间时间间隔作为帧间隔依据,即不管对方发送过来多少个数据,最后都能产生超时中断,可以通过在接收ISR中从RX FIFO中读取数据时总是少读一个(即让一个数据留在RX FIFO中)来实现。


SWM190SWM211SWM341UARTx->TOCR.MODE = 0
SWM181、SWM260、SWM320情况完全相同


UARTx->TOCR.MODE = 1
不管对方发送几个数据,最后都能触发超时中断






发送门限中断
以如下配置为例:
TXThreshold = 4;
TXThresholdIEn = 1;

每发送出一个数据,TX FIFO中数据个数减一,当TX FIFO中数据个数小于等于TXThreshold时,触发发送中断。

初始化时不能开启发送中断,只能在发送FIFO填入数据后再开启发送中断;否则开启发送中断后会立即触发发送中断

9.png (208.95 KB )

9.png

使用特权

评论回复

相关帖子

沙发
天天向善| | 2023-2-22 17:04 | 只看该作者
这个FIFO是硬件提供的FIFO吗?

使用特权

评论回复
板凳
LLGTR| | 2023-2-22 17:05 | 只看该作者
如果要求实时性高,是不是就不能用FIFO了。

使用特权

评论回复
地板
芯路例程| | 2023-2-22 17:05 | 只看该作者
好像没有用过UART的FIFO,看着还挺有趣的。

使用特权

评论回复
5
华芯微特FAE| | 2023-2-22 17:41 | 只看该作者
天天向善 发表于 2023-2-22 17:04
这个FIFO是硬件提供的FIFO吗?

是的

使用特权

评论回复
6
macpherson| | 2023-3-2 10:10 | 只看该作者
uart fifo 中断怎样产生

使用特权

评论回复
7
saservice| | 2023-3-2 10:40 | 只看该作者
FIFO控制寄存器是用来干什么的

使用特权

评论回复
8
belindagraham| | 2023-3-2 11:33 | 只看该作者
怎样将fifo读出来的一串数字按照大小顺序拼接起来

使用特权

评论回复
9
51xlf| | 2023-3-2 12:01 | 只看该作者
串口缓存区如果满了会怎么样              

使用特权

评论回复
10
华芯微特FAE| | 2023-3-2 15:40 | 只看该作者
saservice 发表于 2023-3-2 10:40
FIFO控制寄存器是用来干什么的

发送 FIFO
通用发送 FIFO 是一个 32 位宽、8 单元深、先进先出的存储缓冲区。通过写数据(DATA)寄存器
来将数据写入发送 FIFO,数据在由发送逻辑读出之前一直保存在发送 FIFO 中。并行数据在进行
串行转换并通过 MOSI 管脚分别发送到相关的从机之前先写入发送 FIFO。
接收 FIFO
通用接收 FIFO 是一个 32 位宽、8 单元深、先进先出的存储缓冲区。从串行接口接收到的数据在
读出之前一直保存在缓冲区中,通过读 DATA 寄存器来访问读 FIFO。从 MISO管脚接收到的串行
数据在分别并行加载到相关的主机接收 FIFO 之前先进行记录

使用特权

评论回复
11
华芯微特FAE| | 2023-3-2 15:45 | 只看该作者
51xlf 发表于 2023-3-2 12:01
串口缓存区如果满了会怎么样

溢出,数据会丢

使用特权

评论回复
12
华芯微特FAE| | 2023-3-2 15:51 | 只看该作者
本帖最后由 华芯微特FAE 于 2023-3-2 15:53 编辑
macpherson 发表于 2023-3-2 10:10
uart fifo 中断怎样产生

您这边可以参考数据手册390页

华芯微特SWM341数据手册V1.20.pdf

21.39 MB

使用特权

评论回复
13
根据FIFO工作的时钟域分为同步/异步FIFO

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:广东华芯微特集成电路有限公司
简介:华芯微特是一家由留美归国资深技术团队创立的中国芯片设计公司,是国家高新技术企业。2014年进军MCU产业,专注于32位MCU研发设计,并针对细分市场提供参考解决方案。

3

主题

3

帖子

1

粉丝