むかしこんなの(コメント欄が重要^^)を海外で見かけてEEPROM(DIP8ピンの24C16)の仕入まではやっていました^^;
24C16も今日掘り返すまでは埋もれていましたが、割とサクッと見つかったのでブレッドボードで実験
化石の様なネタですが、記録を残すということで
まずは仕組みから...
(1) CY7C68013A(所謂EZ-USBFX2LP)はUSBデバイスを作る際にVID/PIDを外部EEPROMに持てる
(2) そのEEPROMの容量によってアクセスが8bit毎(24C00~16)と16bit毎(24C32~)とに分かれる
(3) LCSOFT 製の基板には24C128(SOP8ピン)が載っている(某社のVID/PID書込済)
(4) ジャンパのJP1はショートだとこの24C128をEZ-USBFX2LPのboot用にI2Cアドレス0xA2を割り当て、オープンだとSCL/SDAに繋がった8bitアクセスのEEPROMにI2Cアドレス0xA0を割り当てる
JP1がオープンかつI2Cに何もぶら下げていない場合はEZ-USBFX2LPのデフォルトのVID/PIDが使われる
(5) JP1がショートのままでこの基板をUSBにつなぐと、24C128にI2Cアドレス0xA2が割り当てられそこに書かれたVID/PIDでOS側で認識しに行くが、某社ソフトは8bitアクセスなEEPROMをI2Cアドレス0xA0に捜しに行くが無いので正常起動しない
(6) 24C128を8bitアクセスのEEPROMに載せ換えて、VID/PIDを書直せば(5)の問題は解決するが面倒
(7) そこで基板自体には手を加えず(!)、JP1はショートのまま、基板に引き出されているI2CのSCL/SDAにターゲットデバイスのVID/PIDを書いた8bitアクセスなEEPROMを載せる
(8) どうもEZ-USBFX2LPは取敢えずI2Cの0xA0を見に行くようで、JP1の状態に関わらず、I2Cに8bitアクセスなEEPROMがつながっていればそこからVID/PIDを取得してデバイスをOSに認識させる
(9) せっかくなので基板上の24C128には類似ハードウェア用の別VID/PIDを書いておく
(10) I2Cに載せた外付けEEPROMのSDAにスイッチをつけることで2つのデバイスを切り替えられる
(11) スイッチがONでSDAがつながっていれば外付けEEPROMが有効で、切ってあれば基板上の24C128が使われる
そして具体的な接続は、
EZ-USBFX2LP基板
SCL --> 4.7Kでプルアップして8bitアクセスEEPROMのSCLへ
SDA --> 4.7Kでプルアップして8bitアクセスEEPROMのSDAへ(SWをつけてON/OFF出来るように)
3.3V --> 8bitアクセスEEPROMのVCCへ
GND --> 8bitアクセスEEPROMのGNDへ
EEPROMの残りのピン
A0/A1/A2/WP --> GNDに落とす
信号はEZ-USBFX2LP基板のPB0~7から拾うようだが、保護のため其々にシリーズ抵抗4.7Kを入れ、またダイオードを挟んで3.3Vで吊る...、若しくはバッファ(74HC244/245)を入れる
1x20のピンソケットが2個、バッファIC等が必要だ...
追記
バッファに74HC245を入れたりした場合、
入出力方向を固定すると某ソフトの出力機能が使えないので切り替えスイッチをつけた例が^^;
バッファを入れずシリーズ抵抗とダイオードだけならこれは不要か
追記2
EZ-USBFX2LPの開いてるとこにADC(TLC5510)の出力をつなぐと...^^;