« 2007年12月 | トップページ | 2008年2月 »

2008年1月

2008年1月29日 (火)

解説~赤外線リモコン(送信編1

MEDIO write:

 続いて送信編その1.

 信号フォーマットは昨日書いた通りですが、受信は38kHzのキャリアを受光モジュールが処理してくれます。それでは送信は....というと、専用ICでなければ自前で、となります。

 自作記事では別に発振回路を用意したり、ソフトウェアウェイトで(無理やり)というのが多い気がします。(もちろん私の知っている範囲)

 ただ、回路規模を大きく(私が、アナログ的な回路を組むのが面倒なだけですが)したり、別の処理で割り込みをかけるとタイミングがずれる点が嫌なので、別の方法をとります。

 まずキャリアの38kHzですが、AVRのPWMを使用します。いつもの内蔵RCで8MHz発振で、Timer0を高速PWMモード、OCR0Aを210、OCR0Bを70にするとDuty33%の38kHz信号を発生することが出来ます。割り込み処理も必要なく、プログラムの負荷はありません。

 実際のデータはTimer1を560uS(Prescale1/256辺り)で割り込みさせて以下の様に処理すれば良いと思います。(負論理)

 リーダーコード 16回L 8回H

 データ1 1回L 3回H

 データ0 1回L 1回H

 リピートコード 16回L 4回H

 フレームスペースは、リーダコード開始から192割り込みまで(108mS)

 回路としては外部にロジック....なんて事をせず、PWM出力を赤外線LEDのアノード、データ出力をカソードに接続します。これでデータ出力がLになると38kHzでLEDが光ります。

※LEDの逆耐電圧が5V以上あるならこれでOKです。(電流制限抵抗が1本のみ)心配なら直列にDを入れましょう。

 前に作った、赤外線リモコン・コンバータ(受信したリモコンのコードを、別のコードに変換して再送信)は上記回路に受信モジュールだけ(全部で、Tiny2313、受信モジュール、赤外線LED、抵抗1本)で出来ています。

| | コメント (0)

2008年1月28日 (月)

解説~赤外線リモコン(受信編

MEDIO write:

 前回の続きで、赤外線リモコンの受信について。

 日本国内において、業界標準といわれているNEC方式についてです。

 概略に関しては以下の記事が参考になります。

http://www.necel.com/ja/faq/mi_com/__com_remo.html#0101

 実際のコードは、送信用ICであるuPD6121のデータシートが詳しいです。

http://www.ortodoxism.ro/datasheets/nec/UPD6122G-002.pdf

 プログラムで読むためのアルゴリズムは、NECの78K0シリーズのサンプルプログラムが参考になります。

http://www.necel.com/micro/ja/designsupports/sampleprogram/78k0/data/k0_remocon.pdf

 受信は、信号の立ち上がり~立ち上がり間の時間を計ると簡単です。

  リーダーコード(~第一ビットまで) 13.5mS

  データ1 2.25mS

  データ0 1.125mS

  リピートコード 11.25mS

 AVRで作るなら「Timer1をキャプチャ入力」で使えば簡単に処理出来ます。

 まぁ上記の時間を考えると内蔵RC発振(8MHz)のAVRでも余裕で、普通にタイマでカウントしても十分処理出来ると思います。実際「MrMIDI2」で空いていたのがTimer0だけだったのですが、それとエッジ割り込みだけで受信出来ました。

 さて、次回は送信ですか...

| | コメント (0)

2008年1月27日 (日)

解説~iPodライン接続時のノイズ対策

MEDIO write:

 ここはあくまでBlogであって、私たちの日々のやった事、興味のあること、考えをつらつらと書いているだけで、それらやりたい事を他人にとやかく言われたくないから公開HPの形式を取っていないのです...と書いた所で、某HPの関係者のように「自慢かよ、けっ」という意見が出る始末。

 詳しい技術話をすると(本当なら)責任を取らなくてはいけません。あくまで「アマチュア」な私としては、そんな責任は取れませんから逃げの一手しか選べないのですよ。

 それでも良いからそこのところを教えて欲しい、と聞かれる事が多いので、「根拠も何も無い(かも知れない)し、あなたがやったら動かない(かも知れない)。それでも良かったら」と言う事で、少し書いてみます。まずはiPodのノイズの件。

 家庭内でまとめた音楽を自動車内に大量に持ち込む手段としてはiPodは中々良い媒体です。

 80GByteにHDDを換装したPhoto(5G)を(後生大事に)使用していますが、7000曲以上のデータにアクセスするのに、あの大きさの筐体でのI/Fとして、加速付きのホイールはとても優れていると思います。

 ただ、メーカー製のカーオーディオ用I/Fにあのホイール機能以上のものが存在せず、この部分を自作する方は多いと思います。

 そこで問題になるのが「ノイズ」。電源を内蔵バッテリに頼るならあまり問題にならないのですが、車両電源から供給するとかなり大きなノイズが聞こえます。

 車両側から発生するオルタネータノイズなどは電源ラインにフィルタを入れれば落ち着きますが、iPod本体から発生する(HDDアクセスに準じて発生するもの等)ノイズは簡単に消えません。

 これはiPodの電源系のGNDと音声系のGNDが、「iPod内部と車両側の2点で繋がるために出来るループ」によるコモンモードノイズが主です。

 コモンモードノイズは電源をアイソレートすれば原理的に消えるのですが、12Vバッテリから12V1A程度の電源を絶縁して作るのは(私は)面倒です。

 では音声系を絶縁すれば、なのですが、ライントランスを入れるのは私の精神衛生上好ましくありません。ただのSin波ならともかく、音声信号を流すと波形が多少とも「なまります」ので、トランスは。

 コモンモードチョークコイルという手もありますが、音声周波数で手に入りやすいものがあまり無い上、コイルという構造上波形のなまりは必ずあります。

 それでは解決策は無いのか、というと、音声系のGNDに電流を流さず(電圧基準点として)Hi-Zで受ける事が出来ればノイズの影響はかなり小さく出来ます。GNDループに電流が流れなければノイズは発生しないのですから。

 当初、入力がHi-Zのオペアンプ(初段がCMOSとかの)で受ける回路を自作しようと考えていたのですが、各社のデータシートを読んでいたら既に商品が存在していました。

グラウンドノイズ・アイソレーションアンプ

JRC NJM2794V

http://semicon.njr.co.jp/njr/hp/fileDownloadMedia.do?_mediaId=4886

ROHM BA3121F

http://www.rohm.co.jp/products/databook/av/pdf/ba3121f-j.pdf

 どちらも今回の様な用途に作成されたものでしょう。JRCの製品は一般小売されることは少なく、入手は難しいかもしれません。ロームの製品はDigiKeyで扱いあり、国内なら共立エレショップで取り寄せが出来るそうです(DigiKeyの3倍くらい=\400程度しますし納期6wとか。送料は安いのですが)。

| | コメント (0)

2008年1月26日 (土)

電波な電波時計~その3

MEDIO write:

 大体、プログラムも完成。機能的には希望点が全部入りました。

 これで外部の回路がほぼ確定したので、小さく組んでみます。

Circit

AVRのTiny2313とEEPROM、抵抗3本、パスコンとスピーカー。

このままだと、1Mbitで12秒しか再生出来ません。と言う訳で、性能アップ!前から考えていたADPCM化改造計画を実行。

といって、調べ始めたのですが、ADPCMが数種類あるということだけで実際の演算がどの様なものかが詳細にわかる資料が見つからない....困った時は師匠に聞こう。

お見舞いを装って、入院中の非論理氏に質問に行きました。

ADPCMでも、AVRだったらcoefficient(係数)テーブルが固定・小さくて、演算負荷が小さいIMA-ADPCMが良いとか、実際のデコードのアルゴリズムとか、詳細はMSDNのRIFFファイル資料を見れば良いよ、とか教えて頂く。

(ついでに、病室のVAIOから「電波な」目覚まし音声も頂く。なんでこんなものがあるんだろう?)

先日の8bitPCM用プログラムのROM読み出しルーチンを改造(読み出し後、直デコードし16bitデータを32Byteバッファリング)し、PWMにて再生。

これで、ほぼ倍の時間24秒の再生が可能になりました。音声品質的にはPWMの9bit分解能がフルに生きるので、今までの8bitデータによるPCMの倍の性能です。(^^;

ちなみに廉価版として、256kbitのEEPROMでも6秒再生可能です。

短い様に感じられますが、(昨年末に某所で販売された)「ツンデレ・カルタ」の「『い』~いい加減、目覚まし時計で起きなさいよね。何で私が起こさなくちゃいけないのよ」が丁度6秒です。(笑

一応プログラム的にやったことなどを。

1.格納データ:IMA-ADPCM 11.025kHz 4bit モノラル(Windowsサウンドレコーダで作成、dataチャンク以外を刈り取り、ROMに書く)

2.デコード:PCM 11.025kHz 16bit モノラル

3.再生:PWMによるD/A変換 10.416kHz 9bit 3倍オーバーサンプリング(直線簡易補間) 5.5%ほど再生ピッチが落ちます。

4.WDTは不使用。というか、ADPCMソフトデコード部追加で2kWordが埋まってしまった罠。

 タイマ1割り込みを使用し、一定時間(SEIKO用600mS、CITIZEN用960mS)入力変化が無かったらRESETピンをLに落とすという暴挙回路(ジャンパ一本)を追加。

5.入力検知ピン以外は機能を落とし、sleep状態(PowerDown動作)で待つ。この時の消費電流は0.5uA以下?(部屋のテスタでは計れなかったので)

6.発声中は、最大20mA程度使っている様子。

7.外部スイッチにより、最大7種(計1Mbit)の音声が選択可能。

外部スピーカタイプを試作したのですが、写真を撮る前に某真空装置開発会社・社長にお持ち帰りされました。

| | コメント (0)

2008年1月16日 (水)

電波な電波時計~その2

MEDIO write:

実験ばかりで必要としないものを作っても、研究者でなければそれは自慰行為、とかコメントで言われたので、ちゃんと完成品を作ってみます、「電波な」電波時計ですが。

さて、今回の生贄。

Clock1

SEIKO製電波時計、\1980.実は改造後の写真です。近所のDIY店にて土曜日購入するも、初期不良。(笑 電波受信しないし、致命的な「アラーム鳴らない」という....

これを選んだのは、下部に(スピーカーを入れられそうな)スペースがありそうだったから。これには罠が。

さて、改造するにあたって、アラーム出力の取り出しについて。

一番改造が簡単なのは、アラームが鳴っている最中にGND、もしくはVcc固定になる出力があること、です。小型の旅行用時計には「バイブレータ」機能を持つものがあり、振動モータ用に出力されていそうです。あと、機械式ベルが鳴るタイプも。

一般的に販売されている時計は回路の簡略化が進んでおり、時計機能~アラーム音声生成まで1chip化されている事が多いです。今回の機種もそうでした。

Clock3

(下部のスペースには電波受信用のバーアンテナが入っているし....)

液晶のバックライトの反射用に入っていたのは「白い紙」。(笑

この機種のアラームは、1chipからの出力が(圧電ブザーの上の)2.2kΩ~トランジスタ1段のバッファ、で駆動しているようです。

この2.2kΩの下部(写真左側)で波形を取ってみました。

Wave

基本音2500Hzで、0.062mSのOn-Offが断続4回、その後562mSの無音~最初に戻る、という感じです。

問題になるのは562mSの無音部分です。

マイコンでWDTを600mS程度にして、波形変化点でWDのリセット、でいけそうです。最悪、アラームが切れた後500mS(0.5秒)ほど出力が残ることがあるのは仕方がありません。

....これを録音したマザーボードのAudio入力は、±が逆な気がする。

| | コメント (0)

2008年1月12日 (土)

電波な電波時計~その1

MEDIO write:

 都内での仕事が一時お休みとなり、本拠地での仕事が続いていますが、なぜか忙しいままです。ゴールデン・ウィーク明けのEnd目指しての仕事とか。

 仕入れに行く時間も無い(会社を出るのが、ハードオフ閉店後)ので、家で既存パーツをいじっています。と言っても、0時過ぎないと何も出来ない。いろいろ終わらないので。

 最近はグラフィックタイプの液晶表示器を制御しようとあれこれやっています。秋月のカラー液晶は、コントローラまであるのに一気に半田付けする暇が取れず。小さいものからはじめています。

 グラフィックタイプはフォントを内蔵しておらず、この処理までホストで行うのは無駄だと思い、またまたTiny2313で液晶フォント+パネルの制御を行い、ホストからのシリアル制御を考えました。

 まずはTiny2313に接続したEEPROMの読み書きです。フォントは16×16ドットで考えると1Mbitを少し超えてしまいますが、I2Cバス接続の24C1024なら2個、同一バスに直結出来ます。昨日、頭の中で構造を組み立て、今日帰宅して一気にプログラムを組みました。

シリアルでEEPROMの書き込みも出来るよう、簡易モニタも作成。

 何かデータを読んで、と思ったのですが、フォントを読んでもまだ表示出来ないし、PWM出力にスピーカーを繋いで、PCMデータを読んで音を出してみました。

Dempa

PWMは31.25KHz9bit、もしくはプログラム的に10.416KHz10.5bit程度のD/A変換が可能です。

10KHz8bitで書くと12秒程度。巷に存在する、どのように使うのか不明な「オマケボイス・目覚まし音声」を使えば「電波な」電波時計が出来ます。(笑) 部品は2313、24C1024、プルアップ抵抗2本。

PWM出力のA,Bを正負に振っているので、結構大きな音が出ます。(まぁ2313の定格ですと最大12mW程度ですが) 音の振幅を半分にして、PWM出力A,Bをステレオにするのも可能でした。

ADPCM対応にして24秒録音対応にすれば、長いメッセージもいけるかなぁ。

(手段と目的が摩り替わっているのは、いつもの事です)

| | コメント (0)

2008年1月11日 (金)

ばっきゃろー

MEDIO write:

あの会社です。ずっと困っています。

家ではDLNA対応NASを使い、音楽や映像を家族で共有しています。1階のダイニングでも、自室でも、収容された音楽や映像を好きな端末で見られるという環境です。

今までは玄人志向製のNAS(玄箱HG)にLinuix+DLNAサーバを自前で組み込んでいたのですが、昨年夏に容量限界もあって、件のメーカー製NAS(HS-DH320GL)を購入。

しかし、既にあった5000曲以上の音楽データを転送したあたりで、DLNAサーバが落ちるようになりました。毎朝PS3のブラウザでDLNAサーバを再起動しても、夕方帰宅すると認識出来ない状態になっています。

この状態でも、PCの共有ディスクとしては動いているので、どう考えてもDLNAサーバー・ソフトウェアの不具合だろうなぁと思っていました。

それで、最近になって、ファイルサーバとして有った玄箱ProにMediaTombをインストールした(こちらは2ヶ月以上落ちていないのに....)ので、データを移してHS-DHGLの問い合わせ・修理に出しました。

-まず、問い合わせに対しての回答-

 お決まりの「IPを固定しろ」「初期化しろ」等々。既にやってますよ、と。

-修理-

 申告現象:「DLNAサーバ機能が、1日程度で落ちる。HDDフォーマット、設定初期化も行った。御社サポートで解決出来ず、修理に出せと回答があった。」

 受付:2008年1月10日

 修理報告:2008年1月10日(あれ?

 故障箇所:不具合は確認されませんでした。

....朝7:30に起動~夜9:00に落ちていることを確認している私には、当日に返却する=確認作業なんてしていない、と思えてなりません。

 単機能周辺機器(HDD単体とか、メモリだけとか)ならBuffalo「でも」良いのですが、自社でまともなソフト開発なんてやっていないような会社にMediaServerなどの高機能を求めてはいけないのだろうか。

 あ、NASとしては問題なく使えます。この部分の基本ソフトは自社製じゃありません(sambaです)から:-p

 今晩中にまた落ちていたら、Linux+MediaTomb化してしまおう。

| | コメント (0)

2008年1月 7日 (月)

修理?~SHARP製15インチ液晶編

MEDIO write:

課内のサーバに繋がっていた、15インチ液晶モニタ(SHARP製BL-153A)が突然電源が入らなくなりました。

常時動作中のサーバのHDDを、全交換するための電源断のタイミングでです。とりあえずの代わりはいくらでもあるので、それで作業は終えたのですが・・・。

3年保証の製品なのに、誰も保証書の存在を知らず。廃棄となりました。

と言われたら、もちろんお持ち帰りするのは私の基本行動です。(笑

自室で分解。部屋にはテスタとロジアナしか無いので、あまり難しいとダメだなぁと思いつつ。

TDK製の電源+インバータ。

Dengen

既に部品が外れていますが・・・ACインレット直後のFuseが切れています。ただし、SWレギュレータ用の遅延タイプなので、入手困難。

なぜFuseが切れたか?その下流、AC100Vを整流し、DC100VをスイッチしているN-chのMOSFETがショートモードで破壊されておりました。S-D間が0.4Ω。

さて、なぜMOSFETが壊れたか?その下流、スイッチされてトランスを通ったAC12Vを整流しているSchottky diodeがショートモードで破壊していました。どっち向きでも0.2Ω。

となると、その下の電解Cも逆電圧かかったよなぁ・・・と。

ここから下は、多分大丈夫。(テスタで見た限り)

Parts

要交換部品。FuseとSTマイクロのMOSFET(結構、強くて早い)が、入手難しいかも。

| | コメント (0)

« 2007年12月 | トップページ | 2008年2月 »