[STM32] I2C_외부 EEPROM 주소 접근

이채윤·2022년 4월 29일
0

임베디드

목록 보기
24/70
post-thumbnail

[소개]

  • I2C 통신 방식을 이용하여 외부 EEPROM에 데이터를 적고, 읽어오는 것을 진행합니다.
  • 사용중인 ST 보드는 STM32F429입니다. 해당 ST보드에는 내부 EEPROM이 없으므로 외부 EEPROM을 사용해야 합니다.
  • 현재 외부 EEPROM으로 24LC08B-I/OT을 사용중입니다.

[24LC08B-I/TO의 Datasheet 부분]


<WP란?>

  • EEPROM이나 ROM계열은 WP 핀이 있어서 '1' , '0' 값에 따라서 Write 할 수 있게 하거나 못하게 하거나 합니다.
  • 혹시라도 노이즈나 원치 않은 상황에서 Write가 될 수 있는것을 방지하기 위해서 사용합니다.
  • Write를 보호한다고 해서 Write Protect 를 줄여서 WP로 이야기 합니다.

[24LC08B-I/OT의 Address 확인 방법]

  • 위 내용은 Datasheet에 나와있는 내용입니다.
  • Slave Address에서 Control Code는 1010(A)로 고정되어있고, Block Select Bits는 B1과 B0가 각각 0과 1이 될 수 있으므로 00, 01, 10, 11이 가능합니다. (x는 don't care)
  • 따라서 Slave Address는 A0, A1, A2, A3까지 가능합니다.
  • 위에서 Slave Address(Dev Address)는 A0~03이며, Mem Address는 00~FF 입니다. (1바이트에서 FF는 가장 큰 값입니다.)
  • 블록이 4개로 나누어져서, 4개로 나누어진 공간을 사용할 수 있다고 생각하면 편합니다.
  • HEX(16진수) : FF = DEC(10진수) : 255

<Slave Address란?>

  • I2C 통신할때 필요한 IC 주소
  • 위의 Datasheet를 확인했을때 7bit에 해당

<Block Select Bits란?>

  • 마스터 장치(MCU)가 메모리 256개의 워드 블록 중에서 어떤 것에 액세스 할지 선택하는데 사용합니다. (Datasheet를 확인하면 block이 몇개인지 나와있다.)

0개의 댓글