본문 바로가기

Electronics

마이크로 컨트롤러에 프로그램 업로드가 안된다?

얼마전USBTiny라는 ISP(In System Programmer; 마이크로 콘트롤러용 프로그램 업로드 보드)를 만들었다.


그런데 Atmega168은 프로그램 업로드가 잘되는데 Attiny2313은 안되는 것이다. 내가 가진 두개의 Attiny2313 중에 하나는 USBTinyISP를 만드는데 썼고 나머지 하나가 안되는 것이다.


두 2313에는 USBTiny용 프로그램을 넣어놨었다. 그건MiniPOV의 회로를 이용한 DASA 프로그래머를 이용해서 업로드 했었다. 그때도 처음에 프로그램을 넣을때는 잘 되더니 그 이후 부터는 안되는 기이한 현상이 있었다.


그래서 당시에도 한번 프로그램을 올리면 그 다음에는 안되는 뭔가가 있는가? 하는 의구심만 가진채 서랍에 쳐박아 두었었다.


그런데 어제 인터넷 어디선가 외부클락으로 설정된 상태에서 크리스탈을 달지 않고 프로그램 업로드를 하려면 안된다는 글을 봤다. 그글을 보니 예전에 얼핏본 퓨즈비트 설정에 어떤 클락을 쓸지를 설정하는 것이 있었던 것이 생각났다.


퓨즈비트(fuse bit)란 컴퓨터 CMOS셋업 처럼 마이크로 컨트롤러에도 전기를 넣었을때 무엇을 하는가에 대한 아주 기초적인 작동 규칙을 세팅하는 걸을 말하는데, 그 중에 마이크로 컨트롤러의 심장박동 과도 같은 클락을 내부에 있는 크리스탈을 쓸것이냐 외부에 있는 것을 쓸것이냐를 선택하는 부분이 있다.


보통 컴퓨터의 속도의 지표로 많이 삼는 클락스피드랑 같은 것이다.  컴퓨터에 광고에도 나오는  3GHz니 4GHz 니 하는 말은 많이 봤을 것이다. 그것은 그것이 클 수록 시간당 하는 일은 많아지는 것이다. 하지만 속도에 관련된 요인은 그것 하나뿐이 아니니까 그것만을 절대적인 속도의 지표로 삼는 것은 어리석은 일이지만, 속도에 영향을 미치는 요인중 큰 요인중의 하나임에는 틀림없다.


크리스탈(수정)과 같은 물질은 전기를 주면 일정한 진동수로 진동하는 성질을 가지고 있다. 아마 얇을 수록 진동수가 높지 않을까 싶은데 자세한건 나도 모른다.  아무튼 마이크로 컨트롤러의 심장을 뛰도록 해주려면 크리스탈을 써서 클락 그러니까 시계를 돌아가게 해줘야한다. 마이크로 컨트롤러의 세상에서는 시계만 서도 시간이 정지 한다. 히어로가 따로 필요 없다.


그 시계역할을 하는 크리스탈을 내부에 가지고 있는 마이크로 컨트롤러도 있고 아닌 놈도 있는데 At2313은 내부에 하나 가지고 있다. 내부에 있는 그 놈을 쓸지 외부에 하나 새로 달아서 쓸지를 정해서 쓰는것이다. 아마 내부용은 속도가 느리지 안을까 싶다. 자세한 건 데이타 쉬트에 있을 것이다 -- ;; 지금은 찾아보기 귀찮다.


USBTinyISP는 레조네이터라는 부품을 쓰는데 그건 크리스탈에 커패시터 두개를 함께 엮어 높은 부품이라 다리가 셋이다. (보통 크리스탈은 다리가 둘이다) 크리스탈을 쓸때는 어차피 커패시터를 두개 같이 달아줘야 되기 때문에 아예 함께 묶어 버린것 같다. 어떤 경우에 크리스탈과 레조네이터는 어떤 경우에 쓰는지 그 판단 기준은 아직 모르겠으나 지금까지 본바로는 같은 회로에서도 그 두가지를 선택해서 쓰는걸 보면 별 차이 없다고 본다.


그 레조네이터가 클락을 제공해주니 USBTinyISP에 쓰는 Attiny2313은 내부 클락을 죽이는 퓨즈비트 세팅을 하는 것이다. 그래서 그동안 안되었던 것이다. 오늘 USBTinyISP를 써서 프로그램을 업로드 할때는 Attiny2313에 12Mhz의 레조네이터를 붙여 주었더니 아주 잘 된다.


아 그리고, 오늘 한 것은 인 시스템 프로그래밍이 아니라 IC하나 만 따로 있는 놈에게 프로그램을 업로드 하는 것이었다. 이런 경우는 칩에 전선을 땜질하는 무식한 방법은 물론 안쓰고, 타겟보드라는 IC소켓과 프로그래밍 커넥터만 달린 놈을 써서 프로그램을 해준다.


타겟보드는 여섯 가닥의 전선만  정해진 다리에 연결해주면 된다. 외부 클락을 쓰는 칩이라면 물론 레조네이터도 달아줘야 한다.

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지



파란기판이 USBTinyISP이고 갈색 기판이 타겟보드이다. 타겟보드에 꽂힌 IC가 Attiny2313이고 그 앞에 ZTT 12.0MT 라고 쓰여 있는 갈색 부품이 레조네이터 되겠다.


갈색기판은 페놀수지로 만든것인데, 저것은 하나에 300원짜리다. 파란기판은 아마 에폭시일텐데 저 크기에 1,300원이었나? 그쯤한다.


기판을 뒷면을 보면 짖분하게 전선이 연결되어 있는데 프린트 회로기판이 없으면 저렇게 노가다를 해야한다. 그나마 저런 가느다란 전선이 있어서 다행이다. 저 전선 구하기 전엔 직경만도 저거 대여섯배쯤 되는 전선으로 저짓 하느라고 고생 많이 했다.  저 초록, 빨강 전선은 30AWG라는 굵기인데, AWG는 American Wire Gage의 약자로 전선의 굵기 단위로 일반적으로 널리 쓰인다.  


저 전선은 래핑와이어 라는 이름으로 불리고 있다. 내부에  동선이 여러갈래가 아닌 한 가닥으로 된 솔리드형이다. 여러가닥으로 된 스트렌디드 형은 땜질하기 좀 드럽다. 그리고 피복은 테플론으로 되어 있는 제품이다. 100m한롤에 9,000원쯤 한다.