外観

動画も添付します

外部仕様

  • 機能         オシロスコープ、FFT、1/3オクターブアナライザ
  • サンプリングレート  10Msps(max)
  • 分解能        12ビット
  • サンプリングバッファ 1024ワード
  • CPU         PIC32MZ1024EFH100
  • アナログ周波数帯域  DC~200kHz
  • 垂直感度       10V/Div~20mV/Div
  • タイムベース     1sec/Div~5μsec/Div
  • 入力インピーダンス  1MΩ
  • 最大入力電圧     ±50Vpp(1:10プローブ使用時)
  • ディスプレイ     7インチ STN カラーLCD
  • チャンネル数     1
  • 外部インターフェース USB typeB
  • ストレージ      SDカード
  • 電源電圧       100V
  • 外形寸法       300mm(W)*150mm(H)*80mm(D)
  • 重量         約 kg

Wave Analizer 機能

  • オシロスコープ
  • FFT(周波数分析)
  • 1/3オクターブ周波数分析
  • フィルタ(ローパス、ハイパス、バンドパスフィルタ)
  • 自己相関
  • スペクトログラム
  • 振幅分布

ブロック図

PIC32MZ1024EFH100の紹介

  • 32ビットCPU
  • Flash         1024kB
  • SRAM          512kB
  • 動作周波数       200MHz
  • パッケージ       100pin QFP

コントローラ

回路図

PIC32MZ_EF_LCD

回路図内のDC-DCコンバータU2からのスイッチングノイズがアナログの回路に入ってしまうため使用を中止しました。

DC-DCコンバータで+5Vから±5Vを作り アナログ回路で使用しましたがスイッチングノイズが大きく、使用をあきらめ、下記のアナログ入力部の基板を作成しました。

アナログ入力部

analog_input

キー入力/エンコーダー入力部

keyboard

フロントパーツ配置

電源部

リアの部品配置

ブロック図

AD変換

ADC構成

ADCタイミング(10Msps)

10MspsのAD変換を実現するために、ADC0~ADC3の4個ADCモジュールを使います

ADC0からADC3は、2.5Mspsで動作します

ADC3のトリガーは、TIMER3によってトリガーされ AD変換が行われます

ADC2のトリガーは、TIMER3をベースクロックとするOC5によってトリガーされAD変換が行われます

ADC1のトリガーは、TIMER3をベースクロックとするOC3によってトリガーされADC変換が行われます

ADC0のトリガーは、TIMER3をベースクロックとするOC1によってトリガーされADC変換が行われます

AD変換が行われると、変換順番にFIFOにデータが格納されます

FIFOのデータが格納されると、DMA4が動作し、そのデータをSRAMへ転送します

Tadとトリガーとの関係

サンプリングレートが16Tadかかることから、Tadとトリガー周期Ttriggerとの関係は、おおよそTtrigger=20*Tadとなる

FFTクロック

周波数カウンタ

ロータリーエンコーダー

ファンクションキー

1/3オクターブ分析

コマンド

<status_function>

0:マニュアル

1:オシロスコープ

2:FFT(1decade)

3:1/3オクターブ(1decade)

4:SDカード

<status_decade>

0:1decade

1:2decade

2:3decade

3:4decade

<status_function_key>

0:マニュアル

1:オシロスコープ

2:FFT(1decade)

3:1/3オクターブ(1decade)

4:ストレージ

5:トリガー

6:MEASURE

<SD_R_W_flag>

0:ノーマル

1:SDカードR/W中

<status_measure_flag>

0:計測停止(アイドル:STOPキー押下) データ表示済

1:RUN(STARTキー押下)

2:データー入力完了

<status_mode>

0:auto

1:single

<status_average_number>

1:min

2:

<status_time>

<status_time>単位サンプリング機能
020mSec/div2.5kHz/divオシロスコープ
110mSec/div5kHz/div オシロスコープ
25mSec/div10kHz/div オシロスコープ
32mSec/div25kHz/div オシロスコープ
41mSec/div50kHz/div オシロスコープ
5500μSec/div100kHz/div オシロスコープ
6200μSec/div250kHz/div オシロスコープ
7100μSec/div500kHz/div オシロスコープ
850μSec/div1MHz/div オシロスコープ
920μSec/div2.5MHz/div オシロスコープ
1010μSec/div5MHz/div オシロスコープ
115μSec/div10MHz/div オシロスコープ
1210Hz~100Hz100Hz×2.56=256HzFFT(1decade)
13100Hz~1kHz 1kHz×2.56=2.56kHz FFT(1decade)
141kHz~10kHz 10kHz×2.56=25.6kHz FFT(1decade)
1510kHz~100kHz 100kHz×2.56=256kHz FFT(1decade)
1610Hz~1kHz256Hz,2.56kHz FFT(2decade)
17100Hz~10kHz2.56kHz,25.6kHz FFT(2decade)
181kHz~100kHz25.6kHz,256kHz FFT(2decade)
1910Hz~10kHz256Hz,2.56kHz,25.6kHz FFT(3decade)
20100Hz~100kHz2.56kHz,25.6kHz,256kHz FFT(3decade)
2110Hz~100kHz 256Hz,2.56kHz,25.6kHz,256kHz FFT(4decade)
22 10Hz~100Hz 100Hz×2.56=256Hz 1/3オクターブ(1decade)
23 100Hz~1kHz 1kHz×2.56=2.56kHz 1/3オクターブ(1decade)
24 1kHz~10kHz 10kHz×2.56=25.6kHz 1/3オクターブ(1decade)
25 10kHz~100kHz 100kHz×2.56=256kHz 1/3オクターブ(1decade)
26 10Hz~1kHz 256Hz,2.56kHz 1/3オクターブ(2decade)
27 100Hz~10kHz 2.56kHz,25.6kHz 1/3オクターブ(2decade)
28 1kHz~100kHz 25.6kHz,256kHz 1/3オクターブ(2decade)
29 10Hz-10kHz 256Hz,2.56kHz,25.6kHz 1/3オクターブ(3decade)
30 100Hz~100kHz 2.56kHz,25.6kHz,256kHz 1/3オクターブ(3decade)
31 10Hz~100kHz 256Hz,2.56kHz,25.6kHz,256kHz 1/3オクターブ(4decade)

<status_gain>

<status_gain>単位ゲイン
010V/div0.33
15V/div0.66
22.5V/div1.33
32V/div1.65
41V/div3.3
5500mV/div6.6
6250mV/div13.3
7200mV/div 16.5
8 100mV/div 33
9 50mV/div 66
1025mV/div 133
1120mV/div165
12 20dBV/Div(10V/div) 0.33
13 14dBV/Div(5V/div) 0.66
14 8dBV/Div(2.5V/Div) 1.33
15 6dbV/Div(2V/div) 1.66
16 0dBV/Div(1V/div) 3.3
17 -6dBV/Div(0.5V/div) 6.6
18 -12dBV/Div(0.25V/div) 13.3
19 -14dB/Div(0.2V/Div) 16.6
20 -20dBV/Div(0.1V/div) 33
21 -26dBV/Div(50mV/div) 66
22 -32dB/Div(25mV/Div) 133
23 -34dB/Div(20mV/Div) 166
24 20dBV/Div(10V/div) 0.33
25 14dBV/Div(5V/div) 0.66
26 8dBV/Div(2.5V/Div) 1.33
27 6dbV/Div(2V/div) 1.66
28 0dBV/Div(1V/div) 3.3
29 -6dBV/Div(0.5V/div) 6.6
30 -12dBV/Div(0.25V/div) 13.3
31 -14dB/Div(0.2V/Div) 16.6
32 -20dBV/Div(0.1V/div) 33
33 -26dBV/Div(50mV/div) 66
34 -32dB/Div(25mV/Div) 133
35 -34dB/Div(20mV/Div) 166
<status_vertical_unit>
0volt(rms)
1dBV
2dB(正規化)
3pahse
<status_trigger_position>
0フロント
1センター
2リア

<status_trigger_level>


-200<v<200

<status_input)

0GND
1AC
2DC
<status_window>
0レックタングル
1ハニング
2ハミング
3ブラックマン
4ナットオール
5フラットトップ
<status_signal_level>
入力信号のレベルを表す
1:過大入力、
0:適正、
-1:過少入力
<status_frequency>
入力信号の周波数を表す
単位 mHz
unsigned long
Max 4294967.295mHz

ソフトウエア

  • main.c  初期設定と全体制御
  • adc_function.c    信号を取り込みadc_buff[]に格納する
  • measure_function.c  adc_buff[]のデータを演算(FFTなど)する
  • display_function.c  演算したデータをlcd_buff[][]に格納する
  • lcd_function.c    lcd_buff[][]データをLCDに描画する
  • key_function.c    タクトスイッチまたはロータリーエンコーダ入力の処理を行う
  • other_function.c   その他関数
  • strage_function.c  SDカード関連ソフトウエア

mainルーチン

measure_action

measure_action_oscilloscope

Measure_action_fft1

key_action

key_action_RUN_STOP

データ取り込みフロー

key_action_RUN_STOP

key_action_oscilloscope

key_action_RUN_STOP

割り込み一覧

窓関数

FFT

サンプリング時間

デシベル

振幅測定

ソースファイル(PIC32MZ0512EFE100)