M5Stack用FPGAボードに搭載しているMAX Vシリーズには、オシレータが内蔵されています。(ので、外部発振回路を設けていません。)
FPGAのテストとして、内蔵オシレータを動かしてみます。
プロジェクト作成からの手順は、以下の通り。
- Quartus Primeを起動
- File-New Project Wizardを実行
- プロジェクトを作成するディレクトリ名、プロジェクト名、デザインファイル名を入力(すべて、「InternalOscillator」としています)
- Nextをクリックして「Fammily, Device & Board Settings」まで進め、実装したデバイス「5M160ZE64C5」を選択
- Nextをクリックして「Summary」まで進めて、Finish
- File-Newで、「Block Diagram/Schematic File」を選択
- 右側の「IP Catalog」の「MAX II/MAX V oscillator」で右クリック、オシレータを作成してファイル保存(発振周波数は、5.3MHzとしました)
- 作成したオシレータとその他(カウンタ、GND、VCC、出力ピン)を回路図上に配置(カウンタ74163のRCO、QD、QC、QB、QAの5端子を出力ピンにつないでいます)
- 「Start Analysis & Synthesis」を実行(左下の「Task」で実行結果を確認。失敗するようなら、回路の接続を再確認します)
- 「Pin Planner」を実行し、出力ピンをデバイスのピンに割り当て(RCOを63、QDを61、QCを60、QBを59、QAを58)
- 「Start Compilation」を実行(左下の「Task」で実行結果を確認)
- ここで、PCとUSB Blaster、FPGAボードを接続
- 「Programmer」を実行(接続確認を兼ねて「Auto Detect」でデバイスを認識させます)
- 「Program/Configure」にチェックを入れ、「Start」を実行(右上のProgressが「100%(Successful)」となればOK)
- ここまででFPGAへの書き込みは完了しているので、出力ピンを波形観測(上から順に、QA、QB、QC、QD、RCO)
原発振は5.3MHzとのことでしたが、QAが2.41MHzとなっているので実際は4.8MHzといったところでしょうか。ジッタも結構あります。
高精度なクロック発振を求められるアプリケーションには向きませんが、簡易な装置向けとしてはアリなんじゃないでしょうか。