Pull to refresh

Comments 38

Ну вот только я соскочил с Ардуины на 32-х битные АРМы, так сразу же начинают снова на них заманивать печеньками)))

Спасибо за публикацию. Надеюсь mbed будет набирать обороты, так как многие уже выросли из 8-и битной мейнстримовой ардуины но к 32-х битным АРМам еще не приросли.
Хотя наверно печеньки эти надо попробовать.
Вот только один вопрос у меня — вот Вы сказали, что можно брать для реализации подключения любую плату. Но у них ведь разные процы стоят. Например на Вашей Cortex M4 стоит. На NUCLEO-F030R8 Cortex M0. Это достаточно разные процы. И код без изменений будет работать на обоих? Когда я на я Keil-е писал код для подключения дисплея — программу приходилось переделывать. Переписывать драйвер подключения и т.д.
По идее они так и задумывали, один код работает на разных платформах (оф. поддерживаемых), библиотека mbed содержит все необходимые порты для каждой платы. То есть мой код заработает на любой из этих плат (только естественно нужно будет подправить кусок кода отвечающий за названия пинов и правильно соеденить с lcd).

На мой взгляд mbed это такой ардуино для взрослых. STM даже линейку Nucleo сделало с разъёмом как на ардуино, плюс к этому поддержка в коде названий пинов типа A0, D13. Да и вообще, сделали функции типа AnalogIn\Out. И это всё тот же синтаксис С++, перейти с ардуино будет легко! )

Вот и хорошо бы тему эту развивать, распространять, писать статьи для новичков и не только!
Ну так и давайте! Я на самом деле хоть на ардуину и ворчу но все равно переодически то там то здесь использую ее.
Тема это очень интересная.

Осталось только определится с тем какую Нуклео купить. Склоняюсь пока к L0, так как судя по некоторым описаниям это «убийца» MSP430 — в плане энергопотребления. А две обычных отладки F4 и F429(с дисплеем) уже есть.
Один только минус для меня — Иногда хочется свое устройство на ардуино самому спроектировать, сделать или заказать плату и т.д. В итоге максимум компактности и аутентичности. Паяется все легко и просто. А вот STM-овские процы впаивать и платы под них делать все таки посложней. Поэтому что то попроще начинаешь или на ардуине делать или на MSP430. Но это опять же наверно ворчание)))
Тут исходя из целей зависит. Если что-то не требующее компактности и быстро, использую да хоть ту же atmega8, всё-таки dip корпус и выводные компоненты намного проще паять, да и платы в домашних условиях делать легко, да и код быстренько в Arduino написать, порой устраивает. Но есть моменты когда производительности уже не хватает, например при работе с таким дисплеем. Обновление экрана занимает целую вечность, а ведь нужно ещё помимо вывода на экран что-либо обрабатывать. Вот тут уже на помощь приходит stm32. По сути отладочные платы для того и нужны, чтобы на них используя выбранный МК или компонент какой, что-либо спроектировать, обкатать, попробовать. А дальше рисуем схему, создаём печатную плату, отправляем заказ в Китай, получаем компактную платку. Согласен, паять smd посложнее, в смысле сноровка нужна, но получается намного быстрее! Раскидал на плату smd, прошелся феном, поставил чип и быстренько его микроволной. Отмыл и готово! С выводными же тоже возня, тут согни, тут отрежь, каждый вывод припаяй.
Да не, я DIP и выводные вообще не использую больше — места они всегда больше занимают и на плате и в шкафах коробки с этим барахлом.
Купил семпл буки резисторов и керамики и всегда их использую и меги только в TQFP. Причем перешел на 0603 — все очень быстро и хорошо. Платы под них фоторезистом делаются быстрее чем ЛУТом даже. Но вот паять TQFP100 и более как то пока не очень. Сделал тут месяц назад плату под TQFP64 и впаял ее, пришлось все таки попотеть немного))
Для мелких и средних проектов — много возни.
А ведь прежде чем делать готовое устройство все равно нужно несколько прототипов сделать — а заказывать каждый прототип в Китае не выгодно. Нужна то одна плата, а платишь как за 10 да еще и жди их 3-4 недели. А Отладки — это очень здорово! Я под STM-овские даже уже свои шилды проектирую — просто кайф — одел, вот тебе GPRS модем, а рядом можно пристегнуть GPS.
я так подключал недавно к этой же плате TFT дисплей с параллельным портом.
Единственное что мне не понравилось это дребезг резистивной тач-панели(хотя может быть я что-то не так считывал).
Пришлось делать выборку и \з большого количества данных и использовать медианный фильтр на основе QuickSelect.

Я использовал VCC — +5v (на плате дисплея стоит стабилизатор на 3.3 вольта, если его замкнуть предусмотренной перемычкой, то можно использовать питание 3.3 вольта).
Логика дисплея работает от 3.3 вольт, как и наш микроконтроллер, поэтому использовать конвертер логических уровней, как в случае с arduino uno, нам не потребуется.


Где же вы были год назад. Я так надолбался с этими китайскими экранчиками, пытаясь понять почему ничего не работает :-) Всему виной конечно невнимательность, я далеко не сразу понял что в поставке «по умолчанию на ebay» их таки надо от +5V запитывать при логике 3.3V.
Год назад я сам стал свидетелем бурления интернета на эту тему, но у меня была платка freaduino, там был переключатель, выбирающий значение напряжения питания МК, 3.3v либо 5v.
Как вариант в он-лайн компиляторе mbed можно выбрать экспорт проекта в например Keil uVision, а уже в нём скомпилировать hex файл, и уже его прошить доступными для Вас методами.
От Arduino здесь лишь Arduino-compatible Headers.
А жутчайшие библиотеки?
Ē-моē, там еще и C++! Вы б еще пхытон запихали на микроконтроллер! Жуть!!!
«А мужики то и не знали». Нет серьезно, вы знаете сколько С++ работает на эмбеддедах в продакшене?
Я знаю, что извращенцев везде полно. Вон, некоторые даже жабку пытаются в МК запихать. И им пофиг, что вместо одного килобайта их код десятки килобайт занимает!
Ардуйня — такая ардуйня…
Взгляните на современный С++, вы будете серьезно удивлены.
С++ — для гуйни. Для нормальных задач этот говноязык непригоден.
Но, думаю, ардуйне это не понять.
Ох, я надеюсь вы не летаете на самолетах с таким то подходом.
К счастью, там не используют подобного шлака.
Боюсь вас расстроить, но в авиации используют С++ на равне с С (и ada), в частности боинг использует С++ с vxworks. Автомобили? С++ как в эмбеддеде так и и в схемах контроля «самоуправляемых машин».
А ведь питон это еще даже и ничего, еще и JS есть ;-)
Я вот например скоро туда попробую mruby специально для embedded штук сделанный. Я его уже собрал для arm-none-eabi
Если кому интересно серьезнее штуки с Nucleo, то есть ОС реального времени Nuttx (http://nuttx.org) и в ней уже есть готовые порты для Nucleo 401 и 411, с 411 пока не так все хорошо с частотами, но я постараюсь доделать этот порт.

PS
Nuttx это именно та ОС, на которой работает известный в узких кругах автопилот pixhawk, apm.
Да, но мне показалось, что этот проект как-то заглох, и ничего на нем известного не выходило, а вот на Nuttx для stm32f4 есть этот интересный автопилот.

PS
Еще я знаю точно на этой плате работает ChibiOS, одна из самых известных RTOS сейчас.
А у вас случайно нет примера для работы с SD картой этого дисплея в mbed?
#include "SDFileSystem.h"
  // connect a sd-card to the second spi or use the local filesystem of the LPC   
  SDFileSystem sd(p11, p12, p13, p14, "sd"); // mosi,miso,sck,cs
  TFT.cls();
  TFT.locate(10,110);
  TFT.printf("Graphic from external SD-card");
  int err = TFT.BMP_16(1,140,"/sd/test.bmp");  // load test.bmp from external SD-card
  TFT.locate(10,120);
  if (err != 1) TFT.printf(" - Err: %d",err);


В самом конце...
В этой библиотеке реализован DMA, только для трёх процессоров, к остальным автор предлагает дописать по аналогии. С dma намного по шустрее ))
То самое чувство когда знаешь что старался не зря =) Респект Автору =)
Спасибо! Подключил экран от Nokia 5110 к mbed F401. До этого бился с morpho-pins, почему то не получалось ни в каких вариантах.
Проверил на ардуино нано — экран работает.
Появились следующие вопросы:
— почему на pinout диаграмме два SPI1? Это опечатка у mbed?
— можно ли к D5/D4/D3 подключить еще SPI устройство? А на уже подключенный к D13/D12/D11 выводить статус и прочее?
Для удобства разводки печатной платы, интерфейс spi1 можно использовать на разных контактах.
Попробуйте программу MicroXplorer.
Посмотрел. Очень полезно, пригодится, спасибо!
Sign up to leave a comment.

Articles