kazu_1995’s diary

北の高専→大学生→院生のブログ

よく使うgnuplotのコマンド備忘録

論文や報告資料の作成をする際に、データを取りまとめる必要があります。 そのためにグラフ作成ソフトを使用する場面が多く存在し,私もgnuplotを長いこと使用しています。

このgnuplotを使う上で,よく使用するコマンドをまとめてみました。

続きを読む

少ない手持ち部品で多くの試験を行うためのTips

基板の試作を行う際に,往々にして抵抗値やコンデンサ容量などを変化させて最適な特性を得ます。 だからといって,E12/E24系列すべての値を揃えるのはコストの面から難しいときが多いです。

そこで,1.0,2.2,4.7の3種類を組み合わせてE12系列を再現できないか計算してみました。

続きを読む

電子部品商社・Mouserの注文で失敗したお話

金曜日夜。 DigiKeyでは扱いがない部品を注文しようと,人生初めてMouserで発注を行いました。 米国に倉庫があり,時差を考えると即日発送してくれるだろうと思ったのが大失敗。 月曜日に出荷後,関税で1日余計に費やし,実際に部品が到着したのは注文からちょうど1週間後の金曜日でした。

そこでMouserについて調べてみたので,記事にしたいと思います。

続きを読む

GoPro×書道パフォーマンス

書道パフォーマンスで行われる壁作品の映像は,どうしても人物の背中または横顔ばかりになってしまいます. こんなかんじに. f:id:kazu_1995:20181211111712j:plain そこで,頭上にカメラを設置してダイナミックな動画撮影をしてみました. この記事では機材の選定から実際の撮影結果までをご紹介します.

続きを読む

カメラバッグを購入しました(NG 2347)

小型の,取り回しやすいカメラバッグを購入しました.ナショナルジオグラフィック(マンフロット)のアースエクスプローラーコレクションです. かつてNG 2478を使用していたので久しぶりのナショジオバッグ.

旧モデルNG 2346を引き継ぎ,2018年4月に登場したのがこのNG 2347. 本稿では.このNG 2347のレビューを行います.

続きを読む

安く・早くプリント基板を製造してもらう

基板製造時,量産性や表面実装部品の搭載,回路の高速化,小型集積化など,様々な面でプリント基板を採用する利点は多くあります. 一方で,コストと納期との面に着目すると,国内業者は非常に高価,安価な海外業者では基板到着までに数週間~1ヶ月必要という欠点がありました.

そこで本記事では,プリント基板を安く,かつ早く製造してもらう業者の紹介を行いたいと思います.

続きを読む

Terasic DE0ボードでのUSB通信②

前回記事の続きです. kazu1995.hatenablog.jp 今回は,前回記事で行ったJTAGの基本命令であるIDCODEの取得に加え, 自らが作成した命令を介してDE0に搭載している7セグメントLEDやLEDGの点滅操作, SWの状態取得,またFPGA内部にある数値の取得を行います.

1.事前準備

  1. JTAG通信に必要なD2XXドライバを入手します.FTDI社のWebサイトより入手可能です. 以下リンクよりWindows版を入手,i386フォルダにあるftd2xx.dllを使います(使い方は後ほど).
    D2XX Direct Drivers
  2. DE0のピン配置ファイルを入手します. 自作することも可能ですが,今回は製造元であるTerasic社から入手したいと思います. DE0製品ページのResources > DocumentsからDE0 Debounce Projectをダウンロードし,DE0_TOP_NewフォルダにあるDE0_TOP.qsfを使います(使い方は後ほど).
    Terasic - All FPGA Main Boards - Cyclone III - Altera DE0 Board


2.ソースコード

以下サイトにて公開しています.Download ZIPをクリックすることでコードを一括ダウンロードすることができます.
Experimental code of Virtual JTAG ( http://kazu1995.hatenablog.jp/entry/2017/11/18/202718 ) · GitHub


3.QuartusⅡの操作

QuartusⅡを起動し,以下の操作を行います.

  1. File > New Project Wizardからプロジェクトを作成
  2. Page1: working directoryはお好みで指定,project nameはCycloneと入力*1
  3. Page2: Add Filesに配布しているCyclone.vhdを指定しadd
  4. Page3: Family > Cyclone Ⅲ,Available devices > EP3C16F484C7を指定*2
  5. Page4: EDA Tool Settingsはお好みで
  6. Page5: Finishでプロジェクトの完成です
  7. Assignments > Import Assignmentsから,Terasic社より入手したピン配置ファイル(DE0_TOP.qsf)を指定します
  8. Tools > MegaWizard Plug-In ManagerからMegafunctionsを作成します
  9. Page1: Create a new custom megafunction variationを選択
  10. Page2a: Virtual JTAGを選択し,What name do you want for the output file?の入力欄の末尾にvirtualjtagと入力*3
  11. page3: ここからVirtual JTAGの具体的設定を行います,How wide should the instruction register be? > 8を指定
  12. Finish(Page4~6は無視して構いません)
  13. Quartus Ⅱ IP Filesに関するメッセージボックスが出現したらYesをクリック
  14. あとはコンパイルしてDE0に.sofファイルを書き込みます


4.Visual Studioの操作

Visual Studioを起動し,以下の操作を行います.

  1. ファイル > 新規作成 > 既存のコードからプロジェクトを作成
  2. 作成するプロジェクトの種類 > Visual C#を選択
  3. ファイルの場所には先程ダウンロードしたソースファイルのあるフォルダを指定し,好きなプロジェクトの名前とを入力後,出力の種類にはコンソール アプリケーションを指定
  4. プロジェクトはこれで出来上がり
  5. プロジェクト > プロパティから,ビルドを開く
  6. プラットフォームターゲット > x86を選択,アンセーフコードの許可にチェックを入れる
  7. ビルドをし,生成される.exeファイルと同じディレクトリにD2XXドライバ,ftd2xx.dllを配置


5.USB通信を行う

DE0に書き込んだあと,Visual Studioを用いて生成した.exeファイルを実行してください. 無事に起動すると次のような画面が現れると思います. f:id:kazu_1995:20171118161231p:plain 色々試して遊んでみてください. f:id:kazu_1995:20171118163959j:plain ソースファイルの説明はまた改めて行います.感想や改良案など,お待ちしています.


(2017/11/20追記)
ソースコードC# 7.0対応(Visual Studio 2017~)で書いていたため一部修正しました.現在公開しているコードについてはC# 3.0対応(Visual Studio 2008~)となっています.

*1:top-level entityに関わってくるので,Cycloneにしてください.Cyclone以外にする場合配布している.vhdファイルに修正が必要です.

*2:Show in 'Available devices' listのName filterに16f484c7のように入力するとすぐ出てきます.

*3:ここも2.と同様,virtualjtagにしてください.