|
|
![]() ![]() |
|
![]() ![]() ![]() ![]() |
|
Опции темы | Поиск в этой теме |
![]() ![]() |
![]() ![]() |
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8159 раз(а) в 2385 сообщениях
|
![]()
Всем привет. Вот и я добрался до вашего форума
![]() Есть у меня одна поделка (на самом деле их много, но тут я опишу только одну), которая может вас заинтересовать. Начну со схемы: Я тут совсем недавно, поэтому не знаю как у вас принято называть драйверы. Стабилизаторами, преобразователями, регуляторами мощности... Это всё применимо к данной схеме, поэтому просто "Драйвер". Да, практически типичный преобразователь на МК, только вместо груды ключей и драйверов для их затворов используется готовый преобразователь (TPS63020). Это позволило упростить схему, уменьшить габариты (меньше компонентов, выше частота) и поднять надёжность. По последнему пункту для светодиодов не актуально, они терпят кратковременные перегрузки, в отличии от лазерных диодов, для которых драйвер и разрабатывался. Дело в том, что МК не способен быстро реагировать на изменения питающего напряжения (потолок 4кГц), и тут ему помогает родная ОС преобразователя. Сам по себе преобразователь довольно мощный, он может от одного Li-ion аккумулятора накормить CREE XM-L, при этом размеры самого преобразователя... Судите сами: Плата диаметром 16мм, высота с компонентами - 2,5мм. Спокойно влазит в модуль D26, прямо под светодиод. Программа тоже многое умеет. Следит за температурой, напряжением питания и, собственно, током нагрузки. По-сути 3 ПИД-регулятора, обеспечивающие мягкую и быструю работу. На последнем фото показано, как в двухамперном режиме преобразователь умудряется высасывать старые солевые AAA батарейки... Индикация заряда не имеет различимых глазом градаций, она как бы аналоговая. Цвет зависит от уровня заряда. Пурпурный (выше фиолетового) - максимальный, красный - минимальный. Цвета ползут по спектру, как в радуге. К примеру зелёный находится посредине, соответственно это средний уровень заряда (голубой - выше среднего и т.д.). Кривая подогнана под разрядную кривую Li-ion аккумулятора, а просадка напряжения под нагрузкой компенсируется. Кроме этого индикатор анимацией отображает статус: перегрев, аккум не вытягивает нагрузку, драйвер по каким-либо неведомым причинам ограничивает ток (к примеру нагрузка слишком высоковольтная) и т.п. Мерцания незаметно даже в движении, плотностно-импульсная модуляция (она же сигма-дельта) рулит... Управлять можно как через разрывы питания (задняя кнопка), так и "передней" кнопкой. Последняя даёт бОльший функционал и плавное (0,25с) выключение. Всего режимов 4, в каждом можно индивидуально настроить ток и заполнение, а так же общую для всех режимов температуру. Для этого используется подстроечник, который настраивает активный режим, и сохраняет его в EEPROM при нажатии на кнопку. Настроить помогает и индикатор, отображая режим, статус захвата текущего значения, и MIN MAX значения, а так же статус сохранения значения... Драйвер можно всунуть в фонарь с гнездом под зарядку и управлением задней кнопкой. Он не будет включатся, если в гнездо вставлен штекер, несмотря на то, что на него поступает питание. Для увеличения ресурса EEPROM, т.к. в нём хранится режим при управлении "задней" кнопкой, работа с ним организована хитро. Ресурс около 400 000 000 переключений режимов. Битые ячейки не страшны, а если слетит вся память - будет использоваться энергозависимая (R25), которая не документировано может хранить данные несколько часов без питания. Кроме того, если источник питания окажется настолько слабым, что с ним не справится даже ограничитель тока и произойдёт перезагрузка - повторно драйвер запустится не попытается, дожидаясь лучших времён. Иначе бы он начал перебирать режимы, считая что это вы его дёргаете, со всеми вытекающими последствиями и засиранием памяти. Впрочем перемычками на плате можно перевести драйвер и в "топорный" режим, когда он при подаче питания всегда включает первый режим и игнорирует перебои в питании, т.к. с EEPROM не работает. В таком случае он превращается в обыкновенный регулируемый стабилизатор тока с защитами... Сорри за "многа букав", я и так опустил многие моменты. Вот осциллограммы для разбирающихся (за качество просьба не ругать, нет у меня цифрового): На первой 5мс/Дел., на второй 0,2мс/Дел. По вертикали - 20мВ/Дел. Сигнал снят с шунта (около 30мОм в сумме), питание - ATX БП, 5V линия. Нагрузка - массив китайских 1W светодиодов (падение 3,8V, дифф. сопр. 0,7Ом), заполнение выкрутил где-то на середину, чтоб посмотреть на переходные процессы. Попытки резко менять напряжение питания в установившемся режиме к выбросам не привели, если напряжение резко падало хоть на долю вольта - драйвер тут же сбрасывал ток, предполагая что источник вот вот вообще за 3V просядет. Затем постепенно (осторожно) выруливал всё обратно. Латентность кода на все события, кроме ОС по току, до 16мс (1 период модуляции). Осциллограф кривой, слева скорость луча выше, чем справа... Для светодиодов схема избыточна, т.к. им не требуется бек-буст и высокая стабильность, а TPS63020 весьма дорогой. Кроме этого приведённая выше схема рассчитана под фиолетовые и синие лазерные диоды, и параметры у неё следующие: Питание - 3...5,5V до 3A Выходное напряжение - 3...6,8V Выходной ток - 0,02...2A КПД - 87...90% Потребление в спящем режиме - <10мкА Минимальное дифференциальное сопротивление нагрузки - 0,3Ом Амплитуда пульсаций (31125Гц) - 40мВ Диапазон максимальных температур - 40...95°C Как видим диапазон напряжений выше оптимального для CREE XM-L, а ток немного ниже, поэтому номиналы шунта и резистора на 150k надо менять. К этому МК можно подцепить любой понравившийся преобразователь, у меня есть затея с самоосциллирующим усилителем класса D, благо программа хорошо работает и не требовательная к схемотехнике. Если кому интересно во сколько обходится сие чудо - по компонентам баксов 15, но программу я свободно не раздаю (потратил слишком много времени на 2045 строки ассемблерного кода, жаба давит), а готовый драйвер предлагаю за 30. Так что да, тема скорее для подразнить самоделкиных, и показать им к чему можно стремится, что реально способна дать современная элементная база. Как посмотрю на эти огромные утюги, занимающие пол корпуса... Пойду я ещё немного пофлужу в очередной теме. Там код уже выложу к девайсу, он доступный всем... [Исправлено: INFERION, 07.04.2013 в 12:56] |
![]() |
![]() ![]() |
Поблагодарили: 32 раз(а) |
Admin (07.04.2013), AND (07.08.2014), AVSel (08.04.2013), blindnick (07.04.2013), DooMmen (30.04.2014), dr oleg (01.05.2013), fonpuh (21.06.2013), klon (10.04.2013), LEV-UA (23.05.2013), lonish (07.04.2013), m72 (07.04.2013), MOHAPX (07.04.2013), mrzimm (07.04.2013), Nimnul (02.05.2013), nokiaf (07.04.2013), nomorewar (28.09.2013), PLAY (09.04.2013), Scratch (08.04.2013), Shlyambur (07.04.2013), shurko_3 (07.04.2013), sk911 (21.06.2021), Tamagotchi (07.05.2013), togico (07.04.2013), Urree (04.11.2015), Variant (22.10.2013), Virgo_Style (07.04.2013), vvvoland (02.05.2013), WallE (08.04.2013), X-Virus (12.10.2013), Алексей063rus (07.04.2013), Жуков (07.04.2013), Слава_75 (22.05.2013)
|
![]() |
![]() ![]() |
![]() Регистрация: 08.06.2011 Последняя активность: 02.11.2023 21:50
Сообщений: 7357
Сказал(а) спасибо: 1935
Поблагодарили: 2291 раз(а) в 1027 сообщениях
|
![]() ![]() Так они у нас и зовутся. Знаем, проходили, собирали драйверы AVSel, можете пошерстить темы. Драйвер подобный вашему https://forum.fonarevka.ru/..., но прошивка выложена. Спасибо за выложенную разработку! Очерь рад видеть вас тут, толковые люди нам нужны ![]() ![]() [Исправлено: MOHAPX, 07.04.2013 в 13:11] |
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8159 раз(а) в 2385 сообщениях
|
![]()
Я тут пока слабо ориентируюсь, интересующие меня вещи разбросаны по разным веткам форума, без пол литры и поиска не разобраться
![]() ![]() [Исправлено: INFERION, 07.04.2013 в 13:58] |
![]() |
![]() ![]() |
![]() |
![]() ![]() |
Опаньки
Регистрация: 23.10.2011 Последняя активность: 29.08.2024 20:30
Сообщений: 1058
Сказал(а) спасибо: 110
Поблагодарили: 271 раз(а) в 108 сообщениях
|
![]()
кпд? )
__________________
Как говорила моя бабушка: лучше выстрелить, перезарядить и еще раз выстрелить, чем светить фонариком и спрашивать «кто тут?» |
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
|
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8159 раз(а) в 2385 сообщениях
|
![]() Цитата:
[Исправлено: INFERION, 07.04.2013 в 21:01] |
|
![]() |
![]() ![]() |
![]() |
![]() ![]() |
![]() Регистрация: 10.09.2010 Последняя активность: 07.01.2021 02:22
Сообщений: 5445
Сказал(а) спасибо: 1055
Поблагодарили: 1409 раз(а) в 862 сообщениях
|
![]()
INFERION, рад приветствовать товарища с дружественного форума!!!
|
![]() |
![]() ![]() |
![]() |
![]() ![]() |
Опаньки
Регистрация: 23.10.2011 Последняя активность: 29.08.2024 20:30
Сообщений: 1058
Сказал(а) спасибо: 110
Поблагодарили: 271 раз(а) в 108 сообщениях
|
![]()
сорри, не увидел про кпд в первом посте
|
![]() |
![]() ![]() |
![]() |
![]() ![]() |
Увлеченный
Регистрация: 03.03.2011 Последняя активность: 08.10.2015 05:27
Сообщений: 182
Сказал(а) спасибо: 3
Поблагодарили: 26 раз(а) в 18 сообщениях
|
![]()
на парочку драйверков пожалуй захочусь. токма с хмельными параметрами
|
![]() |
![]() ![]() |
![]() |
![]() ![]() |
![]() Регистрация: 01.02.2011 Последняя активность: 09.03.2022 10:25
Сообщений: 3121
Сказал(а) спасибо: 1449
Поблагодарили: 3157 раз(а) в 911 сообщениях
|
![]()
Рады приветствовать!
А Вы териториально где обитаете? страна/город Возможны-ли варианты с большим количеством лития в банках 2х? т.е. входящее до 8.4 вольта Как заказать драйвер? [Исправлено: WallE, 08.04.2013 в 18:52] |
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8159 раз(а) в 2385 сообщениях
|
![]()
Под несколько банок требуется другая архитектура, она и по-дешевле будет. Возможно займусь ею, коль актуально. Территориально - Украина, г. Полтава. Вроде бы сделал в профиле эту информацию видимую всем.
Под хмель не проблема, только 3А (16mOm) шунтов у меня нет, так что макс. ток 2A... Заказать - в ЛС, я в барахолку пока не лезу, не те количества... [Исправлено: INFERION, 08.04.2013 в 19:34] |
![]() |
![]() ![]() |
Поблагодарили: 1 раз |
Serjj (25.08.2014)
|
![]() |
![]() ![]() |
![]() Регистрация: 01.02.2011 Последняя активность: 09.03.2022 10:25
Сообщений: 3121
Сказал(а) спасибо: 1449
Поблагодарили: 3157 раз(а) в 911 сообщениях
|
![]() |
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8159 раз(а) в 2385 сообщениях
|
![]()
Код перетерпел изменения. Модуляция вырезана, а подстроечник стал более самостоятельным. Теперь он самостоятельно решает когда сохранять значение в EEPROM - спустя 4 секунды с момента последней активности, и только в том случае, если изменения произошли (для этого необходимо захватить текущий режим, т.е. нащупать его текущее значение). Температуру настроить без передней кнопки всё так же не получится. но теперь хоть можно токи крутить без неё.
Задняя кнопка чуть поумнела, теперь драйвер не блокируется при внезапном перебое питания (те моменты, когда штатная защита от просадки напряжения питания не успевает среагировать и сбавить ток), а использует альтернативную память (R25) чтоб перебирать режимы в обратном направлении, в надежде успешно завестись хоть на каком-нибудь. В перспективе планируется ещё немного добавить мозгов, чтоб перебирались не режимы, а записанные в них мощности в убывающем порядке. Ведь не факт что у пользователя мощность будет нарастать с каждым последующим режимом. Передняя кнопка перетерпит капитальные изменения, уже готовится... Под CREE XM-L уже выработана версия с другими номиналами. Выходное напряжение 2...5V, ток 0,015...3A. Правда 3A он не всегда вытягивает, бывает 2,7A и индикатор показывает что преобразователь пердит от натуги... [Исправлено: INFERION, 02.05.2013 в 01:12] |
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8159 раз(а) в 2385 сообщениях
|
![]()
Да, видел. Довольно похожие
![]() Эту схему я где-то с лета вынашивал, зимою только до практики дело дошло. Хотя попытки завести этот чип как стаб. тока периодически предпринимались с того момента, как я получил семплы от производителя, когда они только только появились на сайте TI. Столько лет, что мои схемы, вместе с попытками ещё некоторых людей, давно успели расползтись по миру и я на них периодически натыкаюсь в разных реинкарнациях (попытки заменить какую-то деталюшку, считая что проблемы из-за неё), несмотря на то, что они были не рабочими, или криво рабочими... TPS63000 у меня давно валяются. Брал когда-то, но не впечатлила частота. Так и валяются без дела... [Исправлено: INFERION, 07.05.2013 в 00:35] |
![]() |
![]() ![]() |
![]() |
![]() ![]() |
![]() |
![]()
INFERION,
Да, АЦП в режиме одиночных выборок (два измерения на замер, первое игнорируется) и сон. Мне так и не удалось решить проблему с малыми токами. Примерно с 60 mA начинаются пульсации. Можно было сделать минимальный режим без стабилизации... Регулятор тоже ПИД. 63020 у меня появились недавно и валяются пока без дела. Может когда соберусь и под Вашу схему прошивку на С попробую сделать. Прочитал вчера Вашу соседную тему про то, как делаются такие стабилизаторы... ну, примерно и я все это методом проб и ошибок прошел. |
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8159 раз(а) в 2385 сообщениях
|
![]()
Сишный ПИД (стандартная библиотека) требует в несколько раз больше ресурсов, чем у меня выделяется на один семпл АЦП (порядка 200 тактов), поэтому я не знаю как на Си можно написать код, который будет успевать выжимать с АЦП максимум выборок в режиме одиночных измерений (31,25k выборок в секунду). А ведь чем медленнее АЦП, тем хуже давится его шум на той же частоте. Может конечно и можно на Си писать эффективно, но я библиотеки AVR (умножение, деление, корни и т.п.) ещё не обгонял по производительности, хоть и старался... Лишний раз выборки пропускать - разве что при переключении мультиплексора, поэтому надо стараться его по-реже дёргать (реже отвлекаться на другие измерения вроде температуры и напряжения питания). У меня эта частота упёрлась в 60Гц, т.к. она оказалась удобной. Человек не замечает дискретности, дребезг кнопки отлично фильтруется, МК отвлекается от стабилизации тока на 15 семплов аж через каждые 512 семплов. За это время успевает сделать всю работу, ещё и пустые семплы остаются. Слип юзать не получается, я уже писал почему - АЦП тогда перестаёт слушаться...
Какая проблема возникает при >60мА? Пульсации, в смысле шум? У меня ниже 12мА (4LSB, шунт на 3A) ток сваливается до минимального уровня и болтается в пределах миллиампера. Я это списываю на вытеснение шума АЦП, который упираясь в "пол" срезается, и среднее значение АЦП оказывается завышенным (верхняя часть шума то не срезана), из-за чего ОС сразу же сбрасывает ток, считая что он выше нормы, что ещё больше усугубляет ситуацию. Стало быть шум АЦП, во время работы ШИМ, программы, и дифференциального усилителя - около 4LSB (амплитуда)... Ещё заметил что у 25/45/85-й тиньки дифф. усилитель имеет ощутимое смещение и нуждается в калибровке. У 44-й тиньки калибровка вообще никакого результата не дала, и без неё отлично ноль держит... Если же не шум, а именно пульсации (возбуждение) - может быть проблема в коэффициентах ПИД-регулятора? Как рассчитывались/проверялись? На малых токах дифференциальное сопротивление нагрузки растёт, это может привести к проблемам. Хотя если с резистором ведёт себя стабильно, то проблема врятли в этом... Ещё скользкий момент в такой схемотехнике - паразитная ПОС, но она проявляется со слабым источником питания, который проседает под нагрузкой. Если ОС слишком медленная - будут проблемы. А без компенсации RC-фильтра, на выходе ШИМ, она ни как не может быть достаточно шустрой, иначе RC-фильтр фазу развернёт и поможет превратить стабилизатор в генератор. Это я тоже описывал в соседней ветке. Вот из-за всех этих моментов я сразу же программой и начал интересоваться, ибо там столько граблей, что устойчивости добиться не просто... [Исправлено: INFERION, 07.05.2013 в 11:40] |
![]() |
![]() ![]() |
![]() |
![]() ![]() |
||
![]() |
![]()
У меня не стандартный, упрощенный.
Цитата:
Ток начинает скакать. Помогает увеличение сопротивления шунта. Я думаю, что при малом токе полезный сигнал АЦП теряется в шумах. Кстати, уже не уверен, что это происходило при 60мА (год уже эту программу не вспоминал). Цитата:
Сейчас открыл листиг... там кучу всего можно улучшить, оптимизировать... но вдохновение кончилось ![]() |
||
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8159 раз(а) в 2385 сообщениях
|
![]()
Да, опора там ощутимо плавает (как и частота), но мне это пока не мешало. Где-то в даташите вычитывал, что при напряжениях ниже 2,5V дифференциальный усилитель (а может даже и весь АЦП) юзать нежелательно...
|
![]() |
![]() ![]() |
![]() |
![]() ![]() |
![]() |
![]() |
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8159 раз(а) в 2385 сообщениях
|
![]()
Я не крутил, но разницы между 3,3V и 5V не заметил на токе 15мА. На мизерных токах (около 20мА) он заметно шумит, кстати. Насколько заметно - не знаю как оценить. Меня не раздражает, присматриваться надо на освещаемую светиками поверхность в непосредственной близости...
Программные реализации я ещё не делал, может быть там вообще шума не будет, т.к. силовая цепь полностью синхронизирована с сигнальной. Тут же преобразователь работает на своей собственной частоте, что вносит шум... [Исправлено: INFERION, 07.05.2013 в 16:37] |
![]() |
![]() ![]() |