パラレルのLCD(液晶表示器)は現在だともっぱらマイコンの汎用ポートで制御されるから、どうかすると「訳のわからん独自インタフェース」なんて説明される。なに言ってくれちゃってんだろうね。本当のところあれは68系バスで、実際、68系CPUだと直結して動かすことができる。はい、やって見せましょうってことで作った拡張基板を下に示す。
LCDにはCS(チップセレクト)がなくてEで兼用することになっている。そのためCSとEのANDをとってLCDのEへ入れる。その部分にちょっとしたロジックが必要で、うるさくいえばEが直結でない。あとは疑いようのない直結。LCDまわりの回路を下に示す。CSとEのANDをとるロジックは、拡張基板だと7400のNANDを3個使って構成している。
68系CPUの代表格はMC6800で、それを載せたSBC6800が手もとに売るほどあるが、困ったことにバスが外部へ出ていない。接続しやすいのはSBC6303で、こちらはHD6303が載っている。似たようなもんだし、まあいいか、ということでHD6303でやったら、LCDが四角しか表示しない。とうとうロジアナをつないで原因を調べる騒動に発展。
ロジアナの表示を追うと、ところどころデータが揺れたりヒゲが出たりしている。しかたなく(おいっ)マニュアルを読み返したら、HD6303はデータがアドレスと同一のピンを使うせいで確定が遅いのだった。一方のヒゲはまだ原因が掴めていない。しかし根は同じだと思う。早い話、HD6303のバスは68系バスではないということ。いかんいかん。
あらためてSBC6800でテスト。バスが外部へ出ていないからACIAを取り外してそのICソケットからLCDへ配線。とうていスマートではないが、LCDがMC6800のバスに直結されていることは一目瞭然となり、これはこれで意味がある。結果、LDA命令とSTA命令で普通に表示できた。MC6800は周辺ICやメモリなどと同様にLCDを最速で制御している。
パラレルのLCDが68系CPU直結で動くことは当然の事実として機会あるごとに述べてきた。今にして思えば、偉そうなことをいう前にちゃんと確認しておくべきだった。HD6303で動かなかったときは焦ったぞ。最終的にはMC6800との直結が動き、内心、ホッとしている。今後は、もう確認したのだから、偉そうにいおうと思う。
初めまして、ツイッターのアカを持っていないのでここに投稿させてください。
8749で苦労されているそうですが、自作機はイレースチェック、ベリファイ可能です。
EA、T0、の操作がうまく行っていないと推測します。
datasheetのVERIFY MODE timing chartは信用ならないので無視します。
COMBINATION PROGRAM/VERIFY MODEを採用します。
1、EAに高圧を印加
2,T0はDATA BUSの向きを制御(2716のOEのような扱い)
3、RESETでアドレスをラッチ
4、プログラム電圧には触らず、T0をhighにすれば読み出せます
5,他はdatasheetの要求どおりで
このやり方でうまくいきました。
初めまして。貴重な情報ありがとうございます。2点、質問させてください。
・書き込み動作中の1バイト書き込み直後にベリファイできたのですか。それとも全体を書き込んだあと読み出しができたのですか。
・プログラム電圧に触らないとのことですが、ベリファイ時、VDDとPROGは何Vですか。
教えていただけますなら、誠に恐縮ですが、このコメントへの返信ではなく新しいコメントを付けてください。階層の制限があるものですからすみません。
よろしくお願い致します。
最初の質問について、どちらもできます。
2番めの質問について、読み出し中はVDD、PROGは5VでEAは高圧です。datasheetに準じます。
datasheetの書き込み動作でVDD、PROGを操作しないから書き込みが行われず、現在の内容が読み出せてしまうと考えるとわかりやすいかも。
EA=高圧が、内部ROMアクセスのキーになっていると推測します。
自分がテストしたのはインテル8741Aと日電8749Hです。
うまく行くことを祈っております。
よくわかりました。確かにそれはまだ試していない制御です。現在、内部/外部ROMで動く評価基板を作成中でして、一段落したらやってみます。書き込みとベリファイができたときすぐ動作確認できますから。ありがとうございます。