自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 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 683 1

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

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

2024-07-24 11:15:34 520 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 97 1

原创 FPGA读写操作SRAM_CY7C1051DV33

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

2024-07-23 11:12:37 267 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 639 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 179 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 283 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 235 1

原创 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 532 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 429 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 220 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 452 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 749 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 248 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 938 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 808 1

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

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

2024-03-06 17:33:13 607 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 593 1

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

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

2024-02-28 23:23:01 875 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 1394 2

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

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

2024-02-27 11:56:03 652 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 607 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 562 1

原创 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 455 1

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

rtthread系统添加ota功能

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

原创 Rtthread Studio 更改外部时钟源

将原有void system_clock_config(int target_freq_mhz)函数中的内容注释掉。打印正常,显示系统时钟为168M,和设置一样。1.新建RTT工程打开主函数如图。3.打开drv_clk.c文件。4.打开工程中的cubeMX。2.下载后串口能够正常打印。

2023-10-11 16:36:33 254 3

原创 rtthread芯片管脚号计算

为帮助您在CSDN创作的文章获得更多曝光和关注,我们为您提供了专属福利:已注册且未在CSDN平台发布过文章的用户,9月1日—9月30日期间发布首篇文章可享大额首篇流量券扶持,且发布首篇文章后30日内,享连续每日流量券扶持;已注册且未在CSDN平台发布过文章的用户,在8月1日—8月30日期间发布过首篇,可自9月1日起,享连续30天每日流量券扶持;更多福利介绍详见https://mp.csdn.net/mp_blog/manage/traffic如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇

2023-09-21 19:03:44 243

原创 NFC无源挂锁方案

NFC无源锁采用15693通协议,工作频率13.56M,模块尺寸281413mm.可广泛应用于各种场合。

2022-06-07 15:26:57 1921

原创 时序约束(三)

时序约束(三)前两节主要了解了一下时序分析和时序约束的概念以及根据自己在项目中遇到的时序问题,时序约束和不约束所产生的现象。这一节主要通过vivado工具通过工程实践来看一下时序的细节,同时建立对FPGA底层器件的认识。想用一个比较生活化的例子来理解时序的问题,思考了好长时间,终于找到一个,如下:小亮是公司雇员,每天在小区门口搭乘公交上班,假如小亮要想上班不迟到,他就必须从家里出发走到公交站牌时,公交车正好停在那里(公交停留一分钟),并且上车。若果小亮走到公交站牌时,车还没来,或者车已经走了,小亮都会上

2020-11-16 16:47:00 1047 1

原创 时序约束(二)

时序约束(二)上一篇对时序约束原理做了概述,网上也有讲的比较清楚的,或者网上小梅哥和尤凯元老师得视频都讲的很不错,这里主要是讲一下原理概述,重点是做一些实例演练,或者自己目前手头的项目遇到的情况。目前手头的项目是高速的AD数据采集,300M的采样时钟,DDR的数据传输模式,也就是说时钟周期3.33ns,上下沿采样,相当于时钟周期只有1.667ns,这里不进行正确的时序约束,很可能无法正常的采集数据。这里我们先看看没有正确的约束,或者没有约束情况下数据采集的情况。如下图:1.时序未约束或错误约束情况下,

2020-11-12 16:44:41 2507 6

原创 时序约束(一)

FPGA设计过程中的时序部分在低速系统下可能涉及的比较少,甚至在某些情况下可以不进行约束,但是在高速系统下时序分析与时序约束则比较重要。时序分析与时序约束直接影响系统所能运行的频率以及稳定性,而FPGA的优势之一就是并行与高速,所以搞明白时序分析与时序约束是掌握FPGA的必备技能。这个版块主要是学习时序理论内容的笔记,更重的是要在K7平台上以300M时钟进行高速AD数据采集,并且数据是以DDR形式进行传输的,涉及了较多的内容,所以分多个章节进行学习。以下内容中可能会有错误与不足,希望大家能够指正。先讲几个

2020-10-17 23:32:19 869 2

原创 TMS32028335通过Mcbsp口经过FPGA K7配置PLL芯片AD9518-1

TMS32028335配置PLL芯片AD9518-1目前在调试一块高速AD采集的FPGA板子,需要时钟频率为300M作为系统时钟,硬件上设计采样PLL芯片AD9518-1产生此频率时钟。AD9518-1概况如下:大概描述下锁相环的工作原理如下:主要意思就是,外部时钟进入PLL后首先进行R分频,然后鉴相器进行反馈信号与分频后信号的相位检测,再进入滤波器滤波后进入压控振荡器VCO,此后一路经过D分频后直接输出到芯片管脚,同时另一路作为反馈信号进行AB分频,可能比较绕,通过下面对AD9518-1的配置就容

2020-09-28 11:26:41 1335 1

原创 FPGA读写操作24lc64

FPGA读写操作常用的EEPROM芯片24lc64速度250k,刚好400个时钟周期,容易计数。代码如下:`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company:// Engineer://// Create Date: 2020/07/25 09:21:01// Design Name:// Module Name:

2020-08-15 18:12:10 2105 3

原创 Vivado联合modelsim仿真时modelsim进行异步FIFO仿真

Vivado联合modelsim仿真时modelsim进行异步FIFO仿真1.生成fifo IP核如图所示,8位数据输入,深度1024,8位数据输出2.编写testbench代码,进行仿真测试程序如下module fifo_test_tb;reg Rst;reg Clk_wr;reg Wr_en;reg [7:0] Data_in;reg Clk_rd;reg Rd_en;wire [7:

2020-08-08 16:06:01 892 1

原创 Vivado联合modelsim仿真时modelsim一直打不开

Vivado联合modelsim仿真时modelsim一直打不开vivado联合modelsim仿真时modelsim一直显示executing analysis and compliation …1.怀疑是vivado没有指定modelsim为仿真软件造成的,然后在设置里面从新指定了路径,并且从启了vivado软件,结果仍然是一样。2.怀疑是modelsim破解不完全,然后从新破解了modelsim软件,再从vivado打开仿真,结果同上!3.打开modelsim从新建立工程对源文件进行独立编译

2020-07-20 15:16:41 4128 2

原创 vivado 遇到non-module问题

vivado 遇到non-module问题昨天的工程在进行编译时突然出现了non-module问题,从新建立了工程也未能解决,经查阅,下载了vivado插件,从新启动软件后,问题消失,non-module已不存在。插件下载链接:https://pan.baidu.com/s/1BkPTVxRCwDQyz9BikolWdg提取码:1234问题截图如下:...

2020-07-15 09:42:20 7296 7

原创 ASK信号的滤波解调

vivado 与modelsim联合进行ASK信号的滤波解调求得了外包络。可以下载参考工程链接:https://pan.baidu.com/s/1fZW6svSUoAeCoxpZHtBI9w提取码:1234

2020-07-14 18:45:01 709 1

原创 vivado fir 滤波器IP仿真

vivado fir 滤波器IP仿真vivado与modelsim进行fir滤波器仿真vivado与modelsim进行fir滤波器仿真vivado2017.4与modelsim se10.5进行联合仿真,验证了fir滤波器的ip。仿真结果如下图,由两个dds模块分别生成一个4M和一个5M的信号,再由一个乘法器模块进行混频,混频后生成一个1M和一个9M的信号,用fir模块进行滤波,滤掉2M以上高频信号,剩下最终1M信号,结果如图。工程链接如下:提取码1234链接: link.图片: ![Alt]

2020-07-14 17:27:28 1061 2

空空如也

空空如也

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

TA关注的人

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