TL866II アダプタのスイッチ交換と半田吸取器 [その他]
「SuperSimpleController(その4)ALUの検討」の記事で書いたように低価格で多機能なROM WriterのTL866II Plusで27C4096(256K x 16bit)より大きなROM(42ピン)を書き込む際はアダプタを使っています。
しかし、このアダプタは下の写真のようにDipスイッチが上側でON(='0'の状態)になるため、スイッチ左側にあるシルク印刷の内容"1/0"と矛盾するので1/0を頭の中で反転して設定する必要がありました。
Dipスイッチを単純に180度回転して付け直すとスイッチ番号の順番とスイッチの下にシルク印刷してあるアドレス番号の順番が逆になってしまうので違和感が出てしまいます。
そこでAliExpressで適当なスイッチを探して購入しました。このスイッチは下側でON(='0'の状態)なのでシルク印刷の内容と一致し以前のように設定時に脳内で反転する手間が不要になります。
交換後の状態が下の写真です。スイッチは下側が'0'の方が直感的にも違和感がなく、操作し易くなりました。
操作方法はなるべく直感に即した方がミスの発生確率が低くなるからねぇ^^
使用した感想としては、吸引した半田くずを出し辛くなる(最悪、ピンセットでつまむと取り出せる)けど、吸引時に密閉されるので吸引力は結構アップします。
半田ごてのこて先が隙間なく入るようにシリコンチューブの先端にスリットを入れることで更に使い易くなりました。
TL866II Plusでアダプタを使ったM27C322書込み状況 |
|
しかし、このアダプタは下の写真のようにDipスイッチが上側でON(='0'の状態)になるため、スイッチ左側にあるシルク印刷の内容"1/0"と矛盾するので1/0を頭の中で反転して設定する必要がありました。
TL866用アダプタの問題点 |
|
Dipスイッチを単純に180度回転して付け直すとスイッチ番号の順番とスイッチの下にシルク印刷してあるアドレス番号の順番が逆になってしまうので違和感が出てしまいます。
そこでAliExpressで適当なスイッチを探して購入しました。このスイッチは下側でON(='0'の状態)なのでシルク印刷の内容と一致し以前のように設定時に脳内で反転する手間が不要になります。
交換用のDipスイッチ |
|
交換後の状態が下の写真です。スイッチは下側が'0'の方が直感的にも違和感がなく、操作し易くなりました。
操作方法はなるべく直感に即した方がミスの発生確率が低くなるからねぇ^^
スイッチ交換後のアダプタ |
|
また、twitterのTLで見かけたシリコンチューブ付き半田吸取器の真似をするためにAliExpressで注文していたシリコンチューブが届いていたので従来から使っている半田吸取器の先端に付けて、今回のスイッチ交換作業で使ってみました。
届いたシリコンチューブ |
|
シリコンチューブを付けた半田吸取器 |
|
使用した感想としては、吸引した半田くずを出し辛くなる(最悪、ピンセットでつまむと取り出せる)けど、吸引時に密閉されるので吸引力は結構アップします。
半田ごてのこて先が隙間なく入るようにシリコンチューブの先端にスリットを入れることで更に使い易くなりました。
先端の拡大 |
|
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)もついでに実装することにしました。
下図がAliExpressで購入した単価¥65のPSGです。見るからに再生品(特に一番上のものは左側の丸い窪みが無くなっている)ですが、果たして動作するのでしょうか?
中華製の廉価なAY-3-8910はYM2149のリマーク品が多いという情報を見つけました(CHEAP “AY-3-8910” ARE ACTUALLY YM2149’S)が互換チップのYM2149には若干機能追加がなされているようです(なのでYM2149だとしても困らないはずです)。
DRAMも追加購入したので写真を貼っておきます。複数種類のマーキングのものが混在していて、一番右のもの以外はピンも広がっていたので再生品ではないようです。
いつもはブレッドボードで確認してからプリント基板化するのですが、今回はPSG部分はブレッドボードでの検証無しにプリント基板化してみます。
作成した回路図が下記になります。SIMPLE8のインターフェースで制御可能なVDPとPSGを実装しているのでボード名称をSimple8VDPSGとしました(上述のようにシリアルインターフェースも実装しています)。
★追記 2021/08/29 {
「SuperSimpleController(その23)VDPSG基板の改版」の記事に修正した回路図とパターン図を記載しました。
}
今回は12チップ構成ですが小ぶりのチップが多いのでパターン設計は前回のCPU本体よりはかなり楽でした。
グランドベタ化前のパターン図を下図に示します。左上のDRAM部分はパターンが結構込み入っています。
グランドベタ化後のトップ及びボトムのパターンが下図になります。
3D表示したものも貼っておきます。
★追記 2021/05/28
使用しているCADはDesignSparkPCB 8.1.2ですがシルク印刷の位置が拡大率によってズレる現象が発生したのでサンプルを貼っておきます。
フォントは「MS UI Gothic」を使用しています。
[TOP] [ 前へ ] 連載記事 [ 次へ ]
前回の記事の末尾に追記したようにVRAMに4bitのDRAMを使う場合は後継のTMS9118を使った方が回路が簡略化できますが、TMS9918Aに4bitのDRAMを接続した例がネット上では見つからなかったので今回は敢えてTMS9918Aを使うことにします。また、TMS9118は値段が高いのでTMS9918を使った方がチップ数は増えても費用は安くなります。
MC68B50を使ったシリアルインターフェースを追加しても10cm角の基板では余裕があるので、MSXで使われていたPSG(AY-3-8910)もついでに実装することにしました。
下図がAliExpressで購入した単価¥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] [ 前へ ] 連載記事 [ 次へ ]
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を接続する回路例も見つかります。
★追記 2021/11/10 {
TMS9918Aに接続される8個のDRAMをSRAM化する元情報と思われる資料を見つけたのでリンクを貼っておきます。今回の試みであるTMS9918での4bit DRAM対応は使用チップ数も少なく、自分的にはかなり面白い試みだと思います。
下記のリンク資料で最後の方にTMS91x8について言及されています。興味深いのはTMS9918用のSRAM化回路でDRAMへのライト時のデータバス切替え用のD-FF(74LS574)をソケットから抜けばTMS91x8に差し換えても動作すると書かれていることです。
そうであれば、今回開発している4bit DRAM化回路でも同じことが言えるはずです。}
SRAMを使うためにラッチのICを2つ使うよりも手持ちのuPD41464(64KB x 4bitのDRAM)を使えたら、より簡略な回路にできるのではないかと考えて挑戦してみました。一応ネットでも探してみましたがTMS9918に4BITのDRAMを接続した回路は見つかりませんでした。
今回は自作のオリジナルCPU(Simple8Z)でコントロールするのでVDP周りは既知の実績のある回路を採用した方が断然楽なのですが、敢えて未踏の構成に挑戦するというのは趣味としての醍醐味でもあります。
始めにTMS9918Aのデータシートに記載されているVRAMのリード/ライト時の信号タイミング図を下図に示します。
リード/ライト制御信号が1つの信号なのは6116自体がデータ入力とデータ出力のピンが別々でリード専用の制御信号が無いためです。今回使用する41464のデータピンは一つで双方向になっていてリード(OE/)とライト(WE/)の制御信号が必要です。
41464のデータシートに記載されているリード及びライトのタイミング図を貼っておきます。ライトサイクルにはEarly Write CycleとOE-controlled Write Cycleの二通りありますが、今回採用した後者のみを貼りました。
TMS9918Aと41464のタイミングを見比べてみるとリードサイクルはまぁいいとしてもライト時にはOE/がアクティブにならないようにする必要があります。これはCASを一定時間ディレーした信号を作り、リード信号(ライト信号を反転したもの)とANDをとることでライト時にOE/がアクティブにならないようにしました(その他、NOTゲートを使ったタイミング調整等も行い、DRAMをアクセスできるようになりました)。
また、ライト時にはライトデータがアドレス線と同じバス(ADn)に多重化されて出力されるので3ステートのバッファを介して41464のデータピンに接続しました。下図のMRW/信号はTMS9918Aから出力されるR/W信号です。
具体的な回路図については動作確認後に別途ブログに記載する予定です。
現時点での41464への制御信号の実測例を下図に示します。
1:RAS/、2:CAS/、3:WE/、4:OE/ の信号で、中央部分がライトサイクルでその前後がリードサイクルです。
TMS9918Aのグラフィック1(モード0)を使って動作確認を行っています。VRAMのマッピングはMSXのSCREEN1に合わせました。
色々いじくり回した結果、オリジナルCPU(Simple8Z)を使ってやっとHelloが表示できました^^/
ビデオ出力部はTMS9918Aのデータシートに書いてあるように330Ωでプルダウンしただけですが、トランジスタ回路にするともっと綺麗になるかもしれません。
下図はHello表示した際にNTSC信号をキャプチャしたもので記念に貼っておきます(手持ちの安いLCD式の小型モニタでも表示できました)。
上記の内容はブレッドボードを使って評価中で、オリジナルCPUのI/O拡張用コネクタピンから信号線を取り出し、ブレッドボードに接続しています。ブレッドボード上にはモニタを動かすためにMC68B50を使ったシリアルインターフェースも組み込んでいます。
いつもながらに混沌としていますがブレッドボードと接続した写真も貼っておきます。
今のところ、オリジナルCPU側のマイクロコードの修正等は発生していません。
★追記 2021/05/15
TMS9918のバリエーションとして4BitのDRAMに対応したTMS9118があります。
VRAMのライトサイクルのタイミングが下図のようになっていてW/信号がCAS/より前にアクティブになるので、そのままでDRAMの Early Write Cycle に対応できます。
また、ライトデータがアドレス線に多重化されていないので上記のTMS9918Aのようなバッファリングも不要になります。
[TOP] [ 前へ ] 連載記事 [ 次へ ]
グラフィック表示機能をTTLで作るのも面白そうではありますが、今回はいにしえのMSXで使われていたTMS9918Aという画面表示プロセッサ(VDP)を使うことにします。
当時は16KB x 1bitのDRAM(4116)を8個付けるのが標準的な回路でした(TMS9918のデータシートにも4116の接続例が書いてありますし、Video Display Processorのサイトの「RAM interface」の箇所には具体的な接続が書いてあり参考になります)
また、ネット上ではRASとCAS信号で多重化されたアドレス信号を574等で分離することでSRAMを接続する回路例も見つかります。
★追記 2021/11/10 {
TMS9918Aに接続される8個のDRAMをSRAM化する元情報と思われる資料を見つけたのでリンクを貼っておきます。今回の試みであるTMS9918での4bit DRAM対応は使用チップ数も少なく、自分的にはかなり面白い試みだと思います。
下記のリンク資料で最後の方にTMS91x8について言及されています。興味深いのはTMS9918用のSRAM化回路でDRAMへのライト時のデータバス切替え用のD-FF(74LS574)をソケットから抜けばTMS91x8に差し換えても動作すると書かれていることです。
そうであれば、今回開発している4bit DRAM化回路でも同じことが言えるはずです。}
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] [ 前へ ] 連載記事 [ 次へ ]
半田ケースキャップの修理 [修理]
ずっと前(学生の頃)から使っていた半田ケース(糸半田購入時のケースそのもの)のキャップに亀裂が入ってしまいました。
購入から何十年も経っていますが、いまだに値札までついていますw
長年使っていて愛着もあるので、接着剤を使って修理しようとしましたがビニール系の素材なので接着剤では中々くっつきません・・・
このキャップは本体にネジ構造で結合していてこの部分がめんどうそうだったので暫く放って置いたのですが久々に3Dプリンタを使いたくなり夜中に採寸してCADに入れてみました。
使用した DesignSpakMechanical には任意の面をらせん状に押し出す機能もあり、ネジ部分もあっさり作成できました。
3Dプリンタは静音化済みなので夜中に出力してみたところ、ネジの部分もピッタリで、PETGのフィラメントを使ったので強度も十分にありそうです。
1~2回の修正を予想していたのですが、予想に反して一発で完成です。
3Dプリンタは素晴らしぃ^^
★2021/05/01 追記
キャップ部分の拡大写真を追加しました。
購入から何十年も経っていますが、いまだに値札までついていますw
長年使っていて愛着もあるので、接着剤を使って修理しようとしましたがビニール系の素材なので接着剤では中々くっつきません・・・
破損した半田ケースのキャップ |
|
このキャップは本体にネジ構造で結合していてこの部分がめんどうそうだったので暫く放って置いたのですが久々に3Dプリンタを使いたくなり夜中に採寸してCADに入れてみました。
使用した DesignSpakMechanical には任意の面をらせん状に押し出す機能もあり、ネジ部分もあっさり作成できました。
キャップの構造(CAD) |
|
3Dプリンタは静音化済みなので夜中に出力してみたところ、ネジの部分もピッタリで、PETGのフィラメントを使ったので強度も十分にありそうです。
1~2回の修正を予想していたのですが、予想に反して一発で完成です。
3Dプリンタは素晴らしぃ^^
新調したキャップの半田ケース |
|
★2021/05/01 追記
キャップ部分の拡大写真を追加しました。
キャップ部分の拡大 |
|