- 博客(45)
- 收藏
- 关注
原创 PCB中的铺地
PCB设计中地平面的作用与重要性 地平面在PCB设计中扮演着关键角色,特别在高速信号应用中。它提供了最短、最低阻抗的回流路径,能显著减小回路面积和分布电感,降低电压降。对于高频信号,地平面不再是简单的0V参考,而是作为电磁场中最低阻抗的回流路径。主要优势包括避免地环路、抑制EMI干扰以及形成分布式电源旁路电容。在高速设计中,建议使用多层板确保完整的地平面,若必须使用两层板,则应保持平面连续性,避开关键高速信号区域。本质上,“地”是系统选择的参考电位和回流路径,而非神秘节点。
2025-10-17 15:17:18
615
原创 AD PCB绘制技巧总结(定期更新)
本文总结了Altium Designer(AD17版本)的实用PCB设计技巧,包括单位切换(mm/mil)、测量工具、板框绘制、单层查看、原点设置等基础操作。重点介绍了铺铜处理技巧(区域修改、过孔盖油、连接方式设置)、3D视图翻转、泪滴添加、引脚标注格式等进阶功能,并提供了阻焊开窗的工艺注意事项。作者整理了操作过程中的常见问题解决方法,强调部分功能可能因版本差异略有不同,欢迎指正错误。这些技巧旨在提高设计效率,适合作为日常工作的快捷参考手册。
2025-10-14 14:46:41
1335
原创 ESP iic驱动
本文介绍了如何配置ESP32芯片的I2C控制器作为主机(Master)与其他设备通信。核心步骤包括:1)使用i2c_master_bus_config_t结构体配置总线参数;2)调用i2c_new_master_bus()创建总线实例并获取bus_handle句柄;3)通过该句柄管理I2C总线和挂载设备。bus_handle作为驱动内部资源的标识指针,用于后续设备操作(如添加设备)。文中提供了完整的代码示例,展示了初始化过程和句柄管理方法,强调通过封装函数对外提供只读访问权限。
2025-09-22 21:16:10
413
原创 ESP-idf注册双服务器配置
摘要: 在ESP32开发中,当同时运行MJPEG视频流和其他HTTP服务时,由于MJPEG的长连接特性会阻塞其他请求。解决方案是创建两个独立的HTTPS服务器:一个专用于MJPEG流(端口8443),另一个处理常规请求(端口443)。关键点在于为每个服务器配置不同的端口(port_secure)和控制端口(ctrl_port),并确保资源分配合理(如连接数和任务优先级)。示例代码展示了如何分别初始化和注册两个服务器,避免资源冲突,从而保证视频流和交互功能同时稳定运行。
2025-09-05 17:29:54
859
原创 ESP32在WiFi局域网固定IP地址
由于WiFi路由器启用了DHCP,所以每一次开发版上电都会给它随机分配一个IP,使用起来不是很方便,所以我决定尝试固定它的IP地址。
2025-09-04 19:21:22
585
原创 ESP32嵌入固件读取
本文介绍了如何利用ESP-IDF的二进制数据嵌入特性优化网页文件存储。通过target_add_binary_data()函数将HTML文件直接嵌入固件,生成起始/结束符号标记数据位置。使用extern声明获取数据指针,并定义get_embedded_index_html函数返回文件数据及其大小。这种方法避免了双重缓存,使网页存储在flash中,支持OTA更新。相比littlefs文件系统方案,该方法更高效便捷,减少了资源占用。
2025-09-03 21:07:29
426
原创 arduino R4 SD卡读写测试
使用买来的 st7789LCD 显示器背面就带着一个 tf 卡槽,可以直接连接 tf 卡。使用 Sdfat 库就可以实现对 sd 卡的读写操作。这里尝试测试 sd 卡的读写功能。
2025-03-22 19:51:49
567
原创 ardunio R4 WiFi连接实战
ardunio R4 WiFi 开发板有着不错的性能和板载内存,本机自带 WiFi 连接模块,可以完成简单的网络服务。对于这个小东西我情有独钟,也总希望能够用它来做些什么,所以先从 WiFi 连接开始学起,未来考虑一步一步为它接入大模型服务,做出一个小的桌面显示小玩具
2025-03-13 17:17:07
2322
原创 arduino R4 WIFI读取时间并在LED矩阵上显示
arduino R4 WiFi 开发板自带 WiFi 连接模块,同时带有 8×12 LED 显示矩阵。本实验开发了一个能通过WiFi连接网络,获取NTP时间,然后在LED矩阵上滚动显示的功能。什么是 NTP 时间
2025-03-12 20:58:20
801
原创 为Claude桌面端集成tavily搜索
Claude没有联网的能力,但有很强的调用函数的能力,而mcp可以充当与其他操作之间的接口。所以,参照 anthropic 官方教程,利用mcp为Claude桌面端程序集成tavily的搜索能力,实现联网检索。
2025-03-11 16:12:37
1413
原创 Zephyr2.7.0与3.7.0测试用例版本差异
Zephyr2.7.0与3.7.0存在不小的使用差异,在ztest测试架构上使用不同的api,所以在使用时要格外小心。本文简要介绍ztest在测试架构搭建过程中存在的不同,并列举两个示例进行展示。
2024-12-05 10:35:01
1331
原创 uart_pl011.c驱动API的zephyr测试
本次测试针对uart的API进行测试,采用zephyr的ztest测试架构,并运行twister
2024-11-29 16:48:22
1420
原创 VMware中Ubuntu安装Zephyr3.7.0
在VMware中的Ubuntu安装Zephyr,安装步骤以及简单运行hello world程序
2024-11-26 10:52:33
675
原创 离线环境中mobaxterm通过ssh与vscode建立联系
使用VDI链接远程桌面,由于该环境没有网,不得不手动配置链接。通过远程插件实现的无网环境vscode链接mobaxterm
2024-10-29 14:49:26
1963
原创 尝试做一个最简单的加法器sv验证系统
一个简单的sv验证框架,完整验证了一个组合逻辑全加器,包含transaction、driver、monitor、scoreboard等模块,学习sv验证入门
2024-08-04 20:56:04
1204
原创 基于arduino cloud的GPS定位系统
利用arduino R4 Wi-Fi版开发板自带的Wi-Fi联网功能,将GPS信号上传,并利用谷歌地图显示位置信息;同时,该系统辅助性的加入了控制LED亮灭以及显示Wi-Fi的IP地址功能,用以检测系统正确性
2024-07-29 13:39:19
1473
原创 安路FPGA FIFO IP核使用小程序
一秒的时钟脉冲内向FIFO发送数据,从0开始一直到255,然后直接从FIFO中读出数据,发送到数码管进行显示,并单独引出一个一秒亮一秒灭的LED与其进行对比,判断功能完整性
2024-06-28 16:27:42
2137
原创 Xilinx中引入IP block design时无法进行make external的问题(已解决)(CRITICAL WARNING BD41-52)
CRITICAL WARNING: [BD 41-51] Could not find bus definition for the interface: tmds CRITICAL WARNING: [BD 41-49] Could not find abstraction definition for the interface: tmds CRITICAL WARNING: [BD 41-49] Could not find abstraction definition for the inter
2023-12-28 19:15:08
1836
7
原创 Xilinx zynq嵌入式vitis使用之中断设计
Xilinx vitis中断设计,简单的MIO控制LED中断亮灭,基本的函数方法学习,方便后期复习
2023-11-28 15:01:06
2171
原创 verilog实现1101序列检测
常见的序列检测有循环检测和非循环检测两种,循环检测就是上一个序列结尾可以作为下一个序列的开端,例如110110111001101,在第一个1101到来后会输出1,同时结尾1也可以作为下一个1101序列的开端,因此整个序列可以产生3个高电位;而如果是非循环检测,每一个序列不能重复使用,上个1101出现后,这4位信号被“丢弃”,只有下一个完整的1101出现才再次出现高电位输出,则对于这整个序列来说只输出2个高电位。状态d出现后,下一位输入如果是1,则继续可以作为下一个1101序列的开端,因此可以回到b状态。
2023-09-26 21:12:01
4806
原创 verilog呼吸灯实验-基于zynq7020
cnt_2ms比cnt_2s“变化的速率快”,cnt_2ms变化10个,cnt_2s才能变化一个,因此从最开始开始看,当cnt_2s为0时,cnt_2ms逐渐增加,在这个阶段中,只有当cnt_2ms为0时才是满足cnt_2ms小于等于cnt_2s的,因此灯亮一个cnt_2ms的时间;但看波形图,可以看到led点亮的时间并不是严格对齐cnt_2ms为000或者000 001的,而是错开了一位,我想这是灯必须等下一个时钟到来才能亮的原因
2023-09-15 15:38:58
353
1
原创 安路EG4S20 FPGA开发板学习记录1
这三行语句分别定义了一个常数和两个寄存器,常数t100ms设置为23位长的十进制5000_000,因为板子的时钟是50MHz,这个t100ms用来制造一个100ms的时间间隔,0.1秒亮一个灯。参加集创赛报名了arm的杯赛,用的是安路科技的EG4S20开发板,基于cortex-M0内核。没办法,就从最基础的开始,首先复习了一下Verilog的基本语法,刷了一些HDLbits的题目,然后就跟着硬木课堂的教程开始一点点学。上面这一块不必多说,就是Verilog的模块的开始,定义了输入和输出。
2023-07-11 19:39:32
2200
1
原创 关于colab中连接kaggle、运行数据集时遇到的一些问题
colab与kaggle连接,401 - Unauthorized问题,colab中删除带有文件的文件夹
2022-09-13 21:01:21
1381
1
原创 基于python的selenium库的多页面自动爬取
Selenium Python 绑定提供了一个简单的 API,用于使用 Selenium WebDriver 编写功能/验收测试。通过 Selenium Python API,您可以直观地访问 Selenium WebDriver 的所有功能。selenium为我们提供了一个自动操作浏览器进行爬取功能的功能,通过接入selenium库再加上诸如xpath等方法可以便捷的实现多页面的内容爬取。Selenium 官方参考文档:http://selenium-python.readthedocs.io/ind
2020-07-19 17:27:53
4780
2
原创 导出新闻网页源代码并在其中查找标题
学习了re库之后,我动手实验了一下,代码如下import requestsimport reurl='http://news.baidu.com/'header={ 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0'}response=req...
2020-03-27 13:51:53
844
空空如也
keil编程中Error: L6218E
2023-05-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅