STM32F103C8T6制作简易示波器

1设计需求

通过stm32f103c8t6实现一个简易示波器功能,该示波器可以检测0-3.6khz频率范围内的波形。

也可以输出波形,输出方波、三角波、正弦波。

2技术方案

通过stm32的ADC功能,采集输入信号,最后由oled屏进行显示。

采样频率通过定时器控制,定时器触发ADC采样,然后通过DMA搬运数据,从而达到最大效率。

通过测试,ADC功能正常,可以采集波形,但是DAC输出波形异常,无法输出波形,查阅资料,发现stm32f103c8t6是小容量的单片机,没有DAC功能,所以无法直接通过dac配置输出。

3代码实现

直接看demo

https://download.csdn.net/download/weixin_51248645/88707820

4stm32f103zet6示波器

没有DAC的示波器叫什么示波器,换平台,采用stm32f103zet6进行配置。

参数:

ADC输入:

单路输入,采样频段:847Khz.(72000/85/1=847K) 到1000HZ (pre=500)

输入电压:-15V  ~ +15V.

DAC输出电压: 0 ~ 3.3V.

4.1ADC配置

ADC最大频率计算:

由于stm32f103外部时钟频率最大为14M,所以配置定时器触发时,也不能超出这个值。

ADC最大频率:ADCCLK=14MHz,采样时间=1.5周期。

则:TCONV = 1.5 + 12.5 = 14 周期 = 1μs,采样频率为1Mhz。

1Mhz ?真的是极限吗?

当然不是,有两个方法提升。

1.正规方法:采用4通道ADC,分别在1/4周期进行采样,通过拼接的方式,实现1*4=4M频率的采样。

2.瞎整方法:外部时钟频率最大14M,这不能突破吗?

这次先弄个1M的进行测试。

ADC采用6分频,12M的时钟。采样时间=1.5周期。频率为0.86Mhz。

通过定时器配置,系统时钟是72M,定时器触发时间应大于1/0.86Mhz,则

TIM2_PWM_Init(T-1,pre-1);   

T*pre/72M>1/0.86M  取pre=1,得T>83.7。

取T=84,PWM的Pulse取12。

4.2DAC配置

这个和STM32F103C8T6一样。

5功能调试

5.1ADC采集功能

将DAC输出的正弦波接到ADC采集端口,检测采样值,采样正常。如下图。

5.2频率和伏值测量

通过FFT,算出频率,电压直接算出。

FFT原理是将时域数据转换到频域,然后去检测幅度,借用别人一个128个采样点的统计图,如下图,可以看出其实就是对频率递增175,然后统计幅度,找出最大的既是频率值,其他则是杂波。

点数   频率   幅值    实部   虚部

0      0        4       0       -4     

1      175      14        -6      -4     

2      350      1500      -380      647     

3      525      11      -5      -3     

4      700      10      -4      -3     

5      875      8      -4      -2     

6      1050      8      -4      -1     

7      1225      6      -3      0     

8      1400      8      -3      -3     

9      1575      8      -4      -1     

10      1750      8      -4      -1     

11      1925      8      -4      0     

12      2100      5      -2      -2     

13      2275      6      -3      -1     

14      2450      8      -3      -3     

15      2625      7      -3      -2     

16      2800      5      -2      -2     

17      2975      6      -3      -1     

18      3150      6      -3      0     

19      3325      6      -3      0     

20      3500      6      -3      -1     

21      3675      6      -3      0     

22      3850      6      -3      0     

23      4025      2      -1      0     

24      4200      6      -3      -1     

25      4375      6      -3      0     

26      4550      4      -2      0     

27      4725      4      -2      0     

28      4900      2      -1      -1     

29      5075      4      -2      0     

30      5250      2      -1      0      

31      5425      4      -2      0     

32      5600      2      -1      0     

33      5775      6      -3      -1     

34      5950      6      -3      0     

35      6125      6      -3      -1     

36      6300      4      -2      -1     

37      6475      6      -3      0     

38      6650      4      -2      0     

39      6825      6      -3      0     

40      7000      5      -2      -2     

41      7175      6      -3      0     

42      7350      2      0      -1     

43      7525      6      -3      0     

44      7700      2      -1      -1     

45      7875      4      -2      0     

46      8050      6      -3      -1     

47      8225      2      -1      0     

48      8400      2704      -676      -1171      

49      8575      4      -2      0     

50      8750      2      -1      0     

51      8925      4      -2      -1     

52      9100      2      -1      -1     

53      9275      4      -2      0     

54      9450      2      -1      0     

55      9625      2      -1      -1     

56      9800      2      -1      -1     

57      9975      4      -2      0     

58      10150      2      0      -1     

59      10325      4      -2      0     

60      10500      2      -1      -1     

61      10675      2      -1      -1     

62      10850      4      -2      -1     

63      11025      2      -1      -1     

64      11200      0      0      0     

65      11375      2      -1      0     

66      11550      4      -2      0     

67      11725      2      0      -1     

68      11900      2      -1      -1     

69      12075      2      -1      1     

70      12250      2      -1      1     

71      12425      4      -2      1     

72      12600      4      -2      -1     

73      12775      2      -1      1     

74      12950      2      -1      -1     

75      13125      4      -2      1     

76      13300      2      -1      -1     

77      13475      4      -2      1     

78      13650      2      -1      -1     

79      13825      4      -2      0     

80      14000      2      -1      0     

81      14175      4      -2      0     

82      14350      4      -2      1     

83      14525      4      -2      1     

84      14700      2      -1      0     

85      14875      2      -1      1     

86      15050      4      -2      0     

87      15225      4      -2      0     

88      15400      2      -1      -1     

89      15575      4      -2      1     

90      15750      2      -1      1     

91      15925      2      -1      1      

92      16100      0      0      0     

93      16275      4      -2      1     

94      16450      2      -1      1     

95      16625      4      -2      1     

96      16800      2      -1      0     

97      16975      4      -2      0     

98      17150      4      -2      1     

99      17325      4      -2      0     

100      17500      2      -1      0     

101      17675      4      -2      0     

102      17850      2      -1      0     

103      18025      4      -2      0     

104      18200      4      -2      -1     

105      18375      4      -2      1     

106      18550      2      -1      -1     

107      18725      3996      1998      1     

108      18900      2      -1      0     

109      19075      2      -1      1     

110      19250      4      -2      0     

111      19425      4      -2      1     

112      19600      2      -1      0     

113      19775      2      -1      1     

114      19950      2      -1      1     

115      20125      4      -2      1     

116      20300      0      0      0     

117      20475      4      -2      1     

118      20650      2      -1      1     

119      20825      2      0      1     

120      21000      2      -1      0     

121      21175      2      -1      1     

122      21350      2      -1      0     

123      21525      4      -1      2     

124      21700      2      -1      0     

125      21875      2      0      1     

126      22050      2      -1      0     

127      22225      2      0      1     

由以上的实验数据,我们可以看出,在频率为350Hz,8400Hz和18725Hz时,幅值出现峰值,分别为1500、2696和3996,这与我们所预期的结果正好相符,从而验证了实验结果的正确性。

5.3按键功能

共4个按键,暂停键,测试正常。采样频率+和减少,测试正常。autoset按键,按下时,会自动将寻找波形,在屏幕上显示出来。

auto原理是,在屏幕上显示4个周期的图像,这样就可以很清除观察。然后计算pre值。

pre=72000000/450/(F*T)*4;

测试效果也还是很理想。

还有一个旋转电阻,用来微调pre。

5.4拓展功能

1双通道(tim3 端口触发ADC失败,卡死在init中,还未找到原因)

2测量AC220v DC 310V

采用将-400~+400V降压到15V内,选用31:1。通过一个滑动开关控制。电路如下:

  • 11
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流浪法师解剖鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值