- 博客(24)
- 收藏
- 关注
原创 第一篇 硬件篇1[学习-来自 正点原子]
DTR为高电平,则 DTR_N输出低电平, RTS维持高电平,则 RTS_N继续为低电平,此时 STM32的复位引脚,由于 Q1不再导通,变为高电平, STM32结束复位,但是 BOOT0还是维持为 1。而 5V部分的电源还是开启的。然后 RTS置高,则 RTS_N输出低,这样 Q2导通了, BOOT0被拉高,即实现设置 BOOT0为 1。从而进入 ISP模式,接着 mcuisp就可以开始连接 STM32,下载代码了,从而实现 一键下载。首先, mcuisp控制 DTR输出低电平,则 DTR_N输出高,
2024-11-01 15:54:19 368
原创 数字系统的RTL设计{2}
这张图提供了一个指令集的概览,展示了不同指令的操作码和执行的语义。这些指令涵盖了数据传输、算术运算、条件分支和程序控制等基本操作,是构成程序逻辑的基础。通过这些指令,可以构建更复杂的程序和算法。,其中包括了一组指令以及它们对应的操作码(Opcode)和语义(Semantics)。描述了一个简化的计算机指令集架构(ISA)
2024-11-01 10:53:50 348
原创 学习stm32
位带操作(Bitwise Operation)是指在计算机编程中对数据的二进制位进行直接操作的一类操作。这些操作通常用于处理整数类型的数据,包括按位与(AND)、按位或(OR)、按位异或(XOR)、按位取反(NOT)、左移和右移等。
2024-11-01 10:52:39 879
原创 CPU中的主要寄存器:有六类寄存器:指令寄存器(IR)、程序计数器(PC)、地址寄存器(AR)、数据寄存器(DR)、累加寄存器(AC)、程序状态字寄存器(PSW)
程序状态字寄存器用来保存由算术/逻辑指令运行或测试的结果所建立起来的各种条件码内容,如运算结果进/借位标志(C)、运算结果溢出标志(O)、运算结果为零标志(Z)、运算结果为负标志(N)、运算结果符号标志(S)等,这些标志位通常用1位触发器来保存。当执行指令时,CPU能自动递增PC的内容,使其始终保存将要执行的下一条指令的主存地址,为取下一条指令做好准备。在程序执行之前,首先必须将程序的首地址,即程序第一条指令所在主存单元的地址送入PC,因此PC的内容即是从主存提取的第一条指令的地址。
2024-10-31 18:04:51 437
原创 数字系统的RTL设计【1】
IR寄存器,全称为指令寄存器(Instruction Register),是CPU中用于暂时存储当前正在执行的一条指令的寄存器。微码的主要作用是将机器指令与相关的电路实现分离,这样一来机器指令可以更自由地进行设计与修改,而不用考虑到实际的电路架构。它是一种软件技术,用于实现硬件设计,通常存储在处理器的ROM中,实现了一系列底层硬件操作。为高电平时,表示读操作。简而言之,IR寄存器在CPU中扮演着指令的临时存储和解析的关键角色,确保CPU能够正确理解和执行程序中的每一条指令。运算单元,存储单元,有限状态机。
2024-10-31 14:24:53 506
原创 位同步/帧同步
位同步是正确取样判决的基础,只有数字通信才需要,所提取的位同步信息是频率等于码速率的定时脉冲,相位则根据判决时信号波形决定,可能在码元中间,也可能在码元终止时刻或其他时刻。外同步的方法是,发送端发送数据之前先发送同步时钟信号,接收方用这一同步信号来锁定自己的时钟脉冲频率,以此来达到收发双方位同步的目的。接收方利用包含有同步信号的特殊编码(如曼彻斯特编码)从信号自身提取同步信号来锁定自己的时钟脉冲频率,达到同步目的。位同步是数字信号码元时间对齐的过程。实现位同步的方法主要有外同步法和自同步法两种。
2024-10-30 14:36:50 134
原创 CAN(Controller Area Network)总线学习{1}
从线与逻辑的实现来看,结构上是多个晶体管的漏极输出接到一起(输出节点),再接上一个电阻到Vdd。那么输出节点能观察到的电压值就是上拉电阻和这些并联的晶体管的漏极到地的输出电阻的分压。CAN网络的消息是广播式的,即在同一时刻网络上所有节点侦测的数据是一致的,它是一种基于消息广播模式的串行通信总线。节点在发送数据时,要不停的检测发送的数据,确定是否与其他节点数据发送冲突,如果有冲突,则保证优先级高的报文先发送。连接在CAN总线上的设备叫做节点设备(CAN Node),CAN网络的拓扑一般为线型。
2024-10-30 11:30:38 711
原创 时钟信号学习【转载】
因此我们就可以通过设置一种电路,让门控使能信号在通过这个逻辑电路之后,仅仅在时钟低电平的时候进行翻转,而在时钟高电平的时候,不能翻转也就是保持。是固定的就可以算是同步电路,比如, 电路中用了10ns, 5ns, 2.5ns 三个时钟,这三个时钟不是由同一个时钟源分频来的,但是这三个时钟的周期有倍数关系并且相位关系固定:10ns是5ns的2倍,是2.5ns的两倍,之间是整数倍关系;从波形图中可以看到,门控使能信号如果在时钟的高电平的时候开启或者关闭,就会导致产生的门控时钟高电平被截断,变成毛刺;
2024-10-22 16:22:49 753
原创 打包python.py为exe
这将在dist目录中生成一个名为xxxx.exe的可执行文件。运行这个文件即可启动.exe工具。使用PyInstaller来打包。注意路径中不要用中文。
2024-10-16 17:28:35 93
原创 Python库下载常用国内镜像网站
https://pypi.mirrors.ustc.edu.cn/simple/ 中国科技大学。http://pypi.douban.com/simple/ 豆瓣。http://pypi.mirrors.opencas.cn/simple/ 中科院。https://pypi.tuna.tsinghua.edu.cn/simple/ 清华大学。
2024-10-16 16:32:31 410
原创 Matplotlib图的Python代码【转载】
1.散点图large = 22;med = 16;small = 12# VersionScatteplot是用于研究两个变量之间关系的经典和基本图。如果数据中有多个组,则可能需要以不同颜色可视化每个组。在Matplotlib,你可以方便地使用。plt.show()有时,你希望在边界内显示一组点以强调其重要性。在此示例中,你将从应该被环绕的数据帧中获取记录,并将其传递给下面的代码中描述的记录。
2024-10-16 10:48:35 896
原创 pads 个人常用快捷键
ctrl+alt+c 勾选visible Only 既可以关闭不需要显示层,实现查看某一层的功能。显示所需要的层 z 1 ,z2 ,z1-2,z + enter 恢复所有层。查找并选中元件,如SS R10或SS R10.1。查找元件或元件管脚,如S U1或S U1.1。shift +滚轮 左右移动。ctrl+滚轮 缩放放大。置顶某层 L1,l2。
2024-10-15 17:39:57 244
转载 [转载]ARM Cortex-M0 启动过程分析
芯片上电或复位后,cpu首先从中断向量表中读出栈指针(MSP)和入口函数地址(复位向量,即程序执行的起始位置)。Bootloader是由芯片供应商预先编程,有时它位于片上Flash存储器并且与用户程序是分开的(这样用户更新程序也不会影响到Bootloader),而更多的时候它是位于和可编程程序存储器相互独立的ROM中。通常中断向量表会放在启动文件中,那么什么是启动文件呢?启动文件是使用汇编语言编写的,在堆栈建立之后才可以运行C代码,因为C函数调用需要把参数函数返回地址入栈,堆栈没有建立不能运行C代码。
2024-10-14 16:17:37 28
原创 嵌入式、硬件面试必背题(二)
使用自由运行的递减计数器,时钟由独立的 RC 振荡器提供(可在停止和待机模式下工作),看门狗被激活后,则在计数器计数至 0x000 时产生复位,所以在程序中使得该计数器计数到 0 之前进行看门狗复位,程序就可以正常运行)在 STM32 的时钟系统中,LSI 可以与 LSE(低速外部时钟)一起使用,LSE 是一个外部 32.768 kHz 的石英晶体,提供更高的精度,通常用于 RTC 功能。:硬件看门狗定时器可能需要额外的硬件支持,并且一旦触发,通常会导致系统重启,这可能不是在所有情况下都可取的。
2024-08-13 11:43:01 834
原创 RAM:位宽与深度是这样确定的
在ASIC设计中,我们使用FIFO或者RAM的时候经常会用到校验位,例如奇偶校验或者ECC(海明码)校验,当然,也有可能不使用任何校验位。那么我们需要一个深度为32,数据位宽为119bit的ram(cfg_32x119_ram_wrapper),那么实际底层的ram尺寸到底是多少呢?就是32x119 吗?大概率不是。
2024-08-13 11:42:38 484
原创 C位域(bit-field)
位域定义与结构定义相仿,其形式为:struct 位域结构名位域列表其中位域列表的形式为:例:素描述type只能为 int(整型),unsigned int(无符号整型),signed int(有符号整型) 三种类型,决定了如何解释位域的值。位域的名称。width位域中位的数量。宽度必须小于或等于指定类型的位宽度。带有预定义宽度的变量被称为位域。位域可以存储多于 1 位的数,例如,需要一个变量来存储从 0 到 7 的值,您可以定义一个宽度为 3 位的位域,如下:} Age。
2024-08-13 11:42:08 1053
原创 解决MLCC电容啸叫的四个解决方案[转载]
在PCB板中,由于在MLCC两端的电极为焊接,电极间的长度方向的变形(图中蓝色的双箭头)使PCB板表面(图中黄绿色的双箭头)变形,如此反复导致振动。该振动通过PCB板的传导被放大,成为人耳能听到的程度的音压是啸叫。通过缩短电极间的长度,可减轻导致PCB板振动的电极间的变形。如图所示,准备了宽度较电极间宽的类型的MLCC。考虑,输出电压是DC,包括开关频率引起的纹波电压。上图是更具体的示意图,表示施加电压与MLCC变形的关系。电压,则仅产生相应的失真,而如果是有振幅的电压,则使。器的MLCC的振动。
2024-06-06 17:20:31 378
原创 打拍优化时序{转载}
其实master本身也会遵循valid-ready协议,payload_src和valid_src做同样处理就行,即也可以在(valid_src == 1‘d1 && ready_src == 1’d0)时进行赋值,因为此时payload_src输入应该约束保持原始数据。valid_dst:在master发请求(拉高valid_src)时拉高valid_dst,直到当前master没有valid请求并且slave可以接收请求(拉高ready_dst)时拉低valid_dst,表示一次传输完成。
2024-06-06 15:58:27 1345
原创 嵌入式、硬件面试必背题(三)
电阻抽头(Resistor Tapping)是一种在电阻器上设置不同点的接触或抽头,以便可以选择不同的电阻值的技术。这种设计允许一个单一的电阻器用于多种不同的电阻设置,通过改变连接到不同抽头上的点来实现不同的电阻输出。电阻抽头在多种电子应用中都非常有用,特别是在需要调整或变化电阻值的场合。以下是电阻抽头的一些常见用途和特点:可变电阻:通过选择不同的抽头,可以得到一系列不同的电阻值,这在需要微调电阻以匹配电路参数时非常有用。电压分压:在电压分压电路中,可以使用电阻抽头来获得不同的输出电压。通过改变抽头的连接点
2024-05-17 17:47:01 1613
原创 硬件、嵌入式 面试必背题(1)
DMA(Direct Memory Access)是一种硬件特性,它允许某些硬件子系统(如SPI)直接向内存传输数据,而无需CPU的介入,从而减轻CPU的负担并提高数据传输效率。开漏输出(Open-Drain)和推挽输出(Push-Pull)是两种常见的数字电路输出配置,它们在集成电路(IC)设计中用于驱动外部负载或进行双向通信。(两者对于低电平的输出相同,对于高电平的输出不同。:即使数据传输是自动的,DMA通常也会在传输完成时生成中断,通知CPU进行下一步操作,如处理新接收的数据或准备下一次传输。
2024-05-09 20:57:15 1157 1
原创 Altium Designer中比较常用的快捷键
5、对于电源稳定性有要求的,电源线最好能够粗一点,最起码要1.5mm以上,尤其是一些通讯模块的电源。1、画板子之前最好能建立一个工程,把原理图和pcb放到同一个工程里,方便修正原理图导入pcb。4、需要板子切割的一定要在机械层操作,否则加工的时候是识别不出来的,到时候哭都来不及。3、画平常不之前一定要设定规则,否则容易出现一些问题,最后检查的时候也检查不出来。2、一定要养好ctrl+s保存的习惯,否则很难受,别问我怎么知道的。接下来是在画pcb中需要注意的问题。
2024-03-14 11:01:33 215
原创 走线不小于35mil
在电路设计中,"mil" 是千分之一英寸的单位,通常用于表示线宽、间距或其他尺寸。隐形车衣的厚度单位为:mil,英式发音为:[ml],美式发音为:[ml],中文音译过来发音为‘密耳’,是一种非常小的长度单位,意思是‘千分之一英寸’。官方定义,1mil就是千分之一英寸,换算过来,就是0.0254mm(毫米),非常的细(或者说‘薄’),差不多40mil才是1毫米。隐形车衣的mil,是一个非常小的长度(或说‘厚度’)度量单位,即千分之一英寸,一般用来标明丝、线的直径或一些薄片材料的厚度。
2024-03-06 10:14:41 618 1
原创 布尔型变量?
Boolean Variable (布尔变量)是具有两种逻辑状态的变量。它包含两个值:true和false。如果在表达式中使用布尔变量,则基于变量值的真值给出1或0的整数值。若要将整变量转换为布尔变量,如果整数值为0,则布尔值错误;否则,如果整数值不是0,则布尔值为真。
2024-01-02 20:07:12 551
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人