직접 만들기를 시작했다. 회로는 무척 단순하다. Emulated USB를 사용할 핀들과 전원부만 있으면 끝이다. 하지만 Trust-Nothing 단계인 만큼 저항이나 점퍼 와이어 조차 의심하지 않을 수 없다. 심지어 저 Attiny85는 짝퉁인지도 모른다..
완성품 Digispark는 USB포트가 있다. 고장난 보드에서 하나 구했다. Flux 좀 뿌려주고 Heat gun으로 약 800F 온도 에서 조심히 때버렸다. 하지만 저 작은 핀들을 납땜할 엄두가 안나서 그냥 Header를 사용하기로 했다.
첫번째 USB케이블을 잘랐을때는 Power와 Ground 밖에 없어서 당황했다. 충전용 케이블이더라. 두번째는 다행이 저렇게 이쁘게 피복이 씌어져있는 완벽한 USB케이블이다. 이것도 솔찍히 쉽지는 않았지만..
결국 절연 태이프로 잘 마무리했다. 테스터기로 찍어보니 잘 작동하는듯했다.
자 여기서 Attiny85에 부트로더를 올리려면 USBTinyISP (in-system-programmer)를 사용하여 아듀이노 IDE를 통해야 한다. 가지고 있는 USBTinyISP 자체도 아직은 trust-nothing에 일부기 때문에 전원이 들어오는지 부터 확인했다.
또한 내 컴퓨터의 USB 포트가 전원이 약해서인지 Attiny85는 위에서 작업했던 USB 케이블로 전원 공급을 해줬다.
Note: https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
결론적으로 Pin5는 여기도 high logic 이다…. 생각해보니 reset핀과 mux되는 핀이라서 internal-pullup 때문인것 같다. 아… 머리아프다.
/update
stackoverflow에 질문을 올렸더니 pin 5는 reset핀이기에 internally pulled up이 맞단다. RSTDISBL을 해주면 된다.
/update 2
zener 다이오드를 사용해 D+/-를 3.6v 까지 내려줘야한다. 아…없는데… (그래서 3.6v zener 다이오드를 사버렸다).