아두 이노가 할 수없는 것은 무엇입니까?


12

Make Magazine youtube 비디오 에서 영감을 얻어 대부분의 프로젝트에 Arduino 대신 ATtiny 칩을 사용하고 싶습니다. 비디오 저자는 일부 Arduino 기능이 ATtinys에서 작동하지 않을 것이라고 경고합니다. 지원되는 항목과 지원되지 않는 항목의 전체 목록이 있습니까?


1
내가 읽은 것 (많은 것은 아니지만), 모든 ATtinys가 Arduino 부트 로더에 충분한 플래시를 가지고 있지는 않습니다. 그래도 Arduino를 통해 컴파일하고 AVRdude를 통해 별도로 업로드 할 수 있습니다.
Ignacio Vazquez-Abrams

1
여기에서는 부트 로더에 관한 것이 아니지만 (외부 프로그래머를 사용할 수 있음) 일부 라이브러리는 작업 코드로 컴파일되지 않습니다 (모두 오류가 발생하지는 않는다는 것을 이해했습니다). 내가 아는 한, 어떤 기능이 작동하고 어떤 기능이 작동하지 않는지에 대한 목록은 없지만 대부분의 Arduino 기능에는 약간의 오버 헤드가 있기 때문에 어쨌든 하드웨어를 직접 프로그래밍하는 방법을 이해하는 것은 아프지 않습니다. 당신은 기능처럼 원하는 안 pinMode();하고 digitalWrite();바로 적절한 레지스터하기 위해, ATtiny에 DDRx, PORTx직접. 많은 유사한 기능을 찾을 수 있습니다.
jippie

1
내가 본 Arduino 프로젝트의 대다수에 대해 ATtiny 칩은 충분히 기능적입니다. 대부분의 경우 부트 로더 대신 SPI를 통해 프로그래밍하고 튜토리얼의 일반적인 Arduino 복사 및 붙여 넣기 대신 C 또는 어셈블리로 코드를 작성합니다.
Kurt E. Clothier

@Kurt는 실제로 많은 Arduino 런타임 라이브러리와 소프트웨어 USB 포트가 있지만 물론 오버 헤드가 있습니다.
Chris Stratton

1
@ChrisStratton 좋은 지적입니다. 맨손으로 ATtiny 또는 ATmega 칩과 Arduino 보드의 차이점을 모르는 사람은 포트, 런타임 디버깅, 소프트웨어 USB 등의 의미가 무엇인지 전혀 모른다고 생각합니다. 의심 할 여지없이 그들은 그것들을 사용해야 할 것입니다. 그렇다면 실제로 수행중인 작업에 대해 조금 더 배워야하므로 문제가 발생할 때 간단한 문제를 해결할 수 있습니다. 다시 말하지만, 그것은 저와 같은 모든 안티 아두 이노 사람들의 사고 방식이라고 생각합니다.
Kurt E. Clothier

답변:


10

업데이트 : 질문에 더 잘 대답하기 위해 ATTiny는 하드웨어 직렬 포트, 하드웨어 i2c 또는 다중 인터럽트를 포함하여 ATTiny에 누락 된 하드웨어를 필요로하지 않는 모든 작업을 수행 할 수 있습니다. 이것이 Arduino 라이브러리에 숨겨져 있기 때문에 작동 방식을 이해하거나 실제 라이브러리 파일을 읽는 방법을 이해하지 않으면 Wire 라이브러리 (하드웨어 i2c)와 같은 기능이 작동하지 않습니다.

에서 http://forum.arduino.cc/index.php/topic,5582.0.html :

예를 들어, ATTINY84는 1 인터럽트, 하드웨어 UART (직렬 또는 i2c) 및 소수의 GPIO 핀, 프로그램 공간 및 램은 거의 없지만 14 핀 패키지로 제공됩니다.

ATMEGA328에는 2 개의 인터럽트, 1 개의 하드웨어 UART, 더 많은 프로그램 공간 및 더 많은 GPIO가 있습니다. 실제로 필요한 경우 좋습니다.

또한 대부분의 ATTiny에는 하드웨어 곱셈이 없으므로 컴파일러는 소프트웨어에서 2가 아닌 곱셈을 수행해야합니다.

마지막으로 Arduinos는 spi 프로그래밍 대신 부트 로더를 사용하므로 Arduino 부트 로더와 작동하려면 최소한 4 ~ 8kb의 플래시를 사용하는 ATTiny가 필요합니다.

ATTiny44 / 45 / 84 / 45 / 2313은 마이크로 아두 이노로 인기가 있습니다. 그들은 공식 Arduino Uno가 사용하는 ATMega328의 램과 플래시의 약 4 또는 8을 가지고 있습니다.

많은 ATTiny가 있기 때문에 그들에 대한 단일 진술은 없습니다.

또한 여기를 참조하십시오 : http://hlt.media.mit.edu/?p=1695


5

대부분의 attiny에는 하드웨어 USART 모듈이 없으므로 직렬을 통해 통신 할 수 없습니다. 전용 I2C 및 SPI 하드웨어 주변 장치 대신 일부 특성의 경우 SPI 또는 I2C 통신을 구현하기 위해 약간의 글루 코드를 작성해야하는 단순화 된 USI 주변 장치가 있습니다. 일부 복장에는 ADC가 없습니다.

일반적으로 프로젝트에 적합 함을 선택할 때 Arduino의 atmega328에서 사용할 수있는 모든 기능이없는 경향이 있으므로주의를 기울여야합니다. 예를 들어 attiny2313에는 UART가 있지만 ADC는없고 attiny44에는 ADC가 있지만 UART는 없습니다.

Atmel 마이크로 컨트롤러 선택 표와 시작 부분의 데이터 시트를 확인하십시오.


1
하드웨어 부족 UART! =는 직렬을 통해 통신 할 수 없습니다.
Chris Stratton

@ChrisStratton 사실, USI를 통해 에뮬레이트 할 수 있습니다
miceuz

1

우수 답변이 이미 게시 된 경우 관련 포인트가 사소한 경우 :

Pro Mini / Pro Micro를 제외하고 대부분의 Arduino 보드에는 메인 마이크로 컨트롤러 외에 두 번째 AVR 또는 다른 USB 인터페이스 부품이 포함되어 있습니다. 이를 통해 컴퓨터에서 Arduino를 프로그래밍 할 수있을뿐만 아니라 런타임 직렬 터미널 디버깅도 가능합니다. 동일한 USB 연결로 Arduino에 전원을 공급할 수도 있습니다.

분명히 ATTiny의 전력 요구 사항이 설계에서 해결되었지만 터미널 소프트웨어를 사용하여 런타임에 코드를 디버깅하는 것이 매우 편리 할 수 ​​있습니다.


1
일부 attiny 보드는 소프트웨어 USB로이 문제를 해결합니다.
Chris Stratton
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.