基于OpenHarmony + 小凌派RK2206開發板制作的簡易示波器,實時采集波形,實時計算并實時顯示對應的波形。OpenHarmony實時性較高,穩定性好,瑞芯微RK2206芯片接口豐富,OpenHarmony芯片適配穩定性好,做出來的簡易示波器效果還不錯。本文先做第一期的技術文檔,后續將持續完善功能和技術文檔更新。
一、 項目簡介
本文基于OpenHarmony操作系統 + 小凌派RK2206開發板而做的簡易示波器開發。
本開發以瑞芯微RK2206芯片 + OpenHarmony 3.0LTS操作系統 + 小凌派-RK2206開發板為基礎,以模數轉換芯片ADS1256為采集數據芯片實時采集,然后通過峰值檢測和FFT變換算法處理采集數據,最后將處理完成的數據輸送到LCD液晶屏上實時顯示。
二、模塊介紹
1. ADS1256模塊
ADS1256是一款 24bit ADC轉換模塊。 ADS1256可以通過SPI進行訪問 的高精度的轉換器。
上圖為ADS1256芯片結構和引腳圖,從圖可以看出ADS1256的通道資源比較豐富,可以配置成8個單端ADC通道,也可以配置成4個差分通道。ADS1256的通信接口為串行接口,同時還有4個通用的IO口,不過這四個IO口不經常用到。
ADS1256內部有許多寄存器需要配置,相較于ADS1232用起來要復雜的多。
下面介紹一下ADS1256的初始化。
然后選擇通道0,等待數據轉換完成后獲取他采集的AD值
2.LCD液晶屏模塊
本項目使用的是ST7789V, 用于單片驅動262K色圖像TFT-LCD, 包含 720(240*3色) x 320 線輸出,可以直接以SPI協議, 或者8位/9位/16位/18位并行連接外部控制器。ST7789V顯示數據存儲在片內240x320x18 bits內存中, 顯示內存的讀寫不需要外部時鐘驅動。
具體接線如下圖所示:
其中,LCD液晶屏引腳功能描述,如下表5.3.1所示。
其中,LCD液晶屏與小凌派-RK2206開發板連接如下圖所示:
三、簡易示波器功能的實現
1.峰值檢測
通過查找ad采集的數據內的最大值和最小值,然后相減即得峰峰值。
2.頻率檢測
通過FFT變換,FFT變換的數據需要兩部分,實部和虛部,由于變換的是數據是AD采集的實數據,所以只需將采集的值存入實部,虛部存入零即可。通過變換將時域信號轉換到頻域,然后通過取模排序,然后計算即可得到頻率。他的基本思想是把原始的 N 點序列,依次分解成一系列的短序列。充分利用 DFT 計算式中指數因子所具有的對稱性質和周期性質,進而求出這些短序列相應的DFT 并進行適當組合,達到刪除重復計算,減少乘法運算和簡化結構的目的。當N是素數時,可以將DFT算轉化為求循環卷積,從而更進一步減少乘法次數,提高速度。
(1)FFT變換函數
(2)取模運算函數
(3)然后將FFT變換的幅值進行排序,同時也對他們的下標進行了排序,以便后續的計算,即除了直流信號的第一個頻率點即為改信號的頻率。
4)通過計算即可得到頻率,采樣點數將采樣頻率進行平分,通過排序取得的幅值最大的那個點的下標進行相乘即為頻率,1.47為補償系數,因為ADS1256采集數據后有延時,導致進行FFT變換后所對應的幅值最大點的下標前移,導致計算頻率時候會偏小。
3.波形顯示
通過將采集的幅值進行計算,使最后的值在屏幕大小的范圍內,進行描點畫圖。
四、心得體會
通過OpenHarmony操作系統 + 小凌派-RK2206開發板進行項目開發,OpenHarmony的實時性好,穩定性高,瑞芯微RK2206芯片接口比較豐富,移植適配穩定性較好,整體開發進度比較順利,開發的難度都集中在數據處理算法上。通過這一次的應用開發,整體上對OpenHarmony和國產芯片開發還是蠻認可的,是一次不錯的學習體驗,特此記錄!
來源:凌智電子
-
示波器
+關注
關注
113文章
6266瀏覽量
185336 -
開發板
+關注
關注
25文章
5081瀏覽量
97698 -
OpenHarmony
+關注
關注
25文章
3728瀏覽量
16399 -
RK2206
+關注
關注
0文章
34瀏覽量
1793
發布評論請先 登錄
相關推薦
評論