自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 Verilog中乘除法结果不正常——溢出截断的原因

现在r_high_cnt = 6, r_sum_cnt = 10,由于Verilog不太方便表示小数,所以先对r_high_cnt进行乘100的操作。所以当 “6x100”的时候,计算为600,超出了7位位宽的最大值(127),因此发生了溢出截断,只保留低7位的数据。的值,计算600这种加减乘除完全是绰绰有余的,所以最终为我们想要的值。我们把进制换回2进制,可以看到位宽是7位的。但是实验的时候,有的同学写出了这样的代码,即将。随后进行除法计算,即为仿真看到的结果8。回到最开始我的代码。

2025-12-09 11:22:10 312

原创 交流耦合同相放大电路、MAX4466音频放大电路功能详解

后者是为了提供偏置电压,由于麦克风的输出信号很小,为了避免信号分流衰减跑到其他支路(仿真时减小阻值实际输出会变小),所以要将这两个分压电阻的阻值设置得很大,近似开路的状态;而运放的输出是在0~5V之间(看电源连接),如果想要让运放的性能得到最好的体验,那肯定是在输出范围的中值,也就是2.5V左右。需要仔细看的是,R1+R2并不是提供偏置电压,因为是R1的外端接入麦克风。但是这个R3+R4的阻值并不是越高越好的,比如阻值越高,电阻的热噪声也就越高,有可能会对信号产生影响,所以实际阻值的选取应考虑各方面。

2025-11-19 11:18:52 1181

原创 在FPGA中实现频率计方案详解(等精度测量)

常用的频率测量方法有两种,分别是和。在时间t内对被测时钟信号时钟周期N计数,求出单位时间内的时钟周期数,即为被测时钟信号的时钟频率。所以频率测量法适用于测量高频时钟信号。先测量出被测时钟信号的时钟周期T,根据频率f = 1 / T 求出被测时钟信号的频率。所以周期测量法适用于低频时钟信号的测量。由定义可以知道,频率测量法在规定的时间测量周期的个数,当周期越小时,越容易测得周期的个数;周期测量法则是直接测一个周期的时间,当周期越大时,精度也就越高。但是,在实际应用中会有一定的局限性。

2025-11-05 16:55:42 1219

原创 在FPGA中实现DDS方案详解(频率,幅度,波形可调)

DDS技术是从波形相位概念出发,,通过DAC转换成模拟波形,最后通过低通滤波器平滑输出所需频率的波形。下图为DDS的示意流程图。两个重要参数解释::一般为整数,数值大小控制输出信号的相位偏移,主要用于相位的信号调制组成。:是整个DDS的核心,用于控制波形的相位累加,组成完整的波形显示。相位累加器的输入为频率控制字,表示相位增量,其位宽为N。:接收相位累加器输出的相位码,在这里加上一个相位偏移值P,主要用于信号的相位调制。:波形数据表ROM中存有一个完整周期的正弦波信号。

2025-10-27 16:06:51 996

原创 最近两个电路调试的经历与总结(二)

由于Multsim里面并没有这个运放,所以我选择了我以前用过的AD8138运放替代,反正这里只是探究原理(我师兄说ADI公司有个专门的仿真,但是当时为了尽快解决问题,就没有专门去下,后续可以研究研究)。因为我的理解是:没加入地之前,这两个端口输出就是运放内部电路转换后的结果,但是加入了这个地,那就相当于外部介入了这个运放的工作,从而导致输出不对。单端输出是围绕Vocm对称摆动的,由于Vocm为2.5V,那么输出信号的摆幅1.45V,输出应该为1.05V~3.95V之间。按照Vocm的公式来看,正确。

2025-09-25 20:07:23 906

原创 最近两个电路调试的经历与总结(一)

值得思考的是,当我把按键的两端连上时,也就是直接给芯片引脚提供一个3.3V电压,此时晶振是起振的,并且程序也是在这个时候下进去的,那就可以思考一下PA0与VDDA的关系了。我比较否定这种说法,我对他说:“板子出现问题,首先考虑自己的因素,原理图没有问题前提下,PCB只要DRC没有报错,晶振电路布得不离谱,一般就不会出现问题。后面师弟再次找上我的时候,说程序能下进去了,但是“概率很低”,他是这样描述的:在下载的时候不断反复按唤醒按键,程序就能下载,但是得一点一点试,能不能下进程序完全是靠运气。

2025-09-25 11:29:58 1121

原创 什么是握手信号

在数字电路/通信协议里,握手就是两边在数据交换前后通过某些信号“确认”对方的状态,避免数据丢失或冲突。你(设备) :能(ACK);在USB协议里,每个事务除了数据包本身,还要有一个握手阶段,用来确认收/发结果。只有当两者同时为高,双方都把手伸出,那就能握手了,数据成功传输。ACK(Acknowledge):表示数据收到了,请继续下一包。当ready信号拉高,表示数据能接收,我也伸出一只手;当vaild信号拉高,表示数据可用,伸出一只手;快递员(主机):你能接收快递吗?STALL:表示错误。

2025-09-23 15:08:22 440

原创 《信号完整性揭秘》阅读笔记——第三章

如下图所示:传输线上信号的传输是一个瞬态的过程,每一个瞬间信号电压的“浪头”所在位置不同,感受到的“环境”也可能不同,因此传输线局部环境变化(如阻抗变化)会影响信号的行为,并最终稿反映到信号的电压波形中。想象向平静的水面投下一颗石子,石子落入水面的瞬间,水的局部被压缩,石子的动能传递给被压缩的水体,被压缩的水松弛,能量被释放并压缩周边水体,周边的水体重复这一过程。对于PCB上的走线,由于空间结构较长,走线导体的每一部分与周围的导体之间都存在电容,分布在走线的整个长度区间内,所以说传输线的电容是分布式的。

2025-09-16 22:44:27 1064

原创 关于dB这个单位

在电子学领域中,经常会看到dB这个符号,它究竟代表着什么?起初由贝尔提出一种方法用于描述两个功率或者能量的比值:即对原有的比值取 以10为底的对数,单位为一个无量纲单位B,即贝尔。这个定义常用于描述一个放大器的功率放大倍数,适用于任何以功率、能量为单位物理量相互之间的比值。但是贝尔这个单位实在有些大了,比如一个功率放大器的功率增益为1000倍时,我们说它是3B。因此引入了分贝dB这个概念。

2025-09-16 10:58:47 1510

原创 《信号完整性揭秘》阅读笔记——第二章

对于某个频率分量,如果其频谱幅度足够小,以至于我们可以把它对波形的贡献忽略掉,那么我们就可以不必考虑它的影响,这就是定义信号带宽的根本原因。使用有限带宽的频谱来代替无穷宽的频谱,进而得到一个对原信号的可接受的近似,对工程应用更具有实际意义。而双边谱中,把每一个具有物理意义的频率分量用两根谱线表示出来,其中一个是正频率分量,一个是负频率分量。可知,各次谐波的幅度一定是一条包络线的离散取样,该包络线表现的是连续谱特征,为了得到包络线,以连续频率f代替离散频率值。在双边谱中,正负频率分量之间也存在固定的关系,

2025-09-15 23:00:31 369

原创 《你好,放大器》阅读笔记——第二章

本文主要介绍了运算放大器(运放)的关键参数及其影响。内容涵盖输入失调电压、失调电压漂移、输入偏置电流、输入失调电流等直流参数,以及噪声指标、输入/输出电压范围、共模抑制比和开环电压增益等交流参数。重点分析了这些参数的定义、对电路性能的影响及相应的解决方法,如选择低失调运放、增加交流耦合电路、优化外部电阻配置等。在噪声分析部分,详细阐述了1/f噪声和白噪声的特性,并给出了噪声有效值的计算方法。文章还讨论了运放在高精度应用中的选型原则和设计注意事项,为工程师在电路设计中提供了实用的技术参考。

2025-09-09 12:15:41 1057

原创 modelsim无法读取.mif文件 # ERROR: cannot read ../../mif/xxx.mif.

我先看.mif文件本身,是否因为我的改动出错了,因为野火提供的代码与我需要的位宽和深度并不一致,所以我进行了改动。Vivado的rom所需要的文件是.coe格式,我是直接使用的一个波形生成器的小程序就直接生成.coe文件了。最后我找到野火提供的工程,进行测试,一开始进行原工程测试是没问题的,但我修改了.mif文件后,野火的工程也不能用了。这里看的是野火提供的代码。我首先排查的是代码本身与tb文件的问题,根据代码仿真看是哪一步出现了问题,最后排查出来是rom没有输出。原因是.mif文件的路径问题,经过测试,

2025-08-27 14:24:29 393

原创 焊接与测试的自我反思

判断2,3号引脚是否短接,可以看R1两次是否短接不要老想着制造商的制作工艺问题,多想想是不是自己没焊接好,有没有虚焊。就算一开测得R1短接,但仔细分析,这个IO口是能承受3.3V的电压的,电阻不会爆,芯片也不一定会坏。结果测来测去搞了四个小时,不照样是虚焊的问题吗...这种小封装的芯片,用风枪吹了后,多半还是得拿焊笔补一下。看虚焊一个很直观的方法,就是直接平着看引脚,看是否悬空。如果只是单纯的拿万用表去测引脚是否短接,根本没意义!焊没焊上万用表都测的是连通的!如果没连通那才是奇了怪了!拿万用表测是否短接,是

2025-07-11 16:53:20 207

原创 高速PCB设计注意事项

来自B站嘉立创六层板入门教学视频的PPT。电源层内缩,优先40mil。参考:嘉立创EDA官方。

2025-06-28 10:31:53 282

原创 25年研电赛个人经历记录与经验总结

最后的最后,我把目光转移到了风扇那一块,我们以前也用过风扇,但大多都是12V的,我抱着试一下的心态用万用表测了一下电压,居然是5V的,能够供电。最开始并没有想过使用串口屏,而是直接在信号发生器已有的框架上进行实现,但由于我们的个人能力实在有限,此前也没有接触过LVGL+RTOS,两者似乎又嵌套在一起进行编程,没有理清楚了按键值获取以及在如何计算的过程,再加上做到这里的时候离竞赛截止只有不到两个星期了,还有很多事情没有完成(最后调试也会花很多时间),所以最终决定使用串口屏进行上位机的数据发送。

2025-06-24 11:42:42 2057 1

原创 在Vivado仿真中,发现数字为2147483648

最近在编写一个项目的时候发现了一个问题。为什么仿真的值是2147483648?而我设置的明明是更大的值。下图是我设置的参数。后续发现是位宽的原因,由于之前为了方便,总是没有写清楚位宽。但是当数字大到一定的程度后,就会出错(可能有最大限制)

2025-06-03 17:40:39 185

原创 在实际应用后,关于FIFO的一些注意事项

2.在实际应用中,当FIFO设置为一直写,ADC的时钟是20MHz,当输入信号频率为10K的整数倍时,ADC采集数据正常,但当把信号往上调一点点或往下调一点点,ADC采集的数据会很奇怪,并且绝对不是正常的改变。所以建议不要将写一直拉高,应根据实际需求,完成对FIFO的写逻辑编写。本次FIFO的应用场景是:将10位ADC采集的数据进行高位补零,使用FIFO进行数据储存,FIFO设置为同步FIFO,数据输入和数据输出都为16位。1.在进行FIFO中,最好将时钟进行偏移后再处理,否则会出现很大的毛刺。

2025-05-07 21:18:15 252

原创 为什么10位ADC采集的数据一直是512的幅度的直流信号

只是跳线帽用0Ω电阻进行功能的实现,但是在给SMT封装时,这四个电阻在硬件上全部连接,也就是说,每条电路都是通的。本次测试时,由于前端只有一些简单的电阻电容,没有运放加入,就理所当然认为信号输入引脚正确从而ADC的输入引脚也正确,从而花费了大量时间检查其他电路!也就是说,参考电压不仅连接到了VIN-,同时还与VIN+与信号输入连接,则不管输入怎么变化,都会被ADC1_REF钳位到1V,得到的也就是1V的直流信号,则VIN+与VIN-的差值为0。并且,不管如何改变信号发生器的输出,得到的结果都是一样的。

2025-05-07 21:08:38 558

原创 为什么我的STM32程序下载进去,不运行呢?(没有复位按键)

但是我现在使用的板子并没有设置复位按键(因为工程的需要,需要简化,而且不能有按键),着可怎么办呢,最后根据师兄的指导,按照以下进行设置即可解决这个问题。我以为是代码编写的问题,于是把代码简洁一些,只使用串口1的收发回环功能,结果还是不行。当我百思不得其解的时候,我的师兄建议我用debug试试,看看程序是否卡在了某一步。,在完成了对应的代码编写后,下载进板子里面,使用串口调试小助手,却始终没有数据。于是我将代码最简化,只通过串口1发送一个固定的数据,但依旧没有问题。这个时候才恍然大悟,原来是没有复位。

2025-04-21 22:03:54 1514

原创 使用HAL库完成STM32F407ZET6的两个串口回环

在这个实验中,串口3的RX与TX是连接在一起的,所以串口3发送的数据也会被串口3接收,当串口3接收后进入第二个if语句中,这里选择将串口3接收的数据,通过串口1进行发送,串口1是与上位机连接的,所以最终可以在上位机看到接收的内容。最近一个应用场景是:使用串口完成FPGA与MCU通信,这里用到两个串口,分别是USART1和USART3,串口1与上位机通信,FPGA与MCU的串口3连接。为了测试,设计了一个回环实验,即:串口1接收上位机发送的数据,串口3将接收的数据发出并通过串口3接收,串口1再发送给上位机。

2025-04-21 21:45:09 660

原创 Error (10228): Verilog HDL error at sys_pll.v(39): module “sys_pll“ cannot be declared more than onc

在原文件编译时,没有出错,加入串口文件后,报了这样的错。串口文件中并没有 pll的问题。现有版本为18.1,在往17.1版本的quartus添加.v文件后,报了一个这样的错。已知程序很简单,只有一个pll的ip核和四个led闪烁的程序,所加程序为串口发送功能。最后在将ip核删除后,重新添加ip核,错误解决。

2025-04-18 15:37:31 334

原创 关于LDO与DCDC电源(粗浅认知与比较)

在同一个芯片/电路中把buck和boost串起来,就是buck-boost converter,就能做到既可以降压又可以升压了。所以压差越大,效率越低 --> 输入功率:10W/(5/12)=23.8W。输入电流23.8W/12V=2A ,电流比DCDC方案大了一倍。DCDC方案:输入功率为 10W/80%=12.5W --> 输入电流为12.5W/12V ≈ 1A。假设12V-5V的应用场景,若需要输出功率为5V*2A=10W的输出。不适合输入高压差,大电流的场景,这会导致芯片本身的发热十分严重。

2025-04-02 16:24:40 613

原创 最近的一些电路设计的感悟(自用)

②STM32的IO最多在3.3V左右,如果要进行电压测试的话,是不能直接输入的,就算是3.3V(FPGA电压)也不合理,满量程测量也不好,最好的方式是分压后再进行测量。因为除了一些特定的引脚(电源,JTAG)其他基本全是IO口,也就可“想接到哪就接到哪”,比如要将STM32的FSMC接口接入FPGA,以便作为后续的通信时,就可以现在PCB中进行走线绘制,怎么理线顺就这么来。2.STM32的设计是没有FPGA这么便捷的,因为STM32对应的引脚的功能都是固定的,不能把A功能的信号接到B引脚上。

2025-04-01 14:40:08 318

原创 画一个48引脚的元件封装

1号焊盘已经确定,技巧是计算12号焊盘坐标,y坐标相等,x坐标为-2.75+0.5*11=2.75mm,然后直接水平等距分布即可。1号引脚y坐标为:-E1/2-(E-E1)/2/2,即-3.5-0.5=-4mm,13号引脚x坐标为:D1/2+0.5,即3.5+0.5=4mm。24号引脚y轴坐标为:-2.75+11*0.5=2.75mm。13号引脚y坐标为:-E3/2,即-2.75mm。1号引脚x坐标为:-D3/2,即-2.75mm。复制13-24号焊盘,参考点选择12号焊盘中心。剩下的以37-48为例。

2025-03-12 16:30:05 2045

原创 备赛蓝桥杯的一些笔记(自用,国二,已完结)

此原理图,上方是继电器,下方是滑动变阻器(最好放在板子边缘)1.继电器内部有线圈,应该设置静止铺铜区域。3.离散分布的快捷键是 shift+p。5.电解电容旁可加入一些地孔。2. 模拟量用圆弧走线。4.铺铜应设置为直连。

2025-03-11 10:03:53 370

原创 NMOS与PMOS的应用区别

当NMOS管打开时,芯片的引脚并没有直接与GND相连,没有与其他元件共地,可能会出现通信混乱的问题;当NMOS管关闭时,由于+5V是没有元件控制,直接连在芯片上的,+5可能会通过IO口直接流出去(漏电流),使芯片处于一个未知的状态,这两处都是不合理的。而当使用PMOS管就没有这种情况了,首先芯片的引脚直接连在GND上,可以一直与其他器件处于共地状态,而电压也能通过PMOS管进行控制,完美解决了上述问题。两者区别:PMOS管的Rdson与价格都会高于NMOS管,市面上NMOS管的型号远高于PMOS管。

2025-03-05 17:05:52 747

原创 图形法快速记住PMOS管与NMOS管

NMOS管的箭头是小写n的顺序,PMOS的箭头是小写p的顺序。虽然PMOS可能有些牵强,但只需要记住NMOS管,另一种就是PMOS管。将需要辨认的竖直放置,G极在左边。本文只用作本人个人学习。

2025-03-03 21:53:26 419

原创 简易单片机+5V,3.3V供电输出接口电路设计

这是理想状态,但由于G极是由单片机引脚控制的,当我们没有给单片机指令的时候,此时引脚可能会处于不定态(这与单片机的IO口输出格式有关),所以VO1可能一会输出5V,一会输出0V,LED也可能会不断的闪,此时这个电路是有缺陷的,而且还很严重。当将电阻按上图连入电路图后,此时R21是作为一个上拉电阻存在的,当P_CONTROL1为不定态时,可以靠R21,将G极的电位钳制为高电位,对应的VO1为0V,LED熄灭。要求:通过给定器件完成+5V,3.3V的供电输出设计,对外供电时,对应的指示点亮。

2025-03-03 21:43:27 2245

原创 LCD背光控制电路

题目放一个三极管在这,肯定是利用三极管的导通与截止的特性来控制LCD_BLA信号。LCD_BLA为控制LCD背光亮灭的引脚,高电平亮,低电平灭,那其实就是控制LCD_BLA,BL_CONTROL为单片机引脚,用于控制LCD_BLA,当BL_CONTROL为低时,三极管导通,LCD_BLA拉高,LCD背光亮;当BL_CONTROL为高时,三极管截止,LCD_BLA拉低,LCD背光灭。的作用,那么BL_CONTROL应作为基极,LCD_BLA作为集电极。本题来源于第十三届蓝桥杯EDA省赛。

2025-02-28 20:12:36 1035

原创 简易蜂鸣器电路的搭建

当BUZ由低电平变为高电平的一瞬间,PNP截至,此时蜂鸣器由于电感的特性,会产生一个向下电流(可以理解为阻止这个的改变)。仅看电流可能不大,但此时电路处于开路状态,由U=IR公式,此时可能会产生几十上百V的电压,极可能损坏二极管或整个电路。由题目所给器件进行判断,R8阻值为1K,又有一个PNP型三极管,那么R8作为限流电阻使用。BUZ与单片机引脚直接相连,驱动电路的电压应由3V3提供,通过三极管控制,传输进蜂鸣器中。由电路分析得,BUZ低电平时,PNP导通,蜂鸣器工作;由给定器件设计一个蜂鸣器驱动电路。

2025-02-26 11:36:19 712

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除