(Translated by https://www.hiragana.jp/)
GitHub - shuai132/ScopeMCU: 虚拟示波器 MCU端
Skip to content

shuai132/ScopeMCU

Repository files navigation

ScopeMCU

Build Status

Oscilloscope for MCU

MCU: STM32F103C8Tx

配合はいごうScopeGUI使用しよう

截图说明见wiki

最新さいしんばんReleases

Introduction

よう最少さいしょうてきかたけん成本なりもと,做一个实用的虚拟示波器。

这是かたけん部分ぶぶん于STM32最小さいしょうけい统,使用しようにんなんへんがいがい设。 以方便びん移植いしょくいた其他かたけんただ需要じゅようADC、てい时器、くしこう/USBそく)。 さい样率さい深度しんどとうさんすう决于しんへん性能せいのう

Features

  • Timerさわ发ADC+DMA せい确采样
  • ADCすう值已こうじゅん使用しよう内部ないぶもとじゅん电压)
  • さい样率无级最高さいこうさい样率1Msps
  • さい深度しんどとうまえ6144(1024*6)てん
  • うちおけ测信ごう(1kHzきろへるつかた
  • 种触发方しき动、正常せいじょう、单次)
  • FFT频谱分析ぶんせき上位じょういつくえ实现)
  • USB CDC 高速こうそくすうすえ传输

ちゅう:

  • 设计ぜんはし运放电路,ただよう于采しゅう0~3.3V信号しんごう
  • 为了さい精度せいどこうなぞらえとうぜん最高さいこうさい样率: 70ksps

IO Map

必需ひつじゅ

かんあし 作用さよう
PA0 ADCどおりどう
PA11 USB DM USBせっこう
PA12 USB DP USBせっこう

かんあし 作用さよう
PC13 LED指示しじとう さい样过ほど为低电平
PA8 1kHzきろへるつかたなみ信号しんごう よう于自测
PA9 USART1 TX 调试くしこう
PA10 USART1 RX 调试くしこう

移植いしょく

设计じょう移植いしょくせいさく为重要目ようもく标,以很方便ほうべん移植いしょくいた其他单片つくえ、Arduino、DSPとうかたけん

ただ需硬けん提供ていきょう指定していこうのう实现函数かんすうそく具体ぐたいScopeCoreちゅうpublic方法ほうほうてきちゅう释或移植いしょく骤。

ちゅう:

  • 需要じゅようC++11支持しじ,推荐使用しようarm-none-eabi编译cmake构建,やめざいWindows、macOS、Ubuntu测试どおり过。
  • 为了方便ほうべん软件设计すうすえ解析かいせき直接ちょくせつつつみ结构からださく为消いき单元。注意ちゅういよう和上わじょうつくえ保持ほじ一致いっちてき节序(arm、x86、arduinoひとし为小はししき)。

移植いしょく

  • はつはじめscope
    // ざい全局ぜんきょくはつはじめ
    static const size_t MaxSn = 1024 * 6;   // 决于RAM大小だいしょう
    static uint8_t Buffer[Message::CalcBytes(MaxSn)];
    static ScopeMCU scopeMcu(MaxSn, Buffer);
    ...

    scopeMcu.setVolLimits(0, 3300);
    scopeMcu.setFsLimits(1, 10000);
    scopeMcu.setMcuImpl(
            {
                    .sendData = [](uint8_t* data, size_t size) {
                        // ようくしこう发送すうすえ
                    },
                    .startADC = []{
                        // 开始さい
                    },
                    .stopADC = []{
                        // 停止ていしさい
                    },
                    .setSampleFs = [](uint32_t fs) {
                        // 设置さい样率 かえしかい实际てきさい样率
                    },
                    .onSampling = [](bool sampling) {
                        // 可用かようらいひかえせい指示しじとうじょう
                    },
            });
  • とうおさむいたくし口数くちかずすえ
    scopeMcu.onRead(data, size);
  • とういちADC转换完成かんせい
    scopeMcu.onADC(vol);

ちゅう

  • startADCこれぜん不要ふようさわonADC

DevelopTools

  • STM32CubeMX
  • arm-none-eabi-gcc
  • CLion(CMake)
  • OpenOCD
  • ST-LINK

Install Requirements(for macOS)

  • config OpenOCD and ST-LINK
brew install openocd
brew install stlink
brew cask install gcc-arm-embedded

Usage

Links