ラベル 電子工作 の投稿を表示しています。 すべての投稿を表示
ラベル 電子工作 の投稿を表示しています。 すべての投稿を表示

2021/03/07

自室のCO2測定

最近、テレワークに移行した人が多いからか、自宅の環境向上のためにCO2濃度を測る、というのがネタとして流行っているようです(結構前からかもしれませんが)。

CCS811とMH-Z19Bを使うのが定番のようなので、それぞれ遊んでみましたのでメモ。

CCS811については、

  • お値段は1500円ぐらい。アマゾンでKEYESTUDIOというところで購入。
  • 動作電圧はチップ自体は3.3Vですが、KEYSTUDIOは5Vになっています。電源電圧はレギュレータで3.3Vに落としているようです(SDA/SDLがレベル変換ができているかはよくわかりませんが、そのまま5Vつないでも大丈夫のようです?)
  • 測っているのは純粋なCO2濃度ではなくて、eCO2(equivalent CO2)とかTVOC(Total Volatile Organic Compounds、総揮発性有機化合物)というもののようです。
  • 測定に際してはキャリブレーションが必要で、外気で一定時間(20分)回すと値が落ち着いてくることになってます。
  • キャリブレーションはリセットでクリアされてしまうのですが、BASELINEレジスタというのがセンサーの状態を示しているので、それを読み取って保存しておいて、リセット・起動後に書き戻すことでキャリブレーション後の状態を回復できるという仕組みのようです。
  • 何故か使っている個体だと、数日でBASELINEレジスタへの書き込みができなくなってしまいました(書いて読み出しても書いた値が読み出されない。最初は読み出せていました)。
  • そのせいかわかりませんが、どうも値がドリフトしてしまうようで、夜間で人がいない状態でもどんどん値が上がってしまいます。後述のMH-Z19Bの2~3倍ぐらいの値が出てしまいます(5000ppmとか、ちょっと?な値が出てきます)。
  • 結局、あまり良くわからない感じになってしまったので一旦お蔵入り。
MH-Z19Bについては
  • お値段は結構します。国内だと4000円ぐらい。MH-Z19Cという後継機種もあるようでもう少し安いようですが、電源が5V±0.1Vを要求して結構シビアに精度に響くようです。
  • センサの値は比較的体感と合うようです。窓をあけると下がり、部屋にこもっていると上がっていきます。絶対値として正しいかどうかは、もちろんわかりません。
  • 読み出し方法は、UART、PWM、アナログの三通りがありますが、UARTで読み出すことにしました。
制御はいずれもArduino Nanoを使いました。アマゾンでELEGOOさんの3つ入りのパッケージを1500円ほどで購入。
Arduinoを使うのは初めてですが、やはりUSB接続が簡単なのがとてもよろしいです。USB内蔵のPICだと、開発ツールやライブラリがついてこない(MCC非対応とか)ことがあるので。
元々、特殊な簡易言語(スケッチ?)を使うことに抵抗があったのですが、改めて見てみると食わず嫌いだったようで、setup/loopという専用構文を除けば、ほぼC/C++でした。

MH-Z19Bについては、ESP32と組み合わせてAWS IoTとつないでロギングさせようとしていますが、これはまた別途で。

2016/02/19

rttyインターフェース製作

rttyを始めることにしたのですが、免許申請はしていても、無線機とPCをつなぐインターフェースがありません。

売り物だと、有名なところでUSBIF4CWとかがありますし(お値段はちょっと躊躇しますが)、ヤフオクでもその手のインターフェース・ケーブルが出品されていたりしますが(5K~10K程度)、折角なので自分で作ってみようと思います。

さて、一般にrttyインターフェースというと、
  1. PCのサウンドカードのライン入出力と無線機のAF入出力を結線
  2. シリアルポート(今時のPCにはもちろんついていなのでUSBシリアル変換することになります)の先にFSK/PTT
  3. もう一つのシリアルポートの先にリグコントロール(ICOMだとCI-V)
というのが定番の構成になります。回路図も結構あちこちに落ちています。

2と3(FSK/PTTとリグ制御)はオープンコレクタで繋げばいいだけのようなので簡単そうですが、問題は音声の入出力で、もちろん普通に考えるとサウンドカードの青赤緑のジャックに繋ぐ、というのが鉄板ですがいかにも大時代的で、はっきりいって昭和の香りが漂います。21世紀のハムならやっぱりUSB CODECでなんとかしたいものです(21世紀のハムがIC-706を使うのはどうか、という話はさておくとして)。

ということで、以下設計要件の備忘録(こうやって残しておかないと、半年後にどう作ったか忘れてしまったハードウェアが残ります…)。
  • FSK/PTT、リグ制御にはそれぞれUSBシリアル変換した仮想COMポートを割り当てる。ここは秋月のFT2232D USB-シリアル2ch変換モジュールを使うことにします。
  • AF入出力はPCM2906というUSB CODECを使ってみる。
IC-706の後ろには、ACCソケット、RTTYジャック、REMOTEジャック、EXT SPジャックというのが出ていますが、ACCソケットからFSK/PTT(SEND)/AF/MODの4信号が取れます。RTTYジャックとEXT SPジャックは使わずにおいておきます。

ICOMさんのマニュアルから引用
FSKとSEND(PTT)は文字通りでFSK信号とPTT信号になります。AFは音声出力、MODが音声入力です。ちなみにVSEND/HSENDになっている機種もありますが、これはUVとHF用ということのようです。

このあたりのデータは、マニュアルにも乗っていますが、各機種のものがここにあります。前述のUSBIF4CWの方の手になるもののようで、大変なデータベースですが、同時にインターフェースの統一されていない悲哀を感じます。

さて、まずは、このACCソケットに繋ぐプラグが必要になりますが、DIN13ピンというかなり珍しいもので普通の通販では売っていないので、しょうがないのでヤフオクでゲットしました。

次に入手したのがPCM2906というUSBコーデックです。兄弟チップにPCM2904というのがあって、違いはS/PDIFの有無だけです。なんとなくPCM2906にしました。
こいつも秋月や千石では売ってないようなので、rsコンポーネンツで購入しました。実はマルツでも売っていたのですが、19個単位だよ、とか言われてしまいました。それ在庫数じゃないのかしら。流石にそれだけ使う余地はないし、額が高すぎます。

ちなみに、USB DACの製作記事でよく出てくるのがPCM2704ですが、これはアナログ入力がないので、今回の目的ではだめです。PCM2704はUSB DAC、PCM2906はUSB CODEC、ということになります。

2016/02/15

rttyの申請(TSS通過)

年末にIC-706を購入して、フォーンでもまだ数局しかお話出来てないというのに、やにわにrttyを始めることにしました。

さて、rttyが何であるか、というのは多くの素晴らしい解説ページがありますので、そちらにお任せするとして、とりあえず局免の更新申請(届け出)をしなければなりません。

rttyの方式にはAFSKとFSKがあって(FSK:Frequency Shift Keying, AFSKのAはAudioのA)、前者は音声信号を無線機に入れる方式で、後者はディジタル信号を直接無線機に送り込むような方式です。IC-706はFSK入力もあるのでどちらもできます。

局免の観点で言うと、AFSKは「マイクの代わり」扱いなのですが、FSKは「附加装置」扱いになって、技適が外れてしまいます。AFSKや20W以下の場合は、総通に届け捨てすればいいようですが、taipapaのIC-706は50Wのリグで、同時に技適から外れる関係でTSSに保証認定をして貰わないといけません。

ここまで理解するのに一週間ぐらい、掛かりました。

以下、申請の流れです。
  • 2/1 TSSに申請を送信
    電子申請Liteで申請書を作り、それをダウンロードしたものをメールに添付して送る、という、やや前時代的というか「パスワードは別便で」感のあるオペレーションをします。
    同時にネットバンキングで入金しますが、これについての受領応答とかは一切ありません。口座を間違っていたら電話するまで判らないという昭和の香りの漂う実装。
  • 2/10 予想通り何も連絡がないので、慌てず騒がず、TSSに電凸。
    電凸といっても、「電子ですか、紙ですか。電子申請ですか。たくさん来てて大変なんですよ」「そっすか。ま、趣味の話なので、入金漏れとかがなければ大丈夫で~す」という大人の対応をしただけです。
  • 2/10 夜。TSSから「不備があります」というリプライを貰いました。
    指摘の内容は、「周波数偏移幅が通常使用されている値と相違しているけど、よいか。その値でも占有周波数帯幅の許容値は下回っているが確認させてくれ」とのことで、要するに、±170Hzと書いて出してしまったのですけど、「±85Hzと書くんじゃないのフツー」ということだと理解して、速攻で訂正したものを送付しました。
  • 2/12 夜。「総通に言っとくから、この写し添付して申請してね」というメールを頂きました。速攻で添付して総通に申請を発射しました。どんでん返しがなければ(と祈りつつ)これで審査完了すればOKになるはずです。
TSSって、遅いやら何やら、大変そうな噂を聞くので躊躇していましたが、とりあえず、今回は程々に対応して貰えました。ま、もっと複雑なオペレーションをしようとすると激しくハマるのかもしれませんが。

2015/04/15

CANで社外メーター的なもの(2)

CANの工作をしようとして、一番最初に困ったのがデバッグ環境でした。

普通にPICで何かを作る場合、何につなぐにせよ大概はその場でデバッグができるわけですが、CANのものを作る場合は実車に繋がないと動作確認もできません。CANアナライザ?みたいなものは明らかにお高くて、普通の人には贖うことはできませんし。

かといって実機でデバッグをしようにも、いちいち駐車場まで出かけて車を出すのも面倒ですし、夜中に謎の基板を持って駐車場をうろうろしていたりすると、危ない人になってしまいます。

というわけで、ちょっと悩んだ挙句に、以前にアマゾンで千円で仕入れたELM327を治具にしてデバッグをすればいいじゃないか、と思いつきました。

追加で必要な物はこの二又になったOBD2ケーブルです。これもアマゾンでポチ。




この先の片一方にELM327を、もう片一方に自作メーターを接続すれば、電気的にはお互いが繋がったことになります。

CANの仕様的にはバスの両端に終端抵抗(120Ω)が必要なはずです(参考:フィールドバスの色々(その2)CAN(その1))。
ELM327はスタブ・ノードになるので終端はされていない気がしますが、ケーブル長もそれほどではないからか、特に問題なく動きました。

こうやってつなげばELM327から縦横無尽にCANパケットが出せて、デバッグもらくらくかというと実はそうでもなくて…。ELM327はあくまでCANスキャンツールなので、パケットを出す(OBD2のリクエストを出す)のは比較的自由にできますが、受け取り側はちょっと厳しくなっています。つまり、送信と受信は完全に対象ではなくて、基本的には「出した要求パケット(OBD2パケット)の応答を受け取る」目的で作られていて、任意のパケットを受け取るのはちょっとやりにくい感じになっています。

マニュアルには、回線モニタ系コマンド(AT MR、AT MA、AT MTなど)の記載があって、一見これらを使うと自由自在にパケットを受け取れそうに見えますが、実際には、スヌープだけするモードになっていてACKビットを出さないようです(CANプロトコルでは、受信者がACKビットを立てることで通信が成立するとのことです)。それだと送信側は受信者がいなくて送信に失敗したと認識するようで、結局うまく行きませんでした。

そういうわけで、結局、ELM327を自作基板デバッガとして使うにはだましだましやることになります。

29ビットモードの場合は、

  • 18DB33F1(ECU)へのリクエストをELM327で受け付けるよう設定(ACKするよう設定)
    これをやれば自作基板からFITにデータを送信した時に、送信エラーになることなく送信が可能(なはず)。ただし、ELM327からは自動ではリプライは来ません。
  • 18DAF111宛の送信ができるように設定
    ターミナルから送信データを入力すると、自作基板側に送られます。
    自作基板側で正しくフィルタ設定をして受信しておけば、あたかもELM327から(車から)来たリプライのように見えます。

上を実現するには、以下の様なATコマンドを打てば良いことになります。

AT SP 7       (プロトコルを CAN 29bitに設定。11bitと行ったり来たりするときには必要です)
AT CP 18      (送信時のヘッダの29ビットIDの上位桁を設定します)
AT SH DAF111    (送信時のヘッダの29ビットIDの下位桁を設定します)
AT CF 18DB33F1  (フィルタを設定して、18DB33F1を受け付けるようにします)

FITのOBD2は29ビットなので、テストすべきシーケンスは

(1)自作基板→ELM327(実車)
   自作基板からソフトウェアでID=18DB33F1でリクエストを送信
(2)自作基板←ELM327(実車)
   ELM327から、手入力で応答データを含んだパケットを打鍵、送信。
   ID=18DAF111のパケットになり、自作基板はあたかもリクエストへの返信だと思って画面表示
   (タイムアウトとかは適宜調整しないと、うまくいきませんが)

ということになります。自動で応答できないのが寂しいですが、ひと通り、「温度XX度のデータを受け取った時に自作基板が正しく応答するか」といったテストをすることはできます。

さて、FITのCANバスには、OBD2以外にもデータが常時流れています。
こちらやこちらに大変詳しい情報がありますが、それらのパケットはCANの11ビットで流れています。OBD2のようにリクエスト・レスポンスの組ではなく、常時車から垂れ流しなので、受信テストだけできれば充分ですが、その場合には

AT SP 6    (CAN11ビット指定)
AT SH 158   (ヘッダのIDを158に設定)

といったコマンドを投入することになります。

その状態でELM327側からパケットデータを入力すると、11ビットの0x158というCAN IDで送信されるので、自作基板側でそれを受理するようにフィルタ設定しておけば、各種パケットに対する自作基板の応答をテストをすることができます。

ちなみに、こちらによると0x158は車速を送信してくるCAN IDです。

2015/04/05

CANで社外メーター的なもの

こんなのを作りました。


FIT用の「社外メーター的な何か」です。診断用コネクタに繋いで、CANバス経由でECUの情報を取り出しています。

ユニバーサル基板にグラフィック液晶をおんぶさせて、上と下をアクリル板で挟んでいます。こんなので夏日とかは大丈夫かと少し気になりますが、気持ち、涼しげな感じがします。駐車場は機械式の地下なので、とりあえずいきなり溶け落ちたりはしないでしょう。

ハードウェア構成としては、

  • PIC18F4585(CANコントローラ内蔵PIC)
  • MCP2551(CANドライバ)
  • 秋月のグラフィック液晶(TG12864B-02WWBV)
  • RTCモジュール(これ)
  • LDO(5V)
  • 電源制御用のトランジスタ(おなじみ2SA1015)
  • バルクのOBD2ケーブル+USBミニで接続
という感じになっています。

MCP2551以外はすべて秋月で購入しました。
MCP2551は秋月・千石・マルツいずれも取り扱いがないので、rsコンポーネンツで購入しました。まあ、こんな特殊用途の石あまり使う人はいないでしょうから致し方ありません...。

とこう書くと、部品を買ってきて組み立てただけのように聞こえますが、そこは素人の悲しさ、なかなか大変でした(続く!?)。

2015/01/25

FITでCAN・OBD2通信してみた(ELM327)

せっかくコネクタが出ているので、OBD2で色々つないでみることにしました。

いきなり自作に走るのも何なので、市販品を調べてみるとELM327という製品(チップ?)がよく出ているようです。アマゾンで1000円前後で買えますので、まあ失敗しても痛くはないということでポチってみました。



bluetooth版もありますが、PCに繋ぎたかったのでUSBにしておきました。

ELM327で検索すると「OBD2テスター」みたいな言われ方をしていますが、元々はチップの名前なのだそうで、ELM electronicsというところから発売されているようです。データシートもここにあります。

ネットで色々調べていたら、ELM327、実は中身はただのPICで、それにプログラムを書き込んだものをELM327チップとして売っているようです。凄い商売ですね。

1.PCと繋いでみる

まず実車には繋がずに、PCとELM327を繋いでみます。
このELM327は、上のデータシートを読むとわかりますが、ATコマンドのようなプロトコルでホスト・デバイス間で通信します。今回のUSB版のやつは、ホストとの間はUSBシリアルで接続されていて、シリアルポートでおしゃべりすることができます。

atz
atl1

などのATコマンドが通ったので、まずは大丈夫そう。アマゾンのレビューには「動かない」「壊れた」というコメントが多数登録されているので、少し心配でしたが。
ボーレートはデフォルトでは38400bpsなので、9600で話そうとすると文字化けします。

2. 実車とつなぐ

実車で繋いでみました。
TeraTermで接続しています。
atz/atl1を入力して、リセット・line feed onにしています。atrv(read voltage)で電圧を読むと12.1Vと帰ってきています。

ここで、おもむろに0100(Mode=1、PID=0)を入力してみました。
このPIDは、「サポートされているPID一覧を返却する」というものです。


SEARCHING...と出た後になんか帰ってきました!
ゴミでも読んでるのかとちょっと不安になりますが、41の4は「返却値」であることを示していて、次のバイト(00)は送ったものがそのまま帰ってきて構わないので、おそらく正しく応答されているのでしょう。データはBE 3F A8 03となっていますが、これも大体妥当そうです。

ただ、二行帰ってきていて結果が違っています。
これは後で色々調べたところ、FITの場合、複数の装置から二重に返却値が返ってくるようで、それで二つの結果が得られている、ということのようです。

詳しくは、pullup.netさんのページにいろいろ情報があります、というかこのページがなかったら、多分まともに使えてなかったような気がします。

3. アプリで見てみる

ELM327の添付CDには、ウィンドウズ用のアプリが色々ついてきます。ただ、キージェネレータがしれっと添付されていたり、怪しさ爆発です。アマゾンのレビューにも、ウィルスがいただのなんだの喧しいので、恐る恐るインストールしてみました…。

が、結論から言うと、どのアプリも全然ダメでした。
どうも正規版チェックに引っかかってエラーになったりと散々なことになってしまったので(今回購入したELM327は、どうも中華製のパチもんのようなのですが)、ウィンドウズ上のアプリで操作する方向はとりあえず放棄しました。


2015/01/10

Fitbit oneがついに充電できなくなった(T_T)

前にも似た症状になったのですが、今回は本格的に故障のようです。

USBケーブルに挿してもまったく無反応で、今回は端子のクリーニングや端子同士のアタリの改善では改善しません。
さらに本体に直接5Vを供給してもやっぱりダメなので(前回はそれで反応していました)、今度こそ本体内部に問題があるようです。

しょうがないのでここを参考に、ダメ元で分解してみようかな。

追記:
分解しようとして色々カッターとかを差し込んでゴリゴリとやっていたら、突然通電するようになりました。明らかに接触不良ですが、ケース内部で起きているとすると完治させるのは難しそうです。
というわけで、とりあえずそのまま使い続けることにしました。

FITを改造してみた(と言ってもルームランプの置き換え)

早速FITを改造してみました。

改造といっても、いきなりOBD2ではなくてルームランプの置き換えwww
  • ルームランプ
    アマゾンで購入しました。

    明るい、と書いてありますが、本当にびっくりするぐらい明るいです。


  • カーゴランプ
    FITは上位グレードでないと荷室のランプ(カーゴランプ、ラゲッジランプ)が付いていません。FITは車格的には廉価車以外のなにものでもないので、しょうがないといえばしょうがないのですが。
    ググるとストリーム用のランプが適合するようで、皆さんディーラーさんで取り寄せて自分でつけておられるので真似して営業さんにお願いしてみました。
    設置前後の写真を撮り忘れましたが、荷室の左サイドに「ランプ設置用のへこみ」があるので、そこをカッターで繰り抜いて設置します。
HONDA純正部品

2015/01/04

FIT納車とOBD2

しばらく前の話になりますが、車をフォレスターからFITに乗り換えました。中古だけど。

前車のフォレスターは2000年式で、走行距離は6万キロぐらいしか行ってなかったのですが、スキーに行ったあとのメンテが悪く、シャシー下部が錆び錆びになっていしまっていました。ディーラーでもちょっともう乗り続けるのは結構厳しいかもという判断でした(まあディーラの人は常に買い換えろ、というのですが)。燃費も3km/Lぐらいしか出なくなっていて、どこのアメ車ですかという感じになっていたので、いい頃合いだったと思います。

2009年式のGE6なので、昨今のリコール騒ぎとはまったく関係なし。
町中を走っていると、FITばっかり見かけるのでやや辟易しますが、それはそれとして街乗りする分にはいい車だと思いました(高速だとさすがにフォレスターの方が良かった気がしていて、FITだとちょっと不安な感じになります。慣れなのかもしれませんが)。

色が違いますが(ホンダさんのページから引用)

さて、FITに乗り換えて気づいたのですが、最近の車にはOBD2(On Board Diagnostics)というシステム(とコネクタ)が必須なようで、GE6にもちゃんとついています。
ググると、いろいろ作ってつないだりしている人がいるようで、これはちょっと電子工作的にも楽しめそうな予感です。

FITのOBD2コネクタ(運転席左下にあります)

2013/12/26

トラ技のDNSP1-TGKITキット

そういえば、トラ技のこのキットはどうなったのだろう?
12月中発売予定となってるけど、ググっても出てこない…。
しかし予価40000円なのか。ちょっと高いなー。

まあ、新しいものを買う前に、DigiFiの付録とかSTEREO誌の付録とかをケースに入れないと :-)

2013/08/13

Z80ボード配線中

製作中のZ80ボードですが、昔ながらにユニバーサルボードと決めたのは良いのですが、いざソケットを置いてみると配線量の多さにくらくらしてしまって、まだ少ししか進められていません。
Z80とROM、RAM、PIO、USBで、都合24x5=120本も配線しないといけないのです。

気合を入れて、がっとやってしまえばいいのですが。
まあ、のんびりやろうと思います。


こんなに苦労するならエッチングに切り替え、いやいや、いっそ、CNCでも買ってしまおうかしら、などとか妄想してしまいます(本末転倒)。

2013/06/30

Z80ボードのクロックソース

使うZ80は4MHz品なので折角ですから4MHzを入れてあげたいのですが、どうも丁度4MHzの水晶発振器というのは(最近?)手に入らないようなので(1MHzとか8MHzとかはある)、いろいろ考えて見ることにします。

  1. セラロック
    セラロックは繋いだだけではダメで、インバータで発振させてやらないといけないのでした。
    (PICとかは繋ぐだけで大丈夫になっていますが、これはPICの中にインバータが内蔵されているからなのですね)
  2. 8MHzの水晶発振器を使う
    フリップフロップで2分周して4MHzにすることになります。
まあ、やっぱり2が簡単でしょうか。

とりあえず、セラロックと水晶発振器の波形比較をしてみました。

まずはセラロックの方。周波数は正しく出ていますが、波形は微妙な感じです。
インバータは74HCU04を使っています。



こちらは水晶発振器。さすがに繋ぐだけで綺麗な波形です(1MHz)。



2013/06/24

Z80でLチカ(厳密にはロジアナチカ)

随分前に検討して、そのままペンディングしていたZ80ボード作成にとりかかりました
(久々にROMライターを取り出してきたのは、そういうことなのでした)。

最近はマイコンが進歩していて、普通に工作するだけならPICなりAVRなりで充分すぎるのですが、
  • 子供の頃に、PC-8001mkIIを持っていたので、懐古趣味で。
  • バスが外に出ているマイコンをいじってみようと思ったから。
  • できればCP/Mが動くところまで頑張ってみたい
    (パワフルなプロセッサにLinux、というのはいい加減当たり前なので)
といった理由で、Z80で遊んで見ることにしました。

まずは、某所でZ80(LH5080A)を入手しました。実は以前にZ84C008を購入していたのですが、変換基板に載せるのが面倒なので、新規購入してみました。まあ200円なので、正直いいかな、という感じです。TSOPの方はいつか使います :-)

ブレッドボード上でROMライターで焼いたROMとLH5080Aをつないでみました。

単純に、A0-A14同士、D0-D7同士をつなぎ、Z80のMREQ#、RD#をROMのCE#、OE#につなぐだけです。

だけです、と言ってもそれだけでも23本もあって結構面倒な上に、Z80側の入力ピン(INT#、NMI#、RESET#、BUSREQ#、WAIT#)は、忘れずにプルアップしないといけません。Z80のピンには内蔵プルアップ抵抗などという便利なものはありません。クロックも、最近のマイコンは内蔵しているものも多いわけですが、LH5080Aにはやはりそんなサービスはないので外からクロックを与えます。

というわけで、こんな感じになりました。いきなり配線お化けになっています。
手前がLH5080A、奥がEEPROM(27C256)、Z80の横にあるのが秋月で買った1MHzのクロックオシレータです。電源は秋月のDIP化基板を経由して、5VのACアダプタをつないでいます。


最初のプログラムとして、こんなのをROMに焼いてみました。



Z80 ASSEMBLER - ZASM VER 1.6
  0000                 ORG 0H
                     
  0000                 START:
  0000  210800                    LD HL, DATA
  0003  7E                        LD A, (HL)
  0004  23                        INC HL
  0005  46                        LD B, (HL)
  0006  18F8                      JR START
  0008                 DATA:
  0008  34                        DB 34H
  0009  48                        DB 48H
  000A                 END

ロジアナで、D0-D7、A0-A3、CLK、M1#、MREQ#、RD#をサンプルしてみました。
一応、動いてはいるようです。


ちなみにロジアナは、ご存知オプティマイズさんのカメレオンUSBベースのロジアナです。
結構前に購入したのですが、健気に頑張ってくれています。


とまあ、こういうふうに結論だけ書くと簡単に見えますが、結構ハマりました。
最大のハマりポイントは、EEPROMライターがバグっていて、アドレスの上位8bit/下位8bitが逆になって書き込まれていたことです。
つまり、0000H 0001H 0002H... でなくて、0000H 0100H 0200H ... とプログラムが書き込まれていたのでした。最初のLD命令(0x21)は読めてしまうので、リセット直後に割り込んでいたりするのだろうか?などなど、色々悩んでしまいましたが、蓋を開けてみるとそういうことなのでした。
0001Hで0xFF (RST)を踏んでしまっているのに気づくまでは、中々解決出来ませんでした。

2013/06/08

ROMライター

久しぶりに電子工作です。

以前に作ったEPROMライターを取り出してきて、動かしてみました。

と書くと、以前の工作物を引っ張り出してきて動かしただけのように聞こえると思いますが、何というかえらく苦労してしまいました。

  • ライタのハード構成は、FT245AM↔PIC(16F887)なのですが、PICがうんともすんとも言いません。
  • FT245AMとPICの間の信号を見ると、どうもおかしな文字が転送されているように見えます。これは断線か、あるいは何か壊したかとおもいきや、実はPICにかぶせる40ピンのテストクリップが接触不良なのでした。うーん。
    これが接触不良になっていました…
  • それでは、ということでPIC/FTDI間の信号を直に見てみましたがやはりおかしい。これはPICが死んでるのかと思って調べていくと…、PICに書き込まれていたプログラムがテスト用の「一文字読んでは一文字返す」というプログラムになっていました。そりゃ動くはずがない。
    てっきり、PICは死んでいてローカルエコーしているだけだと思ってしまいました。PICはちゃんと動いていました。
  • いろいろ試しつつ、PICが壊れたと思い込んで新しいのを買い込んでしまいましたが、結論から言うと全部完全にハズレ。
  • PICは動くようになりましたが、トラブルはまだ終わりません。書き込みコマンドを出してもROMにうまく書き込みができません。
    調べていくとVpp(12V)を作るための元電源のコネクタが、工作が適当なせいで接触不良になっていました。Vppに電圧がかからなければ、書き込めるわけがありません。やれやれ。
教訓。自分が何をやっていたかはすぐに忘れます。ドキュメントはしっかり残しましょう…。

2013/01/22

Raspberry Piのハングアップ再現

Raspberry Piのハングアップが再現したので、調べてみました。

てっきり、カーネルパニックかハングだと思って、(この間、コンソールがブラックアウトしないようにしておいたので)いそいそとコンソールを確認してみると、パニックではありませんでした。

ログインプロンプトがしれっと出ているだけです。

普通、こういう時はまず最初にキーボードを叩いてみるのが常套手段ですが、USBの口が無線LANとガイガーカウンターで埋まっているので、キーボードは接続されていません。なんてこったあ、手が出ないなあ、と思いつつダメ元で無線LANドングルを活線挿抜してみたところ、ドングルが激しく熱を持っていました。火傷しそう、というと大げさですけど、ちょっと熱すぎね、これ? っていうぐらいにはなっています。

あれあれ、と思ってUSBキーボードを挿してみたら、Raspberry Piは普通に生きていてキーボードが認識されて、キーインに応答してくれました。
疑ってすまんかった > Raspberry PiとDebian

ログインしてdmesgを見てみた感じだと、

[1470903.229928] phy0 -> rt2800_wait_wpdma_ready: Error - WPDMA TX/RX busy, aborting.

ということなので、どうも無線LANドングルが熱暴走でもしたようです。
外側から監視して、ウォッチドッグでもつけてやらないとダメかしら。

uptimeは

 21:55:17 up 17 days, 36 min,  1 user,  load average: 0.48, 0.22, 0.11

で、まだ連続稼働中。

2013/01/06

Raspberry Piで、コンソール(/dev/console)のブランクを停止する方法

Raspberry Piがハングした時に画面がblankしていると何も見えなくて解析もできずに悲しいので、パニックメッセージやバックトレースが見られるように、コンソールのblankを止める方法 (もちろん、Xは動かしていない場合の話です)

TERM=linux setterm -blank 0 > /dev/tty0

2012/12/27

LXU-OT2(STEREO誌2013年1月号付録)

LXU-OT2(STEREO誌2013年1月号付録)のオペアンプを載せ替えてみました。バーブラウンのOP2227PAというやつです。

載せ替えた結果、高音がよく伸びて低音も迫力があり、繊細な音で鳴るようになりました、とか何とか書くのがお約束なのかもしれませんが、加齢で耳が劣化しているせいで、よくわかりませんでした!
むしろ、自作の74HCU04アンプのほうが迫力があって良いような気が(だめだこりゃ)。


2012/12/24

Raspberry Piメモ

とりあえず、Raspberry Pi関連でやったことの備忘録です。
  1. raspi-configでできることはひと通り。
    ファイルシステム拡大、ロケール、キーボード関連。
    ちなみに自宅環境にはPS/2のキーボードしかないという、言われてみると浦島な感じの状態だったので、しょうがないので某所よりUSBキーボードを入手しました。
  2. 無線LANセットアップ。
  3. USBシリアル、pythonシリアルインストール
    これはガイガーカウンタのスタンドアローン運用のためです。
    デフォルトのDebian(Rasbian)カーネルにはFTDIシリアルドライバが入っているので、いきなりFTDIボードをつなぐことができます。 
  4. Apache、Sambaインストール
    こちらはまあ普通にインストールすれば良いですね。
  5. ガイガーカウンタのロガー運用環境の整備(整備中)
    pythonは2.7系が入っていました。Windowsのロガー環境がほぼそのまま動きました。
 

2012/12/22

Raspberry Pi 無線LANドングルでパニック

Raspberry Piは筐体が小さいので、できればLANケーブルを引きずらずに使いたいのですが、買ってきたバッファローのWLI-UC-GNMという無線LANドングルは、Raspberry Piに挿した途端にカーネルパニックしてしまうのでした。


Webでは動いたという報告もされている方もいるので、いろいろ確認してみると、流用しているAUのIS-01用の電源が5V/500mAしかでないことが気になりました(Raspberry PiはUSB給電で750mAを要求します)。
そこで、棚をいろいろ漁っていると、Zii EggについてきたUSBアダプタが1A出るものだったので、変えて試してみたところ問題なく無線LANドングルが認識されました。

電源が足りないとこういうパニックを起こすのですね(spriousな割り込みでも上がっているのかしら?)。

しかしZii Egg、なんだか微妙なところで役に立つなあ…。

LXU-OT2(STEREO誌2013年1月号付録)

STEREO誌2013年1月号付録に、付録でUSB-DACがついてくるというので購入してみました(去年の1月号のアンプは買いそびれました)。

最初はアマゾンで「予約できるようになり次第メールします」だったのですが、何時まで経っても予約できるようにならないので、結局オフプライス楽器さんというところで購入しました。梱包も綺麗だし、発送も迅速丁寧でした。

以下、例によって開梱の記録。