基于OpenHarmony + 小凌派RK2206开发板制作的简易示波器,实时采集波形,实时计算并实时显示对应的波形。OpenHarmony实时性较高,稳定性好,瑞芯微RK2206芯片接口丰富,OpenHarmony芯片适配稳定性好,做出来的简易示波器效果还不错。本文先做第一期的威廉希尔官方网站 文档,后续将持续完善功能和威廉希尔官方网站 文档更新。
一、 项目简介
本文基于OpenHarmony操作系统 + 小凌派RK2206开发板而做的简易示波器开发。
本开发以瑞芯微RK2206芯片 + OpenHarmony 3.0LTS操作系统 + 小凌派-RK2206开发板为基础,以模数转换芯片ADS1256为采集数据芯片实时采集,然后通过峰值检测和FFT变换算法处理采集数据,最后将处理完成的数据输送到LCD液晶屏上实时显示。
二、模块介绍
1. ADS1256模块
ADS1256是一款 24bit ADC转换模块。 ADS1256可以通过SPI进行访问 的高精度的转换器。
![pYYBAGJ05DKANFcJAAGBvZ-n1mA058.png](https://file.elecfans.com/web2/M00/41/30/pYYBAGJ05DKANFcJAAGBvZ-n1mA058.png)
上图为ADS1256芯片结构和引脚图,从图可以看出ADS1256的通道资源比较丰富,可以配置成8个单端ADC通道,也可以配置成4个差分通道。ADS1256的通信接口为串行接口,同时还有4个通用的IO口,不过这四个IO口不经常用到。
ADS1256内部有许多寄存器需要配置,相较于ADS1232用起来要复杂的多。
下面介绍一下ADS1256的初始化。
![poYBAGJ05EyAXXL_AADK-5Zv-Es567.png](https://file.elecfans.com/web2/M00/41/2B/poYBAGJ05EyAXXL_AADK-5Zv-Es567.png)
然后选择通道0,等待数据转换完成后获取他采集的AD值
![pYYBAGJ05GKAQzNGAACzmQ_RpJY533.png](https://file.elecfans.com/web2/M00/41/30/pYYBAGJ05GKAQzNGAACzmQ_RpJY533.png)
2.LCD液晶屏模块
本项目使用的是ST7789V, 用于单片驱动262K色图像TFT-LCD, 包含 720(240*3色) x 320 线输出,可以直接以SPI协议, 或者8位/9位/16位/18位并行连接外部控制器。ST7789V显示数据存储在片内240x320x18 bits内存中, 显示内存的读写不需要外部时钟驱动。
具体接线如下图所示:
其中,LCD液晶屏引脚功能描述,如下表5.3.1所示。
![poYBAGJ05HeAIdB5AAAtPb-R2jo052.png](https://file.elecfans.com/web2/M00/41/2B/poYBAGJ05HeAIdB5AAAtPb-R2jo052.png)
其中,LCD液晶屏与小凌派-RK2206开发板连接如下图所示:
![pYYBAGJ05I2AVx4hAAH5Vom8zgY332.png](https://file.elecfans.com/web2/M00/41/31/pYYBAGJ05I2AVx4hAAH5Vom8zgY332.png)
三、简易示波器功能的实现
1.峰值检测
通过查找ad采集的数据内的最大值和最小值,然后相减即得峰峰值。
![poYBAGJ05KGARU8lAABLEM5YawU725.png](https://file.elecfans.com/web2/M00/41/2B/poYBAGJ05KGARU8lAABLEM5YawU725.png)
2.频率检测
通过FFT变换,FFT变换的数据需要两部分,实部和虚部,由于变换的是数据是AD采集的实数据,所以只需将采集的值存入实部,虚部存入零即可。通过变换将时域信号转换到频域,然后通过取模排序,然后计算即可得到频率。他的基本思想是把原始的 N 点序列,依次分解成一系列的短序列。充分利用 DFT 计算式中指数因子所具有的对称性质和周期性质,进而求出这些短序列相应的DFT 并进行适当组合,达到删除重复计算,减少乘法运算和简化结构的目的。当N是素数时,可以将DFT算转化为求循环卷积,从而更进一步减少乘法次数,提高速度。
(1)FFT变换函数
![poYBAGJ05MCAQqOcAAFJhLs1vig763.png](https://file.elecfans.com/web2/M00/41/2B/poYBAGJ05MCAQqOcAAFJhLs1vig763.png)
(2)取模运算函数
![pYYBAGJ05N6ANtufAABXs_jYLnI310.png](https://file.elecfans.com/web2/M00/41/31/pYYBAGJ05N6ANtufAABXs_jYLnI310.png)
(3)然后将FFT变换的幅值进行排序,同时也对他们的下标进行了排序,以便后续的计算,即除了直流信号的第一个频率点即为改信号的频率。
![poYBAGJ05PaAAqUdAAB0ogSa3RA599.png](https://file.elecfans.com/web2/M00/41/2C/poYBAGJ05PaAAqUdAAB0ogSa3RA599.png)
4)通过计算即可得到频率,采样点数将采样频率进行平分,通过排序取得的幅值最大的那个点的下标进行相乘即为频率,1.47为补偿系数,因为ADS1256采集数据后有延时,导致进行FFT变换后所对应的幅值最大点的下标前移,导致计算频率时候会偏小。
![pYYBAGJ05RGACc3NAAAImUQCN2w817.png](https://file.elecfans.com/web2/M00/41/31/pYYBAGJ05RGACc3NAAAImUQCN2w817.png)
3.波形显示
通过将采集的幅值进行计算,使最后的值在屏幕大小的范围内,进行描点画图。
![poYBAGJ05SuAbi3dAAC8sVQ_xlY975.png](https://file.elecfans.com/web2/M00/41/2C/poYBAGJ05SuAbi3dAAC8sVQ_xlY975.png)
四、心得体会
通过OpenHarmony操作系统 + 小凌派-RK2206开发板进行项目开发,OpenHarmony的实时性好,稳定性高,瑞芯微RK2206芯片接口比较丰富,移植适配稳定性较好,整体开发进度比较顺利,开发的难度都集中在数据处理算法上。通过这一次的应用开发,整体上对OpenHarmony和国产芯片开发还是蛮认可的,是一次不错的学习体验,特此记录!
来源:凌智电子
-
示波器
+关注
关注
113文章
6240浏览量
184809 -
开发板
+关注
关注
25文章
5035浏览量
97384 -
OpenHarmony
+关注
关注
25文章
3716浏览量
16271 -
RK2206
+关注
关注
0文章
34浏览量
1781
发布评论请先 登录
相关推荐
瑞芯微主板/开发板Linux系统播放音频方法,触觉智能RK3562开发板演示
![瑞芯微主板/<b class='flag-5'>开发板</b>Linux系统播放音频方法,触觉智能<b class='flag-5'>RK</b>3562<b class='flag-5'>开发板</b>演示](https://file1.elecfans.com/web3/M00/02/33/wKgZO2dbrJmACGv1AAB7yOSAvVY164.png)
ARM开发板与树莓派的比较
【「OpenHarmony开发与实践 | 基于红莓RK2206开发板」阅读体验】+初体验1
【「OpenHarmony开发与实践 | 基于红莓RK2206开发板」阅读体验】+初体验2连发发
树莓派和arm开发板的区别
linux开发板与树莓派的区别
新一代低价开发板芯片RK3562来啦! — 触觉智能RK3562开发板
![新一代低价<b class='flag-5'>开发板</b>芯片<b class='flag-5'>RK</b>3562来啦! — 触觉智能<b class='flag-5'>RK</b>3562<b class='flag-5'>开发板</b>](https://file1.elecfans.com/web2/M00/03/B7/wKgaoma92LSASRktAABva6z7MzM903.png)
基于OpenHarmony轻量级操作系统实现RK2206 WiFi-AP模式通信开发案例
![基于OpenHarmony轻量级操作系统实现<b class='flag-5'>RK2206</b> WiFi-AP模式通信<b class='flag-5'>开发</b>案例](https://file.elecfans.com/web2/M00/26/21/pYYBAGG5jjSALfrEAAAwAa9Oig8799.png)
基于OpenHarmony轻量级操作系统实现RK2206 WiFi-AP模式通信开发案例
基于Openharmony轻量级操作系统的分布式数据管理开发案例
![基于Openharmony轻量级操作系统的分布式数据管理<b class='flag-5'>开发</b>案例](https://file.elecfans.com/web2/M00/26/21/pYYBAGG5jjSALfrEAAAwAa9Oig8799.png)
评论