这是一篇入门级的技术文章,对于高级开发者来说不值得一提,但是笔者还是想写下来,免得过段时间忘掉,顺便分享给少数的可能需要的人。本文讲的是如何将ARM GCC交叉编译得到的固件使用Keil下载至MCU的方法。原本供应商提供了Flash Magic用于下载固件,但是使用Flash Magic下载固件的速度很慢,所以就想着使用更熟悉且速 ...
-
使用Eclipse IDE编译代码遇到的一个问题
公司的新项目使用了NXP LPC1768单片机,供应商提供的开发环境是Eclipse,我们在搭建Eclipse开发环境时遇到了一个奇葩的问题。我们首先按照供应商的建议安装了如下软件: OpenOCD,使用Olimex官方的版本(0.9.0-rc1),解压后放置C盘根目录下,手动设置环境变量,不同于OpenOCD 0.6.0,这个版本使用时需指定配置文件C:/ ...
-
AD9361 no-OS驱动移植到STM32单片机的关键点
在近期的产品开发中,我们需要使用STM32配置AD9361芯片。在之前的项目中,我们使用verilog进行纯逻辑配置,但是动态修改参数比较麻烦,所以我们花了些时间,最终成功地将AD9361 no-OS驱动移植到了STM32单片机上。这个过程使用的是ADI的no-OS 2018_R1版本,STM32的初始化工程是由STM32CubeMX生成的,可以参照小站的另一 ...
-
使用STM32CubeMX生成STM32初始代码
STM32F103我司量产产品中大量使用的一款单片机,之前的代码使用的是STM32的标准库,但是在最新的产品开发中,参考代码使用了STM32的HAL库,所以有必要了解一下HAL库的使用方式。但是HAL库代码很多,读起来费时费力,好在ST官方有一款叫做STM32CubeMX的软件,可以非常便捷地生成采用HAL的初始代码,本文分享一下使用STM3 ...
-
关于DDS参考时钟的粗浅理解
DDS的参考时钟是自由的,其输出的正弦及余弦信号相对于ADC的输出也是自由的,因此DDS的参考时钟可以选择TCXO或者TCXO倍频后的频率,任何时候,DDS都是在这个参考时钟的驱动下按照频率控制字进行相位累加,每次累加到2pi,就完成了一个周期。 DDS的参考时钟不应该与输入信号的采样时钟一致,否则就会产生这样的现象:DDS ...
-
LDMOS栅极驱动电路
LDMOS的输出特性与LDMOS栅极驱动电路密切相关,使用模拟开关驱动LDMOS栅极,有如下特征: 出现低频段杂散,谱线的位置随机,但可以观察到一定的分布特性 开关频率越高,谱线越密;开关频率越低,谱线越稀疏 更改开关占空比,谱线分布无明显变化 栅极电压越高,谱线幅度越高 将LDMOS关断电压设置为略低于LDMOS打开的临 ...
-
Allegro如何美观的对铜皮开窗
相信大家在画PCB时,经常会有对铜皮进行开窗亮铜皮处理,以便更好的导热和散热,但会遇到非GND网络的过孔,需使用油墨遮盖防止短路,这时就有对铜皮做挖空的动作,但是怎么操作才会美观,请往下看。 铜皮开窗说穿了就是不上油墨,哪里开窗放空哪里,开窗对应的层是Soldermask,路径:Color192 -> Layers -> Geome ...
-
OrCAD Capture导出BOM的另一种方法
09年中旬发布过一篇文章《用OrCAD Capture导出BOM的方法》,其经典方法一直沿用至今,这次将介绍一种新的导出BOM方法,按大家习惯可二选一。另外新方法有个好处:原理图可根据symbol颜色直接看出哪些物料是空贴即DNS的,如下图灰色symbol,检查原理图一目了然~ 这里以Cadence17.4为例,具体实现方法: 1、打开.dsn原理 ...
-
AD9361软件无线电实验(4)DPSK解调
前些天我在博客上分享了使用FPGA+AD9361进行DPSK调制的过程,相对于DPSK解调来说,DPSK调制过程比较简单。一个显而易见的问题是,作为发送端的AD9361与作为接收端的AD9361的本振频率必定存在偏差,使得AD9361接收到的基带数据像是被调制了一样。我在尝试分析本振频偏问题时,曾经使用信号源生成DPSK信号并由AD9361接收 ...
-
AD9361软件无线电实验(3)DPSK调制
前面两篇文章分享了我对数字基带信号与成型滤波的理解、测试、验证,本文将分享DPSK在AD9361上的实现。思路是这样的,首先在Matlab上验证DPSK调制后的频谱,然后在FPGA中采用伪随机序列作为原始数据,经上采样、成型滤波后送入AD9361,由AD9361完成IQ调制并最终发射出去。在本文中,最终的已调DPSK信号,其物理层速率是 ...