EEPROMについてご教授願いたい

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
EEPROMを使って、データの読み書きが出来るプログラムを作ろうとしてるのですが
参考文献が少なく八方塞です

知ってる方がいれば教えてください

開発環境
C言語
H8マイコン
2デフォルトの名無しさん:2008/07/01(火) 20:42:43
お断りします。
3デフォルトの名無しさん:2008/07/01(火) 20:55:05
まず、データシート読もうな?
4デフォルトの名無しさん:2008/07/01(火) 21:04:07
>>3
データシートって何でしょうか;
EEPROMしかない状態で…
5デフォルトの名無しさん:2008/07/01(火) 21:05:48
EEPROMって何?
6デフォルトの名無しさん:2008/07/01(火) 21:14:40
>>5
電気的にデータを書き換えられるROMです
データロガーとして使いたいのですが、予想以上に苦戦してます
7デフォルトの名無しさん:2008/07/01(火) 21:45:22
データシートなしで何をするつもりだ?とりあえず型番からメーカサイトを探して
データシートを入手して、それからだ。
8デフォルトの名無しさん:2008/07/02(水) 03:10:20
>>7

解かりました
調べてみます
9デフォルトの名無しさん:2008/07/02(水) 07:28:44
>8

あと、sageろ。
101:2008/07/02(水) 11:33:33
型番分かりました

24lc64です

今から翻訳して読んでみます
11デフォルトの名無しさん:2008/07/02(水) 12:40:02
すぐに過去の遺物となる言語スレが林立する中で、こういう話題はいいね。
12デフォルトの名無しさん:2008/07/02(水) 16:01:59
I2Cの石か・・・

CPUにI2Cインターフェースなかったら、ちょっとメンドウかもな
13デフォルトの名無しさん:2008/07/02(水) 23:48:17
翻訳?日本語のやつがあるじゃん。
ttp://ww1.microchip.com/downloads/en/DeviceDoc/21930a_jp.pdf
141:2008/07/03(木) 13:19:26
>>13
おお
ありがとうございますm(__)m
151:2008/07/03(木) 13:29:04
>>12
I2C通信ならしたことあるのでたぶん大丈夫だと思います
161:2008/07/04(金) 16:43:59
とりあえず、回路組み終えました

ただ、どのような命令で動くのかまったく分からないです
17デフォルトの名無しさん:2008/07/04(金) 17:01:16
おいw>>13のデータシート読んだんじゃないのかよwww
181:2008/07/04(金) 17:18:26
>>17
読んだのですがorz

月曜にまた出直してきます
19デフォルトの名無しさん:2008/07/05(土) 06:12:25
読むのと理解するのは別の概念、理解の後の実践もね
201:2008/07/07(月) 14:17:55
>>19
わかりました
頑張りますorz
211:2008/07/09(水) 10:36:46
すごく初歩的な質問なんでが;
EEPROMに書き込めるデータってcharだけじゃないですよね?
22デフォルトの名無しさん:2008/07/09(水) 11:49:13
>>21
えーと、かなり理解に苦しむ質問なんだけど・・・

2バイトデータを書きたいとかそういう話し?
だったら、自分でエンディアン決めて1バイトずつ書けばいい
231:2008/07/09(水) 12:40:24
>>22
今のところなんとか英数字を書き込めるところまで来たのですが、
intなどではできず、charのみでしか書き込めないんですよorz

普通ならintとかでもできるんですかね?
24デフォルトの名無しさん:2008/07/09(水) 13:29:53
>>23
1アドレスに書けるのは8bitなんだから、
intを書こうとしたら、8bitずつに分解して書く必要があるんだけど
ちゃんとやってる?
251:2008/07/09(水) 13:46:25
>>24
一応今は半角数字一文字ずつの入力を試しにしてるのですけど;

というか…
もしかしてintでもa='1'のような表記をしないと書き込めないのですか?
26デフォルトの名無しさん:2008/07/09(水) 14:18:06
>>25
ごめん、付き合い切れないw

ポインタとかアドレスとかCの基礎やりなおして
271:2008/07/09(水) 14:22:12
>>26
何か解りづらいところでもあったでしょうか;

ポインタとアドレスはある程度把握してます
まぁ、がんばります
281:2008/07/09(水) 14:28:49
ああ、
''はアドレスに代入してたのですね

解りました
29デフォルトの名無しさん:2008/07/09(水) 22:42:28
また単発質問スレ立ててボケが・・・
と思ってたけど、1の相手するだけで1000行きそうだなw

しかし、みんなやさしいな
30デフォルトの名無しさん:2008/07/09(水) 23:15:45
int型は4バイトかな?

int a = 0x00745687;
char b[4];

memcpy(&b, &a, sizeof(int));

で、b配列に入ってるデータを1つずつ書き込む。
OK?
31デフォルトの名無しさん:2008/07/10(木) 11:35:06
>>29
>また単発質問スレ立ててボケが・・・
それでも途中までは
 「このスレが役に立つと思う人もいるかも知れない」
と思ってたんだが、>>21 で腰が砕けそうになった。
>>1 は味噌汁で顔洗って出直した方がいい。
32デフォルトの名無しさん:2008/07/10(木) 12:25:12
つーか、>28が奮っている。
331:2008/07/14(月) 14:50:22
お久しぶりです
皆様すいませんorz

ちょっと以前使ってたCの本最初から読み返してきましたorz


地道にがんばっていきます…
気が向いて死ぬほど暇なときにでも相手してくれたら嬉しいですorz


>>30
分かりました
ありがとうございますorz
34デフォルトの名無しさん:2008/07/26(土) 23:19:34
さらっと便乗質問させてください。
秋月のフラッシュromライタ LEPER-3Cの27XXX設定項目に select algorithmってのがあって、
項目が
Q-100uS
Q-50us
N-100uS
I-500uS
I-1ms
とまぁ、選択できるのですが、
これはいったい何の項目なのでしょう?
35デフォルトの名無しさん:2008/07/26(土) 23:46:10
そのライタ使ったことないので、あてずっぽうで書くと
書き込みに必要なパルス幅じゃね?

てか、マニュアルとかないのか・・・それ
36デフォルトの名無しさん:2008/07/26(土) 23:53:58
QとかNとかIってなんなんでしょうね?

英文版には書いてないです。
中文版には書いてあるみたいですが全く読めません。
ttp://www.leap.com.tw/download/manual/programmer/Flash_Writer_CHINESE.pdf
37デフォルトの名無しさん:2008/07/28(月) 12:43:09
>>36
書き込みアルゴリズムの違いでしょ。
NはNECとか、IはIntelじゃね?
# Qはしらねw
38デフォルトの名無しさん:2008/07/28(月) 23:59:42
QUALCOMMとQuantumしか思いつかねえ
39デフォルトの名無しさん:2008/07/29(火) 11:16:48
メーカじゃないかもよ。その辺りはデバイス屋さんのいそうな板で聞けばいいんじゃね?
40デフォルトの名無しさん:2008/09/18(木) 16:24:21
ハー、今時の人はCPUの仕様もマシン語も知らなくても、どころか
コンピュータのハードウェアが何やってるか全くイメージが無くても
H8マイコンとC言語を使ってROM焼きをやろうとするのか。

いや、時代は変われば変わるもんだ!(いくら何でも無謀だ)

>1さんはLittle EndianとBig Endianの区別も無さそう。
つーか、整数の2進数表現や16進数表現を理解してるんだろうか?
41デフォルトの名無しさん:2008/09/18(木) 16:57:07
>36
多分、もうこのスレを見てないとは思うが一応、
メーカーサイトのダウンロードページ
ttp://www.leap.com.tw/english/products/dow.htm

にある"Leaper-3 User's Guide"の英語版(以下)を参照の事。
http://www.leap.com.tw/download/manual/programmer/LP-3_manual.pdf

"Q","N","I"はそれぞれQuick Pulse、Snap Pulse、Inteligent Pulse
の事だそうだ。この情報で書き込み法を選択するのに役立つかどうか
知らんが、後は書き込み対象のFlash ROMのデータシートと見比べて
適当に選んで実際に書き込めれば良いんじゃね?

ちなみにLeaper-3Cのユーザーガイドの方は本当にQuick User Guideで
何の説明も無いから、その元機種らしいLeaper-3のユーザーガイドを
参照したわけ。データシートを探す時は応用を利かせる事が大事。
42デフォルトの名無しさん:2008/09/19(金) 15:42:11
自分も今EEPROMについて勉強してるのですが

参考に出来る資料とかありますか?
43デフォルトの名無しさん:2008/09/19(金) 15:59:35
データシートがあればそれで充分だろ
44デフォルトの名無しさん:2008/09/20(土) 13:48:00
>42
ある程度、(ハードウェア的に)メモリを扱う事に慣れていれば
>43さんの言う通り、その目的に使えそうなモノのデータシートを
読み比べれば十分だと思うが、どんなメモリコントロール回路も
設計した事無いとか、Flash MemoryとEEPROMの区別が言えないとか
言う状態ならこんな本を読むのも良いかも。

ttp://www.cqpub.co.jp/hanbai/books/32/32701.htm

さらにもし >1さんのような状態なら、まずは「コンピュータハードウェア入門」
とか「マイコン入門」みたいなコンピュータはどういう風にデータを
いろんなメモリに読み書きしてるか?とか、その内部表現は?とかを
解説している本を読んだ方が良いかも知れません。

整数の二進数表現とかLittle EndianかBig Endianかとか、
バイトマシンとワードマシン(最近ほとんど無いけど)の区別とか
もっと基本的にノイマンアーキテクチャとはどういうものかとか
そう言う事をまず知った方が良いかと思います。
45デフォルトの名無しさん:2008/09/20(土) 14:14:45
PICやH8マイコンでI2CインターフェースのEEPROMを制御するなら
この本が役に立ちそう。

ttp://www.cqpub.co.jp/hanbai/books/42/42081.htm

私自身は読んだ事無いし、読む人のレベルと目的にもよるので
必ず役立つと保証はできませんが。
46デフォルトの名無しさん:2008/09/25(木) 13:58:37
>>43,44,45
なるほど

ありがとうございます
47デフォルトの名無しさん:2008/10/17(金) 15:30:05
age
48デフォルトの名無しさん:2008/10/18(土) 18:41:15
ageてないし
49デフォルトの名無しさん:2008/10/31(金) 16:52:25
ageてないか
50デフォルトの名無しさん:2008/11/15(土) 13:47:30
age…てるかも?
51デフォルトの名無しさん:2009/01/21(水) 18:28:45
for(x = 1000,j=0;x >= 1;x/=10,j++){
tx_data[j]=('0'+((data/x)%10));
}

この形でintをcharに変換して書き込んでるんだけど、負の数が書き込めません

どうしたらいいですか?
52デフォルトの名無しさん:2009/01/22(木) 13:20:25
>51
整数の数値を10進文字列化して書き込もうとしてるんだよね?
sprintf関数が使えない環境なの?

もしそうなら自分で整数の符号を判定してマイナスなら
正負の符号を反転してから10進数として文字列化し、
頭に "-" 記号を付けるしかないんじゃ?

EEPROMに関係ないC言語の話だけど。
53デフォルトの名無しさん:2009/01/22(木) 13:34:03
EEPROMなんかに書き込むときは
2進数(2の補数)形式のまま書き込んで、
表示するときに10進数に直す方が
普通だとは思うけどね。

余分な記憶容量を食わないから。

そのデータをそのまま通信路に流したいとか
特別な理由があれば別だが。
54デフォルトの名無しさん
>>52
ありがとうございます
その方法で無事出来ました


>>53
確かにその方法のほうが良いかもしれませんね
ありがとうございます、検討してみます