이것은 매우 논쟁의 대상이 될 수있는 주제 중 하나입니다. 다양한 관점이 있으며 다른 사람들에게는 다른 것들이 중요합니다. 나는 포괄적 인 답변을하려고 노력하지만 항상 동의하지 않는 사람이 있다는 것을 이해합니다. 나와 동의하지 않는 사람들이 틀렸다는 것을 이해하십시오. (그냥 키딩)
빠른 요약 :
이 답변은 긴 답변이 될 것이므로 먼저 요약하겠습니다. 대다수의 사람들에게 최신 ARM Cortex-M0 / M3 / M4 칩은 최고의 솔루션, 비용 대비 최고의 기능을 제공합니다. 이러한 32 비트 MCU를 PIC 및 MSP430과 같은 8 비트 및 16 비트 조상과 비교할 때도 마찬가지입니다. M0은 1 달러당 1 달러 미만, M4는 1 달러당 2 달러 미만으로 구입할 수 있으므로 가격에 민감한 애플리케이션을 제외하고 ARM 솔루션은 매우 훌륭합니다. M0은 전력이 매우 낮아 대부분의 사람들에게 충분해야합니다. 전력에 매우 민감한 사람들에게는 MSP430이 더 나은 선택 일 수 있지만 M0은 이러한 응용 분야에도 고려할 가치가 있습니다.
보다 심층적 인 분석에 관심이있는 경우 계속 읽으십시오. 그렇지 않으면 지금 읽기를 중지 할 수 있습니다.
이제 각 영역을 살펴보고 다른 MCU를 비교해 보겠습니다.
실행 속도
물론 32 비트 MCU가 더 빨라질 것입니다. 클럭 속도가 빠르지 만 각 클럭에 대해 더 많은 작업을 수행합니다. ARM Cortex-M4와 같은 MCU에는 DSP 처리 명령이 포함되어 있으며 하드웨어에서 부동 소수점을 지원할 수도 있습니다. 8 비트 및 16 비트 CPU는 32 비트 숫자로 작동 할 수 있지만 그렇게하는 것은 비효율적입니다. 그렇게하면 CPU 레지스터, CPU 클럭 사이클 및 프로그램 저장을위한 플래시 메모리가 빠르게 소모됩니다.
개발의 용이성
제 생각에는 이것이 현대의 32 비트 MCU를 사용하는 가장 귀중한 이유 일뿐만 아니라 가장 평가되지 않은 이유이기도합니다. 먼저 이것을 8 비트 PIC와 비교해 보겠습니다. 이것은 최악의 경우 비교이지만 내 요점을 설명하는 데 가장 좋습니다.
더 작은 PIC는 기본적으로 프로그래밍이 어셈블리 언어로 수행되어야합니다. 사실, 8 비트 PIC에도 사용할 수있는 C 컴파일러가 있지만 이러한 컴파일러는 무료이거나 양호합니다. 좋고 자유로운 컴파일러는 얻을 수 없습니다. 컴파일러의 무료 버전은 최적화가 "Pro"버전만큼 좋지 않다는 점에서 한계가 있습니다. Pro 버전은 약 1,000 달러이며 한 제품군의 PIC 칩 (8, 16 또는 32 비트 칩) 만 지원합니다. 한 가족 이상을 사용하려면 다른 $ 1,000의 다른 사본을 사야합니다. 컴파일러의 "표준"버전은 중간 수준의 최적화를 수행하며 각 칩 제품군에 대해 약 500 달러의 비용이 듭니다. 8 비트 PIC는 최신 표준에 따라 속도가 느리고 최적화가 필요합니다.
이에 비해 ARM MCU 용으로 우수한 C 컴파일러가 많이 있습니다. 제한이있는 경우 이러한 제한은 일반적으로 지원되는 플래시 메모리의 최대 크기에 있습니다. Freescale Codewarrior 도구에서이 제한은 128Kbyte입니다. 이것은이 포럼에있는 대부분의 사람들에게 충분합니다.
C 컴파일러를 사용하면 CPU 메모리 맵의 하위 수준 세부 사항을 신경 쓸 필요가 없다는 장점이 있습니다. PIC에서의 페이징은 특히 고통스럽고 가능하면 피하는 것이 가장 좋습니다. 또 다른 장점은 8 비트 MCU에서 16 비트와 32 비트 숫자를 처리하거나 16 비트 MCU에서 32 비트 숫자를 처리 할 필요가 없다는 것입니다. 어셈블리 언어로이 작업을 수행하는 것은 어렵지 않지만 후면에서 고통스럽고 오류가 발생하기 쉽습니다.
잘 작동하는 다른 비 ARM C 컴파일러가 있습니다. MSP430 컴파일러는 합리적인 작업을 수행하는 것 같습니다. Cypress PSoC 도구 (특히 PSoC1)는 버그가 있습니다.
플랫 메모리 모델
RAM / 레지스터 / 플래시를 페이징 한 MCU는 바보입니다. 예, 8 비트 PIC에 대해 이야기하고 있습니다. 바보, 바보, 바보. 그로 인해 PIC가 너무 꺼져서 새로운 것을 보지 않아도되었습니다. (면책 조항 : 이것은 새로운 PIC가 향상 될 수 있으며 나는 그것을 모른다는 것을 의미합니다.)
8 비트 MCU를 사용하면 256 바이트보다 큰 데이터 구조에 액세스하는 것이 어렵지만 불가능하지는 않습니다. 64 비트 또는 kword로 증가하는 16 비트 MCU 최대 4 기가 바이트의 32 비트 MCU
좋은 C 컴파일러는 프로그래머 (일명 You)에게이 많은 부분을 숨길 수 있지만, 프로그램 크기와 실행 속도에 영향을줍니다.
이것이 문제가되지 않을 많은 MCU 응용 프로그램이 있지만 물론 이것에 문제가있는 다른 응용 프로그램도 많이 있습니다. RAM 또는 플래시에 필요한 데이터 (배열 및 구조)의 양이 대부분 문제입니다. 물론 CPU 속도가 증가함에 따라 더 큰 데이터 구조를 사용할 확률도 높아집니다!
패키지 크기
소형 PIC 및 기타 8 비트 MCU 중 일부는 매우 작은 패키지로 제공됩니다. 6과 8 핀! 현재 내가 아는 가장 작은 ARM Cortex-M0은 QFN-28에 있습니다. QFN-28은 대부분 충분히 작지만 모두를 위해 충분히 작지는 않습니다.
비용
가장 저렴한 PIC는 가장 저렴한 ARM Cortex-M0 가격의 약 1/3입니다. 그러나 그것은 실제로 US $ 0.32 대 US $ 0.85입니다. 그렇습니다. 가격 차이는 일부 사람들에게 중요합니다. 그러나 나는이 웹 사이트에있는 대부분의 사람들이 그 작은 비용 차이에 신경 쓰지 않는다고 주장합니다.
마찬가지로, 더 많은 기능을 갖춘 MCU를 ARM Cortex-M0 / M3 / M4와 비교할 때 일반적으로 ARM Cortex는 "거의 고르게"나옵니다. 다른 것들 (개발 용이성, 컴파일러 비용 등)을 고려할 때 ARM은 매우 매력적입니다.
두 번째 요약
나는 진짜 문제는 추측 : 당신은 왜 것 NOT 에서 ARM 코어 텍스 M0 / M3 / M4를 사용합니까? 절대 비용이 매우 중요 할 때. 초 저전력 소비가 중요한 경우. 가장 작은 패키지 크기가 필요한 경우 속도가 중요하지 않은 경우. 그러나 대부분의 응용 프로그램에는 적용되지 않으며 ARM이 현재 최상의 솔루션입니다.
저렴한 비용으로 ARM Cortex를 사용하지 않는 적절한 이유가없는 한 사용하는 것이 좋습니다. 대부분의 다른 MCU보다 두통이 적고 설계 마진이 크므로 개발 시간이 더 빠르고 쉽습니다.
ARM이 아닌 다른 Cortex 32 비트 MCU를 사용할 수 있지만 그다지 이점이 없습니다. 더 나은 개발 도구와 더 빠른 기술 혁신을 포함하여 표준 CPU 아키텍처를 사용하면 많은 이점이 있습니다.
물론 상황은 변할 수 있고 변할 수 있습니다. 내가 말한 것은 오늘 유효하지만 1 년 또는 1 개월 후에는 유효하지 않을 수 있습니다. 자신의 숙제를하십시오.