全211件 (211件中 151-200件目)
土日は子ども達の相手をしなければならない(^^)ので、作りモノ関連の作業進捗は停滞する。かといって、平日は帰宅時間の都合でそんなに時間がとれません。っちゅうことで、いまだに Vine Linux 上から VMU への書き込みは成功してないです。という言い訳。(^^;;よう考えたら書き込みが Vine Linux 上からできるようになっても、アセンブラが Linux 上で動かなければあまり意味がありません。っちゅうことで、Marcus Comstedt氏のDreamCast&VMU(VMS)用ソフトウェアのページからマクロアセンブラのソースを落としてきてコンパイルしてみました。結果... コンパイルはできたものの、いくつか警告が出てちゃんと動作しません。今日は時間があまりないのでとりあえず放置... (^^;;その代わりっちゅうては何ですが、Vine LinuxにWineを導入(apt-get install wine)して、Maushammerさんとこに置いてある Windows 用バイナリを実行してみました。% wine vmuasm test.sっちゅう感じで実行すれば問題なくアセンブルされました。まぁ、最悪、Wineを使えば動作可能なようなのでヨシとしときましょう。#ちゃんとコンパイル通るようにするのが正道なので、時間のあるときにチャレンジする予定。--- 24:25 ---
September 1, 2008
コメント(0)
今日はそれなりで帰宅は22時。子ども(弐)がナカナカ寝なくて難儀しました。雨続きで外遊びしてないからエネルギーが余ってるのかな?(^^;---Maushammerさんの DOS プロンプト用 VMU 読み出し/書き込みプログラムを昨日でっちあげた ThinkPad390X(2号機) の Vine Linux 4.2 上で動かすべく努力してたのですが未だ動作せず...パラレルポート(ベースアドレス0x378)の制御は sys/io.hを include して ioperm, outb, inb関数を使えばできました。読み出しプログラム中の最初のハンドシェイクまでは動いたので確認できました。また、例の「ジュシンタイキチュウ」表示のときに outb 0x378 0 でポート出力がオールゼロになってることからも制御自体はOKのようです。問題はその後。VMU からのクロック待ちのところでタイムアウトしてしまいます。もしかしたらインターフェース回路定数が微妙なとこでホンマにクロック来てないように見えてるのかも... この辺はソフトかハードか切り分けが必要です。っちゅうことで、もう少し頑張れば Vine Linux 4.2 上から VMU の読み書きができるような気がしてきました。が、いつになることやら... (^^;--- 26:25 ---
August 26, 2008
コメント(0)
VMU2PC Parallel Port LoaderにあるVMU書込/読出ツールが FreeDOS 1.0上で動作するかどうか確認した結果、動作しなかった。VMUの書込/読出がパラレルポート経由で可能(sendfile.exe/receivefile.exe)なことは分かったのですが、Windows95/98のDOSプロンプトが必要やっちゅうのが今となっては一般的ではありません。Windows2000/XPではパラレルポートを直接叩かせてくれないそうなので、このままでは動作しそうにありません。そこで、FreeDOS上なら動くかしら?と試してみました。ThinkPad390X(2号機)をVine Linux 4.2 + FreeDOS 1.0 のデュアルブートに仕立て上げ、FreeDOS側での動作を確認... したのですが、This program cannot be run in DOS mode.と言われて実行できませんでした。っちゅうことで、件のソースをいじくって Vine Linux 上でパラレルポート用 sendfile/receivefile を生成するのが手っ取り早いようです。ヒマがとれればテストする予定... やけど、いつになるかなぁ。(^^;--- 25:25 ---
August 25, 2008
コメント(0)
今日は休憩日っちゅうことで家にいた。VMU用のテストプログラムを色々いじくってたんやけど、CPUのメモリモデルがイマイチ理解できてないようです。システムRAM空間と一般RAM空間がバンク切り替えになっているようなんやけど、私が正しく理解せずにどっか破壊してるせいか、ロードしたプログラムがよく暴走します。暴走するとキーを受け付けないので、裏面のリセットが大活躍です。8ビット機(PC-8001とか)時代の記憶がヨミガエル... (^^; ニモニックの大体の感じはつかめてきたんやけど、まだまだ先は長そうです。--- 19:45 ---
August 9, 2008
コメント(0)
明日から夏休みなので職場で暑気払いがあった。最近はお開きになるのが早い気がします。忙しくしてる人が多いからかなぁ?(^^; ---VMUへのパラレル書き込み器を回路の元ネタ(Maushammerさんのページ)のピン接続を参考に行いました。とりあえず書き込めてたのですがVMUに過電圧がかかってるようです(液晶が真っ黒になる)。やっつけで電流制限抵抗をとっぱらう(^^)などの暴挙を行ってたので、値を見直してちゃんと読み出し/書き込みできるようにしました。っちゅうことで、参考回路図を載せますが、お約束です。この回路を利用したことにより PC あるいは VMU に対して深刻なダメージ(故障など)が生じても一切の責任は負いません。あくまでも自己責任で利用してください。上記回路は ThinkPad390X に接続して動作を確認しています。ただし、全てのThinkPad390X での動作を保証するわけではありません。あくまで、上記お約束の通りです。 :-)で、ソフトウェアはVMU2PC Parallel Port Loader のHere's the software. と書いてあるリンクからVMU2PCAlphaRelease.zipを落としてきて使わせてもらいます。感謝!このファイルを解凍して出てくる sendfile.exe がファイル書き込み用で、receivefile.exeがファイル読み込み用です。ちなみに、これらの実行ファイルは Windows95/98/Me の DOS プロンプトあるいは MS-DOS 上でのみ動作すると思われます。私は Windows98 の DOS プロンプト上で動作確認しました。まぁ、ソースもあるから色々いじれるとは思いますが...あと、PCの電源投入直後にこの書き込み器と VMU をつないだとき、「ジュシンタイキチュウ」と出ることがあります。っちゅうか、出ないことがないような気も... (^^; この場合には DOS プロンプトで、debug-o 37a 0-quitのように debug コマンドでプリンタコントロールポートに 0x0 を出力すると、正常に通信できるようになります。ちなみにプリンタコントロールポートのアドレスはプリンタベースアドレス(私の ThinkPad390X の場合は 0x378)+2(=0x37A)になります。---私の場合は、以上でパラレルポートVMUのデータ転送ができるようになりました。あくまでご参考、っちゅうことで。(^^;--- 23:40 ---
August 8, 2008
コメント(0)
今日はそれなりで帰宅は23時前やった。帰りが遅かったので嫁はんに電話しませんでした。起きてるんかもしれんけど... (^^;---こないだパラレル書き込み器(要改良)を作ってゲームの実行ファイルをビジュアルメモリ(VMU)に転送できるようになりました。で、昨日発見したプログラムの雛形(skelton)の中を見て改造し、"Hello World" を表示させてみました。#雛形も実は Hello World を表示させるプログラムなんやけど、とりあえず改造。(^^;"Hello World" を表示中(書き込み器はつないであるだけ(^^;)雛型には丁寧な解説が書いてあるので、だいぶ勉強になります。が、LC8670 (CPU)の命令セットとアセンブラ書式に慣れてないのでまだまだ分からんことが多いです... とりあえず、もう遅い時間なので、・雛形中の Hello World 画像を差し替える・A/Bキーによって画像を切り替えるの2点だけ変更してアセンブル後、転送・実行してみた結果が上記画像です。画像は BMP ファイルからアセンブラソースに変換してくれる(bmp2asm)っちゅう便利なツールがあるので、48x32ドットの白黒BMPファイルを作れば VMU で表示可能な画面が1枚作れます。先達に感謝!!この後、この雛形を改造するとすれば、・方向キーによる画像スクロールぐらいを試してみたいところです。そのためには CPU の特殊レジスタと命令セットを調べないとイカンので、これは次の機会に... ---上記画像で写っているパラレル書き込み器のコネクタとケースは某リサイクルショップで売ってたドリームキャスト用の何かのアダプタ(VMU側)とGBA用の無線通信ユニット(パラレル側)の中身を取り出して利用しています。それぞれ 105円(税込)なのでヘタにケースを買うより安いかも?スッキリ仕上がってイイ感じなんやけど、肝心の回路を修正しなければイカン。(^^;;--- 25:15 ---
August 7, 2008
コメント(0)
今日はそれなりで帰宅は22時過ぎ。昼間曇ってたせいか、比較的涼しくて過ごしやすいですなぁ。---昨日、何とかVMUに書き込めるようになったので、現状作業の選択肢は二つです。・書き込み用パラレルアダプタの改良(他の手段への乗り換えも含む)・テストプログラム作成今日はあまりやる気が無いので(^^)、アダプタの改良は後回しにしてテストプログラム作成をやってみようかなぁ。とはいうものの、どういう具合に書けばイイのか...何かないかとフラフラしてるうちに、分かりやすそうなページを発見しました。Dreamcast VMU Programming and Toolsっちゅうページで、VMU用プログラムの雛形(skelton)を用意してくれてます。これをいじれば比較的簡単にプログラムが作れそうです。が、これから始めるとハマりそうなので、続きはそのうちに... (^^;--- 24:50 ---
August 6, 2008
コメント(0)
今日は早めで帰宅は21時前。今日は曇~雨で比較的涼しいです。昼間は湿度が高くて蒸し暑かったけど...---こないだ某リサイクルショップのジャンクコーナーでVisual Memory Unit(VMU)が210円(税込)で売られてるのを見かけたので買いました。とはいうものの、買ったときは液晶の付いた何か、ぐらいに思ってました。で、調べてみると、こいつはドリームキャスト用のメモリで液晶画面を使ったミニゲームなどもできるようです。まぁ、中を見てみましょう。:-)とりあえず中身(コネクタのピン番号が見える方)裏蓋を開けるとこうなってます。上部の黒いのがドリームキャストと接続するためのコネクタです。ピン番号は左から1, 2, ..., 7, 8, 9, ..., 14 です。1~7と8~14でそれぞれ1つのコネクタに対応してます。このコネクタは VMU 同士の接続にも使われますし、後述するように PC と接続してデータを流し込むこともできるそうです。液晶側はこんな感じ液晶側はこうなってます。液晶モジュールが導電ゴム(?)のコネクタで基板から浮かせて取り付けられてます。液晶の下の空間にSanyo LC8670 "Potato"なる CPU がいます。構造的には良く考えられててイイ感じです。---っちゅうことで、何とかしたら PC とつながるんかいな?と調べてみると、ありました!しかも、アセンブラ/逆アセンブラも開発されており、自分でプログラム開発できるようです!!スゴイ先達が居はるもんやねぇ。うまく接続できれば、安価に携帯ゲーム(?)開発ができそうです。さてさて、どこに情報があるかっちゅうと、John MaushammerさんのVMUのページに接続の仕方が書いてあります。ただし、パラレルポートへの接続なので最近のPCではキビシイかも?元々はシリアルポート経由+AVR(?)で書き込みした人のソースが元ネタのようですが、元ネタページがリンク切れで見当たりません... (^^;;また、Maushammerさんも書いてますが、5V系と3.3V系が入り混じる可能性があるため、接続をどうするかはある程度自分で考えないといけないようです。っちゅうことで、ある程度考えてみたPCとの接続用ハード作成が完了して、テストしてました。が、そのままでは動作せず... orz やっつけで改造したらとりあえず書き込み/読み出しはできたんやけど、あまりにもエエ加減な接続になってます。これでは VMU にも負荷がかかるのでゼヒトモ改善したいところです(しなければならん...)。まぁ、今日はこの辺で...--- 26:30 ---
August 5, 2008
コメント(0)
昨夜から子ども(弐)の調子がイマイチやったが今朝は回復したようだ。っちゅうことで、いつも通り日曜学校に行きました。昼頃にはすっかり回復してパンを食べてました。夏ばて気味なのか食べる量は少ないですが...---近所の某リサイクルショップをウロウロしてるとWonderSwanが210円(税込)で売ってるのを発見。WonderSwanといえば、公式開発ツールWonderWitchを入手すれば割と簡単に携帯ゲームの開発ができるプラットフォームなので、かつては買うかどうか悩んだゲーム機です。それが、210円... (^^; ジャンクコーナーなので修理の楽しみもあるかと思い、買ってしまいました。動作確認用に105円(税込)で売られていたGunpeyも同時購入。合計 315円...動作確認のため、ROMカートリッジを外した状態で電源投入してみると、固定アイコンが点灯するのでセルフチェックはOKな様子。これで210円なのか?! で、GunpeyのROMカートリッジを挿入して電源を入れると... あっさり起動。うーむ、ジャンクとして売られていたので少しは修理する箇所があるかと期待してたのに残念。(^^;;WonderSwanの本体は他にも210円~525円の価格帯で何台か売られてました。いずれもジャンク扱いやけど、そんなに差があるとも思えんのですが... 何が違うんやろ?色ぐらい?? あとは WonderWitch を何とか格安で手に入れられればイイのですが... こちらはかなり難しいかも? (^^;;--- 17:45 ---
July 27, 2008
コメント(0)
今日は早めで帰宅は20時半。何だか久しぶり。(^^;帰り道の本屋に寄ったら「電子工作マガジン」No.1が出てたので買ってみました。「ラジオの製作(ラ製)」を出版してた電波新聞社が若年層(小学校高学年~高校ぐらい?)を対象に電子工作のおもしろさを紹介しよう、っちゅうことで発刊に至ったようです。うーん、それにしては1260円はチョット高めかも?ざっと読んでみた印象としては、何となく硬めっちゅうか、教育的な香りがしすぎっちゅうか、何か昔「ラ製」を読んでた感じと違うような気がしました。うまく説明できんのやけど... おっさんになったからそう思うのか? (^^;製作記事の内容としては適度なバラエティがあってイイと思います。今回の内容では、アルミテープとホッチキスで配線してしまう電子オルゴールの記事なんかは良く考えてあると感じました。これから色んな内容の記事を試行錯誤しながらになるんでしょうなぁ。少しヘビーやけど頑張ったらできるかな?というレベルの記事も出てくることを期待してます。さじ加減がムズカシイんやろうけど...電波新聞社の思惑通りこの本を若年層が読んでくれて、電子工作に興味を持ってくれることを期待してます。:-)--- 24:10 ---
July 16, 2008
コメント(0)
休みの日は子ども達の相手があるので(^^)平日しか作りモノ関連の時間がナカナカとれない。っちゅうことで、トランジスタ技術8月号付録78K0基板も平日しかイジるヒマがありません。(^^; 7/10のコメント欄にmyconboy78kさんと007さんが書き込みをされているので、私も調査・実験してみました。まず、myconboy78kさんのリスト2がコンパイルエラーになる件ですが、記事作者のなひたふさんのJTAG日記「トラ技78Kマイコンのコンパイルエラー」に解決策が書いてありました。その記述によると、ライブラリコード(LCODE)をメモリ上に配置しようとする記述が ramapp.dr に書いてある(MERGE @@LCODE : = IXRAM)のでこれをコメントアウト(文頭に#をつける)するとライブラリをリンクしないプログラムのビルドが可能、とあります。私も追試してみると、上記 ramapp.drのLCODE部分をコメントアウトするとビルドできました。が、ここで謎が...ビルド後のHEXファイルサイズがトラ技のサンプルディレクトリ(sample2)に入ってるのと比べるとやたらでかい(46kB)のです。サイズはでかいが実行はできるので問題ないような気もしますが、気持ち悪い... っちゅうことで、調べてみると、[ツール][オブジェクトコンバータオプションの設定]でオブジェクト充填に入っているチェックを外すと良いようです。これでHEXファイルのサイズは1kBに減少。謎は解決しました。:-)---次に、007さんのコメントにある標準ライブラリを用いたコンパイルができない件についてですが、p.150に書いてあるように32768以上の数を比較に使用するようsample2を書き換えて(for ( i = 0; i < 50000; i++ ))ビルドしてみました。ただし、i は unsigned intにしておかないとループから抜けてきません。CC78K0におけるshortとintは16ビットなので、50000は負数になってしまうからです。ビルド時に asm ファイルと map ファイルを作成させて確認したところ、標準ライブラリの @@lscmp というルーチンが呼ばれているようです。できた HEX ファイルを load して実行してみると、sample2 よりは点滅間隔が長くなっているので確かに標準ライブラリをリンクして実行できているようです。っちゅうことで、ごく単純な標準ライブラリのリンクは動作しているようです。複雑なことをやらせるとどうだか分かりませんが...---以上、調査・実験結果です。--- 26:05 ---トラックバックしてくれはったmyconboy78kさんところを見てみると、なひたふさんのコメントが既についてました。(^^;; 私としても色々実験できておもしろかったのでヨカッタです。--- 26:15 ---
July 14, 2008
コメント(0)
今日は少し早めで21時過ぎに帰宅した。帰り道の本屋でトランジスタ技術8月号を買いました。今月号にはNEC エレクトロニクスのAll Flash 8ビットUSB制御用マイコンμPD78F0730の載った基板が付いてます。今までもCPUの載った基板が色々付録で付きましたが、追加部品を乗せたり、電源が別に必要やったりで結構面倒でした。まぁ、それはそれでイイんやけど、なんと今回は、・USBポートに直接挿さる形状の基板・とりあえず動作に必要な部品は全部実装済み・基板上のCPUにBIOS書き込み済みっちゅう至れり尽くせり状態です。(^^; 実際、USBポートに挿してドライバを入れれば即 COM ポートとして認識され、シリアル通信が可能でした。うーむ、恐るべし...μPD78F0730のフラッシュROM領域は、ATMELのAVR(8ビット)などとは違って、1KB×16バンクに分かれており、バンク毎に消去・書き込みができるようです。そのおかげでUSB経由でシリアル通信機能を実装した「トラ技BIOS」を残しつつ、ユーザプログラムをロードして実行できる、っちゅうことらしい。実際、この付録基板をどう使うかは未定ですが(^^)、上記USB経由での通信ができる点を生かして、AVRを使った自前のハードとPCをつなぐインターフェース代わりに使えるような気がしています。っちゅうても、具体的にどうこうはまだ考えてませんが... (^^;;まぁ、何にせよ、今回は割とすぐに使い始めることができそうなので、ちょっとぐらいはいじっておきたいところです。--- 25:20 ---
July 10, 2008
コメント(3)
今日もそこそこ盛り上がり帰宅は23時過ぎやった。東京MXTVでやってる 探偵!ナイトスクープは2週遅れなので今日がアカデミー大賞の放送日でした。2時間あったので久しぶりにたっぷり見られておもしろかったです。---ゆきの研究室さんのつれづれ日記を見てて知ったのですが、電波新聞社から「電子工作マガジン」っちゅうのが7/16に創刊されるようです。電波新聞社はかつて「ラジオの製作」っちゅう子供向け電子工作雑誌を発行してました。私も子供の頃は読んでたのですが、いつの間にやら廃刊になってました。今回の「電子工作マガジン」の創刊目的は、かつての「ラジオの製作」のように子供が電子工作に興味を持てるような雑誌を復活させよう、っちゅうことらしい。まぁ、早い話が習うより慣れろ、で実際に電子製作をすることにより、おもしろさを感じてほしいのでしょう。この雑誌を機にモノを作るのはおもしろい、と思う子供が増えるといいんやけど...--- 25:50 ---
July 4, 2008
コメント(0)
今日はそこそこ盛り上がり帰宅は23時過ぎ。咳はほとんど出なくなり楽になりました。やっぱり体調が悪いと仕事してても集中できん。(^^; 嫁はんと子ども達の咳もだいぶおさまってきたので良い傾向です。---まだたくさんあるATTINY2313を使って何か作ろうと思ってるのですが、ナカナカ進みません。とりあえずは7セグメントLEDを4つ並べてスイッチを1つ2つ接続したテスト基板を作成してみる予定(は未定(^^;)。図面は引いてあるんやけど、7セグメント周辺の配線がめんどくさそう(帰宅して寝るまでの時間で配線するのが辛そう)なので製作開始の踏ん切りがつきません。やってみれば割とすぐに終わるのかもしれんけど...テスト基板ができれば周波数カウンタの実験ができるようになるので、TEKNOS RT-2 のディジタル化もできそうやけど、いつになることやら。(^^;;--- 24:55 ---
June 30, 2008
コメント(0)
今日は休日出勤した。普段腰を落ち着けてできない作業をやりました。人が少ないし電話もかかってこないので集中できました。作業が進んだかっちゅうと微妙なとこですが,.. (^^;---かなり前に作ったATTINY2313+8x8LED表示器の小型化試作を1年ほど前にやりかけて放置してました。(^^; ジョブを溜めとくと精神衛生上良くないのでササッと作るつもりが2時間ばかりかかってしまいました。小型化されたATTINY2313+8x8LED表示器電流制限抵抗として秋月の1/6Wタイプを8x8LEDの下に配置することでだいぶ小さくなりました。ホンマはCR2032(3V)を使ってさらに小型化を図る予定やったけど、基板のカッティングミスで単4電池使用になりました。(^^;; 大体バッジ化可能なサイズにまで小さくなってきたから、あと一声っちゅうとこやけど、この回路も飽きてきたので別のことをやってみたいところです。--- 25:45 ---
April 30, 2008
コメント(0)
こないだ注文した「試しながら学ぶAVR入門」が届いた。今まで参考にしてた「AVRマイコン・リファレンス・ブック」はAVRの機能がかなり詳細に紹介されていて内容的にはイイのですが、実際の回路とかまとまった動作をするサンプルコードが少ない印象でした。今回買った「試しながら学ぶAVR入門」は必要なAVR機能説明と実際の回路、そしてサンプルコードが程よいレベルで書かれてる印象を受けました。まだちゃんと読み込んでませんが、参考書としてはナカナカ良さそうです。ただ、機能確認のためにATMELの発行してるデータシートは併せて読まんとイカンでしょうけど...---「試しながら学ぶAVR入門」に刺激を受けて、1年ほど前に作った8x8 LED 表示器のデバッグをしました。プログラムエリアに文字列を埋め込み、パターン長も色々変えられるようにしたら、表示されるデータが乱れるようになったので放置してたのです。(^^; 仕事が忙しくなったので...バグとしては比較的単純で表示するデータポインタのアドレス計算を間違ってただけでした。時間をとって考えれば何ちゅうことはないのにね。(^^;; まぁ、直ってよかった。プログラムROM使用率77%ぐらいやから、あと少しの機能追加はできそう。--- 25:40 ---
April 16, 2008
コメント(0)
今日も雑用が盛り上がり帰宅は24時過ぎやった。雑用とはいえ期限付きなので厄介です。(^^; いましばらくはしゃーないか...---Yuki's Labo./ゆきの研究室のつれづれ日記で「試しながら学ぶAVR入門」なるAVR本が発売されるのを知りました。っちゅうことで、週末に某ワンクリックなとこで注文したのですが、本日発送、とのメールが来てました。明日来るかな?まぁ、秋月で買った ATTINY2313 もほとんど使わずに寝てる状態やから、すぐにモノを作れる状況ではナイのですが... (^^;; 色々勉強だけはしときましょう。--- 26:30 ---
April 14, 2008
コメント(0)
今日も押入れの片付けをした。その際、大昔に製作した AY-3-8610-1(テレビゲーム専用LSI) + AY-3-8615(カラー化用LSI)を使ったテレビゲーム機が出てきました。AY-3-8610 チップセット使用のテレビゲーム機(外観)AY-3-8610 チップセット使用のテレビゲーム機(内部)たぶん、秋月電子通商か若松通商からチップセットと回路図だけ買って適当に組み立てたようです。この辺の詳細は相当昔なので記憶にありません。(^^;電源を入れようにも外部電源端子に DC6V とレタリングしてるだけなのでセンター+/-が分かりません(自分で作ったのだが...(^^)。っちゅうことで、開けてみると電池ホルダが付いてました。手持ちの単3×4のホルダを付けて電源を入れるとちゃんと動きました。:-) でも、電池ホルダを付けるとどう頑張ってもケースが閉まりません。どういう設計をしたんやろ? > 私。(^^;ゲーム機動作中(テニスゲーム)ゲームの種類は、テニス、ホッケー(ゴールエリアが狭くなる)、サッカー(サッカーゴール(?)が描画される)、バスケット(バスケットゴール(?)が表示される)、スカッシュ、シューティング(標的が出てくるのでタイミングを合わせてボタンを押す)など数種類あります。このチップセットで画期的(?)なのは、ラケットが前後に動かせること。そのためにコントローラに垂直用、水平用のボリュームを付けたようです。あまり記憶にないけど... (^^;;あと、色調整がずれてたので直してみたけど、本来の色がどんなもんか不明なので直ったのかどうかがよう分かりません。まぁ、この辺はヨシとしましょう。古いチップセットやけどとりあえず動いたのでビックリしました。子ども(壱&弐)にも今日びのゲームと違って新鮮に見えたようです。また、お蔵入りさせるので遊ぶのは今日だけネ。--- 19:10 ---
April 13, 2008
コメント(0)
朝から年賀状の宛名書きをしてようやく終了した。っちゅうことで、こないだから嫁はんに頼まれてたYAMAHAキーボード(PSR-300)の修理をしました。症状は「ACアダプタを挿しても鳴らないことがある」っちゅうものです。症状だけからするとACアダプタ用の電源ジャック部の不良の可能性が9割以上です。とりあえず裏のネジを外して開けようとしたのですが、何とネジの多いこと!幸い長さ違いは少ない(2種類)やったので仕分けは楽でしたが...PSR-300内部(メイン基板周辺)メイン基板を外すにはフラットケーブルのリード線を挿入するタイプのコネクタを2つ外さないといけません。この手のコネクタは挿抜時のトラブルがありそうなのでなるべく外したくないのですがしゃーない。外した基板の裏側、電源ジャックのハンダ面を見ると...ハンダクラックじゃ(^^;ACアダプタの挿抜ストレスが電源ジャックのリード部にかかりハンダにクラックが入ったようです。嫁はんが学生の頃から使ってるキーボード(発売は1993年)なので、まぁ、しゃーないねぇ。(^^;古いハンダを吸い取り線で除去し、再ハンダしました。ちょっとノリが悪い感じがしたけどしばらくは大丈夫でしょう。仮組みしてACアダプタを接続しプラグをガタガタさせてみたけど接触不良は見られず。その後、筐体内部の清掃を行い、ちゃんと組み上げて修理完了。再ハンダしただけなので修理と言えるか微妙なとこですが... (^^;;--- 12:25 ---
December 29, 2007
コメント(2)
今日も仕事が盛り上がり帰宅は22時半。嫁はんと子ども達は寝ていました。子ども(壱&弐)の寝相がすごいことになってました。寝るとこあるかな? (^^;---こないだ作った中波用ループアンテナの同調範囲を高い方に拡張しました。巻きの中間からタップを出して1200kHz~1600kHzぐらいをカバーするようにしました。タップをスイッチで切り替えようと思ったけど、結合するのかあまりうまくいきません。色々試してみて何とか中域(800kHz~1200kHz)と高域(1200kHz~1600kHz)の切り替えはできるようになりました。あとは低域(400kHz~800kHz)やけど10pF~100pFぐらいのコンデンサがないと実験できん... (^^;;ループアンテナは同調回路なのでダイオード検波してゲルマラジオとして聞いてみましたが、やっぱり感度は高いです。AFN、TBS、文化放送などがかなりの音量で聞こえます(クリスタルイヤホンやけど)。イイ感じ。:-)--- 26:25 ---
June 13, 2007
コメント(0)
今日はそれなりで帰宅は22時半やった。晩ご飯は山盛りの唐揚げでした。(^^; 食べきれない分は冷凍しといてっちゅうことやったので半分ぐらいは冷凍しました。おいしかったわん。---先週からだらだらと作っていた中波用ループアンテナが一応、形にはなりました。中波用ループアンテナ(フラットケーブル+塩ビパイプ+屋根馬)線を巻くのが面倒くさかったので手元にあった2.5m弱の10線フラットケーブルを塩ビパイプに通してループを作りました。現物あわせなので1辺は70cm弱と中途半端です。(^^; 1巻きはピックアップループにしています。っちゅうことで、100円ラジオから外した容量不明のバリコンと組み合わせたときの同調範囲が800kHzぐらい~1300kHzぐらいと中途半端になってしまいました。1巻き抜いたとこからタップを出せば1300kHzより上の方はカバーできそうですが、バリコンとパラにするコンデンサの適当な手持ちがなくて800kHzより下の方は現状カバーできません... (^^;;とりあえず、CPU周りが不調なICF-2001を引っ張り出して性能チェックしてみます。CPUとテンキーが不調なICF-2001 1143kHzのKBS京都を聞いてみました。滋賀にいたときは余裕で聞こえる(当たり前)のに関東では1134kHzの文化放送がかぶりまくってほとんど聞こえないのですが、ヌルを文化放送に向けると混信がかなり低減され、まともに聞こえるようになりました。指向性はそれなりにあるようです。次に適当に2局ぐらいがかぶってる周波数 1116kHz を聞いてみました。聞いてる段階では一方が南海放送やっちゅうことしか分からんかったのですが、あとで調べるともう一方は新潟放送らしい。これらは到来方向が割と離れてるようで指向性でキレイに分離して聞くことができました。まぁ、こんなとこで同調範囲に入れてしまえばそこそこの性能は出るようです。っちゅうことで、そのうちに同調範囲を拡張しなければ... ヒマないけど。(^^;;;--- 24:45 ---
June 11, 2007
コメント(2)
今日は久しぶりに定時で帰った。帰り道、こないだ100円ラジオを買った100円ショップに寄りました。ATTINY2313+BU5004Rスクロール表示器のケースに使えそうな食品保存ケースを物色してからラジオの置いてあったところに行くと(株)グリーンオーナメント製の「歩数計」なるモノが売ってました。99999歩まで数えられるらしい。会社への行き帰りにどのぐらい歩いてるのか知りたかったので買ってしまいました。ちゃんとカウントされなかったとしても数字5桁の液晶が部品として取れそうなので... (^^;家に帰って子ども(壱&弐)の攻撃(^^)を受けながら早速分解してみました。分解された歩数計...こないだバラした100円ラジオより作りはしっかりしています。上の写真では見えませんが、片面基板の半田面(歩数計基板表)にベアチップモールドの IC があり、液晶と基板パターンはコネクタではなく導電ゴムで接続されている模様。ちゃんとバラしてないから実はコネクタなのかもしれませんが... (^^;; 部品実装時の半田付けはおそらく手付けです。キレイではないけど、まぁそこそこか...通常部品面となる面(歩数計基板裏)に見えてる円形の金属がバネと接触すると1歩としてカウントされます。円形の金属がつながってるアームは磁石か板バネ(?)の作用で勝手に上に戻るようになってます。電極とつながってる線が相当細いので壊れるとしたらまずココかも。あと、電池ホルダも基板上に作りこまれていて中々コストダウンに徹した作りです。---半田面に MS6009C とあるので Google 先生に聞いて色々調べてみると、この歩数計モジュールは 深?市明揚創新科技有限公司(ホンマは簡体やけどエラーが出るので...)が製造しているようです。他にも電卓用などの各種液晶モジュールを作ってる割としっかりした会社なのかな?--- 24:15 ---MS6009C を Google 先生に聞くとデータシートがひっかかります。それを見ると MS6009C は専用(?)5桁液晶のドライバとパルスカウント回路の入った IC でした。5桁液晶もピン配置とパターン表示マップがあるので単独でも使えそうな感じです。もう1つ買って液晶表示器として試してみるか??--- 25:15 ---
May 11, 2007
コメント(2)
今日はそれなりで帰宅は22時前。子ども達は布団で寝かけてるとこでした。危うく一緒に寝そうになったけど何とか復活して現在に至る。(^^;---昨日探しきれなかった TA7642 のデータシートを発見しました。っちゅうても、紙のデータシートをスキャンしたようなアヤシイ物ですが... このデータシートによると電源電圧はTyp. 1.3Vと電池1本での動作を前提としてるようです。また、推奨回路も描いてあるので参考にはなりそうです。--- 24:25 ---
May 8, 2007
コメント(0)
休みも終わり今日から仕事やった。久しぶりに作業すると調子がイマイチ... とも言うてられんので何とか仕事をこなして少し早めに帰宅しました。21時半ぐらいに家に着いたので子ども達はちょうど寝るところでした。一応起きてる姿が見られてヨカッタわん。:-)---帰宅途中にある100円ショップで100円ラジオ(イヤホンは別)が売ってるのをこないだ発見してたので2台買いました。部品取りが目的ですが... (^^; 丸七(株)が輸入(?)してる中国製の「ライターサイズAMラジオ(ST-82)」です。外観からしてポリバリコンとスイッチ付のボリュームが採取できそうです。とりあえず聞いてみると... 音量は単4電池一本で動いてるとは思えんほど大きいのですが、選択度が非常に悪いです。(^^; 分離して放送として聞けるのは NHK第一、NHK第二、AFN、TBS、文化放送の5局です。それ以外の周波数ではこれら5局のどれかがかぶってます。同調範囲も低い方に寄ってる感じがせんでもない。っちゅうことで、分解してみると3石のストレートラジオっぽい。バーアンテナは小さいのが付いてます。秋月のゲルマニウムラジオキットのバーアンテナよりまだ小さい... (^^;当てにならん周波数表示の針(?)が上下する仕組みだけは感心しました。バリコンのつまみにゴム(?)のピラピラが付いててそれを表示窓の隙間に突っ込み、溝に沿って強引に動かしています。って、これは実物を見てもらわんと何とも説明しがたいです。---色々調べてみるとST-82の回路図とかST-82の紹介(左フレームのB,C級ラジオのとこ)が見つかりました。実は 1IC+2TR のラジオやったとは... (^^;; IC のデータシートが見つからんのが残念。--- 25:20 ---
May 7, 2007
コメント(0)
今日は子ども(参)と留守番の時間があったので簡単な工作をしたおじいさん、おばあさん(嫁はんのお父さん、お母さん)と子ども(壱&弐)は散髪と買い物に、嫁はんは散髪に行ったので少し時間ができました。っちゅうことで、こないだ秋月電子で買っておいたゲルマニウムラジオキットを作ってケースに入れました。ゲルマラジオ自体は簡単な回路なんやけど、部品をバラで買うと結構するので秋月のこのキット(350円)は少し割安感があります。バラで買うとクリスタルイヤホンだけで250円ぐらいするし、バーアンテナのまともなモノはそれなりの値段がするし、何といってもゲルマニウムダイオード(1N60相当?)自体が1本50円ぐらいするので...秋月のキットはプリント基板上に部品を実装するので組み立て自体は簡単です。バリコンにはポリバリコンではなくトリマコンデンサ(容量不明)が使われています。なので、チューニングにはドライバが必要です。が、逆に考えると同調点を保持できるので局固定で聞く分には便利かも。組み立てた基板のヘリを削るとダイソー系で売ってる小さ目の食品保存ケースに入ったのでそのまま組み込みました。組み立てて食品保存ケースに入れたゲルマニウムラジオキット今の定数での同調範囲は中波帯の低めに合ってる模様。NHK第一、NHK第二、AFN、TBS(954kHz)が入るけども、その上が入りません。送信電力からすると文化放送(1134kHz)やニッポン放送(1242kHz)も入ると思うんやけど、入らんことを考えると1MHzぐらいまでしか同調してないと思われます。アンテナとして付属の単線ではなく適当な(5mぐらい)のより線を接続しましたが、それだけでは感度が不足です。より線をコイル状にしてテーブルタップに近づけるとだいぶ感度が上がり実用範囲になります。やっぱり関東平野は強電界ですな。:-)電池が要らんので寝るときにちょっと聞くのに便利かも。---結局、子ども(壱)の誕生ケーキは今日作って食べました。(^^;--- 5/3 19:25 ---
May 2, 2007
コメント(0)
今日は久しぶりに定時上がりで帰ってきた。ご飯を食べて子ども達を風呂に入れたんやけど、今日も子ども(参)は大泣きでした。(^^;---ATTINY2313 を使って色々やりたいんやけど、優先順位をつけないとナカナカ進みません。っちゅうことで、1. ATTINY2313+BU5004Rスクロール表示器の小型化試作2. 7セグメント表示器を使った何かの試作3. TV出力というところですか... とりあえずは小型化試作やね。:-)--- 26:45 ---
April 27, 2007
コメント(0)
今日はそこそこ盛り上がり帰宅は22時半やった。嫁はんと子ども達はスヤスヤ寝てました。晩ご飯のデザートに不二家のケーキがありました。復活してるんやね。:-)--- こないだからボチボチいじってる ATTINY2313+BU5004R スクロール表示器にパラパラマンガモードを追加しました。ビットパターンを続けて表示してるだけですが... (^^; タイマ1の100msを数えて適当なタイミングでパターンを更新。キー判定のすわりが悪くなったので、LEDの行スキャン(タイマ0割込)の1タイミングをもらって判定するように変えました。スクロールモード(4文字×3パターン)、パラパラマンガモード(4コマ×2パターン)で Flash ROM 1300バイト、SRAM 30バイト程度。あとはデータを拡充していきますか...--- 26:30 ---
April 19, 2007
コメント(0)
こないだ作ったATTINY2313+BU5004Rスクロール表示器のプログラムをいじった。メッセージを SRAM 上ではなく、プログラム領域に置いて読み出す方法をGetting Started Notes - Program Memoryで調べて実装しました。これでメッセージ長の拡張にも耐えられるようになりました。スクロール用のタイマ1割込(100ms周期)にスイッチ入力処理を追加してスイッチを押すとメッセージが切り替わるように変更。あと、INT1割込はスリープに入る直前にenable、抜けるとdisableになるように変更。こうしないとLED表示割込に干渉するので...4文字メッセージ×3の状態で、プログラム900バイト弱、SRAM30バイト弱の使用率です。スクロールモードのみで進めるならまだまだメッセージサイズとメッセージ数は拡張可能。別にスクロール無しのアニメーションモードとかつけるにしても、まだ余裕はありそうです。--- 24:30 ---
April 16, 2007
コメント(0)
今日はそれなりで帰宅は22時過ぎ。嫁はんは起きていた。昼から嫁はんの友人がふらっと遊びにきたそうです。子ども(弐)がだいぶ遊んでもらったらしい。ありがとうございます。---こないだから子ども(壱)の幼稚園のバザーに出すようなモノが作れないか?と色々試しています。秋月電子で売ってる 8x8 赤色 LED マトリクスが @90円と安いので @120円の ATTINY2313 と組み合わせて、スクロール表示器を作ってみました。ATTINY2313+BU5004Rスクロール表示器回路図:PORTBの8ビットを各列(COL)ビットに割り付けたので uint8_t な変数をポートに出力すれば1行表示できます。その代わり、各行(ROW)は結構バラバラなので switch -case などで適当に書かないといけません... っちゅう予定やったんやけど、ATTINY2313の1ピン当りのドライブ能力からして8ドット点灯時の(3-1.8)[V]/200[Ω]*8=48[mA]はキツイので、uint8_t な変数の上位・下位を交互に出力して輝度のバラツキを減らしてます。スイッチは INT1 につないだので、パワーダウンモードと組み合わせて電源スイッチ代わりに使ってます。適当にプログラム書いても WinAVR の最適化を -Os にすると、フラッシュROM 2kB に対して 800バイト弱で収まってます。スクロール表示モードだけでよければ、それなりにメッセージを表示しても 2kB で余裕あり、っちゅうとこでしょうか。スクロール動作中(って分からんか...(^^;)あと、バザーに出すためにはコストも考えないといけません。ATTINY2313 @120円(19個購入時 @110円)BU5004R(8x8LED) @90円(13個購入時 @70円)ソケット @10円スイッチ @20円?(100個購入時 @7円)基板 @60円パスコン @10円ピンヘッダ @20円(?)抵抗 @1 x 17 = 17円電池ホルダー @40円ケース @100円っちゅうことで、原価合計500円以内には収まるけど、もう一声っちゅうとこか... まとめ買いして(既にしてる(^^))、ソケット、ピンヘッダを無くして、ケースもケチって、基板も半分に切って使えば... 原価 300円~400円っちゅうとこですか。うーん、微妙。(^^;;--- 25:15 ---ソースの公開要求がありましたので、ココに置きました。もうすっかり忘れてるので(^^)、大体の動作しか分かりませんでした... (^^;;--- 2013 6/18 21:20 ---
April 12, 2007
コメント(5)
今日はそれなりで帰宅は22時半。嫁はんは起きてたのでご飯を食べつつ雑談しました。子ども(参)が3,000gに到達する日は近そうです。大きくなったもんだ。:-)---昨日、緑LEDがそれなりに点灯して喜んでた LED Game for AVR ですが、作者のページに置いてあるデモプログラムの方がちゃんと点灯します。(^^;何でかなぁ、と思ってソースを見るとLEDを点灯させるときに「縦横スキャン」っちゅうのをやってるようです。自分でタイミング書いてみんとピンときませんがどういう効果があるんやろ?スキャン方向を変えることでムラを平均化して見せる??もちろん、赤LEDと緑LEDは同時に点灯させないようなプログラムでした。やはり、作者はよく分かってはるようです。まぁ、私の場合は自力でここまでたどり着いたのでヨシとしときましょう。(^^;;--- 26:05 ---
March 29, 2007
コメント(0)
今日は少し早めに帰ってきた。嫁はんが起きてたのでご飯を食べながら雑談。子ども(壱&弐)がいないと静かすぎて変な感じやなぁ。(^^;---子ども(参)が生まれる前にLED Game for AVR の緑ドライバ回路を作ったけども、1. 赤 LED と緑 LED の輝度の差が大きい。2. 赤 LED と緑 LED を同一列で点灯させると緑 LED の輝度が大幅に落ちる。という問題がある、っちゅうとこで放置されてました。(^^;;ハード改造やと根本的解決になるんやけど、めんどくさいのでソフト的に何とかならんか考えて試してみました。その結果、上記の問題はほぼ解決できそうな感触を得たので、独自実装の LED ドライバソフトを改造して実験してみました。結果はまずまず(と思う(^^)。3色(赤・緑・オレンジ)表示になった LED Game for AVR (3V動作やけどそれなりに光る)---さて、上記問題の原因は何か?とりあえず、・緑LEDと赤LEDを同時点灯させるとアノード側74HC595出力が過電流で電圧降下して緑LEDが暗くなると考えられます。っちゅうことは、1.緑LEDと赤LEDを同時点灯させなければよい2.1のためには、開発者向け情報ページにあるタイミングチャートの緑データと赤データを同時刻に出力しないようにすればよい3.2のためには、緑データだけ1画面(16列分)表示し、次の1画面(16列分)表示は赤データだけを表示する、っちゅうのを繰り返せばよい4.3で緑データを1画面表示する頻度を赤データより多くすれば輝度の差も減るやろうと考えて以前作ったストップウォッチソフトの LED ドライバ部分を書き換えて実験した結果が上の写真です。元々LEDの1列表示はTimer2のCTC割込で実装してたので緑VRAM/赤VRAMどちらを転送するタイミングなのか示すフラグを追加するだけで済みました。ただし、1列中に点灯するドット数が増えると赤、緑にかかわらずドットが暗く表示される現象は現状では改善できません。(^^;; 一応改善のアイディアはあるけども... 今回実験したタイミングを図にしてみたのが↓。図中(b)のタイミングを使います。図中(c)は1画面表示を緑・赤・緑・赤... と交互に繰り返す様子を示します。ドローツール(tgif)で漢字が入力できなかったので読みにくいですが参考まで。--- 3/29 26:55 ---
March 28, 2007
コメント(0)
こないだ秋月電子通商で買った ATTINY2313 を使ってみよう、っちゅうことでテスト回路を作ってみた。ATTINY2313 テスト回路千石電商のジャンク袋(500円)に入っていた 緑 LED 3個とタクトスイッチ 1 個をとりあえず実装してみました。NTSC信号(白黒を考えてるから正確には RS-170?)周辺については未実装。8ビットタイマと16ビットタイマを試してみました。あとは省電力設定(スタンバイモード)とINT1による復帰も実験。イマイチ分からんのが PWM の使い方です。データシート読んで試してみたつもりなんやけど... ぼちぼちやりますか。--- 21:30 ---
March 25, 2007
コメント(0)
子ども(参)が生まれてからLED Game for AVRをいじるヒマがほとんど無い。で、久しぶりに LED Game for AVR のページをチェックしたら(LED Game for AVR) TV版版なるものが公開されていました。実はこないだ秋月電子通商でATTINY2313を1レール(18個)買いました。単価が120円を切るぐらいなので、おもちゃを作るのにちょうどいいか、っちゅうことで... この ATTINY2313 を使って NTSC ビデオ信号生成を小山氏@弘前大のページとそのページに載ってるリファレンス(AVR Video Generator with an AVR Mega163を参考に実験してみようと考えてたのですが、ナカナカ暇が無くて実現できてません。LEDを点灯させる簡単な回路は作ってみたのですが...まぁ、ぼちぼち作っていきましょうか。:-)--- 21:30 ---
March 23, 2007
コメント(0)
今日は帰りに散髪屋に寄った。髪の毛切ったらスッキリしました。家に帰ると上の子どもが「みじかいかみのけ、さわらして~」と寄ってきました。ザラザラしてるのがおもしろいのかな?---LED Game for AVRの開発者向け情報ページにある緑 LED の点灯タイミングを素直に実現する回路(緑LEDドライバ回路)を作ってみました。緑LEDドライバ回路図:LED Game for AVR の LED 上側に緑LED用の信号が来てるので、ココに丸ピンソケットをつけました。このソケットにピンヘッダで子基板を接続する形で作成。配線はあまりキレイではないけどもとりあえずは動きました。:-)緑LED点灯中(赤LEDも同時点灯)動いたのはいいのですが問題点があります。#3V動作させたからかもしれませんが... (^^;1. 赤 LED と緑 LED の輝度の差が大きい。2. 赤 LED と緑 LED を同一列で点灯させると緑 LED の輝度が大幅に落ちる。1については輝度が同じぐらいになるようカソード側に電流制限抵抗を付ければいいのかな。2についてはアノード側をドライブしてる74HC595のドライブ能力が4mAしかないので同時点灯するとかなり苦しいかも。バッファかますしかないか...いずれにせよ、根本的に対策するには LED Game for AVR の基板を改造せんとイカンようです。めんどくさいなぁ。(^^;;っちゅうことで、今日はこの辺で。--- 28:10 ---
February 23, 2007
コメント(2)
今日は少し早めで22時過ぎに帰宅した。が、子ども達はまだ起きてました。(^^; 嫁はん曰く「外遊びをしてないのでパワーが余ってる。」まぁ、布団に入ってしばらくするとスヤスヤ寝ましたが...---今日、マルツパーツ館WebShopで注文した ATmega168 他が着きました。まず、10MHzのセラミック発振子をつないでみたけどウンともスンとも動きません。この状態でライタから見えるかっちゅうと見えません。ライタのバッファ(74HC125)も交換してみたけどやっぱりダメ。っちゅうことで、どうも ATmega168 自体がおかしいようです。諦めて ATmega168 を交換。あらためてライタからプログラムをロードすると... ちゃんと書き込めました。実行もOK。うーむ、外した ATmega168 は復活できんのかなぁ。もったいない。で、こないだデバッグしたストップウォッチを動かしてみると2分越えで表示が乱れるバグはちゃんと直ってました。:-)この写真ではよう分からんけども下2桁(下段)はくるくるカウントしてます:ただ、計測時間誤差が大きいです。1分計ったらもうズレてるし... orz 基準クロックが内蔵発振器による 8MHz なので、環境条件で周波数がずれるようです。1/8[MHz] * 64(プリスケーラ) * 250(カウント) = 2[msec]のつもりで作ってますから、カウントを増減すると誤差を小さくできます。っちゅうことで、色々試すと 245 カウントで大体合うようになりました。このとき、1/f[MHz] * 64 * 245 = 2[msec]の関係が成り立つので、実際の発振周波数 f は 7.84MHz のようです。8ビットタイマを使ってるので 32kHz 程度の誤差がありますが...まぁ、遊びで使うならこんなもんでしょう(言い訳)。(^^;;#本気で時間計るなら外付け水晶でやるべきやし...--- 25:50 ---
February 21, 2007
コメント(0)
今日も仕事が盛り上がり帰宅は23時前やった。嫁はんと子ども達はスヤスヤ寝ていました。上の子どもがときどき咳してるのが気になりますが...---何かが壊れた(?) LED Game for AVR の補修をするために通販で部品を買おうと思って探してみました。秋葉原まで行くヒマが無いのと交通費が千円ぐらいかかるので送料がそれ以下ならあまり変わらんなぁ、っちゅうことで。で、たどり着いたのがマルツパーツ館WebShopです。色々売ってて目移りしてしまいます。(^^; ATmega168が525円、74HC125が115円なのでまぁこんなもんか... あとセラミック振動子(セラロック)とか緑色LED駆動用部品とか色々買ってしまいました。スマン > 嫁はん。(_o_)そのうち届いたら直してみます。セラロックで外部発振させて動けば一番安上がりな解決法っちゅうことになります。ヒューズビットを設定した覚えがないから期待薄ではありますが...--- 25:20 ---
February 19, 2007
コメント(0)
今日は朝から雨降りやった。下の子どもは水疱瘡なので連れて行けないので嫁はんと留守番。上の子どもを連れて日曜学校に行きました。天気予報では昼から晴れ、となってましたが、ホンマかいなっちゅう天気。でも、昼からホンマに晴れてきたのでオドロキです。---日曜学校から帰ってきて LED Game for AVR 用のストップウォッチのデバッグをしました。バグの原因はカウンタ値から分・秒・1/100秒の各桁を計算する部分でのキャストがうまくできてなかったことでした。uint8_t の変数は (uint32_t)でキャストしてたけど定数を (uint32_t) でキャストしてなかったのが原因?やろか... とにかくこの周辺のキャストがガチガチに固めればOKでした。デバッガ上では...デバッグ中に上の子どもが LED Game for AVR を色々いじってました。これは直接関係ないと思うんやけど、いざデバッグした hex ファイルをCOMポート経由のライタで LED Game for AVR 上の ATmega168 に書き込もうとしたら Device connection failed. と言われました。COMポート自体は TXD と RXD を直結するとエコーバックがあるので生きてる模様。ライタの出力もオシロとかがないのでよく分かりませんが出てるようです。そうすると ATmega168 自体が死んでるのか... 外付け水晶が無い状態でヒューズビットで外付け水晶を指定するとクロックが出ないので書き込みできないらしいのですが、そうなのか...とにかくライタ上のバッファICかAtmega168を交換するか、あるいは水晶を外付けしてみるかすれば状況はわかるはずですが... 部品の手持ちはないし、直せるのはしばらく先になりそうです。(T_T)--- 21:20 ---
February 18, 2007
コメント(0)
今日は出勤日やったけど定時に帰ってきた。下の子どもの水疱瘡はもうかさぶたになりかけです。症状は軽かったみたいです。もうちょっと様子を見んといかんけど...---LED Game for AVR 用にストップウォッチを作ってみました。VRAM転送(タイマ2)、キー入力(ピンチェンジ割込)は既にあるので時間のカウントを行うようにすればOK。ATmega168は内蔵8MHzで動いてるので、タイマ0のプリスケーラを1/64に設定して250カウントで比較一致割込がかかるようにしました。2ms周期で割込がかかるので、割込ハンドラ内でカウントして1/100秒単位表示の(よくある)ストップウォッチに仕上げます。16x16ドットなのでレイアウトは悩むところですが...動作は状態遷移図をメモ書きしてそれをステートマシンに実装するだけなので比較的楽チンでした。とりあえずは動いたのですが、特定の時刻を通過するときに画面がみだれます。うーむ、バグ。(^^;どうも各桁毎の数字フォント転送時に画面が乱れるのでポインタがあらぬところを指してると思われます。デバッガ(AVR Studio4)で追えば何とかなりそうやけど、今日はここまで。---楽天がメンテ中(27:00~28:00)やったので書きこめず、翌日記入の日記。--- 2/18 21:05 ---
February 17, 2007
コメント(0)
今日も仕事が盛り上がり帰宅は23時過ぎ。嫁はんが珍しく起きてました。下の子どもはやっぱり水疱瘡やったそうで... でも、いつも通り遊んで元気やったようです。症状は軽いのかな。---っちゅうことで、今日も LED Game for AVR 用にプログラムを作成中です。LED表示、タイマ割込、ピンチェンジ割込ときたら、とりあえずはストップウォッチを作ってみたくなりますわな。:-)数字フォントを表示するように適当な関数を作成し、表示を確認した段階です。テスト用にスイッチ入力でカウントアップできるようにしてありますが... まぁ、ここまで作ってあれば、あとは時間計測用のタイマ(Timer0?)を動かしてカウント値を表示するだけです。モードをつけるなら適当に状態遷移を考えんとイカンやろけども。今日はここまで。--- 27:00 ---
February 16, 2007
コメント(1)
LED Game for AVRのLED表示に使おうとしているタイマ2割込についてATmega168のページにあるデータシートで確認してみた。結果、分かったことは、設定レジスタ TCCR2A と TCCR2B で設定する項目は全然別物やっちゅうことです。Compare A と Compare B があるのでてっきりそれぞれの設定やと思い込んでました。やっぱりデータシートはチャンと見んとイカンね。(^^;;・TCCR2A の {WGM21,WGM20}={1,0} に設定(CTCモード)・TCCR2B の WGM22=0 とし、かつ下位2ビットでプリスケーラを設定・TIMSK2 の OCIE2ビットをセット(比較一致割込)・OCR2A に比較値をセット・割込ハンドラ ISR (TIMER2_COMPA_vect) を作成して、割込有効にすると正しく動くようです。---さて、今日はピンチェンジ割込を使ってボード上のスイッチの状態を読み取ってみました。色々設定をしてスイッチのつながってるポートの状態を読んでみたのですが... ピンチェンジ割込を使うとピンの状態が変化したときのみ割込がかかるので、スイッチを押しっぱなしにしてもエッジが検出されるだけなんですね。うーむ、使えるような使えないような... (^^;っちゅうことで今日はこの辺で。--- 26:50 ---
February 15, 2007
コメント(0)
今日も仕事が盛り上がり帰宅は22時半。昨日から LED Game for AVR を題材に AVR のプログラムを AVR Studio + WinAVR で作成しています。とりあえずは LED 表示部分を作ろうと赤/緑両対応の VRAM を実装し、ポートから LED に出力するまでを作成しました。1列転送の繰り返しですが... これでポートへの出力の仕方は大体理解できました。次に、タイマ割込で1列転送を実行しようと思って AVR Wiki の Timer0 のページ を参考に組んでみたのですが、うんともすんとも... (^^; 割込がかかってなさそうなのだけは分かるのですが何がイカンのやろ?やっぱりデータシートのタイマのとこをちゃんと読まんとアカンかなぁ。っちゅうことで、今日は挫折... もう寝ます。(^^;;--- 26:50 ---もうちょっと、と思ってやってみたら動きました。タイマ2を使ったんやけど、TIMER2_COMPA_vect ではダメで、TIMER2_COMPB_vect で割込ハンドラを作ったらOKでした。A と B の違いをデータシートで確認しておかないと...今度こそ寝ます。(^^;;;--- 27:20 ---
February 14, 2007
コメント(0)
今日は少し早めに帰ったので子ども達が起きてる姿を見ることができた。で、色々あって子ども達が寝たのは結局22時過ぎでした。もう少し早く寝かさんとイカンなぁ... (^^;---明日は休みなのでストロベリー・リナックスで買ったLED Game for AVR+おまけをようやく作ることができました。久しぶりにハンダ付けしたら仕上がりが... ハンダの濡れ具合もイマイチじゃ。(^^;; スルーホールにハンダが結構吸われますなぁ(言い訳)。まぁ、無事に動いたからヨシとするか... デモプログラム動作中(余ってた圧電ブザーを付けてみた):あと、おまけで付いてきたAVR ライターも作りました。RS232Cケーブルで ThinkPad390X(1号機)と接続することになるのでケーブルを探してきたらメス-メスのケーブルでした。必要なのはメス(PC)-オス(AVRライター)なんやけど... (^^; 仕方がないのでフラットケーブルをばらして両端をハンダあげした治具(?)を作成してコネクタとケーブルを接続しました。LED Game for AVR に AVR ライタを接続(ケーブル治具がしょぼい...(^^):このAVRライタはChaNさんのAVRライタ(COMポート制御)と互換だそうで、ライタプログラムとしてはWin32版ライタ制御ツール for Windows9X/Me/NT/2k/Xpを使うそうです。これを展開して avrsp.exe と avrsp.ini をパスの通ったところに置きました。で、開発元の(有)ニコのページにサンプルがいくつかあったのでダウンロードして書き込みのテストを行ったところOK。このAVRライタ、ボード上のスイッチで書き込みモードと実行モードを切り替えられるので便利です。っちゅうことでハードは完成したので、ソフトでハードを叩くやり方をお勉強しなくては... :-)--- 28:15 ---
February 9, 2007
コメント(0)
今日はそれなりに盛り上がり帰宅は22時半。下の子どもがナカナカ寝なかったようで、嫁はんはまだ起きてました。「今日、代引の荷物が届いたけど、壊れてないか見てくれ言われたし開けたで。」おお、それはこないだ頼んだLED Game for AVR+おまけですな。っちゅうことで、無事に LED Game for AVR キットが到着しました。部材の他は小さい紙が1枚入ってるだけ。開発元の(有)ニコの組み立て方法のページを見て作ってね、っちゅうことらしいです。このページ、分かりやすく書いてありますね。今日はもう遅いのでキットの製作は諦めて、ThinkPad390XのWindows98側で開発環境の整備をしました。ワンチップマイコン系の開発環境はどうなってるかよう知らんかったのですが、調べてみると、ほよログ新館2006/05/22のエントリに「AVRStudio+WinAVRでC言語開発環境をつくる」っちゅうのがあったので、・WinAVR・AVR Studioをダウンロードしてインストールしてみました。WinAVR は Release:20070122、AVR Studio は 4.12 (build 460)でサービスパック Service Pack 4 (build 498) をあてました。デモプログラムを適当なディレクトリに展開し、AVR Studio を起動してプロジェクトファイル test.aps を読みこむと... おお、ちゃんとした開発環境やん。これがフリーとはスゴイ!でも、Build しようとしたら、avr-gcc.exe: _spawnv: No such file or directoryとエラーが出て進みません... (^^; 何でか調べてみよう。--- 25:15 ---どうも、AVR Freaks のこのスレッドによると、Windows98 上で WinAVR Release 20070122 を動かそうとすると上記エラーになるようです。っちゅうことで、Release 20060421 に入替中...--- 26:05 ---WinAVR Release 20060421 + AVR Studio 4.12 SP4 なら Windows98 上でも上記エラー無しでビルドできました。むー。--- 26:15 ---
February 7, 2007
コメント(0)
ようやく第7日目を読破した。(^^; 1週間分読むのに1ヶ月以上かかってるけど、毎日帰りが遅いとこんなもんやろ。と割り切ってみる。(^^;;っちゅうことで、第7日目の残りはマウスの初期化(harib04f)とマウス割込ハンドラの修正(harib04g)です。マウスコントローラっちゅうのはキーボードコントローラに内蔵されているらしい。8042互換っちゅうのがそうみたいやけど、単体チップとしては検索でうまく引っかかりません。枯れてるのでインターフェースチップの機能の一部として実装されてるのかな?まぁ、そういうのは置いといて(^^)、1. キーボードコントローラをマウスを利用するように設定する。2. キーボードコントローラを解してマウスコントローラにマウス有効化コマンドを送信する。という手順を踏めば、マウスが初期化され、割込が来るようになりました。次はマウス割込ハンドラの修正です。ハンドラ内での処理として、・IRQ12受付完了をPIC1(スレーブ)に通知し、かつ、・IRQ02受付完了をPIC2(マスター)に通知する必要がある、っちゅうのが注意点なのかな? あとは、キーボードと大体同じ。マウス割込のデータはキーボードと同様に FIFO で受けます。データをもらいにいくポートはキーボードと同じです。ふむふむ、マウスも割と簡単に扱えるんやね。harib04gのソースと今まで自分が改造してた部分の整合をとって Vine Linux 3.2 + wine 上で make install。Satellite300CT 上で試してみました。確かに p.155 にも書いてあるように、マウス(Satellite300CTのアキュポイント)の場合はちょっと動かした場合でもデータがいっぱい送られてくるようです。でも、FIFOが溢れるほどではないみたい。第8日目ではマウスからのデータを解読(?)してマウスカーソルを動かすような。楽しみやけど、いつ読めることやら... (^^;--- 26:25 ---
May 1, 2006
コメント(0)
昨日、キーバッファ用のリングバッファをいじくったので動作確認をした。画面に Read/Write 位置と取得データ、バッファ残り量、使用量を表示しつつ確認しました。・Vine Linux 3.2 + QEMU だとキー入力が溜まる(Write位置が先行する)ことがある(動作はいじくった後のソースでもOK)・実機(Satellite300CT)だとかなり高速にガチャガチャ打鍵してもキー入力が溜まることはなかったこの結果から、実機だとキーバッファに溜まることはほとんどないのでは? っちゅう感触です。あと、QEMU上でキー入力が溜まったときにデータの順番が入れ替わることがあるようなんやけど、これは正常動作なんかなぁ?? (オリジナルの fifo.c でも再現したしなぁ...)っちゅうことで、今日は続きを読まずに終了。相変わらず非常にノロイ進行です。(^^;--- 25:15 ---
April 29, 2006
コメント(0)
今日も少しだけ OS自作本を読んだ。第6日目で単純な割込ハンドラを作ったので、第7日目ではそのハンドラを改良します。まずはキーボード割込ハンドラを改良っちゅうことでキーバッファを実装。第1節(harib04a)では割込ハンドラ内で、・キーコード取得・取得キーコードの表示をやってます。割込処理は短いほど別の割込の取りこぼしが少ないので、取得したキーコードをバッファ変数に溜めるだけの簡単なハンドラにしています(harib04b)。残りの処理はメインのループ内で行う、と。ここからはキーバッファの改良が続きます。・FIFOバッファにする(harib04c)。・Write/Read位置を持ったリングバッファにする(harib04d)。っちゅうことで、Write位置をRead位置が追いかけるリングバッファタイプのFIFO(?)が落としどころになってます。確かにそうやな... p.145~p.146に書いてあるイラストが非常に分かりやすいです。最終的に(harib04e)でfifo.cにまとめてます。FIFOの構造体(FIFO8)では空き容量を表すメンバ(free)を使ってるけど、Write位置とRead位置が分かってれば無くてもよい気がします。っちゅうことで、free 使わずに書いてみたけど、とりあえずは動いてるようです。まぁ、ここで無理する必要はないんやけど... (^^;あと、Vine Linux 3.2 + wine 上で make run すると QEMU が Vine のキーバインドにだまされるのか、左 Ctrl キーが OS自作本に書いてあるのと違うキーコードを返してきました。make installして Satellite300CT で試すとOS自作本の通りでした。やっぱり、最後は実機確認やね。っちゅうことで、今日は終わり。寝ます。--- 27:20 ---
April 28, 2006
コメント(0)
だいぶ間があいて忘れそうなのでOS自作本第6日目の残りを読んだ。残ってる部分は割込コントローラの設定(第5節)と割込ハンドラの作成(第6節)です。割込コントローラ(PIC:Programable Interrupt Controllerについてのメモ書きをしておきます。#PICではないのね。:-)・マスタPICのIRQ2はスレーブPICにつながっている→マスタ/スレーブ併せて15個の割込(IRQ2以外のIRQ0~IRQ15)が扱える。・PIC内には下記の8ビットレジスタがある。 - IMR(Interrupt Mask Register):割込をマスクするためのレジスタ(1の立ってるビットに対応する割込は禁止される) - ICW(Initial Control Word):初期化ワード(ICW1~ICW4)・マスタPICのICW3中、スレーブPICの接続されているビット位置に1を立てる(2進数で00000100 = 1
April 26, 2006
コメント(0)
今夜は洗濯待ちの間にOS自作本を読んだ。昨日のGDT/IDTの詳細が気になったので読みました。GDTの説明の前にソースファイルの分割の話が書いてあったんやけど、harib03cの中のファイルで確認しました。昨日までの自分なりの書換を一応反映してテスト。Makefileも Vine Linux 3.2 + wine 用に書き換えればチャンと動きました。ヨシヨシ。さて、問題の GDT 関連の説明です。まずはnaskfunc.nas中の_load_gdtrの説明です。GDTレジスタ(48ビット長)に値を代入するにはLGDTっちゅう専用命令が必要で、代入する48ビット値はメモリアドレスで指定するそうな。で、Cから呼んだときの引数がスタックに積まれてるので、ちょっとトリッキー(?)なことをしてこの48ビットを作ってるようです(下図参照)。GDTレジスタに代入するのは、・セグメント情報テーブルの開始アドレス(ここでは 0x270000)・セグメント情報のサイズ(バイト数)-1(ここでは 0xffff)だそうな。セグメント情報そのものは、・セグメントサイズ(limit(L):16ビット+limit(H):4ビット→合計20ビット)・セグメント開始アドレス(base(L):16ビット+base(M):8ビット+base(H):8ビット→合計32ビット・セグメント管理属性(a.r.12ビット)という構成で、構造体SEGMENT_DESCRIPTORで定義される順番で格納されるようです。これを図示すると、こんな感じやと思います。合ってるかな?? (^^;セグメント情報中の管理属性については更に説明がありました(p.126)。何だか色々あるようですが、bootpack.hrb用の管理属性はAR_CODE32_ER(=0x409a)なので、セグメントモード(D)=1、システム専用の実行可能なセグメント、っちゅう設定になるようです。これで、だいぶスッキリした気分。:-)--- 27:15 ---
April 19, 2006
コメント(0)
1週間振りにOS自作本を読んだ。今日も牛歩だが... (^^;まずは表示系の残り課題であるマウスカーソル表示をやってみました。マウスカーソル用の構造体を定義して作成してみたけど、これは後々めんどくさいことになるのかな? 引数がいっぱいにならんように、と思ったけど、関数内で使うときに -> でメンバを参照するから結局記述が多くなってるような気もします。(^^;まぁ、マウスカーソルは置いといて、セグメントのテーブルGDT(Global segment Description Table)と割込のテーブルIDT(Interrupt Description Table)がヤマらしいので読んでみます。割込ベクタテーブルは何となく馴染みがあるけど(何でや(^^))、セグメントのテーブルは初めてです。メモリ上にセグメントを定義するテーブル、っちゅうことのようです。セグメント定義には、・セグメントサイズ・セグメントの開始アドレス・セグメントの管理属性が必要だそうな。割込テーブルも同じようなもんを定義するんやろうけど、第5日目第9節(harib02i)のbootpack.cにはセグメント定義用の構造体(SEGMENT_DESCRIPTOR)と割込定義用の構造体(GATE_DESCRIPTOR)が示されてるだけであまり詳しい説明はありません。とりあえずは雰囲気だけ?? 何がやりたいかは分かったからヨシとするか...#第6日目をちらっと先読みしたら詳細が書いてあるようです。っちゅうことで、ようやく第5日目を読破。相変わらずのノロノロ運転です。(^^; 第6日目が楽しみやけど、いつ読めるかなぁ。--- 25:20 ---
April 18, 2006
コメント(0)
久しぶりにOS自作本を読んだ。だいぶ間があきました。(^^; 今日もそんなにたくさんは読めませんでした。前回は第5節をちょっと読んで、フォントファイルをカウンターOS(似非・宮島達男・OS風を改名)用に作成するツールを作ろうと思ったところで止まってましたが、結局そのツールは先送りで読み進めます。適当な時点で作ろう。っちゅうことで、今日は文字列表示関数の作成です(第6節)。文字列がヌル文字(0x00)で終わるのを利用して、文字列先頭ポインタ(文字列先頭アドレス)からヌル文字までをループして表示させる関数 putfont8_asc()を作成。おお、確かに表示されるわん。なるほど。で、次(第7節)で変数値の表示の仕方を考えます。ここでは、sprintf()を利用して変数値をフォーマット変換した文字列を作成し、その文字列を第6節で作ったputfont8_asc()で表示する、としています。ふむふむ、そう考えるとヤヤコシイ機能の関数は不要になるか...読んだだけやと身に付かんので、適当に書き換えてみました。init_palette()などの関数引数をBOOTINFO 構造体のポインタ渡しに変えてみたり。今日、ハマったのは自分で書き換えた部分のバグ。(^^; putfont8_asc(...と書くべきところを、putfont_asc(...と書いてたのが原因です。make したときの警告メッセージ、warning: implicit declaration of function `putfonts_asc'に気付かず、あれこれハマってしまいました。この警告が出た状態でもコンパイル・リンクして実行はできます。Vine Linux 3.2 + wine 上で make run すると、変なアドレスへ飛んでしまうのか画面がチラチラして動作が変でした。make install してメイン(ThinkPad A21m)上の VMware Player で実行しても結果は同じでした。まぁ、自分で仕込んだバグなんやからしゃーないか... (^^;;今日の教訓:make時の警告メッセージをちゃんと読もう(^^;っちゅうことで、今日はここまで。--- 26:30 ---
April 12, 2006
コメント(0)
全211件 (211件中 151-200件目)