利用STC8G1K08实现的数字信号合成模块
简介
普通的电子学实验可以借助于面包板方便实现。其中会涉及到一些信号源、CM押镖、频率计等通用测量功能模块。在普遍要求对测量过程进行自动化的今天,这些设备往往需要能够直接通过有线,或者无限的方式连入计算机,形成自动测量的系统。
面包板可以比较方实现这些模块的灵活连接,使得测量系统在构建和拆解都比较方便。测量功能模块通过无线方式连入计算机,可以减少这部分的引线部署的步骤,提高系统搭建的效率。
▲ 基于面包板的测试系统
下面显示了基于面包板进行测试被控对象频率小的的系统,其中信号源是由DDS芯片AD9833产生,另外一块单片机卡来获取输入输出信号的幅值,频率等参数。
▲ 实验电路板及其功能模块
在博文AD9833数字信号发生器模块中给出AD9833原来的控制方案。是基于ST公司的STM32F030制作的控制板,体积相对比较大。对于未来部署在面包板上形成测量系统有比较大的影响。本文提出了基于STC8G1K08-SOP16封装的单片机重新设计的方案。进一步简化电路,缩小体积。
设计方案
设计的目标是在保留电路的基本功能的基础上,减少整体的体积。
设计电路稳定:
D:\zhuoqing\AltiumDesigner\Tools\2020\DDSAD9833\DDSAD9833.PcbDoc *
1. 电路原理图
电路的核心即基于STC8G1k08单片机,开发方便,抗干扰能力强。
电路包括有三个接口:
- ISP端口,其中有电源和UART,以及信号输出端口;
- AD9833接口插座;
- ZIgBee串口模块。
▲ 设计系统原理图
2. PCB电路板
下图所示的是设计的PCB电路板以及焊接组之后的形式。
▲ PCB电路板
下面是将实验模块安装上AD9833数字信号发生器以及ZIGBEE无线串口通讯模块。该模块可以竖直安插在面包板上,提供信号源的功能。
▲ 组装有AD9833以及ZigBee无线通信模块
对外的接口定义:
序号 | 符号 | 功能 |
---|---|---|
1 | VCC | 电源 |
2 | GND | 地 |
3 | TXD | ISP串口输出 |
4 | RXD | ISP串口输入 |
5 | GND | 底线 |
6 | OSVO | 信号输出 |
3. 软件开发
软件所在的目录:
D:\zhuoqing\window\C51\STC\Tools\SSDAD9833\SSDAD9833.uvproj
控制命令
具体命令可以参见下面的代码。
void SerialDebugProcessBuffer(void) {double lfFrequency;SerialDebugBuffer2Argument();if(g_ucSDANumber == 0) return;if(strcmp("hello", (char *)STD_ARG[0]) == 0)printf("%s is ready !\r\n", VERSION_STRING);else IFARG0("ad9833setfrequency") {sscanf(SDA(1), "%lf", &lfFrequency);AD9833SetFrequency(lfFrequency);} else IFARG0("ad9833sinusoidal") AD9833SinusoidalOutput();else IFARG0("ad9833triangle")AD9833TriangleOutput();else IFARG0("ad9833square")AD9833SquareOutput(); else if(strcmp(SDA(0), g_szChipID) == 0) {IFARG1("sf") { sscanf(SDA(2), "%lf", &lfFrequency);AD9833SetFrequency(lfFrequency); } else IFARG1("sinusoidal") AD9833SinusoidalOutput();else IFARG1("triangel")AD9833TriangleOutput();else IFARG0("square")AD9833SquareOutput(); }else printf("Error command : %s !\r\n", STD_ARG[0]);
}特别请注意对于使用芯片的CHipID作为寻找的时候,可以同时驱动多个信号源来提供信号。
利用STC8G1K08实现的数字信号合成模块相关推荐
- python--Flask学习(七)--利用Flask中的werkzeug.security模块加密
若将密码以明文的方式保存在数据库中是不安全的,可以使用一些如MD5的方式加密,但像这种加密方式也是存在安全隐患的,这里我们来学习一下利用Flask中的werkzeug.security模块加密. 1. ...
- (附源码连接)利用AI将2D照片合成3D场景
利用AI将2D照片合成3D场景 新的 NVIDIA NGP Instant NeRF 很好地介绍了神经辐射场的入门. 在短短一个小时内,您就可以编译代码库.准备图像并训练您的第一个 NeRF. 与其他 ...
- 利用python实现星轨合成
有摄影经验的朋友应该都对星轨摄影有所了解,一般可以用长曝光直接出片或者通过拍摄多张照片后利用后期软件实现星轨合成.这里我们主要就讨论多张照片合成的方法,目前比较流行的是PS的堆栈法和使用StarTra ...
- python保存变量sklearn.externals_如何利用python中的sklearn.externals 模块保存加载训练模型...
前提:在做模型训练的时候,尤其是在训练集上做交叉验证,通常想要将模型保存下来,然后放到独立的测试集上进行测试,本文主要介绍如何利用python中的sklearn.externals 模块保存训练模型, ...
- 归一化激活层的进化:谷歌Quoc Le等人利用AutoML 技术发现新型ML模块
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 最近,谷歌大脑团队和 DeepMind 合作发布了一篇论文,利用 AutoML 技 ...
- Centos 利用yum源安装 nginx stream模块
环境 CentOS 7.9 (腾讯云服务器) nginx 1.20.1 配置stream参考这里. nginx 动态模块 nginx 1.9.11 开始增加加载动态模块支持,从此不再需要替换nginx ...
- 基于python的modbus协议编程_IM5D.6B利用(2.4G)无线模块实现远程控制(基于智能编程任务赛,2019版)...
点击「蓝色微信名」关注更多比赛信息 引 言 在<中国儿童青少年威盛中国芯计算机表演赛>从第十七届活动开始,搭建了一个全新的互联网技术支持平台,实现了网络在线比赛,在全国建立了三十个省级赛 ...
- 利用python爬虫(part1)--urllib.request模块
学习笔记 文章目录 网络爬虫概述 定义 爬虫分类 爬取数据步骤 爬虫请求模块 常用方法 urllib.request.urlopen()方法 响应对象(response)方法 关于请求头 urllib ...
- 利用Python讲多张图片合成PDF文件
前言 一个做美工的朋友需要将多个图片jpg .png 合并起来,PS操作太慢了所以用了python进行完成这个任务 基本环境配置 版本:Python3 系统:Windows 相关模块:PIL pip ...
最新文章
- 前端的各种各样的面试题大全
- 解决首次运行WebDriverAgent手机开发者未信任问题
- Java线程池详解及常用方法
- 【Android Gradle 插件】ProductFlavor 配置 ( applicationId 配置 | SdkVersion 相关配置 | version 应用版本配置 )
- C++和操作系统面试问题分类
- 8-15主要复习 1.运算符优先级整体记忆 2.排序算法
- 导航模块自带的rtk算法_这款百元国产RTK板卡要改变高精度定位市场格局吗?
- python 自动控制仿真_Python自动控制鼠标操作pymouse,python
- java配置irport,一个production模式下的Ror环境搭建-airport -JavaEye技术社区
- kafka异步发送数据_在Kafka上异步发送数据
- linux 嵌入式串口通信设计目的,基于linux的嵌入式串口通信.doc
- linux /etc/shadow 文本结构
- oracle的错误代码如何查看对应的错误信息
- 机器学习之决策树_CART算法
- paip.找回密码功能流程设计(通过email)
- 涵盖全网动漫、影视、小说的APP集合,手机有了他们,看遍全网
- proteus 的使用
- 如意淘商品推荐技术介绍之一:基础推荐
- MineCraft Spigot简单开服教程
- 中国资源卫星应用中心_数据下载