基于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的初始化。
通過SPI通信配置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文章
6589瀏覽量
188422 -
開發板
+關注
關注
25文章
5574瀏覽量
102960 -
OpenHarmony
+關注
關注
28文章
3838瀏覽量
18243 -
RK2206
+關注
關注
0文章
38瀏覽量
2136
發布評論請先 登錄
基于小凌派RK2206開發板:OpenHarmony如何使用IoT接口控制FLASH外設
基于小凌派RK2206開發板:OpenHarmony如何使用IoT接口控制FLASH外設

基于小凌派RK2206開發板:OpenHarmony如何使用IoT接口控制UART外設
基于小凌派RK2206開發板:OpenHarmony如何使用IoT接口控制UART外設

基于小凌派RK2206開發板:OpenHarmony如何使用IoT接口控制GPIO中斷
基于小凌派RK2206開發板:OpenHarmony如何使用IoT接口控制GPIO中斷

基于小凌派RK2206開發板:OpenHarmony如何使用IoT接口控制GPIO外設
基于小凌派RK2206開發板:OpenHarmony如何使用IoT接口控制GPIO外設

基于小凌派RK2206開發板:OpenHarmony如何使用IoT接口控制ADC外設
基于小凌派RK2206開發板:OpenHarmony如何使用IoT接口控制ADC外設

基于小凌派RK2206開發板:OpenHarmony如何使用IoT接口控制PWM外設
基于小凌派RK2206開發板:OpenHarmony如何使用IoT接口控制PWM外設

【「OpenHarmony開發與實踐 | 基于紅莓RK2206開發板」閱讀體驗】+初體驗1
【「OpenHarmony開發與實踐 | 基于紅莓RK2206開發板」閱讀體驗】+初體驗2連發發
基于OpenHarmony輕量級操作系統實現RK2206 WiFi-AP模式通信開發案例

評論