자주묻는 질문 HOME > 고객지원 > 자주묻는 질문

분 류 기술지원
롬라이터가 뭐에요?
1. ‘롬라이터’란,

한마디로 데이터를 롬에 써넣는 기계입니다. 마치 CD 롬라이터가 데이터를 CD 써넣는 것과 비교할 수 있으며, CD-ROM 라이터는 compact disk 에 데이터를 쓰지만, 롬라이터는 CD가 아닌 ROM에 써넣는 다는 것으로 쉽게 이해하면 되겠습니다.
물론, ROM에는 PROM, EPROM, EEPROM, Flash ROM, internal ROM (Micom) 등 다양한 타입이 있지만 편의상 ROM이라고 칭합니다.

좀 더 구체적 설명으로, 엔지니어가 프로그램한 언어, 즉 C 나 Assembly 어 등을 소스파일이라고 하는데, 이들을 각각 고급언어 (High level language)와 저급언어 (Low level language)라고 합니다. 이러한 언어들은 사람이 이해할 수 있지만 기계는 당연히 이해하지 못합니다.

따라서, 이러한 언어를 기계가 이해할 수 있는 언어로 바꾸어 주는 과정이 필요한데 이 과정을 ‘컴파일링’이라고 하며, 이때 사용하는 소프트웨어 툴을 ‘컴파일러’라고 합니다.

이렇게 엔지니어가 모든 디버깅 (debugging)과정을 거치면서 최종적으로 완성된 소스파일을 컴파일러 나 어셈블러와 같은 툴을 사용하여 기계어 코드로 만들어 타겟이 동작되도록 만들어 주는데, 이 기계어 코드는 BIN, HEX, Motorola S 등 다양한 기계어 포맷이 있습니다.

이제 이러한 데이터를 롬에다 써넣어야 하는데 이때 사용하는 기계가 ‘롬라이터’입니다.

2. 이것이 하는일이 뭔가요?
롬라이터는 위와 같이 PC 기반형, 단독형 (Stand alone) 등 여러가지 형식이 있지만, PC기반형을 기초로 설명합니다.
편의상 BIN 파일을 롬에 굽는다고 가정하고, 이 과정은 다음과 같습니다.
2.1 롬라이터는 어떤 칩을 작업할 것인가를 제일 먼저 결정해야 합니다. 즉, 칩 선택을 해야합니다. 선택을 하고 나면 롬라이터 환경이 선택한 칩의 프로그램 알고리즘 환경으로 모두 바뀌게 됩니다.

2.2  이제 BIN 파일을 불러와야 합니다.
이때 파일을 불러오게 되면, 불러온 데이터는 롬라이터의 버퍼 영역에 로드하게 됩니다. 즉, 이 버퍼영역과 작업 롬과의 중간에 롬라이터가 있다는 것을 이해하여야 합니다.
또한 버퍼는 롬라이터 기능 중 편집기 (edit)로 볼 수 있고 편집도 가능합니다.

2.3  이제 프로그램(굽기)하면 롬라이터가 버퍼로 불러들인 데이터를 롬에 굽게 되는 것입니다.

2.4  최종적으로 롬라이터는 불러왔던 데이터의 체크섬과 롬에 써넣은 데이터의 체크섬을 서로 비교 검증하는 과정이 있습니다. 이것을 데이터 검증 (Verify)라고 합니다. 이 검증이 OK되면 프로그램은 완료되는 것입니다.

여기서 체크섬이란,
버퍼의 가로의 모든 값을 더한 값 과 세로의 모든 값은 더한 값, 이 두 합계의 값을 다시 더한 총 값이 체크섬입니다.
여기서 체크섬 실제 값은 8바이트 이지만, 일반적으로 뒤로부터 4자리 바이트를 체크섬값이라고 부르기도 합니다.
이 체크섬 값으로 오류 점검 이나 버전관리 등 하는데 이 체크섬을 롬라이터의 버퍼크기나 포맷, 블랭크 영역의 값(00h, 3F, FFh...), 굽기/읽기 설정등에 따라 달라질 수 있음을 주지하시기 바랍니다.
따라서, 데이터 어느 한 값이라도 틀릴 경우는 데이터 검증 시 오류가 발생하게 됩니다.

2.5  반대로, 이미 롬에 어떤 데이터가 있으면, 이를 읽어서 파일로 저장도 할 수 있습니다. 다시 말해서, 롬라이터의 롬을 읽을 때 롬의 데이터를 버퍼영역으로 쓰게 되는데 이 버퍼의 영역은 PC의 버퍼을 의미하므로 이를 파일로 ‘저장하기’하여 임의의 파일로 저장한다는 의미입니다.

2.6 이 후 저장된 파일을 다시 필요 시 위와 같은 과정으로 작업하시면 되겠습니다.

결론적으로, 롬라이터는 불러들인 데이터를 롬에 쓴 후 이것을 서로 비교검증(Verify)까지만 역할을 하게 되는 것입니다.

3. 어떠한 종류가 있어요?

롬라이터의 모델은 크게 범용 롬라이터 (Universal programmer), 전용 롬라이터 (Specialized programmer), 멀티(갱) 롬라이터(Multi programmer), 단독형 (Stand alone) 롬라이터 등 4 가지로 구분되며, 이 외에 자동화에 필요한 핸들러 등 산업응용 롬라이터도 있습니다.

범용 롬라이터는 EPROM, Flash ROM, PLD, PIC, MCS51, AVR, Tiny 등 다양한 칩들을 범용적으로 지원하는 롬라이터를 의미하여, 40핀 소켓 이상의 모듈을 장착하고 있습니다.
예, BeeProg+, Smartprog2

전용 롬라이터는 범용적이지 않고 한가지 계열만을 지원하는데, EPROM/Flash 계열만을 지원한다든가, MCS51계열만을 지원한다든가 하는 등 특정 계열만을 지원함을 의미합니다. 따라서, 범용적이지 않지만, 보다 저렴한 가격으로 특정 계열 사용자에게는 유리한 선택이 될 수 있습니다.
예, PIKprog2, T51prog2, MEMprog2

멀티 롬라이터는 하나의 롬라이터에서 한 개의 싱글 소켓이 아니고, 8개의 소켓이 있는 양산성이 있는 롬라이터를 말합니다. 멀티 롬라이터는 갱라이터라고 부르기도 합니다. 따라서, 양산시에 대량 생산에 유리한 롬라이터입니다.
예, BeeHive8S, BeeHive4+

단독형 롬라이터는 위의 PC 기반형 롬라이터와는 달리, PC와 같은 호스트컴퓨터 없이 독자적으로 내부 배터리나 전원등을 사용하여 구동되며, 내부에 버퍼용 메모리가 내장되어 있기 때문에 휴대용이나, 생산현장에서 직적 응용할 수 있는 장점이 있지만 가격이 PC기반형에 비해 비싼 편이고 최신 디바이스의 업데이트가 펌웨어 적으로 하기 때문에 비교적 쉽지 않습니다.
예,  BeeHive8S