제가 버블 메모리 에뮬레이터 제작 시 나가는 신호 일일히 캡쳐한 다음 디코딩 프로그램 만드는 것 보다
기존에 있는 에뮬레이터의 저장매체인 FRAM을 바로 읽어서 정제된 데이터를 뽑아서 출력데이터와 비교분석 하려고 합니다.
후지쯔 FRAM MB85RS4MTPF을 사용하고, SPI를 지원하는지라 보통 SPI지원하는 EEPROM이랑 호환성 문제될 일은 없습니다.
다만 FRAM이라 지원 안 하는 프로그래머들이 많아서 보통의 4메가비트 Standard SPI지원 EEPROM으로 세팅을 해 놓고 읽기쓰기를 하려고 하는데요,
일단 후지쯔나 Cypress같은 FRAM제조사들은 비표준 SPI 커맨드를 못 쓰는 거 빼고는 모두 호환 가능해서 별 문제 없다고는 합니다.
벤더 ID 체크를 꺼 놓고 쓰면 어차피 SPI신호를 똑같이 사용하니 별 문제 없을 것 같은데,
EEPROM은 쓰기 전에 소거를 하고, FRAM은 그냥 그 위에 바로 쓰면 자동으로 덮어쓰기가 되거든요. 여기 erase 작업에 다소 차이가 있긴 합니다만
별 문제 없겠죠?
임베디드 시스템에 써 보신 분이 있는지 궁금합니다.
일단 WEL 은 파워온리셋되기 때문에 WREN 명령 내리기 전에는 모든 종류의 쓰기가 금지됩니다.
따라서 안심하고 이거 저거 해볼 수 있겠네요.
작업해야 할 순서는
1. 앞으로 여러번 할 가능성을 생각해서 에뮬레이터 보드에서 SPI 선들을 단절하고 다시 이을 수 있는 점퍼를 마련하고 외부 연결할 수 있는 헤더 부착.
2. 몇천원이면 사는 아두이노 아무거나 준비.
3. 아두이노로 SPI 제어하고 데이터 리드라이트하는 프로그램 작성
앞으로 verilog 로 FPGA 프로그래밍도 하신다 하시니 이 정도는 반드시 해봐야 할 작업일겁니다.
FPGA 용 프로그래머로 SPI 제어를 할 수도 있는데, 이건 FPGA 트레이닝 보드 마련한 후라야 할테니..
4. RDID 명령을 내려서 칩 정보 읽기
5. RDSR 명령을 내려서 block protect 설정을 파악해놓기 ( FRAM 데이터와 이걸 같이 다운로드받아야 함 )
6. READ 로 데이터 읽기
-------------- 주의할 점
그 보드 제작자가 했다는거 보니 FRAM 데이터도 그냥 RAW data 가 들어가지 않을 것 같군요.
FPGA 에 약간의 암호화 기능을 넣었을 가능성이 커보입니다.
즉 똑 같은 데이터라도 에뮬레이터마다 FRAM 에는 서로 다른 데이터가 들어갈 가능성이 있다는 얘기죠.
따라서 FRAM 에서 읽은 데이터는 원래 데이터가 아니니까, 앞으로 할 작업으로 망칠 가능성을 대비해서
백업 받아놓는 것이라고 생각하시는 것이 안전할 듯 합니다.