Урок 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 откладывается на пару уроков.

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

0

Автор публикации

не в сети 10 часов

Эдуард

285
Комментарии: 1946Публикации: 199Регистрация: 13-12-2015

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

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

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

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

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

    0
  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

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

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

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

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

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

    0
  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.

    0
  8. Спасибо за уроки, использую их как «настольное» руководство. Давно приглядывался и Ваш урок убедили приобрести MassDuino UnoLC и Buono Nano. С первого подключения попал in haos. Даже запуск пустого скетча- куча предупреждений компилятора. Функции String(float&, int&) и String(double&, int&) не поддерживаются. Это успешно победил. Но вот уговорить их работать с датчиками DS18b20 (OneWare) ну никак не получается. Может у Вас, или кого нибудь это получилось? Информации никакой не найти- только объявления о продажи.

    0
    • Здравствуйте!
      У меня нет особого опыта работы с этой платой. Для меня она привлекательна именно высоким разрешением АЦП.

      0
  9. Здравствуйте Эдуард.
    У меня вопрос по АЦП на MassDuino. Я просмотрел даташит на чип, но так и не нашел подробностей по устройству АЦП. Это реально многоканальный АЦП или это одноканальный АЦП с мультиплексором на входе? В моем проекте необходимо измерять напряжение по 3-м каналам с разрешением 16 бит и частотой 100Гц. Поэтому хочу уточнить этот момент перед покупкой.

    0
  10. Здравствуйте Эдуард! Спасибо за сайт и Ваши уроки, всё очень наглядно и достаточно просто изложено!
    Позволю немного занудства 🙂 всегда считал что на плате «пятачкИ» от слова пятак, а не «пЯточки» от слова пятка.

    0
  11. Здравствуйте, Эдуард! Будете ли Вы делать уроки про новые контроллеры на платформе Ардуино?
    Очень интересует модуль, представленный здесь:
    _
    https://www.youtube.com/watch?time_continue=247&v=x3YiyJ_zny4&feature=emb_logo
    _
    Платформа NodeMCU на 1мб.
    Увеличенная тактовая частота, увеличенная в 30 раз память, 32 битный процессор, вайфай в комплекте, и всё это при цене на 1доллар дороже, чем ардуино нано.
    Я начинающий программист, интересно, как практически изменится вид программы — переменные могут теперь быть четырёхбайтные? Есть ли теперь команды для двоично-десятичных переменных? Четырёхбайтных?
    Где брать словарь команд для работы с новым контроллером и как подлючить новый модуль для его программирования к компьютеру, есть ли какие тонкости?
    Заранее спасибо, Сергей, г. Владимир.

    0
    • Здравствуйте!
      Нельзя объять необъятное. Не знаю, на что времени хватит. В качестве высокопроизводительной замены Ардуино я рассматриваю контроллеры STM32.

      0
  12. Эдуард, здравствуйте!
    Возможность выбора напряжения дискретных выходов позволяет использовать эту штуку для общения с модулем GSM напрямую, без преобразователя уровней.
    Все GSM шилды расчитаны на 3.7 вольта, под литиевый аккумулятор.
    Чего в этой штуке не хватает — так это второго аппаратного канала UART. Первый занят общением с компьютером, а виртуальный программный UART работает нестабильно.
    Какое решение здесь может быть для создания GSM устройства?
    Брать ли другой контроллер с двумя аппаратными UART?
    Или возможно ли использовать например вот этот MassDuino с поочерёдным использованием UART,
    Например, такая конструкция:
    При заливке программы GSM-модуль отключаем.
    Перед началом работы контроллера перекоммутируем UART для работы с GSM-модулем, монитор порта не используем, а для общения с контроллером и отладки работы используем, например, двухстрочный дисплей.
    Такая конструкция возможна?
    Или есть что-то более оптимальное?
    Заранее спасибо.
    Сергей, г. Владимир.

    0
    • Здравствуйте!
      Решения могут быть разными. Зависит от конкретной задачи. Есть дешевые платы Ардуино с питанием и сигналами 3,3 В. Если ставится задача создать устройство с минимальной стоимостью, то лучше использовать их. Если отказаться от отладки через последовательный порт, то одного UART достаточно.
      Может лучше переплатить за боле сложную плату с двумя UART, но проще будет разрабатывать и отлаживать.

      0

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

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

Нажимая кнопку "Отправить" Вы даёте свое согласие на обработку введенной персональной информации в соответствии с Федеральным Законом №152-ФЗ от 27.07.2006 "О персональных данных".