Страница 36 из 59 Первая ... 26343536373846 ... Последняя
Показано с 701 по 720 из 1170

Тема: Цифровой транспорт с открытым кодом на NanoPI-Neo*

  1. #1 Показать/скрыть первое сообщение.
    Завсегдатай
    Автор темы
    Аватар для Nikkov
    Регистрация
    01.11.2005
    Адрес
    Омск, Сибирь
    Возраст
    51
    Сообщений
    1,358

    По умолчанию Цифровой транспорт с открытым кодом на NanoPI-Neo*

    В этой ветке планирую собирать информацию про создание аудиоплеера на базе серии NanoPi-Neo от FriendlyArm.
    Готовые образы можно найти по адресу: https://drive.google.com/drive/folde...zA?usp=sharing

    На данный момент реализованы:
    1. Драйвер I2S в ядре 4.11 с поддержкой вывода 16-24 бит, 44.1-192 кГц, в мастере и в слэйве. Исходные тексты ядра.
    2. Собран экспериментальный образ системы с Volumio2 для платы NanoPi NEO2 с 64-битным armv8 ядром и 32-битным userspace для armv7. В этом образе, по умолчанию, I2S сконфигурирован в мастере, для конфигурации в слэйве необходимо переименовать файлы sun50i-h5-nanopi-neo2.dtb в sun50i-h5-nanopi-neo2-master.dtb, а sun50i-h5-nanopi-neo2-slave.dtb в sun50i-h5-nanopi-neo2.dtb соответственно. Образ также проверил с USB DAC-ом - работает и 44х16, и 192х24.
    3. Собран образ системы с Volumio2 для плат NanoPi NEO и NanoPi NEO-AIR архитектуры armv7. В этом образе, по умолчанию, I2S сконфигурирован в мастере, для конфигурации в слэйве необходимо переименовать файлы sun8i-h3-nanopi-neo.dtb в sun8i-h3-nanopi-neo-master.dtb, а sun8i-h3-nanopi-neo(-air)-slave.dtb в sun8i-h3-nanopi-neo(-air).dtb соответственно.
    4. Разработана плата формирователя/изолятора для семейства NanoPi-Neo, платы которого совместимы по выводам друг с другом. На плате есть возможность установить собственные генераторы или завести их через гальваническую развязку из ЦАП-а. Возможна работа платы и когда SOC I2S в мастере, тогда она просто обеспечивает гальваническую развязку. За основу платы взята схема и проект для ПЛИС аналогичной платы для cubietruck-а от Анатолия (Wired), за публикацию которых ему огромное спасибо.

    Фото платы NanoPi-Neo2 с установленной платой формирователя:
    Нажмите на изображение для увеличения. 

Название:	clock.jpg 
Просмотров:	3198 
Размер:	488.2 Кб 
ID:	303657
    Схема платы формирователя:
    neoclock - Project.pdf
    Проект ПЛИС:
    CPLD.ZIP
    Проект схема + печатная плата в DesignSpark + архив с герберами
    pcb_arch.zip

    Так как периодически в личке спрашивают про платы, то напишу здесь: платами я не торгую, вся необходимая информация по их самостоятельному изготовлению выложена здесь.
    Последний раз редактировалось Nikkov; 21.07.2018 в 17:18.
    Электроника наука слабоизученная (c)
    Неизвестный специалист антенного хозяйства по поводу периодического пропадания сигнала в коллективной антенне

  2. #701
    Новичок Аватар для kvnik
    Регистрация
    23.11.2005
    Адрес
    Донецк
    Сообщений
    56

    По умолчанию Re: Цифровой транспорт с открытым кодом на NanoPI-Neo*

    1. LRCK инвертирован для I2S и DSP, для LJ RJ правильно. ( в datasheet )
    Вначале в ядре было правильно для LJ RJ, начиная с какой-то версии стало правильно для I2S и DSP.

    2. LJ RJ - выравнивание slot в LRCK. В ядре slot_width = LRCK = params_physical_width.
    Для s24_le все три параметра равны 32, поэтому RJ не получим.

    3. В BCLK master режиме LRCK правильно считается только для I2S и DSP

    Поправил это.
    Добавил BCLK slave and LRCLK master.
    Написал ALSA плагин который выдает bit interleave, т.е. (left-bit)(right-bit)...(left-bit)(right-bit)...
    (еще он может выдавать заданный pattern, для отладки-диагностики удобно)

    ЦАП 2 х pcm1794 в режиме external Digital Filter. Был в наличии генератор на 768fs,
    получилась простенькая конструкция на стандартной логике для формата s24_3 8fs.
    (До этого был Болгарский xmos, сейчас нравится больше, может генератор получше)

    DSD должно работать, проверить нет на чем

    Как-то так
    Если надо, выложу исходники

  3. #702
    Завсегдатай
    Автор темы
    Аватар для Nikkov
    Регистрация
    01.11.2005
    Адрес
    Омск, Сибирь
    Возраст
    51
    Сообщений
    1,358

    По умолчанию Re: Цифровой транспорт с открытым кодом на NanoPI-Neo*

    Цитата Сообщение от kvnik Посмотреть сообщение
    1. LRCK инвертирован для I2S и DSP, для LJ RJ правильно. ( в datasheet )
    Вначале в ядре было правильно для LJ RJ, начиная с какой-то версии стало правильно для I2S и DSP.

    2. LJ RJ - выравнивание slot в LRCK. В ядре slot_width = LRCK = params_physical_width.
    Для s24_le все три параметра равны 32, поэтому RJ не получим.

    3. В BCLK master режиме LRCK правильно считается только для I2S и DSP

    Поправил это.
    Добавил BCLK slave and LRCLK master.
    Написал ALSA плагин который выдает bit interleave, т.е. (left-bit)(right-bit)...(left-bit)(right-bit)...
    (еще он может выдавать заданный pattern, для отладки-диагностики удобно)

    ЦАП 2 х pcm1794 в режиме external Digital Filter. Был в наличии генератор на 768fs,
    получилась простенькая конструкция на стандартной логике для формата s24_3 8fs.
    (До этого был Болгарский xmos, сейчас нравится больше, может генератор получше)

    DSD должно работать, проверить нет на чем

    Как-то так
    Если надо, выложу исходники
    Да, интересно посмотреть.

    Инвертирование LRCK задается в DT, что я и сделал в свежих сборках для Volumio.
    С поддержкой выравнивания для RJ разобраться малой кровью не получилось - меняешь для H3, H5 (нанопи) - ломаешь для A20 (кубитрак).

    По поводу плагина - это надо будет демультиплексор ставить, чтобы делить чередующиеся биты в DATA на два потока?
    Электроника наука слабоизученная (c)
    Неизвестный специалист антенного хозяйства по поводу периодического пропадания сигнала в коллективной антенне

  4. #703
    Новичок Аватар для kvnik
    Регистрация
    23.11.2005
    Адрес
    Донецк
    Сообщений
    56

    По умолчанию Re: Цифровой транспорт с открытым кодом на NanoPI-Neo*

    Цитата Сообщение от Nikkov Посмотреть сообщение
    Инвертирование LRCK задается в DT
    Да, просто путаница , контролировать надо.

    Цитата Сообщение от Nikkov Посмотреть сообщение
    С поддержкой выравнивания для RJ
    Я сделал slot_width = sr и ( LRCK = params_physical_width или LRCK=(DT)slot_width) )
    А20 - sun7i, он как sun8i идет?

    Цитата Сообщение от Nikkov Посмотреть сообщение
    По поводу плагина - это надо будет демультиплексор
    да, прицепил как у меня. Можно сделать чтоб скажем для DSD биты мешаются, остальные
    форматы идут как есть
    Нажмите на изображение для увеличения. 

Название:	h3.jpg 
Просмотров:	160 
Размер:	68.3 Кб 
ID:	371439
    i2s.zip
    biic.zip

    Вот еще мне понравилось https://elinux.org/R-Car/DT-Overlays и https://linux-sunxi.org/FEL

    Nikkov, для H5 и A20 логика инвертирования как у H3?
    Последний раз редактировалось kvnik; 07.05.2020 в 13:20.

  5. #704
    Завсегдатай
    Автор темы
    Аватар для Nikkov
    Регистрация
    01.11.2005
    Адрес
    Омск, Сибирь
    Возраст
    51
    Сообщений
    1,358

    По умолчанию Re: Цифровой транспорт с открытым кодом на NanoPI-Neo*

    Цитата Сообщение от kvnik Посмотреть сообщение
    Да, просто путаница , контролировать надо.


    Я сделал slot_width = sr и ( LRCK = params_physical_width или LRCK=(DT)slot_width) )
    А20 - sun7i, он как sun8i идет?


    да, прицепил как у меня. Можно сделать чтоб скажем для DSD биты мешаются, остальные
    форматы идут как есть
    Нажмите на изображение для увеличения. 

Название:	h3.jpg 
Просмотров:	160 
Размер:	68.3 Кб 
ID:	371439
    i2s.zip
    biic.zip
    Немного посмотрел код драйвера - diff с каким исходником делался? С ходу понять изменения не удалось, уже стал забывать что там к чему.

    Цитата Сообщение от kvnik Посмотреть сообщение
    Вот еще мне понравилось https://elinux.org/R-Car/DT-Overlays и https://linux-sunxi.org/FEL
    А что там интересного? Мне текущая поддержка оверлеев и на армбиан нравится.

    Цитата Сообщение от kvnik Посмотреть сообщение
    Nikkov, для H5 и A20 логика инвертирования как у H3?
    Да, H3 и H5 вообще как близнецы, A20 несколько отличается, но логика инвертирования как и у H3.
    Электроника наука слабоизученная (c)
    Неизвестный специалист антенного хозяйства по поводу периодического пропадания сигнала в коллективной антенне

  6. #705
    Новичок Аватар для kvnik
    Регистрация
    23.11.2005
    Адрес
    Донецк
    Сообщений
    56

    По умолчанию Re: Цифровой транспорт с открытым кодом на NanoPI-Neo*

    Цитата Сообщение от Nikkov Посмотреть сообщение
    diff с каким
    5.4.23 Модуль давно не меняется. Убрал инвертирование, чтоб легче читалось (этот патч не применить, вручную правил)
    sun4i-i2s-invert.zip


    Цитата Сообщение от Nikkov Посмотреть сообщение
    интересного
    Добавить-удалить оверлей без перезагрузки (или и в армбиан так сделано?). fel - загрузка образа без карты по USB.

    Цитата Сообщение от Nikkov Посмотреть сообщение
    логика инвертирования как и у H3
    Т.е. i2s pcm - инвертирован, LJ RJ - правильно (по даташиту)?. Напишу мантейнерам.

  7. #706
    Завсегдатай
    Автор темы
    Аватар для Nikkov
    Регистрация
    01.11.2005
    Адрес
    Омск, Сибирь
    Возраст
    51
    Сообщений
    1,358

    По умолчанию Re: Цифровой транспорт с открытым кодом на NanoPI-Neo*

    Цитата Сообщение от kvnik Посмотреть сообщение
    5.4.23 Модуль давно не меняется.
    Это с какого репозитория? На kernel.org, в основных ветках, код многолетней давности с минимальными правками, с поддержкой только 16 бит и там, простыми способами, не добавить 24 бита для всех процессоров и сигналов. У меня уже и нет надежды, что там что-то кардинально изменится, поэтому я взял код от codekipper-a (Marcus Cooper), он периодически отправляет патчи в основное ядро, но, насколько я понял, и он уже тоже потерял надежду довести это дело до ума.

    Цитата Сообщение от kvnik Посмотреть сообщение
    Добавить-удалить оверлей без перезагрузки (или и в армбиан так сделано?).
    Про "без перезагрузки" такого я там не увидел. Мне показалось речь просто про добавление оверлеев в DT. Ведь мало модифицировать DT, надо ведь еще реконфигурировать ядро в соответствии с изменениями?

    Цитата Сообщение от kvnik Посмотреть сообщение
    Т.е. i2s pcm - инвертирован, LJ RJ - правильно (по даташиту)?. Напишу мантейнерам.
    На pcm не обращал внимания, а то, что для i2s LR должен быть инвертирован, это свойство самого сигнала, а не конкретного SoC. По идее, в коде драйвера, при выборе I2S полярность LR должна инвертироваться, но так как этого нет, то приходится задавать в DT. Интересно, кстати, кто сейчас поддерживает этот код, кому жаловаться?
    Как мне кажется, поддержка всех SoC в одном модуле очень сильно осложняет его модификацию, так как исправление для одного SoC может поломать другой. И я с этим уже сталкивался на примере H3/H5 и A20.
    Электроника наука слабоизученная (c)
    Неизвестный специалист антенного хозяйства по поводу периодического пропадания сигнала в коллективной антенне

  8. #707
    Новичок Аватар для kvnik
    Регистрация
    23.11.2005
    Адрес
    Донецк
    Сообщений
    56

    По умолчанию Re: Цифровой транспорт с открытым кодом на NanoPI-Neo*

    Цитата Сообщение от Nikkov Посмотреть сообщение
    с какого репозитория
    i2s.zip ,который я давал, уже с примененным патчем.

    Цитата Сообщение от Nikkov Посмотреть сообщение
    простыми способами, не добавить 24 бита
    Если говорить про h3/h5, 24-32 бита это всего десяток строк.

    Цитата Сообщение от Nikkov Посмотреть сообщение
    "без перезагрузки" такого я там не увидел
    Именно это и интересно. (Да, ядро надо патчить).

    Цитата Сообщение от Nikkov Посмотреть сообщение
    для i2s LR должен быть инвертирован
    i2s - вначале низкий уровень, l(r)j - вначале высокий. Это стандарт и я ничего не должен инвертировать, и в даташите на h3/h5/a20 так нарисовано.
    А в реальности i2s инвертирован. В в последних ядрах "исправили" - инвертировали все форматы.

  9. #708
    Завсегдатай
    Автор темы
    Аватар для Nikkov
    Регистрация
    01.11.2005
    Адрес
    Омск, Сибирь
    Возраст
    51
    Сообщений
    1,358

    По умолчанию Re: Цифровой транспорт с открытым кодом на NanoPI-Neo*

    Цитата Сообщение от kvnik Посмотреть сообщение
    i2s.zip ,который я давал, уже с примененным патчем.
    Так я и спрашивал, откуда этот файл, на базе какого репозитория. Теперь понял, что с kernel.org.

    Цитата Сообщение от kvnik Посмотреть сообщение
    Если говорить про h3/h5, 24-32 бита это всего десяток строк.
    Для одного семейства да, скорее всего, но надо убедиться, что работает и на мастере, и на слэйве, учитывает то, что в слэйве внешний генератор может давать разные размеры кадра и т.д. А когда еще и другие SoC могут быть, то слишком много вариантов. В общем у меня не хватило терпения в свое время, главное мой сетап работает и ладно.

    Цитата Сообщение от kvnik Посмотреть сообщение
    Именно это и интересно. (Да, ядро надо патчить).
    Фича интересная, для экспериментов/отладки с устройствами/драйверами, не для обычного пользователя. А есть где-то описание как это работает, что надо в ядре поменять? По ссылкам на той странице походил, сходу ничего не нашел, кроме очередных репов ядра.

    Цитата Сообщение от kvnik Посмотреть сообщение
    i2s - вначале низкий уровень, l(r)j - вначале высокий. Это стандарт и я ничего не должен инвертировать, и в даташите на h3/h5/a20 так нарисовано.
    Ну да, я это и имел ввиду, что в драйвере должна быть настройка в соответствии со стандартом.
    Электроника наука слабоизученная (c)
    Неизвестный специалист антенного хозяйства по поводу периодического пропадания сигнала в коллективной антенне

  10. #709
    Новичок Аватар для kvnik
    Регистрация
    23.11.2005
    Адрес
    Донецк
    Сообщений
    56

    По умолчанию Re: Цифровой транспорт с открытым кодом на NanoPI-Neo*

    Цитата Сообщение от Nikkov Посмотреть сообщение
    По ссылкам на той странице походил, сходу ничего не нашел
    of.zip
    Цитата Сообщение от Nikkov Посмотреть сообщение
    У меня уже и нет надежды
    Да, Renesas, TI ... активно со своими soc-ами работают. Allwinner практически не продвигает, хотя h3 вроде неплохой

  11. #710
    Завсегдатай Аватар для Meta|_
    Регистрация
    08.03.2005
    Адрес
    Северная Голландия
    Возраст
    40
    Сообщений
    1,986

    По умолчанию Re: Цифровой транспорт с открытым кодом на NanoPI-Neo*

    Цитата Сообщение от kvnik Посмотреть сообщение
    Allwinner практически не продвигает
    По опыту с A20 у них для Андроид есть сильно другие ядра, но закрытые...
    ∇·D = ρ
    ∇·B = 0
    ∇xE = – ∂B/∂t
    ∇xH = j + ∂D/∂t
    © J. C. Maxwell, O. Heaviside

  12. #711
    Старый знакомый Аватар для ass77
    Регистрация
    08.01.2015
    Сообщений
    867

    По умолчанию Re: Цифровой транспорт с открытым кодом на NanoPI-Neo*

    Nikkov, в последних версиях волумио для нео эйр USB случаем не отключен? Как-то раньше не проверял - особой необходимости не было. Сегодня попробовал, на 2.672 и 2.703 флэшка не монтируется. Нашел какую-то старую версию - все нормально

  13. #712
    Завсегдатай
    Автор темы
    Аватар для Nikkov
    Регистрация
    01.11.2005
    Адрес
    Омск, Сибирь
    Возраст
    51
    Сообщений
    1,358

    По умолчанию Re: Цифровой транспорт с открытым кодом на NanoPI-Neo*

    Цитата Сообщение от ass77 Посмотреть сообщение
    Nikkov, в последних версиях волумио для нео эйр USB случаем не отключен? Как-то раньше не проверял - особой необходимости не было. Сегодня попробовал, на 2.672 и 2.703 флэшка не монтируется. Нашел какую-то старую версию - все нормально
    Я не пробовал проверять USB в сборках на базе армбиан. Надо будет посмотреть, может это в сборках для всех плат так. В нео2 тоже не работает?
    Электроника наука слабоизученная (c)
    Неизвестный специалист антенного хозяйства по поводу периодического пропадания сигнала в коллективной антенне

  14. #713
    Старый знакомый Аватар для ass77
    Регистрация
    08.01.2015
    Сообщений
    867

    По умолчанию Re: Цифровой транспорт с открытым кодом на NanoPI-Neo*

    Нео2 пока нет возможности проверить флэшку. Wi-fi свисток в заднем usb работал

  15. #714
    Частый гость Аватар для Chaa
    Регистрация
    23.08.2006
    Адрес
    Курган
    Сообщений
    313

    По умолчанию Re: Цифровой транспорт с открытым кодом на NanoPI-Neo*

    В армбиан по умолчанию включен только один юсб порт, который запаян в плату. Порты, выведенные на контакты платы нужно включать самому.
    То есть в armbianEnv.txt добавить необходимые оверлеи:
    Код:
    overlays=usbhost0 usbhost1 usbhost2 usbhost3
    Можно добавить только один из них, который реально используется.

  16. #715
    Завсегдатай
    Автор темы
    Аватар для Nikkov
    Регистрация
    01.11.2005
    Адрес
    Омск, Сибирь
    Возраст
    51
    Сообщений
    1,358

    По умолчанию Re: Цифровой транспорт с открытым кодом на NanoPI-Neo*

    Да, действительно, какой USB не работает? Я уже подзабыл, что на air USB-A разъема нет, есть либо микро USB-OTG, либо пины. На нео/нео2 - проверил, USB-A флэшку монтируют нормально.
    Электроника наука слабоизученная (c)
    Неизвестный специалист антенного хозяйства по поводу периодического пропадания сигнала в коллективной антенне

  17. #716
    Старый знакомый Аватар для ass77
    Регистрация
    08.01.2015
    Сообщений
    867

    По умолчанию Re: Цифровой транспорт с открытым кодом на NanoPI-Neo*

    На нео2 задний работает, проверил. На нео air естественно те, которые на гребенке.
    Включение по вышеуказанному совету попробую

    ---------- Сообщение добавлено 12:12 ---------- Предыдущее сообщение было 11:55 ----------

    Цитата Сообщение от Chaa Посмотреть сообщение
    То есть в armbianEnv.txt добавить необходимые оверлеи:
    Включил usbhost2, все заработало. Спасибо.

  18. #717
    Частый гость Аватар для Chaa
    Регистрация
    23.08.2006
    Адрес
    Курган
    Сообщений
    313

    По умолчанию Re: Цифровой транспорт с открытым кодом на NanoPI-Neo*

    Цитата Сообщение от Nikkov Посмотреть сообщение
    На нео/нео2 - проверил, USB-A флэшку монтируют нормально.
    Там принцип такой, что если разъем юсб запаян на плате, то он включен по-умолчанию, а если юсб выведен на контакты GPIO, то по умолчанию он отключен.
    Соответсвенно, в Neo Air нужно включать.

  19. #718
    Частый гость Аватар для LexaryStyle
    Регистрация
    25.07.2006
    Сообщений
    452

    По умолчанию Re: Цифровой транспорт с открытым кодом на NanoPI-Neo*

    Установил образ на NanoPi NEO Plus2, очень часто при включении плеер начинает играть но на шине I2S ничего нет вообще, приходится перезагружать весь NanoPi NEO Plus2... Кто-то сталкивался? Куда копать?

  20. #719
    Старый знакомый Аватар для ass77
    Регистрация
    08.01.2015
    Сообщений
    867

    По умолчанию Re: Цифровой транспорт с открытым кодом на NanoPI-Neo*

    Цитата Сообщение от LexaryStyle Посмотреть сообщение
    очень часто при включении плеер начинает играть но на шине I2S ничего нет вообще, приходится перезагружать весь NanoPi NEO Plus2...
    нео2 и эир на последних версиях volumio бывает. Иногда помогает в разделе "аудио" переткнуть устройство вывода

  21. #720
    Новичок Аватар для MiRoN
    Регистрация
    05.01.2006
    Адрес
    Krasnoyarsk
    Возраст
    68
    Сообщений
    60

    По умолчанию Re: Цифровой транспорт с открытым кодом на NanoPI-Neo*

    Цитата Сообщение от ass77 Посмотреть сообщение
    нео2 и эир на последних версиях volumio бывает. Иногда помогает в разделе "аудио" переткнуть устройство вывода
    У меня NanoPi NEO - та же история.
    "Перетык" нужно делать в режиме "стоп" - помогает практически всегда.

Страница 36 из 59 Первая ... 26343536373846 ... Последняя

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •