12-29-2023, 09:56 AM
XMOS + AK4493 с нуля для ради удовольствия и науки
12-29-2023, 12:48 PM
(Сообщение последний раз редактировалось: 12-29-2023, 01:48 PM ActiveStalker.)
Спасибо за советы, пока думал нарисовалась у меня в голове такая картина. Последовательно линии +5v USB LC фильтр из бида, конденсатора и демпфирующей RC. Симуль легко посчитает эту цепь. Дальше два стаба. 0v9 Для процессора - ставлю как можно ближе к шине питания, и без всяких последовательных резисторов питаю эту цепь+ 100n c каждого пина на землю как рекомендуют Хмосы. С этой же шины нужно взять один вольт на PLL процессора. В инструкции просят чтобы оно было чистым. Сначала предлагали 4R7+1u, потом стали рекомендовать бид 1кОм+ 1u.
Второй стаб 3.3 вольта - близко к шине процессора, напрямую питает эту шину.Возможно 3.3в для USB приемника в процессоре через 4R7+1u(в инструкции они это не просят, но будет логично). Флеш и осцилятор, как отдельные микры через RC 4R7+1u. То есть хоть какое - то разделение
The VDD supply must ramp from 0 V to its final value within 10 ms to ensure
correct startup.
The VDDIO and OTP_VCC supply must ramp to its final value before VDD reaches
0.4 V.
Еще есть два такие требования, которые нужно выполнять. Все питания должны прийти в норму при старте не дольше чем через 10 мс, а 3.3 в должно стартануть чуть быстрее чем 0.9в. Значит в управляющем электроде 0.9в стаба нужно ввести небольшой конденсатор для задержки.
Первые наброски части схемы до цапа
Второй стаб 3.3 вольта - близко к шине процессора, напрямую питает эту шину.Возможно 3.3в для USB приемника в процессоре через 4R7+1u(в инструкции они это не просят, но будет логично). Флеш и осцилятор, как отдельные микры через RC 4R7+1u. То есть хоть какое - то разделение
The VDD supply must ramp from 0 V to its final value within 10 ms to ensure
correct startup.
The VDDIO and OTP_VCC supply must ramp to its final value before VDD reaches
0.4 V.
Еще есть два такие требования, которые нужно выполнять. Все питания должны прийти в норму при старте не дольше чем через 10 мс, а 3.3 в должно стартануть чуть быстрее чем 0.9в. Значит в управляющем электроде 0.9в стаба нужно ввести небольшой конденсатор для задержки.
Первые наброски части схемы до цапа
12-29-2023, 02:04 PM
(Сообщение последний раз редактировалось: 12-29-2023, 02:06 PM Black_Jack.)
(12-29-2023, 12:48 PM)ActiveStalker Написал: Спасибо за советы, пока думал нарисовалась у меня в голове такая картина. Последовательно линии +5v USB LC фильтр из бида, конденсатора и демпфирующей RC. Симуль легко посчитает эту цепь. Дальше два стаба. 0v9 Для процессора - ставлю как можно ближе к шине питания, и без всяких последовательных резисторов питаю эту цепь+ 100n c каждого пина на землю как рекомендуют Хмосы. С этой же шины нужно взять один вольт на PLL процессора. В инструкции просят чтобы оно было чистым. Сначала предлагали 4R7+1u, потом стали рекомендовать бид 1кОм+ 1u.
Второй стаб 3.3 вольта - близко к шине процессора, напрямую питает эту шину.Возможно 3.3в для USB приемника в процессоре через 4R7+1u(в инструкции они это не просят, но будет логично). Флеш и осцилятор, как отдельные микры через RC 4R7+1u. То есть хоть какое - то разделение
The VDD supply must ramp from 0 V to its final value within 10 ms to ensure
correct startup.
The VDDIO and OTP_VCC supply must ramp to its final value before VDD reaches
0.4 V.
Еще есть два такие требования, которые нужно выполнять. Все питания должны прийти в норму при старте не дольше чем через 10 мс, а 3.3 в должно стартануть чуть быстрее чем 0.9в. Значит в управляющем электроде 0.9в стаба нужно ввести небольшой конденсатор для задержки.
Первые наброски части схемы до цапа
С9, С28 (1 мкФ) я б увеличил до 10... Или проверьте по даташиту, какую емкость Ваш конденсатор будет иметь при соотвествующем напряжении на выходе.
На входе AP7366 не видно емкостей.
Да и по VBUS (USB) что-то поставить побольше, чем 100 нФ.
Єто то, что в глаза бросилось. Более бдительные граждане дополнят...
12-29-2023, 04:13 PM
(Сообщение последний раз редактировалось: 12-29-2023, 04:58 PM ActiveStalker.)
(12-29-2023, 09:05 AM)Altor Audio Написал: 5в с USB идет на него, и плюс на стаб 1.8в (в одних устройствах линейный, 1117-5.0, в других степ-даун) а с него налинейный 1в.Да, я заметил. На 1в нужно два стаба последовательно, иначе они по рассеиваемой мощности не вытягивают эту линию а оно всё очень прожерливое, до 400мА в сумме. Вы имели в виду не 1117-5.0 а 1117-1.8? Тот же 5 вольтовый. Может есть смысл запускать его на 400 мГц для таких простых задач. В инструкции пишут, что ток потребления будет на 65 мА меньше
1.8 мне нужно в платах на XS1, там от него PHY питается. В патах с 208-м я не стал менять, хотя само 1.8 не используется.
12-30-2023, 12:56 AM
Цитата:Вы имели в виду не 1117-5.0 а 1117-1.8?
Да, конечно 1.8 описка.
12-30-2023, 05:13 PM
(Сообщение последний раз редактировалось: 12-30-2023, 05:22 PM ActiveStalker.)
А что если не секрет делать с ногой RST_N? в инструкции говорят ее нужно держать в низком логическом уровне до полного установления всех напряжений после включения. Как я понимаю нужно время задающую RC поставить, или даже может быть какое то специализированное устройство, например ADM1085
И еще один вопрос. Хмосы формируют питание 1 вольт PWM преобразователем (наверное не хотят рассеивать ~1.5вт на стабах). Я часто встречаю это в их EVO бордах. Внизу схемы видно как они цепляются портом через 150 кОм к управляющему выводу схемы преобразователя. И там список напряжений в зависимости от состояния порта. Возможно это плавный запуск, или уменьшение\увеличение мощности процессора, тока потребления - где то об этом тоже читал. Но разве порт может иметь столько состояний HI, PullUp, Hi-z, PullDown, Low ? Как вы думаете для чего это сделано? и как одновременно могут быть подключены PullUp и PullDown? разве есть программное определение состояния Hi-Z? (видел только логическое высокое и низкое, еще где - то читал, что при включении вроде бы все порты в пуллдауне какое то время)
И еще один вопрос. Хмосы формируют питание 1 вольт PWM преобразователем (наверное не хотят рассеивать ~1.5вт на стабах). Я часто встречаю это в их EVO бордах. Внизу схемы видно как они цепляются портом через 150 кОм к управляющему выводу схемы преобразователя. И там список напряжений в зависимости от состояния порта. Возможно это плавный запуск, или уменьшение\увеличение мощности процессора, тока потребления - где то об этом тоже читал. Но разве порт может иметь столько состояний HI, PullUp, Hi-z, PullDown, Low ? Как вы думаете для чего это сделано? и как одновременно могут быть подключены PullUp и PullDown? разве есть программное определение состояния Hi-Z? (видел только логическое высокое и низкое, еще где - то читал, что при включении вроде бы все порты в пуллдауне какое то время)
12-31-2023, 12:15 AM
(Сообщение последний раз редактировалось: 01-01-2024, 01:12 AM Altor Audio.)
Цитата: и как одновременно могут быть подключены PullUp и PullDown?
Почему "одновременно"? Нет конечно, но этого и не надо.
Цитата:разве есть программное определение состояния Hi-Z?
Разумеется, причем у любых МК. Называется "вход".
12-31-2023, 01:59 PM
(Сообщение последний раз редактировалось: 12-31-2023, 02:00 PM ActiveStalker.)
Начал сегодня понемногу разбираться с питанием и стартом. Степпинг питания ядра нужен для разных режимов тока потребления (графика зависимости нигде не нашел), но что - то мне подсказывает, нужно поставить 0.92...0.95 вольта и забить на любое управление, а то история чем - то напоминает оверклокинг процессоров Интел. А вот с супервизором до конца не понял. То есть понял RST_N должна быть в низком логическом до тех пор, пока напряжение ядра не станет в норму + какое - то небольшое время. Ну и при выключении, например если питание ядра ниже 0.85 вольта - поставить процессор в состояние сброса.
12-31-2023, 05:33 PM
(12-31-2023, 01:59 PM)ActiveStalker Написал: Степпинг питания ядраСтеппинг питания ядра-->Для простых кирпичей это обычно возможность немного оптимизировать потребление в связи с тем что часть из них может быть немного быстрее, часть-медленнее. В связи с разбросом тех параметров процесса при производстве. Возможно там могут быть регистры/фьюзы, которые можно прочесть и слегка подстроить питание под конкретный экземпляр кирпича. Если это не очевидно из документации-просто поставьте номинальное значение, оно должно быть в даташите.
(12-31-2023, 01:59 PM)ActiveStalker Написал: А вот с супервизором до конца не понялЕсли использовать супервизор - всё просто. Если не сильно извращаться-питания стартуют за несколько миллисекунд. Если надо соблюсти вполне определённую последовательность старта напряжений-простейший вариант это запитывать EN следующего от Power-Good предыдущего. Или от его выхода, если нет Power-Good пина. Только проверьте чтоб логические уровни были в пределах допустимого. Исходя из последовательности старта напряжений, добавьте что-нибудь порядка 10 миллисекунд и получите время супервизора. 10 миллисекунд обычно более чем достаточно для старта задающего генератора. Ну а когда будете отлаживать-проверите что времени хватает для того чтоб сигнал генератора выглядел адекватно до ресета.
Кстати, какого размера (футпринт) Вы будете использовать керамику для развязки питания? Судя по тому что Вы скопировали с Ап-нота, принцип развязки у оригинала-от балды, но по кондюку на каждую ножки питания. Для этого скорее всего надо использовать 0201. Что я предполагаю в Вашем случае проблематично. Поэтому надо будет глянуть как это оптимизнуть. Ну и 0.1uF -само по себе совсем не оптимально, даже в 0201 кузове.
Nobody Is Perfect
01-01-2024, 01:22 AM
(Сообщение последний раз редактировалось: 01-01-2024, 01:27 AM Altor Audio.)
Цитата: Если надо соблюсти вполне определённую последовательность старта напряжений-простейший вариант это запитывать EN следующего от Power-Good предыдущего.
Я в свое время нагородил супервизор, на TPS3106K33 - очень удобная штука! Так его практически без изменений 10 лет и ставлю на иксмосовских платах.
Контролирует 3.3в, после чего включает 1.0в, если он ОК- снимает сброс с проца. Плюс еще можно снаружи сброс подать на 3-ю ногу.
Я еще свой супервизрр на наличие внешнего мастерклока сделал (Clock Monitor), при его отсутствии переключатет на внутрненний осциллятор.
(Без этого, со старыми ЗеСайконовкими драйверами, при попытке воспроизведения, плеер вылетал с ошибкой).
Но это если делать по все правилам. А если посмотреть на масссу серийных интерфейсов, даже дорогих, а тем более китайских, то там ничего этого нет.
И все довольны....
Цитата:. Для этого скорее всего надо использовать 0201.
У меня почти везде 0805, кое-где 0603.
01-01-2024, 08:34 AM
(Сообщение последний раз редактировалось: 01-01-2024, 09:16 AM ActiveStalker.)
(12-31-2023, 05:33 PM)begemot Написал: Кстати, какого размера (футпринт) Вы будете использовать керамику для развязки питания? Судя по тому что Вы скопировали с Ап-нота, принцип развязки у оригинала-от балды, но по кондюку на каждую ножки питания. Для этого скорее всего надо использовать 0201. Что я предполагаю в Вашем случае проблематично. Поэтому надо будет глянуть как это оптимизнуть. Ну и 0.1uF -само по себе совсем не оптимально, даже в 0201 кузове.Добрый день. С Наступившим... Я смотрел несколько дизайнов которые есть в интернете, обычно там не на каждую ногу. Некоторые совсем рядом, можно один общий на 2-3 ноги. Вообще зависит от того как ляжет трассировка. Я планировал до Нового Года полностью нарисовать схему USB части, но было много нового, не успел. Буквально вчера споткнулся об супервизор. До сих пор не разобрался как он работает и как его включать, но это вопрос времени. Посмотрим, если там не дорожка а полигон, то смысла вешать на каждую ногу не вижу, в процессе решим. А вот стаб на 1 вольт прийдется наверное ставить "преобразовательный" с хорошим фильтром. Иначе нерациональный расход энергии, и нужно будет на чем - то рассеивать 1.5 вт. Тем более если питаться от USB.
(01-01-2024, 01:22 AM)Altor Audio Написал: Я в свое время нагородил супервизор, на TPS3106K33 - очень удобная штука!А я вчера вместо того, чтобы Новый Год встречать разбирался, подобрал ADM1085. Вроде бы то что надо. Порог 0.6в. Ставлю делитель на вход так, чтоб при 0.85 включало/ выключало, но с алгоритмами не всё ясно
(01-01-2024, 01:22 AM)Altor Audio Написал: Но это если делать по все правилам. А если посмотреть на масссу серийных интерфейсов, даже дорогих, а тем более китайских, то там ничего этого нет.Да нет, зачем экономить 5 копеек. Разберусь и нормально сделаю
И все довольны....
Цитата:Контролирует 3.3в, после чего включает 1.0в, если он ОК- снимает сброс с проца. Плюс еще можно снаружи сброс подать на 3-ю ногу.
Я еще свой супервизрр на наличие внешнего мастерклока сделал (Clock Monitor), при его отсутствии переключатет на внутрненний осциллятор.
(Без этого, со старыми ЗеСайконовкими драйверами, при попытке воспроизведения, плеер вылетал с ошибкой).
А вот теперь хотелось бы понять как оно должно быть. Из того, что Вы написали я понял следующее. Сначала включается 3.3в, запитывает часть процессора память и супервизор (проц еще в ресете), далее через пин EN включает стаб 1 вольт и "супервизирует" его до тех пор пока напряжение не стабилизируется, потом какое - то время ждет и переводит RST_N в высокое. Далее процессор запускается. Я правильно всё понял?
Или Вы имели в виду 3.3в питание и 1в запускаются каждое своим ходом, но супервизор переведет RST_N в высокое только после того, как они оба станут в норму?
01-01-2024, 09:23 AM
Цитата:Я правильно всё понял?
Да.
01-02-2024, 08:30 AM
(Сообщение последний раз редактировалось: 01-02-2024, 08:32 AM ActiveStalker.)
Пока что вот так получилось:
В первую очередь подается питание USB_5V, далее запускается стабилизатор 3.3 вольта.
1) Когда его напряжение стало выше 0.4 в включается супервизор и ставит в низкий логический уровень управляющий вход EN - 0.9 вольтового преобразователя 61102 и процессор в режим ресета клеммой RST_N. (питание 0.9 вольт еще отсутствует)
2)Когда напряжение на выходе 3.3в стабилизатора стало 2.95 вольта, и прошло время задержки супервизора ~100мс (осцилятор 24 мГц уже стабильно работает) вход EN 0.9 вольтового становится в высокий логический и через >50мс он включается
3)Когда напряжение на выходе 0.9 вольтового преобразователя достигло значения выше 0.8 вольта - делитель R8 R9 формирует порог 0.551в второго канала супервизора и через~ 100мс включает процессор высоким уровнем входа RST_N.
При выключении.... Если питание 3.3 вольта будет меньше 2.9в супервизор отключает 0.9в, после чего процессор переходит в режим ресета. Если при выключении питание 0.9 вольт снизится ниже 0.8 раньше чем 3.3 до 2.9 процессор перейдет в режим сброса еще быстрее.
Супервизор отключается в последнюю очередь, когда питание ниже 0.4 в и управлять уже нечем.
Ну как - то так. Номиналы 61102 взял из EVO борда. L1 C27 там не по даташиту. Видимо из за уменьшения номиналов резисторов делителя в десять раз
В первую очередь подается питание USB_5V, далее запускается стабилизатор 3.3 вольта.
1) Когда его напряжение стало выше 0.4 в включается супервизор и ставит в низкий логический уровень управляющий вход EN - 0.9 вольтового преобразователя 61102 и процессор в режим ресета клеммой RST_N. (питание 0.9 вольт еще отсутствует)
2)Когда напряжение на выходе 3.3в стабилизатора стало 2.95 вольта, и прошло время задержки супервизора ~100мс (осцилятор 24 мГц уже стабильно работает) вход EN 0.9 вольтового становится в высокий логический и через >50мс он включается
3)Когда напряжение на выходе 0.9 вольтового преобразователя достигло значения выше 0.8 вольта - делитель R8 R9 формирует порог 0.551в второго канала супервизора и через~ 100мс включает процессор высоким уровнем входа RST_N.
При выключении.... Если питание 3.3 вольта будет меньше 2.9в супервизор отключает 0.9в, после чего процессор переходит в режим ресета. Если при выключении питание 0.9 вольт снизится ниже 0.8 раньше чем 3.3 до 2.9 процессор перейдет в режим сброса еще быстрее.
Супервизор отключается в последнюю очередь, когда питание ниже 0.4 в и управлять уже нечем.
Ну как - то так. Номиналы 61102 взял из EVO борда. L1 C27 там не по даташиту. Видимо из за уменьшения номиналов резисторов делителя в десять раз
01-02-2024, 08:58 AM
(Сообщение последний раз редактировалось: 01-02-2024, 08:58 AM Black_Jack.)
AP61102
1. На странице 17 даташита есть рекомендуемые номиналы.
На страничке https://www.diodes.com/part/view/AP61102#tab-details есть єксель-калькулятор.
2. С26 и С28 я бы ставил керамические (0805). Например, TDK C2012X7R1A106K125AE
3. C SW в землю поставил бы 0603 плейсхолдеры для RC-снаббера (мне лично было б интересно поиграться)
1. На странице 17 даташита есть рекомендуемые номиналы.
На страничке https://www.diodes.com/part/view/AP61102#tab-details есть єксель-калькулятор.
2. С26 и С28 я бы ставил керамические (0805). Например, TDK C2012X7R1A106K125AE
3. C SW в землю поставил бы 0603 плейсхолдеры для RC-снаббера (мне лично было б интересно поиграться)
01-02-2024, 09:43 AM
01-02-2024, 03:12 PM
(Сообщение последний раз редактировалось: 01-02-2024, 03:27 PM ActiveStalker.)
(01-01-2024, 01:22 AM)Altor Audio Написал: Я еще свой супервизрр на наличие внешнего мастерклока сделал (Clock Monitor), при его отсутствии переключатет на внутрненний осциллятор.
(Без этого, со старыми ЗеСайконовкими драйверами, при попытке воспроизведения, плеер вылетал с ошибкой).
Вот тут не совсем понял. Скорей всего будет такая история, что ЦАП питаться от отдельных источников, а процессорная часть от УСБ. При переходе компа в спящий режим питание с USB будет снято, при выходе - снова включаться. В это время осцилятор цапа всегда будет работать. А может быть и такое, что на проц питание подано а на ЦАП - нет. Очень хотелось бы избежать зависаний и ошибок от полувключенных состояний. Кроме этого изоляторы питаются с обоих сторон. Если на одной питания нет, то сигнал ни в одну сторону не пройдет. На что в этом случае нужно обратить внимание? Первое, что приходит в голову - это еще один канал супервизора. Эдакий сигнал "ОК" со стороны ЦАПА без которого проц не выйдет из ресета. Более "хреновый" вариант - поставить кнопку ручного сброса процессора, чтобы не перезапускать питанием, или супервизор мастерклока...
01-02-2024, 03:38 PM
Цитата:Эдакий сигнал "ОК" со стороны ЦАПА без которого проц не выйдет из ресета.
Поскольку с нынешними драйверами плеера уже не вылетают, то в своей 11-й модели я так и сделал - просто оптрон, у которго на входе 3.3в питания ЦАПа, а с другой - сигнал на MR супервизора.
01-04-2024, 05:01 PM
Пора потихоньку финализировать USB часть. Процесс был долгим поскольку с нуля пришлось разбираться в том как всё это работает. Но кое-что получилось.
По питанию: Мне показалось правильным напрямую запитать от источника линии 3.3в и 0.9в, поскольку там наибольший ток и они наиболее критичны. Отдельные блоки (генератор, развязки флешка) развязаны RC цепями с футпринтом небольших электролитов+керамика. В дальнейшем я оптимизирую номиналы с точки зрения добротностей получившихся контуров и эффективности развязки и импеданса. Супервизоры на все линии питания + сигнал готовности со стороны ЦАП через оптопару.
Функционал: Пока что полная версия XTAG, поскольку я буду собирать плату частями и пытаться отлаживать еще до распайки ЦАПА. Вывел 8 светодиодов для разного рода индикации, при написании кода прошивки разберусь что ими показывать. Мучает меня совесть по поводу свободных портов. Туда можно предусмотреть например энкодер для цифровой регулировки уровня громкости. И если сильно захотеть, можно сделать переключаемую возможность для внешнего питания УСБ части. Когда будет время я почитаю, может быть и это решу. С энкодером сложнее я понятия не имею как его подключать и как оно работает.
Вывод данных: I2s, i2c. И еще наверное будут перемычки для выбора i2s или i2s LJ, и перемычки для переключения вариантов ЦФ ЦАПА. Это я решу когда подробней разберусь в том как работает 4493 и чем прийдется управлять.
По питанию: Мне показалось правильным напрямую запитать от источника линии 3.3в и 0.9в, поскольку там наибольший ток и они наиболее критичны. Отдельные блоки (генератор, развязки флешка) развязаны RC цепями с футпринтом небольших электролитов+керамика. В дальнейшем я оптимизирую номиналы с точки зрения добротностей получившихся контуров и эффективности развязки и импеданса. Супервизоры на все линии питания + сигнал готовности со стороны ЦАП через оптопару.
Функционал: Пока что полная версия XTAG, поскольку я буду собирать плату частями и пытаться отлаживать еще до распайки ЦАПА. Вывел 8 светодиодов для разного рода индикации, при написании кода прошивки разберусь что ими показывать. Мучает меня совесть по поводу свободных портов. Туда можно предусмотреть например энкодер для цифровой регулировки уровня громкости. И если сильно захотеть, можно сделать переключаемую возможность для внешнего питания УСБ части. Когда будет время я почитаю, может быть и это решу. С энкодером сложнее я понятия не имею как его подключать и как оно работает.
Вывод данных: I2s, i2c. И еще наверное будут перемычки для выбора i2s или i2s LJ, и перемычки для переключения вариантов ЦФ ЦАПА. Это я решу когда подробней разберусь в том как работает 4493 и чем прийдется управлять.
01-05-2024, 07:28 AM
Не вижу пуллапов на i2C и (скорее всего) надо что-то на JTAG.
01-05-2024, 08:20 AM
(01-05-2024, 07:28 AM)Black_Jack Написал: Не вижу пуллапов на i2C и (скорее всего) надо что-то на JTAG.Да да, есть такое... и не разобрался до конца что делать с клеммой USB_VBUS. Пока что крутятся в голове подозрения о том, что это разрешающий передачу по УСБ сигнал. Если там единица - пуллапы с D+ D- убираются и разрешается обмен данными. Но не совсем понятно что с ним делать в случае внешнего питания или питания от шины. Пытаюсь разобраться сейчас.
« Предыдущая | Следующая »
Возможно похожие темы ...
Тема / Автор
Ответы
Просмотры
Последний пост
Пользователи, просматривающие эту тему: 2 Гость(ей)