| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 国民技术N32G45试用:利用片上DAC做一个信号发生器 -> 正文阅读 |
|
[嵌入式]国民技术N32G45试用:利用片上DAC做一个信号发生器 |
开发环境RT-THREAD 4.0.2 N32G45 Library 2.0.0 开发板N32G45XVL-STB 详细介绍N32G457系列微控制器产品采用高性能32位ARM Cortex?-M4F内核,集成浮点运算单元(FPU)和数字信号处理(DSP),支持并行计算指令。性能很强大。还有丰富的外设,DAC,运放等等。本文介绍了我利用该单片机设计的简陋的信号发生器,目前只生能成1Hz~100KHz正弦波。 本程序的时钟配置为HSE=8M,PLL=144M,AHB=144M,APB1=36M,APB2=72M,DAC CLK=36M,TIM4 CLK=72M,DMA CLK=144M 代码参考了国民技术的官方例子,DoubleModeDMASineWave。 该例子验证了N32的DAC和DMA功能,由TIM4定时器触发DAC转换。 我的代码执行流程: 1.计算出一个正弦波序列,长度为n; 2.设置输出的正弦波信号的幅度和偏置电压,以及频率; 3.根据正弦波参数和初始正弦波序列,计算出交给DAC转换的序列,其中的每一个值为12bit; 4.设置单片机的DAC、DMA和TIM4,其中定时器TIM4的周期和分频根据正弦波频率f计算得出; 5.输出正弦波。 在代码里还设计了一个根据输出信号频率调整输出序列点数的功能,在保证信号波形完整的情况下,减少内存空间占用,也有利于输出高频信号。 注意事项: 2个通道的数据放在一个32位寄存器中,本程序使用DAC1和DAC2输出同样的信号,因此在代码中有一段复制DAC寄存器的数值的代码。 开发板的VREF没有接,要跳线接到3.3V上。 计算过程利用了单片机的FPU和arm的dsp库。在arm_math.h中定义#define ARM_MATH_CM4 测试结果正弦波信号的频率范围为1Hz~100KHz。幅度和直流偏置可调,受限于单片机的供电,信号的电压范围为0~3.3V。测试结果见下图,可以看出频率还是很准的。 下图是修改信号的电压? 后续计划: 1.利用RT-Thread的强大软件包,丰富本程序的功能,比如用上位机控制产生的信号的波形和频率等参数。 2.测试DAC的带负载能力,与片上运放结合。 3.生成更多的波形。 4.测试DAC和IO口的性能,比如转换速度等等。 代码地址MULTInstrument: 国民技术&RT-THREAD大赛 多功能电子测量仪器 代码写的很随意,还有很大改善空间。 参考RT-Thread-在RT-Thread studio中 为STM32系列开启DSP支持RT-Thread问答社区 - RT-Thread |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 9:41:54- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |