SSブログ
English Version

TL866II アダプタのスイッチ交換と半田吸取器 [その他]

 「SuperSimpleController(その4)ALUの検討」の記事で書いたように低価格で多機能なROM WriterのTL866II Plusで27C4096(256K x 16bit)より大きなROM(42ピン)を書き込む際はアダプタを使っています。

TL866II Plusでアダプタを使ったM27C322書込み状況



 しかし、このアダプタは下の写真のようにDipスイッチが上側でON(='0'の状態)になるため、スイッチ左側にあるシルク印刷の内容"1/0"と矛盾するので1/0を頭の中で反転して設定する必要がありました。

TL866用アダプタの問題点



 Dipスイッチを単純に180度回転して付け直すとスイッチ番号の順番とスイッチの下にシルク印刷してあるアドレス番号の順番が逆になってしまうので違和感が出てしまいます。
 そこでAlliexpressで適当なスイッチを探して購入しました。このスイッチは下側でON(='0'の状態)なのでシルク印刷の内容と一致し以前のように設定時に脳内で反転する手間が不要になります。

交換用のDipスイッチ



 交換後の状態が下の写真です。スイッチは下側が'0'の方が直感的にも違和感がなく、操作し易くなりました。
 操作方法はなるべく直感に即した方がミスの発生確率が低くなるからねぇ^^

スイッチ交換後のアダプタ



 また、twitterのTLで見かけたシリコンチューブ付き半田吸取器の真似をするためにAlliexpressで注文していたシリコンチューブが届いていたので従来から使っている半田吸取器の先端に付けて、今回のスイッチ交換作業で使ってみました。

届いたシリコンチューブ



シリコンチューブを付けた半田吸取器



 使用した感想としては、吸引した半田くずを出し辛くなる(最悪、ピンセットでつまむと取り出せる)けど、吸引時に密閉されるので吸引力は結構アップします。
 半田ごてのこて先が隙間なく入るようにシリコンチューブの先端にスリットを入れることで更に使い易くなりました。

先端の拡大



nice!(0)  コメント(2) 
共通テーマ:趣味・カルチャー

SuperSimpleController(その17)TMS9918Aの接続 その2 [OriginalCPU]

 前回の記事でMSXで使われていたVDP(TMS9918A)を使って自作CPU(Simple8Z)でHello表示できたことを書きましたが、ブレッドボードでは動作が不安定なのでプリント基板化してみることにしました。

 前回の記事の末尾に追記したようにVRAMに4bitのDRAMを使う場合は後続のTMS9118を使った方が回路が簡略化できますが、TMS9918Aに4bitのDRAMを接続した例がネット上では見つからなかったので今回は敢えてTMS9918Aを使うことにします。また、TMS9118は値段が高いのでTMS9918を使った方がチップ数は増えても費用は安くなります。

 MC68B50を使ったシリアルインターフェースを追加しても10cm角の基板では余裕があるので、MSXで使われていたPSG(AY-3-8910)もついでに実装することにしました。

 下図がAlliexpressで購入した単価¥65のPSGです。見るからに再生品(特に一番上のものは左側の丸い窪みが無くなっている)ですが、果たして動作するのでしょうか?
 中華製の廉価なAY-3-8910はYM2149のリマーク品が多いという情報を見つけました(CHEAP “AY-3-8910” ARE ACTUALLY YM2149’S)が互換チップのYM2149には若干機能追加がなされているようです(なのでYM2149だとしても困らないはずです)。

海外通販で購入した PSG(AY-3-8910)



 DRAMも追加購入したので写真を貼っておきます。複数種類のマーキングのものが混在していて、一番右のもの以外はピンも広がっていたので再生品ではないようです。

海外通販で購入した 64K x 4bitのDRAM(D41464)



 いつもはブレッドボードで確認してからプリント基板化するのですが、今回はPSG部分はブレッドボードでの検証無しにプリント基板化してみます。
 作成した回路図が下記になります。SIMPLE8のインターフェースで制御可能なVDPとPSGを実装しているのでボード名称をSimple8VDPSGとしました(上述のようにシリアルインターフェースも実装しています)。

★追記 2021/08/29 {
 「SuperSimpleController(その23)VDPSG基板の改版」の記事に修正した回路図とパターン図を記載しました。
}

Simple8VDPSGボードの回路図


 今回は12チップ構成ですが小ぶりのチップが多いのでパターン設計は前回のCPU本体よりはかなり楽でした。
 グランドベタ化前のパターン図を下図に示します。左上のDRAM部分はパターンが結構込み入っています。

トップ及びボトム両面のパターン(グランドベタ化前)



 グランドベタ化後のトップ及びボトムのパターンが下図になります。

Simple8VDPSGボードのトップ面パターン



Simple8VDPSGボードのボトム面パターン



 3D表示したものも貼っておきます。

Simple8VDPSGボードの3D表示




★追記 2021/05/28
 使用しているCADはDesignSparkPCB 8.1.2ですがシルク印刷の位置が拡大率によってズレる現象が発生したのでサンプルを貼っておきます。
 フォントは「MS UI Gothic」を使用しています。

拡大時は'G'が右端のピンの上で問題無し 縮小表示時にずれた表示例






[TOP] [ 前へ ] 連載記事 [ 次へ ]

nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー

SuperSimpleController(その16)TMS9918Aの接続 [OriginalCPU]

 前回の記事ではオリジナルCPU(Simple8Z)での整数演算処理と逆ポーランド式電卓の作成について書きましたが、TeraTermの画面で処理するだけではあまり面白くないのでグラフィック画面を表示できるようにしたいと思います。

 グラフィック表示機能をTTLで作るのも面白そうではありますが、今回はいにしえのMSXで使われていたTMS9918Aという画面表示プロセッサ(VDP)を使うことにします。
 当時は16KB x 1bitのDRAM(4116)を8個付けるのが標準的な回路でした(TMS9918のデータシートにも4116の接続例が書いてありますし、Video Display Processorのサイトの「RAM interface」の箇所には具体的な接続が書いてあり参考になります)
 また、ネット上ではRASとCAS信号で多重化されたアドレス信号を574等で分離することでSRAMを接続する回路例も見つかります。

 SRAMを使うためにラッチのICを2つ使うよりも手持ちのuPD41464(64KB x 4bitのDRAM)を使えたら、より簡略な回路にできるのではないかと考えて挑戦してみました。一応ネットでも探してみましたがTMS9918に4BITのDRAMを接続した回路は見つかりませんでした。

 今回は自作のオリジナルCPU(Simple8Z)でコントロールするのでVDP周りは既知の実績のある回路を採用した方が断然楽なのですが、敢えて未踏の構成に挑戦するのは趣味としての醍醐味でもあります。

 始めにTMS9918Aのデータシートに記載されているVRAMのリード/ライト時の信号タイミング図を下図に示します。

TMS9918AのVRAMリードサイクル



TMS9918AのVRAMライトサイクル



 リード/ライト制御信号が1つの信号なのは6116自体がデータ入力とデータ出力のピンが別々でリード専用の制御信号が無いためです。今回使用する41464のデータピンは一つで双方向になっていてリード(OE/)とライト(WE/)の制御信号が必要です。

 41464のデータシートに記載されているリード及びライトのタイミング図を貼っておきます。ライトサイクルにはEarly Write CycleとOE-controlled Write Cycleの二通りありますが、今回採用した後者のみを貼りました。

41464のリードサイクル



41464のライトサイクル(OE-controlled Write Cycle)



 TMS9918Aと41464のタイミングを見比べてみるとリードサイクルはまぁいいとしてもライト時にはOE/がアクティブにならないようにする必要があります。これはCASを一定時間ディレーした信号を作り、リード信号(ライト信号を反転したもの)とANDをとることでライト時にOE/がアクティブにならないようにしました(その他、NOTゲートを使ったタイミング調整等も行い、DRAMをアクセスできるようになりました)。

 また、ライト時にはライトデータがアドレス線と同じバス(ADn)に多重化されて出力されるので3ステートのバッファを介して41464のデータピンに接続しました。下図のMRW/信号はTMS9918Aから出力されるR/W信号です。

TMS9918Aからのライトデータのバッファリング



 具体的な回路図については動作確認後に別途ブログに記載する予定です。
 現時点での41464への制御信号の実測例を下図に示します。
 1:RAS/、2:CAS/、3:WE/、4:OE/ の信号で、中央部分がライトサイクルでその前後がリードサイクルです。

DRAM(41464)の制御信号波形例



 TMS9918Aのグラフィック1(モード0)を使って動作確認を行っています。VRAMのマッピングはMSXのSCREEN1に合わせました。

VRAMのマッピング
 PCGAD	EQU	0000H		; 0000 - 07FF : pattern generater table 
 VRAMAD	EQU	1800H		; 1800 - 1AFF : pattern name table
 SATRAD	EQU	1B00H		; 1B00 - 1B7F : sprite attribute
 COLTAD	EQU	2000H		; 2000 - 201F : color table
 SPATAD	EQU	3800H		; 3800 - 3FFF : sprite pattern


 色々いじくり回した結果、オリジナルCPU(Simple8Z)を使ってやっとHelloが表示できました^^/
 ビデオ出力部はTMS9918Aのデータシートに書いてあるように330Ωでプルダウンしただけですが、トランジスタ回路にするともっと綺麗になるかもしれません。

 下図はHello表示した際にNTSC信号をキャプチャしたもので記念に貼っておきます(手持ちの安いLCD式の小型モニタでも表示できました)。

Hello表示画面



 上記の内容はブレッドボードを使って評価中で、オリジナルCPUのI/O拡張用コネクタピンから信号線を取り出し、ブレッドボードに接続しています。ブレッドボード上にはモニタを動かすためにMC68B50を使ったシリアルインターフェースも組み込んでいます。

 いつもながらに混沌としていますがブレッドボードと接続した写真も貼っておきます。
 今のところ、オリジナルCPU側のマイクロコードの修正等は発生していません。

ブレッドボードでの評価状況




★追記 2021/05/15
 TMS9918のバリエーションとして4BitのDRAMに対応したTMS9118があります。
 VRAMのライトサイクルのタイミングが下図のようになっていてW/信号がCAS/より前にアクティブになるので、そのままでDRAMの Early Write Cycle に対応できます。
 また、ライトデータがアドレス線に多重化されていないので上記のTMS9918Aのようなバッファリングも不要になります。

TMS9118のVRAMライトサイクル




[TOP] [ 前へ ] 連載記事 [ 次へ ]
nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー

半田ケースキャップの修理 [3D_printer]

 ずっと前(学生の頃)から使っていた半田ケース(糸半田購入時のケースそのもの)のキャップに亀裂が入ってしまいました。
 購入から何十年も経っていますが、いまだに値札までついていますw

 長年使っていて愛着もあるので、接着剤を使って修理しようとしましたがビニール系の素材なので接着剤では中々くっつきません・・・

破損した半田ケースのキャップ



 このキャップは本体にネジ構造で結合していてこの部分がめんどうそうだったので暫く放って置いたのですが久々に3Dプリンタを使いたくなり夜中に採寸してCADに入れてみました。
 使用した DesignSpakMechanical には任意の面をらせん状に押し出す機能もあり、ネジ部分もあっさり作成できました。

キャップの構造(CAD)



 3Dプリンタは静音化済みなので夜中に出力してみたところ、ネジの部分もピッタリで、PETGのフィラメントを使ったので強度も十分にありそうです。

 1~2回の修正を予想していたのですが、予想に反して一発で完成です。

 3Dプリンタは素晴らしぃ^^

新調したキャップの半田ケース



★2021/05/01 追記
 キャップ部分の拡大写真を追加しました。

キャップ部分の拡大




nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー