저는 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는 하드웨어에 매우 적합합니다.
- 보드 http://eud.dx.com/product/high-quality-cortex-m3-stm32-stm32f103c8t6-development-board-w-swd-interface-844380789
- 프로그래머 http://eud.dx.com/product/st-link-v2-programmer-emulator-mini-stlink-downloader-for-stm8-stm32-mcu-development-board-844380733
나는 이것을 따라 툴체인 + IDE를 설정했다.
이 칩에 대한 문서가 여러 PDF에 흩어져 있으며 다음과 같이 다운로드했습니다.
- STM32F103x8 데이터 시트 http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/CD00161566.pdf
- 참조 매뉴얼 http://www.st.com/st-web-ui/static/active/en/resource/technical/document/reference_manual/CD00171190.pdf
- AN2606 (메모리 부팅 모드), PM0075 (플래시 프로그래밍 매뉴얼) 및 AN3155 (직렬 부트 로더 프로토콜)와 같은 다른 문서는 나중에 필요할 것입니다.
또한 STM32F10x 표준 주변 장치 라이브러리를 다운로드했지만 새로운 STM32CubeF1을 다운로드하는 것이 좋습니다. 이는 위의 마케팅 이름으로 생각됩니다. 그래서 둘 다 얻었습니다.
- http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/LN1939/PF257890
- http://www.st.com/web/en/catalog/tools/PF260820
마지막으로 Joseph Yiu의 "ARM Cortex-M3에 대한 명확한 안내서"도 얻었으며 보드가 도착할 때까지 읽고 있습니다.
내 질문은 :
나는 문서에 조금 압도되어 최소한이라고 말하고, 내가 그것을 모두 얻었는지조차 확신하지 못합니다. 예를 들어, 데이터 시트 및 참조 설명서에는 칩에 직교 인코딩 된 입력이 가능한 3 개의 타이머가 있습니다. 그러나 위의 PDF 어디에서나 타이머를 제어하는 레지스터에 대한 설명서를 찾을 수 없습니다. 내가 무엇을 놓치고 있습니까?
(오래된?) 표준 주변 라이브러리 또는 (더 새로운?) 큐브를 사용해야합니까? 차이점이 뭐야? 두 라이브러리 모두 레지스터를 직접 조작하지 않아도되므로 권장되는 방법이라는 것을 알고 있습니다. 내가 맞아?
라이브러리에 대한 문서는 어디에 있습니까 (내장 된 doxygen 주석 외에 좋은 것이지만 검색 가능한 html / pdf를 가지고 있습니다)?
Eclipse + GCC ARM + OpenOCD를 툴체인으로 선택했는데 이것이 코드 크기 나 다른 제한없이 3 가지 주요 OS에서 실행되는 유일한 옵션이라고 생각하기 때문입니다. 더 많은 옵션이 있습니까?