
总结和计划
文章平均质量分 73
mcupro
这个作者很懒,什么都没留下…
展开
-
openofdm初探之一: 运行仿真
openofdm是github上一个项目,这个项目实现了ofdm的解码,我记录一下自己的探索过程。刚刚搞明白了如何仿真,这里记录一下分享给大家。1,sudo apt-get install git iverilog gtkwave make -y2,sudo gitclone https://github.com/jhshi/openofdm3,在步骤2的执行目录多了一个openofdm目录,进入这个目录。cd openofdm。4,cd verilog之后进行make ,出现了...原创 2021-11-08 04:44:08 · 2598 阅读 · 1 评论 -
做一个FSK的收发试验 之五
其实一个项目最重要的是在规划和实现,在规划和实现上多动脑子,多花时间,后续调试会很顺利。现在进行最终的调试了。从效果上进行检查就是在bb_bit_in输入,之后在bb_bit_out输出,看输入输出是否对应。作为比较简单的测试我们可以在bb_bit_in接入一个计数器,每秒变化一次,之后在bb_bit_out接一个led,看LED是否正常闪烁。我做过这步成功后,我使用了一个PMOD...原创 2020-02-26 20:40:50 · 557 阅读 · 0 评论 -
做一个FSK的收发试验 之二
有了上述的代码我们尝试攒在一起,进行仿真一下。这里直接将接受和发送都放在一起进行测试。写代码如下: module tb ;reg clk=;always #5 clk = !clk ; reg bit_in;wire bit_out;wire [11:0]sin,cos ; reg [15:0]c ;always@(posedge clk )c <= (c==...原创 2020-02-25 02:41:20 · 678 阅读 · 0 评论 -
一个非常棒的CDC实现方法
//// Copyright 2014 Ettus Research LLC// Copyright 2018 Ettus Research, a National Instruments Company//// SPDX-License-Identifier: LGPL-3.0-or-later//module synchronizer #( parameter WI...原创 2020-02-25 01:36:10 · 785 阅读 · 1 评论 -
发一个信号边缘检测的小模块
我们来检测一个信号上升边沿或者下降边缘的到来,可以用此小模块:/*edge_det edge_det(.clk(),.sig(),.pos(),.neg());*/module edge_det(input clk,sig,output reg pos,neg);reg [2:0]r ;always @ (posedge clk) r[2:0] <= {r...原创 2020-02-25 01:25:33 · 346 阅读 · 0 评论 -
自己写的一个非常简洁的DDS信号发生器以及验证
DDS其实就是输出点,直接画出波形。例子1,假设基带采样时钟是360M,如果每个完整的正弦波形用360个点画出来,构造出来的DDS波形是360M/360=1M。例子2,在同样的采样时钟之下,如果我们要DDS出一个0.5M的波形怎么办呢:其实就是用360M/0.5M=720个点。就是说我们用720个点构造出一个完整正弦波。如果我们的sin表是由360个数值对应0-359度,...原创 2020-02-25 15:49:29 · 752 阅读 · 1 评论 -
使用官方的HDL试验ADC数据 之一
这里主要是对DAC数据通道的UNPACK模块进行分析和替换。DAC就是发射部分,就是基带通过DDS方式“画”出波形,供给9361进行混频和发射。我们官方HDL项目里面提供了从内存DDR3到AD9361引脚的数据通道。我们之前的BLOG都已经分析了,这里再简单回顾一下。首先使用AXI_DMAC,将数据经过PS的HP高速接口从DDR3取出。这里取出来是64位的,我们要根据实际要发送的是2T还是...原创 2020-02-23 22:41:30 · 1567 阅读 · 3 评论 -
使用官方的HDL试验DAC输出 之三
使用自己的my_pack模块,之后加入到系统替换以前的:之后看逻辑分析仪的结果,以下是1R1T模式:看到模块比以前延迟小了几个周期,但是结果一致。再看2R2T模式:结果完全一样。达到了替换的目的。这里再次贴出我写的这部分代码.module my_pack (input rst , clk,input enable0,enable1,enable2,e...原创 2020-02-23 03:13:50 · 440 阅读 · 0 评论 -
使用官方的HDL试验DAC输出 之一
官方的AD9361接口做得很完善,我觉得应该花时间研究透彻。正好这段时间难得的安静,我就专门做做试验研究学习一下。AXI_AD9361这个模块咱们之前的博客分析了几次,今天试验ADC的输出,看看ENBALE,VALID和数据这三者之间关系。其实查看代码可以看到ENABLE是处理器通过AXI LITE接口设置,而VALID是用于数据通讯进行数据指示的。为什么要有这两个信号呢,我的猜测(后续查...原创 2020-02-22 23:39:08 · 1289 阅读 · 1 评论 -
检查zynq710核心板子的记录-5 (STEP8,9)
STEP8:检查ZYNQ_PS_ETH_PHY.schdoc,这个是PHY芯片的原理图。原版ZC706的这部分有很多跳线,我参照实际板子,一一确定了跳线帽的位置,后作出这个线路。跳线处理部分之前检查过两遍了,这里不再检查了。对照一下千兆以太网RJ45接口的引脚定义。下图是ZEDBOARD的PCB截图PIN脚对应如下:PIN1 -> NCPIN2 0_p...原创 2020-02-21 11:03:18 · 276 阅读 · 0 评论 -
检查zynq710核心板子的记录-4 (STEP7)
STEP7:检测ALL_IIC.SCHDOC这个文件。这里就是一个I2C的集中器芯片,连接多个I2C外设。思路比较简单。检查一下是不是每个线都连接好了。每一个原件检查一下封装。都没有问题就可以PASS。...原创 2020-02-21 01:01:46 · 192 阅读 · 0 评论 -
检查zynq710核心板子的记录-3 (STEP6)
SETP6:检查一下UART_CLOCK.SCHDOC这个文件。内有两路USB转串口芯片,无论原件还是是封装都是现成的,因此这部分比较有把握。PS_UART部分接的PS的MIO必须严格对应,我们用PS2PC来表示从PS为输出,PC也就电脑,是输入,则看到MIO48是PS2PC,同理可以MIO49是PC2PS。经过确认没有问题...原创 2020-02-20 23:59:28 · 377 阅读 · 0 评论 -
检查zynq710核心板子的记录-2 (STEP5)
STEP5:ZYNQ_PS_USB_PHY.SCHDOC 这个文件顾名思义就是USB的PHY芯片。这里要慎重检查,因为这里去掉了很多差价,这些插件是选择模式的。我们这里简单化处理成只支持USB HOST 模式,为了能接USB盘或者其他USB网卡等其他USB外设。对应原来ZC706的几个跳线,确定了工作了工作在USB HOST模式。接着检查各网络是否都有对应的链接。检查了引脚都完全对...原创 2020-02-20 19:17:03 · 178 阅读 · 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 评论 -
对AD9361的数据接口延迟设置的分析和记录
通过参看AD9361的寄存器说明手册,收发数据线的时钟和数据DELAY 各自是16级可调打印出了NO-OS代码写006,007号寄存器的操作:Hello Worldlw:reg[6]=0x04lw:reg[7]=0x70lw:ad9361_dig_tune_rxlw:ad9361_dig_tune_delaylw:reg[6]=0x00lw:reg[6]=0x01l...原创 2020-02-08 20:32:04 · 5866 阅读 · 4 评论 -
AD9361 的NO-OS代码命令
基本涵盖了ad9361_api.c里面的全部函数,写在这里备份。Available commands:help? - Displays all available commands.register? - Gets the specified register value.tx_lo_freq? - Gets current TX LO frequency [MHz].tx_lo...原创 2020-02-08 16:46:32 · 3698 阅读 · 3 评论 -
随便贴一个自己用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 评论 -
AD9361 随笔记录 AXI_AD9361模块的分析之对外接口篇
之前对官方的AXI_AD9361这个模块内部的输入输出接口进行了详细的分析,分析的详细视频发布在自己所卖板子的配套的教程视频里面。这里我们从AXI_LITE寄存器层面进行分析,看看控制总线接口对外公布了多少寄存器以及各自的功能。下图表示了在系统中的位置:我们先来看接口:分这些部分:1,接AD9361的引脚,如下图:具体输入有rx_clk_n,r...原创 2019-12-16 13:01:31 · 6382 阅读 · 2 评论 -
8月17日 使用ISE进行FPGA开发的最简单步骤视频的说明
1, 新建工程,设置目录,选择原件。2, 新建代码,输入VERILOG代码,检查代码。3, 新建用户约束文件,锁定FPGA对应的管脚。4, 综合,映射,布线,布局,生成比特流文件(BIT为后缀)。5, 下载BIT文件到FPGA板子上运行验证设计是否正确。6, 将BIT文件生成PROM文件。注意BIT文件和PROM文件的区别和联系:A,原创 2013-08-17 12:04:41 · 1982 阅读 · 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环境中使用TFTP传输文件【之三】----用TFTP实现文件互传
上述之一讲了嵌入式LINUX中tftp命令的使用。上述之二讲了WIN下简历TFTP服务器。这个BLOG我们实现一下两者的互联,用嵌入式LINUX 的TFTP客户端连接WIN的服务器端,实现文件的上传和下载。连接好网络,将ZEDBOARD和电脑连在同一个路由器下。首先使用ping 192.168.1.102 来确定网络是否连通。之后将tftp服务器端的image.ub文件下载下来...原创 2019-06-26 00:08:56 · 1160 阅读 · 0 评论 -
关于双时钟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 评论 -
又一个因为时钟精度而导致的问题
来自 ZEDBOARD 学习讨论QQ群414371872 12:55:36 请教各位一个问题啊,a7100TFGG676,之前的2个GTPbank共用一个时钟,现在专门又做了一版PCB,2个GTPBANK,各自独立时钟。但是现在无法实现,每个GTPbank单独设置光模块速率。是不是哪儿设置有问题。 逐 12:57:03 ...原创 2019-06-28 16:55:49 · 488 阅读 · 0 评论 -
是你去主动找工作,和主动工作
记录 ZEDBOARD学习讨论QQ群 414371872无13:45:40有了解君正集成或者瑞斯康达的同学么怪13:54:52有啊怪13:54:59你啥职位怪 13:55:21群主在君正呆过无13:56:12群主在君正呆过!怪13:56:32是李工(715713994) 14:10:08@无语 也看到你单独问我来。好久前的事儿了,他们都重组好几次了,路线也变过...原创 2019-06-28 16:59:52 · 419 阅读 · 0 评论 -
verilog写的一个简洁实用的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 ); r...原创 2019-07-05 14:24:36 · 3089 阅读 · 0 评论 -
在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 评论 -
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 评论 -
ZYNQ系统PS部分挂载DDR3型号在VIVADO里面列表里面不存在如何解决
QQ群:414371872 李工(715713994)上午10:30:31 是DDR3哈 3079762899(3079762899)上午10:32:17 李工,然后呢 李工(715713994)上午10:35:46 找几个相近型号试试 李工(715713994)上午...原创 2019-04-25 23:21:56 · 1864 阅读 · 1 评论 -
zynq7 双核处理器的最简单例子
全兼容ZEDBOARD 开发板子 SYSCLK.TAOBAO.COM今天终于有时间做这个事情。首先从官方下载XAPP1079看看。官方的X1079是基于XPS和SDK。并且也牵扯到了PL部分。我们循序渐进,只实现两个处理器分别跑,没有联系,没有通讯和对话。实验就先实现CPU0通过串口输出字符串,而CPU1则独立控制MIO7的LED进行闪烁。因为不牵扯PL...原创 2016-11-22 14:31:10 · 8009 阅读 · 3 评论 -
群问题记录
问题 : 我们之前用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 评论 -
【ZedBoard实验随笔】OV7670 摄像头 简单总结
1,OV7670 有一大堆寄存器需要配置,这些配置可以参考别人已经做好的代码。2,OV7670 设置为640*480 16的分辨率,30帧每秒,就是30FPS,每一个RGB的数据是16位的,这16位的数据分成两次从8BIT的总线传输过来。3,计算时钟是多少: 640*480个点,每秒传递30帧(也就是刷屏30次每秒),这样就是640*480*30,而每个点是16位的需要在0OV7670位的...原创 2016-09-08 13:19:35 · 19101 阅读 · 2 评论 -
SLA5032 500M 32通道逻辑分析仪的API函数接口
1,提供DLL以及此API函数说明。2,原创 2014-10-25 16:59:25 · 3620 阅读 · 0 评论 -
一些简单的C代码 放在这里备份
unsigned char swap(unsigned char c){ unsigned char r=0 ; if (c&(1 if (c&(1 if (c&(1 if (c&(1 if (c&(1 if (c&(1 if (c&(1原创 2014-07-04 18:32:19 · 631 阅读 · 0 评论 -
2013年8月15号 随想 絮叨
1,今天过得感觉比较漫长,6点多起来,不到7点跟老婆一起赶集,买了些蔬菜,水果。之后就去公司,8点半到了公司。2,最近心情放松了一些,来回上下班听歌,有时候也跟着唱,有时候大声唱,感觉找谱有点难,2,3年没有K歌了。所以说要多联。3,说起多练习,我最近给小宝宝念故事,念了1个月了,每晚上都念一块,很有感情,声音也很大。我今天尝录制视频,一边屏幕录象,一面讲ISE的安装,之后放一下听自己的声原创 2013-08-15 23:11:44 · 991 阅读 · 0 评论 -
BASE64的编码和解码代码
/* ------------------------------------------------------------------------ * * file: base64_stringencode.c v1.0 * * purpose: tests encoding/decoding st转载 2013-08-16 07:52:48 · 864 阅读 · 0 评论 -
8月20日
1,LA32要做出来,生产1000套,之后迅速砸出去。2,采购XILINX开发板的FPGA,抓紧安排生产。3,采购LA16的元件,生产1800套,迅速推广开来。整理好原理图。做好可以公布的API等。4,今天没有录制教程,找了ALTERA的VERILOG讲义进行了替代,明天的录制视频任务比较多 1,SPI FLASH的读写 XCF 存储器的读写 2,38译码器的实验 3,如何安装MO原创 2013-08-20 22:53:36 · 698 阅读 · 0 评论 -
8月18日 星期日 要做的事情比较多 理顺一下
1,今天没有出视频。基本上什么也没有做。2,下周任务:依旧坚持每天出一个视频,采用XILINX的元件开始板子焊接,采购2034样板元件,并且焊接几个样板进行测试。整理DX的资料,加上总线采集和协议解析部分。1032继续实验几块板,之后在国内便宜卖,不为了赚钱,主要为了尝试了解用户对此产品的反应。开始做LA16的扩展程序,做好频率计,频率发生器,通用IO,以及UART对话终端。原创 2013-08-18 19:32:29 · 814 阅读 · 0 评论 -
2013年8月6号
1,今天修改了LWLA2034的PCB,使用了多个DC DC模块,之后又做上了LDO,和DCDC模块备选,具体使用什么电源放案,根据测试决定 。2,测试的参考因素,效率:A 通过测总电流获得总功耗,在保证FPGA,MCU,SSRAM,PWM都正常工作的情况下,最小的电流意味着最高的效率和最小的发热量。另外一个考虑因素是电源质量:纹波大小。这里的纹波可以用示波器测试各个电源方案进行对比。通过调整原创 2013-08-07 00:08:52 · 1081 阅读 · 0 评论