基于CPLD的DDS正弦信號發(fā)生器的設計簡(jiǎn)介
這幾天終于實(shí)現了DDS正弦信號的發(fā)生,限于CPLD的128宏單元不夠用也不知道怎么優(yōu)化,后來(lái)就干脆把按鍵、頻率顯示、頻率控制字交給單片機控制產(chǎn)生,再由單片機講頻率控制字傳送給CPLD,這樣就實(shí)現了頻率的控制。最終產(chǎn)生的正弦信號頻率范圍為1HZ~30KHZ,頻率可步進(jìn)1HZ也可通過(guò)單片機預置,也可以自動(dòng)掃頻信號。起先出來(lái)的頻最大誤差達到2HZ多,覺(jué)得不對勁出來(lái)的頻率應該很精確不會(huì )有這么大的誤差,后來(lái)發(fā)現原來(lái)是晶振不準有點(diǎn)誤差,后來(lái)經(jīng)程序修改使輸出最大頻率誤差在0.1HZ以?xún)?,?jīng)過(guò)這幾天的努力總算感到了一點(diǎn)的欣慰。
本文引用地址:http://dyxdggzs.com/article/190973.htm這是VHDL頂層模塊:
這是當k=001111111111111時(shí)的仿真波形:
單片機控制6個(gè)數碼管顯示當前的頻率,P1口接4個(gè)功能按鍵,分別是+、-、選擇和掃頻,再用兩片574向CPLD輸出頻率控制字。限于時(shí)間暫時(shí)做到這么多。
再說(shuō)一點(diǎn)吧,由于是用DAC0832轉換的(轉換時(shí)間1us)所以晶振就限制在1M之內了,出來(lái)的最大頻率,根據奈奎斯特采樣定理也就限制在0.5MHZ之內了(不過(guò)失真很大的,取小點(diǎn)好了),最后對出來(lái)的波形再做濾波就可以了。
評論