RISC-V MCU中文社区

【分享】 蜂鸟E203 SoC的UART中断的使用

发表于 全国大学生集成电路创新创业大赛 2021-06-06 13:35:03
0
2801
3

一、队伍介绍

参赛队名:英勇不秃 队伍编号:CICC2990

本篇主要介绍蜂鸟E203 SoCUART中断

二、相关函数介绍

UART中断的方式有主要三种:接收数据校验位错误引起的中断,FIFO中数据与阈值比较后产生的中断,和TX_FIFO为空时产生的中断。


UART模块里的控制寄存器有很多,有以下的一些寄存器。


而与控制UART中断相关的寄存器主要是IER寄存器(3 bits,FCR寄存器(只写)其中:

IER[2]:使能接收数据校验位错误引起的中断

IER[1]:使能FIFO中数据与阈值比较后产生的中断

IER[0]:使能TX_FIFO为空时产生的中断

FCR寄存器则是下面会说到的中断阈值的设置需要用到的。


在设计的时候,我们一般都会希望能够使用键盘对系统进行控制,于是就需要用到UART中断,即使能FIFO中数据与阈值比较后产生的中断,这时就会设计到UART中断阈值的设置。在E203 SoC的代码里我们可以看到,中断阈值主要是由UART模块里面的trigger_level_n2 bits)寄存器控制的。不同的值代表着不同的阈值深度。


了解了相关的寄存器后,我们可以进一步地查看相关的函数,以便我们设计。在蜂鸟软件开发平台中,hbirdv2_uart.c文件包含着UART模块的相关控制函数。使用下图的两个函数即可对相关寄存器进行设置。


 


三、总结

这篇贴子简单地分享了E203 SoC UART中断的使用方法,本人能力有限,难免可能会出现疏漏,但还是希望能够帮助到大家,同时也希望大家指正,祝各参赛队比赛顺利!


喜欢3
用户评论
hhulll

hhulll 实名认证

懒的都不写签名

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板