
ZYNQ7
mcupro
这个作者很懒,什么都没留下…
展开
-
全兼容增强版zc706单板照片
全兼容增强版zc706单板照片。支持所有zc706功能,直接bin文件兼容。是一个非常经典的zynq平台,以及软件无线电基带板。支持FMCOMMS2,3,5以及adrv9371,adrv9009等射频子板。配合本店射频子板购买将提供完善程。全兼容官方板子基础上提供两路光口,且时钟设置只需拨码即可,优化了电源以及板子布局,缩小了尺寸,简化了冗余的跳线…原创 2022-12-22 19:21:32 · 315 阅读 · 0 评论 -
嵌入式linux 使用mmap函数实现物理地址到虚拟地址的映射。
以下程序段来自我的一个实际项目。将物理地址转换成虚拟地址,之后就可以C语言指针在程序里面操作了。#include<stdio.h>#include<stdlib.h>#include<sys/mman.h>#include<fcntl.h>unsigned int get_mmap_addr_auto( unsigned i...原创 2020-03-11 10:04:01 · 1562 阅读 · 0 评论 -
一个易用的AXI_LITE转接模块 [视频提纲]
我们在做AXI_LITE外设时候,需要在大量的例子代码里面加入自己的寄存器和逻辑。不但麻烦而且很容易出错。这里给大家推荐一个转接口的模块,将AXI接口转换成非常简单的pcore寄存器读写操作。 up_axi #(.AXI_ADDRESS_WIDTH (C_S00_AXI_ADDR_WIDTH) ) i_up_axi ( .up_rstn ( s00_ax...原创 2020-03-06 21:54:32 · 1513 阅读 · 0 评论 -
检查zynq710核心板子的记录-1 (STEP1-4)
这个ZYNQ710板子是和ZC706部分兼容的板子,原理图库直接用ZC706的文件转换过来的。在ZC706基础上去掉了PCIED光口等高速部分,原来ZC706的两个FMC,完整保留了LPC,其中HPC剔除了高速部分线路,就相当于退化成了一个LPC接口;去掉了原来的DDR内存条;加上了一路LPC的FMC接口(这样就有三路FMC接口了,都是LPC);另外有总共4路3.3V接口的PMOD。大体情况就这样...原创 2020-02-20 18:36:56 · 1014 阅读 · 0 评论 -
Verilog描述的简单的异步RAM
module simple_dc_ram#( parameter dw = 64,aw=7) ( input rd_clk,wr_clk,wr, input [aw-1:0]wr_addr,rd_addr, output reg [dw-1:0]q , input [dw-1:0]d ); reg [dw-1:...原创 2020-02-09 20:35:17 · 801 阅读 · 0 评论 -
异步FIFO代码
/* dc_fifo_gray #( parameter dw = 64,aw=7) ( .rd_clk( ), .wr_clk( ), .rd_rst_n( ), .wr_rst_n( ), .we( ), .re( ), .din( ) , .dout ( ) , .full( ) , ....原创 2020-01-14 18:54:19 · 569 阅读 · 0 评论 -
随便贴一个自己用VERILOG写的状态机
有这样写VERILOG风格吗?类似风格好像我没有见过别人写过。我只是为了简洁,写得快,就有了这种FSM串行序列执行的的写法。感觉难度介于汇编和C之间。运行效果也很好,就暂时没有进行优化和替换。/*module tb_cfg_FSM; reg clk,rst,valid;reg [23:0] ins ;initial begin {clk,rst,valid}=0;...原创 2020-01-12 21:33:33 · 293 阅读 · 0 评论 -
降低频率为以前的1000之一的代码
odule clk_div_1000(input clk_i,output reg clk_o);reg [9:0] c ;always @ (posedge clk_i) if ( c >= 499 ) c<=0;else c<=c+1;always @ (posedge clk_i) if (c==499) clk_o<= ~clk_o;...原创 2019-10-24 11:19:12 · 217 阅读 · 0 评论 -
基于Zedboard的PetaLinux 2019.1试验
一,安装板级支持包PetaLinux默认支持多个开发板子,在UG1144里面有列出来,如下这些板子直接可以从官方下载到板级支持包,有了板级支持包,我们就可以直接从板级支持包生成PetaLinux项目。https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/embedded...原创 2019-06-18 20:18:00 · 2856 阅读 · 2 评论 -
PetaLinux 2019.1详细安装步骤以及所需要文件
这里主要根据UG1144文档,这两天成功安装使用了PetaLinux的最新版本2019.1一,在虚拟机里安装Ubuntu16.041,选Ubuntu 操作系统的版本是16.04,我最初尝试过18版本的Ubuntu但是不知道为什么速度特别慢,所以还是回头使用16.04版本。2,使用的vmware虚拟机版本是12.3,在虚拟机里安装Ubuntu16.04,我这里设置了逻辑盘大小是...原创 2019-06-14 15:53:12 · 13645 阅读 · 6 评论 -
在ZEDBOARD + PETALINUX环境中使用TFTP传输文件【之一】----TFTP客户端的使用方法
硬件:ZEDBOARD 或者兼容板子 (可以从SYSCLK.TAOBAO.COM购买便宜实用的国产板,本人出品技术支持)。嵌入式系统:PETALINUX 2019.1 使用 ZEDBOARD板级支持包编译出来的LINUX内核以及文件系统。PETALINUX 的系统文件里面包含了TFTP客户端。这是一个基于UDP协议的FTP类型的文件传输协议。跟标准的FTP相比,他不不使用复杂的...原创 2019-06-25 22:50:35 · 1980 阅读 · 0 评论 -
在ZEDBOARD + PETALINUX环境中使用TFTP传输文件【之二】----在WIN下安装TFTP服务器
我们用的VMWARE虚拟机方式开发PETALINUX,如果在VMWARE虚拟机里面安装TFTP虚拟机,需要在虚拟机里设置成网桥的模式,这样才能保证虚拟机所在网络和本地局域网是一个网段。这稍稍有些麻烦,并且有时候VMWARE设置会失效。所以我们这里直接在WINDOWS下设置TFTP服务器的形式。从网络上搜索tftpd32这个小软件,可以从我网盘下载:链接:https://pan.baidu....原创 2019-06-25 23:23:13 · 645 阅读 · 0 评论 -
在ZEDBOARD + PETALINUX环境中设置QSPI FLASH存放并启动系统
1,BOOT.BIN在哪里运行存储于启动模式,内部的BITSTREAM以及U-BOOT(或者用户APP)都可以存储。2,UBOOT有启动命令脚本(auto booting).这个脚本指示从SD卡某个文件或者QSPI FLASH的某个地址区域取KERNEL和DTB以及ROOTFS,保存在内存的指定区域(这个指定内存区域跟KERNEL编译时候的设置以及其他是对应的)。3,KER...原创 2019-06-28 16:36:34 · 3837 阅读 · 1 评论 -
关于双时钟fifo的延迟问题
这里群讨论里面的记录 414371872 群号先贴在这里。含笶半歩顛(764723019)16:37:32@李工请教一个问题。我用FIFO的IP弄了一个FIFO,发现wr_rst_busy要再wr_clk,和rd_clk都有的时候,经过若干个始终周期后才跳变为0.请问下为什么含笶半歩顛(764723019)16:37:40异步FIFO。太极之...原创 2019-06-28 16:43:48 · 2924 阅读 · 0 评论 -
群里关于一个硬件电路的讨论,纹波大导致烧坏主芯片
来自ZEDBOARD 学习讨论QQ群 414371872的聊天记录梧桐树下(624018797) 11:14:21板子用着用着,不知什么问题,1.8V对地的电阻就变成10欧了李工(715713994) 11:14:45主芯片挂梧桐树下(624018797) 11:14:50这种情况一般是不是只能换fpga了啊李工(715713994) 11:15:27最好排除隐患后再换...原创 2019-06-28 16:52:09 · 2773 阅读 · 0 评论 -
一个看门狗模块
module wdg (input clk ,input feed ,output reg do_rst);parameter of_bit = 31 ;reg feedr;always @(posedge clk) feedr<=feed;wire is_feed = feedr != feed ;reg [of_bit:0]...原创 2019-07-05 14:31:38 · 2935 阅读 · 0 评论 -
Zedboard + AD9361底层接口的分析 之一 system_util_ad9361_dac_upack 对外接口分析
首先我们看BLOCK DESIGN里面实际的接口图:我们看到总体的数据流向是:给模块输入64位数据,之后分成了4组16位的数据数据输出。结合unpack这个模块名,我们都可以想到是64位并列分成4组。主要是是看看控制和标志部分是如何工作的。我们看到dac_valid_[0...3]和dac_enale[0:3]以及4组16位数据总线都接在AXI_9361的接口模块上。我...原创 2019-08-09 11:33:37 · 3511 阅读 · 1 评论 -
Zedboard + AD9361底层接口的分析 之二 ADC 通路的接口分析
所谓ADC通路,就是AD9361接收端数据经由FMC到达ZEDBOARD上XC7Z020芯片的PL引脚后,最后直到DDR3,内部通过的数据路径。如下图:我这里简单说一下图中各个模块:1,AXI_9361,这是跟9361接口的最前沿,无论接收和发送端,都是经由了这个模块。内部有时钟的处理,双边缘采集的处理,双边缘发送的实现。这个由于实现细节太多,需要专门分析。2,wfifo模块,这个...原创 2019-08-10 15:33:46 · 4845 阅读 · 0 评论 -
AD9361 随笔记录 收发器fastlock相关的用户函数
代码取自no_os的ad9361_api.c文件。我们先来看看fastlock中发送部分的相关代码:/** * Store TX fastlock profile. * To create a profile tune the synthesizer (ad9361_set_tx_lo_freq()) and then * call this function specifyi...原创 2019-08-10 18:32:53 · 2729 阅读 · 3 评论 -
up_axi 一个将axi_lite接口转换成寄存器接口的模块
这是ADI提供的小模块。1,加入了防止死机的判断,8个周期后没有完成操作自动相应ack总线。2,会一直保持up_wreq,直到master端撤销写请求。这就需要检测第一个up_wreq的跳变作为实际的写,或者有严谨的握手信号处理。`timescale 1ns/100psmodule up_axi ( // reset and clocks up_rstn...原创 2019-08-20 11:40:44 · 1885 阅读 · 3 评论 -
ad_lvds_clk 将外部时钟同步到本芯片的时钟网络代码
module ad_lvds_clk ( clk_in_p, clk_in_n, clk); parameter DEVICE_TYPE = 0; localparam SERIES7 = 0; localparam VIRTEX6 = 1; input clk_in_p; input clk_i...原创 2019-08-20 12:21:34 · 994 阅读 · 0 评论 -
OV7670摄像采集图像在VGA上显示的分析和实现,精确到每个时钟,每行代码。
OV7670使用RGB565模式,30FPS,采集分辨率为640X480,保存在ZYNQ7芯片7Z020的内部BRAM。VGA控制器在读出端读出数据,并用12BIT的色彩深度现在VGA接口屏幕上,VGA分辨率也是640X480。1,纯粹FPGA逻辑实现,虽然用到硬件是ZEDBOARD上的7Z020芯片,但是没有用到PS(双核ARM处理器)部分。2,7Z020内有丰富的BLOCK RAM原创 2016-10-20 00:46:57 · 10935 阅读 · 7 评论 -
关于HP,HR端口以及工艺和电压的对话
小飞侠各位问一个问题,IObank的类型有HPHRHD三种,一般在哪里可以查到器件的bank类型,今天拿到一个kc705,只能根据经验大致猜一下bank323334是hp,因为不支持3.3v和2.5v。但是总觉得有点没谱。有没有大神能解释一下?ota862019/5/8星期三下午11:19:03作者写书的时候,后续小节的代码没剔除干净,读者自己写的逻辑里没有访存相关时...原创 2019-05-08 23:30:39 · 2327 阅读 · 0 评论 -
ZYNQ没有DDR3也能让程序在OCM里面跑。
明(523174158)上午9:22:37 自己的板子上DDR有两个脚封装画反了,用不了 明(523174158)上午9:22:57 炸了炸了 明(523174158)上午9:27:25 只能在OCM上跑程序 就是在FSBL里面写你要跑的内容,就是在OCM里面跑。这点在售后视频转门一集有介绍...原创 2019-04-25 23:27:17 · 3585 阅读 · 4 评论 -
关于XILINX 中动态配置时钟模块 MMCME2_ADV
kindly(773566320)下午9:20:08@李工李工,你弄过sp6的动态锁相环吗GaN(1009757565)下午9:21:28@kindlyDemo板,我拿来验证寄存器设置。kindly(773566320)下午9:22:10噢,哦李工(715713994)下午9:22:25@kindly没有,只是看过,没实际搞过李...原创 2019-04-25 23:18:44 · 4262 阅读 · 0 评论 -
PMODAD1 实现模拟数据的采集 时序篇
根据时序图来做构造控制时序。原创 2017-06-30 12:04:45 · 2107 阅读 · 0 评论 -
PMODAD1 实现模拟数据的采集 硬件篇
PMODAD1是一个简单PMOD接口的双路ADC采集模块,可以点此到淘宝网店购买,描述如下产品描述Digilent Pmod AD1是一个12位双信道模拟数字转换器,搭载Analog Devices AD7476A。凭借每秒高达100万个样本的采样率,该Pmod即使面对最苛刻的音频应用都能发挥杰出表现。产品特点:双信道,12位模拟数字转换器原创 2017-06-29 19:51:11 · 2926 阅读 · 1 评论 -
[zynq7 问题记录] ps 从axi总线读数据卡住了一般是什么原因导致的
1,没有烧写逻辑。2,读了一个VIVADO没有分配的地址。3,AXI外设接口编写有问题,没有回复各种READY 。4,如果是SDK在线运行,上述三个方面确保了,就按照下面步骤进行, 从新给板子上电,烧写BIT,启动PS。5,如果是SD卡或者QSPI FLASH 启动,检查完上述1,2,3,再检查一下文件是否拷贝对。sysclk.taobao.com原创 2017-03-19 18:13:01 · 3698 阅读 · 1 评论 -
zynq7 双核处理器的最简单例子
全兼容ZEDBOARD 开发板子 SYSCLK.TAOBAO.COM今天终于有时间做这个事情。首先从官方下载XAPP1079看看。官方的X1079是基于XPS和SDK。并且也牵扯到了PL部分。我们循序渐进,只实现两个处理器分别跑,没有联系,没有通讯和对话。实验就先实现CPU0通过串口输出字符串,而CPU1则独立控制MIO7的LED进行闪烁。因为不牵扯PL...原创 2016-11-22 14:31:10 · 8009 阅读 · 3 评论 -
ZYNQ7 DACHE的重要操作
/* Flush the SrcBuffer before the DMA transfer, in case the Data Cache* is enabled*/Xil_DCacheFlushRange((u32)TxPacket, MAX_PKT_LEN);//确保从CACHE里面写回到MM里/* Invalidate the DestBuffer be原创 2016-10-12 18:15:58 · 7676 阅读 · 3 评论 -
AXI STREAM 接口的VGA控制器分析
1,在VGA时序控制器的分析和辨析的相关视频里我详细介绍了如何根据原理以及参数做出一个示意图,之后基于这个示意图逐行和大家一起编码。2,这个AXI_STREAM的VGA控制器不一样在于不是根据pixel_cnt和line_cnt确定的维度(地址),来获取像素点数据了,而是采用数据流的概念。3,流,有方向,无地址;流的产生是源头,我们在AXI_STREAM里面定义为master;流终的接受者原创 2016-10-24 06:22:12 · 2664 阅读 · 1 评论 -
群问题记录
问题 : 我们之前用sd卡启动方式跑Linux时,生成的bin文件里的bit文件用的是system.bit(出厂自带的),我现在用其他bit文件生成的bin在跑Linux时,出现内核加载不了,我觉得这个应该没啥关系吧,加载内核不是uboot里设置吗,和bit文件无关啊。答: 根BIT 有关,因为LINUX启动PL外设时候,如果PL没有配置或者配置不对应,LINUX 就会无法启动这个外设原创 2016-11-09 12:58:51 · 599 阅读 · 0 评论 -
ZEDBOARD的LINUX如何自动挂载SD卡
基于官方发布的OOB的LINUX,加以下挂载命令到:/etc/init.d/rcS里 mount /dev/mmcblk0 /mnt/test很多博客都说在/etc/fstab 设置,有些嵌入式LINUX系统里面不支持。总结 : 1,挂载SD看命令。2,写入到/etc/init.d/rcS里。全兼原创 2016-10-18 14:27:30 · 1412 阅读 · 0 评论 -
关于U-BOOT,以及ZYNQ7启动文件的对话记录。
对话的中心不是很明确,但是解释的很明白。保存下来 : 念奴娇(573479288) 10:25:03请教: 在zedborad板卡上跑linux操作系统时,编写的arm程序和qt界面程序,最后放在boot.bin,内核zImage,设备树devicetree.dtb,ramdisk8M.image四个文件中哪一个里面了????念奴娇(573479288) 10:25:21原创 2016-10-26 11:03:24 · 1467 阅读 · 0 评论 -
PMODAD1 实现模拟数据的采集 实现篇1
从硬件篇我们看到一个PMOD模块包含了两路ADC,他们公用SCLK和CSN,只是有两路各自的DATA输出,因此我们将采集模块简单修改一下,能同时采集两路,如下:module ad7476_sample(input clk,rst,input ADC_sdata0, ADC_sdata1,output reg ADC_sclk,ADC_csn,output reg [11:0] adc_原创 2017-06-30 16:13:24 · 1369 阅读 · 1 评论 -
移植OPENCORES上的I2C MASTER到AXI接口处理器层面实现驱动 之一
由于之间就用过OPENCORES上的I2C MASTER,所以对他的接口时序以及处理器方面的驱动非常了解。这里主要做的工作是移植。这个IP核来自www.opencores.org 是经过OPENCORES认证的IP核。这个IP是采用了WISHBONE互联总线标准,是最简单最基本的互联总线,因此很容易移植上AXI_LITE接口。以下代码原创 2017-06-30 20:13:31 · 1604 阅读 · 1 评论 -
LINUX 控制读写硬件寄存器 QQ群讨论记录
喧(228229542)下午2:21:41 @李工李老师您好,我最近需要把Ubuntu移植到ZYNQ上面(当然Ubuntu是文件系统,现在问题不在那里),PL端有我自己搭建的外设,但是在看了第8节课之后,感觉没有掌握如何创建带有PL端外设的系统,并且现在没有方向,想请教您我看哪一节课能够掌握这个? 李工(715713994)下午2:22:06 ...原创 2019-04-25 23:12:56 · 254 阅读 · 0 评论 -
简洁的PWM控制器
直接在value里面输入1-98就可以改变占空比,实现PWM调制。改变PRE_DIV参数,可以根据不同clk设置不同的PWM频率。再次分享。 module pwm_ctlr#(parameter pre_div=1000)(input clk,input [6:0] value,output reg pwm);reg [20:0] delay_cntr ;al...原创 2018-12-01 00:43:29 · 2054 阅读 · 0 评论 -
一个简单的同步采样的频率计数器
风扇转速线反馈回来的最高频率是180HZ,我随手简单写一个频率计数器。因为采集的频率很低,所以采用简单的同步采样方式,而没有使用跨域时钟域的异步计数器方式。代码如下,每秒产生一个update 信号,这信号更新采集计数器c到result寄存器,之后清0采集计数器c。这里输出是32位是编码习惯,调用时候可以根据实际情况忽略高位。module frq_cal # (parameter frq...原创 2018-12-01 00:41:49 · 648 阅读 · 0 评论 -
PL通过EMIO方式外接PHY芯片的实验
这里介绍了一种ZYNQ7在PL部分外接ETHER 的PHY芯片实现PS扩展以太网的方式。原创 2017-10-26 18:45:22 · 4391 阅读 · 1 评论