-
Постов
2 650 -
Зарегистрирован
-
Победитель дней
2
Сообщения, опубликованные repstosw
-
-
13 minutes ago, HardEgor said:
Значит надо электролит побольше поставить, чтобы сглаживал всплески, а не городить огород со всякими стабилизаторами. Нет, оно конечно стабилизатор штука нужная, но стоит решать проблему, а не замазывать её.)
А импульснику плохо не станет? От электролита по-больше...
Никто ничего не замазывает. Передатчик с током потребления от 0,5A и больше в режиме Full Duplex, который попеременно работает на приём и передачу - это не проблема, а данность.
Прежде чем писать ответ, следует читать всю тему полностью, а не отвечать бесполезными постами на отдельный пост.
-
7 minutes ago, Plain said:
Если линейный источник тока устраивает, и есть 5 В, то соберите его на ОУ и NPN с аккумулятора, при этом поделить 5 В опорного можно до любого вменяемого значения, а если ОУ взять автообнуляемый, то и до невменяемого.
Тот повышающий конвертер 5V нельзя использовать в качестве опорного - потому что на нём как раз и происходят всплески напряжения из-за других подключенных нагрузок.
Сюда напрашивается какой-нибудь маломощный линейник на 1,2 - 1,5 V + резистивный делитель с фильтрующим конденсатором. Но это всё ещё потребует операционника - так как нужно сравнивать напряжения и высокое входное сопротивление
10 minutes ago, Plain said:а если ОУ взять автообнуляемый, то и до невменяемого.
Что такое авто-обнуляемый ОУ?
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
Сделал стабилизатор тока на двух транзисторах: биполярный с Ube ~ 0.6 V и MOSFET с открытым каналом 50 мОм.
Схема работает, но стабилизация тока начинается с напряжения 3,7V и выше. Всё что ниже - ток через светодиод падает.
Схема устойчива к пульсациям питающего напряжения - запитал её с повышающего DC/DC 5V, яркость светодиода не меняется, когда параллельно работает мощный передатчик (тоже запитан от этих же 5V) с частотой включения-выключения 10-20 Гц.
Ток I = Ube/2 = 0.306 A. На самом деле сопротивление резистора не 2 , а 2,2 Ом, что даёт ток близкий к измеренному - 0,28A
Сюда бы какой-нибудь ИОН с более стабильным напряжением, чем переход БЭ биполярного транзистора. Да и поделить напряжение с ИОН резистивным делителем, чтобы уменьшить сопротивление резистора в цепи истока MOSFET, для уменьшения рассеиваемой мощности.
Резистор на 10 кОм можно отключить от питания и завести его на ШИМ, будет диммирование.
И всё-же, почему ток через светодиод падает, при питании этого стабилизатора напряжением меньше 3,7V? (использовал понижающий DC/DC с регулировкой выходного напряжения).
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
2 hours ago, artemkad said:PS. Впрочем, специализированный PAM2804 явно получше будет...
Vref = 0.1V. И входное напряжение может быть вплоть до значения разряженной литий-ионки. Это очень хорошо!
Один минус - микросхема уйдёт в "добрый путь", если светодиод сгорит или не будет подключен. Собственно, как и все источники тока, выполненные на базе импульсных конвертеров.Есть там защиты разные.За название микросхемы - спасибо!
Обеспечит ли эта микросхема постоянство тока через светодиод, если входное напряжение питания микросхемы будет колебаться в пределах +0,5 -0,5V с частотой 10-20 Гц? Собирал источник тока на LM2596 - светодиод менял яркость при изменении входного напряжения, что не годится. Где интересно обещанная стабилизация тока? Правда, входное напряжение должно было быть не ниже 4,75V.
1 hour ago, dxp said:Если вам КПД и тепловыделение не препятствуют, то это другое дело. Но линейным силовым схемам по КПД тяжело тягаться с импульсными. У линейных есть другие преимущества.
Не сильно препятствуют. Главное, чтобы было постоянство тока через светодиод - при снижении напряжения питания и чтобы ток не менялся от встрясок входного напряжения +/-0.5V с частотой 10-20 Гц.
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
К вопросу о КПД и рассеивания мощности впустую на тепло. Два варианта: источник тока на базе имульсника (buck converter) и на базе линейного источника тока.
Вопрос актуален и ценен только в разрезе того, что надо. А надо - запитать от литий-ионки мощный белый светодиод мощностью 2 Вт на 3V.
Остальные сферические рассуждения КПД и тепловыделения мне неинтересны.
1) Понижающий импульсник в режиме источника тока. Не нужно его путать со стабилизатором напряжения. Ключевой момент выглядит вот так:
Самое злачное место здесь - входное минимальное напряжение (оно обычно не ниже 4,2V, что не даёт использовать литий-ионку) и резистор Rsense, выделение тепла на котором зависит от опорного напряжения Vref и требуемого тока для светодиода. Лучшие конвертеры имеют Vref=<0,2V. Требуемый ток 0,5A. Значит мощность рассеивания на резисторе: I*U = 0,25 Вт. Рассеиванием на корпусе импульсника пренебрегаем (исходя из высокого КПД).
2) А теперь вышеупомянутый линейник CN5711 - заявлен дроп 0,12V при токе 0,5A. Значит мощность рассеивания: 0,12*0,5A = 0,06 Вт. При этом возможно запитать от литий-ионки.
0,06 < 0,25
Ну и кто лучше, спрашивается?
Так что, все рассуждения о КПД имеют смысл только лишь при жёстко заданных входных условиях. И я их обозначил в этой теме.
9 hours ago, Michael58 said:CN5711 не имеет опции управления по ШИМ (PWM), управляется только напряжением на ISET, у этого входа есть внутренний pull up.
Зато есть ножка CE, которая позволяет включать-выключать, что равно управлению по ШИМ.
В других микросхемах это работало, проверял лично сам. На счёт линейности (% ШИМ - яркость) не знаю, она и не нужна для моих целей.
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
Вот ещё: CN5711 - шедевр! При токе 0,5A дроп всего 0,12V. Как раз, чтобы решить проблему проклятой стабилизации тока через мощный светодиод от литий-ионки - вплоть до полного разряда аккума (светодиоду надо всего 2,9V )! )))
В даташите почему-то диммируют её странным образом - через MOSFET на резистор. Есть же ножка CE, в неё ШИМ туда надо же...
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
2 hours ago, mantech said:Учтите "А вот при обрыве нагрузки - микросхема тут же полетела."... Как по мне не айс, диоды в обрыв уходят только в путь...
В общем склоняюсь в сторону использования линейников. Потому что почитав вот это:
https://forum.cxem.net/index.php?/topic/158624-светодиод-34в-и-li-ion-378v/#comments
А потом - вот это:
https://mysku.club/blog/aliexpress/51031.html
понял, что один фиг КПД что с импульсником, что с линейником будет практически одинаковым (в случае если запитать белый светодиод от литий-ионки),
А использование стабилизатора напряжения вместо стабилизатора тока, приведёт к медленному нарастанию потребляемого тока светодиодом, его разогреву и выходу из строя. Запитал светодиод напряжением 2,9V, ток был вначале 0,4A и через 2 минуты вырос до 0,5A. И потом ещё стал медленно нарастать также, испытывать судьбу не стал - выключил (максимальный ток диода - 0,65 А).
А токоограничивающий резистор ставить последовательно со светодиодом не хочу - это рассеивание мощности впустую + зависимость от перепадов напряжения на входе.
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
33 minutes ago, Michael58 said:Дешевый вариант: MP23701
Неплохо ))) Опорник меньше 0,2V радует. Входное минимальное напряжение 4,2V.
Запускал источник тока на базе LM2595S - не вытягивает нужный ток для светодиода - вместо 0,5A получилось 0,4A. Из-за нижней границы входного напряжения - 4,75V.
6 minutes ago, repstosw said:Осмелюсь спросить, а от литий-ионки можно сделать источник тока на 0,5A для одного белого светодиода на базе понижающего конвертера? С Vref желательно от 0,3V или ниже.
Вроде бы то, что нужно: https://cxem.net/pitanie/5-300.php
Работает на понижение и на повышение. Выскоий КПД. И вытянет с лиий-ионки всё, что можно.
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
Есть сверх-яркий светодиод мощностью 2 Вт, питающийся номинально от 3V. Посоветуйте источник тока (желательно с высоким КПД) для такого светодиода. Ток планируется использовать: 0.3 - 0.65A.
Источник тока должен оправдывать своё назначение и не бояться бросков входного напряжения +/- 0.5V. Входное напряжение питания - номинально 5V, на самом деле из-за просадок из-за других потребителей, могут быть мгновенные скачки до +/-0.5V. Частота скачков - 10 - 20 Гц.
Замеры: при токе 0.5A падение напряжения на светодиоде 2,9V.
Всякие LDO, греющиеся как утюги - не предлагать!
Нужна именно специализированная микросхема или Buck-конвертер (понижающий) НО с низким Uref, а то на токоустанавливающем резисторе тоже будет рассеиваться много тепла. Желателен Uref<0.3V.
Возможность диммирование от ШИМ (PWM) обязательна!
Есть ли такие микросхемы?
P.S. Внимание! Питается всего ОДИН светодиод на 3V номинально. Использование более 1 светодиода - не нужно.
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
В качестве первичного источника питания используется liIon аккумулятор 3,7V 3000 - 6000 mAh.
Далее из аккумулятора делается напряжение 5V (максимальный ток нагрузки 2,1A - напряжение сохраняется до 4,96V) с помощью микросхемы-контроллера заряда-разряда аккумулятора CD42P MH343 (клон IP5306).
Далее напряжением 5V запитываются следующие узлы:
1. Трансивер RF4463F30 (потребление в режиме передачи 0,5-0,6A) - работает попеременно то на передачу, то на приём - скорость переключения 10 - 20 Гц.
2. I2S усилитель мощности звука(класс D) MAX98357A (мощность 1-2 Вт)
3. Плата с Allwinner T113-s3 (потребление до 1А)
Далее на плате Allwinner есть свои DC/DC Buck конвертеры - в том числе - и на 3,3V
Далее напряжение 3,3V используется для запитки следующих блоков:
1. Цифровые линии (VDDIO) интерфейсов SPI, TWI, I2S, DVP, GPIO, SD-карта
2. Микрофон I2S
3. Ключ на полевом транзисторе - для мощного светодиода до 2 Вт : регулировка яркости - ток 0... 0,5A - с помошью PWM, частота PWM от 1 МГц.
4. Камера OV5640 - через LDO делаются следующие напряжения питания: 1,5V - ядро камеры(DVDD), 2.8V - для авто-фокуса камеры (мотор фокусировки линзы), 3,3V - линии DVP (VDDIO)
5. LCD
Это всё работает в макетном виде, блоки соединены проводами неоптимально. Дисплей, камера, микрофон и наушники работают чисто - без видимой и слышимой грязи.
Собственно вопросы:
1. Насколько такой менеджмент питания корректен?
2. Насколько допустимо питать подсветку мощного светодиода от выхода DC/DC 3,3V цифровых линий?
3. Насколько критичны скачки потребления тока в цепи 5V выхода DC/DC из-за переключения трансивера с передачи на приём? Как это откликнется на потребителях питания 3,3V ?
4. Есть ли смысл подсветку мощного светодиода запитать с 5V или Li-Ion через источник тока, облегчив работу DC/DC конвертеру на 3,3V?
5. Если запитать подсветку светодиода через источник тока на DC/DC конвертере, то 3V-светодиод горит даже при запрещённом выходе ШИМ, так как конвертер в неактивном режиме даёт Vout = Vin. Есть ли другие конвертеры? Брать 6V-светодиод - не вариант, у него ступенька в регулировке яркости - происходит скачок яркости при повышении % заполнения ШИМ.
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
19 minutes ago, mantech said:Так, на всякий, понижать рекомендую не ниже 3В, ибо у подавляющего большинства периферии указаны уровни, мин 2.8 норм 3 макс 3.3(3.5)В
В данном проекте понижать уже не придётся, остаюсь на 3,3V IO. Вопрос решился моим постом выше - для правильной работы портов камеры от 3,3V, питание ядра камеры должно быть 1,5V - как это указано в даташите.
P.S. Переношу потихоньку свой проект в релиз - на основе платы ASK100. Вроде бы всё обошёл:
1. Плохая разводка аналоговых цепей. Решение - не использовать аналоговый аудиокодек, использовать устройства на I2S с разведёнными внутри аналоговыми цепями + стрессоустойчивость к просадкам питания и невосприимчивость к детектированию мощного ВЧ поля.
2. IO порты на 3,3 V. Решение - изменить питания камеры.
3. Отсутствие экранировки у ASK100. Решение - использовать чувствительные компоненты в экранах (трансивер RF4463F30, микрофон, усилитель).
P.P.S . Макет с проводами работает. Два источника мощных помех, которые не влияют на работу устройства:
1. Передатчик - потребление в режиме передачи от 0,5A. Мощность RF 1 Вт. Учитывая Full-Duplex переключения приём-передача с частотой 12-15 Гц
2. Мощный светодиод подсветки для камеры в темноте - 2 Вт. Ток до 0,65A. Яркость управляется ШИМ. Частота - выше 1 МГц.
На акустику влияния нет - микрофон передаёт чисто, в наушниках тоже всё чисто. Изображение с камеры тоже чистое - ряби нет во время передачи.
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
1 hour ago, repstosw said:Итак, вопрос остаётся открытым: как подружить недо-плату ASK100-T113 с камерой OV5640 ?
Вопрос успешно решён. Ответ дан в вышеупомянутой ссылке на схему шилда камеры от вейвшары:
1 hour ago, repstosw said:Вэйвшара здесь питает IO VDD камеры на 3,3V и не парится: https://www.waveshare.com/w/upload/1/1e/OV5640-Camera-Board-Schematic.pd
Нужно было повысить ещё и напряжение питания ядра камеры (DVDD) - сдуть LDO на 1,2V с платы MangoPi и поставить туда LDO на 1,5V (снял его с шилда камеры OV5647).
Получилось вот так - на соплях, но завелось:
Работают обе камеры: OV5640 и OV5640AF.
P.S. Я не знаю, зачем эти идиоты поставили LDO на 1,2V (MangoPi Dual) для ядра камеры, когда в даташите указано номинальное напряжение питания - 1,5V, а не 1,2V. В общем, китайцы не устают подкидывать неприятные сюрпризы... Хорошо, что выход найден.
Итого:
Было: VDDIO=2,8V, DVDD=1,2V
Стало: VDDIO=3,3V, DVDD=1,5V
1 hour ago, GenaSPB said:Это было про кнопки, которые вы собрались на GPIO сажать
Теперь ясно. С портами свободными (для кнопок) проблем нет. Просто хотелось аппаратного изящества - повешать все 3/4 кнопки на 1 порт без лишних чипов )))
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
48 minutes ago, repstosw said:Надо будет проверить на Mango Pi - перекинуть резистор:
Проверил. Увы, результат печальный - камера не работает: мелькают серые полосы и всё. Причём проверял на двух камерах: OV5640AF и OV5640. Она хочет VDDIO 2,8V. Питание портов 3,3V не катит. Тем более что:
В общем: бида, пичаль..... 🙁
43 minutes ago, GenaSPB said:С минам подобного вида боремся изготовленикм своей платы...
43 minutes ago, GenaSPB said:А внешний ацп постввить - mcp3208, mcp3204 не?
Зачем? Речь о камере, которая работает через DVP с CSIC.
29 minutes ago, mantech said:Как то видел индивидуума, что на сд карту 4В подал, и ничего, работает говорит, хотя по мне это уже экстремизм)))
На одной модели карты работать будет, на другой - уже нет.
29 minutes ago, mantech said:Вот на 1.8 для модемов уже пришлось делать конвертор
У меня VS1033 (кодек такой от финской конторы VLSI OY) сгорела, когда вместо 1,8V VDDCORE по неосторожности подал 3,3V. Это было давно...
Итак, вопрос остаётся открытым: как подружить недо-плату ASK100-T113 с камерой OV5640 ?
1. Запитать VDDIO камеры 2,8V и забить на согласование лог. уровней 2,8<=>3.3V. Благо, что разрешение 320x240, пиксельклок и прочие сигналы там небольшие.
2. Понизить VDD IO на самой плате 100ASK путём перепая резистора в DC/DC. Тогда возможно другие устройства войдут в конфликт.
3. Заменить камеру на другую, например на OV7725, которая может VDDIO 3.3V (но ждать придётся долго)
4. Что-нибудь ещё?
-
21 minutes ago, repstosw said:
Что лучше: запитать IOVDD камеры 3,3V вместо 3V или запитать IO VDD камеры на 3V и работать с портами T113-s3 запитанными от 3,3V ?
Насколько принципиальна рассогласовка логических уровней CMOS 3.3 и 3 V ?
Вэйвшара здесь питает IO VDD камеры на 3,3V и не парится: https://www.waveshare.com/w/upload/1/1e/OV5640-Camera-Board-Schematic.pdf
Тем более что:
Несмотря на:
Надо будет проверить на Mango Pi - перекинуть резистор:
-
Модуль 100ASK_T113-Pro_Core : китайцами подложена одна неприятная мина - порт GPIO E питается напряжением 3,3V. В то время, как на mangoPi MQ Dual этот порт питается от LDO на 2,8V. Потому что это нужно для DVP порта камеры OV5640. Даташит на камеру даёт IO VDD до 3 V, и как оно будет себя вести на 3,3V неизвестно.
Что лучше: запитать IOVDD камеры 3,3V вместо 3V или запитать IO VDD камеры на 3V и работать с портами T113-s3 запитанными от 3,3V ?
Насколько принципиальна рассогласовка логических уровней CMOS 3.3 и 3 V ?
P.S. Вторая мина от китайцев с этим модулем: не выведена ножка GPADC0 - а это значит, придётся несколько конопок вешать на разные GPIO, вместо одного.
-
1 hour ago, remontsofta said:
Просто странно, что только в одном месте видел, что запускают 1920*1080 видео на этой плате. А так всё на каких-то 400*800 экранчиках...
На V3s делал кодирование видео в H264 с камеры 1920x1080 30 FPS. Выше - камера не может, а так хоть до 60 FPS.
А декодирование требует меньше ресурсов.
-
Just now, makc said:
Это уже большая плата. Берите утюг и вперёд. 🙂
Плату класть прямо на утюг? Или на каком расстоянии от плоскости утюга? Есть старый совдеповский утюг с крутилкой.
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
13 minutes ago, vervs said:В плате есть отверстие под микрофонным?
Могу сделать. Плата пока в чертеже. По сути оно необходимо, иначе чутьё микрофона с закрытым отверстием уменьшится.
1 hour ago, makc said:Как я уже написал выше, всё зависит от размера платы (количества меди). Если плата не крохотная, то лучше без подогрева этим не заниматься. Легко можно ужарить нежный MEMS.
Размер платы не превысит 8 x 8 см. Четыре слоя, два внутренних слоя - сплошные плоскости - при нагреве они много тепла поглощают. Толщина 1,5 мм. Фольга 0.18, материал FR4.
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
33 minutes ago, HardEgor said:Если вручную паять, то можно просто зубочисткой накидать пасту(просто пасту без всяких флюсов) на контакты платы более-менее равномерно и приложить микрофон(не вдавливать) к плате. Потом включить нагрев по термопрофилю (но нижний подогрев обязателен).
Чем можно заменить нижний прогрев? У меня нет его. Если феном поддуть снизу, а потом сверху? Плата в держателе, есть доступ снизу и сверху.
И надо ли феном выравнивать поверхность залуженных дорожек на плате перед пайкой микрофона сверху?
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
48 minutes ago, makc said:Мы паяем так: лудим площадки на плате свинцовым припоем, чтобы получились небольшие бугорки припоя, наносим флюс-гель для пайки BGA в минимальном количестве на площадки, ставим микрофон и паяем феном на минимальной температуре (220-230) с нижним подогревом. Если плата совсем крохотная, то в принципе можно обойтись без нижнего подогрева, но лучше все же с ним - меньше придётся жарить микрофон. После пайки ни в коем случае ничем не мыть.
Ну тоесть:
1. залудили контакты на плате свинцовым припоем - до небольших бугорков
2. нанести флюс гель на эти же площадки - для пайки BGA в совсем малом количестве
3. установить микрофон - зафиксировать правильное положение
4. продуть феном на 220-230 градусов
У меня несколько вопросов:
1. С контактами микрофона - точно ничего делать не надо? Может их тоже следует залудить немного?
2. Есть ли гаранития, если ответ в п.1 - нет, то контакт площадок с микрофона надежно схватится припоем с платы, особенно на 220 градусов?
Помню, раньше паял аналогичное, но весь извёлся по нескольким причинам:
1. Пайка была иногда ненадёжной - приходилось греть на бОльшей температуре
2. микрофон повело при пайке - приходилось перепаивать
3. мог затечь флюс в акустику. Тогда как повезёт - иголкой вычищать или перепаивать новый микрофон
-
Есть такой I2S-микрофон:
Собственно, вопрос - как его надёжно припаять на печатную плату?
Из того что имеется в распоряжении: припой ПОС-61, паяльная паста, сплав Розе, твёрдая канифоль, жидкий паяльный флюс, этанол(мед. спирт), паяльная станция, паяльный фен с насадками.
Из опасений:
1) акустическое отверстие на стороне контактов - могут попасть отсатки флюса, спирта, канифоли...
2) из-за соблюдения осторожности по пункту 1) - может быть неконтакт с платой из-за непропая.
Итак, как методично в вышеописанных условиях надёжно припаять это?
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
35 minutes ago, GenaSPB said:Вообще-то в i2s размеп фрейма может быть больше чем используемре кроичкство бит. Попроьбкйте скормить усиоителю больше.
Вообще-то я так и сделал. Теперь стоит задача подрезать буфер до 16 бит на семпл, чтобы сэкономить память, при этом сохранив семплы, оставив их 32 битными из-за микрофона. Важно, не то, что я кормлю усилителю, а то, как это хранится в памяти: я хочу чтобы это были 16-битные семплы без лишнего старшего полу-слова с нулями.
Увы, I2S не может делать разрядность семпла приёма и передачи разными - только одинаковые.
Я хочу, чтобы семплы для усилителя брались с младших 16 бит TX_FIFO, а с микрофона записывались 32-битные семплы из RX_FIFO.
Таким образом, иметь 16-битный буфер для усилителя и 32-битный буфер с микрофона.
MAX98357A в действии. Вместе с 2-ваттной мини-колонкой 8 Ом:
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
Вопрос про DMA.
Есть регистр TX_FIFO - он 32-битный, тип IO для DMA (адрес не инкрементируется).
Есть буфер семплов в памяти - они 16-битные s16 Buffer[N].
Если сделать размер семпла I2S 16 бит, то DMA-транзакции с 16-битным шагом приращения источника и приёмника работают правильно.
Если сделать размер семпла I2S 32 бит, то DMA-транзакции с 32-битным шагом приращения источника и приёмника работают правильно.
Но если сделать размер семпла 32 бита, а DMA-транзакции с 16-битным шагом приращения источника и приемника, то работает неправильно - я слышу голос с цифровым хрустом, потому что в TX_FIFO попадает 2 записи с буфера - одна в его младшую часть, другая в старшую. Проверяется это путём зануления всех четных байт в буфере семплов.
Собственно вопрос: можно ли сделать так, чтобы при копировании DMA, запись с буфера семплов шла только в младшую шасть регистра TX_FIFO, а старшая часть регистра игнорировалась?
Это нужно для того, чтобы сделать I2S семплы 32-битными(или 24-битными), шина общая. Микрофон поддерживает 24- и 32-битные семплы, а усилитель - 16 битные семплы.
Чтобы сэкономить память на усилитель (16-битные семплы), а память на микрофон была 32 битной (для поднятия усиления, младшие биты сдвинутся влево в старншие, без потери точности при усилении).
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
On 3/23/2024 at 9:26 AM, GenaSPB said:прерывание на половине буфера и полное подсказывают, что речь о zero copy не идёт вообще.
Zero copy было в самом начале. Действительно, не нужно ничего никуда копировать процессором , если DMA перебрасывает семплы с микрофона в буфер и сразу же с буфера в УНЧ.
Но впоследствии понадобилось усиление (Digital Gain) + клиппинг , и пришлось делать это ручками в обработчике прерывания:
#define SBS (32000/10) s16 IBuffer[SBS*2] __attribute__ ((aligned (64))); s16 OBuffer[SBS*2] __attribute__ ((aligned (64))); #define GAIN 4 s32 DMA_IRQ_Handler(void *arg) { #if DMA_I2SI_CHANNEL < 8 u32 s=DMA_IRQ_PEND_REG0; DMA_IRQ_PEND_REG0=s; #else u32 s=DMA_IRQ_PEND_REG1; DMA_IRQ_PEND_REG1=s; #endif s32 f; static u8 z=0; z|=s; if(z==0x11)f=0; else if(z==0x22)f=SBS; else f=-1; if(f!=-1) { cache_inv_range((u32)&IBuffer[f],((u32)&IBuffer[f])+(SBS*sizeof(TYPE))); for(int i=0;i<sizeof(OBuffer)/sizeof(s16)/2;i++)OBuffer[f+i]=__SSAT(((s32)IBuffer[f+i])*GAIN,16); cache_flush_range((u32)&OBuffer[f],((u32)&OBuffer[f])+(SBS*sizeof(TYPE))); z=0; } UART_putc(s+'0'); return 0; }
On 3/23/2024 at 9:26 AM, GenaSPB said:Попробуйте double buffer в виде двух закольцованных друг на друга дескрипторов и прерывание по концу пакета. В отработавшем дескрипторе подменять адрес буфера.
Такое тоже делал, работает. Мне без разницы какой метод использовать - два дескриптора + full buffer прерывание, или один дескриптор + два прерывания: half и full buffer.
P.S. Вспомнил, в V3s когда буфер был в SRAM - работало только прерывание Full buffer. там и нужны были 2 дескриптора. С DDR работали оба прерывания(half/full). И здесь я уже об этом писал несколько лет назад в этой теме...
Посоветуйте источник тока для светодиода 3V
в В помощь начинающему
Опубликовано · Изменено пользователем repstosw · Пожаловаться
Нашёл у себя в запасах ещё один понижающий конвертер - SY8009. В даташите пишут, что он может работать от литий-ионки.
Сделал на нём стабилизатор тока.
Подключил его к свежезаряженной литий-ионке , замеры такие:
Напряжение батареи: 3,892 V
Ток через светодиод 0,55A
Напряжение на светодиоде 2,982V
Напряжение на резисторе FB : 0,604V - совпадает с даташитом (Vref).
Далее пошли чудеса. Вместо литий-ионки запитал от повер-банка от телефона, замеры такие:
Напряжение повербанка: 4,94V
Ток через светодиод: 0,29A - WTF ???
Напряжение на светодиоде: 2,8V
Напряжение на резисторе FB: 0,31V - WTF ??? Почему Vref не такой как в даташите?
Чем можно объяснить замеры в случае питания повербанком? Может данная архитектура конвертера не умеет играть в стабилизатор тока?
Cхема:
Передача: 12 или 15 фреймов в секунду. Передача и приём 12 или 15 фреймов. Время передачи = времени приёма. Значит, время передачи = 1/(FPS*2) = 41,666 мс или 33,333 мс. Потребление трансивера то 0,55A, то 0,05A.
Линейный стабилизатор врежиме источника тока, запитанный от повышающего конвертера 5V, даёт постоянный ток через светодиод - я не вижу морганий(просадка яркости) в моменты передачи.
Если же взять источник тока на базе импульсника LM2596, запитанный от повышающего конвертера 5V, то он НЕ даёт постоянный ток через светодиод - я вижу моргания(просадку яркости) в моменты передачи.
З.Ы. как вы догадались, передатчик запитан от того же конвертера на 5V 🙂
Использую вот такую байду для питания всего - делает из лития 5V, и умеет его заряжать. ИМХО конденсаторов на плате больше, чем достаточно: