原理圖
完整原理圖
RIOTOUS開發板原理圖
這個項目有三個主要組件:運行的微控制器RIOTOUS框架,固件本身和R2R DAC。一些PIC器件內置了數模轉換器,但PIC16F516沒有內置數字/模擬轉換器。因此,要使用PIC16F1516產生模擬信號,我們有兩種選擇:使用PWM和RC電路或使用R2R梯形電路。
雖然PWM電路允許通過以下各種電壓輸出:調整PWM的占比,R2R由于多種原因而成為個人喜愛。首先,R2R非常簡單,只由電阻組成。其次,它們會立即響應,因此可以在比PWM對應的頻率更高的頻率下使用。
R2R梯形圖在輸入電阻上使用比例加權,使得最高位產生的電壓輸出是其輸出電壓的一半。最大值,而最低位產生的輸出電壓等于最小可能步長。
在我們的例子中,我們使用的是8位輸出,它給出了255步,因為我們的電路是在3.3V系統中,第7位將產生1.5V的電壓,而第0位將產生3.3/256 = 0.0129V的電壓。當所有位都打開時,所有比例輸出電壓加起來給出3.3V。
雖然這種方法可用于產生模擬信號,但存在嚴重的缺點;輸出是量化的。了解這意味著什么的最好方法是查看探測輸出:
由于最小步長值的大小有限,步驟會急劇增加并降低電壓水平。這導致不純的波形可能與其純模擬對應物的行為不完全相同。
R2R階梯產生階梯式模擬信號,最后一步是緩沖它以改善輸出阻抗。該項目使用的是LM358,但需要注意LM358,因為它不能在正軌附近工作。
如果LM358由3.3V電源供電,它可輸出的最大電壓為VCC - 1.5V,在我們的情況下,相當于大約1.8V。因此,一半的輸出波形會被削波而無法工作,因此為了解決這個問題,LM358使用外部電源(5V效果很好)來增加其最大工作電壓。
物聯網頻率發生器如何工作:固件
頻率固件分為兩個主要區域:RIOTOUS框架和頻率波形生成。雖然RIOTOUS本身具有復雜的方面,但使用RIOTOUS很容易,并且處理來自控制器程序(即RIOTOUS服務器)的命令的代碼也很簡單。
當電路首次啟動時,它配置控制器使用內部振蕩器,正確配置IO端口,并確保關鍵變量處于已知值。然后微控制器運行RIOTOUS配置,正確配置UART模塊,RIOTOUS引擎和其他所需變量。完成后,設備將嘗試連接到指定的Wi-Fi網絡和服務器。一旦完成這兩個動作,微控制器就會運行處理波形生成的主代碼批量。
波形生成代碼本身相當簡單,主要使用查找表來生成轉換為模擬信號的數字輸出。
正弦波,三角波和鋸齒波形使用32字節數組,這些數組在特定時間包含各自波形的絕對值。
可以增加點數,這樣可以平滑波形(使它們更純凈) ,但這是以最高頻率為代價的。因此,作為最終設計師,您必須決定什么是更重要的,純度或速度。就個人而言,速度更重要,因此我選擇使用32個步驟。提高速度的一種方法可能是使用RAM陣列而不是ROM陣列(因為PIC上的表查找可能很慢)。
主程序/服務器
控制頻率發生器的應用程序是用VB.net編寫的,是也是頻率發生器連接的RIOTOUS服務器。但是,我們可以很容易地使用MMF2制作程序并將服務器分開,但最近,VB.net被忽略了,所以我決定使用VB.net而不是MMF2。
我們的VB.net應用程序只有幾個對象,包括用于選擇波形輸出的按鈕,我們可以輸入時間基準的單個文本框(0到255之間),服務器日志窗口(用于查看活動),以及啟動服務器按鈕。
啟動服務器時,后臺的RIOTOUS框架等待廣告端口333上的傳入連接,當設備連接時,服務器響應新端口連接,然后關閉連接。
您可以使用以下五個命令之一控制頻率發生器:
“SQUARE” - 使用方波
“三角” - 使用三角波形
“SAW” - 使用鋸齒波形
“SINE” - 使用正弦波形
通過僅發送一個字節設置時基(以字節為單位)
構建頻率發生器
該項目可以使用大多數電路構造技術構建,包括面包板,條形板,矩陣板和PCB。對于那些剛接觸電子產品的人,不建議使用焊接技術,因為您很容易犯錯誤。在這個項目中,為了方便起見,我使用了一個RIOTOUS DevBoard,并且可以很容易地將外部R2R梯形圖直接連接到插槽中。
R2R轉換板
由于KiCad出現故障,我不得不以奇怪的方式安裝LM358!
這個項目可以輕松擴展,以制作更具可定制性的函數發生器,其功能包括可自定義的波形,可調增益,甚至觸發。由于該項目通過互聯網連接到VB.net程序,因此可以在兩者之間傳輸大量信息,從而有效地為筆記本電腦和臺式機等強大的計算設備提供IO功能。
-
頻率發生器
+關注
關注
0文章
19瀏覽量
10014
發布評論請先 登錄
直流高壓發生器怎么用


評論