使用ATtiny1614微处理器及其内部数模转换器(DAC)构建的微型函数发生器。
硬件部件
- Microchip Technology ATtiny1614× 1个
- Arduino IDE
手动工具和制造机
- 3D打印机(通用)
- 烙铁(通用)
ATtiny1614是新型ATtiny微处理器的一部分。其功能之一是内置的数模转换器或DAC。该项目开始时是一项实验,目的是发现使用内部DAC产生正弦波的局限性。
这个概念很简单,填写一个正弦波各个点的电压电平表,然后通过DAC反复播放它们。考虑为一个完整的波形周期存储256个点。要以1Hz的频率输出此波
形,需要在一秒钟内输出256个点。因此,执行此操作所需的时钟速度为256Hz。在10Hz时,时钟速度需要为2560Hz,在10kHz时,时钟速度需要为2.56MHz。请注意,这意味着输出点的“循环”必须能够从查找表中读取值并将其以1 / 2,560,000或0.39uS的速率发送到DAC。因此,处理器的速度将决定最大频率是多少。
提高速度的一种方法是在查找表中每隔一秒钟输出一次语音。这种效果使速度加倍,但导致输出效果不尽人意。我使用这种方法来允许振荡器以比处理器可以提供的速度高得多的速度运行,但是输出质量因此受到了影响。
随着更高频率跳过更多点而导致输出性能下降
构建一个简单的振荡器模块
因为ATtiny1614处理器仅采用SMD封装,所以我决定在振荡器PCB上主要使用SMD封装。用户界面是一个由MAX7219 LED驱动器和旋转编码器驱动的5位7段显示模块。该板上还包含用于每个旋转编码器触点的施密特触发器及其按动开关。这将消除机械触点的反跳。