基于EZ-USB單片機的正弦信號發生器
③ 判斷是否重新定位描述符表,以確保描述符表的存放地址位于片內RAM;
④ 使能 USB中斷,并允許所選擇的中斷;
⑤ 判斷是否有來自系統的“重新枚舉”命令,如有,則重新枚舉;
⑥ 初始化 AD9851模塊內部寄存器以及缺省模式下的信號配置;
⑦ 判斷是否接收到 setup令牌包,如有,則調用相應函數響應 USB設備請求命令;
⑧ 判斷是否進入睡眠狀態,如是,則將 CY7C68013置于睡眠狀態;
⑨ 查詢是否有來自上位機的修改波形命令,按照程序執行與波形修改有關的任務;
⑩ 返回⑦,循環接收并執行來自上位機的各種命令。
2 AD9851工作流程 AD9851工作流程共包含40位控制碼(D39~D0),其作用為:
(1)D39、D38用來控制AD9851數據輸入的模式。AD9851的數據輸入模式分為并行輸入模式和串行輸入模式兩種。在并行輸入模式下,模式控制碼為“00”,每次8bit數據輸入端D0~D7分5次數輸入頻率控制字。
(2)D37用來調節AD9851輸出的功率。
(3)D36~D32相位調制碼,用來控制AD9851的相位調制量。
(4)D31~D0用來控制AD9851輸出的頻率。這32位頻率控制碼是由輸入的頻率控制字轉換過來的。具體轉換關系為:
(5) AD9851 中的 DDS內核所需輸入控制字由單片機提供。在進行頻率控制時, 首先送入相位調制碼、功率調節碼和輸入模式控制碼, 然后送入 32bit頻率控制碼。本系統設置AD9851工作在并行數據輸入模式。系統啟動后,接受用戶從鍵盤所輸入的功能,調用相應的子程序,根據信號的頻率值、以及 2psk功能下相位值,單片機將頻率值根據公式轉換為頻率相位控制字,初始相位值按照公式Phase(度)/11.25°轉換為 5位二進制數相位調制字,準備送往 AD9851頻率控制輸出。在傳輸數據之前,單片機先向 AD9851產生一個 RESET上升沿信號, 并延時 7ns,使整個下位機系統復位, 再依次傳輸一個 8 bit的相位調制碼和置AD9851工作模式碼以及 32bit的頻率控制碼。每傳輸一次 8bit的控制碼后,需由軟件產生一個有效的 WCLK上升沿信號,將控制碼送入 AD9851輸入數據寄存器中,重復五次后即可將40位的控制碼全部加載到AD9851內部的數據寄存器中,昀后產生一個有效的 FQUD上升沿信號,將 40bit的控制碼全部加載到 AD9851中的 DDS頻率合成單元中,經過 13到 18個時鐘周期后,就可獲得所需的頻率輸出信號。
3 驅動程序設計在 Cypress 公司的 EZ-USBFX2 開發包中,提供了完整的 CY7C68013 驅動程序源代碼、控制面板程序及固件的框架,可以大大加快用戶開發的進度。用戶只需對所帶驅動程序稍加
修改,再經過 DDK 編譯后使用,使得軟件開發者大量的時間主要集中在應用程序和固件的開發上。本設計采用的 USB設備驅動程序就是對 FX2開發包所帶的驅動程序做了一些修改,主要是修改了 DeviceIoControl例程,增加了控制數據傳輸函數、啟動和停止 AD9851等。四結束語
本文提出了一種基于 EZ-USB和 AD9851的正弦信號發生器系統方案,利用 EZ-USB的優點,通過上位機軟件的簡單數據輸入,可以產生供實驗所需要的信號源,極大的提高了系統的靈活性和可配置性。通過實驗測定,測試的輸出頻率準確度與穩定度達到 10 -6。參考文獻:
[1].CY7C68013datasheethttp://www.dzsc.com/datasheet/CY7C68013_.html.
[2].AD9851datasheethttp://www.dzsc.com/datasheet/AD9851_251850.html.
[3].EZ-USBdatasheethttp://www.dzsc.com/datasheet/EZ-USB_305660.html.
[4].AD811datasheethttp://www.dzsc.com/datasheet/AD811_1055521.html.
評論