ZYNQ学习笔记2-ZYNQ的UART控制器2
UART编程指南示例配置控制器功能本示例配置字符帧、波特率、FIFO触发水平、接收器超时机制并使能控制器。所有这些步骤在复位后都是必需的但在控制器使能与禁用之间则不必重复执行。配置 UART 字符帧。uart.mode_reg0 写入 0x0000_0020a.禁止时钟预分频器UART_REF_CLK/8[CLKS] 0b. 选择8位字符长度[CHRL] 00c. 选择无奇偶校验[PAR] 100d. 选择1个停止位[NBSTOP] 00e. 选择正常通道模式模式开关[CHMODE] 00配置波特率。写入三个寄存器uart.Control_reg0、uart.Baud_rate_gen_reg0 和 uart.Baud_rate_divider_reg0。a. 禁止接收通路设置 uart.Control_reg0 [RXEN] 0 和 [RXDIS] 1。b. 禁止发送通路设置 uart.Control_reg0 [TXEN] 0 和 [TXDIS] 1。c. 将计算得到的CD值写入 uart.Baud_rate_gen_reg0 [CD] 位字段。d. 将计算得到的BDIV值写入 uart.Baud_rate_divider_reg0 [BDIV] 位字段。e. 复位发送和接收通路uart.Control_reg0 [TXRST] 和 [RXRST] 1。这些位自清零。f. 使能接收通路设置 [RXEN] 1 和 [RXDIS] 0。g. 使能发送通路设置 [TXEN] 1 和 [TXDIS] 0。设置 RxFIFO触发水平。将触发水平写入 uart.Rcvr_FIFO_trigger_level0 寄存器。选项 a使能 Rx 触发水平。向 [RTRIG] 位字段写入 1 到 63 之间的值。选项 b禁用 Rx 触发水平。向 [RTRIG] 位字段写入 0。使能控制器。向 uart.Control_reg0 寄存器写入 0x0000_0117。a. 复位发送和接收通路uart.Control_reg0 [TXRST] 和 [RXRST] 1。这些位自清零。b. 使能接收通路[RXEN] 1 和 [RXDIS] 0。c. 使能发送通路[TXEN] 1 和 [TXDIS] 0。d. 重启接收器超时计数器[RSTTO] 1。e. 不开始发送 break 信号[STTBRK] 0。f. 停止 break 发送[STPBRK] 1。编程接收器超时机制。将超时值写入 uart.Rcvr_timeout_reg0 寄存器。a. 要使能超时机制向 [RTO] 位字段写入 1 到 255 之间的值。注意原文写的是 [RSTTO]但根据前面章节 Rcvr_timeout_reg0 的位字段应为 [RTO]此处按合理逻辑修正为 [RTO]b. 要禁用超时机制向 [RTO] 位字段写入 0。发送数据软件可以使用轮询或中断方式控制数据流向 TxFIFO 和 RxFIFO。注意当TxFIFO空状态为真时软件可以一次性写入64字节TxFIFO的大小而无需检查TxFIFO状态。实际上当发送器处于活动状态时软件可以写入超过64字节的数据因为在软件向TxFIFO写入数据的同时控制器正在取出数据并将其串行化到TxD信号上。示例使用轮询方法发送数据在本示例中软件可以选择持续填充 TxFIFO 直到满状态位置位或者等待 TxFIFO变空然后写入最多64字节。当 TxFIFO几乎满时软件始终可以写入一个字节。检查 TxFIFO 是否为空。等待直到 uart.Channel_sts_reg0[TEMPTY] 1。向 TxFIFO 填充数据。向 uart.TX_RX_FIFO0 寄存器写入64字节数据。向 TxFIFO 写入更多数据。有两种方法选项A检查 TxFIFO 是否有空间再写入一个字节的数据即 TxFIFO 未满读取 uart.Channel_sts_reg0[TFUL] 直到其等于 0。当[TFUL] 0 时向 TxFIFO 写入一个字节的数据然后再次读取 [TFUL]。选项B等待 TxFIFO 变空。读取 uart.Channel_sts_reg0[TEMPTY] 直到其等于 1然后转到步骤 2再次向 TxFIFO 填充 64 字节数据。示例使用中断方法发送数据本示例首先以与轮询方法类似的方式填充 TxFIFO。然后软件使能 TxFIFO空中断以提醒软件再次填充 TxFIFO。禁用TxFIFO空中断。向 uart.Intrpt_dis_reg0[TEMPTY] 写入 1。向 TxFIFO填充数据。向 uart.TX_RX_FIFO0 寄存器写入 64 字节数据。检查 TxFIFO 是否有空间再写入一个字节的数据即 TxFIFO 未满读取 uart.Channel_sts_reg0[TFUL] 直到其等于 0。当 [TFUL] 0 时向 TxFIFO 写入一个字节的数据然后再次读取 [TFUL]。重复步骤 2 和 3。重复直到 uart.Channel_sts_reg0[TFUL]未被置位。使能中断。向 uart.Intrpt_en_reg0[TEMPTY] 写入 1 以使能中断。等待 TxFIFO 变空。当 uart.Channel_int_sts_reg0[TEMPTY] 被置为 1 时从步骤 1 开始重复。接收数据示例使用轮询方法接收数据等待 RxFIFO 填充至触发水平。检查 uart.Channel_sts_reg0[RTRIG] 1 或 uart.Chnl_int_sts_reg0[TIMEOUT] 1。从 RxFIFO读取数据。从 uart.TX_RX_FIFO0 寄存器读取数据。重复步骤 2直到 FIFO 为空。检查 uart.Channel_sts_reg0[REMPTY] 1。若接收超时中断状态位置位则清除。向 Chnl_int_sts_reg0[TIMEOUT] 写入 1。示例使用中断方法接收数据使能中断。向 uart.Intrpt_en_reg0[TIMEOUT] 和 uart.Intrpt_en_reg0[RTRIG] 各写入 1。等待 RxFIFO 填充至触发水平或发生接收超时。检查 uart.Chnl_int_sts_reg0[RTRIG] 1 或 uart.Chnl_int_sts_reg0[TIMEOUT] 1。从 RxFIFO 读取数据。从uart.TX_RX_FIFO0寄存器读取数据。重复步骤 2 和 3直到 FIFO为空。检查 uart.Channel_sts_reg0[REMPTY] 1。若中断状态位置位则清除。向 Chnl_int_sts_reg0[TIMEOUT] 或 Chnl_int_sts_reg0[RTRIG] 写入 1。RxFIFO触发水平中断示例设置RxFIFO触发水平并使能中断Intrpt_en_reg0 寄存器的各位用于使能中断掩码Intrpt_dis_reg0 寄存器的各位用于强制禁用中断。每对位应互斥设置即一个寄存器的对应位为 1另一个寄存器的对应位为 0Intrpt_en_reg0只写。使能中断位。Intrpt_dis_reg0只写。强制禁用中断位。编程触发水平。写入 6 位字段 uart.Rcvr_FIFO_trigger_level0[RTRIG]。使能RTRIG中断。设置使能位清除禁用位并验证掩码值a.设置uart.Intrpt_en_reg0[RTRIG] 1。b.清除uart.Intrpt_dis_reg0[RTRIG] 0。c.回读uart.intrpt_mask_reg0[RTRIG] 1中断已使能。禁用RTRIG中断。设置禁用位清除使能位并验证掩码值a.设置uart.Intrpt_dis_reg0[RTRIG] 1。b.清除uart.Intrpt_en_reg0[RTRIG] 0。c.回读uart.intrpt_mask_reg0[RTRIG] 0中断已禁用。清除RTRIG中断。向 uart.Intrpt_dis_reg0[RTRIG] 位字段写入 1。当某个中断的使能位和禁用位同时被置位时该中断被禁用。中断使能/禁用机制的状态可通过读取 uart.Intrpt_mask_reg0 寄存器来确定。若掩码位 1则表示中断已使能。UART寄存器总览功能uart.寄存器名称说明配置Control_reg0配置模式和波特率mode_reg0Baud_rate_gen_reg0Baud_rate_divider_reg0中断处理Intrpt_en_reg0使能/禁用中断掩码、通道中断状态、通道状态Intrpt_dis_reg0Intrpt_mask_reg0Chnl_int_sts_reg0Channel_sts_reg0接收和发送数据TX_RX_FIFO0读取已接收的数据写入待发送的数据接收器Rcvr_timeout_reg0配置接收器超时和RxFIFO触发水平值Rcvr_FIFO_trigger_level0发送器Tx_FIFO_trigger_level0配置TxFIFO触发水平值调制解调器Modem_ctrl_reg0配置类似调制解调器的应用Modem_sts_reg0Flow_delay_reg0

相关新闻

MCP3428与MK24FN1M0VDC12在工业数据采集中的高精度应用

MCP3428与MK24FN1M0VDC12在工业数据采集中的高精度应用

1. 为什么选择MCP3428MK24FN1M0VDC12组合在工业级数据采集场景中,信号精度与系统稳定性往往存在矛盾。传统方案采用分立式ADCMCU架构时,常面临采样速率与分辨率难以兼顾的问题。MCP3428这颗18位Δ-Σ ADC芯片配合MK24FN1M0VDC12的FlexIO接口,…

2026/7/10 22:58:39阅读更多 →
RAVR: Reference-Answer-guided Variational Reasoning for Large Language Models

RAVR: Reference-Answer-guided Variational Reasoning for Large Language Models

文章核心总结与翻译 一、主要内容 本文针对大型语言模型(LLMs)在强化学习(RL)优化中面临的核心挑战——难以采样高质量推理路径、易强化次优推理——提出了一种基于参考答案引导的变分推理框架(RAVR)。 核心问题:传统RL方法依赖模型已能以非忽视概率生成有效推理路径,…

2026/7/10 22:53:39阅读更多 →
从 Ladybird 的转型看开源项目的“成人礼”:放弃 SVN 与 C++ 的背后逻辑

从 Ladybird 的转型看开源项目的“成人礼”:放弃 SVN 与 C++ 的背后逻辑

从 Ladybird 的转型看开源项目的“成人礼”:放弃 SVN 与 C 的背后逻辑 在开源浏览器的浩瀚星海中,有一个名字近期格外耀眼,它不是因为发布了什么惊天动地的新功能,而是因为它做出了一个令许多开发者咋舌的决定:推倒重来…

2026/7/10 22:53:39阅读更多 →
195、从 Bug 到经验沉淀:如何把一次排错变成团队的永久知识资产

195、从 Bug 到经验沉淀:如何把一次排错变成团队的永久知识资产

195、从 Bug 到经验沉淀:如何把一次排错变成团队的永久知识资产 一个让我凌晨三点还在翻日志的 Bug 上周四晚上十一点,生产环境告警突然炸了。用户反馈某个核心接口响应超时,监控面板上错误率曲线像坐了火箭。我打开日志,看到一堆 Connection pool exhausted 的报错,心里…

2026/7/11 0:03:43阅读更多 →
东芝TC78H651AFNG与PIC18F46K22的直流电机驱动方案

东芝TC78H651AFNG与PIC18F46K22的直流电机驱动方案

1. 项目背景与核心器件解析在工业自动化和消费电子领域,直流有刷电机驱动方案一直扮演着关键角色。TC78H651AFNG作为东芝新一代H桥驱动器IC,与Microchip的PIC18F46K22微控制器组合,构成了一个高效可靠的驱动解决方案。这套组合特别适合需要精…

2026/7/11 0:03:43阅读更多 →
5分钟完全掌握:ComfyUI ControlNet预处理器终极使用指南

5分钟完全掌握:ComfyUI ControlNet预处理器终极使用指南

5分钟完全掌握:ComfyUI ControlNet预处理器终极使用指南 【免费下载链接】comfyui_controlnet_aux ComfyUIs ControlNet Auxiliary Preprocessors 项目地址: https://gitcode.com/gh_mirrors/co/comfyui_controlnet_aux 想要让AI图像生成真正听从你的指挥吗&…

2026/7/11 0:03:43阅读更多 →
5款实用macOS系统优化工具:让你的Mac运行更流畅更高效

5款实用macOS系统优化工具:让你的Mac运行更流畅更高效

5款实用macOS系统优化工具:让你的Mac运行更流畅更高效 【免费下载链接】open-source-mac-os-apps 🚀 Awesome list of open source applications for macOS. https://t.me/s/opensourcemacosapps 项目地址: https://gitcode.com/gh_mirrors/op/open-so…

2026/7/11 0:03:43阅读更多 →
Premiere Pro 2025安装失败原因与AGSIS验证绕过指南

Premiere Pro 2025安装失败原因与AGSIS验证绕过指南

1. 为什么2025版PR安装比以往更“磨人”?——从弹窗警告到路径陷阱的真实处境 Premiere Pro 2025版不是简单的一次版本迭代,它是一道分水岭。我从去年底开始帮影视工作室、高校剪辑实验室和自由职业者部署2025环境,累计处理了137台设备&#…

2026/7/11 0:03:43阅读更多 →
openEuler安全构建发布:自动化构建与可重复构建的完整解决方案

openEuler安全构建发布:自动化构建与可重复构建的完整解决方案

openEuler安全构建发布:自动化构建与可重复构建的完整解决方案 【免费下载链接】security-committee the Repository of Security Committee 项目地址: https://gitcode.com/openeuler/security-committee 前往项目官网免费下载:https://ar.opene…

2026/7/10 23:58:43阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/10 12:10:00阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/10 12:29:21阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/10 4:59:05阅读更多 →
Premiere Pro 2025安装失败原因与AGSIS验证绕过指南

Premiere Pro 2025安装失败原因与AGSIS验证绕过指南

1. 为什么2025版PR安装比以往更“磨人”?——从弹窗警告到路径陷阱的真实处境 Premiere Pro 2025版不是简单的一次版本迭代,它是一道分水岭。我从去年底开始帮影视工作室、高校剪辑实验室和自由职业者部署2025环境,累计处理了137台设备&#…

2026/7/11 0:03:43阅读更多 →
5款实用macOS系统优化工具:让你的Mac运行更流畅更高效

5款实用macOS系统优化工具:让你的Mac运行更流畅更高效

5款实用macOS系统优化工具:让你的Mac运行更流畅更高效 【免费下载链接】open-source-mac-os-apps 🚀 Awesome list of open source applications for macOS. https://t.me/s/opensourcemacosapps 项目地址: https://gitcode.com/gh_mirrors/op/open-so…

2026/7/11 0:03:43阅读更多 →
5分钟完全掌握:ComfyUI ControlNet预处理器终极使用指南

5分钟完全掌握:ComfyUI ControlNet预处理器终极使用指南

5分钟完全掌握:ComfyUI ControlNet预处理器终极使用指南 【免费下载链接】comfyui_controlnet_aux ComfyUIs ControlNet Auxiliary Preprocessors 项目地址: https://gitcode.com/gh_mirrors/co/comfyui_controlnet_aux 想要让AI图像生成真正听从你的指挥吗&…

2026/7/11 0:03:43阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/10 13:39:09阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/10 22:20:33阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/10 17:29:22阅读更多 →