狠狠撸
Submit Search
オリジナル惭滨顿滨シーケンサ 開発ノート
?
2 likes
?
1,724 views
Y
you_ucchy
Follow
贵笔骋础を使ったオリジナル惭滨顿滨シーケンサ开発の歴史と、今后の课题や开発方针について。
Read less
Read more
1 of 21
More Related Content
オリジナル惭滨顿滨シーケンサ 開発ノート
1.
オリジナル惭滨顿滨シーケンサ
開発ノート 2012年2月6日
2.
概要
この文書は、とある半導体部品の使い手である、一人の 技術者の記録である。 小型軽量で実用的なMIDIシーケンサを、個人レベルで 開発して実現するのが本件の最終目標である。 第1次試作品は既に完成している。Xilinx Spartan-3E FPGA にFM音源を搭載してポケットサイズに仕上げ、単3形 NiMH 2本で動作するが、いくつかの課題も表面化した。 課題解決のため、NXP LPC1769 MCUとSpartan-6 FPGAを 採用した基板を既に製造済みである。 2012年2月6日時点では、両基板を組み合わせてシステ ムとして動作させることが課題になっている。それに向け た現在検讨中の計画案を、この文書に記載する。 2012年2月6日 オリジナル惭滨顿滨シーケンサ 開発ノート you_ucchy 2
3.
背景
私が学生の頃、YAMAHAのQY70に出会い、以後今日 QY70 まで愛用しているが、電池が6本も必要で携帯性に不満 を感じていた。だが、より大型のQY100が10年前に登場 して以降、新製品が出る気配は無いのが現状である。 一方、21世紀に入って以降、最先端のMCUやFPGAが 搭載された基板を秋葉原店頭や雑誌の付録などで安価 に入手できるようになった。更にネットを通じて、部品の 調達やプリント基板の発注も個人レベルで出来るように なっている。 以上を踏まえ私の不満を解決すべく、MIDIシーケンサを 自作してしまおうというのが、本件のテーマである。 自作 2012年2月6日 オリジナル惭滨顿滨シーケンサ 開発ノート you_ucchy 3
4.
検讨
製品並のMIDIシーケンサを実現する上での課題は幾つ かあるが、主たる課題はその音源の実現方法である。 音源の実現方法 今日の市販品に匹敵する音色を再現するのは、個人レベ ルでは大変困難であるのは言うまでもないが、かといって 市販のGM音源チップでは音色に不満が残る。 個人レベルで実現可能な音源方式としてFM音源が最適 音源 であると思うが、それをソフトウェアで実現するのは、 採用できるMCUの能力を考慮すると厳しい。 そこでFM音源回路を、入手の容易なFPGAに実装する 実装 のが現実的な解になると考えられる。 主要部品にFPGAを採用するならば、音源の実現以外に 表示器やキーの取り扱いも、そのFPGAで可能である。 2012年2月6日 オリジナル惭滨顿滨シーケンサ 開発ノート you_ucchy 4
5.
课题と対策
部材 通販で調達可能である。 外装 市販のケースを採用する。 加工は一般の工具による手作業で対応する。 基板 製造は業者へ発注する。 部品実装は手付けで対応する。 電源 単3形NiMH 2本から昇圧する。 FPGA 音源部をはじめとする全ての機能ブロックを フルスクラッチで開発する。 フルスクラッチで開発 2012年2月6日 オリジナル惭滨顿滨シーケンサ 開発ノート you_ucchy 5
6.
主要部品の选定
FPGAは、Xilinx Spartan-3E (TQFP) を採用する。 デバイスの評価にはCQ出版社 Design Wave Magazine 付録基板を利用する。 開発環境はXilinx ISE WebPackを利用する。 表示器は、秋月電子通商で販売されている400x96ドット カラーグラフィックTFT液晶モジュールを採用する。 TFT液晶モジュール↑ ← 付録FPGA基板 2012年2月6日 オリジナル惭滨顿滨シーケンサ 開発ノート you_ucchy 6
7.
完成までの轨跡
← 2008年1月頃 付録基板を利用して製作 ↓ 2008年10月頃 FPGA基板を製造して製作 ↓ 2009年6月頃 第1次試作機が完成 ← 開発したSpartan-3E FPGA基板 2012年2月6日 オリジナル惭滨顿滨シーケンサ 開発ノート you_ucchy 7
8.
考察
電源に関する不満 電源ONのまま放置すると電池を過放電させてしまう。 連続動作時間が2時間程度と短い。 キーに関する不満 キーが押しにくく、簡単な曲の演奏ですら困難。 キーが少なく操作しづらい。 機能に関する不満 編集機能が実現できておらず、期待を大幅に下回っている。 機能充実にはFPGA搭載回路を変更しなくてはならない。 2012年2月6日 オリジナル惭滨顿滨シーケンサ 開発ノート you_ucchy 8
9.
取り组むべき课题
電池の過放電への対策 終止電圧到達でシャットダウンする機能を電源回路に追加した。 連続動作時間の延長 表示器の変更 携帯電話用の液晶(QVGA)を採用 消費電力を大幅削減、解像度アップ FPGAの変更 Xilinx Spartan-6 LX9 (TQFP) を採用 消費電力削減、回路規模アップ ? 単3x2で2時間から 単4x2で4時間以上へ 時間以上 大幅に改善した! 小型化も同時に実現! 新開発の Spartan-6 FPGA 基板↑ 2012年2月6日 オリジナル惭滨顿滨シーケンサ 開発ノート you_ucchy 9
10.
取り组むべき课题
キーの押しづらさへの対策 プロトタイプ 部品変更で改善する見込み。 に便利な キーが少ない問題への対策 mbed ↓ → 編集?操作用のキーを増やし 改善させる予定。 編集機能の充実 MCUにNXP LPC1769を採用し、 LPC1769 編集機能はソフトウェアで実現 させる。 新機能の拡充もソフトウェアで 対応する。性能がソフトウェア 単独で満たされない場合は、 FPGAに回路を追加することで 対応する。 新開発したMCU基板による試作機↑ 2012年2月6日 オリジナル惭滨顿滨シーケンサ 開発ノート you_ucchy 10
11.
今后の课题
本件の今后の课题を以下に列挙する。 外装 見劣りするのを何とかしたい。 基板 主要基板は製造済みだが一部評価が未完了。 編集キー用基板が未開発。 電源 過放電対策済み。連続動作時間も実用レベル。 電池電圧低下の警告機能が欲しい。 電源OFFの制御をMCU側でさせたい。 FPGA 機能追加が非常に困難な構造を改善したい。 機能追加が非常に困難な構造を改善したい ドライバ 未開発。MCU-FPGAアクセスを早急に実現したい。 アクセスを早急に アプリ 未開発だが、予想される技術的課題は特に無い。 FPGA機能ブロックの再開発(論理回路設計)と 機能ブロックの再開発 MCUアクセス開通が、当面の重要課題となる。 アクセス開通 2012年2月6日 オリジナル惭滨顿滨シーケンサ 開発ノート you_ucchy 11
12.
予定している贵笔骋础内部机能ブロック図
FPGA内部構成は、MCU I/F?音源系?表示系などの各マスタ機 能ブロックと、Block RAM?SRAMなどの各メモリI/Fブロックで構 能ブロック ブロック 成され、両者はトランザクタとHUBで構成される内部バスに接続 内部バス されている。 2012年2月6日 オリジナル惭滨顿滨シーケンサ 開発ノート you_ucchy 12
13.
内部バスの特徴
本件で採用する内部バスは2種類ある。 内部メモリバスは、16bit幅のスプリットトランザクション型 を採用する。バースト転送もサポートする。但し転送の最 小単位は32bitとし、バースト長は必ず偶数になる。アドレ ス空間は最大32bit(下位2bitは0固定)=4GBである。 内部レジスタバスは、MicroBlaze MCSの I/O Bus や MMCM等のDRPと等価なインターロック型を採用する。 転送単位は32bit固定となる。 レジスタブリッジにより、内部メモリバスから内部レジスタ バスへの変換が行われる。したがって、マスタ機能ブロッ クは内部メモリバスへのアクセスによって各レジスタへア クセスすることが可能である。 2012年2月6日 オリジナル惭滨顿滨シーケンサ 開発ノート you_ucchy 13
14.
内部メモリバスの动作概要
各マスタ機能ブロックからのバスアクセスは、トランザクタで変換 処理される。HUBはクロスバースイッチと等価な構造であるが、 FPGAリソース使用量が少なくて済む構成になっている。 2012年2月6日 オリジナル惭滨顿滨シーケンサ 開発ノート you_ucchy 14
15.
内部メモリバスの制御方式(1)
AXIやOCPなどの一般的なバスでは、データ転送時に受 信側のREADY信号を常に監視する必要があるため、制 御が複雑になりタイミング改善も難しい傾向にある。 この内部バスでは、送信側は受信側に対して予め転送要 求を発行し、許可を受けた後で無条件にデータを送信す る。これにより制御が単純になり、タイミング改善も容易に 対応可能である。 VALID REQ DATA GNT READY VALID DATA 一般的なバスの場合 本件の方式 2012年2月6日 オリジナル惭滨顿滨シーケンサ 開発ノート you_ucchy 15
16.
内部メモリバスの制御方式(2)
トランザクタは、マスタ機能ブロックから要求されたアドレスを デコードし、対応するHUB内アービタへリクエストを発行する。 アービタはメモリI/Fブロックに対してリクエストを発行し、 許可(GNT)を得られたら、リクエストがあったトランザクタの 1つを選択して許可を出す。 許可を得たトランザクタは、それをマスタ機能ブロックへ通知し、 リクエストデータを出力する。 Req HUB(reQ) Req reQ Memory Transactor Gnt Gnt Arbiter Interface reQuest Data reQuest Data Block Req Req reQ Memory Gnt Gnt Transactor Arbiter Interface reQuest Data reQuest Data Block 2012年2月6日 オリジナル惭滨顿滨シーケンサ 開発ノート you_ucchy 16
17.
内部メモリバスの制御方式(3)
メモリI/Fブロックがレスポンスデータを返す場合は、 先ず対応するHUB内アービタへリクエストを発行する。 アービタは、リクエストがあったメモリI/Fブロックのうちの1つを 選択して許可を出す。 メモリI/Fブロックはレスポンスデータを出力する。 トランザクタはレスポンスデータをマスタ機能ブロックへ返す。 マスタ機能ブロックはこれを無条件に受け入れる。 HUB(Resp) Req Resp Memory Gnt Transactor Arbiter Interface Response Data Response Data Block Req Resp Memory Gnt Transactor Arbiter Interface Response Data Response Data Block 2012年2月6日 オリジナル惭滨顿滨シーケンサ 開発ノート you_ucchy 17
18.
机能ブロック一覧
内部バスI/Fブロック 音源系ブロック Transactor FM音源部 HUB ミキサー, エフェクター Register Bus Bridge I2SRX/TX ホストI/Fブロック PWM Phone Out MCU I/F (SPI Slave & UART) 表示系ブロック MicroBlaze MCS I/O Bridge 表示出力部 (w/Cache Ctrl.) AVIデコーダ Programmable Interrupt Ctrl. BitBlt?矩形Fill メモリI/Fブロック 直線描画?三角形描画 Block RAM SPI Flash ROM その他 非同期SRAM MMC I/F MIG (DDR-SDRAM) Bridge キー制御 ※赤字 赤字は過去に開発実績あり。 GPIO 2012年2月6日 オリジナル惭滨顿滨シーケンサ 開発ノート you_ucchy 18
19.
Appendix 2012年2月6日
オリジナル惭滨顿滨シーケンサ 開発ノート you_ucchy 19
20.
実装上のヒント
からFPGAをコンフィグレーション ■ MCUから から をコンフィグレーション MCUからアクセスできるストレージにFPGAコンフィグファ イルを置いておき、電源投入後MCUがそのファイルを読 み込んでFPGAをコンフィグレーションする。 ストレージは、mbed内蔵Flash又はMMCなどが想定される。 に格納したコードをMCSで実行 ■ MMCに格納したコードを に格納したコードを で実行 MicroBlaze MCSの内蔵メモリにブートローダを格納し、 MMCから読み込んだ実行コードを、I/O Bus空間にマッピ ングされた任意のメモリ上に配置し実行させる。 μClinuxなら動作させられるかもしれない。【※要検証】 I/O Bridgeのキャッシュ機能に性能が左右される。 2012年2月6日 オリジナル惭滨顿滨シーケンサ 開発ノート you_ucchy 20
21.
2012年2月6日
オリジナル惭滨顿滨シーケンサ 開発ノート you_ucchy 21