外観
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/無題.png?resize=1024%2C723&ssl=1)
動画も添付します
外部仕様
- 機能 オシロスコープ、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オクターブ周波数分析
- フィルタ(ローパス、ハイパス、バンドパスフィルタ)
- 自己相関
- スペクトログラム
- 振幅分布
ブロック図
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-3.png?resize=908%2C550&ssl=1)
PIC32MZ1024EFH100の紹介
- 32ビットCPU
- Flash 1024kB
- SRAM 512kB
- 動作周波数 200MHz
- パッケージ 100pin QFP
コントローラ
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-6.png?resize=899%2C556&ssl=1)
回路図
PIC32MZ_EF_LCD回路図内のDC-DCコンバータU2からのスイッチングノイズがアナログの回路に入ってしまうため使用を中止しました。
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-8.png?resize=817%2C612&ssl=1)
DC-DCコンバータで+5Vから±5Vを作り アナログ回路で使用しましたがスイッチングノイズが大きく、使用をあきらめ、下記のアナログ入力部の基板を作成しました。
アナログ入力部
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-11.png?resize=1024%2C768&ssl=1)
キー入力/エンコーダー入力部
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-13.png?resize=1024%2C768&ssl=1)
フロントパーツ配置
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-15.png?resize=1024%2C768&ssl=1)
電源部
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-16.png?resize=1024%2C768&ssl=1)
リアの部品配置
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-17.png?resize=1024%2C768&ssl=1)
ブロック図
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-19.png?resize=860%2C582&ssl=1)
AD変換
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-20.png?resize=906%2C552&ssl=1)
ADC構成
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-21.png?resize=966%2C518&ssl=1)
ADCタイミング(10Msps)
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-22.png?resize=929%2C538&ssl=1)
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クロック
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-24.png?resize=878%2C570&ssl=1)
周波数カウンタ
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-25.png?resize=928%2C539&ssl=1)
ロータリーエンコーダー
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-26.png?resize=886%2C564&ssl=1)
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-27.png?resize=896%2C558&ssl=1)
ファンクションキー
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-28.png?resize=952%2C525&ssl=1)
1/3オクターブ分析
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-29.png?resize=544%2C648&ssl=1)
コマンド
<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> | 単位 | サンプリング | 機能 |
0 | 20mSec/div | 2.5kHz/div | オシロスコープ |
1 | 10mSec/div | 5kHz/div | オシロスコープ |
2 | 5mSec/div | 10kHz/div | オシロスコープ |
3 | 2mSec/div | 25kHz/div | オシロスコープ |
4 | 1mSec/div | 50kHz/div | オシロスコープ |
5 | 500μSec/div | 100kHz/div | オシロスコープ |
6 | 200μSec/div | 250kHz/div | オシロスコープ |
7 | 100μSec/div | 500kHz/div | オシロスコープ |
8 | 50μSec/div | 1MHz/div | オシロスコープ |
9 | 20μSec/div | 2.5MHz/div | オシロスコープ |
10 | 10μSec/div | 5MHz/div | オシロスコープ |
11 | 5μSec/div | 10MHz/div | オシロスコープ |
12 | 10Hz~100Hz | 100Hz×2.56=256Hz | FFT(1decade) |
13 | 100Hz~1kHz | 1kHz×2.56=2.56kHz | FFT(1decade) |
14 | 1kHz~10kHz | 10kHz×2.56=25.6kHz | FFT(1decade) |
15 | 10kHz~100kHz | 100kHz×2.56=256kHz | FFT(1decade) |
16 | 10Hz~1kHz | 256Hz,2.56kHz | FFT(2decade) |
17 | 100Hz~10kHz | 2.56kHz,25.6kHz | FFT(2decade) |
18 | 1kHz~100kHz | 25.6kHz,256kHz | FFT(2decade) |
19 | 10Hz~10kHz | 256Hz,2.56kHz,25.6kHz | FFT(3decade) |
20 | 100Hz~100kHz | 2.56kHz,25.6kHz,256kHz | FFT(3decade) |
21 | 10Hz~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> | 単位 | ゲイン |
0 | 10V/div | 0.33 |
1 | 5V/div | 0.66 |
2 | 2.5V/div | 1.33 |
3 | 2V/div | 1.65 |
4 | 1V/div | 3.3 |
5 | 500mV/div | 6.6 |
6 | 250mV/div | 13.3 |
7 | 200mV/div | 16.5 |
8 | 100mV/div | 33 |
9 | 50mV/div | 66 |
10 | 25mV/div | 133 |
11 | 20mV/div | 165 |
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> | |
0 | volt(rms) |
1 | dBV |
2 | dB(正規化) |
3 | pahse |
<status_trigger_position> | |
0 | フロント |
1 | センター |
2 | リア |
<status_trigger_level> | |
-200<v<200 |
<status_input) | |
0 | GND |
1 | AC |
2 | DC |
<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ルーチン
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-30.png?resize=882%2C567&ssl=1)
measure_action
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-31.png?resize=763%2C446&ssl=1)
measure_action_oscilloscope
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-32.png?resize=850%2C588&ssl=1)
Measure_action_fft1
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-33.png?resize=840%2C595&ssl=1)
key_action
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-34.png?resize=841%2C594&ssl=1)
key_action_RUN_STOP
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-35.png?resize=771%2C605&ssl=1)
データ取り込みフロー
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-36.png?resize=928%2C539&ssl=1)
key_action_RUN_STOP
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-37.png?resize=771%2C605&ssl=1)
key_action_oscilloscope
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-38.png?resize=871%2C574&ssl=1)
key_action_RUN_STOP
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-39.png?resize=771%2C605&ssl=1)
割り込み一覧
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-40.png?resize=1004%2C426&ssl=1)
窓関数
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-41.png?resize=858%2C583&ssl=1)
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-42.png?resize=885%2C565&ssl=1)
FFT
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-43.png?resize=461%2C202&ssl=1)
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-44.png?resize=945%2C189&ssl=1)
サンプリング時間
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-45.png?resize=1024%2C406&ssl=1)
デシベル
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-46.png?resize=824%2C545&ssl=1)
振幅測定
![](https://i0.wp.com/www.craft-design.yokohama/wp-content/uploads/2019/01/image-47.png?resize=796%2C628&ssl=1)