기계닉스의 AVR-ISP 프로그램은 정해진 기종 없이 사용자가 명세문서를 작성하는 것만으로 무한정으로 새로운 디바이스를 지원(ATmega)할 수 있는 구조로 만들어 졌습니다. 명세문서는 기본적으로 텍스트문서이며 확장하는 *.avrspec 을 가지고 있습니다. 사용자는 AVR 의 해당 매뉴얼을 보고 명세문서가 요구하는 값들을 기록하는 것 만으로 간단하게 해당 AVR 을 지원하게 만들 수 있습니다. 명세문서의 이름은 한글/영문 어떤 것이든 상관 없으며 굳이 해당 AVR 의 이름이 아니어도 됩니다. 즉, "예제0.avrspec", "서보제어용ATmega128.avrspec" 과 같이 사용자가 쉽게 알아 볼 수 있는 이름을 지어주면 됩니다. 이 기능은 각종 Lock/Fuse 의 의미를 이해하기 힘든 사용자들을 위하여 고급 사용자가 미리 설정을 해 놓고 사용자는 그냥 Lock/Fuse 를 기록하기만 하면 되므로 아주 편리하며 불필요한 시행 착오를 줄여줄 수 있는 안전과 편의를 위한 기능입니다. 특히 교재나 예제를 배포하는 경우 명세 문서를 같이 배포하면 초보자도 복잡한 Lock/Fuse 에 신경쓰지 않고 쉽게 AVR 을 사용할 수 있게 됩니다. 명세문서의 자세한 구조와 수정 방법은 아래 내용을 참고 바랍니다.
<Flash페이지크기> 256 <Flash크기> 131072 <EEprom크기> 4096 <고유번호> 1E 97 02 <보안설정> 7 - - 고정 6 - - 고정 5 BLB12 - 4 BLB11 - 3 BLB02 - 2 BLB01 - 1 LB2 - 0 LB1 - <확장설정> 7 - - 고정 6 - - 고정 5 - - 고정 4 - - 고정 3 - - 고정 2 - - 고정 1 M103C * 0 WDTON - <상위설정> 7 OCDEN - 6 JTAGEN * 5 SPIEN * 고정 4 CKOPT - 3 EESAVE - 2 BOOTSZ1 * 1 BOOTSZ0 * 0 BOOTRST - <하위설정> 7 BODLEVEL - 6 BODEN - 5 SUT1 - 4 SUT0 * 3 CKSEL3 * 2 CKSEL2 * 1 CKSEL1 * 0 CKSEL0 - <Flash기록시간> 5 <EEprom기록시간> 10 <끝> | <---- Byte 단위 10진수로 Flash Page 크기를 기록합니다. <---- Byte 단위 10진수로 Flash 전체 크기를 기록합니다. <---- Byte 단위 10진수로 EEprom 전체 크기를 기록합니다. <---- 3 Byte 의 AVR 고유번호를 16진수로 기록합니다(기계닉스의 AVR-ISP 는 이 값으로 AVR 종류를 구분함). <---- 보안 설정(Lock) 의 8개 Bit 를 [번호] [이름(사용자지정)] [초기값(- / *)] "-" 는 사용하지 않음, "*" 는 설정함을 의미합니다. "고정" 은 해당 설정 값을 사용자가 기계닉스의 AVR-ISP 프로그램에서 수정할 수 없게 하는 기능입니다. <---- Bit 이름은 AVR 매뉴얼의 이름 이외에 사용자가 마음대로 정해도 상관없습니다(한글도 상관없음). 쉽게 이해하고 알아 볼수 있는 이름으로 지정하면 됩니다. <---- [제목] 은 손대지 말아야 하며 한 행에 꽉 차야 합니다(앞/뒤에 공백이 있어서는 안됨). <---- 각각의 단어는 공백으로 구분되며 공백의 수에는 상관이 없습니다. <---- SPI Enable 은 ISP 사용을 위하여 반드시 "고정" 되어야 합니다. 만일 이 것을 무효화 하면 해당 AVR 은 ISP 로 프로그램 할 수 없게 됩니다(이 경우는 병렬방식으로만 가능함). <---- Flash 기록 시간으로 매뉴얼 상의 ms 단위 시간 값입니다. <---- EEprom 기록 시간으로 매뉴얼 상의 ms 단위 시간 값입니다. <---- 명세문서의 끝을 알려주는 [제목] 으로 지워서는 안됩니다.
명세문서는 각 행간 공백이 없이 위 예처럼 붙어 있어야 합니다. 이점 주의 바랍니다.
명세문서는 반드시 기계닉스 AVR-ISP 프로그램이 위치한 폴더 안의 "avrspec" 폴더 안에 위치해야 합니다. 그렇지 않은 경우는 명세문서를 읽어 들일수 없게 됩니다. 또한 명세문서 목록은 프로그램이 시작할 때 한번만 읽어 들이므로 새로 작성한 명세문서가 있는 경우는 반드시 프로그램을 다시 시작해 주어야 합니다.