RISC-V MCU 串口通信记录 —— 基于Genesys2

  • FPGA开发板 : Genesys2
  • USB转串口线 : CMSIS-DAP
  • CPU主频90MHz,串口波特率115200bps

串口参数设置:

对于115200波特率,发送一位的时间为1/115200=8680ns,对于100MHz主频为868个时钟周期,对于90MHz主频约为781个时钟周期,这里设置baudrate计数最大值为781,计数每达该值时波特率时钟tick进行翻转,在tick上升沿采样(rx)或发送(tx)数据。

使用ILA观察信号:

可参考:【RISC-V Debug】学习笔记(三)借助 ILA 在线查看调试信号-icspec

在Settings窗口设置采样深度,并设置触发条件为 rx != 1:

  1. 串口向CPU发送数据0x55,CPU在tick上升沿采样并接收数据:
  1. CPU向串口发送数据,对tx_fifo发起写使能,给出写数据,检测到fifo非空后,tx_fifo读出数据:

tx_fsm开始发送数据:

上板测试:

Genesys2开发板集成了uart的micro-USB接口,但是和我的电脑不太兼容,因此选择了JC9和JC10管脚作为tx和rx :

按键的中断服务函数如下,CPU目前共有五个外部中断:

  1. 按下KEY0,CPU向串口发送数据 0x55 (Hex显示),若为ASCII,则接收数据为字符U(十六进制0x55对应的ASCII码) :
  1. 将接收设置改为ASCII,依次按下KEY1、KEY2,KEY3,CPU向串口发送字符串:
  1. 串口向CPU发送hex数据0x55,按下KEY4,LED显示CPU接收到的数据:

定时器中断的ISR如下,每隔1s触发一次定时器中断,向串口发送LED的当前位置:

串口接收数据如图所示,cnt从0到7循环,且间隔约为1秒:


相关推荐
电子科技圈21 小时前
赋能高端音频功能促进多样化设备创新——XMOS USB Audio平台实现四大功能升级
人工智能·mcu·音视频·智能家居·边缘计算·语音识别·智能硬件
笨笨饿1 天前
42_C语言查找算法
linux·服务器·c语言·人工智能·mcu·学习方法·嵌入式软件
爱分享的阿Q1 天前
RISC-V驱动开发合规解析
驱动开发·risc-v
匿名了匿名了2 天前
直流无刷与直流有刷电机
stm32·嵌入式硬件·mcu
嵌入式小企鹅2 天前
RISC-V爆发、AI编程变天、半导体涨价潮
物联网·学习·ai编程·开发工具·risc-v·芯片·工具链
BackCatK Chen3 天前
突破硅基极限!中国无极芯片技术解析:二维半导体如何实现后摩尔时代换道超车
risc-v·自主可控·后摩尔时代·无极芯片·二维半导体·二硫化钼·中国芯片
笨笨饿3 天前
29_Z变换在工程中的实际意义
c语言·开发语言·人工智能·单片机·mcu·算法·机器人
国科安芯4 天前
面向商业航天的高可靠电机控制系统:从环境约束到芯片实现
单片机·嵌入式硬件·架构·risc-v·安全性测试
嵌入式小企鹅4 天前
阿里编程模型赶超、半导体涨价蔓延、RISC-V新品密集上线
人工智能·学习·ai·程序员·risc-v·芯片
Kang.lee4 天前
2026.4.5【soc设计经验分享】soc信息安全之jtag鉴权
soc·risc-v·asic