Добавить форум Fonarevka.ru в Избранное ×
FONAREVKA.RU - Всё о фонарях и осветительной технике
Регистрация Дневники Группы Альбомы Каталоги Поиск Сообщения за день Отметить все разделы прочитанными
Вернуться   Форум FONAREVKA.RU Авторские разделы наших мастеров Разработки от INFERION
Забыли пароль? Регистрация
Войти через OpenID



  • Для гостей форума
  • О нашем проекте
  • Реклама на форуме
Искренне рады видеть Вас на нашем независимом проекте о фонарях и осветительной технике!

Что Вам даст регистрация на нашем проекте:


- Возможность участия во всевозможных акциях, конкурсах и лотереях постоянно проходящих на форуме
- Возможность пользоваться скидками и бонусами, которые предоставляют различные популярные магазины специально для наших форумчан
- Возможность побывать в роли тестеров новейших разработок фонарей и их комплектующих
- Возможность неограниченного доступа к закрытой технической информации и некоторым интересным разделам форума
- Возможность полного отключения рекламы на форуме
- Возможность настройки форума по своему вкусу и предпочтениям (подробнее тут)
- Возможность использовать полноценный высокоточный "поиск" по форуму (для гостей он закрыт во избежание излишней нагрузки)

и много других приятных привилегий

Зарегистрироваться Вы можете следующими способами: при помощи стандартной формы регистрации или при помощи сервиса единой авторизации OpenID (подробнее тут)
.

Надеемся, что Вам у нас понравится!

Закрытая тема  Создать новую тему
Просмотров в теме 122352   Ответов в теме 701   Подписчиков на тему 19   Добавили в закладки 5
Опции темы
Старый 03.08.2013, 04:56 Автор темы   1

 
Аватар для INFERION
 
Регистрация: 07.04.2013
Последняя активность: Сегодня 21:22
Адрес: Украина, Полтава
Сообщений: 5499
Сказал(а) спасибо: 323
Поблагодарили: 7480 раз(а) в 2193 сообщениях

По умолчанию Indigo 5.0, или "не совсем форумный" драйвер?

03.08.2013 Indigo 5.0:
Долго ж он пилился, теперь писанины за него тут будет не меньше. Приступим...

Начну со схем. Вот эта была запланирована:
Нажмите на изображение для увеличения
Название: Indigo_v5.0a.png
Просмотров: 7787
Размер:	87.8 Кб
ID:	81975
И собрана:
Нажмите на изображение для увеличения
Название: P5214503.jpg
Просмотров: 7523
Размер:	94.6 Кб
ID:	81978
Сразу же обнаружился косяк. Почему-то на малых значениях яркость регулировалась нелинейно, как бы всплесками, рывками... Виновник быстро нашелся:
Нажмите на изображение для увеличения
Название: P5274507.JPG
Просмотров: 7429
Размер:	139.1 Кб
ID:	81979
И задавился:
Нажмите на изображение для увеличения
Название: P5284514.JPG
Просмотров: 7324
Размер:	145.8 Кб
ID:	81980
Схема приобрела вот такой вид:
Нажмите на изображение для увеличения
Название: Indigo_v5.0b.png
Просмотров: 7830
Размер:	88.2 Кб
ID:	81976
Добавилась демпфирующая RC-цепочка, давящая паразитный резонанс LC-контура, образованного индуктивностью дросселя и паразитной ёмкостью в его цепях (диоды, ключ и т.п.). Теперь вроде бы можно отлаживать программу. Долго я её мурижил, всё надеялся что смогу заставить работать встроенный дифференциальный усилитель. Фиг! У 85-х тинек он гораздо ужаснее чем у тех же 25-х. Поэтому был успешно забит и заменён вот этим внешним костылём:
Нажмите на изображение для увеличения
Название: Indigo_v5.0s.png
Просмотров: 2062
Размер:	100.4 Кб
ID:	81977
При этом МК самостоятельно определит его наличие, по напряжению выше 0,1V на PB3 после 8мс подтягивания этого пина, во время загрузки. Если же он окажется на массе - значит подключен к шунту и следует использовать встроенный усилитель. Может он у кого-то нормально и заработает.

Со схемой я думаю всё понятно. Она действительно очень похожа на форумный драйвер. Но вот программа очень сильно отличается, поэтому на ней остановлюсь подробнее:

Главная особенность драйвера - использование режима с разрывным током дросселя для стабилизации тока по входному напряжению. Это позволяет получить отличный мунлайт, т.к. не требуется использовать шунт. Однако для нормальной работы этого алгоритма требуется точно знать некоторые параметры, которые находятся драйвером самостоятельно по мере возможности:

1. Очень важный параметр sqrt2TL. Он характеризует значение индуктивности используемого в схеме дросселя. Значение по умолчанию 3,3мкГн, именно с него стартует МК при загрузке. Найти эту индуктивность программа может только в режиме с прерывистым током дросселя, и только если известно падение на нагрузке, а шунт даёт стабильные показания (ток достаточно большой). Ищет и уточняет автоматом. Всегда, когда это возможно...
2. Vout - падение на нагрузке, на границе между режимами работы дросселя. Найти можно только в безразрывном режиме, зная входное напряжение и заполнение ШИМ. Находится и уточняется всегда, когда ток немного выше момента перехода в безразрывный режим.
Ошибки в этих двух параметрах могут привести к конкретным лагам, так что критично важно, чтоб они нормально находились.

3. Rin - внутреннее сопротивление источника питания. Больше требуется для косметики. С ним индикатор не врёт, а драйвер внезапно не перезагружается при перегрузке батареи, т.к. не допускает эту самую перегрузку. Так что можно попробовать этого монстра хоть от 10440 запитать и он спокойно заведётся, даже если резко включить максимальную мощность. Эта переменная находится во время естественных резких изменений тока. К примеру в момент включения или при индикации перехода кнопки в обычный режим (при настройке яркости). Так что периодически стоит яркость регулировать, т.к. сопротивление это у батареи плавает.

Все эти переменные сбрасываются в значения по умолчанию (3,3мкГн, 8,5V, 0,5Ом) при замене батареи. Т.е. хранятся они в ОЗУ и по мере возможности всё время автоматом уточняются.

Переход между режимами работы дросселя так же вычисляется арифметически, поэтому если переменные будут слишком некорректными - будут лаги. Всё это можно проконтролировать в отладочном режиме. Если зажать кнопку и подать питание, то индикатор начнёт показывать не заряд батареи, а активность программы. Если конкретнее, то:
1. Пока ток нулевой, но МК чем-то занимается - горит красный.
2. Если работает прямая связь (по мнению программы режим работы дросселя с прерывистым током) - желтый в случае отсутствия калибровки индуктивности, и зелёный, если шунт даёт достаточно стабильный сигнал. Однако можно заметить, что чаще всего загорается он неуверенно и ненадолго.
3. При переходе в безразрывный режим загорается голубой - работает ПИД-регулятор и калибруется Vout. Этот момент находится в пределах где-то 300...700мА, в зависимости от напряжения питания и индуктивности дросселя. При дальнейшем росте тока должен загореться синий, это значит что калибровка выходного напряжения прекратилась.

Так, нюансы в работе драйвера вроде бы расписал. Как работает интерфейс:
Прямая ссылка на видео YouTube

Более подробно можно почитать в соседней теме. Есть ещё много нюансов, но эти мелочи должны быть интуитивно понятны. Если временные интервалы случайно настроятся слишком короткими, и их проблематично будет перенастроить - вход в отладочный режим ставит максимальный интервал.

Что касается масштабирования мощности - по-идее достаточно одинаково и в одном направлении менять сопротивление шунта и индуктивность дросселя. Арифметика разницы заметить не должна, но я ещё не проверял это на практике. Ещё важно правильно рассчитать демпфирующую цепь, но я вам с этим помогу. Главное знать индуктивность дросселя и померять осциллографом частоту резонанса в уже готовой схеме. Да, ёмкость на входе и выходе так же необходимо пересчитывать. В этой схеме много микрофарад - плохо. Огромная ёмкость на входе не позволит корректно измерить внутреннее сопротивление батареи, а на выходе - приведёт к неустойчивой работе ПИД-регулятора (возможно) из-за значительных задержек в LC-фильтре (его резонансная должна находится в пределах 10кГц). Если оставить PB3 болтаться в воздухе, посадить на Vcc или использовать для питания внешнего усилителя, то максимальный уровень напряжение на PB4 равен 1,1V относительно GND. Под это значение и рассчитывайте свои шунты и усиление токовых мониторов.

Я вам даю архив, в нём есть два хекса и готовые батники с дудкой для прошивки через программатор на FT232RL. Внимание! После прошивки драйвера отключается RESET и потребуется HV-программатор для его восстановления. В архиве есть хекс, исходник и батник для вот этого восстановителя. Так же там есть печатка и схема в редактируемых форматах. Ну и таблица с низкоуровневым описанием алгоритма кнопки, если кто-то в ней разберётся...
Кстати, морзянки тут другие, не те что на видео. В хексе общие, там первым идёт "SOS", вторым "indigo v.5.0, designed by inferion, fonarevka.ru", а третьим "here could be your advertisement :).".

Indigo_v.5.0.rar

07.11.2013 Indigo 5.1:
Обновляю информацию по драйверу (старая под спойлером выше):
Перекроил прошивку, добавил ряд возможностей, улучшил ряд механизмов. Больше всего "пострадал" интерфейс. Теперь вместо обычной кнопки можно подключать кнопку с двумя степенями нажатия и зарядное устройство. Схематично это выглядит так:
Нажмите на изображение для увеличения
Название: Indigo 5.1m.png
Просмотров: 2341
Размер:	81.1 Кб
ID:	89469
Обратная совместимость сохранилась.
Печатные платы на MCPCB такого плана:
Нажмите на изображение для увеличения
Название: 120W.png
Просмотров: 1762
Размер:	48.4 Кб
ID:	87248Нажмите на изображение для увеличения
Название: P1014701.jpg
Просмотров: 1550
Размер:	63.9 Кб
ID:	89467Нажмите на изображение для увеличения
Название: P1014722.jpg
Просмотров: 1167
Размер:	77.3 Кб
ID:	89468
Написал более внятную инструкцию по интерфейсу: Indigo 5.1m.doc. 5 страниц 14-м шрифтом, видео на ТАКОЕ я снимать постеснялся...
Поскольку v5.0 морально устарел - я делюсь его исходником: Indigo_5.0_final.txt. Но выложенный ранее hex отличается наличием одного бага (как минимум), так что советую перекомпилить.

Ну, теперь можно и об изменениях поговорить. Интерфейс расписан в документе, львиная доля изменений коснулась именно его. Почти всё трамбуется в EEPROM, модернизирован RGB индикатор (теперь держит стабильно баланс белого и использует сжатую базу + интерполяцию) и калибровка индуктивности (более агрессивный фильтр). Изменения коснулись и термоконтроля - у термодатчика появилась 32х передискретизация. Программа адаптирована под использование в разных схемах с разными нагрузками и индуктивностями. Пришлось высвобождать память, поэтому код жестко оптимизирован по размеру, и производительность хромает. Но реально тормозов нет, проблема в другом - некоторые узлы пришлось кастрировать. К примеру работа с EEPROM теперь упрощённая, битые блоки пропускаются только когда не пройдут верификацию. Если глючный блок глючит - его лучше отложить в сторонку и юзать свежий. Если он таки записал что нужно - не факт что сам через некоторое время не испортит эти данные...
Если МК обнаружит тормоза - он автоматом вывалится в инженерку до первого же выключения. Это поможет отследить место, где он тормозит. Я оптимизировал тайминги и в самых тяжелых местах ("зелёный" режим в тактическом режиме, во время настройки яркости) тормозов не обнаружил, но выпиливать механизм обнаружения подтормаживаний не стал. Может ещё пригодится...
Зависимость настройки яркости теперь кубичная.

Вот архивы с HEX и прочей требухой: Indigo 5.1 hex.zip и Indigo_5.1m.rar

Видимых изменений по сравнению с 5.1 практически нет, изменения коснулись в основном системных алгоритмов:
- Появилась калибровка термодатчика и интегратор ошибки ТК, позволяющие точно держать заданную температуру:
Нажмите на изображение для увеличения
Название: P1014737.jpg
Просмотров: 1071
Размер:	50.8 Кб
ID:	89471Нажмите на изображение для увеличения
Название: P1014738.jpg
Просмотров: 868
Размер:	48.5 Кб
ID:	89472
Соответственно порог 30 и 60 градусов.

- Лучше отрабатывает перегрузку батареи.
- Сделал вспышки кнопки ярче, базу индикатора сгенерировал под реальный график реальной батареи, в реальных же условиях (спасибо vvvovand'у). Индикатор передаёт заряд батареи адекватнее.
- Появилась калибровка кнопки под разброс параметров МК. Выяснилось что в ней есть небольшая необходимость.
- Кнопка овердрайва теперь не заставляет тормозить основную, т.к. научилась откатывать её действие на шаг назад. Но работает корректно только в первых трёх режимах - остальное дебажить пока не хочу, поэтому в старших трёх режимах она заблокирована. Ещё во время овердрайва она теперь временно отключает ТК, чтоб не мешал.
- В инженерном профиле появился новый тип входа, позволяющий усыпить драйвер намертво. Это позволяет щупать подтяжки для подбора резисторов без какой-либо реакции драйвера (сейчас не актуально, т.к. кнопка умеет сама калиброваться под разброс параметров). Чтоб войти в этот режим - нужно подождать 5 секунд (пока красный не погаснет). В инструкцию вписать забыл...
- В описании 5.0 не вижу, должно быть добавил после? Защита от перенапряжения срабатывает на 15...16V, если режим безразрывный. В прерывистом увы - МК не может точно определить. При срабатывании идёт спать до лучших времён.
- Модулятор ШИМ стал умнее. Теперь он умеет уменьшать потери на околомунлайтовых мощностях, снижая потребление и нелинейность. Хотя по факту СИД теперь хоть и не тухнет полностью без компенсации потерь, но я бы не сказал что на минималке он держит яркость стабильно. Пока разбираться влом...
- Пачку багов выгреб. Как мелких, так и довольно жирных. Может что пропустил, а чего-то даже добавил, но пока на глаза не попадалось...

Народ, не забываем что программа на все варианты схемы одна. Внешний усилитель или встроенный, обычная кнопка или двухтактная, есть зарядка или нет - драйвер разберётся сам, в какой схеме он работает. При первом запуске необходимо произвести калибровку. EEPROM он отформатирует сам, если она чистая (но батник в архиве зашивает и фьюзы, и форматирует EEPROM). Мусор может рассмотреть как полезную информацию, поэтому сразу же заходим в инженерный профиль полностью нажав кнопку (если она двухтактная - это необходимо для её калибровки) и отпускаем кнопку когда горит красный индикатор. Все калибровочные константы принимают значения по умолчанию. Дальше необходимо:
1. Опционально. Настроить временные интервалы кнопки (4-й режим, зажатие во время индикации смещения шунта).
2. Откалибровать термодатчик. Входим в 3-й режим и зажимаем кнопку - начнёт мигать, это он показывает смещение термодатчика. Значит всё в порядке. Если начал регулировать яркость как обычно - температура корпуса не подходит (требуется 25 градусов).
3. Опционально. Настроить быстрый доступ к "стробососам" - войти во второй режим зажав кнопку. По умолчанию этот доступ отключен.
4. Опционально. Настроить термоконтроль, по умолчанию он включен и температура задана 60 градусов. Только в инженерке он не обладает склерозом.
5. Откалибровать выходное напряжение и индуктивность - крутим яркость туда сюда между желтым и голубым индикаторами, пока не устаканится позиция. Это самое важное, что тут требуется сделать.
6. Выкручиваем ток на максимум и ждём пока мигнёт. Яркость должна резко подскочить после этого - значит аккумулятор мощнее чем думал драйвер. Если он будет слишком мощный - может проигнорировать из-за слишком слабого сигнала. Тут поможет аккумулятор послабее. 5-й и 6-й пункты можно выполнить просто включая и выключая фонарь на максимальную мощность.
7. Выключаем чтоб сохранить параметры и выходим из инженерного профиля, чтоб ничего не сбить. В дальнейшем при загрузке драйвер будет использовать эти значения, но во время работы он их будет продолжать калибровать. Разница только в том, что калибровка не будет записываться в энергонезависимую память.

При попадании влаги внутрь может заработать индикатор заряда батареи. Это значит что герметичность нарушена. В первую очередь кнопки и места на плате, где она подпаивается к RESET'у МК. Нужно просушить и залить критичные участки силиконом или цапонлаком. На самом деле это полезная фитча, в обычной ситуации вместо безобидной индикации включился бы сам фонарь...

19.11.2013:
Вот обновление ПО: Indigo_5.1mp.rar Indigo 5.1mp.doc
Косметику не навёл. Поковырял термоконтроль и его интерфейс. Добавил полицейскую мигалку. Исправил баг с двойной кнопкой. Может быть добавил каких-нибудь других "мотыльков, застрявших в контактах реле" ...

18.12.2013:
Версия 5.2: Indigo_5.2.rar. В архиве HEX, "дудка" с батником и руководство пользователя.

1. Доработана арифметика - параметры нагрузки вычисляются более тонко, потребляемая мощность оценивается более корректно, момент перехода между режимами так же вычисляется более точно.
2. Устранён шум в мунлайте, оптимизирован ПИД-регулятор.
3. Добавлена возможность высасывать батарею сверх нормы.
4. Добавлена возможность отключать мигания при выходе из режима настройки яркости.
5. Зажатие кнопки при включении автоматически пробрасывает во второй режим.
6. Убран копирайт из набора морзянок.

На данный момент это актуальная версия. Прилично вылизанная, но пока ещё толком не опробована.

Кому интересно более низкоуровневое описание работы регулятора:

Драйвер стартует с определённых стартовых значений, записанных в EEPROM, они программируются в инженерном профиле. Затем во время работы непрерывно их правит хитрой арифметикой. Основной цикл выглядит так:

1. Сначала мы опрашиваем кнопку и задаём нужный нам ток. Это делает интерфейс, в него включены и всякие мигалки, плавные эффекты и т.п. На выходе имеем один единственный параметр - Irefload. Это опорное значение выходного тока, но его ещё рано загружать в обратную связь.

2. Вычисляется внутреннее сопротивление батареи, если все необходимые для этого данные готовы:
Rin=(Vinmax-Vinmin)/Iinmax
Vinmax - измеренное напряжение питания без нагрузки (во время пауз в анимации или при включении). Т.е. напряжение практически соответствует напряжению не нагруженной батареи.
Vinmin - полученное напряжение питания при нагрузке на батарею, соответствующую значению Iinmax. Таким образом мы разницу напряжений делим на разницу токов, и получаем сопротивление источника питания. Закон Ома. Все необходимые переменные находятся ниже.

3. Вычисление напряжения источника питания без нагрузки:
Vcc=(Iinmax*Rin)+Vinmin
Фактически тот же закон Ома. Зная сопротивление мы вычисляем просадку и добавляем её к текущему напряжению питания. Это нужно в первую очередь для индикации заряда батареи, чтоб нагрузка не влияла на результат.

4. Дифференциальное сопротивление нагрузки.
Rout=(Voutmax-Voutmin)/(Ioutmax-Ioutmin)
Те же яйца что и во втором пункте, вид сбоку.
СИД имеет некоторое напряжение смещения (около 2,4V) и сопротивление (десятые доли Ома). Чем меньше это сопротивление - тем лучше, но оно не нулевое и его приходится учитывать, т.к. оно вносит зависимость напряжения падения от тока. Зачем это нужно - станет ясно ниже.

5. Напряжение смещения нагрузки:
Vbias=Voutmin-Rout*Ioutmin
Вычисляем падение на сопротивлении Rout при токе Ioutmin и вычитаем результат из текущего выходного напряжения драйвера Voutmin, которое соответствует значению на токе Ioutmin.

6. Вычисляем выходное напряжение на максимально допустимом токе:
Vout=Rout*Irefmax+Vbias

7. Вычисляем сам максимально допустимый ток:
Irefmax=(Vcc-3V)*3V/(Rin*Vout)
Рекурсия? Привыкайте. На самом деле это уравнение с плохим условием, и МК проще его вычислить так, чем через квадратное уравнение. Последовательным приближением он за несколько циклов найдёт решение, при первом цикле в 6-м пункте в Irefmax подставляется максимальное значение.
Тут мы вычисляем максимально допустимый выходной ток, с которым напряжение источника питания не опустится ниже 3V. На самом деле в алгоритме два порога. 3V и дельта в пол вольта. Т.е. напряжение на батарее не только не опустится ниже 3V, но ещё и не просядет более чем на 0.5V.

8. Параллельно вычисляется ещё и максимально допустимый ток по температуре, однако там следящий механизм вроде ПИ-регулятора, и так просто его не описать. Irefload не может превышать эти значения, и искусственно ограничивается ими, а результат попадает в Iref, который и идёт уже в регуляторы.

9. Вычисляем предполагаемое выходное напряжение на границе между режимами работы дросселя (прерывистый-безразрывный):
Vout=Rout*Ithreshold+Vbias
Ithreshold - см. ниже. Если он неизвестен (первый цикл) - вместо Vout подсовываем Voutmin, т.к. он очень близок к Vout.

10. Вычисляем предполагаемое заполнение ШИМ на Ithreshold
Ton=(T*(Vout-Vinmin)/Vout)
T - период ШИМ (4мкс), Ton - длительность импульса.

11. Вычисляем, собственно, сам Ithreshold - выходной ток, при котором дроссель будет находится на границе между режимами:
Ithreshold=Vinmin*Ton*(T-Ton)/sqrt2TL^2
sqrt2TL - переменная, представляющая из себя квадратный корень 2*T*L, где L - индуктивность дросселя. Она находится ниже. Да, этажерки "рекурсий", но оно работает...

12. Определяем в каком режиме находится дроссель. Тупо сравниваем Iref с Ithreshold. Если Iref больше - режим безразрывный, иначе прерывистый. Для каждого режима дальнейшие действия различны.

Прерывистый режим:
13. Находим предполагаемое выходное напряжение, т.к. напрямую его вычислить мы в этом режиме не можем:
Vout=Rout*Iref+Vbias

14. Вычисляем необходимое заполнение ШИМ (Ton), чтоб получить выходной ток соответствующий опорному значению:
Ton=sqrt(Iref*(Vout-Vinmin))*sqrt2TL/Vinmin

15. Вычисляем предполагаемый потребляемый драйвером ток, т.к. напрямую мы его в этом режиме вычислить не можем:
Iinmax=Vinmin*Ton^2/sqrt2TL^2+(Vinmin*Ton)^2/(sqrt2TL^2*(Vout-Vinmin))

16. Если сигнал с шунта устойчивый, а Iref не ниже 0,5*Ithreshold - Находим sqrt2TL следящей системой. Просто крутим эту переменную так, чтоб показания шунта совпали с опорным значением.

17. Меряем Vinmin и дальше цикл повторяется...

Безразрывный режим:
13. Тупим в цикле ПИД-регулятора, отрабатываем порядка 400 семплов и считаем что ток на выходе соответствует опорному значению. Да, наконец-то человеческая ОС по току. Дело в том, что на малых токах шунт непригоден для такого использования, поэтому в прерывистом режиме используется сложная арифметика.

14. Вычисляем Потребляемый драйвером ток:
Iinmax=Iref*Ton/(T-Ton)+Iref
Тут вычисление довольно точное, учитывается так же и КПД, ибо потери компенсируются завышенным Ton.

15. Вычисляем выходное напряжение:
Vout=Vinmin*Ton/(T-Ton)+Vinmin
То же самое - точность высокая, плюс сюда включаются и потери, что позволяет их учитывать в дальнейшем.

16. Если Iref<1,25*Ithreshold - дублируем Vout в Voutmin и Iref в Ioutmin. Если Iref практически максимальный (0,6 от максимума и выше) - делаем то же самое с Voumax и Ioutmax.

17. Меряем Vinmin и дальше цикл повторяется...

[Исправлено: INFERION, 18.12.2013 в 06:07]
INFERION на форуме   Вверх
Поблагодарили: 38 раз(а)
66magic99 (09.11.2013), Admin (03.08.2013), ALCO (16.11.2015), asterixtyumen (29.12.2013), blindnick (03.08.2013), Deviator2x (19.11.2013), DooMmen (11.06.2015), dr oleg (04.08.2013), Flight (10.10.2013), fonpuh (22.08.2013), holomey (13.11.2013), John Jack (04.08.2013), klon (09.11.2013), kvv12 (28.04.2015), LEV-UA (22.08.2013), m72 (03.08.2013), Maksym (10.11.2013), Mihalich (06.08.2013), Mikkilighter (03.08.2013), MOHAPX (03.08.2013), nikita.filukov (08.11.2013), Nimnul (03.08.2013), nomorewar (10.08.2014), PDM (09.10.2013), Rime (03.08.2013), rkromanrk (03.08.2013), Sasha :) (05.08.2013), SERG27 (28.10.2013), shurko_3 (06.08.2013), SloNicK (08.11.2013), togico (03.08.2013), Virgo_Style (06.08.2013), Virus99 (06.12.2015), Vlad_Sharov (28.11.2013), vvvoland (03.08.2013), WallE (08.11.2013), zebottendorf (04.08.2013), Русс (03.06.2015)
Старый 03.08.2013, 14:37   2
oleg235
Ветеран Фонарёвки
 
Регистрация: 07.04.2011
Последняя активность: 05.07.2019 17:52
Сообщений: 2878
Сказал(а) спасибо: 25
Поблагодарили: 393 раз(а) в 187 сообщениях

По умолчанию Re: Indigo 5.0, или "не совсем форумный" драйвер?

Можно тут вкратце описать, что оно умеет и как с этим обращаться?
oleg235 вне форума   Вверх
Старый 03.08.2013, 15:27 Автор темы   3
INFERION

 
Аватар для INFERION
 
Регистрация: 07.04.2013
Последняя активность: Сегодня 21:22
Адрес: Украина, Полтава
Сообщений: 5499
Сказал(а) спасибо: 323
Поблагодарили: 7480 раз(а) в 2193 сообщениях

По умолчанию Re: Indigo 5.0, или "не совсем форумный" драйвер?

Так на видео же всё есть. И в соседней теме управление давно уже обсуждается.

У кнопки грубо говоря 6 групп режимов, я их просто называю 6-ю режимами. Чтоб попасть в какой-то режим - нужно нажать соответствующее число раз (с выключенного состояния), или два раза для перехода на режим вверх (три нажатия перескочит на 2 режима вверх и т.д.), если это не противоречит алгоритму в самом режиме. Первые три отвечают за свечение. Нажал - светит, зажал - регулируется яркость. Регулировка плавная, в каждом режиме индивидуальная - от мунлайта до прожектора. Остальные 3 режима нужны для конфигурации самого фонаря. В 4-м смотрится заряд батареи (альтернативный индикатор), настраиваются задержки кнопки и маяк (включается/отключается, яркость регулируется). В 5-м термоконтроль. Можно его включить/отключить, посмотреть пороговую температуру, текущую, задать текущую как пороговую или настроить порог вручную (20...95 градусов). 6-й режим тактический. Им можно заблокировать/разблокировать кнопку, войти в тактический режим или включить один из 2-х стробов и 3-х морзянок. Яркость мигалок тут же можно подрегулировать. Как именно это всё зарыто под одной кнопкой - проще посмотреть видео. Хоть там и 10 минут, но если бы я всё нормально и не спеша объяснял, то были бы там все 30 минут...

[Исправлено: INFERION, 03.08.2013 в 15:40]
INFERION на форуме   Вверх
Старый 03.08.2013, 16:25   4
oleg235
Ветеран Фонарёвки
 
Регистрация: 07.04.2011
Последняя активность: 05.07.2019 17:52
Сообщений: 2878
Сказал(а) спасибо: 25
Поблагодарили: 393 раз(а) в 187 сообщениях

По умолчанию Re: Indigo 5.0, или "не совсем форумный" драйвер?

Исходники бы...
oleg235 вне форума   Вверх
Старый 03.08.2013, 16:30 Автор темы   5
INFERION

 
Аватар для INFERION
 
Регистрация: 07.04.2013
Последняя активность: Сегодня 21:22
Адрес: Украина, Полтава
Сообщений: 5499
Сказал(а) спасибо: 323
Поблагодарили: 7480 раз(а) в 2193 сообщениях

По умолчанию Re: Indigo 5.0, или "не совсем форумный" драйвер?

8 килобайт кода на ассемблере (>4000 строк кода)? Я сколько подобного не выкладывал - никто реально в них не ковырялся и ковыряться на самом деле не желал. А лишний раз ими светить я не хочу, китайцы уже не раз "удивляли". При такой себестоимости то драйвера. Так хоть копирайт зашит и его проблематично изменить...
Код:
ATtiny85 memory use summary [bytes]:
Segment   Begin    End      Code   Data   Used    Size   Use%
---------------------------------------------------------------
[.cseg] 0x000000 0x001fbc   7250    874   8124    8192  99.2%
[.dseg] 0x000060 0x000060      0      0      0     512   0.0%
[.eseg] 0x000000 0x000000      0      0      0     512   0.0%

Assembly complete, 0 errors. 0 warnings

[Исправлено: INFERION, 03.08.2013 в 16:31]
INFERION на форуме   Вверх
Старый 03.08.2013, 16:33   6
oleg235
Ветеран Фонарёвки
 
Регистрация: 07.04.2011
Последняя активность: 05.07.2019 17:52
Сообщений: 2878
Сказал(а) спасибо: 25
Поблагодарили: 393 раз(а) в 187 сообщениях

По умолчанию Re: Indigo 5.0, или "не совсем форумный" драйвер?

Цитата:
Посмотреть сообщение Сообщение от INFERION :
8 килобайт кода на ассемблере (>4000 строк кода)?
Если убрать стробы, морзянку и плавную настройку режимов - можно ужать до 4 кб?
Цитата:
Так хоть копирайт зашит и его проблематично изменить...
Захотят содрать - сдерут всё равно...

[Исправлено: oleg235, 03.08.2013 в 16:38]
oleg235 вне форума   Вверх
Старый 03.08.2013, 16:42 Автор темы   7
INFERION

 
Аватар для INFERION
 
Регистрация: 07.04.2013
Последняя активность: Сегодня 21:22
Адрес: Украина, Полтава
Сообщений: 5499
Сказал(а) спасибо: 323
Поблагодарили: 7480 раз(а) в 2193 сообщениях

По умолчанию Re: Indigo 5.0, или "не совсем форумный" драйвер?

Cейчас гляну что получится:
Код:
ATtiny85 memory use summary [bytes]:
Segment   Begin    End      Code   Data   Used    Size   Use%
---------------------------------------------------------------
[.cseg] 0x000000 0x001d68   6760    768   7528    8192  91.9%
[.dseg] 0x000060 0x000060      0      0      0     512   0.0%
[.eseg] 0x000000 0x000000      0      0      0     512   0.0%

Assembly complete, 0 errors. 0 warnings
Как видим до 4-х килобайт тут ещё далеко. Если выпилить индикатор - можно ещё килобайт сэкономить. Плавную регулировку я не закоментировал, её потроха по всему коду размазаны. Просто если отказываться от неё, то можно вообще программу по-другому написать, и сколько это сэкономит - не знаю. Пол килобайта где-то. Сама кнопка весит килобайта 2...3. Её тоже можно упростить. А всё остальное жизненно важно.
В 4 килобайта влезет то, что есть у Indigo 4.0. И это с учётом того, что там преобразователь аппаратный и с ним проще возится (хотя у него нет такого шикарного мунлайта из-за этого).
Цитата:
Посмотреть сообщение Сообщение от oleg235 :
Захотят содрать - сдерут всё равно...
Ну так это же не значит что я им должен задачу облегчать? были прецеденты, и подобные "проблемы" хотя бы уменьшают желание с их стороны...

[Исправлено: INFERION, 03.08.2013 в 16:51]
INFERION на форуме   Вверх
Старый 03.08.2013, 21:20   8
Tamagotchi

 
Аватар для Tamagotchi
 
Регистрация: 07.09.2011
Последняя активность: 25.11.2021 11:35
Адрес: Волгоградская обл.
Сообщений: 13824
Сказал(а) спасибо: 3320
Поблагодарили: 7840 раз(а) в 3508 сообщениях

Отправить сообщение для Tamagotchi с помощью Skype™
По умолчанию Re: Indigo 5.0, или "не совсем форумный" драйвер?

INFERION,
Какое минимальное напряжение на шунте удалось заставить нормально измеряться? С дополнительным ОУ и без?
Tamagotchi вне форума   Вверх
Старый 03.08.2013, 22:20 Автор темы   9
INFERION

 
Аватар для INFERION
 
Регистрация: 07.04.2013
Последняя активность: Сегодня 21:22
Адрес: Украина, Полтава
Сообщений: 5499
Сказал(а) спасибо: 323
Поблагодарили: 7480 раз(а) в 2193 сообщениях

По умолчанию Re: Indigo 5.0, или "не совсем форумный" драйвер?

На родном усилителе шунт отваливается где-то на 350мА из-за странного смещения, которое невозможно устранить. АЦП начинает показывать ноль на более низких токах так, будто смещение просто отрицательное. Но дело в том, что без калибровки на нуле получается значение в +300мА, и АЦП его всё время показывает, когда ток находится в пределах 0...350мА. В биполярном режиме ситуация та же. Долго искал косяк, так и не нашел. Я не знаю чего они там налепили, но так не работают даже самые паршивые АЦП. Причём в двух МК с разным индексом (один низковольтный, а второй нормальный) поведение идентичное. С внешним усилителем я получил смещение в 3mV и без проблем его откалибровало. Синхронизация периферии (АЦП и ШИМ, главным образом) напрочь косит весь шум, и это мешает на малых значениях. Шум вырождается в статическую ошибку, в жуткий INL. Когда меняется заполнение ШИМ - показания вообще могут начать изменятся в обратном направлении. С внешним усилителем этот эффект где-то раза в 2 меньше выражается, но главное - реверс пропадает на интересующих меня токах (около 0,5A). Наверное PID с таким эффектом не заработает, но у меня ведь там фильтры стоят хитрые, они решают что является адекватным, а что нет. Всё время следить за током смысла нет, ибо стабилизация обеспечивается и другими механизмами.

Если попытаться ответить на вопрос прямо, то получается что-то в районе 5mV. Этот результат намного хуже моих прежних реализаций на других тиньках, где стабильность теряется на значениях около 0,3mV.
INFERION на форуме   Вверх
Поблагодарили: 1 раз
Tamagotchi (04.08.2013)
Старый 03.08.2013, 23:09   10
oleg235
Ветеран Фонарёвки
 
Регистрация: 07.04.2011
Последняя активность: 05.07.2019 17:52
Сообщений: 2878
Сказал(а) спасибо: 25
Поблагодарили: 393 раз(а) в 187 сообщениях

По умолчанию Re: Indigo 5.0, или "не совсем форумный" драйвер?

Цитата:
Посмотреть сообщение Сообщение от INFERION :
В 4 килобайта влезет то, что есть у Indigo 4.0. И это с учётом того, что там преобразователь аппаратный и с ним проще возится (хотя у него нет такого шикарного мунлайта из-за этого).
Там не только мунлайта нет, но еще и преобразователь у нас сложнодоставаем с тех пор, как ТИ пересмотрела свое отношение к раздаче сэмплов.
Цитата:
Посмотреть сообщение Сообщение от INFERION :
Просто если отказываться от неё, то можно вообще программу по-другому написать, и сколько это сэкономит - не знаю. Пол килобайта где-то. Сама кнопка весит килобайта 2...3. Её тоже можно упростить. А всё остальное жизненно важно.
А если отказаться не только от плавной регулировки, но и упростить индикацию состояния батареи?
Повесить на один из освободившихся выводов светодиод 0604 и моргать и раз в 5 секунд на нормальной батарее и 2 раза в 5 секунд после прохождения уровня в 3,2-3,4В?
И режимы - мунлайт, 3%, 10%, 30%, 100%. Вкл/выкл - короткое нажатие, переход между режимами - длинное.
Влезет в 4 кб?
oleg235 вне форума   Вверх
Закрытая тема  Создать новую тему

Опции темы

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пользовательский интерфейс "Indigo" INFERION Разработки от INFERION 219 13.04.2014 12:30
FL33 (aka "форумный фонарь") - теперь по-русски! lux-rc.com Разработки от Lux-RC 1058 29.11.2012 07:52
Продам медные "модули" D26 под 334 модуль от Lux-RC или форумный трипл и дравер 17mm MIHASYA Архив сделок 38 09.10.2012 12:26
А-60, "лазерный меч СССР", или "за 30 лет до лазерного Боинга.." Admin Лазеры и лазерные указки 7 21.07.2011 15:35
Ищу драйвер для фонаря на трёх элементах "С" (SSC P7 C или Cree MC-E K0-WG) baban Разработка и модификация электроники фонарей 15 05.06.2010 12:49

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 23:25. Часовой пояс GMT +3.
Даты в формате dd.mm.yyyy.
(По умолчанию форум работает по московскому времени.)


Powered by vBulletin® Version 3.5.6
Copyright ©2000 - 2014, vBulletin Solutions, Inc. Перевод: zCarot


FONAREVKA.RU - хоббийный проект, сообщество энтузиастов, для которых область фонаростроения (в частности фонарики, компоненты, зарядные устройства, источники питания и т.д.), это исключительно хобби и общение "по интересам".

Проект FONAREVKA.RU - не ведет торговую деятельность и не оказывает иных услуг, где существует коммерческая составляющая. Исключение составляют предоставление на нашей площадке рекламных мест для баннерной рекламы (без каких-либо привилегий для самого рекламодателя) и поддержка в рамках разумного мелкосерийных производителей и кастомщиков, для которых разработки, это в первую очередь многолетнее хобби.

Проект FONAREVKA.RU - не имеет никакого отношения к созвучным магазинам или доменам в других доменных зонах.

Все наши проекты, созданные в рамках основного проекта FONAREVKA.RU размещаются исключительно на поддоменах домена Fonarevka.ru

Список наших проектов:

Официальная база тестов и сравнения фонарей: Fonarevka.ru
Форум о фонарях и светотехнике: Forum.fonarevka.ru
Форум о лазерах и лазерной технике: Lasers.fonarevka.ru
База отзывов о товарах с DX и т.п.: Dxreviews.fonarevka.ru
Калькулятор светового потока: Ledcalc.fonarevka.ru
База тестов и сравнения фонарей от наших коллег: 3rdparty.fonarevka.ru
Глоссарий Фонарёвщика: Glossary.fonarevka.ru

vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2021 DragonByte Technologies Ltd.

Copyright ©2007 - 2020, FONAREVKA.RU.

Если Вы не являетесь правообладателем того или иного контента размещенного на форуме (фото/видео/текст),
то при любом использовании материалов форума необходимо получить письменное разрешение
на использование того или иного материала у администрации форума.

При использовании материалов форума ссылка на forum.fonarevka.ru обязательна.

Рейтинг@Mail.ru

Время генерации страницы 0.29792 секунды с 21 запросами