[H8-ML(6003)] H8_3069でEEPROM の検証方法
From: ida@xxxxxxxxxxxxxxxxxxxx
Date: 2006年07月28日(金)17時13分12秒
こんにちは、井田です。

現在設定データの保存用に24LC256(MICROCHIP)のEEPROMを使用しています。

H8/3069でポート6の0〜1bitを使用して、EEPROMを制御しようとしています。
bit0:SDA
bit1:SCL

過去ログで
小島 央さんのFlight Feather HP
ttp://www008.upp.so-net.ne.jp/funfly/index.html
を見つけ、
H8/3048用に書かれたEEPROM用プログラムを仕様させていただいています。

書込み処理を行った後に、読み込み処理を行うと0xffとしか値が返ってきません。

書込みデータ アドレス
     1 0
     2 1
     3 2
     4 3

読込みデータ アドレス
    0xff 0
    0xff 1
    0xff 2
    0xff 3

また、
H8から"h"を出力するとき、ポートは入力モードとして、プルアップ抵抗で"h"を
保証します。 "L"を出力するときはポートを出力モードにします。
つまり、データ送信時にはポートに書くデータは常に0にしておいて、たとえば010とデータ
ビットを制御したい場合、クロックに同期させながら、
 0 出力モード設定(0が書かれているから"L"が出る)
  1 入力モード設定(プルアップ抵抗によって"h"になる)
  0 出力モード設定
  :
と制御します。 これによってメモリ側から出力されるack(="L")信号と干渉せずにackを
読みとることができます。
というのを見つけ、

下記のように試してみたところ
//	P6DR.BYTE &= ~0x01;
	P6DDR |= 0x01;	//出力モードでLow

0xffでなくて0が返ってきました。

書込み処理が悪いのか、読み込み処理が悪いのかが、現在わかっていません。
どのように検証していけば良いのか助言いただけましたら幸いです。

オシロを繋いでSDAとSCLの波形を見ていますが、波形は綺麗なので、干渉している様子は見受けれませんでした。



スレッド概略
[表示中](起点)
 ├[6004(1)]
 └[6005(2)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]