Arduino + ESP32-C3 + TFT(1.8‘ ST7735S)基础平台(实验六)手机控制 DDS AD9851 (70MHz 正弦波 方波 )
----------------------------------------------------------------------------------------------------------------------------
https://blog.csdn.net/jiangge12/article/details/123971499 基礎平臺
https://blog.csdn.net/jiangge12/article/details/123978932 基礎平臺(實驗一)
https://blog.csdn.net/jiangge12/article/details/124713438 基礎平臺(實驗二)玩具示波器
https://blog.csdn.net/jiangge12/article/details/126218280 基礎平臺(實驗三)折騰 TFT_eSPI 庫
https://blog.csdn.net/jiangge12/article/details/126277548 基礎平臺(實驗四)直接顯示網絡圖片
https://blog.csdn.net/jiangge12/article/details/126338835 基礎平臺(實驗五)溫濕度
https://blog.csdn.net/jiangge12/article/details/126572573 基礎平臺(實驗六)手機控制 AD9851
https://blog.csdn.net/jiangge12/article/details/127134354 基礎平臺(實驗七)溫濕度動態圖表
----------------------------------------------------------------------------------------------------------------------------
號稱正弦波 70MHz,其實呢。。。實測正弦波 0-20M較好,20-30M勉強,30-70M比較玄幻。
方波 1MHz 倒是有的,甚至10M也能出波形,只是慘些。
正弦波?方波 切換靠模塊的兩對物理引腳提供,所以只剩下一個參數 “頻率值” 可以設定,網頁控制比較簡單。
手機控制 波形發生器 AD9851-其他-高清完整正版視頻在線觀看-優酷 (youku.com)https://v.youku.com/v_show/id_XNTkwMDAxMTE5Ng==.html
?
----------------------------------------------------------------------------------------------------------------------
下面是基礎測試,把以下兩個文件都放 AD9851 目錄里,寫入UNO即可:
1。? ? AD9851.ino
const int WCLK = 10; // UNO接線 const int FQUP = 9; const int REST = 8; const int DATA = 7;# include "AD9851.h"String Input_Command; unsigned long Input_Frequency = 0; // 取值范圍 0-4294967295 (2^32-1)void setup() {pinMode(WCLK, OUTPUT);pinMode(FQUP, OUTPUT);pinMode(REST, OUTPUT);pinMode(DATA, OUTPUT);Serial.begin(115200);AD9851_First_Load(); }void loop() { }2。? ? ? AD9851.h
void AD9851_Reset_Serial_Model() {Serial.print("Reseting AD9851 to Serial Model...");digitalWrite(WCLK, LOW);digitalWrite(FQUP, LOW);//restSignaldigitalWrite(REST, LOW);digitalWrite(REST, HIGH);digitalWrite(REST, LOW);//wclkSignaldigitalWrite(WCLK, LOW);digitalWrite(WCLK, HIGH);digitalWrite(WCLK, LOW);//fqupSignaldigitalWrite(FQUP, LOW);digitalWrite(FQUP, HIGH);digitalWrite(FQUP, LOW); Serial.println("done!"); }void DataJudge(unsigned char w) {if (w == 1) digitalWrite(DATA, HIGH);else if (w == 0) digitalWrite(DATA, LOW); }void Write_Frequency_To_AD9851_Via_SPI(unsigned char w0, double frequence) {unsigned char i, w;long int y;double x; //計算頻率的HEX值x = 4294967295 / 180; //適合180M晶振/180為最終時鐘頻率(或30M六倍頻) //如果時鐘頻率不為180MHZ,修改該處的頻率值,單位MHz !!!frequence = frequence / 1000000;frequence = frequence * x;//Serial.print("Frequency in HEX:"); Serial.println(frequence); // 折算后的頻率值,熟悉后可不要這句y = frequence;//寫w4數據w = (y >>= 0);for (i = 0; i < 8; i++){DataJudge((w>> i) & 0x01);digitalWrite(WCLK, HIGH);digitalWrite(WCLK, LOW);}//寫w3數據w = (y >> 8);for (i = 0; i < 8; i++){DataJudge((w>> i) & 0x01);digitalWrite(WCLK, HIGH);digitalWrite(WCLK, LOW);}//寫w2數據w = (y >> 16);for (i = 0; i < 8; i++){DataJudge((w>> i) & 0x01);digitalWrite(WCLK, HIGH);digitalWrite(WCLK, LOW);}//寫w1數據w = (y >> 24);for (i = 0; i < 8; i++){DataJudge((w>> i) & 0x01);digitalWrite(WCLK, HIGH);digitalWrite(WCLK, LOW);}//寫w0數據w = w0;for (i = 0; i < 8; i++){DataJudge((w>> i) & 0x01);digitalWrite(WCLK, HIGH);digitalWrite(WCLK, LOW);}//移入始能digitalWrite(FQUP, HIGH);digitalWrite(FQUP, LOW); }void AD9851_First_Load() {AD9851_Reset_Serial_Model();Write_Frequency_To_AD9851_Via_SPI(0x01, 1000);Serial.println("Set AD9851 Frequency = 1 kHz by default."); }-------------------------------------------------------------------------------------------------------------
進入高頻信號的世界,需要正確選擇器材。簡單說至少需要100M示波器和100M探頭才能較好的反映模塊的真實波形,杜邦線也就1M以下玩玩。
擴展資料
1、高頻(HF)3 MHz~30 MHz,對應電磁波的波長為短波100 m~10 m。
2、甚高頻(VHF)30 MHz~300 MHz,對應電磁波的波長為米波10 m~1 m。
甚高頻多數是用作電臺及電視臺廣播,同時又是航空和航海的溝通頻道。
VHF主要是作較短途的傳送,和高頻(HF)不同的是,電離層通常不會反射VHF的信號,而且甚高頻常常會受環境因素(如:地形)影響其信號。
總結
以上是生活随笔為你收集整理的Arduino + ESP32-C3 + TFT(1.8‘ ST7735S)基础平台(实验六)手机控制 DDS AD9851 (70MHz 正弦波 方波 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 材料学博士转型大数据开发,是一种什么体验
- 下一篇: AD(十七)PCB板框的评估及层叠设计