-
По многочисленным просьбам я решил создать новую ветку на тему разработки программы для управления чипом ЦАПа ES9018. Когда я заказал китайскую плату от Weiliang, оказалась, что, несмотря на примененный в ней продвинутый чип ES9018, в стоковом варианте звук она дает не очень хороший. Из своего опыта могу сказать, что почти все китайские недорогие ЦАПы дают примерно одинаковый пластмассовый звук. Чтобы реализовать заложенный в них потециал, их нужно серьезно доработать. Это касается в первую очередь схемотехники. Оказалось, что некоторые ЦАПы также имеют возможность настройки с помощью програмного обеспечения. ES9018 относится к их числу.
ES9018 имеет 71 регистр. Не о всех из них можно найти полную информацию, но назначение многих из них можно понять из даташита ES9018. Все регистры Сабри транзиентные. Это значит, что если записать различные значения в регистры, после выключения питания они не сохранятся. При подаче питания на ES9018 регистры получат дефолтные значения. Записывая в них значения, отличные от дефолтных, можно менять характеристики ES9018, например коммутировать каналы, ES9018 является 8-канальным ЦАПом, коммутировать входы, менять различные параметры преобразования, что в конечном итоге влияет на звук. Также можно регулировать громкость, так как ES9018 имеет встроенный регулятор громкости. Менять значения регистров можно с помощью программы, записанной в контроллере. Управляющая программа програмирует регистры по протоколу I2C. В качестве контроллера можно использовать обычную Ардуину.
Управляющая программа должна выполнять следующие основные функции:
1. Обрабатывать нажатие на кнопки или работать с энкодером.
2. Читать значения регистров ES9018.
3. Выводить информацию на дисплей.
4. Менять значения регистров.
5. Сохранять текущие значения регистров в памяти контроллера и восстанавливать их при включении питания.
Около года назад я закончил работу над первой версией такой программы и опубликовал ее в ветке про ЦАП на ES9018. Я решил обсуждение этой программы и всю информацию о ней перенести в эту ветку.
Программа управляет регистрами Сабри по I2C. Она позволяет менять некоторые параметры ES9018, коммутировать входы и регулировать громкость. Все настройки сохраняются в памяти контроллера при выключении питания. Есть возможность сбросить сохраненные настройки и перейти к настройкам по умолчанию.
Программа работает с двухстрочным дисплеем и блоком кнопок, идущими в комплекте с ЦАПом.
Ниже я добавил архив, содержащий исходный код программы.
Это первая версия. Она написана в Atmel Studio 6, которую можно скачать бесплатно по этой ссылке: http://atmel-studio.software.informer.com/6.0/. Для работы также необходимо установить Visual Micro пагин, который можно найти здесь: http://www.visualmicro.com/page/Arduino-Visual-Studio-Downloads.aspx.
Напрашивается вопрос, почему я использовал Atmel Studio. Дело в том, что программа использует классы. Такой подход имеет свои плюсы и минусы. Главный минус в том, что использование классов сильно увеличивает память, которую требует программа. Плюс в том, что это позволяет легко читать и менять код, меняя классы. Скорее всего минусы перевешивают плюсы :D.
Сейчас я работaю над второй версией программы. Пока я отказался от Atmel Studio и перешел в Microsoft Visual Studio. Возможно я откажусь от использования классов.
-
Хм. Говорите, чего надо, что куда писать... Я тут по уши в отладке будущего навороченного пульта, хоть отвлекусь...
-
О кей! Какой Ардуины достаточно?
Я вчера как раз Мегу спалил, так что, всё равно заказывать.
-
О кей! Какой Ардуины достаточно?
Я вчера как раз Мегу спалил, так что, всё равно заказывать.
Моя программа может работать на Uno, Nano, Mega. Сейчас я запускаю ее на Uno, но собираюсь перейти на Nano, так как она занимает намного меньше места.
и добавил...
Александр (wuriks), сейчас я собираюсь перейти на Ардуино NANO, так как сейчас у меня много проводов и переодически теряется контакт, что приводит к сбоям. Для этого я воспользовался твоей инструкцией отсюда http://www.diyaudio.ru/forum/index.php?topic=4457.870. Собрал переходник на макетке, вставил туда Ардуино NANO (не припаял, а просто вставил в отверстия макетки), поставил диод, как на этой схеме:
[attachment=1]
Скажи, какие у тебя напряжения на входе, на шине I2C, 3.3 вольт ил 5 вольт? Думаю, какие меры предосторожности нужно предпринять, чтобы не спалить Сабрю...
-
какие у тебя напряжения на входе, на шине I2C,
Точно не помню, где то 3,9 вольта. Думаю больше никаких мер не стоит предпринимать, у тебя же и с 5-ю вольтами тыщу лет проработало.
-
Как ты заливаешь на него программу? Для этого нужно вытащить Ардуино Nano из панельки вместе с переходником, или можно просто отключить контроллер от Сабри, подключить комп к Ардуино через mini USB и залить?
-
это кому вопрос?
и добавил...
О кей! Какой Ардуины достаточно?
Я вчера как раз Мегу спалил, так что, всё равно заказывать.
Это каким макаром умудрился?
-
это кому вопрос?
Вопрос адресован wuriks.
-
Для этого нужно вытащить Ардуино Nano из панельки вместе с переходником
Да приходится именно так. Не разбирался что бы узнать что мешает. :(
зы про исправление (http://www.diyaudio.ru/forum/index.php?topic=4457.msg263933#msg263933) что бы экран не гас помнишь?
-
Я так и думал, что Ардуино нужно извлекать из контроллера для заливки программы.
Сначала я хочу создать себе удобные условия для работы с прошивками: закончить с Ардуино Нано, поставить все необходимые программы дома и на работе, а потом начну копаться в программе. Тогда я соберу в этой ветке список всех пожеланий и попробую их реализовать.
-
Это каким макаром умудрился?
Неохота оффтопить. В эмоциях изолью йад.
-
Тогда я соберу в этой ветке список всех пожеланий и попробую их реализовать.
:v: :yes:
-
Вчера пытался загрузить программу на Ардуино Nano на Windows 10. Ничего не получилось. Устанавливал разные версии драйверов COM порта, не помогло. Скорее всего на моей Ардуино нет бутлоадера. Кто-нибудь сталкивался с такой проблемой?
-
Вчера пытался загрузить программу на Ардуино Nano на Windows 10. Ничего не получилось. Устанавливал разные версии драйверов COM порта, не помогло. Скорее всего на моей Ардуино нет бутлоадера. Кто-нибудь сталкивался с такой проблемой?
Внимание, вопрос: а не CH340 там стоит под брюхом?
-
Ардуино сейчас со мной, но у меня нет увеличительного стекла. Не могу точно рассмотреть маркировку чипа с обратной стороны, но вижу надпись FTDI.
и добавил...
Вчера я устанавливал драйвера отсюда: http://www.ftdichip.com/FTDrivers.htm. Не помогло.
-
Ардуино сейчас со мной, но у меня нет увеличительного стекла. Не могу точно рассмотреть маркировку чипа с обратной стороны, но вижу надпись FTDI.
и добавил...
Вчера я устанавливал драйвера отсюда: [url]http://www.ftdichip.com/FTDrivers.htm[/url]. Не помогло.
как он видится в системе? Интересует HardwareID AKA ИД оборудования в свойствах.
-
Вот его HardwareID:
[attachment=1]
и добавил...
Вот, что я получаю при загрузке:
Compiling 'ES9018_DAC_Controller_Nano' for 'Arduino Nano w/ ATmega328'
Binary sketch size: 15,772 bytes (used 51% of a 30,720 byte maximum) (1.34 secs)
Minimum Memory Usage: 1627 bytes (79% of a 2048 byte maximum)
Uploading to I/O board using 'COM4'
avrdude: stk500_recv(): programmer is not responding
и добавил...
Странно, со второй попытки все загрузилось, причем я не устанавливал никаих драйверов. Это у меня на работе и здесь у меня тоже стоит Windows 10. На домашнем компе ничего не загружается. Значит проблема в драйверах.
-
Не понял... Это Arduino IDE такое докладывает??
-
Да, Arduino IDE. Я включил опцию Show verbose output.
и добавил...
Странно. Опять не получается загрузить программу в Ардуино.
и добавил...
Решение проблемы найдено. Может кто-нибудь столкнется с этой проблемой... Оказывается сейчас выпускается много Ардуино Нано, у которых стоит фэйковый чип FTDI. Новые драйвера FTDI не работают с этими чипами. Нужно установит старую версию. Здесь можно найти все детали: http://forum.arduino.cc/index.php?topic=375585.0.
и добавил...
Вчера наконец собрал на макетке переходник для Ардуино Нано, который позволяет посадить ее в стоковый контроллер. Спасибо Александру (wuriks) за идею. Все заработало. Единственная проблема связана с тем, что Ардуино я пока не припаял к макетке, а просто вставил в отверстия. Некоторые пины иногда теряют контакт. Видимо придется припаять, но при этом уже не будет доступа к одной из сторон макетки и нельзя будет ничего переделать.
и добавил...
Подключил вся эту конструкцию к ЦАПу. Все работает.
Посмотрел на эту проблему:
зы про исправление что бы экран не гас помнишь?
Она происходит и у меня. С Ардуино Уно ее не было. Подключил кнопку к 7-му пину вместо 6-го, для этого пришлось делать изменения на макетке. Поменял программу, чтобы она работала с 7-ым пином и все заработало нормально.
и добавил...
wuriks, у тебя Ардуина припаяна к переходнику?
и добавил...
Я нашел в своем коде в SabreManager::StartDac() такую строчку:
pinMode(6, OUTPUT); // Controls the brightness of LCD through a transistor
Думаю, она и приводит к тому, что гаснет экран при нажатии на кнопку, подключенную к 6-ому пину.
-
Да, припаяна.
Я тоже потом увидел эту строчку, но мне проще было перепаять проводок... ;-[
-
Мне интересно, как ты перепаял проводок? У меня проводки находятся под Ардуиной, поэтому я ее еще не припаял.
-
Колодочку под Ардуино нужно. Тогда снять/поставить не проблема будет.
Сергей, а кроме регистры ЦАПы что ещё программка умеет? Ну, там, входы перебирать, ПДУ, включать/выключать ...?
-
Да, программа умеет переключать входы и все настройки (значения регистров) можно менять и сохранять для каждого входа отдельно. Поддержку ПДУ можно добавить. У меня ЦАП стоит рядом на столе и нет необходимости в ПДУ, так как я слушаю через наушники.
и добавил...
Еще она выводит на экран информацию о декодируемом потоке: DSD/PCM, частоту дискретизации...
-
Спасибо, понял. ДУ лучше добавить, конечно. Не у всех На столе стоять будет.
-
Колодочку под Ардуино нужно. Тогда снять/поставить не проблема будет.
Отлично подходит панелька DIP40
-
Только-что я закончил вживлять Ардуино Нано в контроллер Сабри. Я припаял Ардуину к переходнику и наконец исчезли проблемы плохих контактов и большого количества проводов, теперь вся конструкция занимает мало места.
[attachment=1]
Самая хорошая новость, что если контроллер с установленной на нем Ардуиной, отключеный от ЦАПа, подключить USB кабелем к компьютеру, то
- Запускается Ардуино и горит дисплей, правда его яркость ниже обычной, видимо на него попадает пониженное напряжение.
- Вшитая в Ардуино программа работает нормально.
- В Ардуино можно загрузить новую программу.
Это очень удобно, так как можно заливать новую программу и частично отлаживать ее, не вынимаю Ардуино из контроллера. Это экономит много времени.
-
на схеме из поста 3 не понятно соответствие большенства выводов ардуино и штатного контролера. стоят просто циферки, а на ардуино каждый вывод подписан фото пост 25. исправьте.
-
А типа таблички на схеме в правом нижнем углу не устраивает?
-
а я как раз про нее и писал. понятно только а4 а5 а1 гнд 5в остальное хз. посмотри сам.
-
на схеме из поста 3 не понятно соответствие большенства выводов ардуино и штатного контролера. стоят просто циферки, а на ардуино каждый вывод подписан фото пост 25. исправьте.
(http://img.mysku.me/uploads/images/02/67/43/2015/12/09/ddd158.png)
-
остальное хз. посмотри сам.
Что бы не путаться с цифирками на плате ардуино я добавил аж три раза букву А, остальные естесно из D1-D13. Если бы была просто нумерация пинов на платке нано, то так бы и написал. ;-[
Можно скачать печатку (http://www.diyaudio.ru/forum/index.php?topic=4457.msg259117#msg259117), для ясности...
-
А, остальные естесно из D1-D13
для тебя естественно, а мне было не понятно вот и спросил. :drink:
-
ДУ лучше добавить, конечно. Не у всех На столе стоять будет.
И к тому же статика вешает ардуину. :(
и добавил...
Интересно а какие данные (http://www.diyaudio.ru/forum/index.php?topic=4457.msg291435#msg291435) ты хочешь выводить на дисплей или просто хочешь что бы отображалась вся текущая настройка по данному входу ?
-
может поменять дисплей на более длинный, но двустрочный.
-
Хотелось бы вывести на дисплей все текущие настройки. Сейчас приходится щелкать кнопками, чтобы проверить какой-то параметр.
и добавил...
может поменять дисплей на более длинный, но двустрочный.
Можно переделать программу под любой дисплей, но у меня ЦАП стоит в корпусе, в котором можно поставить только обычный двухстрочный дисплей. Даже если я поменяю корпус, я сам не смогу вырезать в алюминии отверстие нужных размеров.
-
Это сильно усложнит программу, если используя пульт ДУ сразу переходить к нужному пункту меню?
-
Шурик, Морфиус схема соединения ардуины (табличка) и разводка переходника в формате лай не совпадают. совпадают только шина упр, d2,питание. а остальное? и чему верить!
-
Мы, как видно из фоток, делали на макетке. Печатку что выложена не проверял, но когда она создавалась вроде как все совпадало... Приду домой посмотрю.
-
блин хотел переходник сделать, а тут облом. :-\
-
Печаткой поделился Виктор. У него все работает. Странно как то...
-
Это сильно усложнит программу, если используя пульт ДУ сразу переходить к нужному пункту меню?
Не думаю, что это усложнит программу. Я поищу у себя, я когда-то заказывал добавку для Ардуино, для поддержки дистанционного управления.
и добавил...
Шурик, Морфиус схема соединения ардуины (табличка) и разводка переходника в формате лай не совпадают. совпадают только шина упр, d2,питание. а остальное? и чему верить!
Я паял макетку, используя эту разводку:
[attachment=1]
Все сразу заработало. Где здесь есть несоответствие?
Я только потом вместо пина D6 подключился к D7.
-
[attachment=1]табличка под схемой
-
Я не смотрел внимательно на эту табличку, а просто спаял макетку в соответсвии с рисунком выше и все сразу заработало.
-
В табличке не правильно, она повидимому с первого варианта, до печатной платы. Так что делай по печатке, тк прошивка сделана под нее.
зы хм, а цвет слоев на ней не перепутан?
-
врубился. табличка нарисована по идиоцки. вообще вывода соответствующие друг другу изображаются напротив, если это не возможно изображается жгут. давайте придерживаться общепринятых стандартов в изображении схем. либо названия выводов например (d4), либо по нумерации пинов.
и добавил...
Что бы не путаться с цифирками на плате ардуино я добавил аж три раза букву А, остальные естесно из D1-D13
а как это понять? получается сигнал d9 c ардуино идет на 15 пин атмеги.
-
а как это понять?
ну типа раз уж взялся за одни цыфири, то не фиг на другие смотреть... и ваще, как сейчас выяснилось, это черновик... ;-[
и добавил...
за все время только два человека стали делать переходник и как ни странно но у Сергея (Morpheus123) все сразу заработало, а ты начал разбираться и "попал"...
Сорь, что так получилось.
-
я как раз не попал. вот если бы сабря крякнула тогда да. о других забочусь
и добавил...
если бы я писал прогу, то собрал бы по памяти без схемы.
-
если бы я писал прогу, то собрал бы по памяти без схемы.
Как раз наоборот. В моей программе дисплей был подключен по другому (к другим пинам Ардуино). Александр подключил дисплей к Ардуино через китайский контроллер и сделал соответсвующие изменения в программе, за что ему спасибо. Я не стал разбираться, а взял его схему подключения и код.
-
О, к стати, программу то я дал которую сам использую, а в ней есть еще некоторые отличия... Громкость спрятана в глубине меню, а на первом месте переключение входов и к тому же при первом включении на дисплее всегда горит вход USB, хотя может работать и совершенно другой.
-
Я этого не заметил, так как взял у тебя только код, который инициализирует дисплей.
-
Ты же понимаешь что надо брать, а что нет ;)
Но про баг то с входами помнишь? Те при включении на экране может быть не тот вход что запомнился при выключении.
-
Я собираюсь добавить поддержку ДУ в программу. Для подключения приемника ДУ к Ардуино нужен один пин. Я собираюсь подключить его к пину D11. Также приемнику нужно питание и земля. Получаются 3 провода, которые нужно будет припаять к Ардуино.
и добавил...
Какой баг с входами?
-
Я собираюсь подключить его к пину D11
Не надо его, он какой то не правильный, со светодиодом связан. У тебя в коде был закоментирован 3-ий пин для IR.
и добавил...
Когда я перенес громкость в глубь меню и поставил переключение входов первым выяснилось, что при включении на дисплее отображается всегда один и тот же вход, в твоем коде COAX, хотя работает всегда тот который запомнился при выключении.
-
громкость в глубь прятать не надо. цап при вкл станет на тот вход,, что был при выкл. громкость бывает нужно подправить быстро, пока её найдёшь в глубине, а так она сразу.
-
Для этого у меня есть ручка на усилителе и леньтяйка его же. Ни разу не пользовался громкостью на цапе, тк до него пока дойдешь...
и добавил...
и ваще это не правильно на цапе крутить громкость, имхо.
-
у некоторых он стоит на столе. а простенький унч для ушей может быть внутри и ставить отдельный рег. гр. как то не айс.
-
От кнопочки -20db я бы может и не отказался, а портить звук цифровым регулятором не хочу. Но кому как, я не настаиваю, просто предупредил о том как сделано у меня в программе.
-
А вот кнопке -20db место на унч.
-
Не стоит из-за этого спорить, потому что каждый по-своему прав. Я тоже не пользуюсь цифровыми регуляторами громкости, потому что они портят звук, но может это мне кажется. Несмотря на это, громкость в программе я поставил на первое место для тех, кто ей пользуется.
и добавил...
Я сильно продвинулся в написании новой версии программы. Скоро буду прикручивать ДУ.
-
по поводу громкости. можно использовать моторизованный регулятор типа альпс. нужно только в проге предусмотреть это. тогда вообще ВЕЩЬ получится к унч без преда можно подкл.
-
Вчера подключил ДУ к Ардуино и начал писать код для работы программы с ДУ. У меня стандартный комплект ДУ: http://www.ebay.com/itm/221892279446?_trksid=p2060353.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT. Главный его недостаток в том, что ИК приемник будет сложно установить в корпус. Если бы он имел форму простого светодиода, можно было бы просто просверлить отверстие в передней стенке корпуса и вставить его туда. С этим приемником придется повозиться.
-
Можно сделать выносной, используя миниджек. Дырка будет круглая и сзади...
-
С программой тоже были проблемы, но я их частично решил. Когда я подключил к программе код для работы с ДУ, это увеличило минимальную требуемую память до 92% и программа перестала запускаться. Я убрал из своей программы Логгер и смог освободить много памяти (до 60%) и программа запустилась.
Еще одна проблема обнаружилась очень быстро. Я добавил код, который декодирует сигналы от ДУ и выводит результат на сериальный порт. Оказалось, что, если я нажимаю много раз на одну и ту же кнопку на пульте ДУ, в программе я не всегда получаю одинаковые коды. Это значит, что ДУ работает нестабильно у нужно будет нажимать несколько раз на одну и ту же кнопку, чтобы ДУ сработало. Думаю, что проблема в железе. Кто-нибудь встречал такую проблему?
и добавил...
Можно сделать выносной, используя миниджек. Дырка будет круглая и сзади...
А куда засунуть платку приемника?
-
Кто-нибудь встречал такую проблему?
Такое происходит если на приемник приходит не 5 вольт, а меньше.
и добавил...
А куда засунуть платку приемника?
Да хоть в дохлую мышь или если использовать шнурок от наушников, то в один из них и вставить...
-
Я конечно проверю, но я подключил приемник к пину Ардуино, на котором должно быть 5 вольт. Я пока работаю не с Ардуино Нано, а с Уно, на которой установлен шилд с экраном и кнопками. Я измерю напряжение, которое подается на приемник.
Ты с таким сталкивался?
и добавил...
Дохлая мышь у меня есть :D. Я как раз думал, что с ней делать.
и добавил...
Кода я взял другой пульт ДУ, проблема стала происходить реже, но она осталась.
-
У меня было такое, что код кнопки не повторялся, оказалось что приходило 3,3 вольта на приемник, когда сделал 5 все стало работать без проблем.
-
Я обязательно проверю. Я сделал большие изменения в программе, но пока еще не закончил.
-
В приемнике можно не большую банку по питанию поставить.
и добавил...
Я уже все углы кипятком... от нетерпения... :cr:
-
Проверил. На приемник подается 5 вольт. А какой емкости банку стоит поставить?
и добавил...
Интересно, зачем в комплект ДУ положили светодиод?
-
[attachment=1]вот и переходник готов может на выходные попробую
-
Пока подключил ДУ для регулировки громкости. Громкость регулируется, только я опять получаю разные коды при нажатии одной и той же кнопки ДУ. Это зависит и от пульта. Один пульт работает стабильно, а 2 других дают непредсказуемые результаты. Пока ничего непонятно.
и добавил...
Возможно, это как-то связано с шильдом.
-
Да, к стати, на какой ноге у тебя висит приемник?
-
ду в общем не плохо. но для установки некоторых параметров нужно смотреть на экран, что издалека не удобно т.е. удобнее пользоваться кнопками на самом цапе.
-
Если все получится, то с помощью ДУ можно будет сразу переходить к нужному пункту меню, а не щелкать кнопками по кругу.
и добавил...
И слепой тест тебе заодно, не видно же на что переключил....
-
я это к тому, что на пульт обычно выводится основное.
Если все получится, то с помощью ДУ можно будет сразу переходить к нужному пункту меню
а в пункте ещё 5 подпунктов..........
-
Не, там уже выбираешь какой параметр установить и лучше, может быть, это делать на слух или покрайней мере проверять...
-
успехов. ;D
-
И тебе. Вот прошивка где громкость на первом месте, как до моего вмешательства было.
-
спасибо. мне товарищ залил ту, что в др. ветке ты выкладывал. попробую пока так.
-
Похоже у меня какая-то проблема с железом. Я сделал простую проверку. Залил эту програмку на Ардуино Уно:
#include <IRremote.h>
int RECV_PIN = 6;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
void loop()
{
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
irrecv.resume(); // Receive the next value
}
}
К Ардуино ничего не подключено, кроме приемника ДУ. Вот, что я получил, нажимая несколько раз на кнопку ОК:
FF02FD
FFFFFFFF
FF
FFFFFFFF
FF02FD
FFFFFFFF
FF02FD
FFFFFFFF
FF02FD
FFFFFFFF
FF
FFFFFFFF
B3366EF9
9B2F1790
FFFFFFFF
83A1BFF8
FFFFFFFF
5D7A3CA0
Я пробовал менять пин, к которому подключен примник, не помогло. Продолжать так не имеет смысла.
и добавил...
Напряжение на приемнике 5 вольт. Что бы это значило?
-
Сергей, а осциллографом сигнал с выхода приёмника ИК смотрели? Какая амплитуда и форма импульсов?
-
Видимо проблема с пультом, идущим с ДУ. С другим пультом я получил такой результат:
807FC837
FFFFFFFF
FFFFFFFF
807F
FFFFFFFF
807FC837
FFFFFFFF
807FC837
FFFFFFFF
807FC837
FFFFFFFF
807FC837
FFFFFFFF
70FE5C24
FFFFFFFF
807FC837
FFFFFFFF
807FC837
FFFFFFFF
807FC837
FFFFFFFF
807FC837
FFFFFFFF
28E5C862
и добавил...
Сергей, а осциллографом сигнал с выхода приёмника ИК смотрели? Какая амплитуда и форма импульсов?
Посмотрю.
и добавил...
А это 3-й пульт:
FD28D7
FD28D7
FFFFFFFF
FD28D7
FD28D7
FFFFFFFF
FD28D7
FFFFFFFF
FD28D7
FFFFFFFF
FD28D7
FFFFFFFF
FD28D7
FFFFFFFF
FD28D7
FFFFFFFF
FD28D7
FFFFFFFF
FD28D7
FFFFFFFF
FD28D7
FFFFFFFF
и добавил...
А вот и осцилограммы:
[attachment=1]
[attachment=2]
Первую я сделал, пользуясь плохим пультом. Оно не отличается от 2-ой.
-
Режим измерения выбери DC и настрой щуп, покрутив "винтик" на нем, так чтобы прямоуголный сигнал был без выбросов и завалов.
По амплитуде вроде как нормальный, а вот по содержанию не понятки.
и добавил...
Я вот так смотрел кнопки:
#include <IRremote.h>
int RECEIVE_PIN = 3;
IRrecv irrecv(RECEIVE_PIN);
decode_results results;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
void loop() {
if (irrecv.decode(&results)) {
Serial.print("0x");
Serial.println(results.value, HEX);
delay(50);
irrecv.resume();// Receive the next value
}
}
и добавил...
Сигналы не отличаются потому что долго жмешь на кнопку, не надо так. Поставь синхронизацию ждущий или одноразовая и нажми на кнопку, но не держи. Должно получиться вот так
[attachment=1]
и добавил...
Это одно нажатие на кнопарь. Если долго жать будет как у тебя.
и добавил...
[attachment=1]
и добавил...
Но другую кнопку может нормально повторять, вот же блин... ???
и добавил...
ну движок у форума... все картинки с сообщениями перепутал... :facepalm:
-
Я сильно продвинулся в написании новой версии прошивки. К сожалению, сейчас это дело временно остановилось, так как моя жена 3 дня назад неожиданно попала в больницу...
-
Да, с человеками такое бывает...
-
бывает
и добавил...
поставил ардуино. появилась возможность подстроить звук в зависимости от формата, но при переходе с формата на др. формат может понадобиться корректировка настроек. предлагаю сделать оптимизацию. подобрать для разных форматов переключаемый, предуатановленный блок настооек по типу тембра ( рок, джаз, соло… ). но для этого сообщество полльзователей должны определить опгтмальные прессеты, а наши ПРОГРАММИСТЫ воплотить это в виде прошиви.
-
Сейчас для каждого входа запоминаются настройки и думаю вполне достаточно так же сделать для каждого формата.
Но так как встречаются разные записи в одном и том же формате, для меня более оптимальным было бы быстрое перемещение по меню (при помощи ДУ)... пока пролистаешь, выставишь, оно уже все и закончится, а повторять не всегда хочется...
-
согласен, но проще переключать предустановленные прессеты, чем подбирать на слух и в итоге придти к предустановленному прессету.
-
У нас даже цапы разные, не говоря уже о том что после него, да и до него, какие прессеты ?
-
вот поэтому этих прессетов должно быть несколько, а мы сообщество пользователей должны определить оптимальные параметы каждого прессета, а не лазить по меню и подбирать настройи.
-
заметил небольшой глючок, который проявился пока один раз. слушал в формате мп3 потом поставил на паузу. после перешел на дсд, а на индикаторе 44 перешел на 192 на индикаторе 44 и.т.д. помог вкл/выкл.
-
У меня появилась идея. Можно подключить к Ардуино Wi-Fi модуль. Можно написать програмку, которая бежит на компьютере и по сети посылает команды на контроллер через Wi-Fi модуль. Таким образом можно будет управлять всеми параметрами ЦАПа через компьютер.
-
или планшет и пульт ду я так понял не нужен.
-
Марат даже дисплей выключает, что бы не влиял на звук, а вы собираетесь еще одну свистелку добавить в цап...
И пульт ДУ оно не заменяет, тк у меня, на пример, он универсальный, те один на кучу железа.
-
не свистелку, а свистульку. помечтать уже не дает :P
-
Марат даже дисплей выключает, что бы не влиял на звук, а вы собираетесь еще одну свистелку добавить в цап...
И пульт ДУ оно не заменяет, тк у меня, на пример, он универсальный, те один на кучу железа.
Я не уверен, что отключение дисплея влияет на звук. От пульта ДУ я не отказался, а хочу сделать другие виды управления дополнительно к пульту ДУ.
Ардуино по-прежнему нестабильно декодирует коды кнопок, в результате программа работает через раз, нужно много раз нажимать на одну кнопку, чтобы команда сработала. :-[
-
может приемник попробовать другой или вэкран его одеть.
и добавил...
раз есть косяк его нужно искать. тут или пульт или приемник. пульт можно разобрать и подать сигнал на ардуину с пульта по проводу, подпояв его. если будет та же картина значит пульт хреновый.
-
Пульты ДУ по разному реагируют на долгое нажатие кнопок, одни повторяют код, а другие нет. У Сергея как раз второй вариант, судя по картинке.
И к стати после каждой команды желательно ставить паузу, иначе не стабильно работает...
зы заготовка, работающая, но используется мной только для переключения реле и на другой ардуине, и в другом месте... :D
Извините, вам запрещён просмотр содержимого спойлеров.
зызы а ты отдельно скеч для проверки кнопок использовал или в составе программы?
-
Мои пульты ДУ не повторяют команды, а посылают код повтора. После того, как я стал использовать код повтора в программе, ДУ стало работать значительно лучше.
Когда я вставляю паузу в код, программа начинает работать хуже, поэтому паузу я убрал.
Сначала я проверил, как работает ДУ в простом скетче. Было много ошибок декодирования. Сейчас программа работает лучше, но все еще есть немало ошибок декодирования.
-
Может схема подключения (http://www.hyzt.com/manager/upimg/200987165540.pdf) поможет.
Еще вот такие идеи есть https://sites.google.com/site/arduinoirc/ и http://robocraft.ru/blog/799.html
-
Я закончил писать черновой вариант новой версии. Отладил ее на Ардуино Уно, а потом все изменения перевел в версию для Ардуино Нано (пока я ее проверял только на Ардуино Уно). В этот раз я ее писал на Visual Studio. Для того, чтобы перевести этот код на Atmel Studio, можно взять старую версию и заменить там все файлы с расширениями cpp, h, ino, на файлы из новой версии.
В новой программе вся информация отображается по-другому, а также добавлена базовая поддержка пульта ДУ.
Для использования необходимо переименовать "ES9018 DAC Controller Nano.jpg" в "ES9018 DAC Controller Nano.zip" и разархивировать его.
Жду отзывов и обсуждения...
-
Блин, тут такое, а я всякие сериалы смотрел...
и добавил...
А что делать с файлами "ES9018 DAC Controller Nano"? Если просто сменить расширение, что бы Atmel Studio увидела проект, то выдает такую ошибку:
The imported project "C:\Microsoft.Cpp.Default.props" was not found.
Confirm that the path in the <Import> declaration is correct, and that
the file exists on disk.
D:\Ansidok\Sabre\Arduino\Beta_IR_NANO\ES9018 DAC Controller
Nano.cppproj
и добавил...
Или лучше скачать и установить Visual Studio Community 2015 или есть что то попроще?
-
Можно скачать и установить Visual Studio 2010 и Visual Micro plugin. Студио 2015 не стоит ставить на домашний комп, она слишком тяжелая. Можно также сделать так:
1. Заменить в старой версии все файлы с расширениями h, cpp, ino на файлы из новой версии.
2. Открыть в Atmel Studio проект из старой версии.
3. Удалить из проекта Logger.h и Logger.cpp.
-
В новой программе есть файлы . расширением которого нет в старой, вот я и спрашивал что делать с ними. При открытии нового проекта атмел студия не видит его в папке ТК файлов с нужным расширением нет. Если я меняю расширение у файла Контроллер.... то выскакивает ошибка
-
С ними ничего делать не нужно. Весь код сидит в cpp, h и ino файлах.
и добавил...
У меня появилась одна идея, как можно доработать программу. Я ее реализую завтра. Новая версия в работе совсем не похожа на китайский контроллер и на первую версию.
Выкладываю немного исправленную версию. Она работает на Ардуино Нано и полностью совместима со схемой подключения от Александра.
-
Морфиус у тебя прямо творческий порыв! ;D
-
За завтраком удалось пока только открыть в Атмел студии. Вечером подредактирую и попробую прошить. Редактировать собираюсь кнопки ДУ, поэтому вопрос а в каком файле это надо делать и к какой ноге датчик припаивать?
и добавил...
Вона как у тебя сделано ДУ, те меню пролистывается и по две кнопочки используется... Не совсем то что я имел ввиду про прямой доступ к пунктам меню, те нажал кнопку и попал сразу в нужный пункт, а там уже листаешь и выбираешь нужное значение. А почему по два кода кнопки? Хотя я еще не видел меню живьем... :)
-
Датчик нужно припаивать к пину 12, или поменять эту строчку:
#define REMOTEPIN 12 // Pin for IR receiver (remote control)
в SabreManager.h.
Коды кнопок можно поменять в функции TranslateIR(decode_results& results) в SabreManager.cpp.
и добавил...
Вона как у тебя сделано ДУ, те меню пролистывается и по две кнопочки используется... Не совсем то что я имел ввиду про прямой доступ к пунктам меню, те нажал кнопку и попал сразу в нужный пункт, а там уже листаешь и выбираешь нужное значение. А почему по два кода кнопки? Хотя я еще не видел меню живьем...
Не совсем понял, что ты имеешь ввиду. Сделать так как ты говоришь, это 5 минут работы, то, что я сделал, намного сложнее. Я просто не знал, какие кнопки присвоить разным пунктам меню. Какие будут предложения?
-
Я просто не знал, какие кнопки присвоить разным пунктам меню.
Цифровые и присвоить, те пронумеровать пункты меню.
то, что я сделал, намного сложнее.
Я еще не видел результат и не совсем понимаю как оно работает. Ты использовал клавиши джойстика? И почему два раза код кнопки:
Извините, вам запрещён просмотр содержимого спойлеров.
Если мне менять на свои, то какие кнопки я должен отсканировать?
зы я же использую не шилд IR для ардуины.
-
Два раза код кнопки, потому что у меня программа работает с двумя разными пультами. Я использовал клавиши со стрелками на пульте: стрелки налево, направо, вверх и вниз, а также кнопку ОК. Кроме того я назначил отдельные кнопки для регулировки громкости. Можно использовать любые другие кнопки. Отсканируй те кнопки, которые тебе больше нравятся :).
-
Все понятно, спасибо.
Может ты помнишь клавишу в атмел студии для проверки программы? По F7 у меня выдало кучу ошибок (утром попробовал). F5 это проверка и прошивка, а вот как просто проверить не помню... :(
-
Клавишу не помню. Пользуйся меню: Build\Build Solution. Значиы есть ошибки. Скорее всего нужно установить библиотеку IRemote.
-
скачать и установить Visual Studio 2010
Оно тож не маленькое, образ диска почти 2 гига. Может есть выборочная установка и что то можно не ставить?
и добавил...
Скорее всего нужно установить библиотеку IRemote.
Ее видел в архиве, но что с ней делать не понял. Те как ее установить?
еще два часа продержаться и домой... ;)
-
В программе в двух местах есть такая строчка:
#include <IRremote\IRremote.h>
Библиотеку IRremote нужно скопировать в какое-нибудь место на диске, чтобы Atmel Studio смогла ее найти. Я сейчас уже не помню, где Atmel Studio ищет библиотеки, возможно здесь: C:\Program Files (x86)\Arduino\libraries. Если нет, то скопируй ее куда-нибудь и подредактируй эту строчку: #include <IRremote\IRremote.h>, например:
#include <C:\IRremote\IRremote.h>
и добавил...
Не обязательно устанавливать Visual Studio 2010 со всеми ее возможностями, достаточно сделать минимальную установку.
-
Главный недостаток этого решения в том, что бесплатная версия — Visual Studio Express не поддерживает плагины и поэтому, Visual Micro можно использовать только в платных версиях Visual Studio :( (http://robocraft.ru/blog/arduino/628.html)
Приплыли однако, я имненно Visual Studio Express и поставил. ???
и добавил...
Прошил наконец то...
Не, так не интересно, он переключается быстро и я ничего не успеваю сделать... пытаюсь настроить одно, а он уже переключился на другой режим...
Шустрый, однако...
-
Поздравляю!!!!!!! Рад, что получилось.
В программе есть 2 режима: режим отображения информации и режим настройки. Громкость и входы можно переключать прямо из режима отображения. При нажатии на любую кнопку программа переходит в режим настройки. Через 6 секунд, если не было нажатий на кнопки, она возвращается в режим отображения. Если 6-и секунд не хватает, можно переключать режимы, например, двойным кликом. Возможно, есть баги и программа работает не совсем так, как было задумано.
и добавил...
Прошил наконец то...
Не, так не интересно, он переключается быстро и я ничего не успеваю сделать... пытаюсь настроить одно, а он уже переключился на другой режим...
Шустрый, однако...
В программе для Нано был баг, из-за которого будто бы все время нажимались кнопки и все прыгало на экране. Я его исправил. Кроме того я сильно переделал программу и добавил поддержку команд при нажатии на кнопки 0-9.
Вот новая версия.
и добавил...
Сегодня я получил новый комплект для ДУ. Странно, он пришел из Китая за несколько дней! Я поменял ИК приемник и ДУ стало работать без ошибок. Странно, но все коды с новым приемником изменились. Пришлось поменять их в программе. ДУ пользоваться очень удобно.
-
ДУ пользоваться очень удобно.
А вы не верили!
и добавил...
Через 6 секунд, если не было нажатий на кнопки, она возвращается в режим отображения.
Те для того что бы понять как влияет на звук разные варианты одного пункта меню, надо сначала его выбрать, а уж потом переключать.
В режиме отображения случайное нажатие на курсорные кнопки изменяет настройки? Хотелось бы этого избежать.
-
под какой пульт пиаалась прога?
-
Без разницы, на какой обучишь тот и будет.
зы только от кондиционера не стоит использовать, с ними часто заморочки бывают :D
и добавил...
случайное нажатие на курсорные кнопки изменяет настройки?
Я к тому что в старой версии активен всегда один определенный пункт меню и в случае случайного его изменения легко вернуться назад, а сейчас даже можно и не уловить где сменил режим...
Но я пока не пользовался новой прогой, может это излишние страхи...
-
У страха глаза велики. Вчера я убрал 2 режима работы, которые обьяснял раньше. Убрал, так как были баги, а также мне не нравилось, что на экране все время что-то меняется.
-
а также мне не нравилось, что на экране все время что-то меняется.
Тоже как то не глянулось
-
Цитата: Morpheus123 от Вчера в 23:15:05
ДУ пользоваться очень удобно.
А вы не верили!
Когда ДУ срабатывает после 20 нажатий на кнопку, это неудобно.
и добавил...
Жду отзывов о программе.
-
я так понял, что ардуина обучается под пульт.
-
Мало того, обучимшись, при определенных обстоятельствах (программка, светодиод...) она даже может и закосить под него... :yes:
и добавил...
Датчик нужно припаивать к пину 12
Но ведь D12 ардуины соединяется с 15 пином контроллера и дальше идет на 4-ю ногу (RS) дисплея... ???
и добавил...
Вот же, для NANO она оказывается 13-я.
и добавил...
Ура, заработало ДУ. Питание для датчика взял с платы контроллера, после резистора на 4 ома который. На ардуину прицепил только выход с него. При таком включении амплитуда импульсов датчика получается около 4,2 вольта, а не 3,6 как при питании от пина ардуины. Думаю так стабильнее будет работать и вроде как ничего криминального в этом нет. ???
и добавил...
Кроме кода кнопок ДУ и пина датчика в программе ничего не менял.
зы А что делает эта команда:
case CmdSelect:
bOK = m_MenuController.Select();
break;
и добавил...
(Извините, но у Вас нет доступа в Галерею)
-
дырок набуравил, греется. сфоткал бы кишки людям показал аль, тайна великая. :v:
пилите други прошивку я с вами! хоть вэтом деле… ..
-
зы А что делает эта команда:
case CmdSelect:
bOK = m_MenuController.Select();
break;
Эта команда была актуальна, когда была бегущая строка.
и добавил...
Вот новая версия. В ней я исправил проблемы с дисплеем. Громкость пришлось перенести на вторую строчку, так как на первой недостаточно места.
-
Загрузил новую версию. В ней при проигрывании PCM, IIR Filter автоматически переключается на PCM, и его нельзя изменить из меню. При проирывании DSD, IIR Filter читается из памяти и эта опция появляется в меню. Возможны баги, так как эта логика еще сырая.
-
:yah: :yah: :yah: :yah: :yah: :yah: :yah:
:audio:
те все работает как надо!!!
и добавил...
Это относилось к DSD. :yes:
А так есть баг... После выключения ни чего не запоминает, те вход на котором был и настройки.
-
А так есть баг... После выключения ни чего не запоминает, те вход на котором был и настройки.
Посмотрел сейчас код программы. Похоже она не сохраняет настройки только при изменениях через ДУ, так как я не успел это имплементировать. Думаю, при изменениях через кнопки, они должны сохраняться.
и добавил...
Вот, исправленная версия. Я ее не могу проверить с Сабрей, так как еще не припаял приемник ДУ к контроллеру с Ардуино Нано.
-
Думаю, при изменениях через кнопки, они должны сохраняться.
А я про кнопки и забыл, честно сказать. :D
-
Сегодня наконец подключил приемник ДУ к контроллеру с Ардуино Нано. Все работает хорошо, только не сохраняется FIR Filter. Александр, у тебя тоже есть такая проблема?
и добавил...
Вот, исправленная версия.
-
только не сохраняется FIR Filter. Александр, у тебя тоже есть такая проблема?
Не знаю, я еще не прошивал. А залью конечно же вот эту последнюю.
зы код кнопок своего ДУ передать тебе что ли... ;-[
Извините, вам запрещён просмотр содержимого спойлеров.
и добавил...
елы, а чем тебе 3 пин не угодил? ;D Я все собрал, а оно не работает... опять все вытаскивать из стойки ;D
и добавил...
В последней версии программы, те 4.3.2016, не запоминается параметр Notch и его нельзя настроить отдельно для каждого входа, как другие. Хотя 64 для всех меня вполне устраивает.
-
Я не помнил, какой пин ты используешь для ДУ и припаял у себя 13-й пин.
У меня сейчас контроллер не в корпусе, а снаружи, чтобы можно было легко перепрошивать.
и добавил...
В последней версии программы, те 4.3.2016, не запоминается параметр Notch и его нельзя настроить отдельно для каждого входа, как другие. Хотя 64 для всех меня вполне устраивает.
Только что проверил. У меня Notch сохраняется. Я залил свою последнюю версию. Это довольно странно.
-
У меня Notch сохраняется.
Хм, и у меня стало сохраняться. Но устанавливается одно значение на все входа.
-
да желающих поучаствовать в тончайшем допиле прошивки нет, за исключением Шурика и Морфмуса.
-
Ну дык, присоединяйся. Нажать пару кнопок на клаве да подсоединить ардуину к компу неужто не получится?
-
У меня Notch сохраняется.
Хм, и у меня стало сохраняться. Но устанавливается одно значение на все входа.
Загружаю новую версию. Здесь я исправил кое-какие баги. Раньше у меня на ДУ не работала комада повтор, когда держишь долго кнопку, сейчас я это исправил. Кроме того я перенес пин приемника ДУ, сейчас это пин 3 и добавил в программу коду кнопок Александра. Notch сейчас сохраняется для каждого входа.
и добавил...
Чем больше участвуют в этом деле, тем лучше.
-
к сожалению я вэтом не шарю :-\ вот к примеру есть у меня пульт, как его подружить с ардуино?
-
Как минимум нужен еще датчик, выход которого надо припаять к 3 (3D) пину ардуины, а оставшиеся посадить на gnd и +5V, куда ж без них.
Думаю за 30 мин максимум ты управишься, если конечно не будешь баловаться пультом... :D
Извините, вам запрещён просмотр содержимого спойлеров.
В результате получишь заготовку для адаптации новой программы под свой пульт и ардуину с убитой старой программой. ;-[
Но все же поправимо, если умеешь запускать образы дисков, тем более что уже столько сделано...
Извините, вам запрещён просмотр содержимого спойлеров.
В общем все просто. Надеюсь не утомил ответом. ;D
зы у файлов меняем jpg на zip и распаковываем
зызы у тебя не будет работать кнопка UP, если на переходнике не перебросишь проводок с 6D на 7D, те желательно сделать как у нас.
-
с приемником все понятно. есть разные: от видаков, двд, сд из разборки. ардуину переш'ю после праздников раньше ни как, ну и переходник подправлю. в спойлере все так интересно, но всего этого я не сделал т.к. есть моменты не особо понятные. ардуину мне прошил друг, который в этом разбирается. посоветуюсь с ним. может понадобится ваша помощь. ответ хорош. спасибо. буду пробовать.
-
и добавил в программу коду кнопок Александра
Спасибо, сейчас версии программы можно менять как перчатки ;D
Notch сейчас сохраняется для каждого входа.
Да, все замечательно.
Но появился баг с вызовом IIR filter при проигрывании DSD, те на прямую кнопкой ДУ не вызывается, пролистывание работает. Когда играет РСМ, то вызов есть.
и добавил...
есть моменты не особо понятные.
Спрашивай, попробую объяснить что знаю. Если что то трудное попадется, то Сергей (Morpheus123), думаю, поможет. Мне он очень помог запустить все это дело.
-
я болше железячник могу собрать, спаять, настроить, но с программирванием облом. спец. проги на компе на аглецком языке тоже не в жилу поэтому жесть.
-
Тут ни какого программирования. Установил, настроил и залил что нибудь куда нибудь :D
Если игры сам ставил, то с этим запросто справишься.
-
буду пробовать. кстати Линкс не плохо отзывался о 544уд2а придут буф634 попробую этот бутерброд в и/у.
-
Вчера сделал новую версию. В ней я исправил баг с IIR Filter и еще один баг, когда на выбран IIR Filter и формат менялся с DSD на PCM, на экране оставался DSD.
Попробую дать поддержку запоминания DPLL Bnd в зависимости от частоты дискретизации.
-
исправил баг с IIR Filter
Так было задумано, что, при проигрывании РСМ, фильтр ни как не вызывается, только когда DSD он появляется? В общем то логично, все равно там настраивать нечего когда РСМ.
Можно сказать что эта версия программы кандидат в релиз, тк основное работает без проблем.
Запоминание DPLL Bnd от частоты (http://www.diyaudio.com/forums/digital-line-level/117238-ess-sabre-reference-dac-8-channel-186.html#post2594386) это уже будет приятным бонусом.
-
Да, так было задумано.
и добавил...
Должен сказать, что DSD у меня играет намного хуже, чем PCM: низкие частоты становятся невнятными, средние сильно выделяются на фоне низких и высоких. Звук довольно неприятный на слух. Когда я включаю преобразование DSD->PCM в Фубаре, на тех же трэках, звук становится нормальным. Кроме того, при проигрывании DSD, процессор грузится почти на 100%, правда никаких прерываний звука не происходит. Это уже обсуждалось. Была версия, что фильтр в моем стоковом выхлопе настроен таким образом, что появляется такой эффект при проигрывании DSD. Не уверен, что это так, потому что стоковая китайская плата должна нормально воспроизводить DSD. Не знаю, в чем дело.
Еще я заметил, что при использовании в Фубаре драйвера foo_dsd_asio, звук заметно ухудшается на PCM по сравнению с драйвером XMOSa. На мой взгляд, разница в звучании очень заметна, поэтому я не слушаю DSD. Интересно, можно ли воспроизводить DSD, не пользуясь foo_dsd_asio? Может, если вместо Фубара возпользоваться другим проигрывателем для DSD, звук будет лучше?
-
Конечно есть другой плеер (http://www.diyaudio.ru/forum/index.php?topic=4457.msg294489#msg294489) ;), можешь его использовать только для DSD.
-
Спасибо, попробую.
Есть еще один параметр, который я пока закоментирован в программе. Это oversampling. Его можно выключить или включить. По умолчанию он всегда включен. В ЦАПе Buffalo его можно отключить програмно. Я уже плохо помню, но год назад когда я его отключал, вместо музыки, кажется я получил свист.
-
но год назад когда я его отключал
У тебя вроде еще не было XMOS... ???
-
зызы у тебя не будет работать кнопка UP, если на переходнике не перебросишь проводок с 6D на 7D, те желательно сделать как у нас.
Шурик это актуально для прошивки из поста #144?
-
Во всех прошивках используется 7D, тк у Сергея и у меня и еще у одного Сергея исправленная печатка.
-
Александр, у тебя на этой фотке можно увидеть приемник IR.
[attachment=1]
Я вчера у себя случайно нашел такой же. Ты не поделишься схемой его подключения? В этом приемнике на конце провода стоит стандартный 3-х контактный разьем 3.5 мм, как для наушников. Как ты подключил эти 3 контакта?
-
нашел такой же.
Увы, но похоже по внутренностям не такой же, тк у меня он подключался к USB и естественно внутри у него наворочено всякого, но я это все отрезал и подключился напрямую к датчику. Могу только посоветовать разобрать его (у меня на винтиках) и прозвонить кабель.
-
ОК, понял. У меня тоже на винтиках. Я его разберу. У меня есть еще один, вот он подключается через USB, но он очень большой.
и добавил...
Я его раскрутил. Там стоит только один датчик, точно такой же, какие я использую сейчас. Никакой схемы там вообще нет :ROFL:.
-
это тебе так кажется схема внутри самого датчика.
-
Не, Сергей имел ввиду что не так как у меня хоть и такая же коробочка. В моем случае внутри целая плата с кучей деталек, тк датчик подключается к USB...
-
тогда даааааа.
-
Вот и готова новая версия. В ней параметр DPLL Bandwith запоминается в зависимости от частоты дискретизации. Когда частота дискретизации сигнала меняется, программа читает из памяти сохраненное значение DPLL Bandwith для текущей частоты дискретизации и автоматически посылает его в соответствующий регистр Сабри. Другими словами DPLL Bandwith меняется автоматически при изменении частоты дискретизации. Изменение входа больше не влияет на DPLL Bandwith. При нажатии на сброс (Reset) DPLL Bandwith инициализируется значениями по умолчанию, которые отличаются для разных частот дискретизации. Значения по умолчанию я взял отсюда: http://www.diyaudio.com/forums/digital-line-level/117238-ess-sabre-reference-dac-8-channel-186.html#post2594386.
PCM 44.1Khz:MEDIUM
PCM 88.2Khz:MEDIUM_H
PCM 96Khz:HIGH
PCM 192Khz:HIGH
PCM 352.8KHz:Use best DPLL Settings
Кроме того в программе изменен механизм сохранения параметров в EEPROM. Я поставил защиту и теперь программа распознает формат данных, записанных в EEPROM. Если он не соответсвует текущей версии, данные из EEPROM не читаются. При любом изменении они записываются уже в новом формате. Это сделано, так как формат записываемых данных был изменен.
Я пока смог лишь поверхностно проверить новую версию программы. В ближайшее время постараюсь сделать более серьезное тестирование. Пока у меня просто не хватает времени на все...
Александр, если можешь, поиграйся с новой версией, жду твоих фидбэков.
и добавил...
Выкладываю еще одну версию с небольшой оптимизацией. Она меняет регистр Сабри, только если есть изменение. Предыдущая писала в регистр все время.
-
Залил последнюю, оптимизированную. Клево сделал :v: При переходе на другой формат на дисплее сразу видно что переключился режим DPLL.
Ночь уже, так просто потыкался, вроде как все работает форматы распознает, переключается и после перезагрузки все помнит...
-
Рад слышать!!! У нас кажется разница во времени в несколько часов. Сейчас здесь 20:46.
и добавил...
Я вижу, что не так много заинтересованных в этой прошивке для Сабри, но меня это не останавливает. Тебе спасибо за то, что помогаешь усовершенствовать прошивку, даешь новые идеи, тестируешь.
и добавил...
Кстати, я сегодня получил несколько Ардуино Про Мини. Очень миниатюрные штучки. Таких можно несколько засунуть в наш корпус. Пока еще не знаю, что с ними можно сделать :D.
-
Сейчас здесь 20:46
Разница в 3 часа. У мну 23:50.
А как я рад что тебя ни что не останавливает! ;D
и добавил...
Пока еще не знаю, что с ними можно сделать
В конце, часть которая про джиттер... Poor Man’s Jitter Measurement (https://hifiduino.wordpress.com/category/test/)
-
парни я с вами!
-
тоже уже поменял прошивку? :cr:
и добавил...
когда все программки установлены на компе, прошивку поменять ни каких проблем... я цап из стойки дольше выдираю...
-
Я вчера у себя случайно нашел такой же.
думаю это что то такое http://www.tricolor78.ru/price/oborudovanie/ir-priemnik.html
-
Думаю, это такой же ИК приемник, какой я нашел у себя. Точно такое же соединение. Когда я его разобрал, внутри обнаружил пустую плату с припаянным ИК датчиком, таким, какой идет в ИК модулях для Ардуино. Скорее всего с Ардуино он будет работать без проблем.
-
Morpheus123, это я к тому где искать желающим. по идее вещь хорошая. делать отверстие под приемник затруднительно и неудобно. а тут отдельный девайс который можно аккуратненько припрятать чтоб глаза особо не мозолил. еще хинт - можно один приемник подключить к нескольким девайсам ;)
-
Да, делать отверстие в корпусе не самый хороший вариант. Я заказал 3.5мм разьемы для подключения этой штуки. Когда они приедут, подключу этот датчик к своему ЦАПу. А пока у меня датчик просто висит на проводах.
Ренат, присоединяйся к нашей компании, установи мою прошивку :).
-
делать отверстие под приемник затруднительно и неудобно.
Самый простой вариант перенести выключатель сети взад... останется проблема чем прозрачным прикрыть образовавшуюся срамоту дыру... ???
Я, к примеру, практически не пользуюсь выкл сети, все включается с удлинителя.
-
В моем корпусе выключатель сети сзади, так что переносить нечего.
-
Все то у тебя с железом как то не так не много получается... :D
-
Morpheus123, не на что ставить ;D
Самый простой вариант перенести выключатель сети взад... останется проблема чем прозрачным прикрыть образовавшуюся срамоту дыру...
не факт что получится. очень много нюансов установки таких как габариты приемника, габариты дыры (включая толщину панели) влияют на угол и чувствительность приема. был бы габарит обычного LED - не было бы проблем.
-
В фабричном усилке такая же дыра как для сетевой кнопки закрыта матовой пластмаской, при толщине "морды" около 3 мм, ловит под острым углом. Если открать дыру, то реагирует на отраженный сигнал...
-
мне проще у меня корпус от cd проигрыватлея оставлю штатный приемник.
-
Загружаю новую версию. В ней я сделал много косметических улучшений, а также поменял начальные значения для DPLL Bandwith на следующие:
m_dPLLBandwidthArray[SR_NOLOCK] = DPLLBandwidthBest;
m_dPLLBandwidthArray[PCM_44] = DPLLBandwidthLowest;
m_dPLLBandwidthArray[PCM_48] = DPLLBandwidthLow;
m_dPLLBandwidthArray[PCM_88] = DPLLBandwidthLow;
m_dPLLBandwidthArray[PCM_96] = DPLLBandwidthMedium;
m_dPLLBandwidthArray[PCM_176] = DPLLBandwidthHigh;
m_dPLLBandwidthArray[PCM_192] = DPLLBandwidthMediumHigh;
m_dPLLBandwidthArray[PCM_352] = DPLLBandwidthMax;
m_dPLLBandwidthArray[PCM_384] = DPLLBandwidthMax;
m_dPLLBandwidthArray[DSD_2800] = DPLLBandwidthMediumLow;
m_dPLLBandwidthArray[DSD_3000] = DPLLBandwidthMediumLow;
m_dPLLBandwidthArray[DSD_5600] = DPLLBandwidthMedium;
m_dPLLBandwidthArray[DSD_6100] = DPLLBandwidthMedium;
При установке этой версии произойдет сброс сохраненных значений для DPLL Bandwith.
-
поменял начальные значения для DPLL Bandwith
Хм, интересно, а почему?
зы за вечер уже третий раз будет шитье :)
и добавил...
??? перед прошивкой смотрел кино и по оптике ни каких проблем не было, сейчас теряется лок, переключается на 44, потом опять на 48... прошилась что ли криво...
-
ну ты прямо портной ;D
-
не, не портной, куда уж мне, швей-моторист...
Прошил еще раз и все равно по оптике теряет лок, переключаясь с 48 на 44...
Вернулся на предыдущую v16.3.17 и все нормально стало.
-
Странно. Изменения, которые я внес никак не связаны с этим. Я посмотрю попозже.
Сегодня получил Ардуино Мега и дисплей 3.2 инч. Дисплей отличный, картинка четкая под любым углом. Жалко, что его трудно будет приспособить к нашему ЦАПу. Нужен другой корпус и нужно в нем вырезать отверстие под дисплей.
Вот пример, что можно делать с таким дисплеем.
[attachment=1]
На фото плохо получилось, но вживую стрелки двигаются как настоящие.
-
Morpheus123, зачем оно цапу? я бы лучше посмотрел на оледы того же формфактора что и имеющийся. те же габариты что у лсд, но видок намного приятнее.
и добавил...
(Извините, но у Вас нет доступа в Галерею)
-
Сергей, у тебя всегда нормально переключается DPLL? У меня иногда как бы дребезг происходит, те переключается, теряется лок, при этом высвечивается не BEST и при появлении лока переключается или же может проскочить один режим и включить следующий. Может это у меня опять что то с локом... ???
-
Мне кажется, в последней и предпоследней версиях есть одна и та же проблема. Я сейчас пользуюсь последней. Эта проблема у меня тоже есть. Я примерно понимаю, почему это происходит, но пока еще не знаю, как это можно исправить. Я этим займусь.
Подтверждаю, что DPLL Bandwith сильно влияет на звук. Это правильное направление: менять DPLL Bandwith с частотой дискретизации.
До вчерашнего дня у меня в качестве контроллера стояла старая Ардуино Уно. Вчера я перешел на Нано с последней прошивкой.
-
в последней и предпоследней версиях есть одна и та же проблема.
Весь вечер скакал с той на другую дабы узнать почему на оптике пропадает лок. Оказалось что он пропадает на обеих прошивках и только тогда когда в DPLL выбрано MAX или HIGH, те начинает переключаться с 48 на 44 и обратно. При других значениях лок стабилен. Если на оптике сделать RESET и не переключаться с этого входа, то во всех режимах DPLL работет стабильно. Стоит только уйти на USB и вернуться обратно на OPT то в режимах MAX и HIHG опять начинает переключаться с 48 на 44.
зы Между делом выяснил что желательно иметь хороший кабель для соединения компа и ардуины. С одним она у меня через раз определялась компом и прошивалась если только отключить шлейф управления от сабри, не вынимая ее из панельки, но нашел другой с ферритом с одной стороны и процесс пошел замечательно, всегда определяется и заливка идет без отключения от сабри ( а может лучше все таки отключать?).
-
У меня лок пропадает и восстанавливается на других режимах тоже. Помню в режиме HIHG каждые несколько секунд пропадал лок и звук прерывался. Это было год назад на старых прошивках. Я тогда пришел к выводу, что режим HIHG не подходит для всех частот дискретизации.
и добавил...
Думаю, не стоит прошивать при подключенной Сабре...
-
Я тогда пришел к выводу, что режим HIHG не подходит для всех частот дискретизации.
При использовании входов COAX и OPT, на USB все работает нормально.
зы проверил только вход ОРТ, запуская файлы 48х24 и 48х16, тк ящик(телевизор) другие частоты не пропускает...
и добавил...
Как выяснилось типа инструкция (http://www.diyaudio.ru/forum/index.php?topic=5114.msg294375#msg294375) оказалась не полной. В попыхах я забыл рассказать что делать с файлом core.a. Находится он в папке Nano распакованного архива с программой. Его надо скопировать в другую папку, находящуюся по пути
C:\Users\пользователь\AppData\Local\V.Micro\Arduino\Builds\ES9018 DAC Controller Nano\nano_atmega328\ и тогда после F7 ошибок не будет.
зы случается что программа Visual Studio устанавливается не очень то переведенная, что бы это исправить надо нажать Tools и выбрать Options. Находим строчку International Settings и меняем язык.
-
Попробуй новую версию. Я сегодня весь вечер над ней работал.
-
Если решал проблему с "дребезгом" при переключении режимов DPLL, то все получилось замечательно :v:
Но если на оптике вдруг включить MAX или HIGH, то довольно трудно стало переключиться на стабильный режим... все быстро так мельтишит...
Интересно, а как у Марата с этими режимами на входах COAX и OPT ???
-
Да, я думаю, что решил проблему с дребезгом, но не полностью. Я пришел к выводу, что полностью ее решить практически невозможно. Когда я меняю DPLL Bandwith с помощью регистров Сабри, Сабря теряет лок. Так это работает. В результате при изменении частоты дискретизации происходит следующее:
1. Сабря теряет лок при переключении на другую частоту дискретизации.
2. Сабря получает лок.
3. Программа читает из регистров Сабри данные и вычисляет новую частоту дискретизации.
4. Срабатывает логика, которая меняет DPLL Bandwith при изменении частоты дискретизации.
5. Сабря теряет лок.
6. Сабря возвращает лок.
Это приводит к прерыванию звука - дребезгу.
Как я попытался решить проблему. Программа вычисляет частоту дискретизации каждые 2 секунды. Я уменьшил это время до 200 милисекунд. При этом пришлось делать серьезные изменения в коде, так как нехорошо так часто обновлять экран. Пришлось разделять логику обновления экрана и логику вычислении частоты дискретизации. В результате дребезг в большинстве случаев исчез. У меня он проявляется редко.
и добавил...
Но если на оптике вдруг включить MAX или HIGH, то довольно трудно стало переключиться на стабильный режим... все быстро так мельтишит...
Интересно, а как у Марата с этими режимами на входах COAX и OPT
Я и раньше наблюдал эти проблемы, особенно на MAX. Кажется, Марат не заходит в эту ветку. Нужно его спросить в соседней.
-
Нужно его спросить в соседней.
Я в личку написал.
Это приводит к прерыванию звука - дребезгу.
Под дребезгом я имел ввиду дребезг кнопок, те переключалось не на следующую, а через одну (те перескакивала). Сейчас я этого не заметил (минут 5 крутил).
-
Ты поставил новую версию? Как она?
-
:) Всем здрасте. Ща я тоже подключусь к вашим экспериментам с новой прошивкой, надеюсь, Сергей не против.
-
Конечно не против. Я же ее не только для себя писал. Буду только рад.
-
Как она?
чуть раньше ответил (http://www.diyaudio.ru/forum/index.php?topic=5114.msg296377#msg296377)
Вооот, "и тогда нас стало трое"...
Сергей (serggold1971) углядел что файл core.a изменился и отсюда вопрос надо ли его менять при смене версии программ? Я никогда не менял.
-
Перепрошился на v20.3.16, все работает. По сравнению с предыдущей, перестали перескакаивать режимы DPLL Bnd а также перестал затыкаться (unlock) звук при их переключении с кнопок или с пульта ДУ.
и добавил...
Сергей (serggold1971) углядел что файл core.a изменился и отсюда вопрос надо ли его менять при смене версии программ? Я никогда не менял.
Я на всякий случай поменял его на свежий.
-
core.a менять не нужно. Его нужно менять, только при переходе на другую версию Ардуино, например с Нано на Уно.
и добавил...
Перепрошился на v20.3.16, все работает. По сравнению с предыдущей, перестали перескакаивать режимы DPLL Bnd а также перестал затыкаться (unlock) звук при их переключении с кнопок или с пульта ДУ.
Именно эти проблемы я вчера и пытался исправить. Для этого пришлось внести довольно серьезные изменения. Рад слышать, что это помогло.
-
Сергей, понимаю что тебе сейчас не до того, "пруха" пошла с дохлыми девайсами, но коль у тебя кварц в панельке, то есть уникальная возможность проверить его влияние на джиттер подключив ардуину (https://hifiduino.wordpress.com/2012/02/26/poor-mans-jitter-measurement/).
Я то же попробую подцепиться и посмотреть как влияют настройки DPLL на него и как оно зависит от частоты дискретизации, тк на слух изменения как то не очень то и слышно, точнее не понятно когда правильнее.
А еще ты можешь сравнить и платки XMOS, если конечно интересно...
-
Приеду с отдыха и постараюсь найти на это время.
-
Прицепил ардуину для слежения за джиттером, следит :yes: отключение паяльника от сети словилось и включение СВЧ печки (розетка с другой стороны стены)
В общем код рабочий, осталось придумать что с этим делать... розетку чистую поискать что ли :D
-
А и нечего искать, тк по эл. сети что ночью что днем ни чего такого не пролазит чтобы lock пропадал...
Режим DPLL Bnd был выбран lowest. Это как я понял самая узкая полоса или как?
Первые пару часов всякие входа переключал, пластинки слушал, поэтому unlock в наличии, а потом оставил в покое цап...
[attachment=1]
-
Всплыла такая не хорошесть. Слушаю музон в РСМ 44 (96, 192) и потом вдруг захотелось послушать в DSD формате так при этом получается звучит начало трека, очень не долго и потом, после паузы, начинает по новой но уже нормально звучать. От плеера не зависит, пробовал АР и фубар.
Сергей (Morpheus123), у тебя так же? Не помню как на старой прошивке было... ???
-
Кажется, у меня такой проблемы нет, но я не уверен на 100%. Нужно проверить. Я обычно слушаю DSD, преобразованный в РСМ.
-
Так вот и я про то же, может и не заметил. Я то грешил на плеер, а оказалось фигвам.
А что и с новым выхлопом у тебя DSD не звучит?
-
Я слушаю через наушники, а они имеют далеко не идеальную АЧХ, которую я компенсирую эквалайзером. Если точнее, это DSP Plugin Izotope Ozon. Это один из немногих обработчиков, который не создает слышимых на слух искажений. При проигрывании DSD, DSP плагины не работают. С новым выхлопом звук на DSD очень хороший, но ощущается некоторая нехватка баса, которую нельзя скомпенсировать, поэтому я преобразую DSD в PCM в плеере.
-
баса не хватает только на дсд? с пцм все нормально?
-
В плане АЧХ нет большой разницы между PCM и DSD. Просто я пользуюсь эквалайзером, а он с DSD не работает.
-
в плане, что лучше дсд или пцм я не могу сделать выбор. все зависит от исходного материла итд.
-
Здравствуйте! Решился переделать родной контроллер под Arduino.
Куплен Arduino Nano. Но вот залить прошивку пока не смог. В теме есть инструкция под Visual Studio 10 . Студию я скачал, а вот Arduino For Visual Studio ссылка не действует. И для Студии 10 его уже нету в интернете. Может у кого осталось на ПК?
Пробовал Visual Studio 19, так там всё по другому. Пока не разобрался.
-
Или может, кто подскажет, как в 2023 году залить эту прошивку? :drink: Я с программированием не связан вообще, но по чётким шагам справлюсь без проблем :yes:
-
Насколько помню, у Гайвера была инструкция по заливке. Посмотри на его сайте.
-
Посмотрим. Спасибо! Надо потихоньку за что-то цепляться и идти к истине :)