CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

表示器

セグメント切れ

14セグメントディスプレーはアルファニューメリック書体で英字の表示もできるので一通り出してみます ”ABCDEFGH” これはきれいに出ています。HEX表示するときもA~Fが出ればOKです ”IJKLMNOP” むむっ?何かおかしい・・「N」は斜め線が出ていません ”QRSTUVW…

VFDドライブ

VFDを制御するファームをPICに書き込みました。8桁をダイナミックドライブするためにステートマシンを組み、タイマ割込みごとにインクリメントするカウンタのmod8の値で桁指定、その桁に表示するセグメント情報を出力するようにします 割込み周期をどれくら…

部品取付け完了

VFD制御基板の部品取付けほぼ完了しました。基板表側にVFD、裏側に電源基板が付きますがお互いにハンダ個所の上に被ってしまい、両方直付けしようとすると破綻するのでVFDは交換も考えソケットで実装することにします ところでここで少し方針転換。この基板…

VFD制御基板

寄せ集め基板から切り出したVFD制御基板にも部品付け始めました コントローラにPIC18F4550を載せていて外部からUART/SPI/I2Cで制御するようにしてみました QFPの実装ですが0.8mmピッチでTMP92CM22の0.5mmに比べると格段に楽ちん。ハンダ付けの練習のつもりで…

VFD電源

寄せ集め基板は到着したあと放置してましたがやっと開封しました。こちらは普通の緑色レジストです。表示器のバックになるので黒色レジストにしてみようかとも思ったのですが、製造仕様によると黒はどうもカーボンが含まれるようで絶縁抵抗が高くないとのこ…

寄せ集め基板

今回発注した基板で次回使えるクーポンが送られてきたのですが特にネタがないので、また死蔵在庫を消費するだけのあまり意味のない基板を画策してます。 汎用的に使えそうな表示関連の基板を100×100mmに収まるように数種詰め込みました。 上段左側:蛍光表示…

テレワーク用マウス(2)

基板の電源をUSBから得るようにして、マウスもボール式のもう古いものなので分解して内部基板を取り出し、まとめてケースに入れました。 基板の固定方法が雑ですけど。 USBハブにマウスを複数個つないでもそれぞれちゃんと動作するということに最近気づきま…

7セグデコーダ

沖のロジックファミリMSM5xxシリーズに含まれるBCD-7セグメントデコーダMSM561を入手しました。「7」の書体をみてみたいので。 それにしても沖電気のデータシートって全然出てこないのです。事業を引き継いだラピスセミコンダクタが生産した部品の情報はあり…

電子ルーレット

寄せ集め基板の4枚目を組み立ててみました。 昔懐かしの電子工作によくあった電子ルーレットみたいなものです。作例で10進カウンタ7490+10進デコーダ7442の組合わせをよく見かけましたがここでは16進カウンタ74393と4-16デコーダ74154で16個のLEDを回転させ…

テレワーク用マウス

最近7セグLEDの工作をいくつかしてましたが、手持ちで7セグが付いたPIC基板があったのでこんなものを作ってみました。 ここのところ在宅勤務が多いのですが、貸与されたPCは操作状況を見ていて一定時間キーボードに触らないと在席→離席→不在とステータスが変…

4桁カウンタ

ごちゃまぜ基板の3枚目、4桁カウンタ基板も組み立ててみました。これもいくつもあるTC5001を消費するだけの基板です。 部品配置はこのような感じ。抵抗の部品番号のシルクを置く場所がないので部品の真下にしちゃってます。こういう組み立てっぱなしの電子…

1桁カウンタ

ADSP2Kプロジェクトを少し冷却中のため、ごちゃ混ぜ基板の2枚目を気分転換で作ってみました。 搭載部品はこれだけ。 古くてちょっとレアなTTL、SN74143(10進カウンタ+ラッチ+7セグデコーダ)を動かしたいだけの基板です。8ピンPICは単に1Hzのパルスを出す…

パラレルモニタ

すでに着荷しているNSC800ボード、MC14500ボードを差し置いて直近で来た寄せ集めボードを開封してしまいました。 簡単な回路だけなのですがいざ着手するといろいろやらかしています (1)切離しが大変 シルクで入れた切断線に沿ってPカッタで筋を入れていく…

基板到着

死蔵デバイスを使うだけの基板が出来上がりました。これも発注してからちょうど2週間。でも荷物追跡ができたのは国内に入った2日前からで前回と同じです。 クーポンを使って発注したのに、これにまたクーポンが送られてきました。 これって無限豆苗地獄か?…

7セグ基板

fusionPCBに発注したMC14500基板の発送連絡はきましたが追跡できないまま一週間。着いてレビュー書いてくれたらクーポン進呈するよとメールが来ましたが着かないものしょうがないので放置していたら$5のクーポンが先に送られてきました。これ30日しか有効で…

7セグLED

某パーツ店の閉店セールに乗せられて一生かかっても使い切れないくらいの7セグLEDを買ってしまいました。さてどうしたものか。 100桁の10進カウンタを物理的に作ることはできますがそれを10MHzで駆動したとして人類が滅亡し、太陽が燃え尽き、宇宙が蒸発し…

省電力化

消費電流を少なくするため内部クロックを低下させていくと割込みが歯抜けしたり、突然リセットがかかる といった不具合がありましたが原因がわかりました。 割り込みインターバル2秒の間にtime_t型変数を表示データに展開するという処理が結構重く、 動作ク…

ピン機能設定トラブル(2)

プログラムを最小構成になるようにどんどん削っていきながら原因を調べているうちわかったのがこれ。 ブザーやリレーを制御するポートのON/OFFをコーディング上わかりやすいように 途中から「ON」と「OFF」というマクロを定義し、ヘッダファイルに追加…

ピン機能設定トラブル

新しい開発環境でコンパイル→プログラムがシームレスにできるようになり、 時刻合わせ、アラーム設定などの機能を追加しています。 ところがプログラムが少しづつ大きくなったある時点から、実行時に下のように一部のセグメントが 常時点灯したままになる現…

PICKIT3導入

PICの開発統合環境をMPLABXver1.50、プログラマをPICKIT3に移行しました。 これで16F1939も含め、最新のデバイスにも対応できることになりましたが このPICKIT3、どうも動きがいまひとつです。 1.統合環境からのリセット、リセット解除のレ…

ケースに組込み

動作も順調なのでケースに入れてみました。 手元にあった透明アクリルケースSK-16(110x80x33mm)がちょうど良さそうです。 というか高さが2個並べて入れると計ったかのようにぴったりなので、もう1組基板を組み立ててしまいました。 上が…

省電力化

消費電流を抑えるいくつかの手立てを行いました まず、システムクロックの低速化です うまくいけば計時用水晶のクロックを流用し32.768kHzまで落とせると思っていたのですが 低すぎると割込みに歯抜けが起きて時刻遅れが出てくることがわかり、とりあえず内…

消費電流

計時の遅れは良く良く考えると、負荷容量による水晶発振の周波数ずれではここまでにはなるわけがなく 単に割込み処理のコーディングミスだったようです。 タイマ1でちょうど1秒のタイムアウトで割込みを発生させ、その後、LCD画面の更新をおこなってから カ…

計時精度

昨日の17時に時刻を合わせて再起動してから24時間経ちました 結果がこれ なんと20分も遅れてます 数十秒の誤差であればタイマの設定値で補正してしまおうと思っていましたが、これは酷すぎです。 実は理由は判っていて、たぶん水晶振動子に付けた負荷容量6…

時計機能組込み

LCDに数字表示が出るようになったので時計としての機能を入れてみます RTCを積んでいればデータを読み取るだけですが、ここでは自前で時刻カウントを行います。 といっても標準ライブラリに時間関係の処理関数が含まれているので、これを使えば簡単です。 ま…

表示データデコード

7セグメントLEDのダイナミックドライブだと1個の7セグメントデコーダを各桁で使い回しできますがこのLCDパネルは桁によってアサインされているバックプレーンとセグメントがバラバラでLEDのように単純ではありません。 またLCDパネルからPICへの配線引き回…

電源電圧ミス?

ここまでくればセグメントデータレジスタLCDDATAnに適当なデータをセットすれば表示ができるはずで、右端の桁に「0」を表示したところです。 くっきりと表示され、先ずは成功です。 ここまで何気なしに電源電圧5Vでデバッグしていて、完成したらリチウム電…

LCD接続

基板にLCD板を取り付けました 透過型なので基板表面がすけすけです。 これでは表示が出ても見えにくいのでとりあえず、背景用に白い紙を挟んでおきます 横から見た様子です。 LCD板がかぶって電池の交換がしずらそう。基板の半田面にLCDが付くように設計す…

LCDドライブ波形

各レジスタへの初期設定が行われるとバックプレーン、セグメントへドライブ信号が出力されます セグメントを1つだけ点灯するようにデータをセットしたときの波形です ch.1 バックプレーンCOM1出力 ch.2 セグメントSEG0出力 シミュレーションでみたのと…

動作確認

ソケットに16F1939を差し込み、ハードの確認を始めました。 この段階になってわかったのですが16F1939を含む16F新シリーズではMPLABからデバッグやダウンロードを行う場合、pickit2はもうサポートしないようです。 しかたがないのでpickit…