기존의 EEPROM 대체하기 위한 방안의 하나로 FLASH 를 사용하자는 생각을 검증하는 테스트에 대한 결과를 기술했다.
테스트 조건
EEPROM
현재 마지막 버전 프로그램을 기준으로 채널이 change 될 시, EEPROM 에 write 되어지는 가장 밑단의 함수인 STI2C_Write() 의 앞뒤에 시간을 체크할 수 있는 함수를 넣어서 시간을 측정함
FLASH
현재 마지막 버전 프로그램을 기준으로 채널이 change 될 시, EEPROM 에 write 되어지는 루틴에 Flash_wirte 의 가장 밑단의 함수인 STFLASH_Erase() , STFLASH_Write() 의 앞뒤에 시간을 체크할 수 있는 함수를 넣어서 시간을 측정함
HardWare Spec 비교
Name | Size | Erase/Write Cycles |
M24C32 | 4 Kbyte | 1,000,000 |
M29W320DT | 4 Mbyte(한 블록 : 64Kbye) | 100,000 |
수행 시간 비교
Name | 한번의 Erase/Write Cycle 시간 |
M24C32 | 3.604 ms |
M29W320DT | 1041 ms |
결론
FLASH 의 경우, Block 단위로 엑세스하고 같은 주소에 Write 하려면 Erase 를 해야 한다.
Erase 시간이 1초 넘게 걸리기 때문에 일반적으로 사용하기에는 무리가 따른다. 최대한 Erase 를 하지 않고 사용하는 방법을 강구해야 한다.
예를 들어, 채널 정보를 같은 주소가 아닌, 다른 주소에 Write 하는 방법등이다.