STM32F103C8T6 보드로 시작하는 방법?


10

저는 8 비트 AVR MCU를 사용하여 몇 년 동안 학생들과 함께 라인 팔로워 로봇을 구축해 왔습니다. 이제 odometry 및 센서 융합과 같은 CPU 집약적 인 기능을 추가하고 싶기 때문에 ARM Cortex-M3으로 업그레이드하고 싶습니다.

요구 사항은 다음과 같습니다.

  • 8 개의 아날로그 입력
  • 4 개의 PWM 출력
  • 나는 2 C,
  • 직교 엔코더 입력 2 개,
  • 직렬 I / O
  • 로봇에 물리적으로 액세스하지 않고 무선으로 자체 프로그래밍.
  • 멀티 플랫폼 툴체인 + IDE (OS X, Linux, Windows).

지금까지 취한 단계는 다음과 같습니다.

이 STM32F103C8 기반 보드를 사용하고 있습니다. 소프트웨어에 구현하려고 계획 한 2 x QEI를 포함하여이 MCU에 필요한 모든 것이 있다고 생각하지만,이 MCU는 하드웨어에 매우 적합합니다.

나는 이것을 따라 툴체인 + IDE를 설정했다.

이 칩에 대한 문서가 여러 PDF에 흩어져 있으며 다음과 같이 다운로드했습니다.

또한 STM32F10x 표준 주변 장치 라이브러리를 다운로드했지만 새로운 STM32CubeF1을 다운로드하는 것이 좋습니다. 이는 위의 마케팅 이름으로 생각됩니다. 그래서 둘 다 얻었습니다.

마지막으로 Joseph Yiu의 "ARM Cortex-M3에 대한 명확한 안내서"도 얻었으며 보드가 도착할 때까지 읽고 있습니다.

내 질문은 :

  1. 나는 문서에 조금 압도되어 최소한이라고 말하고, 내가 그것을 모두 얻었는지조차 확신하지 못합니다. 예를 들어, 데이터 시트 및 참조 설명서에는 칩에 직교 인코딩 된 입력이 가능한 3 개의 타이머가 있습니다. 그러나 위의 PDF 어디에서나 타이머를 제어하는 ​​레지스터에 대한 설명서를 찾을 수 없습니다. 내가 무엇을 놓치고 있습니까?

  2. (오래된?) 표준 주변 라이브러리 또는 (더 새로운?) 큐브를 사용해야합니까? 차이점이 뭐야? 두 라이브러리 모두 레지스터를 직접 조작하지 않아도되므로 권장되는 방법이라는 것을 알고 있습니다. 내가 맞아?

  3. 라이브러리에 대한 문서는 어디에 있습니까 (내장 된 doxygen 주석 외에 좋은 것이지만 검색 가능한 html / pdf를 가지고 있습니다)?

  4. Eclipse + GCC ARM + OpenOCD를 툴체인으로 선택했는데 이것이 코드 크기 나 다른 제한없이 3 가지 주요 OS에서 실행되는 유일한 옵션이라고 생각하기 때문입니다. 더 많은 옵션이 있습니까?


2
참조 설명서의 324 페이지에는 TIM1 및 TIM8을 사용한 엔코더 인터페이스에 대한 세부 정보가 있습니다.
레온 헬러

1
임베디드 시스템-모양 세계 ARM-Cortex-M3을 제안 할 수 있지만 TI에서 나왔습니다. 또한 우분투에 대해 Eclipse + GCC ARM + OpenOCD를 구성 할 수 있었지만 다소 지루하고 적어도 신뢰할 수는 없습니다.
Mahendra Gunawardena

1
ARM-gcc 솔루션은 일반적으로 매우 안정적이며 가장 이식성이 뛰어난 옵션입니다. Makefile 또는 빌드 자동화로 구동되는 빌드에 중점을 두는 경향이 있으므로 기존의 조직 소프트웨어 개발 사례와의 통합이 우수합니다. 실험적 빌드를 편집하고 추진할 IDE (있는 경우)는 훨씬 개인적인 결정 인 경향이 있으며, 툴 개발 노력이 그다지 많은 것으로 여겨지는 것은 아닙니다. 개인적으로, 마지막으로 다루고 싶은 것은 대상 / 툴 체인으로, IDE와 함께 작동하도록 IDE를 변경한다고 가정합니다.
Chris Stratton

답변:


6
  1. 데이터 시트에 관해서는 실제로 분할되어 있습니다. "참조 매뉴얼"은 전체 MCU에 대한 작업, 구성 및 세부 고려 사항에 대한 복잡한 설명입니다. 반면에 "데이터 시트"는 MCU 기능, 핀아웃, 패키지 등에 대한 간단한 설명 일뿐입니다. 모든 STM32 라인 (F1,2 ... 7)에 대해 매우 유용한 문서가 있습니다. "STM32F7xxxx MCU 하드웨어 개발 시작" 사용자 정의 보드를 설계하려는 경우 많은 정보를 제공합니다. AVR과 비교하여 레지스터 설명은 때때로 특정 장의 주요 설명과는 조금 다릅니다.

  2. STM32CubeMX는 라이브러리가 아니라 ST의 유용한 프로그램으로 핀아웃, 구성, 시스템 시계 등을 설정 한 후 결국 코드와 전체 프로젝트를 생성 할 수 있습니다. 이 프로젝트를 가져 오기만하면 준비된 Eclipse (STM32 용 System Workbench) 용으로 특별히 프로젝트를 생성 할 수 있습니다. 새 라이브러리는 HAL ( "하드웨어 추상화 계층")이며이를 사용하려고합니다. 그것은 새로운 것이며 때로는 인터넷에서 예제를 찾기가 어렵지만 학생들에게 오래된 기술을 가르치지 않습니다. HAL은 사용하기 편리하고 문서가 있으므로 더 나은 선택이라고 생각합니다.

  3. 어느 도서관? 어쨌든 구글에 문제가되지 않아야한다고 생각합니다.

  4. Windows와 같은 하나의 OS 만 사용하려는 경우에도 Eclipse (AC6 = STM32의 시스템 워크 벤치)가 최선의 선택이라고 생각합니다. 예를 들어 Keil의 uVision 5가 있지만 정말 끔찍한 IDE입니다. IDE가 제공해야하는 대부분의 기능 (굴절, 클릭 앤 검색, 적절한 오류 확인, 참조 찾기 등)이 부족합니다. 결국 Eclipse는 STM32 용 IDE를위한 유일한 합리적인 선택입니다.


3
실제로, 외부 컴파일러를 구동하기 위해 만들 수있는 거의 모든 IDE를 사용할 수 있습니다.
Chris Stratton
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.