正点原子FPGA学习笔记4.4——UART串口通信,基于达芬奇开发板 A7

2023-05-16

目录

1.环回模块——协调发送接收模块

0.综上,信号线如下:

1.捕捉发送模块传过来recv_done信号的上升沿——得到recv_done_flag

2.recv_done_flag拉高,接收了一帧数据,紧接着可以给发送模块发送指令send_en、send_data

​编辑2.顶层模块

0.信号线

1.例化 接收+发送+回环模块

3.综合+约束、生成比特流+安装串口助手

1.打开Vivado,根据错误提示修正代码,综合一下看有没有其他错误——修正。

2.引脚约束——.xdc文件,生成bit流

2.1琢磨一圈后发现的问题——串口是PS的外设,而现在做的PL,即FPGA上的实验,需要额外的扩展模块如RS232等,才能实现串口通信!

3.安装串口调试助手 + 驱动+生成bit流,烧录+使用串口调试助手验证

4.因为没有扩展模块,本次实验就到此结束


1.环回模块——协调发送接收模块

什么时候再接收?什么时候再发送?——需要环回模块协调!

接收模块信号:uart_done——抓取上升沿,代表已经接收一帧完整的数据,发送一个send_en给发送模块——uart_en,告诉发送模块可以发送数据了!
发送模块信号:uart_tx_busy——高电平处于忙状态,此时环回不对发送模块不做任何操作。
//同样,需要定义临时寄存接收模块传过来的信号

0.综上,信号线如下

同步时钟+复位,接收模块传两个输出信号:uart_done对应recv_done、uart_data存入临时寄存器recv_data。发送模块传两个输入信号:uart_en信号由send_en产生、uart_din由输出send_data产生!

1.捕捉发送模块传过来recv_done信号的上升沿——得到recv_done_flag

 有了上升沿,就认为接受到了一帧有效的数据!——recv_done_flag拉高,紧接着可以给发送模块发送指令。

2.recv_done_flag拉高,接收了一帧数据,紧接着可以给发送模块发送指令send_en、send_data

//引入一个状态标志位——作用:准备启动发送过程

 //此时,接收数据recv_data已经挂到了发送数据线send_data上
 //tx_ready拉高,说明环回模块已经完全准备好,而且给发送模块的数据挂上了
 //此时只需要将使能send_en打开,就能立刻将数据发送出去

 //检测串口发送模块tx_busy是否空闲,必须要发送模块空闲,环回模块才能发送数据
 //否则,发送模块正在发送一帧数据,结果立马接收了新的这一帧数据
 //导致最后真正发送的数据是:前一帧的前几位+现在新的这帧数据的后几位——错误!


2.顶层模块

0.信号线

时钟+复位,然后就输出数据线rxd 和 输入数据线txd

1.例化 接收+发送+回环模块

 接收

发送

回环

3.综合+约束、生成比特流+安装串口助手

1.打开Vivado,根据错误提示修正代码,综合一下看有没有其他错误——修正。

2.引脚约束——.xdc文件,生成bit流

2.1琢磨一圈后发现的问题——串口是PS的外设,而现在做的PL,即FPGA上的实验,需要额外的扩展模块如RS232等,才能实现串口通信!

我的板子——zynq7020

PS端根本不存在端口——C12和B12

3.安装串口调试助手 + 驱动+生成bit流,烧录+使用串口调试助手验证

4.因为没有扩展模块,本次实验就到此结束

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正点原子FPGA学习笔记4.4——UART串口通信,基于达芬奇开发板 A7 的相关文章

  • 驱动编写入门

    按键控制led驱动 一 框架 1 open read write 函数 static int second drv open struct inode inode struct file file 配置GPF0 2为输入 gpfcon am
  • OpenWrt与嵌入式Linux

    OpenWrt与嵌入式Linux 由于要接手学长留下来的一个项目 xff0c 被迫 要学习OpenWrt的配置方法 虽然对于一个five电工来说这事挺莫名其妙的 xff0c 但还是硬着头皮上吧 xff08 我本想拒绝 xff0c 但他给的是
  • ROS学习笔记#3 package.xml解释

    我们都知道在catkin下创建功能包时 会自动生成一些文件 文件夹 其中就有这个package xml 它主要由以下部分组成 描述tag维护tag开源tag依赖tag结尾tag 描述tag span class token operator
  • idea多模块打包

    多模块打包的办法有两个 1 在parent的pom下执行deploy 这样就会自动将父 pom以及子 module都发布到仓库 在模块中添加如下选项 lt distributionManagement gt lt repository gt
  • Linux系统中永久设置GVIM的字体、背景颜色和显示行数等

    在GVIM窗口界面 xff0c 手动改变字体大小 高亮 背景色等之后 xff0c 下次打开依旧是默认配置 因此介绍一种永久设置的方法 xff1a 一 配置命令 set gfn 61 Tlwg Typist 12 colorscheme de
  • ROS安装和MAVROS以及PX4的安装

    只能说怀着沉重的心情 xff0c 本来不想写的 xff0c 但是又还是害怕后续出什么幺蛾子 xff0c 就记录一下 xff0c 希望自己永远没有机会在看这篇文章 文章目录 ROS安装 ubuntu18 04安装melodic 1 Ubunt
  • C#中=>使用

    目录 一 目的 1 1 想知道 xff1a C 中 61 gt 使用 的意思 二 参考 xff1a 1 C 中 61 gt 表示什么意思 xff1a 1 C 中 61 gt 是什么意思 三 注意 四 操作 xff1a 成功 1 总结 2 代
  • UE4如何将虚幻商城资源导入到自己的工程中+保管库的使用

    一 目的 xff1a 1 导入资源到UE4工程里面很多 xff0c 下面介绍一个 一 参考 1 Unreal初级案例 动作游戏入门中 保管库的使用 http www sikiedu com course 514 tasks 总结 xff1a
  • UE4纯C++与Slate开发沙盒游戏:1.项目介绍与资源获取

    目录 一 目的 xff1a 1 以前看教程 xff0c 编写的笔记都是word版本 xff0c 公司现在文档都加密了 xff0c 发现复习的几率很小 xff0c 而且有时候查找起来很是不好找 xff0c 所以将其发布在CSDN上面 xff0
  • 如何写c++简历

    目录 一 目的 xff1a 1 想知道如何写C C 43 43 方面的简历 1 从别人简历哪里了解一下自己的不足 二 参考 1 c 43 43 软件工程师个人简历大全 1 转 xff1a C C 43 43 程序员简历模板 1 C 43 4
  • 解决sentinel key not found (h0007) Unity

    一 目的 1 电脑重做系统后 xff0c 打开Unity项目跳出了sentinel key not found h0007 Unity对话框 二 参考 1 sentinel key not found h0007 Unity https b
  • adb学习:六(成功):adb命令卸载APK文件

    目录 一 目的 1 想知道 xff1a adb命令卸载APK文件 二 参考 1 adb安装和卸载apk的方式 三 注意 1 安装的命令 四 操作 1 完成 xff1a 能实现卸载apk 1 操作 四 操作 2 系统文件不能够卸载 使用adb
  • unity动态修改标准材质自发光(Emission)

    目录 一 目的 1 想知道 xff1a unity动态修改标准材质自发光 xff08 Emission xff09 二 参考 1Unity利用材质自发光实现物体闪烁 三 操作 xff1a 一 xff1a 完成 xff1a 变换材质自发光的数
  • maven导入本地jar包

    最近看 https github com junicorn kira 实现的java的代码 有个库发现没法使用maven安装 https mvnrepository com artifact com bladejava blade kit
  • GitHubDesktop:学习:三:(第一次操作)GitHubDesktop进行创建分支+合并分支:成功

    目录 一 目的 1 想知道 xff1a GitHubDesktop进行创建分支 1 想知道 xff1a GitHubDesktop进行合并分支 二 参考 1 0基础的git教程 xff0c 傻瓜都会用的Github Desktop 三 总结
  • 鱼眼+红外+IMU+VSLAM+SLAM

    一 目的 1 想知道 xff1a 二 参考 1 一分钟详解鱼眼镜头标定基本原理及实现 https mp weixin qq com s VyxoTaYtYPB Bfh3JCXl1A 三 注意 四 操作
  • VSLAM:一:VSLAM小科普

    一 目的 1 想知道 xff1a VSLAM小科普 1 将其转载 xff0c 避免作者删除 xff0c 就没有了 二 参考 1 VSLAM小科普 https zhuanlan zhihu com p 121601875 百度百科 三 注意
  • Unity3D:问题(成功):如何解决:Unity2019新建工程都空白红色感叹号报错

    目录 一 目的 1 如何解决 Unity2019新建工程都空白红色感叹号报错 2 Unity2019好几个版本新建工程都有红色感叹号空白报错 xff0c Unity卸载安装 UnityHUB卸载安装都试过 xff0c 许可证个人的 xff0
  • Unity用UGUI实现省份选择

    参考 Unity3D中使用UGUI实现省市选择器 YOLO TO GAME的博客 CSDN博客
  • Unity3D中Resources动态加载图片

    问题 xff1a unity的Resources动态加载就不必多说了 xff0c 这里出现的问题是当我把图片放入Resources文件夹后 xff0c 使用Resources Load xff08 datapath xff09 却并没有出现

随机推荐

  • Navicat报错:1045-Access denied for user root@localhost(using password:YES)

    解决 xff1a Navicat报错 xff1a 1045 Access denied for user root 64 localhost using password YES SET PASSWORD FOR 39 root 39 64
  • UE4添加音乐、音效

    目录 一 目的 xff1a 1 想 xff1a UE4添加音乐 音效 二 参考 1 三 操作 xff1a 完成 1 前述 xff1a 1 导入音乐 1 创建Cue 1 Cue进行设置 1 创建音乐 1 播放和暂停音乐 一 目的 xff1a
  • 《嵌入式C语言自我修养》书评

    首先 xff0c 介绍本书的内容 笔者从嵌入式工程师的视角出发 xff0c 先为我们初学者补上硬件相关基础 xff0c 如计算机工作原理和系统结构 xff08 理解程序编译 链接 安装和运行机制 xff09 CPU的工作原理 xff08 理
  • SLAM14讲之第五讲--像素坐标系、畸变、双目相机深度求解

    像素坐标系 由相似三角形的定义可得 xff1a 这是相对于成像平面的坐标变化 xff0c 我们实际上所得到的图片还要经历一层成像平面到像素平面的变换 xff0c 实际上就是相差了一个缩放和原点的平移 如此我们定义 xff1a u为横轴向右与
  • python webkit 异步抓取页面数据

    usr bin python from ghost import Ghost class FetcherCartoon def getCartoonUrl self url if url is None return false todo
  • 树莓派 Ubuntu mate 16.04使用VNC开启远程桌面

    1 安装 vncserver sudo apt span class token operator span get span class token operator span y install vnc4server 2 启动 vncs
  • 数学建模(四)-----最优化问题-----Simulate Anneal Arithmetic

    模拟退火算法的应用很广泛 xff0c 可以较高的效率求解最大截问题 Max Cut Problem 0 1背包问题 Zero One Knapsack Problem 图着色问题 Graph Colouring Problem 调度问题 S
  • 路径规划的优化

    因为这个求N个点的最短路径是将把所有可能的走法都可能尝试一遍 这样的话 如果计算十几个点之间的最短路径是没有问题的 但是问题就在如果超过二十个点位 那么最坏的情况就是需要计算20的阶乘个 这个计算是相当高的 可能会把线上的服务器打爆 或者计
  • SPL06电容式压力传感器数据读取与处理(基于STM32)

    该例程使用的开发板为正点原子的精英板F103 xff0c 相关资料请大家自行去正点原子论坛下载 首先来看一下SPL06的简介 xff0c SPL06的压强测量范围30kPa 110kPa xff0c 最大供电电压为3 6V xff0c 相对
  • 企业微信开发实战(六、自建应用-审批流程引擎之配置可信任域名、创建审批模版、发起审批)

    文章目录 4 自建应用审批状态变化通知回调4 1概述4 2代码实战 5 查询自建应用审批单当前状态5 1概述5 2代码实战 源码赞赏 4 自建应用审批状态变化通知回调 4 1概述 1 企业可以在管理后台 自建应用 设置API接收中 xff0
  • FreeRTOS内存管理之heap_4.c

    FreeRTOS内存管理之heap 4 c源码解析 每当创建任务 队列 互斥量 软件定时器 信号量或事件组时 xff0c RTOS内核会为它们分配RAM 标准函数库中的malloc 和free 函数有些时候能够用于完成这个任务 xff0c
  • git图形化管理工具

    一 独立客户端工具 1 GitHub for Desktop 全球开发人员交友俱乐部提供的强大工具 xff0c 功能完善 xff0c 使用方便 对于使用GitHub的开发人员来说是非常便捷的工具 界面干净 xff0c 用起来非常顺手 xff
  • ROS功能包

    ROS package介绍 package是什么呢 xff1f 指的是一种特定的文件结构和文件夹组合 通常将实现同一个具体功能的程序代码放到一个package中 xff0c 比如实现相机数据采集这一功能 文件结构 CMakeLists tx
  • 坐标转换tf

    tf介绍 坐标转换 TransForm 位置和姿态 坐标变换是空间实体的位置描述 xff0c 是从一种坐标系统变换到另一种坐标系统的过程 通过建立两个坐标系统之间一一对应关系来实现下图为机器人几个部件之间的坐标关系 tf概念 tf是一个用户
  • 经典Windows编程书单

    说好的这次写一个图形编程书单 但是看起来不是很好整理 xff0c 这类书散落的家里到处都是 先把经典Windows编程的书整理一下吧 xff0c 不过Windows的也到处都是很多都找不到了 xff0c 只能把找到的拍个照 xff0c 可能
  • vscode设置C++代码格式化(Clang-Format)

    vscode中只要安装了C C 43 43 扩展后 xff0c 在C C 43 43 源文件中右键就能看到格式化文档的选项 xff0c 这样就能通过该选项或者其快捷键 xff08 Shift 43 Alt 43 F xff09 来实现快速格
  • git pull覆盖了本地未push的代码解决方案

    一 问题背景 情况 xff1a 本地代码写完后 xff0c git push上去github xff0c 然后报错 xff0c 提示要先git pull pull之后 xff0c 失败了或者覆盖了本地未push的代码 二 解决方案 2 1
  • FreeRTOS任务调度原理

    1 FreeRTOS的列表和列表项 列表和列表项是FreeRTOS中一个非常重要的数据结构 xff0c 是FreeRTOS的基石 要想看懂FreeRTOS的源码并学习其中的原理 xff0c 我们必须先了解一下这个数据结构 这个数据结构也是和
  • Go语言学习教程(十四)

    一 反射介绍 在Go语言标准库中reflect包提供了运行时反射 程序运行过程中动态操作结构体 当变量存储结构体属性名称 想要对结构体这个属性赋值或查看时 就可以使用反射 反射还可以用作判断变量类型 整个reflect包中最重要的两个类型
  • 正点原子FPGA学习笔记4.4——UART串口通信,基于达芬奇开发板 A7

    目录 1 环回模块 协调发送接收模块 0 综上 xff0c 信号线如下 xff1a 1 捕捉发送模块传过来recv done信号的上升沿 得到recv done flag 2 recv done flag拉高 xff0c 接收了一帧数据 x