自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LTM4622双路电源芯片的相关测试

2.如果输出电流不是特别大,例如只有1A左右,又不想加散热,那么最好降低输入电压,实测1A,1.8V输出,5V输入情况下,即使不加散热,芯片温度也会保持在30度左右。4.测试结果,当输入为5V,输出1.8V,2.3A电流时,芯片明显发热,并且输出电压也会有所下降,负载超过2.3A时,输出异常PDOOD引脚拉低。这个引脚可以作为输出正常的指示信号,当负载电流过大,输出为低,正常输出时为高。1.如果需要输出接近芯片极限的电流,且对输出电压精度有要求,那么需要输入的电压高一些,但是发热量也比较大,需要外加散热。

2024-09-05 17:51:13 394 1

原创 STM32读取at24c256数据异常

如果输入输出来回切换过程中不及时,会导致主机输出高电平,从机输出低电平(或者主机输出低电平,从机输出高电平),导致引发总线短路的问题。1.测试STM32读取at24c256时发现读出来的数据和写入的数据不一致,我使用的是原子阿波罗开发板,主控芯片H743。仲裁过程中,一个输出高电平,一个输出低电平,也会造成短路的问题。使用 开漏输出 可以兼顾输入输出的同时,由于外加了上拉电阻才产生的高电平,就可以避免短路的问题。4.突然看到iic硬件初始化时,引脚模式都设为了推挽输出,读取数据时,推挽输出是有问题的。

2024-08-28 17:58:47 262 2

原创 FET场效应管的相关知识-MOSFET

可以看到MOS管的控制端一般需要一个较高的电平,我们常用的控制类IC都是3.3/5V电平,无法充分的将MOS管打开,我们看下面参数,不同的Vgs压差会影响Rds内阻,也就是说Vgs压差越大,内阻越小,功耗越低。要驱动大容量MOSFET需要提供短时瞬间大电流,并在沟道开通后维持合适的栅源电压(10~15V),如果用普通控制芯片或单片机直接驱动,输出电流不够,输出电压也没有这么高,所以需要驱动器。如下图为一款mos管驱动器,我们可以看到他可以有6A的电流输出能力,宽工作电压4.5V-18V.

2024-08-23 16:23:15 222 2

原创 晶体管电路设计学习(二)增强输出的电路

因此,为交流成分的输出信号Vo也与R的值无关。总之,即使改变负载电阻的值,输出电压V0也总是一定的(为vi),所以可以认为射极跟随器的输出阻抗几乎为0。该电路的设计方法是选择符合输入输出电流的晶体管(使用在数据表列出的互补对–即特性一致的NPN与PNP的对管)和在偏置电路上晶体管的基极电流(最大输出电流的1/hr),并使该电流按可以忽略的大小那样来进行流动。与在第2章所示的共发射极放大电路不同之处,在于信号是从发射极取出的,且没有集电极负载电阻Rc(该电阻在共发射极电路中是决定放大度的重要的电阻)。

2024-08-20 10:16:57 703 1

原创 晶体管电路设计学习(一)放大电路的工作

输出信号uo的振幅(波形上下之间的值)为5V,这个电路的电压放大倍数A.为5。首先,在图2.1所示的电路中,基极的直流电位V(为”的直流部分,或者没有输人信号时的基极电位)是用R1和R2对电源电压Vcc进行分压后的电位(参见照片2.3),所以,流进晶体管的基极电流的直流成分是很小的,可以忽略,则。在图2.30的电路中,由于是将集电极电阻与发射极电阻取同一值,所以由集电极取出的反相输出的增益为0dB,与由发射极取出的正相输出信号的大小相一致(在发射极出现的信号大小与输入信号相同,就称增益为0dB)。

2024-08-19 15:54:41 759 2

原创 时钟缓冲器的相关知识

时钟缓冲器是比较常用的器件,其主要功能作用有时钟信号复制,时钟信号格式转换,时钟信号电平转换等。

2024-08-12 14:10:07 440 2

原创 LDO(低压差线性稳压器)相关知识(二)

1.关键参数比较重要。

2024-08-07 15:59:02 114 1

原创 TVS管(瞬态电压抑制二极管)的了解

TVS即Transient Volatge Suppressor,中文名称:瞬态电压抑制二极管,又称雪崩击穿二极管。但在通常情况下,我们称之为TVS二极管。其在电路中的作用主要是保护敏感电路,免受高电压瞬变损坏的组件。其中,大部分用于端口的保护,防止端口瞬间的电压冲击造成后级电路的损坏。其中高压瞬变的主要来源是静电放电,电气快速瞬变和浪涌事件。

2024-08-07 11:19:39 1109 1

原创 LDO(低压差线性稳压器)相关知识(一)

LDO(low dropout regulator,低压差线性稳压器)。这是相对于传统的线性稳压器来说的。传统的线性稳压器,如78XX系列的芯片都要求输入电压要比输出电压至少高出2V~3V,否则就不能正常工作。但是在一些情况下,这样的条件显然是太苛刻了,如5V转3.3V,输入与输出之间的压差只有1.7v,显然这是不满足传统线性稳压器的工作条件的。针对这种情况,芯片制造商们才研发出了LDO类的电压转换芯片。如下为三端稳压器7805下面为LDO芯片ams1117。

2024-08-06 16:47:06 828 1

原创 DDR3的使用(五)利用XILINX MIGIP核(native)读写DDR3—AXI接口

我们在生成mig ip核控制DDR3时有一个选项,用来生选择生成IP核的类型,如果勾选则生成AXI接口,否则接口类型是native类型:那么什么是AXI接口,他有什么优势呢?一.AXI 的英文全称是AdvancedeXtensible Interface,即高级可扩展接口,它是 ARM 公司所提出的 AMBA(AdvancedMicrocontroller Bus Architecture)协议的一部分。

2024-08-02 16:42:39 1168 1

原创 MindMaster的学习(一)建立项目生成思维导图

MindMaster主要是用来做思维导图,当然也能直接生成PPT和甘特图,使用起来非常方便,简单分享下。5.给主题编号,我们选中中心主题,点击编号按钮可以看到子主题被编号了。1.安装软件,这个随便搜一个破解版,有的就免安装,直接打开就能用。其余的都很简单,可以一个个试一下。这个看起来还是非常清晰明了的。

2024-08-01 17:11:36 252 2

原创 DDR3的使用(四)利用XILINX MIGIP核(native)读写DDR3—IP核信号分析

我们这一节继续结合仿真波形和逻辑分析仪测试波形来分析下MIGIP核的各个信号使用,这里主要说的是用户端的信号,这些信号直接与ip核进行交互,只有正确使用才能按我们的要求来读写数据。1.我们先打开modelsim仿真软件,查看下example的仿真波形:modelsim仿真波形12.通过官方仿真波形我们来做一下初步分析: DDR3读写指令信号。

2024-08-01 16:47:58 796 2

原创 Project的项目管理学习(一)建立项目生成甘特图

我们每天面对需要处理的事务越来越多,做好规划,才能有条不紊的推进执行。4.可以看到,我们主要去两个城市,北京和西安。北京的景点有故宫,颐和园,鸟巢,长城。西安的景点有兵马俑,大唐不夜城,城墙,爬华山,陕西历史博物馆。然后分别规划每个景点的时间,但是发现规划的时间未包含周六周天,这和我们出游的实际情况不同,我们要新建日历,把周末也包含进去。6.划分好任务后我们要确定时间,整个出游任务我们定为15天,八月一日到八月十五日。7.点击更改工作时间,添加日历,将周末添加到新的日历中去。

2024-07-28 15:01:33 444 1

原创 DDR3的使用(三)利用XILINX MIGIP核(native)读写DDR3代码分析

这里重点讲下37行,{(MEM_DATA_BITS/8){rd_cnt}}中MEM_DATA_BITS=512,所以也就等效于{64{rd_cnt}},意思就是64个rd_cnt,rd_cnt是8位数据,所以{64{rd_cnt}}就是将rd_cnt复制64次连在一起,一共512位。2=1600M,我们逻辑代码使用mig ip给的ui时钟位200M,1600/200=8,也就说ddr3接口处数据速率是我们逻辑代码处速率的8倍,如果速率要一样,那么接口处位宽为64位,我们只需要给一个64。

2024-07-25 22:29:35 525 1

原创 DDR3的使用(二)利用XILINX MIGIP核(native)读写DDR3

如下图,1处为给ddr3芯片的时钟,我们使用800M,2处comporment表示是芯片颗粒,下拉菜单里有其他选项,表示内存条。然后我们将写入的数据读出来,我们先发出读请求,当rd_burst_data_valid拉高时,表示读取数据有效。可以看到在1处我们发出了wr_burst_req,当wr_burst_data_valid拉高时我们开始往芯片里面写数据,每次数据累加1,直到7f为止。到这里我们就初步完成了读写实验,但是代码逻辑是怎样的,我们后面再分析,进行仿真实验。我们使用的芯片位ddr3。

2024-07-25 16:09:41 750 1

原创 DDR3的使用(一)XILINX MIGIP核里面的时钟结构

这里设置的参数就是 MIG 的PHY 接口对DDR3的时钟,也就是DDR3芯片实际跑的IO时钟频率,它由system clock(主时钟)倍频而来,最大频率不能超过DDR3 和MIG支持的最大频率中的最小值,如:我们的DDR3芯片最高支持933Mhz的IO时钟,我们使用的FPGA芯片的MIG最高只支持800Mhz的时钟,所以这里我们选择800Mhz(当然也可以选择比这个小)。4.)此处时钟要给到ddr3芯片,具体给多少,要关注两个,一个是fpga支持的时钟频率,另一个是ddr3芯片能跑到的时钟速率。

2024-07-24 16:39:35 1698 1

原创 SDR及DDR内存相关的各种频率总结

我们总结下动态存储器的各种时钟频率,为后面使用打下一个基础。

2024-07-24 11:15:34 1075 1

原创 quartus联合modelsim仿真

2.生成testbench文件模版 在菜单栏依次点击processing>start>start testbench template write后会在modelsin文件夹下生成testbench模版。5.在quartus中启动仿真 在菜单栏点击tools>run simulation>rtl simulation后启动modelsim。可以看到代码仿真后的结果和我们的设计一样。这里主要记录下仿真流程,testbench编写语法后面再详细介绍。我们记录下quartus联合modelsim仿真步骤。

2024-07-23 15:08:44 157 1

原创 FPGA读写操作SRAM_CY7C1051DV33

总结下,就是读写时间不能小于10nS,也就是最高频率100M,所以我们程序设计按100M时钟速率进行设计。注意,读写时,控制信号按下表进行设计。我们可以看到,在计数器delay分别计数到999 1999和2999时刻进行了写入,读出和比较。可以看到,写入数据和读出数据一致,并且led一直为低。手上有一块sram需要验证下功能是否正常,我门通过fpga来进行读写测试。时序图中读写时间都为一个时钟周期也就是10NS,我们使用芯片的极限速率。2.我们大概画下时序图,整理下思路。4.我们进行上板测试看下。

2024-07-23 11:12:37 453 1

原创 FPGA GT 高速收发器的一些认识(一)

FPGA内部的高速收发器一般称为GT(GT的意思是Gigabyte Transceiver),速度根据器件的不同能够支持的速率也不相同。在Xilinx 7系列的FPGA中,按支持的最高线速率排序,GTP是最低的,GTZ是最高的。例:假设线速度需要跑到1G,那么我们FPGA内部逻辑就需要跑到1GHz,才可以对外发出1G的bit流(即使采用DDR的方式发出,也需要内部500MHz)。下面简单介绍一下FPGA内部的高速收发器(主要以Xilinx的A7 FPGA为例,其他的“大概”大同小异)。

2024-07-16 16:00:32 944 1

原创 DDR3 DIMM 内存条硬件总结(四)

我们前三节讲到了ddr3的SO-DIMM内存条的相关知识,ddr3的SO-DIMM内存条应用在笔记本电脑,或者一些嵌入式领域。3.除了以上差异,dimm卡其余相关知识点可以参考so-dimm。通过这四节内容我们就把ddr3相关的内容整理的差不多了。以上是ddr3的dimm内存颗粒测试工装。可以看到,dimm卡共有240pin。2.与SO-dimm的比较。1.我们看下他的管脚定义。

2024-07-16 10:41:06 275 1

原创 DDR3 SO-DIMM 内存条硬件总结(三)

2.可以看到,ddr3内存条总位宽为64位,内存条的尺寸也做了规定,为67.6mm*30mm,总pin为204脚。组成内存条容量支持256MB, 512MB, 1GB, 2GB, 4GB, 8GB,也就是说ddr3单内存条最大能买到8GB的,不可能再大。我们可以看到上面的内存条图片,他上面标识为B类卡,我们看下上面列表,B类卡最大4G,我们使用的是2GB的大小,所以组织形式也唯一,为256M。以上是对前两节内容的补充。16,2Gb大小,8位。3.ddr3内存条被分为5种形式,分别为A,B,C,D,E,F。

2024-07-15 14:46:32 688 1

原创 DDR3 SO-DIMM 内存条硬件总结(二)

我们看到第二行2GB 1RX8 PC3-10600S-9-11-B2 具体含义上一节已经讲过了,我们深挖下1R*8,他的含义是排列一行,每颗芯片是8位的,什么?难道有两行排列不是一行的?是的看图,这个就是2R的样子.我们可以看出,若是16位芯片,我们可以用四片组成64位,如果是8位数据位宽,我们可以使用8片来组成64位位宽,例如上图就是8颗颗粒的内存条。这里就先看到这里,涉及到更多的内容我们后面继续总结。

2024-07-09 15:23:46 367 2

原创 DDR3 SO-DIMM 内存条硬件总结(一)

最近在使用fpga读写DDR3,板子上的DDR3有两种形式与fpga相连,一种是直接用ddr3内存颗粒,另一种是通过内存条的形式与fpga相连。简单的说就是把地址相同的位连在一起,数据线依次排列,单片位16位,4片的话就扩位展为64位。8=256M.看看手册总容量为4Gb,这里意思是4Gbit,我们计算的256M,是按组织形式16位的,如果换算为bit则,256。这个版本的意思其实是内存条的不同组织形式,每个版本的特征与将来PCB布局布线、和内存条的频率时序都有关系,设计之初就要确定好。

2024-07-09 10:08:46 751 1

原创 RT-Thread Studio与CubeMX联合编程之rtthread启动

9.我们看到rt_hw_spi_bus_init中用了stm_spi_ops,stm_spi_ops包含了spi_configure,其中又用了stm32_spi_init,1处为软件协议层面上的设置,就是MX_SPI1_Init中的设置.5.第一个函数rt_hw_interrupt_disable关闭中断,没啥可以看的,第二个rt_hw_board_init进去看下,他进了board.c文件,直接进hw_board_init函数。继续往下看,有个自动初始化,将对spi进行初始化,继续顺藤摸瓜。

2024-07-05 16:42:39 488 1

原创 RT-Thread Studio与CubeMX联合编程之rtthread stm32h743的使用(十二)spi设备fal驱动的使用

我们要在rtthread studio 开发环境中建立stm32h743xih6芯片的工程。8.我们测试下性能,性能将会测试 Flash的擦除、写入及读取速度,同时将会测试写入及读取数据的准确性,保证整个 Flash 或整个分区的 写入与读取 数据的一致性。fal驱动的使用是建立在sfud驱动之上的,所以我们在上一节使用的工程基础上继续实验。指令为fal bench 4096 yes。

2024-06-30 15:59:49 256 1

原创 RT-Thread Studio与CubeMX联合编程之rtthread stm32h743的使用(十一)spi设备SFUD驱动的使用

可以看到我们就可以通过sfud指令读写flash了。3.在工程中打开cubemx,设置串口及时钟,设置内容如上一章节,spi的管脚设置需要参考原理图。7.编译下载,发送list device指令查询下设备,如图可以看到有spi设备了。8.在applications文件夹下添加程序,注意,flash片选脚为G10.1.建立新工程,选择相应的芯片型号及debug引脚及调试器。9.编译下载可以看到打印信息,flash已经被检测到。10.读取下flash数据,可以看到读取成功。2.编译下载,可以看到串口打印正常。

2024-06-28 23:23:58 537 1

原创 RT-Thread Studio与CubeMX联合编程之rtthread stm32h743的使用(十)i2c设备使用

2.打开cubemux,设置外部时钟及串口外设,其余设置参照前面rtthread stm32h743的使用(一)新工程建立,使能两个串口,串口1为调试串口,串口2为我们的测试串口。我们要在rtthread studio 开发环境中建立stm32h743xih6芯片的工程。#define AT24Cxx_I2C_NAME “i2c3” /* PWM设备名称 */可以看到写入的值与读出的值一致,eeprom的读写就可以了。1.建立新工程,选择相应的芯片型号及debug引脚及调试器。

2024-06-26 12:26:26 827 1

原创 RT-Thread Studio与CubeMX联合编程之rtthread stm32h743的使用(九)RT_WEAK报错

我们要在rtthread studio 开发环境中建立stm32h743xih6芯片的工程。将RT_WEAK void rt_hw_board_init()改为。发现错误和警告都消失了。

2024-06-17 11:19:37 282 1

原创 RT-Thread Studio与CubeMX联合编程之rtthread stm32h743的使用(八)CAN设备使用

可以看到数据已经发送至CAN分析仪,帧参数和我们设置的一样。我们的CAN就能正常使用了,这里我们是将H7的FDcan当做标准can来使用的,因为目前所用的电机之类都还是标准can,后面遇到fdcan我再继续探索。在1处我们声明外设初始化函数,调用mx中生成的初始化函数进行外设初始化,2处我们声明两个结构体,一个作为句柄使用,一个进行参数初始化使用。3处我们对发送帧参数进行初始化,4处我们调用发送函数发送数据。我们要在rtthread studio 开发环境中建立stm32h743xih6芯片的工程。

2024-03-08 15:29:12 1065 2

原创 RT-Thread Studio与CubeMX联合编程之rtthread stm32h743的使用(七)dac设备使用

可以看到随着设置值的改变,输出电压也会跟着改变,这里我们的DAC外设就验证完了,我们依然使用了rtthread的内核,但是用的hal库直接操作的,主要原因是rtthread的外设驱动对H7系列支持还不是很完善。我们要在rtthread studio 开发环境中建立stm32h743xih6芯片的工程。2.生成工程后打开mx进行配置,时钟配置如前所讲,不在赘述。3.更改mx文件夹下的main,c文件。测试值为0.81V,和理想值基本一样。6.我们在更改下代码看看。1.我们还是先建立工程。

2024-03-07 11:10:05 851 1

原创 RT-Thread Studio与CubeMX联合编程之rtthread stm32h743的使用(六)adc设备使用 vofa+显示

我们要在rtthread studio 开发环境中建立stm32h743xih6芯片的工程。2.更改代码,为什么要这样改一下,这个需要看一下串口软件图形化显示的数据格式,这样才能正常按图形显示。可以看到模拟量可以被实时进行采集,非常直观。

2024-03-06 17:33:13 635 1

原创 RT-Thread Studio与CubeMX联合编程之rtthread stm32h743的使用(五)adc设备使用

这里adc外设就能够正常使用了,我们这里没有用到rtthread 的外设驱动,因为使用过程中发现rtthread的外设驱动编译错误,很久没有更新,所以先只使用rtthread的内核,外部驱动后面试着改下有问题的地方再发出来。我们要在rtthread studio 开发环境中建立stm32h743xih6芯片的工程。我们看到接3.3V时,16为值为65535,接gnd时值为1000左右,1000/65535*3.3=0.05V,有点误差都是正常的。5.再配置adc设备,如图我们配置adc1,0通道。

2024-03-06 16:42:04 696 1

原创 RT-Thread Studio与CubeMX联合编程之rtthread stm32h743的使用(四)pin设备使用

我们要在rtthread studio 开发环境中建立stm32h743xih6芯片的工程。我们可以看到打印的引脚编号分别为126和127.我们下载到芯片后就会看到led灯珠闪烁。串口接收到数据后产生中断,调用此回调函数,然后发送接收信号量 */这样我们就获得了引脚编号,在如下程序中打印下,看看对不对。1.首先建立rtthread工程。用于接收消息的信号量 *//* 接收数据回调函数。

2024-02-28 23:23:01 903 2

原创 RT-Thread Studio与CubeMX联合编程之rtthread stm32h743的使用(三)uart串口设备使用

2.打开cubemux,设置外部时钟及串口外设,其余设置参照前面rtthread stm32h743的使用(一)新工程建立,使能两个串口,串口1为调试串口,串口2为我们的测试串口。在list threads 指令下可以看到增加了serial 线程,并且可以查看堆栈占用率,在list device 指令下可以看到我们注册的uart2设备。我们再打开另一个串口助手,然后发送一个数,可以看到发送的值加一后被打印出来了,串口设备使用正常。串口接收到数据后产生中断,调用此回调函数,然后发送接收信号量 */

2024-02-28 13:52:16 1489 2

原创 RT-Thread Studio与CubeMX联合编程之rtthread stm32h743的使用(二)DAPLINK下载程序不能启动

我们要在rtthread studio 开发环境中建立stm32h743xih6芯片的工程。我们使用一块stm32h743及fpga的核心板完成相关实验。打开串口助手,可以看到打印输出,程序能够启动,发送相关指令,能够看到返回数据,主要原因就是pyOCD的版本问题。卸载最新版本后安装0.2.0版本。看到pyOCD版本为最新版本。

2024-02-27 11:56:03 702 2

原创 RT-Thread Studio与CubeMX联合编程之rtthread stm32h743的使用(一)新工程建立

分别测试了图片左侧指令,发现reboot 指令和usage指令提示command not found,我们打开drive目录下的drv_common.c文件,添加MSH_CMD_EXPORT(reboot, Reboot System);6.编译通过后打开drv_clk.c文件更改#define DBG_LVL DBG_INFO为#define DBG_LVL DBG_LOG。1.打开rtthread studio填写芯片型号及调试口,我们的调试串口为USART1_PA9,PA10。

2024-02-26 11:51:33 646 3

原创 RT-Thread Studio与CubeMX联合编程之STM32进行OTA(三)

总结下就是通过网络,我们发送了ota升级指令,并且指定了升级文件的目录。在单片机收到升级指令后从指定目录下载压缩好的编译文件,下载完成后bootloader将下载的新程序覆盖原来的程序,并且重新启动。5.在xshell对话框中输入ota升级指令就开始进行ota升级了,指令为http_ota http://192.168.2.53/rtthread.rbl ,这个ip地址为电脑的ip。2.添加软件包后进行编译,没有错误后再如下目录中打开压缩软件,将编译好的文件进行压缩,以便ota使用。

2024-02-20 14:12:17 615 2

原创 RT-Thread Studio与CubeMX联合编程之STM32进行OTA(二)

3.更改时钟配置,生成工程后,在drive文件夹下打开board.h,打开网络模块lan8720。4.添加lwip驱动和sal驱动,同时可在lwip驱动包里设置ip等参数!这里网络就通了,后面需要通过网络进行ota,这里就为后面打下了基础。7.发送ifconfig指令可以看到相关信息。6.编译下载可以看到初始化成功。8.插上网线试一下能否ping通。1.新建rtthread工程。

2024-02-19 17:52:32 511 1

原创 RT-Thread Studio与CubeMX联合编程之STM32进行OTA(一)

rtthread系统添加ota功能

2024-02-19 15:06:57 1378 2

空空如也

空空如也

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

TA关注的人

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