在本文中,我们将介绍可以输出各种模拟信号的电路板的一般概念和一些设计细节。
价格合理的高速数模转换器(DAC)的可用性为相当简单的电路打开了大门,这些电路可以产生正弦波,三角波,斜波等。我将这些电路描述为“直截了当”,因为它们不需要复杂的模拟电路; 设计过程仍然有点挑战,但在我看来,相对于电路提供的性能,复杂程度相当低。
这里的关键概念是使用数字数据而不是模拟电路。设计一个可以产生完全可定制的正弦曲线,三角波,斜坡,啁啾信号和调制无线电波形的纯模拟电路板并不容易。对于数模转换设计,我们有频率限制和DAC的性能限制,但在此之后,所有这些都归结为数字:一个信号路径创建许多不同的波形,因为组件只是将数字数据转换为模拟信号。
我最近设计了一个任意波形发生器(AWG)。这里是:
在不久的将来,我将把这个董事会纳入一些项目。不过,在此之前,我们将通过单独的文章讨论技术细节。毕竟,在开始使用之前知道如何以及为什么有效是个好主意。正如您可能在照片中看到的那样,该设计包括两个主要集成电路和许多较小的支持组件。两个主要的IC是高速微控制器和高速DAC。在本文中,我们将重点关注微控制器。
MCU
我将自己局限于Silicon Labs微控制器IC,因为它们是出色的设备(可能更重要),因为我对它们非常熟悉。尽管存在这种限制,但仍有许多可供选择。我决定使用C8051F360,在这种情况下,决定很简单:我想要尽可能高的时钟速度,这对于SiLabs MCU来说是100 MHz。其8051系列中只有两个支持100 MHz的核心频率,其中一个系列与新的SiLabs IDE不兼容。所以我留给了C8051F36x系列,在这些部件中,C8051F360在引脚数和外设方面是最强大的。
功率
首先要做的是:去耦电容。我为每个电源/接地对提供0.1μF电容,为四对电阻提供4.7μF电容。
这是一个慷慨的解耦方案,当我意识到它堵塞了布局的一个具有挑战性的部分时,我决定消除其中一个4.7μF的电容。
I / O连接
下一个示意图摘录传达了MCU的主要数字和模拟输入/输出连接。
该设计仅使用两个数字外设:UART模块和可编程计数器阵列(PCA)的输出。UART信号通过USB转UART适配器板,可实现MCU与PC之间方便的串口式通信。
PCA输出用作驱动DAC的时钟,它还使MCU输出DAC数据的下一个字节。为什么DAC_CLK信号连接到两个I / O引脚?这只是我经常在我的PCB中加入的“备份计划”之一。我对我计划使用的中断方案有一些小疑问,而且我总是对使用交叉开关引脚分配产生某种错误感到模糊不清。在这种情况下,我可能过于谨慎,但最重要的是,如果我不是100%肯定某事,我会尝试采用一种解决方法。它是如此容易解决问题之前的PCB已经制造和组装。
以下是其他连接的说明:
内部参考电压(用于模数转换)在P0.3上输出。两个旁路电容的值基于数据表的建议。
时钟信号(由MEMS硅振荡器产生)通过XTAL2引脚进入MCU。我本可以使用MCU的内部振荡器,但由于理论上这是一个对时序敏感的应用,因此使用高精度外部振荡器更为合适。
DAC_SLEEP可用于将DAC置于低功耗状态。
MIC_OUT是MEMS麦克风的输出信号; 它连接到P1.6,可以连接到微控制器的ADC。
8位DAC数据在P2上驱动。我确保将整个8位端口专用于这些信号,这样我就可以使用一个语句驱动新的DAC数据,例如“P2 = 0xAA”或“P2 = DAC_data [n]”; 我们试图在这里最大化速度,每个额外的处理器指令限制了我们更新DAC输出的速率。
编程和调试
编程/调试引脚(C2CK和C2D)连接到连接器J4上的相应引脚,该引脚与C2适配器板上的相应连接器配对。我还将GPIO引脚连接到J4,以便我可以使用适配器板上的测试/调试组件。
C2CK引脚也是复位引脚。复位线上有一个~100kΩ的内部上拉电阻,因此不需要外部上拉电阻。但是,通过建立到电源轨的低阻抗路径,外部1kΩ上拉电阻可提供额外的保护,防止杂散复位。
结论
我们讨论了基于DAC的任意波形发生器的一般概念,我们详细研究了原理图的微控制器部分。在下一篇文章中,我们将介绍数模转换器。