Урок 53. Плата MassDuino UNO LC (MD-328D). АЦП высокого разрешения (до 16 бит), расширенные функциональные возможности, полная совместимость с Arduino UNO.

Контроллер MassDuino UNO LC (MD-328D)

Прерву на короткое время уроки по теме обмена данными между платами Ардуино, чтобы рассказать о новой уникальной плате MassDuino UNO LC.

Предыдущий урок     Список уроков     Следующий урок

В моем партнерском магазине появилась новая плата Ардуино, полностью совместимая с Arduino UNO, но с принципиально новыми возможностями. Особенно впечатляют ее уникальные способности, связанные с обработкой аналоговых сигналов. Но еще больше удивляет цена.

По моей партнерской ссылке цена платы MassDuino UNO LC составляет всего 250 руб!

Невероятно! За эти деньги вы получаете плату полностью совместимую с Arduino UNO R3. Совместимую по размерам, параметрам, разъемам, функциональным возможностям, системе питания. Даже в интегрированной среде Arduino iDE можно работать с ней, задав тип платы Arduino UNO.

 

Но добавились новые принципиальные качества, которые значительно расширили возможности платы, особенно при обработке аналоговых сигналов. Создается впечатление, что разработчики нового контроллера Ардуино серьезно проанализировали  потребности рынка, учли все недостатки предыдущих версий и исправили их.

  • Прежде всего, увеличилась разрешающая способность АЦП. Теперь она может быть задана программно на уровне 10, 12 и 16 бит. В результате значительно повышена точность измерения аналоговых сигналов и появилась возможность выбирать оптимальное сочетание точность-время измерения.
    Отпала необходимость в подключении к плате внешних АЦП. Точности 16 разрядного преобразования достаточно для практически любых задач. Новое качество настолько значимо, что после этого абзаца обзор можно закончить.
  • В продолжение расширения функций работы с аналоговыми сигналами в плате появились два 8 разрядных цифро-аналоговых преобразователя (ЦАП). Это не ШИМ, а настоящие аналоговые ЦАП. Быстрые, точные, без пульсаций, не требующие применения фильтров низких частот.
  • На разъемы выведены два аналоговых входа A6 и A7. Arduino UNO через разъемы позволяет подключить только A0-A5. Лишних выводов в контроллере не бывает.
  • Появились 4 дополнительных дискретных вывода PE0, PE2, PE4 и PE5. Они выведены на “пяточки” платы, к которым могут быть припаяны контакты разъема. Еще раз повторю, что дополнительные выводы никогда не помешают, а здесь целых 4.
  • Появилась возможность одной перемычкой на плате выбирать логические уровни внешних сигналов контроллера:  5 В или 3,3 В. Такой функции явно не доставало при работе с 3 вольтовой периферией.
  • Разработчики Arduino MassDuino решили использовать в качестве стабилизатора микросхему L7805CV, что повысило максимальное входное напряжении платы до 24 В и увеличило нагрузочную способность источника 5 В до 1,5 А.  Теперь от стабилизатора платы можно питать достаточно энергопотребляющую периферию.
  • Разъемы платы полностью совместимы с Arduino UNO (де факто стандарт простых контроллеров Ардуино). Но на новой плате используются параллельно запаянные вилки и розетки. Наверное, кто-нибудь оценит и эту мелочь.

Контроллер MassDuino UNO LC (MD-328D)

Схемная реализация MassDuino UNO LC практически не отличается от Arduino UNO R3. На плате просто установлен другой микроконтроллер.

Используется микроконтроллер MD-328D компании INHAOS. Название компании символично. Хаос в древнегреческой мифологии не пустота, а все на свете, только перемешанное. Вот и в этом микроконтроллере чего только нет. Техническую документацию на него можно посмотреть по этой ссылке MD-328D.pdf.

В микроконтроллере реализованы многие возможности, к которым нет доступа с помощью функций Ардуино. Но, думаю, что ими можно управлять прямым обращением через регистры. Многие функции крайне привлекательны. Я бы выделил:

  • внутренний умножитель частоты тактирования таймеров до 64 мГц;
  • ШИМ высокой частоты, до 500 кГц при разрешении 7 бит;
  • реализация ”мертвого времени” в сигналах ШИМ для защиты транзисторов от сквозных токов;
  • автоматическое управление ШИМ от аналогового компаратора;
  • два аналоговых компаратора с ЦАП в качестве источника опорного напряжения;
  • может быть выбран один из двух вариантов подтягивающих резисторов 80 кОм и 15 кОм.

На сайте производителя представлены другие версии Ардуино совместимых плат на микроконтроллере MD-328D. Например, MassDuino Nano.

Контроллер MassDuino UNO Nano (MD-328D)

Что-то становится тревожно за привычный контроллер ATmega328.

 

Плата MassDuino UNO LC (MD-328D).

Конструктивно плата полностью совместима с Arduino UNO R3. Одинаковые размеры платы, разъемы, крепежные отверстия.

MassDuino UNO LC (MD-328D)

Только разъемы-розетки продублированы запаянными параллельно вилками.

Дополнительные выводы PE0, PE2, PE4 и PE5 подключены к “пяточкам” на плате.

Плата содержит конвертер интерфейсов USB-UART CH340G и допускает непосредственное подключение кабелем к USB порту компьютера.

Существует вариант платы с названием MassDuino UNO LC Lite. В нем отсутствует USB-UART конвертер, а вместо разъема для USB запаян разъем UART.

MassDuino UNO LC Lite

Все остальное без изменений. Даже печатная плата та же самая. Поэтому все сказанное в этой статье в полной мере относится и к плате MassDuino UNO LC Lite.

 

Характеристики MassDuino UNO LC.

Тип микроконтроллера MD-328D
Архитектура RISC, AVR
Напряжение питания микроконтроллера 5 В
Номинальное напряжение питания платы 7 – 24 В
Предельно допустимое напряжение питания платы 6 – 35 В
Напряжение внешних сигналов ввода/вывода 5 В или 3,3 В (выбирается перемычкой)
Тактовая частота 16 мГц
Память программ (FLASH) 32 кбайт
Оперативная память (SRAM) 2 кбайт
Энергонезависимая память (EEPROM) 1 кбайт
Дискретные входы/выходы 14 (6 могут использоваться для ШИМ)
Предельно допустимый ток цифрового выхода 30 мА
Аналоговые входы 8 входов
Разрешающая способность АЦП 10/12/16 бит
Размеры платы 68,6 x 53,4 мм

 

Назначение выводов платы MassDuino UNO LC.

Распиновка MassDuino UNO LC (MD-328D)

 

Питание.

Система питания платы привычная для Ардуино. Плата может получать питание:

  • через USB кабель от порта компьютера;
  • от внешнего источника питания напряжением 7-24 В. Допускается использовать источник не стабилизированного напряжения, но с низким уровнем пульсаций.

Напряжение 5 В формируется с помощью стабилизатора L7805CV. Он рассчитан на входное напряжение до 35 В, выходной ток до 1,5 А.

Но на плате MassDuino UNO стабилизатор установлен без радиатора. Поэтому разработчики платы вводят ограничение по рассеиваемой мощности L7805CV на уровне 3,5 Вт. Считается мощность, как P = ( Uвходное – Uвыходное ) * Iвыходной.  Например, при входном напряжении 9 В ток, потребляемый от цепи 5 В, не должен превышать 880 мА.

В качестве стабилизатора напряжения 3,3 В используется микросхема AMS1117-3.3. Разработчики платы нормируют ток, потребляемый от цепи 3,3 В, на уровне 600 мА. При этом надо учесть, что этот ток потребляется от стабилизатора 5 В.

 

Входы и выводы платы.

Условия и требования к внешним сигналам платы типичные для микроконтроллеров.

  • Все выводы, аналоговые или цифровые, должны работать в диапазоне 0-5 В (0-3 В для низковольтного режима).
  • Сигналы на входе микроконтроллера напряжением выше 5 В (3 В для низковольтного режима) должны быть подключены через ограничительные резисторы.
  • Максимальный втекающий или вытекающий ток дискретного вывода в режиме выхода не должен превышать 30 мА. Общий ток выводов должен быть не более 200 мА.
  • Все выводы в режиме входов могут быть программно подключены к цепи 5 В (3 В для низковольтного режима) через подтягивающие резисторы 80 кОм.

Цифровые выводы. У платы 14 дискретных выводов, по функциям совершенно аналогичных выводам Arduino Uno, Arduino Nano, Arduino Pro Mini. Я повторяться не буду.

Дополнительные цифровые выводы. К выводам традиционных плат Ардуино добавились еще 4 цифровых входа/выхода  PE0, PE2, PE4 и PE5. Они не выведены на разъемы, а подключены к пяточкам платы, к которым можно припаять провода или контакты разъема.

Дополнительные выводы MassDuino UNO LC

Как программно управлять дополнительными выводами я напишу в следующем уроке.

 

 Аналоговые сигналы.

У платы 8 аналоговых входов A0 – A8. Два последних подключены к дополнительному разъему.

Разрядность АЦП выбирается программно 10, 12 или 16 бит. Число градаций выходного кода соответственно 1024, 4096 и 65536. Диапазон входного сигнала может быть выбран:

  • питание платы 5 В;
  • источник опорного напряжения 2,56 В;
  • внешний вход AREF.

В плате MassDuino UNO  появилось два цифро-аналоговых преобразователя (ЦАП). Выход первого из них является альтернативной функцией дискретного вывода 4, второй ЦАП подключен к выводу PE5.

Выводы ЦАП MassDuino UNO LC

Разрешающая способность ЦАП 8 разрядов, выходной код 256 градаций.

Диапазон выходного сигнала может быть выбран: 1,25 В или 2,56 В.

О программном управлении АЦП и ЦАП напишу в следующем уроке.

 

Недостатки платы. Конечно, на мой взгляд.

  • Разработчики оставили только 2 светодиода: питание и обмен. Мне не хватает 3 остальных светодиодов: общего назначения (вывод 13), RxD и TxD.
  • Второй недостаток более важен, но, надеюсь, он будет исправлен в ближайшее время. Очень мало технической информации. По плате только один документ MassDuino.pdf. Прежде всего, не хватает данных о метрологических параметрах АЦП и регистрах микроконтроллера MD-328D. Это не позволяет в полной мере использовать возможности микроконтроллера.

А в остальном мне плата очень понравилась. Захотелось переделать под нее практически все предыдущие разработки, в которых измеряются аналоговые сигналы. Все вольтметры, термометры, измерители сопротивления… Параметры этих устройств могут быть значительно улучшены, а схема упрощена. Например, в термометре с термопарой можно обойтись без усилителя.

Особенно мне не доставало точного АЦП  в контроллере элемента Пельтье. В любом регуляторе очень важна даже не точность измерения регулируемого параметра, а разрешающая способность измерителя.

Еще раз подчеркну. На рынке микроконтроллеров все время появляются уникальные разработки, с большой степенью интеграции. Все больше функций ”загоняются” на одну миниатюрную плату. Этим никого не удивишь. Но цена MassDuino UNO LC меня действительно удивила.

Купить MassDuino UNO LC

Все, что хотел написать о MassDuino UNO LC, в один урок явно не помещается.

Следующий урок я посвящу работе платы MassDuino UNO LC с аналоговыми сигналами. Расскажу:

  • как установить MassDuino в интегрированную среду Arduino IDE;
  • научу вас программно управлять АЦП и ЦАП;
  • в качестве примера разработаю простенький, но точный вольтметр;
  • объясню, как работать с дополнительными цифровыми выводами.

Думаю, напишу урок за пару дней. Я уже все это проверил. Работать с платой легко и интересно.

 

Тема обмена данными между платами Ардуино и, в частности, описание протокола ModBus откладывается на пару уроков.

Предыдущий урок     Список уроков     Следующий урок

12 комментариев на «Урок 53. Плата MassDuino UNO LC (MD-328D). АЦП высокого разрешения (до 16 бит), расширенные функциональные возможности, полная совместимость с Arduino UNO.»

  1. Очень интересная платка, спасибо.
    Добавим к цене доставку. На сайте предлагают варианты: самовывоз из Санкт-Петербурга бесплатно, экспресс-доставка СДЭК 900 р, Почтой России 280р. Это для Башкирии.
    Для сравнения, с Али с доставкой будет стоить 390 р.
    Исключительно для полноты картины, не реклама.

    • Я не берусь спорить на эту тему. Но не все хотят ждать месяцами доставку с Али. Во вторых вряд ли вы будете заказывать только одну плату. Цена доставки размажется на всю стоимость покупки.
      Я действительно покупаю все комплектующие Ардуино в своем партнерском магазине.

    • Да, к сожалению особенности логистики таковы, что доставка в крупные города стоит копейки, а в маленькие доходит до тысячи рублей.
      Но например для жителей СПб эти варианты выглядят как — 250 рублей сегодня или 390 через месяц) В большинство крупных городов (например, в Башкирии это Уфа и Салават) у нас есть доставка в пункты выдачи дешевле 200 рублей, и по срокам 3-4 дня.

  2. Жаль что её нет в наличии, отличная плата по характеристикам для определенных целей.

    • Просто первая партия 50 шт. разошлась за неделю. В ближайшее время платы появятся.

  3. Да, платка прикольная — «лучше и дешевле», случайно увидел на алях пару месяцев назад — и поигрался.
    Но — всё-таки для неё нужно устанавливать свою поддерживающую библиотеку (не помню в чём была заковырка — но не работало что-то ни в визуалстудио, ни в ардуиновском скетче 180).
    Я так понимаю что производят эту плату inhaos.com
    Соответственно у них я и нашёл на странице для скачивания:
    http://www.inhaos.com/download.php?search=file_type&id=114
    «штуку» под названием Arduino — MassDuino_Support_Package V36
    http://www.inhaos.com/downcount.php?download_id=218

    Даю ссылки — потому как сам еле откопал…

  4. Мой экземпляр из первой партии проработал 2 дня, потом посыпались ошибки записи в контроллер, а потом и вовсе сдох usb-uart конвертер(не определялась компом), благо я додумался пойти и обменять её в робошопе. Без проблем дали мне взамен uno на atmegе.
    Да, на этой плате не распаян ISP 6 штырьков, пришлось самому впаивать. Так что те, кто будет использовать с шилдами имейте это в ввиду.

  5. «Да, на этой плате не распаян ISP 6 штырьков, пришлось самому впаивать. Так что те, кто будет использовать с шилдами имейте это в ввиду.»

    Впаять-то впаял, но USBasp всё равно не поддерживается. Нет доступа к фьюзам (м.б. их вообще нет), нет возможности загрузить бутлоадер, невозможно использовать сторонние проги для прошивки. Это удручает…

  6. Здравствуйте! Решил с этой платой начать знакомство с Arduino. Помигал светодиодиком — все хорошо. Подключил Blutooth (через TX RX) — не работает простой скетч, который читает вход и сравнивает его с 1 и 0. Сами значения передаются с bluetooth терминала Android. Нормально отобразить принимаемое значение обратно на терминал удалось с помощью Serial.println(). Непонятность для меня в том, что значения оказались больше на 48… То есть ввожу ноль — читается 48, 1 — 49 и т.д. Это можно как-то перенастроить?

  7. Hello Eduard, nice lessons with a lot of information. My congratulations !
    I guess that massduino uses this LGT8F328P CPU. You can check this reading the chip serial number as follows:
    void setup() {
    Serial.begin(9600);
    uint32_t guid = (GUID3 << 24) | (GUID2 << 16) | (GUID1 << 8) | GUID0;
    Serial.println(guid);
    }
    void loop() { }

    There are new boards from OCROBOT for around 90 (+70 p+p) Rub … look here https://www.aliexpress.com/item/TTGO-XI-8F328P-U-for-arduino-nano-V3-0-promini-or-Replace/32817548196.html?spm=a2g0s.9042311.0.0.OEOzvZ

    There is a well made homepage fom Ocrobot, a chinese company
    http://www.ocrobot.com/doku.php?id=zh:products
    You can find there more information about this ALPHA XI boards.
    The same cpu is used by WEMOS for a small board called WEMOS XI.

    Now the problem is, which extension is best to use for Arduino IDE.
    There is a extension from INHAOS for this MD-328 chip,
    There is a extension from OCROBOT for ALPHA XI boards with the same cpu and there is from WEMOS this REPO for this WEMOS XI board : https://github.com/wemos/Arduino_XI.

    Best would be to use the OCROBOT IDE 😉 a Arduino IDE clone …
    Now we have the choice.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *