基于STM32F103RE ADDA板制作
近期需要进行基于声音传播测距的实验,需要临时制作一款可以发送Chirp音频信号和接收信号的电路板。要求其中的内部RAM足够大,可以采集到音频信号进行后期处理。
电路硬件设计1
1.电路原理2
原理图设计-MCU及其接口
原理图设计-电源部分
2. 电路PCB版图
PCB版图
底部的两个接口的定义:
- 左4PIN接口:电源接口,PIN1,2:VCC(+5V), PIN3,4:GND
- 右8PIN接口:ADDA接口,见下面表格:
序号 | 符号 | 功能定义 |
---|---|---|
1 | AD0 | AD输入0 |
2 | AD0 | AD输入0 |
3 | AD0 | AD输入0 |
4 | AD0 | AD输入0 |
5 | GND | 电源地 |
6 | 3.3VA | 内部稳压模拟3.3V |
7 | DAC1 | DA输出1 |
8 | DAC2 | DA输出2 |
- 顶部4PIN接口:SPI接口,从左到右分别是:MOSI,MISO,SCK,NSS
- 左侧4PIN接口:IO口,从上到下:IO1,2,3,4
调试错误:
(1)在第一版本中没有将UART3的管脚引出来。
- 顶部的4PIN另外功能定义:根据STM32F103cb管脚复用,顶部的4PIN还可以定义为TIME3,TIME2的PWM输出。
PSPI管脚重新定义为TIME3,TIME2的PWM输出
在PIO中的IO从上到下分别是PB15,PB14,PB13,PB12。在CONTROL.H中分别定义为:IO1,IO2,IO3,IO4。
它们的输入,输出功能请在Control.C的初始化程序中进行设置。
PIO中定义的输入输出口
3. 电路软件3调试以及调用命令
安装完毕元器件之后,下载初步的开发软件,便可以设置读取AD采集的信号波形了。
安装完毕后,下载程序进行调试
采集到的信号源典型波形
对F103内部的DA、AD模块初始化的语句。
HAL_ADC_Start(&hadc1);HAL_ADC_Start(&hadc3);HAL_ADC_Start(&hadc2);//--------------------------------------------------------------------------HAL_TIM_Base_Start_IT(&htim1);g_nTime1InterruptCount = 0;g_nADC1BufferPoint = 0;extern DAC_HandleTypeDef hdac;HAL_DAC_Start(&hdac, DAC_CHANNEL_1);HAL_DAC_Start(&hdac, DAC_CHANNEL_2);
每个10ms通过如下语句赋值DAC1,DAC2相应的输出波形:
//--------------------------------------------------------------------------if(++nShowCount >= 10) {nShowCount = 0;
// printf("%d\r\n", g_nTime1InterruptCount);DACOutput1(GetADC1());DACOutput2(0xfff - GetADC1());}
产生Chirp声音
1. 使用Python产生仿真Chirp波形
具体产生Chirp信号的参数和方法见下面的代码。
#------------------------------------------------------------
startf = 50
endf = 1500
data_length = 2048
samplefrequency = 5e3
deltat = 1/samplefrequency
#------------------------------------------------------------
angle = 0
data_buffer = []
#------------------------------------------------------------
for i in range(data_length):data = int((sin(angle) + 1) * 0xfff)data_buffer.append(data)frequency = (endf - startf) * (i + 1) / data_length + startfangle = angle + frequency * deltat
t = linspace(0, data_length * deltat, data_length, endpoint=True)
plt.plot(t, data_buffer)
plt.xlabel('Time (s)')
plt.ylabel('Sample Value')
plt.show()```
数学产生的Chirp信号
2. F103 产生相同的Chirp信号并输出
使用单片机产生的Chirp信号在示波器上显示的波形
DOP 文件 : D:\zhuoqing\DesignCenter\MyResearch\2020\ADDAF103RE\Hardware.dop ↩︎
电路原理图 : d:\zhuoqing\AltiumDesigner\Test\2020\ADDAF103RE\ADDAF103RE.SchDoc ↩︎
电路软件所在的目录:D:\zhuoqing\window\ARM\IAR\STM32\Application\Test\2020\ADDAF103RE\Src\main.c ↩︎
基于STM32F103RE ADDA板制作相关推荐
- 飞翔的小鸟游戏基于arm开发板制作
在arm开发板上主要基于C语言 虚拟机的使用 .而在操作一个系统必须的 三大步骤 1.open 函数 打开文件 #include <sys/types.h> ...
- 基于arduino uno 开发板制作的 智能书包项目
基于arduino uno 开发板制作的智能书包,当时收短视频启发,集合自动售货机的代码和RC522 读卡模块代码结合制作,现基本功能可以实现 ,目前代码部分尚不稳定需要继续改进 //一个智能书包小发 ...
- 基于Arduino Uno开发板制作音乐播放器
基于Arduino Uno开发板制作音乐播放器 本文将基于Arduino开发板实现一个音乐播放器. 利用Arduino Uno读取sd卡模块中内存卡的音乐,传输信号到扬声器进行播放. 一.项目软硬件简 ...
- 20165219王彦博《基于Cortex-M4的虚拟机制作与测试》课程设计个人报告
20165219王彦博<基于Cortex-M4的虚拟机制作与测试>课程设计个人报告 一.个人贡献 参与课设题目讨论及完成全过程: 资料收集: 负责环境搭建,代码运行下载: 撰写小组结题报告 ...
- FPGA之道(19)以FPGA为核心的开发板制作
文章目录 前言 开发板制作 前言 学习FPGA的初期,我们习惯到网上买一款FPGA开发板,这是新手学习FPGA开发的最佳途径,负责任的开发板制作者会提供相应的教程供练习,毕竟能动手操作上板子才是真正玩 ...
- 移植根文件系统到linux内核 s3c2440,u-boot-2011.06在基于s3c2440开发板的移植之引导内核与加载根文件系统...
三.根文件系统的制作 我们利用busybox来制作根文件系统 1.在下列网站下载busybox-1.15.0.tar.bz2 在当前目录下解压busybox tar -jxvf busybox-1.1 ...
- 【RTOS】基于V7开发板的uCOS-III,uCOS-II,RTX4,RTX5,FreeRTOS原版和带CMSIS-RTOS V2封装层版全部集齐...
RTOS模板制作好后,后面堆各种中间件就方便了. 1.基于V7开发板的最新版uCOS-II V2.92.16程序模板,含MDK和IAR,支持uC/Probe https://www.cnblogs.c ...
- 基于uFUN开发板和扩展板的联网校准时钟
项目概述 上周在uFUN试用群里看到管理员说试用活动快结束了,要抓紧完成评测总结,看大家的评测总结也都写了,我也不能落后啊!正好最近做的扩展板到手了,于是赶紧进行调试,做了一个不用校准的时钟,时钟这种 ...
- 【Arduino】基于4*4键盘制作计算器
实验现象 在4 * 4键盘输入简单的数学运算,如加法.减法.乘法和除法,实时在串口监视器显示答案. 实验准备 arduino主板-1 面包板-1 数据线-1 4 * 4键盘-1 跳线若干 连接电路 图 ...
最新文章
- php 汉字的首字母
- jdbc和mysql面试题_JDBC数据访问技术面试题(附答案)
- 答TOGAF企业架构的一些问题
- 图文直播:Pokémon Go真爱粉与“脑残粉”之间的爱恨情仇
- java小球碰撞实验报告_20155317 《Java程序设计》实验五网络编程与安全实验报告...
- 使用C语言----修改密码
- poj 2945 Find the Clones 用trie树实现
- PHP中等良好优秀,成绩优秀,中等,良好怎么分的啊?分为哪几个?
- 【NLP】近期必读ICLR 2021相关论文
- react router 路由守卫_React-router 路由守卫
- [现代控制理论]8.5_线性控制器设计_轨迹跟踪simulink
- 利用arcgis软件画地图
- prometheus使用cAdvisor监控容器
- OSChina 周日乱弹 ——欣欣像蓉!还我程序员公道!
- Android5.0系统下代码格式化sd卡方法
- Linux系统到底是什么?
- STM32添加以太网连接
- XXXXXXXXXXX学校“专家问诊课”活动方案
- 计算机培训考试内容,计算机等级考试的科目和内容解析
- 他教全世界程序员怎么写好代码,答案写在这里!
热门文章
- 模仿SDWebImage实现异步加载图片
- Exchange企业实战技巧(5)配置OWA域名简写
- Hadoop:The Definitive Guid 总结 Chapter 7 MapReduce的类型与格式
- GridView 类型公开的所有成员(公共属性、公共方法、私有属性.......)
- [SDOI2017]硬币游戏
- Django之BBS博客项目
- cmd文件内容添加到文件内容命令
- Elasticsearch Javascript API增删改查
- Python expandtabs() 方法
- Guava库学习:学习Guava EventBus(二)EventBus 事件订阅示例