使用ATtiny1614微處理器及其內(nèi)部數(shù)模轉(zhuǎn)換器(DAC)構(gòu)建的微型函數(shù)發(fā)生器。
硬件部件
- Microchip Technology ATtiny1614× 1個(gè)
軟件應(yīng)用程序和在線服務(wù)
- Arduino IDE
手動(dòng)工具和制造機(jī)
- 3D打印機(jī)(通用)
- 烙鐵(通用)
ATtiny1614是新型ATtiny微處理器的一部分。其功能之一是內(nèi)置的數(shù)模轉(zhuǎn)換器或DAC。該項(xiàng)目開始時(shí)是一項(xiàng)實(shí)驗(yàn),目的是發(fā)現(xiàn)使用內(nèi)部DAC產(chǎn)生正弦波的局限性。
這個(gè)概念很簡(jiǎn)單,填寫一個(gè)正弦波各個(gè)點(diǎn)的電壓電平表,然后通過DAC反復(fù)播放它們??紤]為一個(gè)完整的波形周期存儲(chǔ)256個(gè)點(diǎn)。要以1Hz的頻率輸出此波
形,需要在一秒鐘內(nèi)輸出256個(gè)點(diǎn)。因此,執(zhí)行此操作所需的時(shí)鐘速度為256Hz。在10Hz時(shí),時(shí)鐘速度需要為2560Hz,在10kHz時(shí),時(shí)鐘速度需要為2.56MHz。請(qǐng)注意,這意味著輸出點(diǎn)的“循環(huán)”必須能夠從查找表中讀取值并將其以1 / 2,560,000或0.39uS的速率發(fā)送到DAC。因此,處理器的速度將決定最大頻率是多少。
提高速度的一種方法是在查找表中每隔一秒鐘輸出一次語音。這種效果使速度加倍,但導(dǎo)致輸出效果不盡人意。我使用這種方法來允許振蕩器以比處理器可以提供的速度高得多的速度運(yùn)行,但是輸出質(zhì)量因此受到了影響。
隨著更高頻率跳過更多點(diǎn)而導(dǎo)致輸出性能下降
構(gòu)建一個(gè)簡(jiǎn)單的振蕩器模塊
因?yàn)锳Ttiny1614處理器僅采用SMD封裝,所以我決定在振蕩器PCB上主要使用SMD封裝。用戶界面是一個(gè)由MAX7219 LED驅(qū)動(dòng)器和旋轉(zhuǎn)編碼器驅(qū)動(dòng)的5位7段顯示模塊。該板上還包含用于每個(gè)旋轉(zhuǎn)編碼器觸點(diǎn)的施密特觸發(fā)器及其按動(dòng)開關(guān)。這將消除機(jī)械觸點(diǎn)的反跳。