まごころせいじつ堂

浜町庄金 研究開発  マイコンで遊んでばっかりで

SMI-733

SMC-777用カラーパレットボードSMI-733の調査(2) DAC

 SMI-733調査の続き。前回はカラーパレットの対応を格納するSRAM 74S189の書き込みパスまで。

 カラーパレットによる色の変換はドットごとに変化するR,G,B,X 4bitの信号をSRAM 74S189 3個のアドレスに与えてR,G,Bそれぞれ4bitの情報を取り出す。これをDA変換してアナログRGBの信号を生成する。
 SRAM 73S189のデータ出力は反転することに注意。これをドットクロック(16MHz)のタイミングでいったんFF LS378で受ける。

SMI733DAC
 4つのオープンコレクタ7406で2K2/4K3/9K1/18Kを使って階調を作る。これはSMC-70のモノクロ出力回路とそっくり。MSBは1KΩでプルアップしているが、その他3bitは他のポイント(O123PU)でプルアップしている。なぜこのようにプルアップのポイントを分けているかは理解できていない。
 ALS22によりR,G,B,Xがすべて0の場合は強制的に0Vにしている。これらの信号をPNPタイプのトランジスタで受けてエミッタフォロワで出力。この回路がO123PU生成部を除いてR,G,Bの3セット分ある。

 やっと回路が起こせたのでノイズ問題の調査を再開する。

SMC-777 VGA変換時のノイズ問題 続


 SMC-777Cをシステムディスクから起動したときの画面はノイズがないが、BASICを選択しBASICに制御が移ったらノイズが発生する。どうやらBASIC側でカラーパレットボードの存在を確認したらenableにするらしい。
 ということでBASIC側から制御してカラーパレットを有効/無効にしてどう変わるか確認してみる。
 OUT &H51,6:OUT &H51,7でキャラクタ画面とグラフィック画面それぞれに対するカラーパレットの適用をOFFにする。OUT &H51,&H16:OUT &H51,&H17でカラーパレットをONにする。これによりノイズもOFF/ONと変化することがわかった。さらに絞り込んでOUT &H51,7とOUT &H51,&H17でグラフィック画面に対する設定のみでノイズが観測できることがわかった。なおBASICのWIPEコマンド(画面消去)を実行するとカラーパレットが存在すれば有効化される。
 これらの動作はSMC-777にカラーパレットボードを追加したものでも再現したので個別の問題ではなさそう。

 SMC-777Cの本体からの16色表示信号とカラーパレットボードからのカラー信号はエミッタとコレクタを共有した2つのトランジスタで切り替えている。外への出力はエミッタフォロワ。出力したい信号の反対側のベースを7405(オープンコレクタ)により強制的にGNDレベルに落として抑止している。
2022-08-08 02.36.26

 この信号の切り替えはIC60のLS74で行っている。このFFのCLKは4φ(16MHz)。
 カラーパレットボードが実装されていてdisableにされている状態では本体からのカラー信号が有効でカラーパレットボード側の信号がGNDに落とされている。このときノイズは出ない。

2022-08-08 02.46.32

 IC60(LS74 UNIT-1)のQ出力が"L"のとき、本体カラー有効。Q="H"のときカラーパレット側有効。

・カラーパレットボードが存在しないとき(*CPON="H")、常にQ="L"。
・カラーパレットボードが存在するとき(*CPON="L")は*BLANK="L"のときに強制的にQ="L"。その他"H"。

CRCPはキャラクタ表示に対するカラーパレットが有効なことを示す信号(OUT &H51,&H16)。
GRCPはグラフィック表示に対するカラーパレットが有効なことを示す信号(OUT &H51,&H17)。
C/*Gは現在表示中のドットがキャラクタかグラフィックかを示す信号。キャラクタ画面はグラフィック画面の手前で、キャラクタ文字のフォントがある位置で"H"、透過部分で"L"となる。

カラーパレット側が有効になるのは:
・CRCP="H"でC/*G="H"のときにD="H"が与えられCLK後にQ="H"。
・GRCP="H"でC/*G="L"のときにD="H"が与えられCLK後にQ="H"。

・カラーパレット側切替時に本体カラー側が落としきれてないんじゃないかなとIC106 7405(カラー信号をGNDに落とす役割)に重ねて74HC05を置いてみたが変わらず。

・カラーパレットと本体ボードを接続するケーブルCN3-CN1をシールドしてみたが変わらず。
・カラーパレットに供給される4φにダンピング抵抗47Ωを挿入してみたが変わらず。

 う〜ん、カラーパレットボードからの信号にすでにノイズが乗っているのかなあ。続く。

SMC-777用カラーパレットボードSMI-733の調査(1)

 SMC-777ではオプション、SMC-777Cでは内蔵の4096色中16色を表示するカラーパレットボードSMI-733。
2022-07-29 19.39.56

 左側面の10ピンコネクタ。SMC-777本体はCN3、このボードではCN1。
*CPONはカラーパレットボードの存在を示す信号で、この信号が有効だと内部のアナログカラー生成部分をこのボードと置き換える。CPS,*CPWPはカスタムチップCX20121からの出力でカラーパレットに色情報をCPUから書き込むための信号。X,R,G,Bは16色のパレット信号で、これをカラーパレットボード内で変換しCPR,CPG,CPB信号として出力する。
スクリーンショット 2022-07-31 3.56.41

 手前から出ている15本の配線はJ1。SMC-777本体のCN9とは逆順に接続されている。電源、16MHzのクロックと設定に最低限必要なアドレス、データ信号。
スクリーンショット 2022-07-31 3.57.04

 カラーパレットの設定はI/Oポート52H。Z80の仕様により値と同時にBレジスタの内容も使用する。

regB : 0 0 AD1 AD0 BD3 BD2 BD1 BD0
data : CD3 CD2 CD1 CD0 0 0 0 0

BD[3:0] 設定するカラーパレットの番号 0~15
AD[1:0] CD[3:0]で指定する明るさを書き込む色の指定 R=00,G=01,B=10
CD[3:0] 色の明るさ4bit 16段階

これにより16個のカラーパレットそれぞれに対してR,G,B 4bitの明るさ=12bit 4096色を設定する。


 部品配置。RB1~5は集合抵抗。基板に水平に配置する余地がなかった模様。SN74S189Nは16x4bitのSRAMで3個使うことでR,G,Bに対応する色情報を設定する。データの入出力が分離しており、データ入力側はSN74S158N,SN74LS139Nを通してCPUからの設定値が書き込まれる。その他の部品はD/Aコンバータを構成している。
スクリーンショット 2022-07-31 3.56.18

 3個のSRAMの*CSはGND接続で常に選択状態。アドレス4本、データ入力4本はそれぞれ共通。
LS139はCN9からのAD1,AD0をデコードし、CN3からの*CPWPをG端子に入れている。R,G,Bに対応するS189の*WEをセレクト。
S158はSRAMへのアドレス切り替え。CPS="H"でCPUからの書き込み時アドレスBD[3:0]を、CPS="L"でCN3からのパレット信号XRGBを選択。通常はCPS="L"。切り替えに同期信号などを考慮していないためパレット設定時にちらつきが発生する。S158は157の出力反転タイプだがどっちでもいいみたい。
SRAM_A[3:0] = CPS ? BD[3:0] : {X,R,G,B} ;

SRAMのデータ入力はデータバスのCD[3:0]直結。

 DAC調査につづく。

記事検索
プロフィール

hardyboy

カテゴリ別アーカイブ
月別アーカイブ
QRコード
QRコード
  • ライブドアブログ