회사에서 양산 IoT 보드를 설치하기 전, Atmel Stuido에서 펌웨어를 다운로드 할 시 퓨즈비트를 설정하는 작업이 있었다.
퓨즈비트가 도대체 뭘까?
Fuse bit 는 AVR ATmega 컨트롤러의 기능설정, 즉 모드를 설정하는 제어 비트이다.
AVR 모델에 따라 메모리의 길이나 비트 구성이 다르지만 대체로 비슷한 기능을 갖는다.
퓨즈비트를 설정해서 특정 기능을 하는회로에 전원을 공급하는 라인을 끊거나, 연결(퓨징)해서 클럭을 조정하거나, 클럭분주, 부가기능 일정 전압이하로 떨어지면 리셋되도록하는 것, ISP다운로더의 SPI 통신 기능 등을 설정 할 수 있다.
컴퓨터에 비유하자면 바이오스 같은 것이고, 바이오스와 같이 비휘발성 메모리에 저장된다.
설정을 잘못하게 되면 AVR이 동작하지 않거나, 고장 날 수 있으므로 꼭 자세히 알아보고 설정해야 하고 혹시 고장이 발생했다면 AVR 인공호흡 (강제로 클럭을 입력)시키는 방법을 사용해야 한다.
ATmel Studio에서는 체크박스를 통해 설정, 설정해제 하기 때문에 헷갈릴 일이 잘 없지만 원래 퓨즈비트는 설정값이 설정이 0, 해제가 1이라고 한다.
퓨즈비트의 영역은 High, Low, Extended, Lock 으로 네가지로 크게 나뉜다.
대체로 비슷하지만, 모델별로 조금씩 다를 수 있으니 사용하는 모델의 레퍼런스를 잘 찾아보고 설정하는 것이 필요하다.
- JTAGEN, OCDEN: JTAG의 사용 가능 여부를 선택
- SPIEN: 다운로드 케이블에 의한 직렬 프로그래밍 사용 가능 여부를 선택
- CKSEL4~CKSEL0, CKOPT: 시스템 클럭의 소스나 오실레이터 옵션을 선택
- SUT1~SUT0: 기동 시간을 선택
- WDTON: 위치독 타이머 사용 가능 여부를 선택
- BODEN, BODLEVEL: BOD 기능의 사용 여부 및 BOD 전압 레벨을 선택
- BOOTSZ1~BOOTSZE, BOOTRST: 부트 메모리 사이즈나 리셋 벡터를 선택
- EESAVE: 칩삭제 명령에서 내부 EEPROM을 삭제할 것인지 여부를 선택
- M103C: 그 이전 모델과의 호환 모드로 동작할지 여부를 선택
https://binworld.kr/m/47
https://m.blog.naver.com/PostView.naver?blogId=medirune&logNo=110145180364&proxyReferer=https:%2F%2Fwww.google.com%2F&trackingCode=external
ATmega 퓨즈비트란 무엇인가
VR 강좌 - ATmega 퓨즈비트(fuse bit)란 무엇인가 AVR 강좌 - ATmega 퓨즈비트(fuse bit)란 무엇...
blog.naver.com
https://m.blog.naver.com/nkkh159/220801733605
[AVR/ATmega] 퓨즈 비트(Fuse bits), 클럭 설정
이전 포스팅에선 락 비트(Lock bits)를 설명드렸으니, 이번 글에선 퓨즈 비트(Fuse bits)를 설명드리겠습...
blog.naver.com
https://hodorii.blogspot.com/2012/06/avr-atmega-fuse-bit.html?m=1
AVR 강좌 - ATmega 퓨즈비트(fuse bit)란 무엇인가
AVR 강좌 - ATmega 퓨즈비트(fuse bit)란 무엇인가 : • 퓨즈비트란 ? 퓨즈비트 (fuse bit) 란 AVR ATmega 컨트롤러의 기능 설정용 제어 비트라고 할 수 있다 . 퓨즈 비트는 AVR 의 모델에 따라 그 메모..
hodorii.blogspot.com