Arduino가 AVR을 사용하는 이유는 무엇입니까? 나는 그들이 공식 프로세서라는 것을 이해하지만 코드가 비용 이외의 ARM 또는 프리 스케일 아키텍처로 이식 될 수없는 이유는 없습니다. 온보드 메모리가 있으면 그 부분으로 쉽게 마이그레이션 할 수 있다고 생각했습니다.
업계에서 많은 ARM을 보았고 (모든 벤더가 하나의 디자인으로 밀어 넣는 것처럼 보임) Arduino 개발자 세계에서 더 이상 채택되지 않은 이유가 궁금합니다.
Arduino가 AVR을 사용하는 이유는 무엇입니까? 나는 그들이 공식 프로세서라는 것을 이해하지만 코드가 비용 이외의 ARM 또는 프리 스케일 아키텍처로 이식 될 수없는 이유는 없습니다. 온보드 메모리가 있으면 그 부분으로 쉽게 마이그레이션 할 수 있다고 생각했습니다.
업계에서 많은 ARM을 보았고 (모든 벤더가 하나의 디자인으로 밀어 넣는 것처럼 보임) Arduino 개발자 세계에서 더 이상 채택되지 않은 이유가 궁금합니다.
답변:
누구든지 당신이 개발중인 것에 관심이 있습니까?
예, 아니오 특정 프로젝트를 위해 AVR32를 개발하고 있으며 개발 환경 (특히 컴파일 / 프로그램 / 디버그주기)은 PIC32와 비교하여 끔찍합니다.
고객은 비용 및 유지 관리를 제외하고는 신경 쓰지 않으며 arduino와 유사한 시스템의 경우 arduino 환경 및 개발주기가 현재 AVR32 설정보다 뛰어나고 제한되어 있기 때문에 프로그래머는 신경 쓰지 않습니다.
Arduino 제품군에는 AVR에 대한 강력한 우세가 있기 때문에 궁금합니다. 나는 그들이 공식 프로세서라는 것을 이해하지만 코드가 비용 이외의 ARM 또는 프리 스케일 아키텍처로 이식 될 수없는 이유는 없습니다. 온보드 메모리가 있으면 그 부분으로 쉽게 마이그레이션 할 수 있다고 생각했습니다.
다른 프로세서를 사용할 수 없었던 이유 는 없지만 ARM, MIPS, PowerPC 등의 장치가 아닌 저가형 8 비트 장치를 선택한 이유는 간단합니다. 사용 편의성.
심지어 로우 엔드 암에 대한 설정을 살펴 본다면 8 비트 프로세서보다 훨씬 복잡합니다 (메모리 매핑, 캐싱 등). 그러나 더 중요한 것은 당시 DIP 암 프로세서가 없었기 때문에 예술가와 해커가 사용하고 빌드 할 수 있었으며 48 핀 TQFP조차도 편안하다고 생각하는 전자 기술자 및 엔지니어는 아닙니다.
PIC 대신 AVR을 선택한 이유는 PIC에 실제로 널리 사용되는 오픈 소스 무료 C 컴파일러가 없기 때문입니다 (SDCC 포트가 성숙하지 않음).
업계에서 많은 ARM을 보았고 (모든 벤더가 하나의 디자인으로 밀어 넣는 것처럼 보임) Arduino 개발자 세계에서 더 이상 채택되지 않은 이유가 궁금합니다. 생각?
주로 사용의 용이성-복잡성, 납땜 용이성, 비용 및 그다지 필요하지 않다는 사실 때문입니다. 개발자는 많은 전력을 소비한다는 아이디어를 좋아하지만 하루 종일 서보를 옮기고 로우 엔드 FFT로 일부 조명을 깜박이면 8 비트 프로세서가 좋습니다.
28 핀 패키지로 제공되는 로우 엔드 피질 ARMS조차도 여전히 DIP가 아닌 SOIC입니다.
따라서 AVR에는 모든 올바른 기능이 있습니다.
이것은 여전히 사실입니다. 저는 딥 형식의 ARM에 대해 잘 모르며 어댑터는 AVR보다 훨씬 비쌉니다. 대부분의 경우 제조업체는 DIP 패키지 32 비트 프로세서가 매우 수익성이 있다고 생각하지 않습니다.
무기 개발이 진행 중입니다. 다음 프로젝트를 살펴보십시오.
이제 DIP 패키지의 ARM입니다.
당신이 여론 조사를하고있는 것 같아, 여기 내 $ .02가 있습니다. ARM에서 작업하든 AVR에서 작업하든 상관없이 대부분 내가 무엇을하려고하는지에 따라 중요합니다. AVR이 의미가있는 사용 사례가 있으며 ARM이 사용하는 경우가 있습니다. 일반적으로 AVR과 PIC 사이에는 트레이드 오프가 있습니다.
우선, 아마 이런 말을하는 데 어려움을 겪을 지 모르지만, "아두 이노 가족의 강력한 우파"는 보컬 소수입니다. 내가 본 대부분의 arduino 사람들 (사용자)은 종종 자신보다 복잡한 것을 이해하는 수준이 낮은 파이썬 스크립트를 채찍질하는 것과 같은 방식으로 하드웨어를 취급하는 종류입니다. "from numpy import foo"할 때 Arduino 방식에는 몇 가지 장점이 있지만 비판에는 많은 범위가 있습니다.
Arduino 생태계를 제외하고 AVR을 살펴 보는 것이 좋습니다. Arduino 파견단은 AVR을 취미적인 것들에 대한 사실상의 표준으로 만든 이유-arduino가 등장하기 전에 PIC에서 점점 더 많이 차지하고있는 맨틀입니다. AVR의 직접적인 경쟁자들은 PIC와 MSP430 정도가 될 것이며, 보조금 지급 도구와 결합 된 TI의 강력한 마케팅 추진으로 인해 큰 관심을 끌고 있습니다.
다른 답변에서 언급했듯이 AVR은 무료 도구를 사용하여 제로에서 헬로 월드로가는 깨끗하고 표준화 된 방법을 가진 제품군 중 하나입니다. winavr 툴체인을 구성하는 부분 인 avr-gcc 포트는 다양한 복잡성과 기능을 갖춘 많은 프로그래머 회로도이지만 avrdude가 지원하는 권한에 의해 여전히 구속력을 발휘하므로 툴체인을 처리하는 것보다 훨씬 쉽습니다.
PIC의 생태계는 수많은 컴파일러, 프로그래밍 도구, 어셈블러 등으로 인해 악몽입니다. 그들 중 다수는 서로 호환되지 않습니다. 그들 대부분은 지불됩니다. 그들 모두가 좋은 것은 아닙니다. 더 중요한 것은 사실상의 표준이 없다는 것입니다. 자유 / 오픈 소스 대안 (예 : SDCC)은 원하는 것이 많지만 그 이상으로 avr-gcc 및 회사와 같은 사실상의 표준 상태를 얻지 못했습니다. 소프트웨어 툴체인이 제대로 작동하더라도 최소한 어떤 종류의 프로그래머에게 투자해야합니다. PICkit은 20 달러 정도의 비용이 들지만 온라인으로 구매하는 방법 (신용 카드, 국제 배송, 외환 번거 로움)을 알아 내야하는 경우에는 취미 애호가가 될 수 있습니다. 좋은 게 없어
MSP430은 대부분 새로운 점 (가장 인기있는 측면에서 가장 작음)으로 인해 조금 더 나아졌습니다.-경쟁 할 소음이 훨씬 적습니다. TI는 다른 곳에서는 보지 못한 효율로 IC 샘플을 제공합니다. mspgcc의 모양은 양호하며 찾기 또는 설정하기 어려운 오픈 소스 디버깅 소프트웨어도 있습니다. 그러나 문제는 AVR만큼 친근하지 않다는 것입니다. 여전히 프로그래머에게는 문제가 있는데, 이는 PIC를 위해 구매해야하는 것보다 비쌉니다. 3.3v 전원 공급 동작은 5v 로직에 익숙한 사람들에게 인식 장벽을 제공합니다. DIP에서는 확장되지 않습니다. 사용 가능한 저가형 칩이 있지만 더 많은 칩에 도달 한 후에는 사용할 수 없습니다.
DIP vs SMD는 종종 인정받는 것보다 더 중요한 차이점이라고 생각합니다. DIP IC는 브레드 보드, 범용 보드, 사용자가 거주하는 장소 등 무엇이든 사용할 수 있습니다. SMD IC는 반드시 제작 실행 또는 원하는 크기 나 모양으로 쉽게 구할 수없는 어댑터 보드를 구입해야합니다.
데이터 시트 품질, 애플리케이션 노트 및 그 가독성 또한 차이를 만듭니다. Atmel은 그 점에서 조금 더 나은 일을하는 것 같습니다. 물론 이것은 매우 주관적인 평가입니다.
AVR은 내부 RC를 사용할 수 있지만 PIC는 그렇지 않습니다. 크리스탈 이 필요 하기 때문에 자신감이 부족한 경우 약간 어색해집니다.
AVR은 몇 년 전 PIC에 비해 시스템 내 프로그래밍에 더 친숙해 보였지만, 내가 잘못 이해하기는 쉽지 않았습니다.
그러나 귀하의 질문은 AVR vs ARM과 관련이 있습니다. 처음에 말했듯이 AVR과 ARM은 스펙트럼에서 다른 공간을 차지합니다. AVR로 할 수있는 일이 있다면 왜 ARM으로 하시겠습니까? ARM은 더 비싸고, 더 높은 부품 수를 요구하고, 더 많은 에너지를 소비하고, 더 복잡한 코드를 만들고, 더 비싼 제작 프로세스를 필요로합니다. 100 핀 TQFP 납땜 비용 측정 방법에 따라 40 핀 DIP / SOIC 납땜보다 비용이 많이 듭니다. 대량으로 생산하고 그에 친숙한 생산 기술을 사용하는 경우에는 이것이 유지되지 않을 수 있지만 그렇게하면 가격 차이가 더 저렴한 솔루션과 함께 갈수록 더 강력해질 것입니다.
집 주변의 일반적인 해킹이나 당신이 무엇을하고 있는지에 대한 컨트롤러로서, AVR은 다음과 같은 이유로 사용하기가 더 쉽다고 말합니다. 컴파일러 변형 및 제품군 간 레지스터 이름과 API 간 변형. (LPC ARM 코드를 ATMEL ARM 하드웨어에 이식하면 의미하는 바를 알 수 있습니다)-코드가 본질적으로 더 복잡해집니다 (실제로). -툴체인은 설정에 추가 작업이 필요합니다. -인터페이스가 약간 쉬워집니다. ARM은 일반적으로 3v3 또는 1v8 로직으로 드롭하여 다른 장난감과의 인터페이스가 약간 문제가 될 수 있습니다. -더 저렴-로컬 하드웨어 상점에서 ARM 칩을 얻는 것은 내가 사는 곳의 옵션이 아니며 AVR을 얻는 것입니다.
Arduino에 대한 커뮤니티의 관심이 큰 이유 중 하나는 물리적 표준화입니다. Arduino 개발자는 표준화 된 확장 옵션을 포함하여 물리적 레이아웃만큼이나 독창적 인 솔루션을 개발할 수있었습니다. 기본 Arduino 보드를 다른 마이크로 컨트롤러를 사용하는 다른 보드로 교체하려는 경우 가능합니다. IIRC는 누군가 Arduino 폼 팩터를 사용하는 PIC 기반 보드를 이미 구축했습니다. ( PIC Ardunio 보드 는 폼 팩터가 같지 않지만 비슷합니다.)
Arduino가 성공한 또 다른 이유는 개방성에 있습니다. 대부분의 PIC 기반 마이크로 컨트롤러는 닫혀있었습니다. 그들은 독점 하드웨어 구현을 사용했기 때문에 특정 공간에 더 잘 맞도록 보드를 재 설계하고 싶다면 운이 없었습니다. 그들은 사용자 정의 펌웨어와 독점 개발 도구를 사용하여 버그가 있거나 기능을 확장하려는 경우 운이 없었습니다. Arduino를 사용하면 모든 퍼즐 조각이 열려 있습니다. 어디서나 부품을 구매하고 필요에 따라 부품을 재 배열하고 펌웨어 및 개발 도구를 개선 또는 수정할 수 있습니다. Arduino IDE로 간단하게 시작할 수 있지만 필요할 때 언제든지 C 또는 Assembly로 전환 할 수 있습니다.
개인적으로 저는 Arduino를 좋아합니다. '정확한'많은 것들을 얻기 때문입니다. 너무 비싸지 않고 독점적 인 도구에 잠겨 있지 않으며 시작하기 쉽고 많은 기능을 갖추고 있으며 많은 사용자 커뮤니티가 있습니다. 계속 확장하고 깔끔한 작업을 수행합니다.
ATmel uC의 주요 이점은 Linux, PC 및 Mac 용 무료 컴파일러가 있다는 것입니다. 간단한 크로스 플랫폼 GUI를 추가하면 모든 플랫폼에서 실행되는 무료 개발 시스템이 있습니다.
취미 보드의 비용은 주요 요소입니다. 30 달러 범위의 초기 가격을 원하므로 uC 비용이 2 달러를 넘지 않아야합니다.
ARM은 고급 보드의 훌륭한 후보가 될 것입니다. 많은 회사들이 ARM 코어를 라이센스하고 주변 장치를 추가합니다. Linux, PC 및 MAC 용 무료 컴파일러가 있다고 생각합니다.
저는 고급 보드 용 프리 스케일 콜드 파이어를 정말 좋아합니다. 5206e를 사용한 테스트 장 비용 보드에서 작업했습니다. DRAM과 고정밀 A / D 및 D / A 변환기를 추가했습니다. 비용 효율적인 솔루션이었습니다. 최근에 Coldfire를 다양한 ARM과 비교하지 않았습니다.
8 비트 프리 스케일 uC 중 일부는 훌륭하지만 무료 툴이 있는지 확실하지 않습니다.
나는 딥 패키지에 동의하고, 팔을 구성하기가 어렵다는 것에 동의하지 않고 lpcs는 있지만 팔 블록에있는 유일한 아이는 아닙니다 (그 자체로 그 문제에 대해). 내가 기억하고 경험 한 바에 따르면 Atmel은 아마도 더 개발자 친화적 일 것입니다. AVR 버터 플라이는 더 많은 사용자를 이미 좋은 크기의 행복한 사용자 기반으로 끌어들이는 데 큰 도움이되었습니다. PIC는 많은 방법으로 고통스럽고, avr 툴이 있었고, 프로그래밍은 산들 바람이었고 일부 와이어와 라디오 판잣집보다 훨씬 많은 비용을 들이지 않았습니다. 도구는 무료이며 팔과 엄지 솔루션을 찾는 주류 gcc만큼 쉽지는 않습니다. Arduino가 출시되기 오래 전에 AVR은 취미 프로젝트를위한 최고의 선택이었습니다.
현재 ARM과 경쟁 할 수있는 것은 없습니다. 하루 만에 다른 프로세서를 만지면 최소한 몇 개의 ARM을 만집니다. 터치하는 거의 모든 것이 ARM을 사용합니다. 그것은 8 비트 킬러로서 당연히 적합하며 같은 크기, 가격 등으로 8 비트보다 훨씬 더 나은 성능을 얻을 수 있습니다. 도구는 훨씬 우수합니다. 명령 세트는 대부분의 경쟁 제품보다 훨씬 깨끗하므로 동일한 코드가 실행됩니다. 훨씬 더 빠릅니다. 누구와도 형제가 ARM을 내장 할 수 있고 pic, avr, msp430과 같은 회사에 고정되어 있지 않기 때문에 다양한 솔루션이 있으며 마이크로 컨트롤러 rom / ram 혼합물을 처리하는 다양한 방법이 있습니다. 및 인터럽트 벡터 테이블. 슬프게도 더 인기있는 솔루션이 가장 고통 스럽습니다. sam7 또는 이와 유사한 것을 시도하십시오.
항상 문제가되는 프로세서는 아니며 일부 칩은 문제가 있으며 일부는 다른 알려진 문제가 있습니다. 일부는 풀업이 약한 개방형 콜렉터 io 핀을 제공하지 않을 수 있으며, 칩 외부에 하드웨어를 연결하여 무언가에 인터페이스해야 할 수도 있습니다. 필자는 저전력을 원할 때 쉽게 msp430을 사용할 수 있고 팔과 함께 제공되는 작은 칩에서 처리 전력을 원하거나 원하는 개방형 프로젝트를 원할 수 있도록 현장을 샘플링하여 다른 회사와 솔루션을 사용해 보는 것이 좋습니다. 다른 사람들은 가능하다면 아두 이노를 기반으로 차고를 만들 것입니다.
그러나 결론은 실제로 응용 프로그램과 응용 프로그램 작성 방법 및 관심있는 성능 및 리소스에 달려 있다는 것입니다. gcc 또는 firefox가 다양한 플랫폼 및 프로세서에서 실행되는 것과 같은 방식으로 가장 확실하게 할 수 있습니다. 다양한 마이크로 컨트롤러에서 실행되도록 C 애플리케이션 작성 ... IF... 당신은 비용이 드는 마이크로 컨트롤러 특정 추상화 계층을 가지고 있습니다. 마이크로 컨트롤러가 유사한 기능을 가지고 있고 필요한 기능을 가지고 있고 미리 계획하고 통합 할 경우 다음 플랫폼에 충분한 메모리 / 자원이있는 경우 성능보다 이식성에 더 관심이 있습니다. 아마도 미리 계획해야합니다. 또는 적어도 A에서 B 로의 첫 번째 스위치에서 소프트웨어를 다시 디자인하십시오. B에서 C 로의 세 번째 스위치가 있으면 덜 고통 스럽습니다.
다른 의견에서 제기되지 않은 몇 가지 작은 점 :
Arduino는 소규모 I / O 프로젝트를위한 것으로 소량의 인텔리전스를 회로에 추가합니다. 일반적으로 단일 스레드 실시간 장치이며 ARM이 매우 낭비됩니다. 물론 ARM 보드에는 많은 옵션이 있지만 사용 사례는 일반적으로 다릅니다. 일반적으로 실제 운영 체제로 부팅됩니다.
이 소규모 사용 사례를 대상으로하면 핀 수, 구성 요소 지원, 전력 소비 등 기타 모든 것이 더 쉬워집니다.
즉, Arduino의 대상 유스 케이스의 경우, 당신이 그것을 때리는 것과는 다릅니다. 16MHz 프로세서는 통합 LED 체이서 (또는 무엇이든)가있는 알람 시계에 많은 부담을줍니다.
Arduino 는 다른 프로세서에서 사용할 수 있습니다. 예를 들어 Microchip에서 ChipKit을 확인하십시오. 그것은 PIC 32를 사용합니다.
두 번째 시도 (+3 년 전의 원래 게시물 제목 및 질문이 원래 답변 이후 변경됨) :
닭고기와 달걀, 특히 지난 몇 년 동안 (2007 ARM은 Cortex-M 아키텍처를 시작 함) 32 비트 MCU의 인기가 높아졌으며 공급 업체는 8-8보다 큰 설계로 EE 커뮤니티에보다 빠르고 쉽게 액세스 할 수있게되었습니다. 비트 마이크로 (더 나은 도구, 무료 도구, 더 많은 예제 ...).
Atmel은 다른 100 개 업체와 함께 Cortex-M 디바이스를 제공하고 AVR을 ARM으로 지원하기 위해 툴체인을 업그레이드했으며, 오랜 관계인 Arduino 업그레이드 경로가 제공됩니다 (?). 그러나 대안이 등장하고 NXP / ARM의 mbed와 최근 "CoAction Hero"와 같은 "애호가"케이크의 점유율을 확보하려는 대체 시도가 수반되는 것으로 보입니다. KickStarter의 32 비트 오픈 소스 ARM Cortex-M3 보드 .
초기 질문 후 3 년 동안의 최종 생각 : 모든 공급 업체가 32 비트 Cortex-M 코어를 제공 할 때 Arduino는 실제로 Atmel이 아닌 것으로 될 수 있습니까?
원래 답변 : Atmel AVR 공동 창립자 중 하나 인 Alf-Egil Bogen은 비디오 블로그 ( http : //blog.energymicro) 에서 8 비트에서 32 비트 ARM 코어로의 업계 이동 배경을 살펴 봅니다. com / 2013 / 04 / 24 / avr2arm / .