Пользователь
0,0
рейтинг
22 июля 2014 в 18:08

Разработка → Обзор платформы для разработчиков ST Nucleo на примере Nucleo-F401RE из песочницы

Оценочные платы ST Nucleo:

image

Это открытая, недорогая и легко расширяемая отладочная платформа для разработки с широким выбором специальных плат расширения, для всей линейки 32-х битных микроконтроллеров STM32 архитектуры ARM Cortex-M3 и Cortex-M4.

image

Платы «ST Nucleo» дают возможность выбирать из различных сочетаний производительность, энергопотребление, и архитектурные особенности микроконтроллера. Платформа позволяет быстро, удобно и легко изучить особенности архитектуры и программирования микроконтроллера, опробовать свои идеи, создать прототипы с любым микроконтроллером семейства STM32.

image

Плата платформы разделена на две части, программатор и оценочная плата. При желании пользователь может распилить плату что никак не повлияет на функциональность платформы.

Программатор STlink-v2.1 имеет SWD разъём на пинах CN4 (см. рисунок выше) что позволяет использовать программатор независимо от оценочной платы для всех МК STM32, для этого достаточно отключить плату микроконтроллером от программатора сняв джамперы с пина CN2 а для того чтобы их не потерять, их можно надеть на пины GND CN11 и GND CN12, пины заземления, на которые в свою очередь с обратной стороны платы уже надеты запасные джамперы. Стоить отметить что на платформе реализован STLink версии 2.1 который как и в версии 2.0 помимо порта программирования отладки SWD(CN4), виртуального COM -> Usart (CN3) имеет особенность работы определяться по умолчанию как сменный Flash носитель, что является весьма полезной опцией для новичков, которые могут программировать микроконтроллер, отправляя на этот носитель бинарный файл прошивки (в данной версии прошивки, не более 20Kb) сгенерированный, например в онлайн среде разработки такой как Mbed. Так же программатор имеет незаслуженно пропущенный из вида общественности отдельно выведенный разъем Usart (разъем CN3 пины RX и TX) реализующий обмен данными с ПК через виртуальный COM что позволяет сэкономить деньги на отдельном устройстве таком как CP2102 который отдельно стоит около 300руб, как раз эти деньги окупают стоимость доставки оценочной платформы Nucleo.

image

Линейка оценочных плат Nucleo поддерживает подключения к «Arduino» и «ST Morpho» разъемам, которые позволяют легко расширять функциональные возможности платформы. Разъемы обеспечивают подключение к периферийным устройствам и шилдов от широко распространенной экосистемы Arduino, позволяя разработчикам удобно и легко добавлять специальные функции и масштабировать свой проект. Также Компания ST предлагает специализированные платы X-NUCLEO-IDB04A1, X-NUCLEO-IHM01A1, X-NUCLEO-IKP01A, X-NUCLEO-NFC01A1 и другие платы расширения — шилды собственной разработки, которые поддерживают функции, такие как Bluetooth® LE или Wi-Fi®, GPS, усиление записи звуковых сигналов, MEMS-микрофоны, датчики приближения и беспроводное управление.

На первых фотографиях, оценочные платы имели кварцы X2 и X3 нужные для переопределения частоты работы шины данных, микропроцессора и периферийных интерфейсов, при покупки плат Nuleo пользователи разочаровались в их отсутствии.
В официальном заявлении в ответ на недовольные отзывы пользователей по поводу отсутствия их на конечном продукте, представитель ST заявил:

Фотографии были сделаны с прототипов, и предполагается что внутреннего RTC генератора будет достаточно для решения большинства задач, при желании пользователь может самостоятельно установить внешние кварцы

(ага, например X2 — smd!!?).

На этой ноте хотелось бы обратить внимание что платы Nucleo хоть и представляют все семейство микроконтроллеров STM32, но только младшие модели, в корпусе с 64 ногами МК. Данное решение немного противоречит желанию обывателя иметь больше и лучше, но с другой стороны, стоит понимать что продукт Nucleo ориентирован быть именно доступной и простой оценочной платформой разработчиков и разработан специально для поддержки mbed-enabled что дает достойный перевес отсутствию такой начинки как на платах Discovery, предполагается что целевой аудитории не нужно столько периферии и аппаратной начинки микроконтроллера как на платах Discovery. Где то в чем то они правы, а в чем то упускают Российский рынок, и не контролируют цены на свой продукт у официальных поставщиков, которые сильно завысили цену (предполагалось что платформа будет стоить 11$ но в России ее можно приобрести только от 750 рублей + стоимость доставки, что в два раза выше рекомендуемой цены).

Линейка Nucleo входит в состав популярного в Европе и динамично развивающегося проекта ARM mbed™ — онлайн инструментария для быстрого и легкого создания продукта на базе ARM.

image

Благодаря поддержке mbed-enabled, разработчики могут использовать платформу Mbed с открытым программным кодом, онлайн средства разработки и инфраструктуру с сайта mbed.org. Стоит отметить удобство и простоту использования этого ресурса, точнее я бы сказал это не просто ресурс, это социальные сети разработчика, где пользователи делиться своими библиотеками, примеры кода и проектами. На ресурсе есть все необходимое для быстрого старта и работы с оценочной платой, форум где пользователи делятся своим накопленным опытом и помогают друг другу решать задачи по отладке кода, большой выбор библиотек для работы с почти что всей периферией микроконтроллера и плат расширения, раздел FAQ и возможность задать вопрос, как пользователям, так и представителю завода изготовителя, общаться между пользователями и многое другое.

image

Онлайн компилятор https://mbed.org/compiler, неотъемлемая часть этого ресурса, который снимет головную боль многих начинающих разработчиков с настройкой среды разработки и компилятора, давая возможность не вникать во все подробности архитектуры STM32.

Директор подразделения IoT platforms компании ARM Саймон Форд (Simon Ford) заявил:
“Аппаратное обеспечение mbed-enabled платы STM32 Nucleo предоставляет пользователям компании ST доступ к расширенной mbed-экосистеме программного обеспечения, программным средствам разработки и сообществу, которые поддерживают разработку новой волны интеллектуальных электронных продуктов”.


Какую плату выбрать себе, трудно ответить так как у каждого свои потребности, кто то планирует разработать определенное устройство или использовать определенное семейство микроконтроллеров (например дешевые или мало потребляющие), я же не имея опыта, для обучения взял самую производительную из доступных на момент приобретения плату Nucleo-F401RE на базе STM32F401RE, многие пользователи поступили так-же, кто брал сразу несколько версий с разными по назначению микроконтроллерами, кто то купил все доступные модели.

На сегодняшний день линейка представлена 9 моделями, старшая из которых STM32 Nucleo-F411RE отличается от широко распространенной в Европе и просто доступной у нас в России STM Nucleo-F401RE большим объемом ОЗУ памяти (128 Kb против 96Kb) большей частотой процессора (100MHz против 84MHz ), большим количеством аппаратно поддерживаемом интерфейсов.

МК CPU FPU Flash RAM 12bit ADC timers I2C USARTs SPIs SDIO I2S
F401 84MHz 512Kb 96Kb 10ch. 10 3 3 4 + N/A
F411 100MHz 512Kb 128Kb 16ch. 10 3 3 5 + 5


Платы STM32 Nucleo-F030R8, STM32 Nucleo-F103RB, STM32 Nucleo-F401RE и STM32 Nucleo-L152RE уже доступны для заказа в России, STM32 Nucleo-F072RB, STM32 Nucleo-F302R8, STM32 Nucleo-F334R8, STM32 Nucleo-F411RE и STM32 Nucleo-L053R8 доступны для заказа из за рубежа, по цене от 10.32 $ за единицу.

P.S. Готов новый пост
Кордубин Сергей @Roon_Boh
карма
12,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (25)

  • 0
    Прошу задавать вопросы, чтобы знать что нужно освещать в следующих статьях
  • 0
    Где купить плату STM32 Nucleo-F411RE за 10 баксов?
    • 0
      примерно за 10 -12$ из европы, плюс доставка. www.digikey.com или www.futureelectronics.com
      • 0
        В www.futureelectronics.com доставка от 58 баксов. Итого примерно 70 баксов.
        В www.digikey.com плата стоит 16 + от 4 доставка итого 20 баксов.
        • 0
          , а в чем то упускают Российский рынок, и не контролируют цены на свой продукт у официальных поставщиков, которые сильно завысили цену (предполагалось что платформа будет стоить 11$ но в России ее можно приобрести только от 750 рублей + стоимость доставки, что в два раза выше рекомендуемой цены).


          Лично я брал на микроконтроллере STM32F401RE6 здесь, обошлось мне это на тот момент в Сумму: 1330.27 RUR. Доставка из Москвы в Ростов-на-Дону обошлась не дешево, почти в пол цены самой платы, которая сейчас там стоит 837.53 руб. (я брал за 800руб, цена постоянно пляшет от маленькой к высокой).
        • 0
          image
          • 0
            1300 руб это существенно больше 10 баксов. Моя жадность пожалуй возьмет верх над интересом к новому микроконтроллеру (
            • 0
              насчет доставки, в ту коробку что мне запихали мою платку можно было запихать 4 таких, Вы из какого города? может у вас есть единомышленники? Или тогда ждите пока я буду себе еще заказывать (если не найду нормального способа параллельно запустить 2 или более цикла в теле одной программы)
              • 0
                Roon_Boh, ну может вариант, который выбрали мы? FreeRTOS, в качестве распараллеливателя…
                • 0
                  Да я на mbed.org что то уже читал, как вариант для не ресурсоемких процедур можно и попробовать. Я в общем то слабо то понимаю что это потому что читал на Английском, а его я знаю очень плохо.
                  • 0
                    -> качаем FreeRTOS с сайта

                    -> Мы использовали дорогущий IAR

                    -> указали в проекте «General Options->C/C++ compiler->Preprocessor»:

                    $PROJ_DIR$\Src\FreeRTOS\include
                    $PROJ_DIR$\Src\FreeRTOS\portable\IAR\LPC24xx

                    -> В проект добавили:
                    — heap_1.с
                    — list.c
                    — port.c
                    — queue.c
                    — tasks.c
                    — portasm.s79

                    -> В main.c:

                    #include «FreeRTOS.h»
                    #include «task.h»

                    xTaskHandle taskProcess_1, taskProcess_2;

                    #define PROCESS_1_PRIORITY 1
                    #define PROCESS_2_PRIORITY 2

                    // — void thread_Process_1(void* pParameters)
                    {
                    portTickType TickCounter = xTaskGetTickCount();
                    while (1)
                    {
                    // your code here
                    //

                    // 10 ms
                    vTaskDelayUntil(&TickCounter, 10/portTICK_RATE_MS);
                    }
                    }
                    // — // — void thread_Process_2(void* pParameters)
                    {
                    portTickType TickCounter = xTaskGetTickCount();
                    while (1)
                    {
                    // your code here
                    //

                    // раз в сек
                    vTaskDelayUntil(&TickCounter, 1000/portTICK_RATE_MS);
                    }
                    }
                    // — // тут точка входа
                    __arm __root void main()
                    {
                    __disable_interrupt();

                    // тут настройка ног // пропустили

                    __enable_interrupt();



                    if ( // stack
                    (xTaskCreate(thread_Process_1, «Process_1», 1000, NULL, PROCESS_1_PRIORITY, &taskProcess_1) != pdPASS)

                    || (xTaskCreate(thread_Process_2, «Process_2», 500, NULL, PROCESS_2_PRIORITY, &taskProcess_2) != pdPASS)

                    )
                    {
                    // пипец — не запустили, все что требовалось
                    };



                    vTaskStartScheduler();


                    }

                    Как то так…
            • 0
              Я сам не против еще парочку прикупить. Постоянно пишу в офис с просьбами, завтра буду говорить с представителем руководства, может как то получиться уговорить на доставку почтой России обычной бандеролью
    • 0
      В Украине я заказывал через ТОВ «ОЗКО». доставка 2х плат вышла примерно 6 уе

      При заказе выше 100 уе у них доставка бесплатна.

      а вообще очень интересные платки. Но в mbed я столкнулся с трудностями компиляции примеров — иногда непонятно почему не компилируется тот или иной проект и какие библиотеки нужно подключать и почему.

      Может где-то есть там manual на использование и на синтаксис языка, но что-то я не могу найти.
      • 0
        Дайте мне ссылку с вашим вопросом на Mbed. Я постараюсь вам помочь. Если конечно у вас вопрос не о лимите в 20Kb.
        На счет Украины, я бы с радостью, тем более что мониторинг цен показал резкий спад цен та подобную электронику, но только после первопроходцев, боюсь как бы посылка не потерялась.
      • 0
        да и синтаксис там обычный C++ ничего особо сложного, но опять таки не стоит забывать что прошивать через «сменный носитель» не стоит большие проекты, встроенный виртуальный ком сделан как раз для возможности отладки. Сделайте ваш код разговорчивым, и посмотрите на каком этапе происходит ошибки.
  • +3
    Автор, распишите для «чайников» преимущества плат данного производителя, в сравнении с другими подобными платами( таблица сравнения), и как эталон Arduino (эталон, пусть и другое семейство микроконтроллеров, но он у всех на слуху и в магазин идут именно за ним, чтобы поиграться периферией).
    Понятно, что там другой микроконтроллер, но относительно своих DYI, что может дать?
    А так же примеры использования с экранчиком, количеством двигателей и другим обвесом\платами расширения. Поддержка языков программирования списком.
    Вы освещаете конкретного производителя и платы, почему именно они( кроме доступности, цены и легкости вхождения в STM32)?
    Сочтите эти вопросы, как от «чайника».
    Спасибо!
    • 0
      Мысль конечно хорошая, но я не профи, сам чайник.
      Это пробная статья, посмотреть на сколько интересна эта тематика. Вижу что интересная ведь кто то же 8 раз плюсанул (2 раза минусанули наверное здешние гуру и из за неполного обзора всей линейуи). Освещаю только эту платформу.
      Примеров игр с дисплеем и прочей периферией полно, и пишут ребята побольше моего соображающие в деталях.
      Если и буду писать примеры по периферии то только мини проекты для сборки на коленке.

      Почему я выбрал именно эту платформу на этом микроконтроллере?
      По тому что эта платформа поддерживает онлайн компилятор mbed, там уже все настроено, и есть все библиотеки, настраивать входы выходы не нужно. Онлайн библиотеки имеют абстракционный уровень позволяющий нам легко взять готовый код для Arduino и скомпилировать его на STM32.
      вот пример готового кода
      #include "mbed.h" // 
      
      DigitalOut myled(LED1); // Тут мы определяем что мы будем использовать цифровой вывод 
      //  и дадим этому объекту имя myled
      // LED1 ввод/вывод микроконтроллера на котором по умолчанию на плате живет пользовательский светодиод,
      
      int main() {
          while(1) {
              myled = 1; // LED ВКЛ
              wait(0.2); // ждем 200 миллисекунд.
              myled = 0; // LED ВЫКЛ
              wait(1.0); // ждем 1 сек
          }
      }
      
      


      Так же у нас есть абстрактные имена выводов микро контролера, такие как например D1 как и в ARDUINO, что позволяет просто вставить код.

      От чего я выбрал 32 битный а не 8 битный микроконтролер?
      — Потому что хочу идти от простого к сложному, и этот микро контролер нам дает возможность по началу не заморачиваться и не перегружаться информацией.

      Почему именно производитель ST?
      — Потому что много примеров по STM32.

      Почему еменно STM32F4?
      — Потому что это уже Cortex-M4 а не M3 как в младших сериях таких как: STM32F0, STM32F1, STM32F3, STM32L.

      Почему именно эту платформу?
      — Потому что для нее подойдет все то же что и для DISCOVERY серии, но самое главное это mbed.org, который дает мне возможность начать сразу программировать и не лезть туда куда я не знаю и мне не скоро понадобиться.

      Почему именно эту модель Nucleo а не другую? Да просто гигантизм меня мучает и я хочу именно F4.

      Собственно я не пиарюсь, не представляю никакой магазин или группу разработчиков. Я просто нашел на мой взгляд хорошую для себя платформу и делюсь своей радостью.
    • 0
      Да это не самый лучший обзор, но он на порядок лучше существующих, и при должном желании просто немного помогает, и немного объясняет пару вопросов возникающих при покупке.
      Конечно же я уже почти доперевел Руководство пользователя, которое очень хорошо дает представление о платформе, но сначала я напишу так называемый быстрый старт, в котором мы воспользуемся некоторыми отличительными чертами этой платформы, такими как: прошивка с помощью виртуального носителя информации (бинарник кидаем как на флешку сразу на платку по USB), Встроенный Виртуальный COM порт., после чего поставим будильник и закончим статью.
    • 0
      До этого занимался stm32f1, потом перешёл на f4. Вскоре понял, что макетка и всякие провода не вариант, нужны шилды бутерброды, посмотрел в сторону Arduino. Обилие всякой «нависной» фигни зашкаливает, arduino ide тоже для новичка самый раз. Так бы и остался на Arduino, но когда начал делать более серьёзные проекты, нету второго uart, один i2c. Можно было попробовать arduino с cortex. Но решил попробовать mbed, почти все библиотеки портированы c arduino. Всё в облаке, и шилды от arduino можно цеплять
      • 0
        Мне тоже понравился этот ресурс, у вас какая плата? Как вы думаете осилю ли портирование в Mbed Discovery?
        • 0
          У меня такая же плата. А насчёт дискавери за вас уже давно всё придумали тыц
          • 0
            я наверное не правильно выразился, я бы хотел сделать библиотеку, с помощью которой можно было бы использовать онлайн компилятор. И в целом бы конечно неплохо было бы скопипастить ресурс как Дуров фейсбук.
            • 0
              тоесть mbed под discovery но только онлайн? так?
              • 0
                Да =) Там самое главное и привлекательное в этом деле отсутствие заморочек по настройке. И это главный популяризирующий фактор.
  • 0
    Спасибо, за обзор! Тоже решился на покупку Nucleo, вырос из 8 -16 bit контроллеров. Думаю было бы не плохо, еще про платы расширения для Nucleo краткий обзор сделать. И доступных сред разработки.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.