一、前言
       这边来分享一下这次国赛的A题软硬件设计过程,本次分享会拆分成几篇博客进行分享,这几篇博客大体会采用时间顺序来进行,来纪念这次国赛的经历,博客里面会涉及本次参赛的软硬件设计思路和原理,尽可能详细的记录自己的设计过程。

二、电赛第一日

图1 硬件电路图

我本次硬件设计的主题是围绕了VCA810芯片进行的设计,这是一个压控增益运放,0V到-2V的电压控制-40dB到40dB的增益,改运放的其他指标均可满足本题的信号处理要求。有了这个运放那么硬件设计的难度将会大大降低(开赛第一天我就是这么想的,但是使用了这个运放为我后面的硬件隐患埋下了伏笔,这个容我慢慢道来。),于是围绕了这个运放我很快的就设计好了最初的硬件方案。由于题目要求必须使用TI的MCU和MCU内部的ADC,所以需要将交流信号进行抬升,也就是U3A运放组成的一个加法电路,实现一个交流信号和直流电压1+1的效果。(最终的信号叠加是3Ui+1Udc,这个修改是有原因,和前面的VCA810有关。后续会讲到,现在就先按照最初的思路慢慢的进行。)现在交流信号已经可以通过电压进行控制幅值,并且通过加法器已经可以直接送入到MCU里采集了,由于我选择的MCU是TM4C123GH6PM这个芯片没有DAC外设,所以需要使用PWM来模拟DAC,将PWM进行二阶RC滤波然后经过一个反相器得到一个VCA810的控制电压,也就是U1运放部分电路。(-2V到0V控制VCA810)
       然后其他的就是一些接口以及去耦电容加指示灯了,这里我的显示方案采用了大彩的串口屏来显示,这样可以较为方便的实现波形的显示,上位机通信采用蓝牙方式,采用蓝牙的好处是即使自己无法编写上位机APP(后面确实没写出来,没写过APP的我最后连环境都没搭建明白。),也可以使用市面上的通用蓝牙串口助手来显示一些文字信息拿一些分数。
       敲定完整体的方案和硬件电路图之后就开始用洞洞板焊接了一个进行测试,毕竟这道题的主要难点在于软件部分,之前我也没接触过TM4C123G这个芯片,必须尽快拿出一个可以测试的硬件来进行测试。这边简单介绍一下TM4C123G的软件环境搭建,由于这个芯片是cortex-m4f的内核的可以直接使用keil5-mdk进行开发(直接放弃CCS,不然别人代码都写完了,你工程还没建立。就是这么心酸),然后点击这个图标进行芯片包的安装,在左边栏找到对应的芯片包(图2),点击Tiva C Series后就可以在右边栏进行install了。

图2 芯片包安装

然后就是建立一个芯片工程,工程建立之后就是在keil里面的Manage Run-Time Environment(图3)添加启动文件和库(这里就不详细讲了,网络上应该比较多的文章介绍。)。

图3 管理运行环境

经过一些操作和排错之后一个基本的工程模板就建立好了,可以直接编写裸机程序了,于是我就写了个点灯程序烧写进去看了看,成功运行没问题。然后很快的编写了PWM驱动、串口驱动,然后开始进行最重要的ADC驱动的编写了。当时的软件设计思路如下,TIM4C123G的ADC最大转换速率为1Mbps,由于采样信号的频率最大为100K,需要计算出5次谐波的分量,因此1Mbps是最低的门槛了(根据奈奎斯特采样定理),必须让ADC全速运行,然后使用DMA进行数据的搬运,这样才能保证ADC的采样是等间隔的1us,计划是采样1024个点然后进行计算FFT。因此ADC触发DMA采样的驱动就是很关键了,这个不能解决一切白谈。
       当我开始编写ADC触发DMA采集时刚刚下午五点左右(吃饭时还和做另一题的同学说我们硬件搭完了,软件进度也很快,然后现实就给我上了一课。),由于这个芯片的资料比较少,例子一般都需要去官方下载和参考手册进行编写,然后试来试去一直到了下半夜也没有搞定这个驱动,一直弄到两点钟才把这个驱动搞定,结合DMA的ping-pong模式才可以实现需要的功能,真是山重水复疑无路,柳暗花明又一村。就这样最基本也是最重要的驱动可以使用了,然后就是添加CMSIS-DSP库进行FFT的测试了,由于我添加的库源码,因此使用AC5进行编译的时候优化等级不能是0,不然会造成编译器报空间不够,这个库需要120K的flash来放置一些数组,使用的时候需要注意空间的分配。
       这时时间已经是凌晨3点钟了,准备休息几个小时再开始下步工作。

三、电赛第一日总结
       第一题早上定完题目之后,白天迅速的定完方案和硬件之后,在晚饭前有搭好了测试硬件并且建立了软件工程,代码也跑起来了,总体进度还是比较快的,但是ADC的驱动确实费了很大的功夫,中间一度信心动摇,但是最后的结果还是可以接受的。第一日完成基本的硬件设计,软件的驱动代码编写,准备开始下面的业务代码编写。

2021年全国大学生电子设计竞赛——信号失真度测量装置(A题)——设计过程分享(1)相关推荐

  1. 2021年全国大学生电子设计竞赛——信号失真度测量装置(A题)——设计过程分享(3)

    一.前言        之前已经弄好了基础的要求,决定使用频率来校准测量值,这里就涉及到一个问题是如何去得到信号的基波频率,并且发挥部分的一个要求是绘制出一个周期的完整波形,这个要求也需要我们去计算得 ...

  2. 2021年全国大学生电子设计竞赛——信号失真度测量装置(A题)——设计过程分享(2)

    一.前言        电赛的第二天一般需要去确定最终的硬件电路,因为电路板的腐蚀和焊接都需要一定的时间,之后的硬件基本就不会再进行大改,最多都是在现有的基础上更改元件参数或者割线修改,之后即使功能不 ...

  3. 2021年全国大学生电子设计大赛——信号失真度测量装置(A 题)实验报告

  4. 【我的电赛日记(完结)---2021全国大学生电子设计竞赛全国一等奖】A题:信号失真度测量装置

    目录 前言 题目分析 方案设计 原理图电路 程序设计 实物展示 总结 太久没更新了,闲来无事更新一下自己本科最后的一次比赛,也算是为我的电赛日记画上完美的句号了. 前言 本系统以TI MSP432P4 ...

  5. 数字-模拟信号混合传输收发机(E 题)--2021 年全国大学生电子设计竞赛

    数字-模拟信号混合传输收发机(E 题)–2021 年全国大学生电子设计竞赛 一 任务 设计并制作在同一信道进行数字-模拟信号混合传输的无线收发机.其中,数字信号由 4 个 0~9 的一组数字构成:模拟 ...

  6. 2021年全国大学生电子设计竞赛重新启动通知及进度安排

    大家好,我是张巧龙,昨天晚上收到了电赛重新启动的通知. 2021年全国大学生电子设计竞赛 重新启动通知及进度安排 (电组字[2021]03号) 各赛区组织委员会.各有关高等学校: 根据全国疫情变化情况 ...

  7. 照度稳定可调 LED 台灯(K 题)【高职高专组】-- 2021 年全国大学生电子设计竞赛

    照度稳定可调 LED 台灯(K 题)[高职高专组]-- 2021 年全国大学生电子设计竞赛 一 任务 二 要求 1.基本要求 2.发挥部分 三 说明 四 评分标准 优秀作品开源参考(来源立创开源平台) ...

  8. 竞赛通知|2021年全国大学生电子设计竞赛启动通知!

     2021年全国大学生电子设计竞赛重新启动通知及进度安排 报名截止日期:2021年11月4日8:00 各赛区组织委员会.各有关高等学校: 根据全国疫情变化情况及2021年秋季全国高校学生返校进度,全国 ...

  9. 2021年全国大学生电子设计竞赛F题中数字识别这一技术分支实践与学习笔记

    文章目录 Chapter 1 简介 Chapter 2 制作思路 Section 1 环境与成像效果及思路 Section 2 制作并训练数据集 Section 3 电脑环境配置 Section 4 ...

最新文章

  1. 引燃AI社区,不用跨界也能从文本生成图像,OpenAI新模型打破自然语言与视觉次元壁...
  2. java json设置编码_我们如何用Java编码JSON对象?
  3. 在vim中设置将tab自动转化为4个空格
  4. C#下把txt文件数据读进sql server中存储所遇到的乱码问题
  5. DigSci科学数据挖掘大赛:如何在3天内拿下DigSci亚军
  6. 缺失值填充1——缺失值查看、确定值填充、参考值填充
  7. 关闭tcp服务器_2020年2月起,不支持TCP和UDP协议的DNS服务器将被强制关闭
  8. 滴滴接盘小蓝单车,押金问题谁来负责?
  9. 蓝桥杯 ALGO-10 算法训练 集合运算
  10. 使用 Productivity Power Tools 高级扩展 来帮助你提高 VS2012 的工作效率
  11. (Unity4.7)assetbundle 坑爹总结
  12. WLC5520无法通过无线客户端进行网管故障解决
  13. 项目六 AR与减速机应用
  14. android 远程控制工具,安卓版远程协助软件
  15. 用HTML语言编写一个课程表,html做课程表
  16. python程序流程控制_Python流程控制语句详解
  17. 在sap系统新建财务BTE OBBH OB28替代
  18. echart实现中国地图
  19. 储能系统下垂控制,输出电流按虚拟电阻比例分配,并补偿有下垂系数带来的母线压降
  20. 同余方程组有解定理及其证明

热门文章

  1. 临时邮箱注册哪个快?求职的邮箱是什么邮箱?
  2. CUDA学习笔记 —— (三)GPU计算性能与线程关系
  3. 三国杀源代码【标准包】
  4. 24.匿名对象是什么?有什么作用?匿名对象的总结
  5. 应用软件——DFM分析软件
  6. 软件测试家中电压稳不稳定,当心硬件全毁 实测电压不稳对电脑伤害
  7. zookeeper客户端管理工具
  8. 龙芯平台stream编译错误问题解决
  9. Chrome浏览器调试教程
  10. 谷粒商城项目篇6_分布式基础完结篇_商品服务模块(品牌管理、平台属性、新增商品)、仓储服务模块(仓库管理)