Drone FW using STM32CubeIDE/7. EEPROM

    [Drone Firmware using STM32CubeIDE] 7-2. EEPROM Protocol Definition

    [Drone Firmware using STM32CubeIDE] 7-2. EEPROM Protocol Definition

    EEPROM에 데이터를 오류없이 전송하고 받아오기 위해 EEPROM 프로토콜을 정의한다. EEPROM에 데이터를 저장하는데에 있어서 프로토콜 정의가 꼭 필요한 것은 아니다. 하지만 EEPROM에 저장할 데이터는 바로 PID Gain값인데, 이 Gain값 정보는 제어에 큰 영향을 미치는 중요한 정보이므로 데이터를 오류없이 전송하고 수신하여야 한다. 따라서 데이터를 저장, 관리하는 단계에서 데이터의 무결성을 보장하기 위해 프로토콜을 정의한다. 프로토콜을 정의한다고 해서 데이터에 오류가 100% 없다고 보장할 수 없다. 오류가 날 확률을 감소시켜주는 것이다. 그러나 프로토콜 정의가 안되어 있으면 데이터에 오류가 있는지 확인 조차 못한다. 따라서 EEPROM Protocol 정의는 이런 면에서 중요한 역할을 한..

    [Drone Firmware using STM32CubeIDE] 7-1. EEPROM: AT24C08

    [Drone Firmware using STM32CubeIDE] 7-1. EEPROM: AT24C08

    PID 제어 시에 드론의 게인값을 저장하기 위하여 메모리 공간이 필요한데, FC에는 비휘발성 메모리인 EEPROM이 내장되어 있다. 내장되어 있는 EEPROM은 AT24Cxx 시리즈 중 'AT24C08'으로 1Kbytes의 용량을 가진다. AT24Cxx 데이터시트를 참고하여 AT24C08의 스펙을 살펴보자. EEPROM: AT24C08 비휘발성 메모리 AT24Cxx 이 뒤의 숫자가 용량을 의미 (kbits) AT24C08 -> 8kbits -> 1Kbytes 내부적으로 64개의 pages로 영역을 구분 1page당 16bytes의 크기를 가짐. I2C Interface (MAX 400kHz @ 3.3V) 쓰기금지 (WP) 핀 제공 (데이터 보호) AT24C04 이상부터는 Page Write Mode로 W..