自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (4)
  • 问答 (3)
  • 收藏
  • 关注

原创 matlab和FPGA联合仿真时读写.txt文件数据的方法

在FPGA开发过程中,往往需要将MATLAB生成的数据作为原始激励灌入FPGA进行仿真。为了验证FPGA计算是否正确,又需要将FPGA计算结果导入MATLAB绘图与MATLAB计算结果对比。下面是MATLAB“写.txt”、“读.txt”,Verilog“读.txt”、“写.txt”的代码。.txt中的数据是二进制的。

2025-03-08 10:04:08 322

原创 FPGA实现UART协议的接收与发送

uart_rx.v模块输入输出示意图。uart_rx.v模块输入输出示意图。

2023-07-17 21:26:52 891

原创 高云片内时钟OSC的调用

原本时钟频率:根据不同器件OSC晶振频率取值不同,GW1N-4,GW1NR-4,GW1N-4B,GW1NR-4B,GW1NRF-4B, GW1N-4D,GW1NR-4D 器件为 210MHz,其他支持器件为 250MHz。(18K实际测得是247.2M)。在modelsim上仿真是125Hz,而在逻辑分析仪上观察到的是123.6Hz。说明片内晶振是带有误差的,实际不是250M,而是247.2M。生成时钟频率:通过配置分频系数(2、4、6、8......126、128),可以获得64种时钟频率。

2023-05-05 21:31:04 1169

原创 在MATLAB中对时域信号进行FFT频谱分析

在MATLAB中对时域信号进行FFT频谱分析

2022-09-29 15:15:18 7587

原创 modelsim仿真波形图显示任意汉字和字符

modelsim仿真波形图显示任意汉字和字符

2022-09-10 19:35:07 1162 3

原创 二极管和极性电容的正负测量

1.二极管正负极测量:1.1原理图:1.2PCB看不出正负(贴片实物图看不出正负、插件短引脚为负极)1.3测量方法:万用表调到电阻档,红表笔若接正,黑接负极——几百Ω(或几千);红表笔接负极,黑接正极——几招Ω(或几十兆)。2.极性电容判断正负:2.1原理图(负极是弯曲侧):2.2PCB(负极是小阴影侧)...

2022-05-19 19:03:54 1168

原创 FPGA学习-线性序列机(利用DAC输出电压和波形)

实验现象:实验一:使用testbench测试文件输入任意期望电压值对应的数据,在波形图可以看到输出数据。实验二:将rom输出挂接到TLC5620的数据输入端,观察输出端的正弦波。DA/AD模块:4通道10位串行模数转换(AD)芯片TLV1544;4通道8位串行数模转换(DA)芯片TLC5620;ADC模拟量最大输入3.3V;...

2021-12-18 20:12:58 3495

原创 FPGA学习-PLL锁相环IP核使用

实验现象:调用IP核,配置工作方式,输入为50M,利用PLL生成25M,75M,100M三中时钟,用仿真观察时序,检查PLL对分频、倍频处理的正确性。PLL介绍:PLL——phase locked loop相位锁定环路功能1:对时钟信号进行分频倍频,得到不同频率的时钟信号。例如,在各种通信协议中,USB、PCIE、以太网这类协议,都有各自固定的数据传输频率。USB2.0协议芯片CY7C68013使用片外24M晶振,倍频20倍到480M以供传...

2021-12-18 12:22:47 2591

原创 FPGA学习-FIFO(嵌入式块rom应用,配置IP核FIFO仿真,了解FIFO时序)

什么是FIFO:FIFO(first in first out 先进先出),与C语言中数据结构的队列很相似。FIFO是对存储数据具有先进先出的特性的一个存储器!常被用于数据缓存、高速异步数据交互。分类:FIFO模拟图:testbench测试程序:`timescale 1ns/1ns`define clock_period 20module fifo_tb; reg clock; reg [15:0] data; reg rdreq; reg sc

2021-12-15 22:10:44 2345

原创 FPGA学习-rom只读存储器(嵌入式块应用)

实验现象:将一组固定的数据(三角波、正弦波)存储在IP核构建的rom中。系统工作时,从rom中按照地址顺序读取数据,有modelsim仿真工具观察波形。第一步:第二步:配置ip核rom主要设置数据位宽和地址深度。第三步:rom默认必须要有一个初始化.mif文件(而ram不必要),需要在一开始就先新建一个.mif文件。第四步:生成IP核后,记着把.qip文件设置成Top顶层文件。testbench测试文...

2021-12-15 11:08:10 1226

原创 FPGA学习-配置双口ram(嵌入式块ram应用)

实验现象:用for循环模拟发送数据,FPGA接收后存储在双口ram中。延时一段时间后,从ram中按地址顺序提取数据,用for循环模拟FPGA发送数据。第一步:​​​​​​​​​​​​​​一个“写”地址,一个“数据”端口,当“写请求”wren为高电平时,数据写到地址中去;“读”不需要请求,直接读取就OK。第二步:IP核配置第三步:将右边出...

2021-12-14 19:23:50 1429

原创 FPGA学习-UART接收单字节(边沿检测+发送模块例化+高频采样抗干扰+二维寄存器应用)

UART接收单字节时序图:(实验室环境下):对每一位的中点进行采样最稳定;(工业环境下):有强电磁干扰,每位只采样一次作为电平判定依据是不保险的,需要多次采中间部分,求哪一种电平的概率高,来确定该位电平; 如上图。对于每一位数据,考虑到开头和尾部不稳定,所以忽略掉。只取中间6~11这6次采样结果进行电平概率的判定依据。如6次结果为1/1/1/1/0/1,电平取1;0/1/0/0/0/1,电平取0;1/0/0/1/0/1,电平取0或1都可以;设计思路:...

2021-12-13 15:04:50 3770

原创 FPGA学习-UART串口发送单字节(UART时序分析+真正的FPGA设计看图写代码)

首先看UART发送时序图:要发送一个完整字节,需要“1位起始位+8位数据位+1位停止位”,图上的第11位,是确认一个字节发送完的一位。重点是每一位之间的发送时间需要保持一致,也就是bps_clk的每个高脉冲之间的间隔相等稳定,bps_clk的频率就是波特率。例如波特率为9600,就是1秒内有9600个脉冲,可以发送9600位。因此,发送速率(波特率)需要严格控制,以便稳定发送。发送模块简化图、RTL电路设计图:UART发...

2021-12-12 15:16:40 3983 1

原创 FPGA学习-动态扫描数码管(多路器使用、看图写代码、数码管扫描原理)

仿真波形:遇到了一个比较奇怪的问题,就是clk1K(分频时钟)无波形,但是sel是根据clk1K得到的,而且输出正常。这个地方不清楚是哪里的问题。但在后仿真中可以看到clk1K波形。

2021-12-10 21:52:09 402

原创 FPGA学习-亚稳态产生原理及解决方法

1.亚稳态现象、产生原因:在按键消抖例程中,key_in是外部产生的异步信号,key_in与系统时钟无关。异步信号就会存在这样一个问题:“有可能会使系统时钟采集到不稳定状态,无法确定异步信号的01状态”,而D触发器只认识01。当输入不稳定状态时,触发器的输出会产生振荡,最终会稳定下来,但有可能稳定是0也有可能是1。因此,在对异步信号进行采集时,一旦采集到不确定状态,D触发器的输出就会有两种随机可能。显然,这不是我们希望看到的。2.亚稳态解决方法:用两级寄存器(D触发器)进行外部异步信号的

2021-12-08 21:29:13 2248

原创 FPGA学习-按键消抖(外部信号边沿检测方法设计+状态机复习)

1.按键消抖原理:流程框图:按键内部就是一个弹片,弹片正常状态是弹起的。当没有按下时,由于上拉电阻FPGA管脚输入的是确定的高电平;当被按下时,管脚与GND接通变成低电平。抖动波形分析:理想型波形按下按键时有完美的一个下降沿,释放时有一个完美的上升沿。但实际波形在按下和释放时,都有不超过20ms的抖动。为什么消抖:由于FPGA时钟频率很高,采样很快,所以抖动会被FPGA视为多次按下按键。因此对于这两次抖动不稳定期进行滤波(也就是消抖)是必要的。2.按键消抖状态图分析:..

2021-12-08 17:16:25 1340

原创 FPGA学习-状态机

利用FPGA构建一个状态机控制小灯亮灭,以便理解状态机的实际十几下应用。1.例程介绍:假设有输入数据流,这个数据流会任意输入A~Z或a~z字母,其中某一段时刻会接连输入“Hellow”。现在设计一个状态机,当检测到Hellow时LED灯亮灭翻转。2.设计分析:整个检测过程可以拆分成以下各个状态:1.等待H到来,如果检测到H那么进入2开始检测e,否则一直等待H;2.检测是否为e,如...

2021-12-07 13:19:20 328

原创 FPGA学习 -通过波形图来看阻塞赋值和非阻塞赋值的区别

本文章采用阻塞赋值和非阻塞赋值对比的方式来讨论二者的区别,利用简单的例程+波形图直观查看细小差别。1.模块文件:module block_nonblock(clk50M,rst_n,a,b,c,out);input clk50M;input rst_n;input a; //实现a+b+c=out,拆分成两部。一步是定义d且d=a+b,另一布是out=c+dinput b;input c;output reg [1:0]out; //out

2021-12-05 22:11:19 2203

原创 信号发射+场效应管复习

一个非线性功率放大信号发射电路,复习一下protues和场效应管的知识。1.mos管速成:以左上角N沟道场效应管为例。当左端栅极是低电平时,上端漏极与下端源极是截止的。当栅极为高电平,mos管导通(注意流向)。2.非线性功率放大信号发射电路protues仿真实现。2.1原理参考电路图和最终应该得到的效果:分析:除了电路正常连接以外,应改注意到,两路输入信号是极性的(一路信号延时半个周期),并且占空比均为33.3%。2.2仿真其中一个延时半个周期--5us。

2021-12-05 20:00:04 604

原创 利用FPGA的DDS直接数字合成产生SPWM正弦调制方波

1.原理利用FPGA的DDS产生调制信号,利用计数器产生高频载波三角波,将两路信号通过比较器进行比较,产生调制SPWM方波。1.1DDS基本结构:三个寄存器、两个加法器,第二个加法器可以输出地址作为ROM数据表模块的输入,从而提取ROM地址对应的数据,然后输出。1.2DDS信号产生流程:先是把mif文件生成的波形数据表提前存...

2021-11-27 15:50:19 4230 2

原创 51单片机利用DAC0832产生正弦信号源

1.原理及硬件1.1系统流程:单片机控制DAC0832的片选和寄存器选通引脚,并且对DAC输出波形数据,最终得到DAC输出的模拟量。由于DAC0832输出的模拟量是电流值,因此加一个运放可以得到与参考电压反向的输出电压值,随后加一个反向器就会得到的希望的正向电压,用示波器采集。1.2DAC0832使用说明:1.一个输入寄存器、一个DAC寄存器、一个D/A转换器;...

2021-11-27 14:29:41 17471 6

原创 晶联讯LCD(JLX128128G-610-PC)使用教程

模块介绍:拿到板子,首先可以看到这个是3.3V串行的(如果想改成并行,把R1的0Ω电阻拆下来焊在R2处即可)。板子的串行和并行都是虚拟协议,也就是说只需要接到普通I/O口,保证可以调高或拉低电平即可。例程效果:串行用到的I/O口少(9个+VDD+VSS+LEDA),并行要20个I/O口。本次以串行为实例,用pic驱动LCD。本例程主要用模块内部的字库GB2312,全屏可同时显示8*8个汉字(仅在GB2312中:行数16,列数128),可以根据自己的需求任意摆放汉字位置。/* * File: ..

2021-11-21 20:09:15 1918

原创 从 编译 谈到 编译器

说到编译,不防从编译的本源说起。在说编译前,我们有一点需要达成共识,就是“计算机只认识0和1这两个数字”!在早期的编程是一件痛苦的事,人们需要手动给纸带打点,来表示0和1,以便电脑识别。需要不断向电脑中塞入纸带让电脑识别0和1,把命令传给电脑。我们讲这种由大量的0、1组成的,计算机这种机器可以识别出的语言称为“机器语言”!但是我们想把自己头脑中的想法告诉计算机并让它执行,总不能一直...

2021-10-29 22:37:03 94

原创 Altium Designer 18生成Gerber教程

一、过孔盖油(过孔用油盖上,绝缘性更好。AD不会默认盖油,所以需要手动配置) 按类查找对象,选中所有过孔,然后勾选如下两个选项:二、生成Gerber: 1.1找到Gerber Files窗口: 1.2“通用”选项默认:1.3“层”选项如下: 1.4“钻孔图层”1.5“光圈”勾选...

2021-09-29 18:56:28 6049 2

原创 串口通信问题

1.在“开始菜单”中的“运行”中输入regedit,然后点“确定”,打开注册表编辑器。2.按照上图中的路径找到COM Name Arbiter。然后在右侧“ComDb”上点“右键”选择“删除”。然后关闭注册表编辑器,重启电脑。再次重复刚才的更改端口号的步骤就可以了。删除掉注册表的这个项目是让xp系统重新构建COM端口的列表,这样就可以改掉那些端口被占用的状态。不过如果修改注册表并重启后,仍然有COM口状态是使用中的话,那说明你这个COM端口真正的连接着一个硬件设备的,这种情况下你只...

2021-09-08 15:12:46 468

原创 MAX485芯片收发详解 实现485通信

MAX485是一个八引脚的RS485电平收发器(只能单工或半双工)。内部含有一个输入信号接收器R和一个输出信号驱动器D。485总线上可以同时连接多个MAX485。图片左边引脚全为TTL电平,右边AB引脚为RS-485电平。MAX485逻辑图:...

2021-07-30 11:39:59 57223 15

原创 RS-232(or RS-485)、ch340(or cp2102)的关系

一、首先要知道几点: 1.PC是RS-232电平(简称232),单片机是TTL电平,两者是不兼容的;2.另外,老台式机可能会有DB9串口,但那输出的是232电平信号,所以不能直接与MCU相连,两者需要电平转换! 而ch340、MAX232都是为了电平转换!二、串口原理:现在电脑上基本见不到RS-232串口了,都是用USB总线接口代替了。而ch340、cp2102这类...

2021-07-27 16:17:24 7797 4

原创 浅谈晶振作用功能、晶体和晶振、外部时钟和内部时钟、分频倍频预分频后分频、定时器和计数器

Fosc=frequence oscillate 晶振频率晶振是用来起振的,只是振荡电路的一种,还有自激振荡器、电容三点式振荡器、LC振荡器、RC振荡器......其作用是通电才产生原始时钟频率,这个频率经过频率发生器放大或缩小后,成了各种不同的总线频率。晶振本身是由通电而产生机械振动的,但电感电容组成的谐振回路是电场与磁场的不断转换,而这个频率是固定的,输出的就是固定频率的脉冲信号,石英钟就是利用这种固定频率来计时的。晶振能将直流电能转换成具有一定频率的交流电能。晶振作用功能:晶振为单片机

2021-07-18 22:16:24 18860

原创 PIC中的振荡周期、时钟周期、机器周期、指令周期

时钟周期:时钟周期(CPU主频)==振荡周期,定义为时钟脉冲的倒数(时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时钟周期就是1/12us),是计算机中的最基本的、最小的时间单位。状态周期:(C51)单片机把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。机器周期:计算机中,常把一条指令的执行过程划分为若干个阶段,每一个阶段完成一项工作。每一项工作称为一个基本操作,完成一个基本操作所需要的时...

2021-07-18 19:57:01 3501 1

原创 传输速率相关知识

一般提到时钟周期就是指波特率。如:串口通信时,若协议需要9600波特率,则时钟为9600Hz。单位换算:传输速率计算:上、下行速率:上行速率=上传速率——机房多用;下行速率=下载速率——人们常用。运营商会给个体用户限制上行速率,以避免资源浪费。...

2021-07-18 18:05:46 395

原创 PIC单片机I/O口控制

为什么配置I/O口:I/O端口寄存器复位后默认为输入(输出高阻态);为实现I/O端口功能需要先对端口进行I/O口初始化配置I/O口需要的几种寄存器:ANSELx(模拟选择寄存器):0 = 数字I/O口,1 = 模拟输入口TRISx(数据方向控制寄存器):0=输出模式(Out),1=输入模式(In) PORTx(读取器件引脚电平)LATx(输出锁存器)PORT与LAT寄存器区别:rd port指令脉冲来的时候,管脚端平锁存到port中,也就是说要想获得正确...

2021-07-18 16:29:11 2536

原创 PCkit3.5烧写器直接上手使用方法

1.硬件准备:USB线(连接烧写器和PC)、烧写器、排线(连接烧写器和板子)、板子2.软件准备:Mplab IDE和你需要烧写的程序3.烧写器功能介绍:4.实物连接:5.烧录完成:...

2021-07-18 12:21:44 13380 2

原创 逻辑分析仪原理和使用方法

saleae logic1.2.18:http://www.pc0359.cn/downinfo/81685.html

2021-07-17 22:19:32 1245

原创 SIM7600CE-CNSE 4G模组发送英文短信

首先需要硬件连接好,并且完成拨号上网功能; 设置当地短信中心:AT+CSCA="+8613800755500"+回车,返回”OK”。(移动格式为+861380xxxx500;联通格式为+8613010xxx500,电信卡无法使用!其中 xxxx 是模块里的手机卡的电话区号,百度可以查到); AT+CMGF=1 :设置短信模式为TEXT; AT+CMGS="接收方手机号"+回车,然后会返回:“>”; 把内容输入,一定注意不可以加回车!(这个教程是发送英文短信教程,所以

2021-07-14 17:15:13 1028 3

原创 SIM7600CE-CNSE 4G模块 树莓派/Windows连网指南

树莓派连网:树莓派通电,SIM7600模组USB接树莓派,树莓派通过路由器WiFi上网或者直接接网线(注:第一次必须联网下载minicom,调通网络以后不需要联网直接通过4G模块上网) 下载minicom:输入sudo apt-get install minicom,出现如下成功下载: 检查是否可以正常识别到ttyUSB2:ls /dev/ttyUSB* 通过minicom打开该端口:sudo minicom -D /dev/ttyUSB2 强制上网:AT+CNMP=3..

2021-07-14 15:57:01 2214

原创 PCIE接口

PCIE接口是一种高速串行计算机扩展总线标准。属于高速串行点对点双通道高带宽传输PCIE支持显卡、固态硬盘(PCIe接口形式)、无线网卡、有线网卡、声卡、视频采集卡、PCIe转接M.2接口、PCIe转接USB接口、PCIe转接Tpye-C接口等。M.2接口通道也是一种PCIE接口,主要插支持M.2的固态硬盘。...

2021-07-13 11:19:41 8008

PIC教程及例程、MCC指南.zip

PIC极简教程及多个开发板例程、MCC配置详细指南

2021-09-08

dt5019驱动(485转USB驱动) XPWIN7官方最新版.rar

485转USB驱动

2021-09-08

逻辑分析仪调试单片机、ARM、FPGA数字信号的原理和作用 (1).pdf

逻辑分析仪原理和作用

2021-07-17

逻辑分析仪使用手册.pdf

逻辑分析仪使用手册

2021-07-17

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

TA关注的人

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