Как начать с платы STM32F103C8T6?

10

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

Требования следующие:

  • 8 аналоговых входов,
  • 4 выхода ШИМ,
  • Я 2 с ,
  • 2 входа квадратурного энкодера,
  • последовательный ввод / вывод,
  • Самопрограммирование по беспроводной сети без физического доступа к роботу.
  • Мультиплатформенный инструментарий + IDE (OS X, Linux, Windows).

Шаги, которые я предпринял до сих пор:

Я использую эту плату на основе STM32F103C8. Я полагаю, что у этого MCU есть все, что мне нужно, включая 2 x QEI, которые я планировал реализовать в программном обеспечении, но этот имеет аппаратное обеспечение, так здорово:

Я следовал этому, чтобы настроить мой toolchain + IDE:

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

Я также скачал стандартную периферийную библиотеку STM32F10x, но она, в свою очередь, порекомендовала мне приобрести более новую версию STM32CubeF1, которая, как я считаю, является всего лишь маркетинговым переименованием вышеупомянутого, поэтому я получил оба:

Наконец, у меня также есть «Полное руководство по ARM Cortex-M3» Джозефа Ю, которое я читаю, ожидая прибытия плат.

Мои вопросы:

  1. Я немного перегружен документацией, если не сказать больше, и я даже не уверен, что все понял. Например, в техническом описании и справочном руководстве указано, что микросхема имеет 3 таймера, способных к квадратурно-кодированным входам. Но я не могу найти документацию о регистрах, которые управляют таймерами где-либо в PDF-файлах выше. Что мне не хватает?

  2. Должен ли я использовать (более старую?) Стандартную периферийную библиотеку или (новее?) Куб? Какая разница? Я понимаю, что обе библиотеки избавляют меня от манипулирования регистрами напрямую и являются рекомендуемым способом. Я прав?

  3. Где находится документация для библиотек (кроме встроенных комментариев doxygen, которые хороши и все, но я бы предпочел иметь html / pdf с возможностью поиска)?

  4. Я выбрал Eclipse + GCC ARM + OpenOCD в качестве набора инструментов, потому что считаю, что это единственный вариант, который будет работать на 3 основных ОС без размера кода или других ограничений. Есть еще варианты?

jamarju
источник
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) «Начало работы с аппаратной разработкой MCU STM32F7xxxx», в котором предоставляет вам много информации, если вы хотите разработать индивидуальную доску. По сравнению с AVR описания регистров иногда немного отстают от основного описания конкретной главы.

  2. STM32CubeMX - это не библиотека, а полезная программа от ST, которая позволяет вам устанавливать распиновку, ее конфигурации, устанавливать системные часы и т. Д., А затем, в конце, генерировать код и весь проект. Проект может быть создан специально для Eclipse (System Workbench для STM32), в который вы просто импортируете этот проект и готовы к работе. Новая библиотека - HAL («уровень аппаратной абстракции»), и попробуйте ее использовать. Это новая вещь, и иногда трудно найти примеры в Интернете, но не учите своих студентов устаревшим технологиям. HAL удобен в использовании и имеет документацию, поэтому я думаю, что это лучший выбор.

  3. Какая библиотека? Во всяком случае, я думаю, это не должно быть проблемой для Google.

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

zupazt3
источник
3
На самом деле, вы можете использовать практически любую IDE, которая может быть использована для управления внешним компилятором.
Крис Страттон