ミニディベロップメントキットの何がイイって限定版Cコンパイラライセンスキーだよなあ。アレさえあれば Digi-Key でチップだけ買って回路はでっち上げるという方法が取れるのに。そういえば武山さんが昨年末に手に入れられていたなあ。結局自分はチャンスをみすみす捨てていただけなんだよなあ。まだまだ自分を律する力が足りないなあ。
という訳で 17日に知った TI の MSC1200 に目を向けて昇華する。チップ単体は既に Digi-Key で買えるのか。問題は開発環境だ。デバッガだ。とゆーかアナログに弱い自分がコレを手にしても有効に活かせるのか?
2日連続でアルコールを摂取。しかし今日はイロイロとセーブした。戦闘開始だ。
昨日検討した PID 認識を実装。cycle 数は若干足りなかった。仕方ないので SEZ 終了待ちをカットして、ようやく PID による処理の分岐に成功した。しかし問題発生。DATA0/1 の受信データが安定しない。タイミングがずれているのではと考えたが CRC16 の値は同じだったりするので、何か違う理由があるはずだ。デバッグのために受信途中で UART 送信をしていたのを止めたり Port 設定を Pull-Up にしたり HI-Z にしたりしてテスト。多少は改善の兆しが見えたがパーフェクトではない。今回はいつものイカサマではなく、エラー処理を真面目に実装しよう。
明日から4月。そういえば去年はゆきの研究室の DDI ポケット TV アダプタにドギモを抜かれたなあ。今の自分は人にオドロキを与えられるのか?どうか?
多くの刺激を受けた。雨のおかげでパンツまで濡れてしまった。目がくっつきそうだ。今日は寝よう。頭の中で刺激を咀嚼しよう。自分の血や肉にしよう。
今日も馬や鹿になる。結局 1.5K で Pull-Up することにした。PD4 で Pull-Up を ON/OFF 出来るようにして、動作を確認。これで USB バスから切り離すのも自由に出来るぜ。そして今日は勢いが続く。データ受信処理を仕込み、USB Bus Reset と EOP とデータの分離処理まで実装。無事に SETUP を受け取ることが出来た。しかしここで問題がある。USB ホストと違い USB デバイスは2つのパケットを連続して受信する必要がある。これをどうするか。やはり決めうちで受信データ長を設定するか、それとも常に RAM 容量イッパイ受信するか。ああマイコンは楽しいなあ。AVR アセンブラは楽しいなあ。
他人の気持ちを変えるためには自分が本気にならないとダメだということを忘れていた。俺はダメだ、ではなくて、本気になろう。本気だということを見せよう。夜の開発では当たり前のように出来ていることなのだ。本業でも出来るはずだ。自分の力を信じよう。
出力がぶつかるのが怖いが、PIND レジスタを読み出せば Output モードのままでも D- の状態を取得できることが分かったし、当面はこれで進めよう。USB バスから切り離すのも AVR 側から自由に出来るし、何より抵抗レス直結というのがナイスだ。とゆーか今手持ちで 1.5K 抵抗が無いんだよな。おかしいな、100本くらいあると思っていたんだけどな。
無印非売品に刺激を受ける。そうか既に5月号は出ているのか。昨日も今日も帰りが遅くて本屋から遠ざかっていた。来週だな。楽しみだ。
Ir Hack Diary に刺激を受ける。正直言ってたまごっち+への関心は低かったのだが DEBUG というシルク印刷を見ると何かが変わる。馬とか鹿だなコリャ。
途中で放り投げているものが沢山ある。やろうと思っていたことも沢山ある。なのに新たに AVR をハンダ付けする自分がいる。自分でもやってみたいんだから仕方が無い。馬とか鹿だなコリャ。
俺はダメだという自分への罵詈雑言と、これでいいのだというフレーズが頭の中を交錯する。帰宅の途中で桜の木を見上げる。桜の森の満開の下。久しぶりに坂口安吾を読みたくなった。
一体自分は何処に向かっているのか?全ては自分が望んだ世界なのだとはいえ、大きな流れに翻弄される。ひとつ言えるのは、家での開発は今のペースでは進められなくなるだろうということだな。まあ本業第一だ。自分の力を信じよう。
今夜も HC08 と戯れる。自作の書込みアダプタは、PTA1 を GND に固定でつなげることを想定していた。今日ここにスイッチを取り付け、PTA1 への接続を非接続、GND、MAX232C の V+ の3つから選べるようにした。PTA1 を GND に落として MON08 経由で Flash に書き込みを行い、デバッガで RUN や STEP を行う前に PTA1 を非接続状態に切り替えてやることで、無事ソースコードデバッグが出来るようになった。分かってくると楽しいなあ。マイコンは楽しいなあ。
マジっすか!SanDisk の OEM 向けページにて SDIO の仕様書が公開されている!大丈夫だよな、トップページから行けるページだよな、使用許諾も無いよな。ああ過去の夢が叶ったということか。ああ以前見かけた中古の東芝 Bluetooth SD カードを買っておけば良かったなあ。まさかこんな展開になるとは思わなかったからなあ。
今日も HC08 について考える。もしかして Digi-Key で購入した HC08 はトリム値設定含めて全ての Flash が 0xFF になっているのではないか?そういえば「トリム値設定済みチップを提供することも出来る」といった趣旨の記述も見かけたなあ。となると Digi-Key 購入チップの場合、内蔵 OSC で MON08 を使う為には毎回自前でトリム値を知る必要が有るということか。この辺は C8051 の方が便利だよな。まあ、とりあえず 68HC908JB8 の場合は外部クロック必須だから問題無いか。
今日は AVR による USB ホスト活動をまとめてみた。先に進もう。
仕掛けは分かったが 13日からの格闘で内蔵 OSC トリム値を失ってしまった。仕方ないので手持ちのもう1個のチップを引っ張り出したが、これも不注意で値を確認する前に 0xFF となってしまったようだ。失ったトリム値は自分で見つけるしかない。という訳でトリム値を調整しながらタイマオーバフロー周期をロジアナで確認し、何とかトリム値を再生した。これで CodeWarrior の下の Stationary ディレクトリにある User Monitor Mode 対応 LED 点滅プログラムを書き込むことが出来るようになった。
これで素の HC08 で遊ぶ最低限の環境は整った。次は 68HC908JB8 を動かす基板を作ろう。今度は事前の情報収集もしっかりやろう。The USB08 Project Page を参考にしよう。
と書いたものの、何とか夜の時間を確保。昨日やりたかった HC08 との戯れを行う。9.8304MHz の水晶発振器と 9V による高電圧書込回路を作成。先週叶わなかったベクタ領域への書込みが出来るようになった。しかしソースコードデバッグへの道のりは遠い。まあこれが自分の実力だ。まだまだ Data Sheet や Application Note や先達の情報咀嚼が足りないな。
それにしても今の自分は、あの頃全てを注いでいたマイコンと今ハンダ付けしているマイコンを結びつけることが出来ていない。LPC2106 なら出来るかもしれないと夢想していたのだが、道のりは長そうだ。uClinux や T-Cube に感じるものがソレかもしれない。結局オレ Engine を作りたいということか。ああ支離滅裂。たかがマイコン、されどマイコン。
昨日の続きを行う。ロジアナで確認したところ、やはり予想通り無線モジュールからのデータと ACK がコリジョンしていた。受信処理の length 指定を長めにして動作を確認。しかし一度無線マウスのボタンを押したら、無線モジュールは同じデータを送り続ける。USB 仕様書に立ち戻って確認。そうか token 間隔は 18bit より短くしないといけないのか。length を調整し動作を確認したところ、無線マウスのボタンの状態を正しく取得することが出来た。
今のように受信データ length 固定のままでは token 間隔を制御できない。という訳で、受信処理で Single End Zero 状態を検知するように実装してみた。そして動作を確認。無線マウスのボタン操作に合わせて LED が ON/OFF する(MPEG1動画)のを確認した。これで無線マウスを利用したお手軽無線リモコンの完成だ。
今日も色々とやりたいことがあったのだが、結局無線マウスだけで終わってしまった。まあ上手くいったから良しとしよう。気持ちよく寝よう。
昨日は Google の使い方を間違えていた。検索キーワードは自作デバッガじゃなくて俺デバッガにすべきだったな。これでこのページ以外のページも Hit するようになった。ああデバッガの自作で妄想が膨らむのはマイノリティなのかなあ。
hard で loxse な日々にて SimCity Classic Live を知る。かなりの時間を吸い取られる。懐かしい。あの頃は輸入ゲームを買うのが楽しかったなあ。
それでもやっぱり無線マウスに対応したくなる。掲示板へのぞろよしさんの書込みを受けて、NAK が返った後再び IN を再送するように実装してみた。ロジアナで確認すると2回 NAK が返った後 STATUS が返されるようになった。これで Configuration が出来るようになり、無線マウスのボタンを押すと LED が光る(MPEG1動画)ようになった。これでとりあえず無線マウスによるお手軽無線リモコンに一歩近づいた。
しかしボタンを離しても LED は消えず。無線モジュールを抜くと Disconnect 処理は行っているので暴走はしていない模様。受信処理の length 指定が短くて ACK を返すのが早いのか?今日はここまでにして明日ロジアナで確認しよう。そうしよう。
今月2回目のツール作りたい病にかかる。とりあえずベースとなるものの理解を深めてからだな。それにしても Google にて自作デバッガで検索するとこのページしか Hit しないというのは困ったなあ。
やっぱり無線マウスに対応したくなる。何故動かないのかをロジアナで確認してみた。最初に SETUP SET_ADDRESS を送信して無線マウスから ACK が返る所までは問題ない。次に STATUS 読込みで IN を送信した後無線マウスから NAK が返っている。こちらは ACK も NAK も判定していないイカサマ実装なので、何事も無く無線マウスに ACK を返している。という訳で、次に SETUP SET_CONFIGURATION を送った後 ACK も NAK も返らないので先に進まないということが分かった。
まず SET_ADDRESS の後の ACK 受信後に待ち時間を入れてから IN を送るようにしてみた。しかし状況は変わらず。次に SET_CONFIGURATION だけを送るようにしてみた。しかし状況は変わらず IN の後で NAK が返る。あれかなあ、ちゃんと GET_DESCRIPTOR とか受け取らないといけないのかなあ。ああ力弱く金で解決したくなったなあ。困った時のロジクール無線マウス頼みかなあ。
という訳で今までの活動のまとめを行った。時間切れで AVR の記述まで進めず。おまけに USB プロトコルの説明も大幅省略。これでいいのだ。完璧主義は自分を苦しめるだけなのだ。土曜日の NHK スペシャルでも再確認したのだ。
しかし、いざ動かそうとすると右も左も分からない。まず Flash に書き込めない。エラー出力を読み進めると Flash 書込み Script の 14行目でエラーが出ている。prog/P&E/908_qt4.08P の BLOCKW_QTQY=000000D2/ を削除して、ようやく Flash への書込みは出来るようになった。しかしまだ動かない。Data Sheet や Application Note や先人の Web ページを読み漁ってようやく分かってきた。まず AN2305 の UserMon を書き込む必要があるのね。しかもこれを書込む為には高電圧書込みで行う必要があるのね。電圧はともかく 9.8304MHz の外部 OSC が困ったなあ。とりあえずレジスタへの書込みで LED も光ったし、今日作ったアダプタは無駄にはならないだろう。評価ボードがあればサクッと動いたのかなあ。新しいことはムツカシイ。
そして LPC-H40 の実験基板を作成。しかし ARM-JTAG による書込みツールで苦慮する。新しいことはムツカシイ。
真面目にトラ技を読む。広告ページのダイセン電子工業 SH-2004 が目に留まる。とうとう SH-4 ですか。と思ったらその下の SH-500 にズバリ衝撃を受けた。33,000円という値段はナニだが 50x75mm の SH-3 ボードというのは素晴らしい。ああCタイプ台車に載せたいなあ。オンボード画像処理とかやりたいなあ。
そして Smalight OS が近々トラ技に特別付録となるという記述に今更ながら気がついた。利用制限はどうなのか?フツーに使えるのか?ところでルネサス北日本セミコンダクタってヤッパリあの日立米沢電子が母体なのか。それなら RTOS の素性としては良さそうだな。
ITmedia の携帯電話液晶のシリアル I/F 化に関する記事を見る。分解くん的観点では嬉しい方向。カラー大画面 のデータ量を考えると LVDS は仕方ないのだが、直結くん的観点では嬉しくない 方向。まあマダマダ戦国時代だよな。これから先は分からないよな。
AVR Freaks にて Performance EDA の存在を知る。早速 Download してみる。確かに回路図は書きやすい。後はライブラリか。それにしても VCC や GND 未接続エラーはどう解消すれば良いのだ?これがクリアできないと Board Editor で遊べないぜ。
PalmFan にて NewtonOS 用 Bluetooth プロトコルスタック Blunt の存在を知る。ああソースは、ソースは公開されないのか?インチキプロトコルスタック作成の参考にはならないのか?
ズバリ USB デバイスコントローラ内蔵の AVR が欲しい。という訳で Atmel の Web ページを見ていて AT43USB325 が目に留まった。USB ハブ付の Multimedia keyboard controller とのことだが、AT43USB325E は起動時に外部 EEPROM から内蔵 SRAM に Firmware を転送して実行するとのこと。ああ市販の USB キーボードを分解したくなった。まあ順当に考えれば市販されているものには Mask ROM 版が使われているんだろうけど。
ズバリ PastelMagic の Cypress PSoC 簡易開発キットが欲しい。かつての夢は天に届いて 4,500円になったということか。特に限定版Cコンパイラが嬉しい。あの頃から PSoC Designer は進化しているのだろうか?再びダウンロードしてツールだけで遊んでみるか?ああ FPSLIC も同じように安く開発環境が手に入らないかなあ。やっぱり ATSTK94 5万円コースしか無いのかなあ。System Designer が無償 Download 出来ればサイコーなんだけどなあ。
手に入れた TinyH8 基板で SCI4 アクセスのテストを行おうかと考えていたのだが、子供に布団まで連行されてしまった。週末だな。全ては週末だな。
トラ技は入手出来ていないが、今日 Circuit Cellar 誌が届いた。ビニル袋を破る前に裏面広告を見て衝撃。Parallax から Bluetooth モジュールが $99 で販売されたのか。OEM 元は A7 Engineering ですか。勿論国内で使用するのはナニだけど、しかし衝撃。まあ明日は Circuit Cellar 誌の中味も堪能しよう。
回路図を書くためだけに EAGLE を使うという手もあることに気がついた。これなら C8051F310 のライブラリも用意されている。という訳で試しに AVR 用回路図を書いてみた。色々と不本意な点も多いが、まあ C8051F310 はコレでいってみるか。
と今日はここで終わるハズだったのだが、つい C8051F310 の回路図を書いてしった。書いてから思う。こんな回路図要らないよな直結だもんな。
しかし一寸だけでも前に進もう。昨日書いた通り BSch をインストール。Nの電子講座の AVR ライブラリを使わせて頂き回路図を作成。さて C8051F310 のライブラリはどうしよう?やっぱり自分で作るしかないよな。
ここ数日種ともこの Mighty Love を聴いている。週明けは新幹線の中でも 4GB MicroDrive で堪能しよう。
UART を使って受信データの変化を確認する。Interrupt 転送の周期を 100ms に変更し、NAK ではなく DATA0 / DATA1 が返された時のデータを UART で転送。ASCII PAD USB mini で確認をした所、SYNC/DATA/0x01/左右/上下/ボタン/といったデータ列が返されているのが分かった。
早速上下左右とボタンの状態を LED で表示するように実装し、ゲームパッドの操作に応じて LED が点灯する(MPEG1動画)のを確認した。これで当初の目的のひとつだった USB ゲームパッド変換アダプタが実現した。後クリアすべきなのは無線マウスだな。AVR なら何が原因かをつかめそうな気がする。あきらめずに、投げ出さずに。
今まで何故読んでいなかったのか。(M)のドタバタ編集日記に吸い込まれる。コンプリートまでは相当時間がかかりそうだが、少しずつ過去にさかのぼっていこう。しかし FPGA で Ethernet コントローラを作る世界というのは、マイコン直結で USB ホストする世界の延長上に有るのだろうか?精進。
そして CQ 出版創業50周年記念企画の評価キット特別価格キャンペーンが行われていることを今更ながら知る。CQ RISC評価キット/ARM7 とか、どうよ俺?要は WATCHPOINT ARM7/CQ版が欲しい訳だが、他への流用は難しそうな予感がする。それ以前に価格の絶対値で門前払いだよな。
今夜もつい勢いに乗ってしまう。NRZI 変換、シリパラ変換を実装し、例によってマウスボタン操作で LED が点灯する(MPEG1動画)ようにしてみた。後は受信したデータをどう料理するかだな。UART を使って各デバイスがどんなデータを返しているのか確認しようぜ。
などと妄想にふけっていたら、ホントの病気にかかる前兆のようなものを感じた。ヤバイ。5時間を死守せねば。という訳で、ダッシュで 1ms 周期の eop を実装。勢いがついていたのか Connect / Disconnect への対応、Connect 時の Set Address / Set Configuration 送信、Interrupt 転送まで実装した。そしてよせば良いのにロジアナで動作を確認。IN に対して DATA0 と DATA1 が交互に送り返されていることが確認できた。やったぜ。
勢いは止まらない。GamePad をつなげてロジアナで動作を確認。ボタンを押していない時には IN に対して NAK が返っていることが確認できた。勢いは止まらない。NAK か DATA0/1 かが分かるように受信データの 9bit 目を LED に出力。GamePad のボタンを押したり離したりした時に LED が点灯した。やったぜ。
あとは受信データのシリパラ変換と、トグル状態の保持だな。いや違った、まずは睡眠時間の確保だ。体が大事だ。
ところで 3月3日といえば畠田理恵を思い出す訳だが、PREMIER の入っているカセットテープは今何処にあるのだろうか?MP3 化して 4GB MicroDrive の中に格納したいなあ。
今更ではあるが MITOUJTAG が ARM7 CPUブレーク発生とレジスタ読み出しに対応したことを知る。Windows で ARM をバリバリソースコードデバッグできるとサイコーなんだけどなあ。やっぱり順当に Linux 上で jtagstub を使って GDB するのがベストなのかなあ。自分にとって理想のデバッガとは何だろうか?
いつのまにか ASUS Terminator はこんなにカッコ良くなっていたのか!手持ちの Terminator Tu に不満は無いけど。電源落としても USB に電源が供給されるのは不満だけど。
人がコントローラで動かす世界も面白いんだということに気がついた。マシンの動きを頭の中でモデル化してスティックを動かすというのは、人馬一体的な何かがあるのかもしれない。マシンが持っている、ある位相のタイミングに合わせて指令を出すとスススーっと動く瞬間にはアドレナリンが出るかもしれない、そう思った。マイコンの場合は何だろう?レジスタへの値の書込みとその結果が、頭の中のモデルとシンクロするとアドレナリンが出るよな。あとは自分の筋肉や神経との融合ということか。
今夜は予定通り AVR の 1ms タイマ割込みを実装。次は 1ms 周期での eop 送信をやろう。睡眠時間も確保しよう。
来るとは思っていなかった。Silicon Laboratories から C8051F350 が発表されたことを知る。RAM 容量がちと残念だが 50MHz で LQFP32 というのはナイス。0.8mm ピッチなので普通に半田付け出来るのが嬉しい。ああこのサイズで 100MHz ショックを堪能できたらサイコーなんだけどなあ。
slashdot.jp 経由で Pixelito や Proxflyer Micron を訪れしばし時間を吸い取られる。ああ何度も書いているけど、手のひら空モノへの憧憬が募るなあ。憧憬と言っているうちはダメだな。ニュースは自分で作るのだ。
という訳で今夜も USB と戯れる。C8051F310 ではシリアル送信データを内部生成していたが、AVR では開き直って全ての送信データを ROM に固定で持ち、シリアルデータプレーヤに徹してみることにする。C8051F310 を動かし、内部に生成されるシリアルデータをファイル化。このデータを AVR 用コードに埋め込んでみた。
この辺で止めておけばよいのだが、つい欲深く先に進めてしまう。Set Address を送信して status を受信してみる。問題なく動作した。続いて Set Configuration を送信。どうも ACK が返らない予感。やはり深追いしすぎたか。柴田勝家になってしまったな。次は大人しく 1ms タイマ割込みの実装に勤しもうぜ。