Sim's blog

電子工作はじめてみました

FT2232DモジュールにEEPROMを載せました

2009-07-18 01:17:51 | 電子工作
ジャンクNICからはずした部品、その後・・・の続きになります。

秋月のFT2232Dモジュールに未実装だったEEPROMを載せました。EEPROMはAT93C56で入手先はdigikeyです。前回はジャンクNIC基板からはずしたEEPROMを載せようとしましたが、たぶんはずすときにICを壊してしまって、うまく動きませんでした。今回は新品なので余裕で動きました。

digikeyから届いた部品たち


AT93C56のレール


はんだづけしました。

結構、ぎりぎりです。ジャンパーピンをはずし忘れて、先っぽを焦がしてしまいました(写真右)。

今回はインストールしませんでしたが、デバイスドライバーはFTDIのページからダウンロードできます。

FT2232Dの設定をEEPROMに書き込むにはMProg3.5というツールを使います。MProg3.5はFTDIのユーティリティのページからダウンロードできます。

FT2232Dを初めてPCに挿したときは、COMポートが2つ見えます。JTAGを使うには片方をD2XXに変えます。DesignWave誌の2008年6月号に載っている設定にしてみました。

MProg3.5の画面です(クリックすると拡大します)。


新規作成(Fileメニュー → New)をすると、Device Typeを選べるようになります。FT2232Dを選びます。Device Typeを選ぶと他の設定もできるようになります。設定が終わったらセーブします。セーブしないと書き込めないみたいです。EraseしてからProgramすることで書き込み完了です。

USBケーブルを抜いて、挿しなおすと、今度はCOMポートが1つに減っています。

MProg3.5でToolメニュー → Readとすると、EEPROMの内容を読み出してダンプしてくれます。00-ffの256バイトしか使っていないみたいです。AT93C46は128バイトなので00-7fです。その場合は設定のメモリが足りないですが平気なんでしょうか?今回使ったAT93C56は256バイトなので00-ffまでメモリがあります。特にProduct Descriptionがa0番地あたりにいるので、JTAGで使うときはAT93C46でなく、AT93C56またはAT93C66にした方がよさそうです。

前回駄目だったので、もしかして壊しちゃったかと、びびってましたが動いてよかったです。

それはそれとして、digikeyから届くのがやたら速いです。16日の0時頃注文して届いたのが17日の15時頃だったので39時間です。

最新の画像もっと見る

24 コメント

コメント日が  古い順  |   新しい順
Mprog3.5動作しました (ノンノ)
2009-07-18 12:03:42
Mprog3.5がAE-FT2232(D)で動作しました。
これまで、何度もスキャンするとプログラムが閉じていましたが、
(EEPROMはNS-93C46です)

USB関連のソフトでテストしているうち、何故か動作するようになりました。
設定は「Sim's」さんと同じにしています。

USBシリアルコンバータ、
USBシリアルコンバータA、
USBシリアルコンバータB、
USB複合デバイス、
USBシリアルポート(COM?)
が沢山出来ている状態ですが、
下記のソフトで
不要な分を消去できます。
>devmg.bat ver1.0 2008.6.13
>このBATファイルは自由に改変して配布できます。
>http://ekousaku.web.fc2.com/
>趣味の電子工作の部屋 by すん
返信する
Unknown (ノンノ)
2009-07-18 12:47:11
93C46でも良いようで、それ以上は2232のリセット状態の時、バスとして外部回路から使えるようです。

Extended EEPROM Support
The FT2232D supports 93C46 (64 x 16 bit), 93C56 (128 x 16 bit), and 93C66 (256 x 16 bit) EEPROMs. The extra space is not used by the device, however it is available for use by other external MCU / logic whilst the FT2232D is being held in reset. There is now an adiitional 64 words of space available (128 bytes total) in the user area when a 93C56 or 93C66 is used.
返信する
re:Unknown (Sim)
2009-07-19 23:39:39
こんにちは、ノンノさん
動いたんですね。おめでとうございます。
93C46の件ですが、補足しておきます。
MProg3.5は93C46に存在しない領域に書き込んでいます。具体的には上で書いたようにProduct Descriptionとかです。これはUSB機器の名称です。OCDのJTAG設定ファイルのft2232_device_descに書いておきます。93C46だと、ここが設定できないので、FTDIのデフォルトの値をそのまま使うことになります。問題になりそうなのは、他のFT2232機器を使うときに名前がぶつかる危険性があることくらいです。他にFT2232機器は使わないとかなら、なんでもいいはずですが、念のため、独自の機器名を設定しておいたほうが安全です。
返信する
Unknown (ノンノ)
2009-07-20 11:03:05
元のROMは何かが書かれているので、
始めにスキャンせずに、ブランク書き込みを外して
新規データを作り、それを書き込んだのが良かったようです。
Read EEPROM successful Device 0
0000 : 01 08 03 04 10 60 00 05 A0 32 08 00 00 02 96 0A .. .. `. .. 2. .. .. ..
0010 : A0 0E AE 12 46 00 0A 03 46 00 54 00 44 00 49 00 .. .. .F .. .F .T .D .I
0020 : 0E 03 4D 00 79 00 4A 00 54 00 41 00 47 00 12 03 .. .M .y .J .T .A .G ..
0030 : 46 00 54 00 53 00 39 00 52 00 48 00 47 00 48 00 .F .T .S .9 .R .H .G .H
0040 : 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 .. .. .. .. .. .. .. ..
0050 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .. .. .. .. .. .. .. ..
0060 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .. .. .. .. .. .. .. ..
0070 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C7 EE .. .. .. .. .. .. .. ..
以下は「00~7F」のミラーです。
0080 : 01 08 03 04 10 60 00 05 A0 32 08 00 00 02 96 0A .. .. `. .. 2. .. .. ..
0090 : A0 0E AE 12 46 00 0A 03 46 00 54 00 44 00 49 00 .. .. .F .. .F .T .D .I
00A0 : 0E 03 4D 00 79 00 4A 00 54 00 41 00 47 00 12 03 .. .M .y .J .T .A .G ..
00B0 : 46 00 54 00 53 00 39 00 52 00 48 00 47 00 48 00 .F .T .S .9 .R .H .G .H
00C0 : 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 .. .. .. .. .. .. .. ..
00D0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .. .. .. .. .. .. .. ..
00E0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .. .. .. .. .. .. .. ..
00F0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C7 EE .. .. .. .. .. .. .. ..

以下は 「MyJTAG.ept」の内容です。
[Basic Details]
Device Type=8
VID PID Type=0 「FTDIの規定の数値を使う」
USB VID=0403
USB PID=6010
[USB Power Options]
Bus Powered=1
Self Powered=0
Max Bus Power=100
[USB Serial Number Control]
Prefix=FT
Use Fixed Serial Number=0 「使用者連番の当て方は 1~8 です」
Fixed Serial Number=12345678
[USB Remote WakeUp]
Enable Remote WakeUp=1
[Windows Plug and Play]
Enable Plug and Play=1
[USB String Descriptors]
Manufacturer=FTDI
Product=MyJTAG
[Programming Options]
Only Program Blank Devices=1
[BM Device Specific Options]
USB Version Number=1
Disable Serial Number=0 「製造連番は 使いません」
IO Pin Pull Down in Suspend=0「IOプルダウンは 使いません」
[Dual Device Specific Options A] 「Aオプション」
RS 232 mode=0 「 使いません」
245 FIFO mode=1 「 使います」
245 CPU FIFO mode=0 「 使いません」
OPTO Isolate mode=0 「 使いません」
High Current Drive=0 「 使いません」
[Dual Device Specific Options B] 「Bオプション」
RS 232 mode=1 「 使います」
245 FIFO mode=0 「 使いません」
245 CPU FIFO mode=0 「 使いません」
OPTO Isolate mode=0 「 使いません」
High Current Drive=0 「 使いません」
[Dual Device Driver Options A]
Virtual Com Port Driver=0 「 使いません」
D2XX Driver=1 「 使います」
[Dual Device Driver Options B]
Virtual Com Port Driver=1
D2XX Driver=0 「 使いません」
[R Device Specific Options]
Invert TXD=0 「 使いません」
Invert RXD=0 「 使いません」
Invert RTS#=0 「 使いません」
Invert CTS#=0 「 使いません」
Invert DTR#=0 「 使いません」
Invert DSR#=0 「 使いません」
Invert DCD#=0 「 使いません」
Invert RI#=0 「 使いません」
C0 Signal=-1 「 使います」
C1 Signal=-1 「 使います」
C2 Signal=-1 「 使います」
C3 Signal=-1 「 使います」
C4 Signal=-1 「 使います」
Enable Ext Osc=0 「 使いません」
High Current I/O=0 「 使いません」
Load D2XX Driver=0 「 使いません」
In EndPoint Size=0 「 使いません」
[DualHS Device Specific Options]
IFAIsFifo7=0 「 使いません」
IFAIsFifoTar7=0 「 使いません」
IFAIsFastSer7=0 「 使いません」
AIsVCP7=0 「 使いません」
IFBIsFifo7=0 「 使いません」
IFBIsFifoTar7=0 「 使いません」
IFBIsFastSer7=0 「 使いません」
BIsVCP7=0 「 使いません」
IOPinDriveDual=0 「 使いません」
UTMIDrive=0 「 使いません」
UTMIVendor=0 「 使いません」
SuspendOnD7Low=0 「 使いません」
[QuadHS Device Specific Options]
AIsVCP8=0 「 使いません」
BIsVCP8=0 「 使いません」
CIsVCP8=0 「 使いません」
DIsVCP8=0 「 使いません」
ARIisTXDEN=0 「 使いません」
BRIisTXDEN=0 「 使いません」
CRIisTXDEN=0 「 使いません」
DRIisTXDEN=0 「 使いません」
IOPinDriveQuad=0 「 使いません」
返信する
re:Unknown (Sim)
2009-07-20 23:35:31
こんにちは、ノンノさん
なるほど、93C46と93C56ではメモリイメージが違うようですね。少なくとも93C56ではイメージはありません。
0000 : 01 08 03 04 10 60 00 05 80 32 08 00 00 02 96 0A .. .. `. .. 2. .. .. ..
0010 : A0 0E AE 12 56 00 00 00 00 00 00 00 00 00 00 00 .. .. .V .. .. .. .. ..
0020 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .. .. .. .. .. .. .. ..
0030 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .. .. .. .. .. .. .. ..
0040 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .. .. .. .. .. .. .. ..
0050 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .. .. .. .. .. .. .. ..
0060 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .. .. .. .. .. .. .. ..
0070 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .. .. .. .. .. .. .. ..
0080 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .. .. .. .. .. .. .. ..
0090 : 00 00 00 00 00 00 0A 03 46 00 54 00 44 00 49 00 .. .. .. .. .F .T .D .I
00A0 : 0E 03 6D 00 79 00 4A 00 54 00 41 00 47 00 12 03 .. .m .y .J .T .A .G ..
00B0 : 46 00 54 00 53 00 39 00 50 00 48 00 45 00 4C 00 .F .T .S .9 .P .H .E .L
00C0 : 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 .. .. .. .. .. .. .. ..
00D0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .. .. .. .. .. .. .. ..
00E0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .. .. .. .. .. .. .. ..
00F0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 DE EC .. .. .. .. .. .. .. ..
それにしてもスカスカですね。
返信する
Unknown (ノンノ)
2009-07-21 00:22:38
>それにしてもスカスカですね。
「The extra space is not used by the device, however it is available for use by other external MCU」
は何処へ行く(行った)のでしょうか?
返信する
re:Unknown (Sim)
2009-07-22 09:36:51
こんにちは、ノンノさん
ええ、不思議です。
そもそも分からないのは、FT2232はEEPROMの種類をどうやって見分けているんでしょうね。型番を問い合わせるようなコマンドもないように見えます。
最初思っていたのは、どのEEPROMでも同じ動作をしていて、互換な部分だけ使っているのではないかということでした。おかげさまで、EEPROM毎に動作が違うっぽいことが判明して、謎は深まりました。
上のダンプを見ていただくと分かりますが、93C56だと25-94の連続した128バイトが00になっています。もしかすると、ここのことなのかもしれません。
返信する
Unknown (ノンノ)
2009-07-22 11:47:56
ORGは内部で1MΩプルアップされていて
1.8vオペレーションではVddに接続し無ければならないようです。

AT93C46ではアドレスがA5からA0、
AT93C56、AT93C66ではアドレスがA7からA0、
ですから、FT2232Dでは 3bitのコマンドに続き MSBから
A6~A0までのアドレスを出していて

AT93C46ではA6の所はシャドーイメージに成り二重に見えたりするんでしょうか?
AT93C56、AT93C66では0~15、96~BF、(チェックコード?)FE~FF
の様に配置されているのかも知れません
返信する
re:Unknown (Sim)
2009-07-23 21:03:14
こんにちは、ノンノさん
AT93C46~66のデータシートみてみました。これはmicrowireという接続方式みたいですね。そもそも送るアドレスのビット数自体が違うけど、もしかすると余分に送ったビットは単に無視されるだけとかだったらAT93C46~66で動くようなこともできるのかもしれません。
と思ったけど、writeのときにはデータの一部とみなされちゃうから、やっぱり93C46のときは、ちゃんとアドレスを必要な分だけ送る必要がありそうです。
見た目、ノンノさんのダンプと私のダンプは結構対応してますね。私の方で95以降のデータが15からに書かれるとちょうどノンノさんのにぴったりな感じです。

返信する
なんとICが (ノンノ)
2009-07-28 15:31:37
部品箱から10個見つかりました。
基板から外さなくても良かったのに、
まあいいや。
返信する

コメントを投稿