2023-11-14 23:02 — asano
カテゴリー:
今回はNS32016ボードの組み立て終わってからUniversal Monitorの移植を始めるまでの動作確認編をお送りします。
まずは発振器とTCUのみで動かしてみます。CPU→TCUの信号が数本あるので仮にプルアップしておきます。これでPHI1, PHI2が出ていることを確認します。
リンギングが酷いですが、とりあえずTCUは動作してそうですね。
続いてRSTOのタイミングを確認します。NS32016のデータシートによるとPHI1が"H"の間に立ち上がることとありますが......
The rising edge must occur while PHI1 is high.
実測するとPHI1と同時に立ち上がっているではないですか。よく読むとPHI1の立ち下がりの15ns前までなら良いようです。まぁ専用のNS32C201の出力してくる信号なのでこれ以上追っても仕方ないですね。
TCUのみでできる確認はこれくらいなので、次はNS32016を載せてBBGの電圧を確認します。
前回書き忘れたのですが、NS32016にはBBGという変わった端子があります。これはBack-Bias Generatorの略で、内部で負電圧を生成しています。8080などで-5Vを要求するのと同様の目的ですが、NS32016では外部に必要なのはキャパシタのみなので助かります。
データシートには具体的な電圧の記載は見つかりませんでしたが、約-2.7Vの電圧が出ていました。
さらに74ALS574×2を追加すればEMILY Boardのメモリのプログラムが実行可能になります。
まずは以下のループを走らせてみます。
4/ 0 : ORG 0
5/ 0 : EA 00 LOOP: BR LOOP
これを実行すると......
なんとRDが1発出ただけで停止してしまいました。
メモリアクセス一回で停止するとなるとウェイトコントロール系が怪しいですが、それならRDが出っぱなしにならなければおかしいように思います。
不思議に思いながら配線のチェックをすると、TCUからCPUへのRDYが未接続でした。ウェイトの問題というのは当たりでしたが、RDが通常の長さだったのはなぜでしょう?
RDはTCUが出す信号なので、TCUとしてはRDYも出してリードサイクルを終了させたつもりで、次のサイクルの開始を待っている状態になっていたのでしょう。一方、CPUとしてはRDYが来ないのでまだリードサイクルが続いていると思って先へ進めずにいます。
RDYを接続したところRDが繰り返し出力されるようになりました。ループの0~1を少し超えたアドレスも出ますがプリフェッチの可能性もあり、正常にループを実行しているように思えます。試しにNOP
を追加するとそれに合わせるかのようにアドレスの範囲も変わります。
次はメモリへのライトを確かめるのが定石ですが、それならUniversal Monitorの移植へ進んでしまっても良いでしょう。どうせ仮想UARTの初期化ルーチンはメモリへの書き込みですから。
ということで次回はソフトウェア(モニタ移植)編をお送りする予定です。
コメントを追加