- ベストアンサー
kt0911と24LC××の関連について
- kt0911と24LC××の関連について。kt0911の動作が正常であるにもかかわらず、使用したeeprom(24LC512)からの読み出しは正常に行われません。SDAとSCLの信号をoffにしても何も起こらず、LCDの周波数表示の変化しか確認できません。どのようにすれば、eepromのI/O端子をハイインピーダンスにすることができるでしょうか。
- kt0911と24LC××の関連について。使用したeepromは24LC512であり、kt0911に正常に装着されています。しかし、kt0911からの出力信号が正常に行われず、機能しない状態です。SDAとSCLの信号をトグルSWを使用してオフにするものの、LCDの周波数表示しか確認できず、キースイッチの操作が全く効果がありません。eepromのI/O端子をハイインピーダンスにする方法や、2Kのeeprom(24LC02)を使用すると回路を変更する必要があるかもしれません。
- kt0911と24LC××の関連について。kt0911の動作は正常であり、24LC512のSDAとSCLにはI2Cの通信以外の場合においてハイインピーダンスになるのか不明です。SDAとSCLの信号のオフ操作を試みましたが、LCDの周波数表示が変化するだけで、キースイッチは機能しません。2Kのeeprom(24LC02)を使用すると回路を変更しなければならない可能性があります。ハイインピーダンスにするための方法が分からないため、解決策を探しています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Nol.1,2 です。 KT0911 のデータシートも見てみました。 No.1>違いはソフトウェア的内容なので、eeprom を使う信号を生成するソフトウェアを No.1>変更する必要があります。 信号を生成してる KT0911 内部はいじれないので、無理でしたね。 ともあれ、24LC512を使って予定通り動かない理由は大きく2つ考えられます。 1. 24LC512 は使えない。KT0911 が出す信号はあくまで24LC02用。 2. EEPROM の使い方が何か足りない。 1.について、もしかすると 24LC512 を使える可能性がなくもないです。 シーケンシャルリードではアドレス指定を最初に1回は必要、と理解してますが もしかするとアドレス指定せず読み出すと「最初は0番地から」と動作するかもしれません。 これがもしやデータシートのどこかに記載されてるか、または暗黙の了解なら 24LC02と24LC512の区別なく読み出し可能です。 他にちょっと気になったのですが、 >配線もデーターシートに記載して有るサンプル配線図で作っています。 SDA、SCL はI2C規格では両方共オープンコレクタ(オープンドレイン)でプルアップ抵抗が要るような気がします。 もっとも、KT0911 と EEPROM が1:1なので 「SCL は KT0911が常にドライブ」でもかまいません。 ですが SDA は、EEPROM 出力する期間でも"High"はライブしませんので必須です。 (EEPROM データシートのブロック図にも、SDA出力はオープンドレインの図になってます) あと、EEPROM のA0,A1,A2 入力pin って何か処理してますか?オープンのままだとまずい気がします。
その他の回答 (2)
- umamimi
- ベストアンサー率39% (144/362)
No.1 です。補足です。 >実際は24LC02と言う2Kのeepromに対して、24LC512と言う512kのeepromを使いました。 24LC02 を使う設計なのだが 24LC512 を使おうとした、という事でしょうか。 部品の型番は1番でも違えばベツモノです。 (ついでに言えば、有名な部品ならともかく異メーカなら一見同型番でも内容も同じ保証は ありません) 中には置き換えて使える事がありますが稀有です。 正攻法ではデータシートを読み使い方の違いを吟味して実地試験を行い判断します。が、 ホビー用途なら「やってみて動けばOK」もアリです。 でも eeprom 以外の部分に動作実績がない場合は、動かない原因がどっちなのか、も判断できないでしょうね。 >使えなければ、回路を変更して使えますか。 回路というかハードウェアは同じなので変えようがありません。 違いはソフトウェア的内容なので、eeprom を使う信号を生成するソフトウェアを 変更する必要があります。
補足
umamimiさん、ありがとうございます。 確かに番号一番違っても別物と言う事も有ります。 「でも eeprom 以外の部分に動作実績がない場合は、動かない原因がどっちなのか、も判断できないでしょうね。」 ハイ、これも確かに仰る通りで、現状では確かめようが有りません。 radio-icは新品に交換してみましたし、配線もデーターシートに記載して有るサンプル配線図で作っています。 配線も確認してみました。 現状行き詰っています。 後は最初の回答で仰って貰っているように、配線図通りの 24LC02を購入して書き込みテストしてみるしかないようです。 このradio-icはI2Cの通信先としてeepromの24LC02を使い 最初の電源ON時にマスターであるRADIO-ICは、EEPROMのレジスター設定用のデーターを読み取り、radioの初期設定を行うと言うものです。 マスターのradio-icはデーターの其々の機能に付いて、8bitの2つのデーターを受け取る通信をするそうです。 この二つのデーター16bitをeepromに格納する為に eepromのアドレスを二つに渡って振り分けて書き込むように指定されています。 0x00 8bit 0x01 8bit この二つのアドレスのデーターで、radio-icのひとつの機能として振り分けられています。
- umamimi
- ベストアンサー率39% (144/362)
>eepromのI/O端子がハイインピーダンスに成る時 I2C インタフェースのスレーブデバイスなので、 データを読出す以外はハイインピーダンスです。 (1バイトデータ読み出しACK応答の途中のどこかなら eeprom がI/O端子を駆動します) >同じ24LCの2Kと512KのEEPROMですが、何もしなくても同じ様に使えますか。 正確には両者のデータシートを見て頂きたいですが、 http://www.google.co.jp/#output=search&sclient=psy-ab&q=24LC02+OR+24LC512+datasheet&oq=24LC02+OR+24LC512+datasheet&gs_l=hp.3...2011.11458.1.12076.33.32.1.0.0.2.117.2399.28j4.32.0...0.0...1c.4j1.12.hp.nSeHLcXpxzs&psj=1&bav=on.2,or.r_qf.&bvm=bv.45960087,d.dGI&fp=41016f5bc39d6827&biw=826&bih=645 ざっと眺めてみた限りでは、 24LC512 に対してはアドレス指定に 16bit 必要なのに、 プログラムが 24LC02 用なら 8bitしか指定してないので、 24LC512 は正しく使えないと思います。 シーケンシャルリードも、最初の1バイトにはアドレス指定が要るので同様です。 (過去質問から関連してるみたいですが探してません。)
補足
umamimiさん、返事遅くなりました、すみません。 「予定通り動かない理由は大きく2つ」 はい、A0,A1,A2は全てGNDに落としVSSに繋げています。 SDAとSCLは10KΩでプルアップしています。 他には、32.768khzは3610のLCD DRIVE基板を使いましたので そちらに発振器をつけてkt0911へ供給しています。 24LC02を発注しましたので、着いたら交換してみる積りです 結果は又ご報告させて頂きます。 ありがとうございました。