Я використовую 8-бітні AVR MCU для створення робочих рядків-послідовників зі студентами вже кілька років. Тепер я хотів би перейти до ARM Cortex-M3, тому що я хотів би додати ще кілька процесорних функцій, таких як одометрія та синтез датчиків.
Вимоги такі:
- 8 аналогових входів,
- 4 виходу ШІМ,
- I 2 C,
- 2 входи квадратурного кодера,
- послідовний введення / виведення,
- Самопрограмування бездротово, без фізичного доступу до робота.
- Мультиплатформна ланцюжок інструментів + IDE (OS X, Linux, Windows).
Поки що я вжив заходів:
Я використовую цю плату на основі STM32F103C8. Я вважаю, що цей MCU має все необхідне, включаючи 2-х QEI, які я планував реалізувати в програмному забезпеченні, але у цього, можливо, є апаратне забезпечення, настільки чудово:
- Дошка 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/uk/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 (посібник із програмування Flash) та 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
Нарешті, я також отримав "Повторне керівництво по ARM Cortex-M3" Джозефа Іу, яке я читаю, поки чекаю приходу дошки.
Мої запитання:
Я трохи завалений документацією, якщо не сказати, і навіть не впевнений, що все це отримав. Наприклад, у аркуші даних та довідковому посібнику зазначено, що в мікросхемі є три таймери, здатні квадратурно кодовані входи. Але я не можу знайти документацію реєстрів, які керують таймерами в будь-якому місці PDF-файлів вище. Що я пропускаю?
Чи варто використовувати (старішу?) Стандартну периферійну бібліотеку чи (новіший?) Куб? Яка різниця? Я розумію, що обидві бібліотеки рятують мене від маніпулювання регістрами безпосередньо і є рекомендованим шляхом. Чи правий я?
Де знаходиться документація для бібліотек (окрім вбудованих коментарів доксигену, які є приємними та всіма, але я б хотів мати html / pdf для пошуку)?
Я вибрав Eclipse + GCC ARM + OpenOCD як свою інструментальну ланцюг, тому що вважаю, що це єдиний варіант, який працюватиме на трьох основних ОС без розміру коду чи інших обмежень. Чи є ще варіанти?