前の5件 | -
MSX1(CF1200)の購入(その1)カーリッジケースの作成 [MSX]
最近、Twitter では MSX3 の話題で賑わっています。私は MSX の実機を弄ったことは無いのですが CPU が Z80 なので興味が沸き、MSX1 の初期の頃の機種である National 製 CF1200 の中古をマニュアル&箱付きで購入してみました。
基本的な機能しか試していませんが動作上の問題はなさそうです。
しかし、これだけでは内蔵 ROM から起動する BASIC で遊べるだけで他に何もできません。そこで、ROM を実装できる カートリッジ用基板が安く販売されていたので購入してみました。
これを使えばモニタプログラム等作り、カートリッジから立ち上げることが出来るようになります。
基板が剥き出しの状態では扱いづらいのでカートリッジのケースを作ることにしました。ネットで探すとケースのSTL ファイルがいくつか見つかったので上記の基板が取り付けられそうなものを選び、3Dプリンタで出力してみましたが、丸ピンソケットで実装した ROM がつかえてうまくケースに収まりませんorz
そこでケースを自作しようと思いましたがケースのサイズ情報がフルセットで記載されたサイトまたは資料が見つかりませんでした^^;
下記のサイトの情報とネットで探した STL ファイルを参照してカートリッジのケースを CAD で設計してみました。
作成したケースの CAD 表示が下図になります。ROM の部分は窓で外に出し、ROM の上面がケースの外側と面一くらいになりギリギリで収まりました。
3Dプリンタで出力した結果が下の写真になります。若干お焦げが発生していますね^^;
基板を嵌め込むと下図の様になります。基板は下側のホールで固定されていますが、これはナムコ仕様のサポータの位置だと思います(実際のナムコのカートリッジを持っていないので未確認ではありますが)。
下の写真は3Dプリンタで出力したケースに基板を格納し、蓋をネジで固定した状態の様子です。
CF1200 のカートリッジスロットに入れてみましたが問題無さそうです。
購入した MSX1(CF1200) |
|
基本的な機能しか試していませんが動作上の問題はなさそうです。
しかし、これだけでは内蔵 ROM から起動する BASIC で遊べるだけで他に何もできません。そこで、ROM を実装できる カートリッジ用基板が安く販売されていたので購入してみました。
カートリッジ用 ROM 実装基板 |
|
これを使えばモニタプログラム等作り、カートリッジから立ち上げることが出来るようになります。
基板が剥き出しの状態では扱いづらいのでカートリッジのケースを作ることにしました。ネットで探すとケースのSTL ファイルがいくつか見つかったので上記の基板が取り付けられそうなものを選び、3Dプリンタで出力してみましたが、丸ピンソケットで実装した ROM がつかえてうまくケースに収まりませんorz
そこでケースを自作しようと思いましたがケースのサイズ情報がフルセットで記載されたサイトまたは資料が見つかりませんでした^^;
下記のサイトの情報とネットで探した STL ファイルを参照してカートリッジのケースを CAD で設計してみました。
- MSX Datapack wiki化計画 4.1 カートリッジ仕様
- テクハンwiki Appendix A.7 カートリッジ ハードウェア仕様
作成したケースの CAD 表示が下図になります。ROM の部分は窓で外に出し、ROM の上面がケースの外側と面一くらいになりギリギリで収まりました。
カートリッジ用ケース(CAD画面) |
|
3Dプリンタで出力した結果が下の写真になります。若干お焦げが発生していますね^^;
カートリッジ用ケースの出力結果 |
|
基板を嵌め込むと下図の様になります。基板は下側のホールで固定されていますが、これはナムコ仕様のサポータの位置だと思います(実際のナムコのカートリッジを持っていないので未確認ではありますが)。
カートリッジ用ケースと基板 |
|
下の写真は3Dプリンタで出力したケースに基板を格納し、蓋をネジで固定した状態の様子です。
完成したカートリッジケース |
|
CF1200 のカートリッジスロットに入れてみましたが問題無さそうです。
Z80GalCompactの制作(その5)AMラジオで音楽演奏 [Z80]
twitter の タイムラインでマイコンから発生する電波を利用してラジオから音楽を流す動画を見かけました。
学生時代に Z80 マイコンを作り同様なことをやってみたことがありますが、直ぐに1ビットのデジタル出力を使って演奏する方式に移行して二重奏等をやって遊んでいました。
余りにも懐かし過ぎるので最近開発した Z80 マイコン(Z80GalCompact)を使ってラジオ演奏をやってみました。
基本はループ処理の周期によってシングルトーンの音を生成するのですが、最初は綺麗な音が中々出ませんでした。色々やってみると AMラジオ側の受信周波数によって聞こえ方が結構違うことに気が付き、良く聞こえる受信周波数にするとそれなりの音が出るようになりました。
また、演奏音をなるべく綺麗にするために
トーンジェネレータ処理のループ部が合計で 108 ステートとなり、クロック 20MHz の情報と合わせて音程パラメータを計算した結果が下表になります。
Loop times のカラムがシングルトーンを生成するためのループ回数(=音程パラメータ)で上記のように 1 バイト処理なので Hex カラムが 2 桁以下のデータ部分が使用できる音階になります。
楽曲としては著作権が消滅しているドイツ民謡で広くなじみのある「かえるの合唱」のデータを使用しました。ネット上にあるこのページ等を参照させて頂きました。
更に今回は無謀にもラジオを用いた自動演奏による二重奏にチャレンジしてみました。アセンブラで組んだソースが下記になります。
流石に完全な二重奏とまではいきませんが「かえるの合唱」の輪唱がそれなりに聞こえるようになりました^^
★追記 2022/7/28
twitter に投稿した動画付きのメッセージを貼っておきます。
[TOP] [ 前へ ] 連載記事 [ 次へ ]
学生時代に Z80 マイコンを作り同様なことをやってみたことがありますが、直ぐに1ビットのデジタル出力を使って演奏する方式に移行して二重奏等をやって遊んでいました。
余りにも懐かし過ぎるので最近開発した Z80 マイコン(Z80GalCompact)を使ってラジオ演奏をやってみました。
基本はループ処理の周期によってシングルトーンの音を生成するのですが、最初は綺麗な音が中々出ませんでした。色々やってみると AMラジオ側の受信周波数によって聞こえ方が結構違うことに気が付き、良く聞こえる受信周波数にするとそれなりの音が出るようになりました。
また、演奏音をなるべく綺麗にするために
- 雑音低減のために演奏中はタイマ割込みを禁止する
- 頻繁に通る分岐処理部分では両方の処理のステート数を合わせる
- 音程と長さは1バイト処理にしてトーンジェネレータ以外の処理時間を短くする
トーンジェネレータ処理のループ部が合計で 108 ステートとなり、クロック 20MHz の情報と合わせて音程パラメータを計算した結果が下表になります。
Loop times のカラムがシングルトーンを生成するためのループ回数(=音程パラメータ)で上記のように 1 バイト処理なので Hex カラムが 2 桁以下のデータ部分が使用できる音階になります。
音階パラメータ表 |
|
楽曲としては著作権が消滅しているドイツ民謡で広くなじみのある「かえるの合唱」のデータを使用しました。ネット上にあるこのページ等を参照させて頂きました。
更に今回は無謀にもラジオを用いた自動演奏による二重奏にチャレンジしてみました。アセンブラで組んだソースが下記になります。
ラジオ演奏 カエルの合唱(Z80 アセンブラ) |
|
流石に完全な二重奏とまではいきませんが「かえるの合唱」の輪唱がそれなりに聞こえるようになりました^^
★追記 2022/7/28
twitter に投稿した動画付きのメッセージを貼っておきます。
TLで見かけたマイコンから放出される電波を使ったAMラジオでの自動演奏
— skyriver (@wcinp) July 28, 2022
あまりにも懐かしいので自作マイコンでやってみました^^https://t.co/8o6ULhEON7#Z80GalCompact #RetoroComputing https://t.co/OVoB5bILt4 pic.twitter.com/eKjVIggJJ1
[TOP] [ 前へ ] 連載記事 [ 次へ ]
TL866II Plus用VPP:21V/25V対応アダプタの製作(その5)プリント基板完成 [その他]
前回の記事で書いた回路更新したプリント基板を 7/3 23時に ELLOCROW さんに製造依頼して 7/11 の午前中に届きました。
下の写真が出来上がったプリント基板のトップ面です。今回 ZIF ソケットのフットプリントを修正して幅を狭くしていますが、少し狭すぎました^^;
でも足を少し曲げると入るので問題ありません。
下の写真がボトム面です。左上の "C4" のシルクのCが見えなくなっていますね^^;
上記のように軽微な問題が2点あったものの機能上は問題無いと思います。
表面実装部品を実装後のボトム面が下の写真です。今までは SOP パッケージは半田ごてで半田付けしていましたが、今回は他の部品と同様にクリーム半田を使ってヒートガンで半田付けしてみました。クリーム半田の方が速く綺麗にできました。
ボトム面の部品を実装後にトップ面の表面実装部品(と言っても USB コネクタと LED 及び電流制限抵抗)の半田付けを行いました。今回は上記の SOP IC と同様に USB コネクタもクリーム半田で半田付けしてみました。ピン間隔が狭いのでピン毎にクリーム半田を塗ることはできませんでしたがヒートガンを当てると綺麗に分かれて半田付けできました(今までは半田ごてと吸取り線を使って半田付けしていました)。
残りはリード部品と ZIF ソケット及びピンヘッダの半田付けなので楽です。注意点として ZIF ソケットの半田付けの前にロムライタとの接続用のピンヘッダを半田付けする必要があります。また ZIF ソケット直下のピンヘッダは ZIF ソケットと干渉しないようにトップ面からの出っ張ったピンの部分をニッパーでカット後に半田付けしました。
ZIF ソケットは前述のようにフットプリントの幅が少し狭いのでピンを内側に曲げてから半田付けしています。
部品実装が完了したトップ面とボトム面の写真を貼っておきます。
VppConverter が完成したので 手持ちの UV-EPROM を使って動作確認を行いました。結果は 2716/2732/2764 の3種類の UV-EPROM への書込みが成功しました。
今回作成した VppConverter は外部から供給された 5V 電源を昇圧して Vpp 用の 21V/25V を生成していて内部回路のグランドは 外部電源である USB のグランドと同電位ですが、ロムライタ(TL866II Plus、以降 TL866II と記す)側のグランド(ロムライタ側の USB のグランドと同電位)と電位が異なります。
従ってロムライタを接続したパソコンのUSBから VppConverter に給電しないよう注意する必要があります。モバイルバッテリからの給電が安全です。
以降に確認結果の詳細を記録しておきます。
以上が書込み試験時の波形等の記録です。
最後に 2732 書込み時の写真を貼っておきます。2732 問題をハードで対応しているのでジャンパ接続不要でスッキリですね^^
★追記 2022/07/16
手持ちのUV-EPROM を使って今回開発した VppConverter での書込み試験を行った結果をメモしておきます。
書込み試験でのデータは GAMEインタープリタ(0000H~0CB4H)を用いました。
★2022/07/17 NEC D2764D を追加
※ST M2732A は 2732の書込み問題の記事の最後の方に追記で 2732 問題が発生している状態でも書き込めるということを書きましたが、大きなデータを書込むと 0800H のアドレスの読込みデータが不一致になりました。
VppConverter を使って書込みを行うと 0000H で書き込みデータ( 0C3H )が 0FFH に読めるというエラーが発生しました。
この ROM 自体が壊れている可能性があります。
[TOP] [ 前へ ] 連載記事 [ 次へ ]
下の写真が出来上がったプリント基板のトップ面です。今回 ZIF ソケットのフットプリントを修正して幅を狭くしていますが、少し狭すぎました^^;
でも足を少し曲げると入るので問題ありません。
VppConverter プリント基板(トップ面) |
|
下の写真がボトム面です。左上の "C4" のシルクのCが見えなくなっていますね^^;
VppConverter プリント基板(ボトム面) |
|
上記のように軽微な問題が2点あったものの機能上は問題無いと思います。
表面実装部品を実装後のボトム面が下の写真です。今までは SOP パッケージは半田ごてで半田付けしていましたが、今回は他の部品と同様にクリーム半田を使ってヒートガンで半田付けしてみました。クリーム半田の方が速く綺麗にできました。
表目実装部品実装後(ボトム面) |
|
ボトム面の部品を実装後にトップ面の表面実装部品(と言っても USB コネクタと LED 及び電流制限抵抗)の半田付けを行いました。今回は上記の SOP IC と同様に USB コネクタもクリーム半田で半田付けしてみました。ピン間隔が狭いのでピン毎にクリーム半田を塗ることはできませんでしたがヒートガンを当てると綺麗に分かれて半田付けできました(今までは半田ごてと吸取り線を使って半田付けしていました)。
表目実装部品実装後(トップ面) |
|
残りはリード部品と ZIF ソケット及びピンヘッダの半田付けなので楽です。注意点として ZIF ソケットの半田付けの前にロムライタとの接続用のピンヘッダを半田付けする必要があります。また ZIF ソケット直下のピンヘッダは ZIF ソケットと干渉しないようにトップ面からの出っ張ったピンの部分をニッパーでカット後に半田付けしました。
ZIF ソケットは前述のようにフットプリントの幅が少し狭いのでピンを内側に曲げてから半田付けしています。
部品実装が完了したトップ面とボトム面の写真を貼っておきます。
部品実装後(トップ面) |
|
部品実装後(ボトム面) |
|
VppConverter が完成したので 手持ちの UV-EPROM を使って動作確認を行いました。結果は 2716/2732/2764 の3種類の UV-EPROM への書込みが成功しました。
今回作成した VppConverter は外部から供給された 5V 電源を昇圧して Vpp 用の 21V/25V を生成していて内部回路のグランドは 外部電源である USB のグランドと同電位ですが、ロムライタ(TL866II Plus、以降 TL866II と記す)側のグランド(ロムライタ側の USB のグランドと同電位)と電位が異なります。
従ってロムライタを接続したパソコンのUSBから VppConverter に給電しないよう注意する必要があります。モバイルバッテリからの給電が安全です。
以降に確認結果の詳細を記録しておきます。
- NEC製 uPD2716D (Vpp:25V)
TL866II のデバイス一覧には無いのでデバイスとして INTEL M2716 を選択した状態で試験しました。
VppConverterによる Vpp の変化を確認するために、最初に UV-EPROM を TL866II に直接つないだ状態での書込み時の波形を確認しました(下図)。
下図で ch1(黄色)が Vpp で ch2(水色)がCE/ です。TL866II に直付けなので Vpp が18V になっていて書込みは失敗します。
2716 ダイレクト接続時の波形
次に VppConverter を使って書き込んだ際の波形が下図になります。Vpp は想定通りほぼ 25V になっています。
2716 書込み時の波形( VppConverter 使用時)
書込み後の TL866II の画面が下図で、書込み後のベリファイも成功しています。
VppConverter 使用時の書込み後の画面表示
- NEC製 uPD2732D (Vpp:21V)
TL866II のデバイス一覧に無いのでインテルの 2732A を選択して確認しました。
2732 問題(書き込み時に CE/ が High のまま)はソフトウェアの問題なのですがソフトウェアがすぐに対応しそうにないことからハード対応するということを前回の記事で書きました。
VppConverter 経由で 2732 を接続し、書込み動作を行った際の波形が下図になります。ch1(黄色)が Vpp で ch2(水色)が CE/ です。Vpp は想定通り 21V になっていますし、 CE/ も髭は発生していますが想定通りに Vpp が High の時に low になっています。
2732 書込み時の波形( VppConverter 使用時)
書込み後の TL866II 画面が下図になります。書込みは成功していますね。
2732 書込み後の画面
- 富士通製 MBM2764 (Vpp:21V)
富士通製 MBM2764 は TL866II のデバイス一覧にありました。デバイス選択後の TL866II 画面が下図になります。
MBM2764 の Vpp はデータシートでは 21V ですが、TL866II では 12V に設定されています。このように TL866II は UV-EPROM のパラメータ設定が間違えている場合があるので注意が必要です。
MBM2764 選択後の画面
VppConverter では TL866II からの Vpp が 18V の場合、内部で昇圧した Vpp に切り換えているので Vpp を 18V に手動で設定し直して書込み試験を行いました。書込み時の波形が下図になります。ch1(黄色)が Vpp で ch2(水色)が PGM/ です。
MBM2764 の書込み時の波形
書込み後の TL866II の画面が下図になります。ベリファイも通り、書込みは成功しています。
MBM2764 の書込み後の画面表示
以上が書込み試験時の波形等の記録です。
最後に 2732 書込み時の写真を貼っておきます。2732 問題をハードで対応しているのでジャンパ接続不要でスッキリですね^^
2732 書込み時の様子 |
|
★追記 2022/07/16
手持ちのUV-EPROM を使って今回開発した VppConverter での書込み試験を行った結果をメモしておきます。
書込み試験でのデータは GAMEインタープリタ(0000H~0CB4H)を用いました。
No. | Maker | Type | Vpp | Result |
---|---|---|---|---|
1 | NEC | D2716D | 25V | OK |
2 | FUJITSU | MB8516 | 25V | OK |
3 | SSS | M2716F1 | 25V | OK |
4 | NEC | D2732D | 21V | OK |
5 | MITSUBISHI | M5L2732K | 25V | OK |
6 | FUJITSU | MBM2732A | 21V | OK |
7 | NEC | D2764D | 21V | OK |
8 | NEC | D27C64 | 21V | OK |
9 | FUJITSU | MBM2764 | 21V | OK |
★2022/07/17 NEC D2764D を追加
※ST M2732A は 2732の書込み問題の記事の最後の方に追記で 2732 問題が発生している状態でも書き込めるということを書きましたが、大きなデータを書込むと 0800H のアドレスの読込みデータが不一致になりました。
VppConverter を使って書込みを行うと 0000H で書き込みデータ( 0C3H )が 0FFH に読めるというエラーが発生しました。
この ROM 自体が壊れている可能性があります。
[TOP] [ 前へ ] 連載記事 [ 次へ ]
TL866II Plus用VPP:21V/25V対応アダプタの製作(その4)回路更新 [その他]
前回の記事で書いたように TL866II Plus(以降、TL866IIと記す)で 2732 を書き込む際に発生する問題は Vpp 電圧が 18V 以下の 2732 でも発生する問題であり、現状の対策は CE/( 18 番ピン)を強制的にグランド( 12 番ピン)に接続する方法しかないようです。また、この問題に対してソフトウェアがすぐには対応しない可能性もあるので今回作成する VppConverter( eBay で同種の基板が VppAdaptorと言う名称で販売されていたので名称を変更)でハード的に対応することにしました。
上記の既存の対策は TL866II からの CE/ をグランド接続し TL866II 側の負荷が大きくなりあまり宜しくない(そもそも 2732 を焼く時だけジャンパー接続するのは面倒)ので下図のように Vpp でオンするトランジスタの出力とダイオードORを取って 2732 の CE/ として供給するようにします。このトランジスタは 2732 の場合のみオンになるので追加の操作は必要ありません。
6/23 に Elecrow さんに製造依頼した基板が本日( 7/3 )に届きました。過去の経験から Elecrow さんでは小さめの基板は10枚作ってくれるようで、今回も予想通り 5 枚の発注で予備分も含めて 12 枚届きました^^
しかし、次の問題があったため、上記の 2732 対応も追加して改版することにした次第です。
改版した全体の回路図が下図になります。
グランドベタ化前のパターンが下図です。前回よりもサイズを少し小さくしました。
グランドベタ化後のトップとボトムのパターン図も貼っておきます。
トップ面とボトム面の3D表示が下図になります。
[TOP] [ 前へ ] 連載記事 [ 次へ ]
上記の既存の対策は TL866II からの CE/ をグランド接続し TL866II 側の負荷が大きくなりあまり宜しくない(そもそも 2732 を焼く時だけジャンパー接続するのは面倒)ので下図のように Vpp でオンするトランジスタの出力とダイオードORを取って 2732 の CE/ として供給するようにします。このトランジスタは 2732 の場合のみオンになるので追加の操作は必要ありません。
2732 問題対応の追加回路 |
|
6/23 に Elecrow さんに製造依頼した基板が本日( 7/3 )に届きました。過去の経験から Elecrow さんでは小さめの基板は10枚作ってくれるようで、今回も予想通り 5 枚の発注で予備分も含めて 12 枚届きました^^
しかし、次の問題があったため、上記の 2732 対応も追加して改版することにした次第です。
- ROM ソケットの幅
2764 のフットプリントをネットからダウンロードし使用したが、ソケット無しの直付けを想定したもののようで幅が広すぎたので修正した
- ROM ソケットのピン穴サイズ
ZIF ソケットの足は横幅が大きく入らなかったので 30 Thou(穴径)/ 45 Thou(外径)のピン穴を 40 Thou / 54 Thou に変更した
改版した全体の回路図が下図になります。
VppConverter 回路図( Ver 0.02 ) |
|
グランドベタ化前のパターンが下図です。前回よりもサイズを少し小さくしました。
VppConverter パターン図(グランドベタ化前) |
|
グランドベタ化後のトップとボトムのパターン図も貼っておきます。
VppConverter パターン図(トップ面) |
|
VppConverter パターン図(ボトム面) |
|
トップ面とボトム面の3D表示が下図になります。
VppConverter 3D表示(トップ面) |
|
VppConverter 3D表示(ボトム面) |
|
[TOP] [ 前へ ] 連載記事 [ 次へ ]
TL866II Plus用VPP:21V/25V対応アダプタの製作(その3)2732の書込み問題 [その他]
多機能なロムライター(TL866II Plus)での旧 ROM(Vpp電圧が 21V 以上)対応関連の情報をネットで見ていると 2732 への書込みに問題があるという情報が見つかります。
この問題についての情報が豊富な 2732 will not program TL866ii plus のフォーラムでは
と言うようなことが書かれています。
この 2732 問題に関しては上記のフォーラムの参加者が TL866 の開発元のフォーラムに Issue with programming 2732 eprom due to incorrect logic の表題で問題報告とソフトウェアでの対応を要求しています(2022-5-27 に最新版でも同様の問題が発生することも報告済み)。
参考として NEC の uPD2732 と uPD2716 のプログラム時のシーケンス図を貼っておきます。
上記フォーラムでは 2716 は書込み中に CE/ はハイレベルのパルスが必要で 2732 はローレベルのパルスが必要であるけれど、TL866II Plus のソフトに移行する際に 2732 用のシーケンスが 2716 のもののままになってしまったのではないかとも書かれています。
この情報を基に少し調査してみました。以降は今回行った独自調査の内容になります。また、調査対象のソフトのバージョンは現時点で最新の Ver. 12.01 です。
最初に、上記フォーラムにあったROM パラメータの情報がどこにあるかの特定です。ROM ライタのプログラムがあるフォルダを見渡すとある程度のサイズ(6.6MB)があるファイルとして InfoIC2Plus.dll がありました。ファイル名もそれっぽい感じですね。
ダンプ表示してみるとROM 名称を含むパラメータのテーブルがありました。比較のために 2732 問題が発生しない TL866A 用のソフトもダウンロード&解凍し、対応する DLL ファイルもダンプしてみました。
この中から protocol_id を特定したいのですが、上記フォーラムの情報から
次に TL866II Plus で 2732 に対応する protocol_id を決定するために TL866A で 0x31 の protocol_id を使用している他の ROM を探してみました。例えば下図の ST2764A のテーブル内のカーソル部になります。
下図から対応する TL866II Plus の protocol_id は 0x07 であることが判ります。
以上から TL866II Plus の 2732 問題に対しては 2732 のパラメータテーブル内の protocol_id を0x07 に変更すれば解決するのではないかという期待が湧いてきます。
試しに Intel の 2732 のパラメータを覗いてみると下図のようになっていました。
あれ、2732 の protocol_id は 0x0b ですが、2732A の protocol_id は既に 0x07 になっていますね。それならば 2732A で書込んだ時には 2732 問題 は発生しないのでしょうか?
まずはディバイスを Intel 2732 で選択して書込み時の波形を確認してみました。ch1(黄色)が Vpp でch2(水色)が CE/ の波形です。
2732 問題が発生している状態(Vpp が 18V の時、CE/ が high)ですね。
次に 2732A を選択して書き込んだ際の波形が下図になります。ch と信号の対応は上図と同じです。
うっ、2732 と全く同じですね ^^;
protocol_id が 0x07 でも 2732 問題が発生するという結果になりました orz
結論としては ROM 毎のパラメータが原因ではなく、protocol_id 0x07 の実装自体に問題があるということになるかと思います。
念のために CMOS 版の NMC27C32B の書込み時の波形を確認して見ました。
Vpp (黄色) が high の時に CE/ (水色)も High になり 2732 問題が発生しています。物が無いので試せてはいませんが TL866II Plus では Vpp 電圧が 18V 以下の CMOS版の 2732 でも書き込みができないということのようです。
参考としてデータシートに載っている MNC27C32B の書込み時のシーケンスも貼っておきます。
【 最後に】
対応ディバイスが 15000 程度あり、ソフトウェア開発は想像以上に大変なのでしょうが、対応を謳っているディバイスが書込めないというのは日本製では考えられないことです。せめてユーザー側でもっとフレキシブルにシーケンスの変更/追加が出来るようにしてくれたらなぁと思います。
製品情報の守秘と言う点ではあまり公開したくないかもしれませんが(でも既に回路図やVppを上昇させる内部基板の改造方法等がネットに上がっている)ソフトウェアのメンテ工数の削減という点では上記のことは有効なのではないかと思います(製品価値も上がると思います)
★追記 2022/07/02
ST の M2732A を入手できたので確認結果を追記します。
結論から先に書くと TL866II Plus で Vpp の外部注入や CE/ の強制 low を行わなくても書込みができベリファイも通りました。
書込み時の Vpp(仕様では 21V で TL866 では 18V で設定されている) と CE/ の波形を下図に示します。ch1(黄色)が Vpp で ch2(水色)が CE/ です。
上図の波形を見る限りでは Vpp onの時に CE/ が High であり 2732 問題が発生している状態です。下図にデータシートに記載されている書込みシーケンスを貼りました。一部赤書きで仕様時間を記入しましたが、ライト時の CE/ パルス幅は 最小値でも 45ms になっていますが上図のシンクロで観測した信号を見てみると CE/ のパルス自体が無いのですが、Vpp のパルス幅でも 600us 程度ですので仕様を全く満たしていません。
書込み後の TL866II Plus の画面が下図で書込み自体は 9 秒程度で完了しており、容量の 8K バイトから逆算すると 1 バイト当たり 1ms 程度で完了していることになり(画面にある通りブランクスキップは実施していない)、上記のシンクロでの観測結果と一致します。
個体差がある可能性もありますが、今回の確認結果として ST M2732A への書込み&ベリファイ動作は正常に完了するが、実際の波形では 2732 問題が発生している状態であることから
[TOP] [ 前へ ] 連載記事 [ 次へ ]
この問題についての情報が豊富な 2732 will not program TL866ii plus のフォーラムでは
- 書込み中(Vpp=18V)に CE/(18 ピン)が ハイレベルになり、ROM への書き込みが失敗する
- この問題を回避するために CE/(18 ピン)と GND(12 ピン)を外部結線した状態で書込むことで ROM への書込みが成功する
- 旧タイプのロムライタである TL866A ではこの問題は発生しない
- TL866II Plus と TL866A の ROM 書込み時の Vpp と CE/ の波形比較も掲載されている
- TL866 用のソフトウェアのブランチ開発での ROM タイプに関するパラメータが提示されていてこの中の protocol_id で書込み時のシーケンスが決まる
と言うようなことが書かれています。
この 2732 問題に関しては上記のフォーラムの参加者が TL866 の開発元のフォーラムに Issue with programming 2732 eprom due to incorrect logic の表題で問題報告とソフトウェアでの対応を要求しています(2022-5-27 に最新版でも同様の問題が発生することも報告済み)。
参考として NEC の uPD2732 と uPD2716 のプログラム時のシーケンス図を貼っておきます。
uPD2732 の書込みシーケンス |
|
uPD2716 の書込みシーケンス |
|
上記フォーラムでは 2716 は書込み中に CE/ はハイレベルのパルスが必要で 2732 はローレベルのパルスが必要であるけれど、TL866II Plus のソフトに移行する際に 2732 用のシーケンスが 2716 のもののままになってしまったのではないかとも書かれています。
この情報を基に少し調査してみました。以降は今回行った独自調査の内容になります。また、調査対象のソフトのバージョンは現時点で最新の Ver. 12.01 です。
最初に、上記フォーラムにあったROM パラメータの情報がどこにあるかの特定です。ROM ライタのプログラムがあるフォルダを見渡すとある程度のサイズ(6.6MB)があるファイルとして InfoIC2Plus.dll がありました。ファイル名もそれっぽい感じですね。
ダンプ表示してみるとROM 名称を含むパラメータのテーブルがありました。比較のために 2732 問題が発生しない TL866A 用のソフトもダウンロード&解凍し、対応する DLL ファイルもダンプしてみました。
TL866II Plus の InfoIC2Plus.dll 内 ROM パラメータテーブル(抜粋) |
|
TL866A の InfoIC.dlll 内 ROM パラメータテーブル(抜粋) |
|
この中から protocol_id を特定したいのですが、上記フォーラムの情報から
- TL866II Plus では 2716 と 2732 で同じ値である
- TL866A では 2716 と 2732 で異なる値である
次に TL866II Plus で 2732 に対応する protocol_id を決定するために TL866A で 0x31 の protocol_id を使用している他の ROM を探してみました。例えば下図の ST2764A のテーブル内のカーソル部になります。
TL866A で protocol_id が 0x31 のパラメータ例 |
|
下図から対応する TL866II Plus の protocol_id は 0x07 であることが判ります。
TL866II Plus での対応する protocol_id 値 |
|
以上から TL866II Plus の 2732 問題に対しては 2732 のパラメータテーブル内の protocol_id を0x07 に変更すれば解決するのではないかという期待が湧いてきます。
試しに Intel の 2732 のパラメータを覗いてみると下図のようになっていました。
TL866II Plus の Intel 2732 のパラメータ |
|
あれ、2732 の protocol_id は 0x0b ですが、2732A の protocol_id は既に 0x07 になっていますね。それならば 2732A で書込んだ時には 2732 問題 は発生しないのでしょうか?
まずはディバイスを Intel 2732 で選択して書込み時の波形を確認してみました。ch1(黄色)が Vpp でch2(水色)が CE/ の波形です。
TL866II Plus での 2732 書込み時の波形 |
|
2732 問題が発生している状態(Vpp が 18V の時、CE/ が high)ですね。
次に 2732A を選択して書き込んだ際の波形が下図になります。ch と信号の対応は上図と同じです。
TL866II Plus での 2732A 書込み時の波形 |
|
うっ、2732 と全く同じですね ^^;
protocol_id が 0x07 でも 2732 問題が発生するという結果になりました orz
結論としては ROM 毎のパラメータが原因ではなく、protocol_id 0x07 の実装自体に問題があるということになるかと思います。
念のために CMOS 版の NMC27C32B の書込み時の波形を確認して見ました。
TL866II Plus での NMC27C32B 書込み時の波形 |
|
Vpp (黄色) が high の時に CE/ (水色)も High になり 2732 問題が発生しています。物が無いので試せてはいませんが TL866II Plus では Vpp 電圧が 18V 以下の CMOS版の 2732 でも書き込みができないということのようです。
参考としてデータシートに載っている MNC27C32B の書込み時のシーケンスも貼っておきます。
MNC27C32B の書込み時のシーケンス |
|
【 最後に】
対応ディバイスが 15000 程度あり、ソフトウェア開発は想像以上に大変なのでしょうが、対応を謳っているディバイスが書込めないというのは日本製では考えられないことです。せめてユーザー側でもっとフレキシブルにシーケンスの変更/追加が出来るようにしてくれたらなぁと思います。
製品情報の守秘と言う点ではあまり公開したくないかもしれませんが(でも既に回路図やVppを上昇させる内部基板の改造方法等がネットに上がっている)ソフトウェアのメンテ工数の削減という点では上記のことは有効なのではないかと思います(製品価値も上がると思います)
★追記 2022/07/02
ST の M2732A を入手できたので確認結果を追記します。
結論から先に書くと TL866II Plus で Vpp の外部注入や CE/ の強制 low を行わなくても書込みができベリファイも通りました。
書込み時の Vpp(仕様では 21V で TL866 では 18V で設定されている) と CE/ の波形を下図に示します。ch1(黄色)が Vpp で ch2(水色)が CE/ です。
ST M2732A 書込み時音の Vpp と CE/ 信号 |
|
上図の波形を見る限りでは Vpp onの時に CE/ が High であり 2732 問題が発生している状態です。下図にデータシートに記載されている書込みシーケンスを貼りました。一部赤書きで仕様時間を記入しましたが、ライト時の CE/ パルス幅は 最小値でも 45ms になっていますが上図のシンクロで観測した信号を見てみると CE/ のパルス自体が無いのですが、Vpp のパルス幅でも 600us 程度ですので仕様を全く満たしていません。
ST M2732A の書込みシーケンス |
|
書込み後の TL866II Plus の画面が下図で書込み自体は 9 秒程度で完了しており、容量の 8K バイトから逆算すると 1 バイト当たり 1ms 程度で完了していることになり(画面にある通りブランクスキップは実施していない)、上記のシンクロでの観測結果と一致します。
ST M2732A の書込み後の画面表示 |
|
個体差がある可能性もありますが、今回の確認結果として ST M2732A への書込み&ベリファイ動作は正常に完了するが、実際の波形では 2732 問題が発生している状態であることから
- ST M2732 は書込み時に CE/ が High でも書込み可能である(らしい)
- 仕様上のライトパルス幅の 1/100 程度の Vpp パルスでも書き込みが可能である
[TOP] [ 前へ ] 連載記事 [ 次へ ]
前の5件 | -