Як почати з плати STM32F103C8T6?


10

Я використовую 8-бітні AVR MCU для створення робочих рядків-послідовників зі студентами вже кілька років. Тепер я хотів би перейти до ARM Cortex-M3, тому що я хотів би додати ще кілька процесорних функцій, таких як одометрія та синтез датчиків.

Вимоги такі:

  • 8 аналогових входів,
  • 4 виходу ШІМ,
  • I 2 C,
  • 2 входи квадратурного кодера,
  • послідовний введення / виведення,
  • Самопрограмування бездротово, без фізичного доступу до робота.
  • Мультиплатформна ланцюжок інструментів + ​​IDE (OS X, Linux, Windows).

Поки що я вжив заходів:

Я використовую цю плату на основі STM32F103C8. Я вважаю, що цей MCU має все необхідне, включаючи 2-х QEI, які я планував реалізувати в програмному забезпеченні, але у цього, можливо, є апаратне забезпечення, настільки чудово:

Я дотримувався цього, щоб налаштувати мою ланцюжок інструментів + ​​IDE:

Я виявив, що документація на цей чіп розпорошена серед ряду PDF-файлів, які я завантажив:

Я також завантажив стандартну периферійну бібліотеку STM32F10x, але це, в свою чергу, рекомендувало мені отримати новіший STM32CubeF1, який, на мою думку, є лише маркетинговою перейменуванням вищезазначеного, тому я отримав обидва:

Нарешті, я також отримав "Повторне керівництво по ARM Cortex-M3" Джозефа Іу, яке я читаю, поки чекаю приходу дошки.

Мої запитання:

  1. Я трохи завалений документацією, якщо не сказати, і навіть не впевнений, що все це отримав. Наприклад, у аркуші даних та довідковому посібнику зазначено, що в мікросхемі є три таймери, здатні квадратурно кодовані входи. Але я не можу знайти документацію реєстрів, які керують таймерами в будь-якому місці PDF-файлів вище. Що я пропускаю?

  2. Чи варто використовувати (старішу?) Стандартну периферійну бібліотеку чи (новіший?) Куб? Яка різниця? Я розумію, що обидві бібліотеки рятують мене від маніпулювання регістрами безпосередньо і є рекомендованим шляхом. Чи правий я?

  3. Де знаходиться документація для бібліотек (окрім вбудованих коментарів доксигену, які є приємними та всіма, але я б хотів мати html / pdf для пошуку)?

  4. Я вибрав Eclipse + GCC ARM + OpenOCD як свою інструментальну ланцюг, тому що вважаю, що це єдиний варіант, який працюватиме на трьох основних ОС без розміру коду чи інших обмежень. Чи є ще варіанти?


2
Сторінка 324 Довідкового посібника містить деталі інтерфейсу кодера з використанням TIM1 та TIM8.
Леон Геллер

1
Можна запропонувати вбудовані системи - Shape The World ARM-Cortex-M3, але це від TI. Також мені вдалося налаштувати Eclipse + GCC ARM + OpenOCD для ubuntu, це було досить нудно, і не надто надійно принаймні для мене.
Махендра Гунавардена

1
Рішення ARM-gcc в цілому досить стабільні, і про найбільш портативний варіант там. Акцент, як правило, більше спрямований на складання, керовані Makefile або автоматизацією побудови, тому інтеграція з існуючими організаційними практиками розробки програмного забезпечення є відмінною. Те, що IDE (якщо воно є) для редагування та керування експериментальними побудовами, як правило, є набагато більш особистим рішенням, і таке, яке не обов'язково бачить як багато зусиль із розробки інструментів, докладених до цього. Особисто, останнє, з чим я хочу мати справу - це ціль / ланцюжок інструментів, яка передбачає, що я зміню IDE лише для того, щоб працювати з нею.
Кріс Страттон

Відповіді:


6
  1. Що стосується таблиць даних, вони дійсно розділені. "Довідковий посібник" - це складний опис того, як робити речі, конфігурація та детальні міркування щодо всього MCU. З іншого боку, "Datasheet" - це лише короткий опис функцій MCU, розробки, пакунків тощо. Також є дуже корисний документ для кожної лінії STM32 (F1,2 ... 7) надає вам багато інформації, якщо ви хочете створити власну дошку. На відміну від AVR, описи регістрів іноді трохи відстають від основного опису конкретної глави.

  2. STM32CubeMX - це не бібліотека, а лише корисна програма від ST, яка дає змогу встановлювати розтяжки, її конфігурації, встановлювати системні годинники тощо, а потім, наприкінці, генерувати код та весь проект. Проект може бути створений спеціально для Eclipse (System Workbench для STM32), в який ви просто імпортуєте цей проект, і ви готові розпочати роботу. Нова бібліотека - HAL ("апаратний абстракційний шар") і спробуйте її використовувати. Це нова річ, а іноді важко знайти приклади в Інтернеті, але не навчайте своїх студентів застарілим технологіям. HAL зручний у використанні та має документацію, тому я вважаю, що це кращий вибір.

  3. Яка бібліотека? Як би там не було, проблем з Google у них не повинно бути.

  4. Навіть якщо ви хочете використовувати лише одну ОС (наприклад, Windows), Eclipse (AC6 = Системний робочий стіл для STM32) - я думаю - найкращий варіант. Наприклад, є uVision 5 Кіля - але це дійсно жахливо IDE - у нього немає більшості функцій, які IDE має пропонувати (рефрактор, натискання та пошук, правильна перевірка помилок, пошук посилань та багато, багато іншого). Отже, загалом Eclipse - це єдиний розумний вибір для IDE для STM32.


3
Насправді ви можете використовувати майже будь-який IDE, який можна зробити для залучення зовнішнього компілятора.
Кріс Страттон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.