日立 MB-S1 OS-9カード自作作戦 その13 (遅延部を代替)

Last Updated on 2014年5月29日 by kabekin

S1用OS-9カード自作作戦のその後です^^

記事通りに作ってもどうしてもうまくいかないセグメントレジスタのラッチについて素人なりに代替を考えてみます。

今回うまくいかない遅延部はこんな感じです。
DSC00807
ロジック間に入れた遅延も普通のCR遅延だとすると、そこはフィルタになり「C*R」だと思われるのでRがゼロはないのではないかと思うのですが・・・

配線の抵抗が数Ωあるとして、仮に0.5Ωとすると、コンデンサが0.01μFの場合、遅延時間は
0.6931*0.5Ω*0.01E-6 = 約3.4n秒程度、74AS08の遅延時間10ns、74F04の7nsと合わせて約20ns程度
の遅延を加えているのではないかと思います。

プロセッサ誌の記事ではS1のアドレス確定時間の最大値はtADの120ns+マッピングレジスタ通過部の+162nsで182nsだそうです。

実際には約180ns程度でアドレス確定しているようですが、E信号でゲートされているのでEの立ち上がりからの遅延のみ観測してみました。

■74LS08とコンデンサ無しの組合せ。
DSC00747
入力1=MPUE
入力2 = セグメントレジスタのラッチトリガ
REFのカーソルが少し遅れているのでΔTの読み値を少し増やして50nsといったところでしょうか。
思ったより遅い印象ですが、これならCRの遅延は完全に不要かと思います。

■74ALS08とコンデンサ無しの組合せ。
DSC00767
これもコンデンサによる遅延は不要のように見えます。
しばらく動作させた感じではコンデンサ無しでもOKなのですが、記事に近い状態にしておきたいと思います。

今回購入した74AS08DはSOIC型で扱いにくいので、ここはDIP型の74ALS08Nを採用することにしてCR遅延を少し減らします。
(ALSとASの遅延時間で問題が起こることはなさそうですが)

E6系列の部品で作った場合100Ω,33pFを持ってきて、
0.6931*100Ω*33E-12 = 2.3n秒くらいの遅延でいいかと・・・
と、アナログフィルタのような計算をしていると、ネットでもっと重要なファクタを発見しました。
TTLの出力側の容量でロジックの遅延時間が大幅に変わるようです。

そうするとCR部の遅延がそのまま加算される訳ではなく、CRの遅延分+出力容量を加味したロジック内の遅延で考えなければいけないようです。

詳しくはもっと調べる必要がありそうですが、今回CRで遅延している3ns程度の遅延は出力容量で変化する遅延に比べると微々たるものです。
74dly
しかし、74HCが思ったより速くて驚き CMOSが遅いと思い込んでいる私の頭は時代遅れかな・・

どこまで遅らせていいか分からないので、最終的には74ALS08,100Ω,33pFの組合せで使うことにしました。

回路での波形はこんな感じです。
DSC00743
恐らくこれでOKかと^^

ここまでで疑問なのはCR部の遅延がないのに74ALS260と74F04という高速チップを使っているにも関わらず40ns程度も遅延しているということ・・・・
これは予想よりちょっと遅い気がしました。何か勘違いや測定ミスしている可能性があります^^;;;
しかし、今回のセグメントラッチのタイミングがOKかと思う理由として

1)記事ではアドレス確定maxの182nsはMPUE立ち上がりの150nsより最悪で32ns遅い可能性があるのでCR遅延で余裕を持たせるとあるのですが、MPUEのAND条件で入っているアドレスデコードはA0~A11に加えAMRを通過したA12~A19も加味されたデコード信号であること。
2)実測でMPUE∧$EFE11から約50nsの遅延がかかっていること
3)この回路で数日使ってみてもフリーズせず安定して動いていること
という訳で、OKかと思います^^;;;;

考え方が合ってるのか、間違ってるのか分かりませんが、自分なりには納得できたので遅延部はおk!)
DSC00775
小規模な工作なのに完成までに時間がかかってしまいました^^;;;
まだまだ精進が足りないようです。

今回の工作で記事から変更した部分は次の通りです。
(素人の変更です、真意は不明ですので皆さんの都合が良いように変更して下さい^^;;;)
記事の回路図をそのまま載せるのは問題があるかもしれませんので、変更部分のみ公開^^
雑誌記事は技術評論社のプロセッサ誌 1988年4月号 「OS-9ボードの製作」(P.107~)をご覧ください

■信号遅延関係(実測で約50nsの遅延)
DSC00809

■マッピングレジスタの配線(誤記)
DSC00810
74LS240のA側に入っているIC49は間違いでIC96でした。
74LS240のY側に入っているIC88の4,6,10,12は5,7,9,11でした。
上記2か所の変更で私のS1/30では動作OKでした(^^)

S1ユーザのみなさん、プロセッサ誌の記事を参考にOS-9L2の世界をどぞ・・・・
と言っても、ハード的に動かすことはできましたがOS-9L2を活用できるだけのソフト的な知識が圧倒的に足りません・・・・

まぁ、ぼちぼち進めていこうと思います(^^)

しかしなぜプロセッサ誌記事の74ASと0.01μFの組合せで動作しないのかの原因を調べたい

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください