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 問題が発生している状態であることから
★追記 2022/09/01
TL866II Plus の現時点での最新のソフトウェア(Ver12.15)で 2732 問題の対応を確認してみました。結果は下図(ch1(黄色)がVpp、ch2(水色)が CE/ )のように Vpp が 18V の時に CE/ が high レベルであり、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 パルスでも書き込みが可能である
★追記 2022/09/01
TL866II Plus の現時点での最新のソフトウェア(Ver12.15)で 2732 問題の対応を確認してみました。結果は下図(ch1(黄色)がVpp、ch2(水色)が CE/ )のように Vpp が 18V の時に CE/ が high レベルであり、2732 問題の対応はなされていませんでした。
Ver12.15 での 2732 問題(改善無し) |
|
[TOP] [ 前へ ] 連載記事 [ 次へ ]
コメント 0