July 06, 2010

TCM8240MD breakout (i2cで画像取得モジュール) 動作確認完了

English abstract is below.

以前お知らせした、猫カメラのカメラの部分だけ取り出して電子工作の部品にしようという計画(TCM8240MD breakout)、完了しました。下の写真にあるように動作確認がとれています。

TCM8240MD_breakout_test.jpg
モジュールの様子をモジュールで取り込んでいる

上の動作確認では、モジュールにArduino Miniを繋げて、モジュールから画像をi2c経由でArduinoに取り込み、それをUSBシリアルでPCに流し、さらにPCでOpenCVを使ったデモプログラムで表示させています。

モジュールのスペックを以下にまとめておきます。

  • 接続は4本です。電源2本(VCCとGND)、i2c(SDAとSCL)です。VCCは+5Vにも+3V3にも対応しています。i2cについてもHレベルが+5Vであっても+3V3でも問題ありません。
  • 最大でSXGA(1280 x 1024 pixel)まで撮影できます。その他にもSVGA(800 x 600)、VGA(640 x 480)、QVGA(320 x 240)、QQVGA(160 x 120)、CIF(352 x 288)、QCIF(176 x 144)、subCIF(128 x 96)が出せます。
  • フレームレートはサイズやインターフェイスに依存しますが、明らかに動画は不可能で、インターバル撮影を主な用途として想定しています。これはインターフェイス(i2c)が遅いことによる影響で、Arduinoとの接続だと例えばQQVGAでも1fps以下です。撮像自体は常に15fpsで行っており、画像取得を行ったタイミングから最も近くで切られたシャッターの画像を出力します。
  • フォーマットはRGB565(詳細は後述)というRawフォーマットです。モジュール内部のカメラの能力的にはJpegは出せるはずなのですが、現時点では設定方法がわからずスペックから除外します
  • 画像取得のためのi2cは最大10Mbps程度まで速度をだせるはずです。Arduinoのi2cの最大速度(1Mbps)は余裕をもって対応しています。

しばらくお時間をいただくことになるかもしれませんが、スイッチサイエンスさんやFPGA-Cafeさんで購入できるようにしたいと考えています。

※試作段階にも関わらず、製品を評価してくださった方を紹介します。

※※(2010/8/23)ここに書いてあったサンプルコード上のi2cアドレスが間違っていました(0x3Dと0x3Eが逆)。訂正しました。

※※※(2010/11/21)実はMTM06でスイッチサイエンスさんからこっそり販売していました。購入していただいた方からの動作報告です。

以下、使い方やフォーマットなどの紹介です。

続きを読む "TCM8240MD breakout (i2cで画像取得モジュール) 動作確認完了"
21:24 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (6) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/761

July 15, 2010

Super Sylphide 進捗状況(31) -- TMS320C6745のJTAG

オートパイロットシステムSuper Sylphideですが、Tiny Featherという名前で小型化を進めています。Tiny Featherではメインの計算機としてTexas InstrumentsのTMS320C6745(以下、6745)というDSPを採用しており、オリジナルのSuper Sylphideで採用していたTMS320C6713B(以下、6713)の後継にあたるものなので、開発環境の部分ではさほど変わらないだろうと考えていました。ところが早速、JTAGアダプタを使用してPCに接続する勝手が違う、という壁に突き当たったので、これを記事として記録しておきたいと思います。

まず物理的な接続ですが、これはJTAGなので以前の6713とほとんど変わりがなく、こちらは特に問題がなく済みました。少し変化があるとしても、6745のQFP176パッケージでは6713にあったエミュレーション用の特殊ピンEMU0/1がない程度で、接続しなければいけない本数が2本減りました。同じ6745でもBGAパッケージのものでしたらEMU0/1が存在するため、今回の6745にそれらがないのはおそらくピン数の関係で削減されたものであり、本質的な問題ではありません。結果、6745では以下の写真に示すような7本(電源のVCCとGND、及び標準的なJTAG端子のTCK,TDI,TDO,TMS.-TRST)でJTAGアダプタに接続しています。

tiny_feather_jtag.jpg
左下の虹色ケーブルがJTAGアダプタと繋がる

問題なのはソフトウェアな話です。従前の6713では直接DSPのコアにJTAGが接続されておりInstruction/Data Registerにアクセスするようになっていたため、PC側の開発環境であるCode Composer Studio (CCS)の設定は簡単でした。接続に利用するJTAGアダプタを指定して、その下に6713を配置するのみです。6713のときのCCSのセットアップを以下に示します。

CCS_Setup_6713.png

ところが6745ではこうはいきません。結果を先に書いてしまうと、6745の中にはIcepick_CというJTAG Routerが一段噛んでおり、そこのPort 0x11(17番)からDSPコアに接続するという形にする必要がありました。同じく6745のCCSのセットアップを示します。

CCS_Setup_6745.png

どうやらIcepick_Cが導入された背景として、マルチコアならぬコンプレックスコア化した最近のTIのDSPの状況があるようです。コンプレックスコアとここであえて書いたのは、例えばOMAPといったブランドではARMとDSPという異種の2つのコアが一つのパッケージに統合されています。このような場合においても片方のコアだけデバックしたい、といった複雑な状況を巧妙に処理するためにJTAG Routerが入っているようです。調べてみるとTIからでているsprp603という文章の中にIcepickに関して詳細な記述があり、その役割などが記載されていました。

このJTAG Routerを配置しなければならないということに気づくのに、かなり時間を要しました。しかもDSPだけのシングルコアのチップに対しても、JTAG Routerを仕込んでくるとは思ってもいませんでした。
この問題を解決するきっかけとなったのは、JTAGで6745のIR Registerの長さを調べた際に6bitという非常に短いレジスタしか見えないことを奇妙に感じたことでした。6713は、こんなに短くは無かったぞ、ということで調べてみると、Icepick_CのInstruction Register の長さが6bitだったというわけです。その後は前述のTIの文章を見つけることができ、なんとか類推でCCSから6745を認識させるに至りました。

※次の記事はTiny Featherのセンサ+サーボI/F基板の設計です。

00:41 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (0) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/762

July 24, 2010

FM-2028を買い換えたら改良されていた

半田ごては僕ら電子工作をする人間にとって生命線なので、僕はHakkoのFX-951というちょっと趣味にしては高級なコテを使っています(作業環境について)。ところが使っているうちにコテのホルダーの一部が破損しまいましたので、買い換えました。FM-2028という部品(正確にはその一部のB3220という型番の部品)です。

壊れたものと新しく買った正常品の比較をしてみました。上が壊れたもの、下が正常品てす。

FM-2028_side.jpg

壊れた部分は、交換可能な金属製のコテ先を捕まえているリング状の部分(LOCKと書いてある隣の部分)です。割れてしまい、コテ先がこのままだとグラグラしてしまうので危険です。

気づいたのですが、この部分どうやら壊れやすいようでリングの太さが新しく買ったものでは太くなっていました。上の写真でもわかるかと思いますが、軸方向から眺めた比較写真を新たにとって見ました。左が破損品、右が新規に購入した正常品です。

FM-2028_top.jpg

少し太くなっている(リングおおよそ2倍になっている)のが確認できると思います。壊れ方はせん断破壊ですので、断面積が強度に効いてくると思うのですが、材質が同じなら約2倍の強度ですね。

おそらくユーザからクレームがついたのだと思うのですが、細かいところでも改良を施したのは大変評価できます。一般論ですが、多くのメーカにこのような継続的サポートや改良を期待したいところです。

11:07 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (0) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/763

July 27, 2010

Super Sylphide 進捗状況(32) -- Tiny Feather IMU + Servo I/F

オートパイロットシステムSuper Sylphideですが、小型化版のTiny Featherの設計も順調に進んでいます。既に計算、記録用のボードは設計と製作が完了していますが、新たにセンサ、およびサーボとのインターフェイスを搭載した基板が設計完了しましたので紹介します。Tiny Featherは、標準的なシステムとしてこの2枚でSuper Sylphideと同等以上の機能を実現しました。

まずは恒例の基板アートワークから。従来のSuper Sylphideのセンサ基板は2層でしたが、複雑になったので4層に変更しました。

tinyfeather_IMU_E.png

搭載しているセンサなどの仕様は以下のとおりです。

  • 大きさは1.4 x 3.1 inch (約 36 x 79 mm)
  • 従来、ジャイロが搭載された基板を垂直に立てることでX,Y,Zの3軸の角速度をとっていたが、加速度計3軸、およびジャイロ3軸の6自由度が1パッケージに収まったエプソントヨコム AH-6100LRを採用することでよりコンパクトに。いくつか仕様があるうち 500deg/s、+/-3Gのものを搭載予定
  • GPSは相変わらずu-blox。最新のLEA-6T、あるいは旧製品のLEA-4Tを搭載予定
  • さらに3軸の磁気コンパスHoneywell HMC5843も搭載
  • 加速度計とジャイロは24bit Delta-Sigma A/DのTI ADS1248で計測
  • サーボ I/Fの信号線は8ch入力、8ch出力。ハイトルクタイプも対応しており、入力バッファに74HC4050をいれてあるので最大10V程度まで対応可能
  • アビオニクスとサーボ用電源の自動切換えを搭載しており、電源の多重化が可能
  • 全ての線はAltera MAXIIに接続してあるので組み替えが容易
  • 記録用やDSPブート用にSPI ROMを搭載

図面は基板屋さんのpcbcartに出しました。部品も大半はDigiKeyで調達済みです。製作が夏休みの宿題になりそうです。

※その後、Air Data Sensorと呼ばれる大気高度、風速、風向計も小型化しました。

※※この基板、組み立て完了しました。

※※※この基板上のCPLDの中身を公開しました。

06:17 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (2) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/764