F.Audio FA1 - аудиоплеер на премиум ЦАП Asahi Kasei AK4497EQ. Вот схематика модуля управления

F.Audio FA1 - аудиоплеер на премиум ЦАП Asahi Kasei AK4497EQ. Вот схематика модуля управления
F.Audio FA1 - аудиоплеер на премиум ЦАП Asahi Kasei AK4497EQ. Вот схематика модуля управления

LCD дисплей частый гость в проектах ардуино. Но в сложных схемах у нас может возникнуть проблема недостатка портов Arduino из-за необходимости подключить экран, у которого очень очень много контактов. Выходом в этой ситуации может стать I2C /IIC переходник, который подключает практически стандартный для Arduino экран 1602 к платам Uno, Nano или Mega всего лишь при помощи 4 пинов. В этой статье мы посмотрим, как можно подключить LCD экран с интерфейсом I2C, какие можно использовать библиотеки, напишем короткий скетч-пример и разберем типовые ошибки.

Жидкокристаллический дисплей (Liquid Crystal Display) LCD 1602 является хорошим выбором для вывода строк символов в различных проектах. Он стоит недорого, есть различные модификации с разными цветами подсветки, вы можете легко скачать готовые библиотеки для скетчей Ардуино. Но самым главным недостатком этого экрана является тот факт, что дисплей имеет 16 цифровых выводов, из которых обязательными являются минимум 6. Поэтому использование этого LCD экрана без i2c добавляет серьезные ограничения для плат Arduino Uno или Nano. Если контактов не хватает, то вам придется покупать плату Arduino Mega или же сэкономить контакты, в том числе за счет подключения дисплея через i2c.

Краткое описание пинов LCD 1602

Давайте посмотрим на выводы LCD1602 повнимательней:

Каждый из выводов имеет свое назначение:

  1. Земля GND;
  2. Питание 5 В;
  3. Установка контрастности монитора;
  4. Команда, данные;
  5. Записывание и чтение данных;
  6. Enable;

7-14. Линии данных;

  1. Плюс подсветки;
  2. Минус подсветки.

Технические характеристики дисплея:

  • Символьный тип отображения, есть возможность загрузки символов;
  • Светодиодная подсветка;
  • Контроллер HD44780;
  • Напряжение питания 5В;
  • Формат 16х2 символов;
  • Диапазон рабочих температур от -20С до +70С, диапазон температур хранения от -30С до +80 С;
  • Угол обзора 180 градусов.

Схема подключения LCD к плате Ардуино без i2C

Стандартная схема присоединения монитора напрямую к микроконтроллеру Ардуино без I2C выглядит следующим образом.

Из-за большого количества подключаемых контактов может не хватить места для присоединения нужных элементов. Использование I2C уменьшает количество проводов до 4, а занятых пинов до 2.

Где купить LCD экраны и шилды для ардуино

LCD экран 1602 (и вариант 2004) довольно популярен, поэтому вы без проблем сможете найти его как в отечественных интернет-магазинах, так и на зарубежных площадках. Приведем несколько ссылок на наиболее доступные варианты:

Модуль LCD1602+I2C с синим экраном, совместим с Arduino Простой дисплей LCD1602 (зеленая подсветка) дешевле 80 рублей Большой экран LCD2004 с I2C HD44780 для ардуино (синяя и зеленая подсветка)
Дисплей 1602 с IIC адаптером и синей подсветкой Еще один вариант LCD1602 со впаянным I2C модулем Модуль адаптера Port IIC/I2C/TWI/SPI для экрана 1602, совместим с Ардуино
Дисплей с RGB-подсветкой! LCD 16×2 + keypad +Buzzer Shield for Arduino Шилд для Ардуино с кнопками и экраном LCD1602 LCD 1602 LCD дисплей для 3D принтера (Smart Controller for RAMPS 1.4, Text LCD 20×4), модулем кардридера SD и MicroSD-

Описание протокола I2C

Прежде чем обсуждать подключение дисплея к ардуино через i2c-переходник, давайте вкратце поговорим о самом протоколе i2C.

I2C / IIC (Inter-Integrated Circuit) – это протокол, изначально создававшийся для связи интегральных микросхем внутри электронного устройства. Разработка принадлежит фирме Philips. В основе i2c протокола является использование 8-битной шины, которая нужна для связи блоков в управляющей электронике, и системе адресации, благодаря которой можно общаться по одним и тем же проводам с несколькими устройствами. Мы просто передаем данные то одному, то другому устройству, добавляя к пакетам данных идентификатор нужного элемента.

Самая простая схема I2C может содержать одно ведущее устройство (чаще всего это микроконтроллер Ардуино) и несколько ведомых (например, дисплей LCD). Каждое устройство имеет адрес в диапазоне от 7 до 127. Двух устройств с одинаковым адресом в одной схеме быть не должно.

Плата Arduino поддерживает i2c на аппаратном уровне. Вы можете использовать пины A4 и A5 для подключения устройств по данному протоколу.

В работе I2C можно выделить несколько преимуществ:

  • Для работы требуется всего 2 линии – SDA (линия данных) и SCL (линия синхронизации).
  • Подключение большого количества ведущих приборов.
  • Уменьшение времени разработки.
  • Для управления всем набором устройств требуется только один микроконтроллер.
  • Возможное число подключаемых микросхем к одной шине ограничивается только предельной емкостью.
  • Высокая степень сохранности данных из-за специального фильтра подавляющего всплески, встроенного в схемы.
  • Простая процедура диагностики возникающих сбоев, быстрая отладка неисправностей.
  • Шина уже интегрирована в саму Arduino, поэтому не нужно разрабатывать дополнительно шинный интерфейс.

Недостатки:

  • Существует емкостное ограничение на линии – 400 пФ.
  • Трудное программирование контроллера I2C, если на шине имеется несколько различных устройств.
  • При большом количестве устройств возникает трудности локализации сбоя, если одно из них ошибочно устанавливает состояние низкого уровня.

Модуль i2c для LCD 1602 Arduino

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

С одной стороны модуля мы видим выводы i2c – земля, питание и 2 для передачи данных. С другой переходника видим разъемы внешнего питания. И, естественно, на плате есть множество ножек, с помощью которых модуль припаивается к стандартным выводам экрана.


Для подключения к плате ардуино используются i2c выходы. Если нужно, подключаем внешнее питание для подстветки. С помощью встроенного подстроечного резистора мы можем настроить настраиваемые значения контрастности J

На рынке можно встретить LCD 1602 модули с уже припаянными переходниками, их использование максимально упощено. Если вы купили отдельный переходник, нужно будет предварительно припаять его к модулю.

Подключение ЖК экрана к Ардуино по I2C

Для подключения необходимы сама плата Ардуино, дисплей, макетная плата, соединительные провода и потенциометр.

Если вы используете специальный отдельный i2c переходник, то нужно сначала припаять его к модулю экрана. Ошибиться там трудно, можете руководствоваться такой схемой.


Жидкокристаллический монитор с поддержкой i2c подключается к плате при помощи четырех проводов – два провода для данных, два провода для питания.

  • Вывод GND подключается к GND на плате.
  • Вывод VCC – на 5V.
  • SCL подключается к пину A5.
  • SDA подключается к пину A.

И это все! Никаких паутин проводов, в которых очень легко запутаться. При этом всю сложность реализации i2C протокола мы можем просто доверить библиотекам.

Библиотеки для работы с i2c LCD дисплеем

Для взаимодействие Arduino c LCD 1602 по шине I2C вам потребуются как минимум две библиотеки:

  • Библиотека Wire.h для работы с I2C уже имеется в стандартной программе Arduino IDE.
  • Библиотека LiquidCrystal_I2C.h, которая включает в себя большое разнообразие команд для управления монитором по шине I2C и позволяет сделать скетч проще и короче. Нужно дополнительно установить библиотеку После подключения дисплея нужно дополнительно установить библиотеку LiquidCrystal_I2C.h

После подключения к скетчу всех необходимых библиотек мы создаем объект и можем использовать все его функции. Для тестирования давайте загрузим следующий стандартный скетч из примера.

#include #include // Подключение библиотеки //#include // Подключение альтернативной библиотеки LiquidCrystal_I2C lcd(0x27,16,2); // Указываем I2C адрес (наиболее распространенное значение), а также параметры экрана (в случае LCD 1602 - 2 строки по 16 символов в каждой //LiquidCrystal_PCF8574 lcd(0x27); // Вариант для библиотеки PCF8574 void setup() { lcd.init(); // Инициализация дисплея lcd.backlight(); // Подключение подсветки lcd.setCursor(0,0); // Установка курсора в начало первой строки lcd.print("Hello"); // Набор текста на первой строке lcd.setCursor(0,1); // Установка курсора в начало второй строки lcd.print("ArduinoMaster"); // Набор текста на второй строке } void loop() { }

Описание функций и методов библиотеки LiquidCrystal_I2C:

  • home() и clear() – первая функция позволяет вернуть курсор в начало экрана, вторая тоже, но при этом удаляет все, что было на мониторе до этого.
  • write(ch) – позволяет вывести одиночный символ ch на экран.
  • cursor() и noCursor() – показывает/скрывает курсор на экране.
  • blink() и noBlink() – курсор мигает/не мигает (если до этого было включено его отображение).
  • display() и noDisplay() – позволяет подключить/отключить дисплей.
  • scrollDisplayLeft() и scrollDisplayRight() – прокручивает экран на один знак влево/вправо.
  • autoscroll() и noAutoscroll() – позволяет включить/выключить режим автопрокручивания. В этом режиме каждый новый символ записывается в одном и том же месте, вытесняя ранее написанное на экране.
  • leftToRight() и rightToLeft() – Установка направление выводимого текста – слева направо или справа налево.
  • createChar(ch, bitmap) – создает символ с кодом ch (0 – 7), используя массив битовых масок bitmap для создания черных и белых точек.

Альтернативная библиотека для работы с i2c дисплеем

В некоторых случаях при использовании указанной библиотеки с устройствами, оснащенными контроллерами PCF8574 могут возникать ошибки. В этом случае в качестве альтернативы можно предложить библиотеку LiquidCrystal_PCF8574.h. Она расширяет LiquidCrystal_I2C, поэтому проблем с ее использованием быть не должно.

Проблемы подключения i2c lcd дисплея

Если после загрузки скетча у вас не появилось никакой надписи на дисплее, попробуйте выполнить следующие действия.

Во-первых, можно увеличить или уменьшить контрастность монитора. Часто символы просто не видны из-за режима контрастности и подсветки.

Если это не помогло, то проверьте правильность подключения контактов, подключено ли питание подсветки. Если вы использовали отдельный i2c переходник, то проверьте еще раз качество пайки контактов.

Другой часто встречающейся причиной отсутствия текста на экране может стать неправильный i2c адрес. Попробуйте сперва поменять в скетче адрес устройства с 0x27 0x20 или на 0x3F. У разных производителей могут быть зашиты разные адреса по умолчанию. Если и это не помогло, можете запустить скетч i2c сканера, который просматривает все подключенные устройства и определяет их адрес методом перебора. Пример скетча i2c сканера .

Если экран все еще останется нерабочим, попробуйте отпаять переходник и подключить LCD обычным образом.

Заключение

В этой статье мы рассмотрели основные вопросы использования LCD экрана в сложных проектах ардуино, когда нам нужно экономить свободные пины на плате. Простой и недорогой переходник i2c позволит подключить LCD экран 1602, занимая всего 2 аналоговых пина. Во многих ситуациях это может быть очень важным. Плата за удобство – необходимость в использовании дополнительного модуля – конвертера и библиотеки. На наш взгляд, совсем не высокая цена за удобство и мы крайне рекомендуем использовать эту возможность в проектах.

Сохранить и прочитать потом -

Продолжаем обзор актуальных производителей цифроаналоговых конверторов. Кто-то сходит с дистанции и уступает молодым да зубастым. Сегодня на арене Analog Devices, Sabre и Asahi Kasei.

Analog Devices Некогда производитель изысканной AD1862 - отличной 20-битной модели R-2R, сейчас Analog Devices перепрофилировался на более доступные мультимедийные решения "все в одном". В частности, чипы AD можно было встретить в предыдущем поколении B&W Zeppelin Air (AD1936 + DSP ADAU1445). Считается, что компоненты на Analog Devices играют сообразно своему названию - более тепло и гладко, и не так резко по сравнению с конкурентами.


Esoteric X-01D2 использует AD1955

В роли хайфайного чипа в номенклатуре компании сегодня присутствует лишь одна модель AD1955 с поддержкой DSD. Из дорогих аппаратов ее можно было встретить в Esoteric X-01D2, а из дешевых – в ЦАПах Emotiva XDA-1 и Asus Essense 3. Цена из партии в 1000 шт.: 6,86$. Динамический диапазон 123 дБ, коэффициент искажений 110 дБ.

Поговорим о самом молодом и дерзком потомстве среди ЦАПов. Хотя на самом деле эта компания существует с 1984 года, но раньше больше была известна на рынке компьютерного мультимедиа. Повальный аудиохайп случился на переломе 2010-х. На рынок выкатились невиданные 8-канальные чипы с 32-битным исчислением, DSD-поддержкой и чумовыми характеристиками. Сейчас «камни» Sabre можно встретить практически везде - начиная от портатива и китайских DIY-китов до профессионального хай-энда.

Однако заслуги «Сябров» перед аудиофильским человечеством не абсолютны. Ряд взыскательных слушателей, включая недобитых, которые еще помнят разные R-2R мультибиты, высказывают претензии. Главная из них - при зашкаливающем разрешении и скорости нарастания импульса, фонограмма на Sabre может терять в слитности и распадаться на яркие паттерны. Так что при не очень удачной интеграции Sabre, «просто слушать музыку» будет утомительно. Видимо, не все звуковые богатства могут быть описаны стандартной спецификацией.


Флагманский чип Sabre ES9038PRO

Актуальных моделей в высшей аудиолинейке Sabre сейчас три. ES9038PRO - флагманский чип с программируемым фильтром и рекордным значением динамического диапазона 140 дБ. Младшие ES9028PRO и ES9026PRO умеют то же самое, но с диапазоном 128/124 дБ и 120/110 дБ уровнем искажений соответственно. Как и прародители, все это 8-канальные процессоры, которые можно гибко настраивать. Компоненты с данными тремя ЦАПами на момент написания статьи еще не анонсированы, ведь обновление номенклатуры Sabre пришлось на начало 2016 года.

Для портативного аудио Sabre предлагает ЦАПы в которых можно узнать черты предыдущего поколения – ES9601C/K, 9602С/Q и 9018Q2C с поддержкой DSD256 с частотой 11,2 МГц. В данном случае они получили апгрейд в виде встроенных усилителей для наушников. Динамический диапазон вполне приличный 122 и 121 дБ при -102 дБ искажений на нагрузке наушниками 32 Ом.

Цены на новейшие линейки Sabre пока неизвестны рядовым заказчикам, но например 9018Q2C предлагается за 22 доллара, причем объем заказа не должен быть менее 4-х или более 10 единиц.

Asahi Kasei

Вообще-то это большая японская корпорация с химическим прошлым, у которой нас интересует подразделение Asahi Kasei Microdevises. ЦАПы AKM нельзя назвать прямо уж новичками, но в среде аудиофилов долгое время они находились в тени Burr-Brown и Cirrus Logic. И это не было справедливым. Ведь не только ЦАПы, но и аналого-цифровые преобразователи у Asahi Kasei были вполне приличными и активно применялись в Pro технике высокого класса. В 90-х чипы АКМ стояли даже в Sony Playstation, который, к слову сказать, оказался весьма удачным аудиоисточником.

Разработчики утверждают, что начиная с модели AK4396, используется демодулятор, принципиально отличающийся от остальных дельта-сигм конкурентов. В его работе практически отсутствует высокочастотный шум квантования, - неизбежное зло дельта-сигмы, которое раньше приходилось задабривать набором фильтров. В общем, с тех пор как уважаемые имена сбавили обороты, а некоторые и вовсе вышли из этого бизнеса, Asahi Kasei вместе с Sabre делят рынок самых современных моделей.


Флагманский чип Asahi Kasei AK4497EQ

Сегодня флагманской моделью в семействе Vertita у Asahi Kasei является AK4497EQ с поддержкой PCM потока с разрядностью 32 бит/768 кГц, это уже даже выше чем суперформат DXD. Динамический диапазон 128 дБ, коэффициент искажений -116 дБ. Что касается поддержки DSD, то там верхний потолок составляет чудовищные 22,4 МГц.

Ниже по рангу стоит AK4490EQ, который умеет принимать «всего лишь» DSD256 с 11,2 МГц. Цифровых фильтров меньше на один (было шесть, стало пять), динамический диапазон уменьшился до 123 Дб, а искажения подросли до -112 дБ.

Самыми дешевыми и приемлемыми по соотношению качество/цена будут AK4495EQ/SEQ, так как при тех же характеристиках динамического диапазона что и у 4490, его искажения составили -101 дБ, а поддержка DSD приняла значения обычных коммерческих 5,6 МГц. Да, и не забываем, что большинство SACD вообще закодированы под 2,8 МГц.

Для ресиверов, сетевых устройств и другой подобной техники предлагается линейка New Generation – с аналогичной поддержкой 32 бит/768 кГц и DSD256. Динамический диапазон и искажения там пониже чем у топовых Verita – «всего» 115 дБ и -107 дБ соответственно. Но вообще надо сказать, что в величинах аналоговых цепей остальных компонентов, все это исчезающе малые величины. На текущий момент в линейке представлены четыре модели с одинаковыми характеристиками: AK4452VN, AK4454VN, AK4456VN и AK4458VN.


В самых амбициозных плеерах Astell&Kern AK380 стоит чип AK4490

Для портативной техники предназначен AK4376, у которого тоже очень неплохо: динамический диапазон составляет 125 дБ, искажения -106 дБ. Усилитель работает в классе G и отдает 25 мВ на 32-омную нагрузку. Чип поддерживает параметры 32 бит / 384 кГц, DSD нет, но для портатива его присутствие – скорее красивая вывеска, чем реальное преимущество. Младшая модель AK4375 имеет меньший потолок в 192 кГц и 110 дБ диапазона и 99 дБ искажений. При той же мощности усилителя оба чипа имеют 0,1% искажений при работе с наушниками.

Другие материалы цикла:

Подготовлено по материалам журнала "Stereo & Video", февраль 2016 г.