|
|
|
|
56669 219 13 2 |
|
Опции темы | Поиск в этой теме |
24.05.2013, 15:30 | 61 |
Ветеран Фонарёвки
Регистрация: 29.10.2012 Последняя активность: 11.01.2016 04:58 Адрес: Киев
Сообщений: 1724
Сказал(а) спасибо: 392
Поблагодарили: 1082 раз(а) в 356 сообщениях
|
Re: Пользовательский интерфейс "Indigo"
Дак ты пиши - пиши))) Мы тут хоть и не все шибко грамотные, но умнеть же надо... Хотя бы на старости лет)))
__________________
Бог трипл любит |
24.05.2013, 15:40 | 62 |
Иех!
Регистрация: 16.01.2013 Последняя активность: 16.04.2024 19:41 Адрес: Москва, Сев. Тушино
Сообщений: 2411
Сказал(а) спасибо: 1083
Поблагодарили: 486 раз(а) в 345 сообщениях
|
Re: Пользовательский интерфейс "Indigo"
Учёные котоведы говорят, что если с кошкой разговаривать, ну нормальным человечьим языком, то у котовасий очень заметно повышается интелект! Во как!
Так что - читаем все!
__________________
______________________ __ |
Поблагодарили: 2 раз(а) |
selenopolis (24.05.2013), tatopus (24.05.2013)
|
25.05.2013, 09:04 | 63 |
Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24 Адрес: Украина, Полтава
Сообщений: 5774
Сказал(а) спасибо: 340
Поблагодарили: 8154 раз(а) в 2385 сообщениях
|
Re: Пользовательский интерфейс "Indigo"
Перевёл вчера в попугаи:
1A=7440 - так получилось с текущим шунтом, трогать не буду. 1мкс=16384 - тут всё понятно, период 4мкс (250кГц), а максимальное заполнение у ШИМ при значении 65535 (0xFFFF), вот его на 4 и поделили. С напряжением заморочки. Максимально допустимые числа - 2 байта, т.е. до 65535 (такая у меня арифметика везде, 16-ти разрядная), а если мы хотим нормально перевести в попугаи так, чтоб 1A=1V, то максимально возможное выходное напряжение (16V) просто не влезет. Судя по формулам нам не обязательно выполнять это равенство, значит удобно будет взять 4096, как раз 16V влезет. Но АЦП даёт кривой результат, который придётся приводить в нормальный вид: Vin=4613734/ADC. Есть у нас ещё такой параметр, как 2TL. Тут уже становится ясно, что 2T это уже 17 бит ровно, а они ещё и на индуктивность умножены. Проверим: 2TL=(Vin*Ton)^2/(Iout*(Voutmin-Vin))=12288*12288*43581*43581/(7440*(36864-1228)=1568457134 Вообще эта формула жрёт все ресурсы МК. Пачка умножений и деление 32*32. STM32 бы тут за несколько тактов уложился, а тиньке потребуются тысячи... Надо что-то думать. Смотрим где используется этот 2TL: Ton=sqrt(Irefmin*2TL*(Voutmin-Vin)/Vin^2) Может так будет быстрее: Ton=sqrt(Irefmin*(Voutmin-Vin))*sqrt2TL/Vin тогда вместо 2TL нужно вычислять sqrt2TL: sqrt2TL=Vin*Ton/sqrt(Iout*(Voutmin-Vin)) Не сложнее вычисления 2TL, зато хранить проще и разрядность арифметики меньше. Осталось глянуть что получается с вычислением Iin: Iinmin=Vin*Ton^2/sqrt2TL^2+(Vin*Ton)^2/(sqrt2TL^2*(Voutmin-Vin)) Жуть, и это нужно только чтоб заряд батарейки чуть подправить... Так, это ещё не всё. Всё равно sqrt2TL не влазит в 16 бит, поэтому количество попугаев у напряжения придётся уменьшить в 4 раза: Vin=1153433/ADC 1V=1024 С попугаями разобрались, теперь надо оптимизировать вычисления (деление 32/32 это слишком серьёзно для тинек...) и браться за портирование всей этой порнографии в код... [Исправлено: INFERION, 25.05.2013 в 09:22] |
25.05.2013, 09:15 | 64 |
Ветеран Фонарёвки
Регистрация: 29.10.2012 Последняя активность: 11.01.2016 04:58 Адрес: Киев
Сообщений: 1724
Сказал(а) спасибо: 392
Поблагодарили: 1082 раз(а) в 356 сообщениях
|
Re: Пользовательский интерфейс "Indigo"
Т.е. Можно предположить, что в следующем драйвере будет STM32?
|
25.05.2013, 09:26 | 65 |
Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24 Адрес: Украина, Полтава
Сообщений: 5774
Сказал(а) спасибо: 340
Поблагодарили: 8154 раз(а) в 2385 сообщениях
|
Re: Пользовательский интерфейс "Indigo"
Нет, нельзя. Зачем он там? Для цифрового усилителя в акустическую систему ещё понятно зачем, всё таки модели реальных динамиков строить и симулировать в реалтайме, а тут примитив полнейший. Каким-то сраным светодиодом рулить и всего-то держать ток стабильно...
Тинька текущий алгоритм то потянет, просто начиная с этого момента узким местом становится не АЦП, а ядро. И теперь уже оно может замедлить работу обратной связи. Но не факт ведь что это заметно отразится на работе. Я бы не отказался поставить что-то по-мощнее, но нет ничего 32-х битного в таких же мелких корпусах, со встроенным ИОН у АЦП, пригодного для прямого подключения к Li-ion, да ещё и чтоб усилитель токового шунта был... [Исправлено: INFERION, 25.05.2013 в 09:29] |
25.05.2013, 14:05 | 66 |
Иех!
Регистрация: 16.01.2013 Последняя активность: 16.04.2024 19:41 Адрес: Москва, Сев. Тушино
Сообщений: 2411
Сказал(а) спасибо: 1083
Поблагодарили: 486 раз(а) в 345 сообщениях
|
Re: Пользовательский интерфейс "Indigo"
Пардон за флуд, но не удержался ))))
|
25.05.2013, 17:53 | 67 |
Ветеран Фонарёвки
Регистрация: 29.10.2012 Последняя активность: 11.01.2016 04:58 Адрес: Киев
Сообщений: 1724
Сказал(а) спасибо: 392
Поблагодарили: 1082 раз(а) в 356 сообщениях
|
Re: Пользовательский интерфейс "Indigo"
abcom, так это... это так)
|
25.05.2013, 17:55 | 68 |
Иех!
Регистрация: 16.01.2013 Последняя активность: 16.04.2024 19:41 Адрес: Москва, Сев. Тушино
Сообщений: 2411
Сказал(а) спасибо: 1083
Поблагодарили: 486 раз(а) в 345 сообщениях
|
Re: Пользовательский интерфейс "Indigo"
Я и себя имел ввиду
|
27.05.2013, 23:06 | 69 |
Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24 Адрес: Украина, Полтава
Сообщений: 5774
Сказал(а) спасибо: 340
Поблагодарили: 8154 раз(а) в 2385 сообщениях
|
Re: Пользовательский интерфейс "Indigo"
Провозился вчера со "слепой" веткой ОС. Решил с неё начать, т.к. она самая ресурсожрущая. Во время регулировки яркости както неприятно дёргается скорость. Плавный пуск, выключение, всё нормально, а вот яркость регулируется рывками. И главное в программе мест таких нет, чтоб так косячить. Начал отлавливать багу, весь код перерыл, везде всё ровно идёт. Полез пощупывать мультиметром - заметил что заполнение ШИМ идёт ровно, а за полевиком - рывками. Начал грешить на резонансы и подключил осциллограф:
За эту особенность асинхронного режима я не подумал. Добротность, однако, бешеная. Да и разводка платы этому способствует. Я решил что паразитная ёмкость не столько вреда принесёт, сколько пользы хорошее охлаждение. Хотя на фоне ёмкости ключа и выпрямительных диодов - дороги на плате - фигня. В нормальном режиме этой гадости не будет, но вот свои "коррективы" она в мою модель вносит, и стало быть арифметика моя для неё не очень хорошо годится. Пинок под зад изменению яркости происходит как раз когда последнее колебание цепляет своей вершиной начало заднего фронта (переднего у ШИМ, когда полевик открывается и в дроссель начинает накачиваться энергия). Эта фаза как раз отображена на осциллограмме. Получается что дроссель получает больше энергии в этот момент, т.к. паразитная ёмкость помогает ключу. Способы борьбы? Можно внести фазовый шум в пределах периода колебаний. но я сделаю как во взрослых БП - повешу специальную демпфирующую RC-цепь. Резонансная частота уже известна, индуктивность - читать кривульки на детальках вроде умею, так что попробую рассчитать что-то вменяемое и имплантировать... Надеюсь эта хрень больше нигде себя не проявит. Бедная ОС, ей с этой хернёй бороться придётся. Надо будет учесть в следующих реинкарнациях драйвера. [Исправлено: INFERION, 27.05.2013 в 23:29] |
27.05.2013, 23:10 | 70 |
Ветеран Фонарёвки
Регистрация: 29.10.2012 Последняя активность: 11.01.2016 04:58 Адрес: Киев
Сообщений: 1724
Сказал(а) спасибо: 392
Поблагодарили: 1082 раз(а) в 356 сообщениях
|
Re: Пользовательский интерфейс "Indigo"
INFERION, А если сделать ступенчатое, а не плавное? Ну там через каждые 25 люменов (примерно)?
Это если победить тварюку не выйдет) |
27.05.2013, 23:31 | 71 |
Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24 Адрес: Украина, Полтава
Сообщений: 5774
Сказал(а) спасибо: 340
Поблагодарили: 8154 раз(а) в 2385 сообщениях
|
Re: Пользовательский интерфейс "Indigo"
Да некрасиво же. Оно и так ступеньками крутит, просто ступенек 256 и они все пролетают со свистом за 4 секунды. На такой скорости дискретности просто не заметно... Зависимость логарифмическая (по-сути возведение в квадрат), чтоб яркость субъективно менялась линейно...
Это ж только один резонанс, а их много. Ну я хотя бы сразу учёл низкочастотный, он мешать не должен. С ним бороться сложнее... [Исправлено: INFERION, 27.05.2013 в 23:35] |
27.05.2013, 23:43 | 72 |
Hoвичёк фонарёвки.
Регистрация: 18.08.2012 Последняя активность: Сегодня 09:35 Адрес: Калуга
Сообщений: 4754
Сказал(а) спасибо: 1989
Поблагодарили: 1430 раз(а) в 717 сообщениях
|
Re: Пользовательский интерфейс "Indigo"
Не-не, RС-снаббер самое то.
__________________
Fenix TK21, UltraFire UF-H6, Триплы C20C, ITP A2 EOS ss, Olight S20 Baton, DQG 18650 II, Niteye JA10, DQG AA, DQG 18650 clicky, С22С. |
28.05.2013, 15:35 | 73 |
Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24 Адрес: Украина, Полтава
Сообщений: 5774
Сказал(а) спасибо: 340
Поблагодарили: 8154 раз(а) в 2385 сообщениях
|
Re: Пользовательский интерфейс "Indigo"
Зверь сильно не сопротивлялся и был быстро побеждён:
Довольно хлипкий резонанс, эквивалентное сопротивление 36Ом. Т.е. полностью подавить колебания можно сопротивлением где-то <26Ом, но много потеряем на нём. Включил последовательно с ним конденсатор на 10nF, который уменьшил резонансную чуть более чем в 2 раза и существенно уменьшил уровень потерь на резисторе. На этой частоте эквивалентное сопротивление контура (реактивное одного из элементов) около 16Ом и т.к. контур теперь последовательный - чем больше сопротивление резистора, тем лучше. Для подавления этого резонанса достаточно сопротивления в >24 Ом. Т.е. у нас получается оптимальное сопротивление порядка 24...26Ом, чтоб убить оба резонанса. Я влепил то, что нашел под рукой - 30Ом. Результат устраивает, хоть можно было бы горбик сделать и по-меньше. Яркость теперь регулируется очень мягко, как и положено. В этом резонансе оказалось настолько ничтожное количество энергии, удивительно как он мог так существенно влиять на яркость... Кстати. На малых токах (единицы миллиампер), сильно отличается как ток через отдельно взятые триплы, так и яркость отдельно взятых светодиодов в триплах. Причём последнее гораздо заметнее... [Исправлено: INFERION, 28.05.2013 в 16:05] |
28.05.2013, 17:15 | 74 | |
Ветеран Фонарёвки
Регистрация: 11.02.2012 Последняя активность: 21.03.2024 23:02
Сообщений: 3731
Сказал(а) спасибо: 3527
Поблагодарили: 1970 раз(а) в 1049 сообщениях
|
Re: Пользовательский интерфейс "Indigo"
Ответ человека творящего блоки питания которому я показал ветку.
Цитата:
__________________
Не стреляйте в программиста, он паяет как умеет. |
|
Поблагодарили: 1 раз |
tatopus (28.05.2013)
|
28.05.2013, 18:11 | 75 | ||||
Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24 Адрес: Украина, Полтава
Сообщений: 5774
Сказал(а) спасибо: 340
Поблагодарили: 8154 раз(а) в 2385 сообщениях
|
Re: Пользовательский интерфейс "Indigo"
Цитата:
Цитата:
Цитата:
Мне нужны оба режима, и чем они отличаются - я в курсе. Если мне понадобится только безразрывный - я использую синхронную топологию. У неё и эффективность выше. И индуктивность выбрана не от балды. Выше я описал механизм, повторяю: 1. На малых токах обратной связи нет. Шунт сильно шумит, и использовать его нельзя. Поэтому используется режим с разрывным током дросселя. Вернее его особенность, согласно которой преобразователь в этом режиме является источником мощности, которою можно вычислить в слепую, зная лишь напряжение питания, индуктивность и заполнение ШИМ. Именно в этом режиме, на десятках миллиампер выходного тока, и наблюдалась какофония. Теперь не наблюдается, а алгоритм действительно трезво вычисляет заполнение под требуемый выходной ток, ещё и потребляемый ток вычисляет, необходимый для компенсации просадки напряжения для индикации заряда батареи. 2. На средних токах, когда шунт использовать уже можно, но режим всё ещё с разрывным током дросселя - алгоритм должен вычислять, собственно, индуктивность. Ток ведь теперь известен, меняем переменные в формуле и уточняем реальную индуктивность для первого пункта. Вот значение индуктивности на этом моменте и завязано. Чем она меньше, тем позже можно подключать шунт, и меньше проблем с шумами. К тому же меньше габариты и потери на омическом сопротивлении дросселя. Однако фанатизм приведёт к проблемам с пульсациями. Мне удобно было остановится на 3,3мкГн. 3. Вот тут уместно для начала процитировать: Цитата:
Именно эта разница и улавливается алгоритмом для того, чтоб понять когда же режим изменился. И когда преобразователь переходит в безразрывный режим - крутизна регулировочной характеристики резко подпрыгивает из-за крутой ВАХ нагрузки. И практика тут опять совпала с теорией - прирост бешеный. Так вот, в этом режиме я могу вычислить падение на нагрузке, для всё того же 1-го пункта. Всего-то по заполнению ШИМ и напряжению питания... Стоит ли мне уточнять, что рассчитывать саму ОС я тоже способен? Я не программист, так что шаблон, к сожалению, не порву ... Хотя меня можно назвать "кристальщиком". Особая каста программистов, работающих в условиях острой нехватки ресурсов и с низкоуровневой ерундой вроде импульсных источников питания, усилителей класса D и т.п ... [Исправлено: INFERION, 28.05.2013 в 18:29] |
||||
31.05.2013, 22:27 | 76 |
Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24 Адрес: Украина, Полтава
Сообщений: 5774
Сказал(а) спасибо: 340
Поблагодарили: 8154 раз(а) в 2385 сообщениях
|
Re: Пользовательский интерфейс "Indigo"
ATtiny85 memory use summary [bytes]:
Segment Begin End Code Data Used Size Use% Warn -------------------------------------------------------------------- [.cseg] 0x000000 0x002006 7342 856 8198 8192 100.1% OVER [.dseg] 0x000060 0x000060 0 0 0 512 0.0% [.eseg] 0x000000 0x00000d 0 13 13 512 2.5% Пошла пьянка. Теперь вместо реализации нужно думать где бы ещё места расчистить, чтоб всё влезло... |
Поблагодарили: 1 раз |
m72 (07.06.2013)
|
07.06.2013, 00:08 | 77 |
Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24 Адрес: Украина, Полтава
Сообщений: 5774
Сказал(а) спасибо: 340
Поблагодарили: 8154 раз(а) в 2385 сообщениях
|
Re: Пользовательский интерфейс "Indigo"
Фууух... Мне реально аж надоело воевать с этим дифференциальным усилителем в 85-й тиньке. Пришлось на несколько дней отложить, чтоб передохнуть и приступить вновь со свежей головой. Код немного разгрёб, место есть. Но оно ещё нужно для возни с EEPROM, маячка и апгрейда ПИ-регулятора до ПИД (на время отлаживания выпилил всё лишнее).
Что получилось со следящей системой: - Дифференциальные измерения штука ненадёжная. АЦП сильно шумит, как и вся ОС. Поэтому жестко задал нижний порог безразрывного режима (пока что 700мА), и нижний с разрывным током дросселя (пока что 300мА). - Ниже 300мА работает прямая связь. Следит за напряжением питания и вычисляет требуемый ток без использования шунта. Заработала сразу отлично и проблем с нею не было. Заказываю 297мА - на выходе мультиметр фиксирует ровно 297мА. В это же время производится калибровка смещения АЦП в биполярном режиме. - При токах 300...1000мА прямая связь заменяется обратной, АЦП работает в биполярном режиме, т.к. униполярный отказывался работать с токами ниже 350мА. Вот тупо выдаёт значение в 350мА и ниже опускаться не хочет. В биполярном смещение уменьшилось до 150мА, плюс появилась возможность корректировать и отрицательные (по мнению АЦП) значения тока. Вообще адовое смещение, таких отвратительных усилителей токового шунта у AVR я ещё не встречал... - Пока работает обратная связь, но режим всё ещё разрывный (сейчас это в пределах 300...400мА, но планирую изменить до 200...300мА) - корректируется индуктивность, необходимая для работы прямой связи. Получается рекурсия: прямая связь калибрует обратную, предполагая реальный ток по информации, предоставленной откалиброванной обратной связью... Но работает. Постепенно приближается к реальным значениям. Таким образом обеспечивается хорошо состыкованный переход между двумя режимами. Во время мигания, после настройки яркости, получается так, что АЦП калибруется нулевым током, по фень шую. И после "вспышки" даёт более корректный результат (ну и тут же более корректно калибрует индуктивность). - На токах 700мА...1000мА калибруется униполярный режим АЦП, чтоб переход на него и обратно был так же хорошо состыкованным. На токах выше 1000мА включается униполярный режим, т.к. у него разрешение вдвое выше, а смещение уже не мешает. - В пределах 300...700мА я не могу знать какой сейчас режим, поэтому дополнительные вычисления не производятся. Выше 700мА калибруется падение на нагрузке, необходимое для более корректной работы прямой связи... Результат - я могу мягко регулировать яркость от еле заметного свечения кристаллов до овердрайва, при котором комповый БП проседает до 3V (5V шина). На таких токах пилюля держится несколько секунд, после чего до неё нельзя дотронутся. Я не знаю как можно такое эксплуатировать в вау-фонарях... Да, забыл написать. Индикатор всё ещё требует дифференциальных данных, т.к. напряжение ОЧЕНЬ сильно проседает с такими токами, а у него чуйка (уже вместе с "глазомером") на уровне единиц милливольт. поэтому модуляция всё же используется. С нею тоже пришлось повозится, чтоб не не сильно шумел дроссель и на глаз не было заметно. Прямая связь нареканий не вызвала, ей требуется импульс всего в пару миллисекунд на частоте 60Гц. Там вообще ничего не видно и не слышно, учитывая небольшие токи и незначительную глубину модуляции (12%). А вот с обратной связью сложнее - снова мешает улиточность дифференциального усилителя. Ему требуется много времени на раздупление и импульс получается жирным. На глаз ничего не вижу, ухом можно послушать треск дросселя. Так что если получится - повоюю с этим немного... [Исправлено: INFERION, 07.06.2013 в 00:41] |
07.06.2013, 00:52 | 78 |
Hoвичёк фонарёвки.
Регистрация: 18.08.2012 Последняя активность: Сегодня 09:35 Адрес: Калуга
Сообщений: 4754
Сказал(а) спасибо: 1989
Поблагодарили: 1430 раз(а) в 717 сообщениях
|
Re: Пользовательский интерфейс "Indigo"
Нихрена не понятно.
Внушает, но нихрена не понятно. |
07.06.2013, 01:20 | 79 |
Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24 Адрес: Украина, Полтава
Сообщений: 5774
Сказал(а) спасибо: 340
Поблагодарили: 8154 раз(а) в 2385 сообщениях
|
Re: Пользовательский интерфейс "Indigo"
"Кристальщики" поймут .
|
07.06.2013, 01:33 | 80 | ||
Hoвичёк фонарёвки.
Регистрация: 18.08.2012 Последняя активность: Сегодня 09:35 Адрес: Калуга
Сообщений: 4754
Сказал(а) спасибо: 1989
Поблагодарили: 1430 раз(а) в 717 сообщениях
|
Re: Пользовательский интерфейс "Indigo"
INFERION
Боюсь, и они не поймут. Мне во-первых непонятна та часть, что касается работы самого МК, так как я в этом совершенно не рублю, и здесь разумеется дело во мне, так что речь не об этом. Но помимо этого, вызывают недоумение некоторые фразы, типа: Цитата:
Или вот, тоже шедевр: Цитата:
Иными словами, учитывая результат, оснований сомневаться в Ваших знаниях нет, но вот над формулировками Вам однозначно надо поработать, уж коль Вы решили делится ими с общественностью. [Исправлено: Rime, 07.06.2013 в 01:51] |
||