About this page
カテゴリー Embedded Systemに属する記事の一覧ページです。
現在このカテゴリーには136本の記事があります。

カテゴリー Embedded Systemの説明:
趣味の電子工作のお話。
業界用語では『組込み系』というらしいですが、できるだけお金をかけずに目標を達成することを心掛けています。ターゲットですが、サイト開設当初はH8を中心に作業をしていたのですが、それからどんどん手を広げてSH4やDSPもやりだしました。好きこそ物の上手なれとはまさにこのことではないかと考えています。
回路図や基板のレイアウトも積極的に公開していますので、参考になれば幸いです。
Latest 5 Entries

秋月GPSモジュールの生データはPECL出力

少し前に書いた『秋月GPSモジュールから生データ抽出』では、秋月のGPSモジュールに搭載されたベースバンドチップSiRF GPS2e/LP-7456には、どうやら差動で微小な信号がきているらしい、ということを書きました。この度ようやく、その差動信号を通常のマイコンで扱えるレベルに変換することができたので、お知らせしようと思います。

差動信号には規格がいくつかあったので、規格仕様を対照しつつ、差動からシングルエンドにレベル変換してくれるICをいくつか試してみることにしました。その結果PECLという規格がどうやら正解のようで、現在はPECLを3.3Vレベルに変換してくれるTI TB3R1というチップを使い、後段のDual 4bits shift registerの74HCT4015に信号を渡すことに成功しました。

現在のGPSモジュールの様子と、基板のEagleでの回路図レイアウト図を公開しようと思います。ファイルは先述のTB3R1も載るようにした新しいリビジョンです。

gps_packet_sniffer_RevB.jpg
美しき(嘘)配線をご覧あれ!!

流石に隣接した0.5mmピッチ足にUEW 4本は辛かった(線材をもっと細いものを使うべきなのか、単に修行が足りないだけなのか、笑)ので、配線はスルホールとチップ部品から引っ張りました。赤丸を記した部分が線材と接続している部分です。上からSIGN、MAG、PECL用のリファレンス電圧、CLKだと思います。

PCにデータを吸い上げるために後に残すは、Cypress FX2LP用のファームを書くことのみとなりました。FX2LPで高速なインターフェイスを記述するためのツールであるGPIF Designerは今回がはじめてなので、うまくいくか少々不安です。コンパイラは以前のノウハウのあるsdccを使おうと思います。

※さらに、ざっとクロックを見てみました。

GPS_sniffer_clk.png
オシロのスクリーンキャプチャ

約38MHzとは随分早いですね。FX2LPのクロック入力がmax:48MHzなのでなんとか大丈夫です。クロック周波数は信号処理をする際に非常に重要なファクタなので、再度測りなおすつもりではいますが、XOの周波数(24.5535MHz、型番:KDA3016B ?)の綺麗な倍数でないところをみると計測結果に自信をもてなくなります(笑)。

※※さらに調べてみた結果、HOT CHIPS 11 Archives (1999)にあるSiRFstarII ARCHITECTURE(PDF)が検索に引っかかりました。これによるとサンプリングクロックは38.192MHzということで計測結果にほぼ間違いはないようです。24.5535MHzを14/9逓倍すると結構近い値(38.194MHz)になりました。そういうことでIF(中間周波)は1575.42MHz mod 38.192MHz = 9.548 MHzだそうです。以前『Open source GPS C/A信号の抽出』で示した方法でC/A信号を抽出するためには、この9.548 MHzを中心に信号を眺めればよい、というわけです。これまで細々と進めてきたことに加えて、生データ取得用のFX2LP用ファームの作成、信号トラッキングをコード化が終われば、晴れてオリジナル受信機の完成です。

ところでGPSのフロントエンドから信号処理、そして測位計算まで全て眺めていくと、アナログ回路の中でも最も難しいと思われるRFの知識(電気・電子)、自己相関やFFT(応用数学)、座標変換(幾何学)など様々なことを学べます。こんな面白い題材があるのに、ハンディ受信機を買ってきて地図にプロットするだけ、というのは工学的視点でいうとなんとももったいないと思いませんか(笑)。これら全て解説した和書があまりない、特に取っ掛かりとなる本がないというのが問題なのかもしれません。

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

XBee ワイヤレス電力計 設計資料

hamayanさんXBeeを使った家電等の総合管理システムを作られているようです。メインで使っているマイコンはFreescaleのcoldfireで僕自身は一度も触ったことがないのですが、製作記事が時系列に沿ってどんどん公開されているのでとても楽しいです。

そういえば以前こちらのブログでもXBeeを利用したワイヤレス電力計を製作したことを紹介しました。これは某プロジェクトの為に作ったコンセントにさせる電力計で、XBeeを通じて外部とデータの送受信を行うことができるものなのです。今回の記事では、プロジェクトも無事終了したこともあり、設計資料の公開に踏み切りたい思います。

emeter_8.jpg
トータルで8台作りました。

まずはEagleの回路図レイアウト図です。基板の外注は中国のpcbcartに頼みました。経験的にわかっていることなのですが、pcbcartを使う際は(一応対応を謳っている)Eagleのファイルを直接送るよりも、ガーバに変換してから送ったほうが確実です。基板の外形上が長方形ではなく変わった形をしているのは、この電力計のケースとして使ったエコワット(改造対策として現在は接着剤で分解しにくくなっています)にすっぽり収まるようにした結果です。

電力計のチップとしてAnalog Devices ADE7753を利用しました。内蔵のCTと組合わせることで正確に電流、電圧を時間積分し、電力を計算してくれる専用ICです。XBeeでやり取りするデータは、基本的にADE7753のレジスタで、これらを直接読み書きできるようにしてあります。

搭載しているマイコンはSilicon Laboratories C8051F410です。ファームウェアはsdccで開発しました。
ファームにはファイルシステムとしてELMのchanさんのTinyFatFsを搭載していますが、これを活用するには開発期間が短すぎました。XBeeと通信しない間、基板に実装されているmicroSDにデータを蓄えておく機能を実現しようとしたのですが、ファイルシステムはその名残です。
また、エコワットについていた液晶の制御もピン配置を解析の上ファームに取り込み、経過時刻を表示するようにしました。
XBeeとの通信は7bitsエンコーダ/デコーダという怪しげな方法を使っています。バイナリをXBeeに直接通すと通信状態から制御コマンドに移行してしまう可能性があったので、その対策です。

マイコン等の電源はAC100Vより生成しています。これにはRohm BP5034D5を使いました。手軽にAC100VからDC5Vが生成できます。が、AC100Vは非常に危険なので、しばらくトラウマになっています(一度配線ミスによりパターンが蒸発しましたよ、コンデンサ爆発ならまだしも…)。

PC側は、以前の記事にあるXbeeのUSBモジュールを使ってデータをやり取りしています。表示にはLabviewを使いました。動作しているイメージは下の動画を見ていただくのがよいと思います。

最後に、同じようなことをされている方がいましたら、その参考になれば幸いです。

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

サーボ信号をアナログ電圧に変換

ラジコン用サーボの信号はパルスの幅によってその強弱が表現されるので、それを直接計測するためにはタイマの機能の一つであるインプットキャプチャを使う必要があり、チャンネル数が増えると大変やっかいです。実際オートパイロットシステム Super Sylphideでは、FPGAを用いてタイマを多数構成しこの信号を計測しました。

マイコンでこの計測を簡易的に行うにはどうしたらいいでしょうか? マイコンに搭載されている機能を思い浮かべてみると、多くのマイコンではA/D変換機のチャンネル数が8chと、比較的多く搭載されていると思います。そこで、サーボに指令値を与えるパルスの幅に応じたアナログ電圧を生成できれば、マイコンでも簡易的にこの指令値が計測できることになります。

そこでPIC16F88と12bits D/Aコンバータ MCP4921を使って、サーボ用信号をアナログ電圧に置き換える装置を作ってみました。できあがりは写真の通りで、1台で1ch分ですが、非常にコンパクトになりました。

pwm2ac.jpg
夏休み前のOlimex最終便

Eagleの回路図レイアウト図をおいておきます。16F88は表面実装品を使っていますが、秋月のPICライタ等で書き込めるように、関係端子のみDIPと同形状のサブ基板に引き出してあります。

pwm2ac_brd.png
上がメイン、下がサブ。

PICのプログラムは無償コンビのsdcc + gputilsで開発しました。sdccのPICのサポートもかなり充実してきているようなので、有償コンパイラがそれなりの値段をすることを考えると有難い限りです。プログラムはpwm2acディレクトリの中にあります。開発環境を整えた上でmakeをしてください。開発環境の構築は『PICマイコン開発環境 (SDCCのインストール)』等が参考になると思います。

最後にPIC16F88を選んだ利用ですが、PIC16F88にはA/D変換機が入っています。ということは、逆の機能も、という魂胆が見え見えということです。

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

カメラモジュール 実装完了

少し前の記事『Super Sylphide 進捗状況(20) -- カメラモジュール基板の企画』で、sparkfunから購入したカメラモジュールの話を書きましたが、この度実装を完了しました。

Sylphide_CAM.jpg
裏と表。高実装密度だが2層基板。

実際に部品を実装してみると、自己満足でしょうか、フツフツと制作意欲が沸いてきます。最初の難関、電源電圧 2種(+3Vと+1.5V)がきっちり出ていることは確認できたので、次はSDRAMをフレームバッファとすべくAltera MAX2(CPLD)用のVHDLを書こうと思います。

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

Super Sylphide 進捗状況(20) -- カメラモジュール基板の企画

オートパイロットシステム Super Sylphideですが、ブルガリアの格安基板会社Olimexが長期の夏休みに入ってしまう(8月は丸々休み)ということもあり、最近は色々な基板を設計していました。その中で先日sparkfunより入手した最大SXGA対応(1.3M Pixel)のカメラモジュール『TCM8240MD』(東芝製)も実験してみようという気になり、ここ数日はその設計を行っていました。

結果から言ってしまうと、このモジュールはマイコンに直結して気軽に遊べるほど生易しいモノではないことがわかりました。データがかなりのハイレート(4M~20MHz、8bitバス)でモジュールから垂れ流れてくるので、それを頑張って記録しなければならないようです。供給クロックをとめてデータの垂れ流しを一時停止してしまうという荒業もあるようですが、フレームバッファIC(いわゆるFIFO)を用意するというのが、sparkfunのuser forumでは正攻法と見られているようでした。

フレームバッファを探してみましたが、さすがにSXGAのデータ量を処理してくれるものは入手困難なようでした。デュアルポートSRAM等も検討してみたのですが、容量が全然小さいです。仕方がないので、力技でCPLD+SDRAMでフレームバッファをこさえてみることにしました。SRAMではなくSDRAMにしたのは安かったからです。CPLDのHDLはあとから如何様にもできるはずなので、まずは基板を設計し終えることにしました。出来上がったのはこんな感じです。残念ながらOlimexでは製造できない(0.3mmドリルが必要です)のですが、サイズはかなりがんばりました。

Sylphide_CAM.png

機能的にも詰め込みすぎて、動作するかどうかは少々疑わしいフシがあります。特長を箇条書きすると以下のとおりです。

  • カメラモジュールによるSXGA画像の取得
  • Altera CPLD(MAX2シリーズのEPM570 TQFP100Pin 570LE)と64MBit SDRAMでフレームバッファを構成
  • C8051F342によるUSB、micro SD(SPI接続)
  • バッテリ動作可能、TI BQ25015によるUSBまたは外部電源からのLiPo充電機能および3VへのDC/DC変換(これはGPSロガーで使用経験あり)
  • 同じく効率を稼ぐためカメラモジュール用の1.5Vをつくるため、TI TPS60503使用
  • 基板サイズは1.4 in (約36mm) x 1.4 in の2層(ケチった)
  • 四隅に穴があって固定できる(かなり重要)

果たして動くのでしょうか。動けば飛行機に搭載できること間違い無しなのですが、小さくしすぎたことがアダとならないことを祈るばかりです。暇を見つけつつ弄っていきたいと思います。

実装が完了しました。電源電圧は正常に出ているようです。

Jul 22, 2008. 01:22 fenrir が投稿 : 固定リンク | このエントリーを含むはてなブックマーク | この記事をLivedoorでクリップ! | この記事をdelicious.comでブックマーク | このエントリをドリコムRSSにクリップ | コメント (4) | トラックバック
このエントリーのトラックバックURL: http://fenrir.naruoka.org/mt/mt-tb.cgi/651
Old Entries @ Embedded System

Super Sylphide 進捗状況(19) --最近の飛行試験

オートパイロットシステム Super Sylphideですが、順調に開発が続いています。先日の模型飛行機を使った飛行試験では、以前の記事『i2cでサーボインターフェイス』で書いたシステムを利用して、パ... [この記事を読む]

Jul 13, 2008. 01:08 fenrir が投稿 : 固定リンク | このエントリーを含むはてなブックマーク | この記事をLivedoorでクリップ! | この記事をdelicious.comでブックマーク | このエントリをドリコムRSSにクリップ | コメント (2) | トラックバック

GPSチップアンテナ リベンジしてみたが…

そういえば以前sparkfunで購入したGPSのチップアンテナの経過を書くのをすっかり忘れていました。特性解析をしていただいたり、その結果を反映して基板を新たにおこしてみたりしたのですが、やはり受かり... [この記事を読む]

Jul 1, 2008. 22:54 fenrir が投稿 : 固定リンク | このエントリーを含むはてなブックマーク | この記事をLivedoorでクリップ! | この記事をdelicious.comでブックマーク | このエントリをドリコムRSSにクリップ | コメント (11) | トラックバック

秋月GPSモジュールから生データ抽出

秋月で販売されているGPSモジュールを購入、分解したことは以前の記事『秋月GPSモジュール@4800円』で書きましたが、その後こんな形になりました。 インターフェイスはPC接続用USBとアンテナ接... [この記事を読む]

Jun 27, 2008. 10:47 fenrir が投稿 : 固定リンク | このエントリーを含むはてなブックマーク | この記事をLivedoorでクリップ! | この記事をdelicious.comでブックマーク | このエントリをドリコムRSSにクリップ | コメント (2) | トラックバック

VHDLの可視化ができないものかと

オートパイロットシステム SuperSylphideですが、FPGA基板のソフトがとりあえずひと段落しました。今では『進捗状況(18) -- i2cでサーボインターフェイス』に書いた、i2cによるサー... [この記事を読む]

Jun 18, 2008. 00:06 fenrir が投稿 : 固定リンク | このエントリーを含むはてなブックマーク | この記事をLivedoorでクリップ! | この記事をdelicious.comでブックマーク | このエントリをドリコムRSSにクリップ | コメント (7) | トラックバック

秋月USBオーディオ

PCのサウンドカードが壊れてしまっていたので、秋月の新商品『USBオーディオモジュール』を組み立ててみました。ケースには同じく秋月の『ポリカーボネイトケース』を使っています。 なかなかいい音でな... [この記事を読む]

Jun 13, 2008. 23:59 fenrir が投稿 : 固定リンク | このエントリーを含むはてなブックマーク | この記事をLivedoorでクリップ! | この記事をdelicious.comでブックマーク | このエントリをドリコムRSSにクリップ | コメント (0) | トラックバック

Super Sylphide 進捗状況(18) -- i2cでサーボインターフェイス

オートパイロットシステムSuperSylphideですが、最近はもっぱらI/O拡張基板用のVHDLを書いています。なかなかPC用のソフトウェアを書いている感覚と違うので、頭が混乱しています。特に並列に... [この記事を読む]

Jun 1, 2008. 23:47 fenrir が投稿 : 固定リンク | このエントリーを含むはてなブックマーク | この記事をLivedoorでクリップ! | この記事をdelicious.comでブックマーク | このエントリをドリコムRSSにクリップ | コメント (2) | トラックバック

Amontec JTAGkey-Tiny (FT2232) を Xilinx iMPACTから使う

FTDIのFTCJTAG.dllの仕様(リード、ライトが最低2bitsから)にブチ切れつつ、漸く完成しました。FPGAのプログラムをダウンロードする際、これまではパラレルポート+自作JTAGアダプタを... [この記事を読む]

May 23, 2008. 14:08 fenrir が投稿 : 固定リンク | このエントリーを含むはてなブックマーク | この記事をLivedoorでクリップ! | この記事をdelicious.comでブックマーク | このエントリをドリコムRSSにクリップ | コメント (13) | トラックバック

Super Sylphide 進捗状況(17) -- I/O拡張基板 動作確認済み

オートパイロットシステムSuper Sylphideですが、以前紹介した4枚目の基板であるI/O拡張基板の動作確認がとれました。基板の写真を晒すことにします。 表と裏 何のことはない、Xilin... [この記事を読む]

May 3, 2008. 09:31 fenrir が投稿 : 固定リンク | このエントリーを含むはてなブックマーク | この記事をLivedoorでクリップ! | この記事をdelicious.comでブックマーク | このエントリをドリコムRSSにクリップ | コメント (0) | トラックバック

Super Sylphide 進捗状況(16) -- Windows XPでMSD+CDCのUSB compositeが相変わらず動かない

年度が替わりまして、オートパイロットシステムSuper Sylphideの開発が別案件に組み込まれたせいもあり、開発スピードをあげる必要が出ています。できれば夏頃に完成させたい予定ですが、予定は未…、... [この記事を読む]

Apr 23, 2008. 22:04 fenrir が投稿 : 固定リンク | このエントリーを含むはてなブックマーク | この記事をLivedoorでクリップ! | この記事をdelicious.comでブックマーク | このエントリをドリコムRSSにクリップ | コメント (2) | トラックバック

データストリームの終端をシリアルポートに

USBの工作は大好きですが、機器の制御といえば未だにシリアルポート(RS232等)やパラレルポート(IEEE1284)といったレガシーインターフェイスが活躍しています。そのため機器に添付されているPC... [この記事を読む]

Apr 14, 2008. 00:20 fenrir が投稿 : 固定リンク | このエントリーを含むはてなブックマーク | この記事をLivedoorでクリップ! | この記事をdelicious.comでブックマーク | このエントリをドリコムRSSにクリップ | コメント (0) | トラックバック

秋月GPSモジュール@4800円

秋月電子でGPSモジュールキットが売り出されたとのことなので、早速購入しました。単価4800円と、なかなか手頃な値段です。 キットの内容物 上の写真を見ていただければわかるかと思いますが、GPS... [この記事を読む]

Mar 27, 2008. 23:59 fenrir が投稿 : 固定リンク | このエントリーを含むはてなブックマーク | この記事をLivedoorでクリップ! | この記事をdelicious.comでブックマーク | このエントリをドリコムRSSにクリップ | コメント (7) | トラックバック

XBeeでワイヤレス電力計

昨年は、とあるプロジェクトでワイヤレス電力計なるものを作っていました。コンセントにさすだけで、家電製品の消費電力モニタリングを気軽にできるというコンセプトです。そろそろこのプロジェクトは完全に終了とな... [この記事を読む]

Feb 6, 2008. 23:59 fenrir が投稿 : 固定リンク | このエントリーを含むはてなブックマーク | この記事をLivedoorでクリップ! | この記事をdelicious.comでブックマーク | このエントリをドリコムRSSにクリップ | コメント (2) | トラックバック

Super Sylphide 進捗状況(15) -- I/O拡張基板

開発中のオートパイロットシステム Super Sylphideですが、ようやくハードウェアの設計が最終局面に達しました。FPGAを利用してサーボやスピコン(スピードコントローラ、モータを制御するユニッ... [この記事を読む]

Jan 13, 2008. 21:53 fenrir が投稿 : 固定リンク | このエントリーを含むはてなブックマーク | この記事をLivedoorでクリップ! | この記事をdelicious.comでブックマーク | このエントリをドリコムRSSにクリップ | コメント (0) | トラックバック