ARM 마이크로 컨트롤러에서 프로그래밍을 시작하는 가장 저렴하고 쉬운 방법


18

너무 오랫동안 사용해온 PIC에서 마이그레이션하면서 ARM 프로세서 사용을 시작하고 싶습니다. 8 비트 모델은 1 달러 미만, 프로그래머는 10 달러 미만으로 구매할 수 있었고 시작하기 쉽고 비용이 적게 들었습니다. 그러나 일부 ARM 칩이 동일한 가격으로 전력을 낭비하고 폐쇄 소스 소프트웨어가 공급되는 것을보고 스위치를 만들고 싶습니다.

차라리 개발 보드를 얻는 것을 피하고 대신 저렴한 일반 브레이크 아웃 PCB ​​(1 달러)와 외부 구성 요소가 필요한 브레드 보드를 사용하여 직접 개발하십시오.

이런 식으로 ARM 칩을 프로그래밍하기위한 옵션은 무엇입니까? PICKit2와 같이 USB를 사용하여 PC에 연결하고 칩과 ICSP와 같은 간단한 직렬 연결을 통해 프로그래밍하는 프로그래머가 있습니까? ARM 제조업체, ARM 버전 및 개별 칩마다 설정 차이가 얼마나됩니까? (ST, Atmel ...) 예를 들어 각 제조업체는 자체 컴파일러, 프로그래머, IDE 등이 필요합니까? 아니면 모두에게 공통적 인 도구가 있습니까?

편집 : 좋아, 더 많은 연구를 한 후 비교적 저렴한 솔루션을 생각해 냈다고 생각하면 stm32 dev 보드는 DAPLINK 펌웨어로 플래시 할 수 있지만 공식 github 펌웨어가 기본적으로 작동한다고는 생각하지 않습니다 (이 모든 것이 내가 할 때까지 추측입니다) 메일에 stm32 dev 보드를 가져옵니다). 그러나 readbear mk20에 포함 된 daplink_usb 보드가 stm32 칩을 실행 중이며 펌웨어를 출시했으며 8mhz 크리스탈과 호환되도록 라인을 변경해야합니다 (아래 링크 된 포럼 게시물에 자세히 나와 있음). 그렇지 않으면 16 MHz의 결정으로 결정을 변경하십시오. 개발자 키트가 도착했을 때이를 확인하면 업데이트됩니다.

GITHUB REPO

좋은 포럼 자료는 여기에 있습니다 .

레드 베어 깃 허브 포크


4
5 달러가 Raspberry Pi Zero를 제공한다는 것은 매우 좋은 일입니다. Raspberry Pi Zero는 완벽하게 정상적인 GCC가 지원합니다. ARM 마이크로 컨트롤러가 얼마나 빠른지 충격을 받으면 RPi가 다시 충격을줍니다. 주요 문제 IMO는 ARM 제조업체가 RPi 아래의 메시지를 이해하지 못한다는 것입니다. 더 이상 ARM micrcontrolllers에서 많은 수익을 얻지 못하지만 즉시 사용 가능한 CPU 모듈을 제공하여 더 많은 수익을 창출 할 수 있습니다.
MSalters

4
내장 된 응용 프로그램에서 즉시 사용 가능한 CPU 모듈을 사용하는 것은 과도한 일입니다.
Bence Kaulics

3
@MSalters, RPI는 부피가 큽니다 ... 나는 여분의 도구가 필요하지 않습니다. 빠른 실시간 처리를 위해 초소형 공간에 베어 본이 필요합니다. 또한 RPI는 허용 가능한 것보다 많은 전력을 소비합니다.
CL22

3
물론 대부분의 개발 보드는 그렇게 될 것입니다. 그러나 MCU 개발의 가장 큰 장점 중 하나는 하드웨어 및 소프트웨어 개발을 한 시점까지 격리 할 수 ​​있다는 것입니다.
이그나시오 바스케스-아 브람스

2
통합 USB-SWD 브리지와 함께 제공되는 저렴한 개발 보드를 고려하십시오. 그러면 코드 다운로드뿐만 아니라 디버그 기능에도 액세스 할 수 있습니다. SWD 액세스를 다른 대상에 적합하게 분리 할 수 ​​있습니다.
Sean Houlihane

답변:


14

stm32F0 및 stm32L0 라인에는 약 $ 10의 디스커버리 보드가 있으며 Keil은이 라인에 대해 완전한 기능의 IDE를 제로 비용으로 제공합니다.

Keil free pro MDK 설치 지침은 여기에 있습니다

또한 ARM에는 PIC에서 Cortex M3으로 마이그레이션하는 데 도움 이되는 백서 가 있습니다.


7
+1 그러나 대부분의 모든 디스커버리 보드에는 점퍼를 구성하여 독립형 장치를 프로그래밍하는 데 사용할 수있는 STLINK가 내장되어 있습니다.
Roger Rowland

@RogerRowland-좋은 지적입니다. 나는 내 자신의 보드에 온보드 프로그래머를 사용했다. 디스커버리는 일반적으로 훌륭한 라인입니다. 나는 그들이 구멍을 설치하기를 바랍니다!
Scott Seidman

Nucleo 또는 Discovery를 추천 하시겠습니까? 가격이 같고 ST-LINK 기능이 있습니다.
David

@ david, nucleo를 사용하지는 않았지만 Discoveries가 나에게 잘 도움이되었다고 말할 수 있습니다. 그 가격대에서, 각각 하나를 얻으십시오 (물론 두 가지 발견을하겠습니다!)
Scott Seidman

Dave Jones는 최근 ARM32 저전력 MCU 용 개발 보드에 대한 EEVblog 비디오를 만들었습니다 . 아마도 관련이 있습니다.
Lorenzo Donati는 Monica

7

모든 기능을 갖춘 Keil Pro 컴파일러에 대해 $ 10K USD 이상을 구매하는 가장 쉬운 방법은 JLINK 디버거를 구입하는 것입니다. IAR은 또 다른 비싼 가능성입니다 (30 일 IAR 데모에서 작동하는 STM32F7 Cortex M7 프로세서에 대한 예가 제공됨)

가장 저렴한 방법-JLINK 디버거 플러그인과 함께 (무료) GCC-ARM + Eclipse 툴체인을 다운로드하여 설치하십시오. JLINK 복제본을 $ 20 정도 구매하십시오. 디버깅을 위해 아직 테스트되지는 않았지만 정상적으로 작동한다고 생각합니다.

인터넷에 대한 후자의 자세한 지침이 있지만 특정 가정을합니다. 특히 Windows에서 하루 이상을 보내려고합니다. 약간의 작업없이 다른 IDE에 제공된 많은 예제를 사용할 수있을 것으로 기대하지 마십시오. 무료 툴체인은 '팩'( '실험적')을 사용할 수 있습니다.

재정적으로 덜 고통스러운 Rowley Crossworks와 같은 다른 시스템이 있습니다 (gcc를 사용합니다). Atmel Studio는 또 하나이지만 경험이 많은 펌웨어 개발자로부터 쓴 불만이 있습니다 (잠깐 동안 만 연주했습니다).

코드 요구가 32K 미만인 경우 동일한 Keil 시스템을 무료로 사용할 수 있지만 (코드 제한 버전) 업그레이드 경로는 쉽지만 비용이 많이 듭니다. 예를 들어 SAME70에 대한 간단한 이더넷 예제는 컴파일하지 않습니다. PIC 또는 AVR을 로우 엔드 ARM으로 교체하는 경우에는 좋지만 실제로 LCD 디스플레이와 통신하고 복잡한 통신 프로토콜을 실행해야하기 때문에 ARM을 사용하는 경우에는 그리 좋지 않습니다 (사전 컴파일 된 모듈은 32K 제한, 나는 특정 각도를 조사하지 않았습니다).


7

내가 사용하는 것은 다음과 같습니다.

  • STM32F103 "최소 시스템 보드"(예 참조 여기에 , 코어 텍스 M3 코어 ), 외부 구성 요소없이 3.3V 또는 USB 전원으로 작동이 클론은 약 US $ 각 3를 위해 제공됩니다. 이것은 "저렴한 일반 브레이크 아웃 PCB와 브레드 보드로 바로 연결"하라는 귀하의 요청에 잘 맞습니다.
  • ST-링크 V2 USB 프로그래머 클론 (같은 모양 이 하나 ) $ 2에 대한 미국에서 시작하여 온 - 칩 지원은 aswell 디버깅.
  • gcc 툴체인, US $ 0의 IDE로서 EmBitz (이전의 Em :: Blocks)
  • 새 프로젝트를 시작하는 데 도움이되는 STM의 CubeMX , US $ 0

5

가장 쉬운 시작은 아마도 타사 복제 보드 중 하나입니다. ST의 무작위 예 . 이를 위해서는 'SWD'프로토콜을 사용하는 프로그래머가 필요합니다. ST는 'ST-LINK'브랜드의 제품을 만들지 만 ST 기기와 함께 ST-LINK 제품을 사용해야하는지 또는 그것이 일반적인 것인지 확실하지 않습니다.

SWD와 JTAG의 일부 조합은 ARM 시스템에서 ICSP의 역할을 수행하여 프로그래밍 및 디버그 기능을 제공합니다.

소프트웨어 측면에서는 대개 대부분의 칩에서 GCC 및 OpenOCD로 작업 할 수 있습니다. 세부 사항은 각 장치마다 약간 다릅니다. 전문가들은 종종 Keil 툴체인을 사용하는데, 이는 꽤 비쌉니다.

일부 장치 (예 : Kinetis 시리즈)에는 USB 부트 로더가 있습니다. 장치가 대용량 저장 장치로 표시되면 BIN 파일을 다운로드 한 다음 버튼을 누릅니다. 프로그래머가 필요하지 않은 가장 쉬운 솔루션. Atmel AT91에는 SAM-BA라는 독점 프로토콜과 작동하는 USB 부트 로더가 있습니다.


st 디스커버리 및 뉴클레오타이드 보드에는 스 링크가 있으며 독립형 스 링크 링크보다 30 % 저렴합니다. 또한 적어도 하나의 MCU를 가지고 놀 수 있습니다. stlink를 얻는 것은 여전히 ​​좋으며 openocd와 함께 사용하여 swd를 통해 다른 st 또는 non-st cortex-m 칩에 연결할 수 있습니다.
old_timer

1
내가 시도한 Kenetisis 칩에 관심이 있는데 부트 로더가 swd 전용이 아니며 stlink를 사용하여 연결하지 않기 때문에 (아직은) 사용할 수 없으므로 cmsis-dap이 필요합니다. 마찬가지로 samd21은 더 이상 부트 로더를 제공하지 않으므로 추가 할 수 있지만 기본적으로 응용 프로그램 플래시 공간에 있으며 실수로 지워지 기가 쉽지 않습니다. stm32s는 여전히 nxp처럼 부트 로더를 가지고 있습니다. 아마도 그 역시 사라질 것입니다.
old_timer

3

IDE 프론트에서 Silicon LabsEclipse 기반의 Simplicity Studio를 제공합니다 . GCC에는 표준으로 제공됩니다.

판매하는 모든 스타터 키트를 기본적으로 지원하므로 비교적 쉽게 시작할 수 있습니다.

프로그래밍은 스타터 키트 용 Segger J-Link 드라이버를 사용합니다 (무료). 키트를 USB에 연결하고 이동하십시오.

아트멜은이 스튜디오 는 Visual Studio IDE를 기반으로하며 Atmel의 디버거 중 하나에 연결할 수 있습니다. 이것은 또한 GCC와 함께 제공됩니다.

두 공급 업체 모두 장치를 구동 할 수있는 수많은 (매우 많은) 예를 가지고 있습니다.

나는 두 가지를 모두 사용했지만 문서가 완벽하지는 않지만 (아직 절대는 아니지만) 비교적 고통없이 나아갈 수있을 정도로 충분했습니다.

많은 ST 키트 (및 기타)가 mbed를 지원합니다.


2

Cypress는 브레이크 오프 부분에 USB 기반 프로그래밍 어댑터를 포함하는 DIP-40 폼 팩터를 사용하여 PSOC-4200 기반 (ARM Cortex M0) 브레이크 아웃 보드를 만듭니다. 브레이크 아웃 보드 및 부착 된 (분리 가능한) 프로그래밍 어댑터의 가격은 Digi-Key의 무려 US $ 3.99입니다.


1

CooCox를 추천 합니다. 동일한 GCC + Eclipse 조합이지만 툴체인을 수동으로 구성 할 필요가 없습니다. 설치하고 코딩을 시작하면됩니다.


멋지다, Atmel은 지원되지 않는 것 같다. ST M7 코어가 지원됩니까?
Spehro Pefhany

Atmel은 지원되지 않는 것으로 보입니다. 컴포넌트에 STM32F7 시리즈에 대한 일부 라이브러리가 있습니다. CoIDE의 미래는 분명하지 않습니다. 웹 사이트가 혼란스럽고 업데이트가 드물지만 여전히 ARM 프로그래밍 (특히 STM32)으로 시작하기에 적합한 선택입니다.
Flanker

1

내 생각에 TI, NXP (NXP + Freescale로 구성) 및 ST는 cortex M 세계에서 주요 역할을 담당하고 있으며, 특히 ST와 NXP는 초보자를위한 매우 경쟁력있는 도구를 제공합니다. 튜토리얼, 라이브러리, 장치 드라이버, 도구 및 기타

그때 :

  1. mbed 온라인 컴파일러 + mbed 보드
  2. STM32 디스커버리 보드 (예 : STM32F407discovery) + 내장 된 st-link 디버거 + SPL 또는 HAL (STM CUBE) 프레임 워크 + 무료 라이센스 keil IDE.
  3. LPC 디스커버리 보드 + LPC- 링크 2 디버거 + LPCOPEN 프레임 워크 + LPCXPRESSO 무료 라이센스 IDE.

2 번과 3 번은 취미보다 상위 레벨에 더 적합합니다. 또한 IAR, Keil 또는 LPCXPRESSO와 같은 전문 도구의 무료 라이센스를 사용하면 전문 영역으로 이동하는 동안 통증이 줄어 듭니다.


1
ARM의 mcu 라이브러리 및 툴체인은 다음과 같습니다. mbed[ developer.mbed.org] [developer.mbed.org]
Sean Houlihane
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.