Wednesday, June 6, 2018

ATtiny13A Test (low-powered using WDT)

갑자기 가장 작은 AVR칩을 사용해 보고 싶었고, ATtiny13A를 ebay에서 저렴하게 구매하였다. ATtiny13A가 SOIC 이기 때문에 이를 연결할 집게(?)를 같이 구매하였다.

아래 사진에서 보는바와 같이 손톱보다도 작은 8핀 칩이다. 이것은 8-bit에 1Kb의 Flash 메모리를 달고 있다. 메모리가 너무 작아서 bootloader를 설치하는것은 무리다. 그래서 ISP가 필요하고, Arduino UNO를 ISP로 대신하였다. 이에 대한 연결 다음 Site에서 확인할 수 있다.

Programming an ATTiny13A Using Arduino & Servo Interpreter

운영전압은 1.8V ~ 5.5V이며, 속도는 사용전압에 따라 다르지만 20Mhz까지 가능하다. 나는 9.6Mhz로 설정하였다.





ATtiny13A의 Pinout이다.
attiny13a



사용전력량은 Active Mode인 경우 190uA(1.8V, 1Mhz), Idle Mode인 경우 24uA(1.8V, 1Mhz)이다.



실험적으로 Blink를 작성해 봤고 저전력 테스트를 위해 WDT를 사용하였다.

위 코드를 Arduino 1.8.2에서 빌드하니 122바이트(11%)를 사용하였다.

아래는 3.7V 배터리로 연결하여 동작하고 있는 사진이다.

워낙 메모리가 작아 무엇을 응용하는것이 좋을 지 모르겠다. 어떤 센서정보에 약간의 논리 처리를 한 후 시리얼로 호스트로 보내는 정도가 의미 있겠다. 저전력이 필요하거나 온도를 감지한 Fan Speed 제어하는것과 같은 간단한 독립적인 애플리케이션에 적합할 듯 하다.

통신이 되면 좋겠지만 저 메모리에 언감생심이고, ESP8266등의 도움을 받을 수 있겠지만, ESP8266 자체적으로도 ATtiny13A의 기능은 할 수가 있다. 그리고 훨씬 빠르다. 물론, ESP8266-01 버전은 GPIO가 사실상 1개 뿐이라 이것은 논외로 하자!

Ps.
나중에 또 잊을까봐 기록한다.

집게의 붉은선이 칩의 1번 핀에 해당한다.

아두이노는 arduinoisp를 업로드시켜놓고 arduino as isp로 프로그래밍한다.

Attiny13 보드설정은 직접하는것 보다 microcore 추가보드 매니저에 등록하여 설치하는것이 간단하다.

No comments:

Post a Comment