Monster X (その46) ズレの問題
2chの方を見ているとレジスタの設定で直るとか云々の話がでておりますが、残念ながら完全には無理だと思います。
Hsync/Vsyncがらみかなと以前に散々チェックした事がありますが、どうにも解決出来ませんでした。
どんな感じにレジスタが構成されているか、すげー簡単に書きますと
0x12:Hsyncに関する処理系の設定、Default c8(D1以外はcc)
0x13:Hsyncに対するpixel clockの微調整(0x12のbit3を0にすると設定が有効になる)、Default 20
0x14:Vsyncに関する処理系の設定、Default c8(D1以外はcc)
0x15:Vsyncに対するHsyncの微調整(0x14のbit1を1にすると設定が有効になる)、Default 0a
D1で縦方向の修正をするには、0x14のbit3を0、bit2を1に(C8→C4)にすれば上方向にズレるため一応それっぽく収まります。
横方向の修正ですが、0x12のbit3を0に(C8→C0)にすると0x13で調整出来るようになります。0x00から大きくなるにしたがって左にずれていきます。0x00が一番右への配置になります。
D2で縦方向の修正をするには、0x14のbit3を0、bit1を1に(CC→C6)にすれば、0x15で調整出来るようになります。0x03から大きくなるにしたがって上にずれていきます。0x03が一番下への配置になります。0x00~0x02だと垂直同期が取れなくなります。
D3/D4でもこれらのレジスタを使いますが微妙に動きが違うと思います。縦方向は0x14を設定すると上に移動しすぎて、今度は下方向に余ってしまうという。縦に関してはとりあえず放置。
自分の場合、これでも横方向に浮きが出てしまいました。そこでPLLの設定も変更して横方向も合わせました。
PLLは、0x01と0x02で設定されます。以下はあくまでも自分でやった設定なので他の人の参考になるかは分かりません。まぁPLLいじっているって事は横に伸ばしているだけなんで根本的解決にはなってませんけどね。
D1:Default (0x01:35 0x02:a0)→(0x01:35 0x02:b0)
D2:Default (0x01:35 0x02:a0)→(0x01:35 0x02:b0)
D3:Default (0x01:89 0x02:80)→(0x01:89 0x02:b0)
D4:Default (0x01:67 0x02:20)→(0x01:67 0x02:50)
※D4のみ推測値
まぁ参考程度で。あくまでも自分で調べたものなのでエスケイからから貰ったデータじゃないです。
コメントする