About this site
このサイトは、航空・宇宙コンピュータ電子工作といった時代の最先端のことから、登山といった文明生活から遥かにかけ離れたことまで、思うがままに書いてあります。写真も大好きです。
興味がある方にしかおもしろくないと思いますが、どうぞ楽しんでいってください。あと、MovableTypeのカスタマイズ情報を提供しています。

If you are interested in "Super Sylphide", an autopilot system for small UAVs, please visit this page.

Super Sylphide猫カメラGPSロガーXBee電力計


最後に、はてなアンテナやRSSリーダーで読む場合はこちらからどうぞ。
Entries @ recently

March 03, 2010

ビット逆転をC++テンプレートで

ちょっとビットの逆転をする必要があったので、コードを書いてみました。ビットの逆転とは、例えば入力が0b10010101なら、出力を0b10101001とすることです。せっかくなのでC++でテンプレートで実装してみました。

参考にしたのは虎の巻『ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか』です。痒いところに手が届くアルゴズムが色々とあり、とても助けられています。このお題以外にも最近では、整数演算のみでルートをとる方法を調べました。

ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか

追加情報として、この実装は可変長ビット列 long_bits.h に盛り込んであります。また今回のお題に関連して、『ビット列の性質を求める』という記事も以前に書いていました。興味があれば是非見てみてください。

23:47 fenrir が投稿 : 固定リンク | このエントリーを含むはてなブックマーク | この記事をLivedoorでクリップ! | この記事をdelicious.comでブックマーク | この記事をドリコムRSSにクリップ | コメント ←ここから投稿できます!! | トラックバック (0)
このエントリーのトラックバックURL: http://fenrir.naruoka.org/mt/mt-tb.cgi/740

February 24, 2010

アレの小型化

以前、実体配線図を紹介したアレですが、その後自分が欲しかった機能を組み込んだ基板を設計してみました。もちろん小型化してあります。

p0ken_brd.png
大きさ約20x20 mm

追加された仕様は、振動モータのドライバ回路を1ch組み込んだこと、LiPoの充電回路(bq24022)を組み込んだこと、USBとの接続を直挿しからminiBコネクタに変更したこと、これら3点です。もう少し回路をチェックした後、pcbcartに投げてみようと思います。

08:35 fenrir が投稿 : 固定リンク | このエントリーを含むはてなブックマーク | この記事をLivedoorでクリップ! | この記事をdelicious.comでブックマーク | この記事をドリコムRSSにクリップ | コメント ←ここから投稿できます!! | トラックバック (0)
このエントリーのトラックバックURL: http://fenrir.naruoka.org/mt/mt-tb.cgi/739

February 12, 2010

ローカルに流れるTCPパケットを見る

ちょっとした事情がありまして、以前記事を書いた『Amontec JTAGkey-Tiny (FT2232) を Xilinx iMPACTから使う』のメンテナンスをしています。これはXIlinxの純正書き込みツールでFT2232を使ったFPGAやPROMへの書き込みを可能にしようというツールなのですが、メンテナンスを行うにあたって表題のローカルを流れるTCPパケットを直接調べたいという要望が発生しました。

持ち出したるはTCPのパケットを監視するフリーウェアNirSoftのSmartSniffなのですが、これが困ったことにNICを通ったパケットしか拾ってくれないようでした。このフリーウェアはパケットをキャプチャしてくれるという単機能なので、非常に使い勝手が良く愛用しているので、できれば今回の目的にも使いたいところです。

ということで方法を考えてみました。方法は2つ考えたのですが、結局のところ他のマシンを経由してNICを強制的に通すというアイデアに変わりはありません。1つはsshでどこか手元にあるサーバに接続する際、ポートフォワーディングを行うという方法(ssh hoge@server -L some_port:local_ip:local_target_port)。もう一つはどこか別のコンピュータでstoneを使ってポートフォワーディングを行う方法(stone local_ip:local_target_port some_port)。どちらともうまくいきました。

どなたか1台のPCで済む良い方法をご存じないでしょうか。仮想PCとか使えばうまくいきそうな気もしていますが、ちょっと面倒くさいです。

23:05 fenrir が投稿 : 固定リンク | このエントリーを含むはてなブックマーク | この記事をLivedoorでクリップ! | この記事をdelicious.comでブックマーク | この記事をドリコムRSSにクリップ | コメント(2) | トラックバック (0)
このエントリーのトラックバックURL: http://fenrir.naruoka.org/mt/mt-tb.cgi/738

February 03, 2010

Super Sylphide 進捗状況(28) -- DSPのROMブートでmain()前にPLLを有効に

オートパイロットシステム Super Sylphideですが、ちょっとした佳境を迎えつつあります。そのデバック作業中において遭遇した問題について、今回は記事にしてみようと思います。内容はタイトルのとおり、ブートコードでPLLの設定を完了しなければせならなかったという話です。

Super Sylphideで利用しているDSPはTIのTMS320C6713Bという浮動小数点DSPです。このDSPはROMからブートする場合、以下の2段階の過程を経て行われます。

  1. まず、ROMの先頭1K Bytesが内蔵RAMに自動的にコピーされます。その1KBには、基本的なレジスタの設定、例えば外部に接続されたSDRAMのバス幅やリフレッシュレートなどを書くとともに、プログラムコードやデータを適切な配置となるようコピーするコード、そしてmainに飛ぶコードを埋め込んでおきます。
  2. その1KBのコードが実行されます。つまり基本的なレジスタ設定が完了するとともに、コードやデータが適切なメモリ番地に配置されます。最後にmain()が実行され、晴れてブートプロセスが完了します。

この1KBのブートコードは、なんといってもレジスタ設定やコード配置に関することですから非常に重要です。ということでTIのDSKに付属していたブートコードをベースに、RAMのリフレッシュレートの定数などを少し変更しただけのブートコードをこれまで使ってきました。

しかしながら時たまブートしなくなるという、不安定な症状が発生しました。原因を色々と探ってみたのですが、コードのサイズが少しばかり大きくなると問題が発生するということがわかりました。どうやら外部RAMであるSDRAM上に配置したプログラムコードが時たま予期しないものに書き換わってしまっているようでした。

色々考えてみた結果、タイトルの通りのこと、つまりPLLの初期化をmain()ではなくブートコード上で行うと不安定な状態が解消されることがわかりました。SDRAMのリフレッシュが不足し、データの一部が改変されていたようです。
これまではDSKのサンプルコードに従って、ブートコードが終了しmain()に飛んだ時点でPLLの初期化を行っていたのですが、この状態では本来の速度よりも遅い速度で外部バスが駆動されているので、main()でPLLが設定されるまでリフレッシュのタイミングが予期したものよりも遅くなります。一方、main()が呼ばれる前にブートコードでPLLの初期化を行うと、CPUや外部バスのクロックがコードを配置する以前に本来の速度となり、main()が呼ばれる前のコード配置中においても適切なタイミングでSDRAMのリフレッシュがかかるようになりました。

元にしたDSKのサンプルコードですが、これはこれで正当な方法でブートが行われている、と見ることができることもわかりました。というのも、DSPは高速な演算をさせるために、プログラムコードは外部RAMにおかず、内部RAMにおくというのが有る意味作法となっているからです。内蔵RAMはSRAMでありリフレッシュは必要ないので、PLLによってクロックが変化しようが問題ない、つまりPLLの設定はどこで行っても問題がないということなのでしょう。

最後に現在のブートコード(boot6713.asm)と、PLL初期化がない古いブートコード(boot6713.asm.r3660)を置いておきます。直接参考になるコードがなかった(C672xのブートに関する資料(jaja100.pdf)は参考になった)ので、ニーモニックを調べたりCコンパイラが吐くアセンブラを見ながら、なんとかハンドコーディングできました。

00:07 fenrir が投稿 : 固定リンク | このエントリーを含むはてなブックマーク | この記事をLivedoorでクリップ! | この記事をdelicious.comでブックマーク | この記事をドリコムRSSにクリップ | コメント ←ここから投稿できます!! | トラックバック (0)
このエントリーのトラックバックURL: http://fenrir.naruoka.org/mt/mt-tb.cgi/737

January 27, 2010

実体配線図を綺麗に書くと路線図みたいだ

ブログの更新をさぼっていてスイマセン。生存報告ができる程度の仕事量に最近落ち着きつつあります(まだ脱出したわけではないのです)ので、生存報告がてら息抜きとしてやっていたことを少し記事にしようと思いました。といっても画像を一枚ペタリとはるだけですが。

arege_2010_01.png
イラレで書いていました。

とあるものの動作原理が知りたくて、所謂リバースエンジニアリングをしていました。従って何かは聞かれても絶対にお答えいたしません(笑)。

※これをもとに基板を設計しました。

09:27 fenrir が投稿 : 固定リンク | このエントリーを含むはてなブックマーク | この記事をLivedoorでクリップ! | この記事をdelicious.comでブックマーク | この記事をドリコムRSSにクリップ | コメント(2) | トラックバック (0)
このエントリーのトラックバックURL: http://fenrir.naruoka.org/mt/mt-tb.cgi/736

January 01, 2010

年末年始? そんなの関係ない!! => 2010 謹賀新年

[Timely]

世間一般では年末年始というらしいですが、僕は自己責任の諸事情で年末年始がなくなりました。どうもありがとうございます。

200913.png
クリックでExcelが落とせます。

そのような方のために、ご用意いたしました、2009年13月のカレンダーです(実は僕のトモダチのJorg氏から戴きました)。何らかの事情を周囲に察知してもらうためにそっと使うもよし、年をまたいでしまった残念なデスマプロジェクトで同僚に圧力をかけるに使うもよし、各自ご活用ください。

※なお、このエントリーは僕の時間がとれ次第、2010 謹賀新年というタイトルに変わる予定です。事情をお察しください。また年賀状も鋭意遅延中(送っていただいた方には絶対お返しいたします)です。申し訳ありません。

続きを読む "年末年始? そんなの関係ない!! => 2010 謹賀新年"
22:36 fenrir が投稿 : 固定リンク | このエントリーを含むはてなブックマーク | この記事をLivedoorでクリップ! | この記事をdelicious.comでブックマーク | この記事をドリコムRSSにクリップ | コメント ←ここから投稿できます!! | トラックバック (0)
このエントリーのトラックバックURL: http://fenrir.naruoka.org/mt/mt-tb.cgi/735

December 22, 2009

『あかつき』に初音ミクを載せよう -- 10000人署名達成

僕の周りのTwitterではかなりつぶやかれていたので、ご存知の方が多いのではないかと思いますが、JAXAの金星探査衛星『あかつき』初音ミク(の絵)を載せようという計画が、超電磁Pこと森岡澄夫さんによって運営されています(署名締切:2010/1/6)。これは『あかつき』の金属プレートに応援メッセージが載せられるというJAXAの企画に便乗したものです。

当初はミクの名前を載せる程度の話だったのですが、署名が集まっていくごとに、各所の協力が得られて計画がどんどん大きくなり、10000人のメッセージを集めると金属プレートまるまる一枚にミク絵を載せられるというプロジェクトに発展しました。そしてとうとう本日、署名10000人を達成したことで、ミク絵が『あかつき』に載ることはほぼ確定したと思います。

超電磁Pが10000人署名達成への感謝ということで、コメントを掲載しています。全文はリンクを参照していただくとして、特筆すべきは以下の点です。

(前略) 二つ目は,「人と人とのつながりからブレークスルーを起こす」ということです.上記のとおり,本件は私一人が成し遂げたものなどではありません.私一人が何をしても大した結果を生み出せるはずがありません.初音ミクの世界で最高に素晴らしい点は,ミクを媒体に魅力的な方達が自発的につながり,それによって驚愕するような飛躍的成果が出ることです.今回の活動の一連の経過が,それを何よりも雄弁に物語っています. (後略)

今回のような計画から『オリコンでアニメの主題歌を1位に』のような軽い感じを受ける方も勿論いらっしゃるでしょう。また堅い話をするならば、税金を使ってやっている宇宙の探査が注目を集めることはいいことだ、というあたりなのでしょう。しかし本音のところで言えば、とんとん拍子に話が大きくなっていったことこそ今回の計画の最大の見所だと思います。その開発や運営に直接関わっていなくとも『俺らの衛星』としてこれだけ楽しみ方を増やすことができた、そしてそれを可能にしたのは初音ミクを介した人的ネットワークであったと。

実は、これだけでは終わりません。『あかつき』の署名後も、リアル初音ミクを搭載した人工衛星を趣味な人たちが自作、軌道にのせよう、というSOMESATプロジェクトが進行中です。これも人的ネットワークを介してどこまで実現できるかが勝負どころでしょうが、結集している英知をみる限り、かなりの確度で軌道投入できると踏んでいます。

最後に余談になりますが、知合いのJAXA職員某氏は、『ほんとやめてください。企画、つぶしてやりますよー』なんてニヤニヤしながら先日言っていましたが、たぶん大丈夫だと思います。彼の力はそこまで及ぶまい(笑)

22:55 fenrir が投稿 : 固定リンク | このエントリーを含むはてなブックマーク | この記事をLivedoorでクリップ! | この記事をdelicious.comでブックマーク | この記事をドリコムRSSにクリップ | コメント ←ここから投稿できます!! | トラックバック (0)
このエントリーのトラックバックURL: http://fenrir.naruoka.org/mt/mt-tb.cgi/734