決死 IC 間通信 (EEPROM 編 )
2013.07.07 東日本支部 高橋
意味
IC 間通信:
I2C (Inter‐Integrated Circuit, I‐Squared‐C)
決死:
掛 面倒
問題 挫折 や い
EEPROM 編 :
前回 LCD / 今回 EEPROM
I2C 関係 細 い話 前回 LCD 編 解
内容
• I2C 対応
• EEPROM 用途
• EEPROM (24FC1025)
• 回路図
• サン
• 目標
• 最大 ン 時間
• 書 込 時間
• ッ ン
• 書 込 ン
• MCU 事情
• 課題
I2C 対応
LCD
EEPROM
ンサ ャ
ンサ 加速度
※ ンサ 出力
I2C/SPI 両者 対応 い 多い
※ EEPROM
I2C対応/SPI対応 2品種 あ
挙 一握 事例
EEPROM 用途
• 走行中 各種 ン
ンサ測定値
ッ 電圧
• 迷路壁判定結果
※ 保存 内容 好 う
EEPROM (24FC1025)
今回使用 EEPROM 24FC1025 (Microchip社, 1Mbit, I2C接続)
書 換え 書 込 電源 消え い
1Mbit いう事 ÷8bit 128KB
R/W 昔 2 64KB 限界
MCU 64KB 2 扱う う 形
ッ 4 同一 配置 事
VCC Range: 1.8‐5.5V
Max. Clock Frequency: 1MHz
Write Operation: Byte Write, Page Write
Read Operation: Current Address Read, Random Read, Sequential Read
書 込 サ Page単位 128 時間 3ms~5ms
書 込 単位 時間 1 Page 同
時間 使う時 勧
回路図
コン側 汎用 ン2本 駆動電
流IOL > 2mA
VCC, GND EEPROM
サン
• SH7215(50MHz) I2C
EEPROM 書 サン 作成
ン
void eep_Init(void);
int eep_Write(uint32_t addr, const uint8_t *buf, uint32_t size);
int eep_Read(uint32_t addr, uint8_t *buf, uint32_t size);
※ I2C 速度: 約 200kHz (max)
参考: I/O 単純 ON/OFF 約 1MHz(max)
※ 以後 話 SH7125 I2C 使う前提
MCU 操作 書 え ば使え
後 部 変更 必要
目標
• 走行中 ンサ測定値 AD 変換後 生
記録 い
• 走行完了後 PC 側 吸い
Excel 析 い
ンサ測定 ン : 1ms 間隔
ンサ個数: 4 個
AD 変換値 ッ 数: 10bit
目標 様 1ms 間隔 最大 8
保存 事 目指
最大 ン 時間
EEPROMサ : 1Mbit (128KB ※1KB=1024 ) サン ン 間隔: 1ms
サ :8 (max)
求 最大 ン 時間 ...
サ 最大 ン 時間
1 約 128秒
2 約 64秒
4 約 32秒
8 約 16秒
ン 開始 終了 特定 迷路区間 限定 工夫 必要
く サン ン 間隔 間引く事 時間 倍増さ 事 可能
書 込 時間
EEPROM書 込 時間 以 合計
MCU EEPROMへ 転送時間 I2C 速度 量 関連 EEPROM内部 素子書 換え時間 3~5ms/Page
転送時間
速度 約200kHz, 1ペ (128 ) 書 込 5.3ms (実測) 素子書 換え時間
Writeコ ン 終了 Stopコン ョン 送信さ 後 素子書 換え
行わ 間 BUSY状態 次 Writeコ ン 付 い
※ 考慮 単純 128 込 書 込 行う
1ms サン ン 間隔 間 合わ い
MCU EEPROM
Page Buffer 128 Bytes
素子
Page Buffer I2C
128 Bytes
ッ ン
MCU
EEPROM
Page Buffer 128 Bytes
素子 I2C
Page Buffer 128 Bytes
解決策 ッ ン
Page Buffer 128 Bytes
割 込 サン ン
割 込 転送
サン ン 時間 >
転送+素子書 換え 時間 あ ば 間 あう
例: 1ms 8 サン ン 16ms > (5.3ms + 5ms)
I2C MCU 内蔵さ い MCU側 負荷 減 楽