Я использую 8-битные микроконтроллеры AVR для создания роботов-последователей со студентами уже несколько лет. Теперь я хотел бы перейти на ARM Cortex-M3, потому что я хотел бы добавить некоторые более ресурсоемкие функции, такие как одометрия и слияние датчиков.
Требования следующие:
- 8 аналоговых входов,
- 4 выхода ШИМ,
- Я 2 с ,
- 2 входа квадратурного энкодера,
- последовательный ввод / вывод,
- Самопрограммирование по беспроводной сети без физического доступа к роботу.
- Мультиплатформенный инструментарий + IDE (OS X, Linux, Windows).
Шаги, которые я предпринял до сих пор:
Я использую эту плату на основе STM32F103C8. Я полагаю, что у этого MCU есть все, что мне нужно, включая 2 x 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
Я следовал этому, чтобы настроить мой toolchain + 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
Наконец, у меня также есть «Полное руководство по ARM Cortex-M3» Джозефа Ю, которое я читаю, ожидая прибытия плат.
Мои вопросы:
Я немного перегружен документацией, если не сказать больше, и я даже не уверен, что все понял. Например, в техническом описании и справочном руководстве указано, что микросхема имеет 3 таймера, способных к квадратурно-кодированным входам. Но я не могу найти документацию о регистрах, которые управляют таймерами где-либо в PDF-файлах выше. Что мне не хватает?
Должен ли я использовать (более старую?) Стандартную периферийную библиотеку или (новее?) Куб? Какая разница? Я понимаю, что обе библиотеки избавляют меня от манипулирования регистрами напрямую и являются рекомендуемым способом. Я прав?
Где находится документация для библиотек (кроме встроенных комментариев doxygen, которые хороши и все, но я бы предпочел иметь html / pdf с возможностью поиска)?
Я выбрал Eclipse + GCC ARM + OpenOCD в качестве набора инструментов, потому что считаю, что это единственный вариант, который будет работать на 3 основных ОС без размера кода или других ограничений. Есть еще варианты?