Всё о мобильной энергии, солнечных батарея, ветряках и другой электроники Обсуждение солнечных батарей, вертяков, генераторов и другой электроники
 
  Регистрация | Войти На главную Добавить статью Форум Поиск  RSS Наш твиттер Контакты 29 марта 2024, Пятница  
MobiPower.ru
 О сайте
 Новости
 солнце
 термоэлектричество
 механика
 аккумуляторы
 освещение
 электроника
 прочее (экзотика)
 новинки рынка
 Сделай сам
 Обзоры и тесты
 Библиотека
 Форум
 Ссылки
 Контакты

Новости на e-mail
Подписаться на e-mail рассылку новых статей сайта Mobipower.ru



Вампирчики...
...размножаются здесь:
Мобильный блок питания "Вампирчик-Цифра" v.7
Мобильный блок питания "Вампирчик-Цифра" v.7

3 200 руб.
Солнечная батарея Suaoki на полугибких элементах SunPower
Солнечная батарея Suaoki на "полугибких" элементах SunPower

3 500 руб.

Информация



Новое на форуме

Ругаться сюда, однако ;))))
Автор: Гость
06.11.2023 в 22:29

проблемы при зарядке "пустого" вампирчика
Автор: nik34
03.08.2023 в 19:58

сгорел контроллер солнечной батареи
Автор: Гость
30.05.2023 в 23:15

Подскажите сварку.
Автор: Гость
28.05.2023 в 12:06

Бобик сдох...
Автор: nik34
16.05.2023 в 19:48

Разносол: конструкции от LeonidS
Автор: nik34
16.05.2023 в 19:27

Альтернативная прошивка "вампирчика"
Автор: Sergey345
21.04.2023 в 11:58

Переразряд li-ion
Автор: Aleksandr123
04.04.2023 в 11:53

Оживить вампирчик
Автор: nik34
30.12.2022 в 12:13

ВЦ8 - пока поговорить.
Автор: nik34
06.12.2022 в 16:58

Перейти на форум

Сейчас на сайте
0 человек

в т.ч. гостей:
пользователей:

Всего: 1251

Это может быть полезно


Поделиться этой страницей в:

   FAQFAQ   Поиск на форумеПоиск на форуме    ПользователиПользователи    ГруппыГруппы   ПрофильПрофиль   Личные сообщенияЛичные сообщения   ВходВход 

Альтернативная прошивка "вампирчика"
На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8, 9  След.
 
Начать новую тему   Ответить на тему    Список форумов -> Электроника
Автор Первое сообщение темы
nik34



Зарегистрирован:
Mar 23, 2008
Сообщения: 2820
Откуда: Москва

СообщениеДобавлено: Ср 09 Ноя, 2016 10:50    Заголовок сообщения: Альтернативная прошивка "вампирчика"
 Ответить с цитатой

Данная тема создана для того, чтобы написать другие прошивки контроллера вампирчика.
Ниже прицеплены последние варианты прошивок для Вампирчиков 5, 6 и 7 версий.
Более ранние можно глянуть под спойлером.

История изменений прошивки:показать

Цитата:
18 ноября:
1. Uin заменено на Ich
2. Разрешение во всех каналах сделано динамическим, т.е. с плавающей точкой:
0-999 (подразумеваемая точка перед первым разрядом, как mA, mV, mW...)
1.00-9.99
10.0-99.9
100.-999.
Не значащие нули в начале не отображаются.
http://alien.jabbercity.ru/v6/fw/20161118/vamp.hex


Цитата:
версия 001:
0. Разрешение во всех каналах теперь динамическое, с плавающей точкой. Подразумеваемая точка перед 1м разрядом не отображается.
1. входное напряжение USL -> Uin
2. ток понижайки (заряда) Uin -> Ich
3. выходная мощность Pou
3а. Добавлено и удалено отображение мощности заряда Pch = Ich*UAc
4. При включении после процентов отображается номер версии
5. Если примерно 2 минуты не трогать кнопки, дисплей переходит в сниженную яркость (экономия энергии)
6. "ночной" режим дисплея. Включается/выключается нажатием кнопки "вниз" при нажатой "вверх"
7. По нажатию верхней кнопки при нажатой нижней пока отображается версия прошивки. Потом, возможно, там будет подменю настроек.
8. исправлен баг с зацикливающимся переключением дисплея при частых нажатиях обеих кнопок.
http://alien.jabbercity.ru/v6/fw/20161122/vamp.hex


Цитата:
версия 002:
1. Переписана логика работы с кнопками, теперь есть (пока не используется) возможность анализировать долгие нажатия;
2. Пофикшен созданный в прошлой ревизии баг с некорректным отображением устанавливаемого напряжения в режиме ЗАР;
3. Пофикшено блымающее 2 раза за период отображения значение Pou.
http://alien.jabbercity.ru/v6/fw/20161123/vamp.hex


Цитата:
версия 003:
1. уменьшено время выключенного входа при измерении напряжения на заряжаемом аккумуляторе со 130 до 29 циклов измерения АЦП. При этом первые 13 циклов напряжение не измеряется.
2. изменён нижний порог установки напряжения заряда внешних аккумуляторов с 4000 до 1000 мВ.
http://alien.jabbercity.ru/v6/fw/20161125/vamp.hex


Цитата:
версия 004:
1. отображение версии перенесено в самое начало работы, уменьшено время показа. Новый стиль отображения.
2. Шаг изменения напряжения ЗАР 0.05В;
3. Изменён верхний порог зарядки аккумуляторов. Для никеля теперь 1.40В вместо 1.39В, для свинца 2.33 вместо 2.32;
4. Исправлен алгоритм округления при отображении значений;
5. Первая реализация ускоренной установки. (ВНИМАНИЕ!!! Требуется тестирование!)

http://alien.jabbercity.ru/v6/fw/20161205/vamp.hex

Писал без тестов на железе. Если кому не лень -- прошейте-погоняйте. Стабильной пока считаем версию №3.
Нижний порог установки напряжения пока оставлен как 1В.


Цитата:
версия 005:
1. Исправлена ускоренная установка. Теперь работает.
2. Добавлен ВКлючаемый таймер для режима зарядки. Откалиброван по моему экземпляру. После выбора напряжения зарядки после буквы t устанавливаем количество минут (0=отключен).
3. Добавлены программные калибровки всех каналов измерения. Отличия от среднего более 10% игнорируются. Для записи калибровок будет отдельная прошивка.
4. Код прошивки перепахан в плане оптимизации по размеру. В результате на флешке занято 4094 байта из 4096 доступных.
http://alien.jabbercity.ru/v6/fw/20161208/vamp.hex


Цитата:
Порядок калибровки:
1. При переключении каналов после имени канала выводится Cbr-calibration
2. Кнопка "вверх" включает калибровку данного канала (отображается AdJ-adjust, потом имя канала, который будем калибровать, далее измеряемая величина)
3. вверх -- увеличить значение, вниз -- уменьшить.
4. Если не трогаем кнопки, через несколько секунд видим вопрос, нужно ли сохранить St?-Set? и подсказку Y_^. Если ничего не нажали - продолжение настройки п.3
5. Пока светится Y_^ (читать, как для ответа Yes нажать ^вверх), Кнопка "^"вверх сохраняет значение (отображается SEt, данные сохраняются), кнопка "v"вниз отменяет настройки, и ничего не пишет (Abr-Abort)
6. Если в п.5 выбран вариант ответа (нажата кнопка) Возвращаемся из режима калибровки - п.1.

Сброс калибровки канала на значение по умолчанию:
2а. когда отображается Cbr при нажатии в п.2 кнопки "вниз" -- сохраняется калибровка по умолчанию dEf-default.
3a. Возвращаемся из режима калибровки - п.1.

http://alien.jabbercity.ru/v6/fw/20161209/vamp_calibrations5.hex


Цитата:
RomaST писал(а):
1) Ставим калибровальную прошивку
2) Калибруем каналы
3) Записываем на комп содержание eeprom
4) Ставим рабочую версию
5) Записываем сохраненный в пункте 3) eeprom на ВЦ

И получаем 5ую версию, с необходимыми калибровками.


Lex писал(а):
версия 006:
0. Педантичная оптимизация кода с частичной потерей производительности и читабельности
1. Добавлено меню настроек и калибровок. Для входа включать с зажатой верхней кнопкой.
2. Для сброса всех настроек и калибровок -- включать с нажатыми двумя кнопками.
3. По умолчанию в каналах измерения тока разрешение загрублено до 20 мА. В остальных не трогается, т.к. не ответили на вопрос.
4. Увеличена задержка перед измерением напряжения в режиме зарядки
5. Более честная индикация процентов в конце процесса зарядки
6. Выкинуты измерения АЦП в виртуальных каналах P, Pou, 3AP -- уменьшился период обновления значений
7. После вывода FUL через 3.5 минуты индикация переходит в "ночной режим" до нажатия любой кнопки.
8. Режим пониженной яркости индикатора теперь включается и выключается в настройках. Лично меня полная яркость слепит.
9. Шаг установки напряжения зарядки можно задать, но только вручную в файле .eep
10. Меню настроек, калибровок, сброса параметров можно теперь каждое по отдельности включать/выключать при сборке прошивки.

Меню настроек и меню калибровок:показать


Меню настроек и меню калибровок:
Включаем МК при зажатой верхней кнопке.
1) После номера версии видим SEt-settings, кнопку отпускаем.

Меню настроек:
2) Далее настройка 2х параметров с вариантом "да/нет". Наличие точек означает, что параметр ВКлючён.
- rES-resolution -- режим повышенного разрешения измерений. Для несогласных с п.3.
- LGH-light -- режим пониженной яркости из п.8.
Если нужно изменить параметр -- когда светится его имя зажимаем верхнюю кнопку, и держим, пока 3 точки индикатора не потухнут/загорятся. После этого отобразится Sud-saved -- новое значение параметра сохранено.

Меню калибровок:
3) Настройка калибровок каналов измерения: Отображается имя канала, потом значение калибровки.
- если не трогать кнопки -- после короткой задержки переход к следующему каналу
- если кнопка нажата -- значение увеличивается/уменьшается. Также увеличивается время задержки, чтобы дать возможность спокойно настроить параметр.
По умолчанию значение калибровочного коэффициента отобразится как 100. Следует читать как 1100. Этот коэффициент уже достаточно описан на форуме.
После установки параметра ждём перехода к калибровке следующего канала. Если значение изменено -- оно сохранится с отображением Svd. Далее переход к следующему каналу.

Работу настроечного меню в любой момент можно прервать, выключив питание (допустим, если изменили разрешение, и не хотим калибровать каналы). НЕ ВЫКЛЮЧАТЬ питание, если предстоит сохранение изменённого параметра.

Сброс к заводским настройкам:
1) Включаем МК с зажатыми двумя кнопками.
- в случае упрощённого-облегчённого варианта настройки затираются без предупреждения и индикации, после чего появляется меню настроек. До его появления питание НЕ ОТКЛЮЧАТЬ.
- в расширенном варианте есть защита от случайного сброса, т.н. Безопасный режим.
Начинается обратный отсчёт 999, 888, ... 000. Если во время отсчёта отпустить какую-либо из кнопок -- отсчёт прервётся и сброс не произойдёт.
Если продолжаем держать обе кнопки, отобразится ---, потом выполнится очистка EEPROM (питание НЕ ВЫКЛЮЧАТЬ), после очистки отобразится rSt-reset.
Если и после этого не отпустили верхнюю кнопку -- попадаем в меню настроек.


Безопасный сброс и меню калибровок одновременно в прошивку не помещаются. Потому две на выбор. Отличить можно по наличию меню калибровок.

Сборка с калибровками:
http://alien.jabbercity.ru/v6/fw/20161214/vamp_cal.hex
Сборка с безопасным сбросом:
http://alien.jabbercity.ru/v6/fw/20161214/vamp_secureset.hex

настройка шага изменения напряжения:показать


Самый простой способ, чтобы не вычислять смещения:
1. включаем свежепрошитую (или со сброшенными настройками) 6ку.
2. в меню настроек устанавливаем режим повышенного разрешения. Больше никаких настроек и калибровок не меняем.
3. сохраняем EEPROM в файл.
4. Там должны быть все 0xFF, кроме одного 0x00. Этот байт отвечает за флаг повышенного разрешения. Байт перед ним отвечает за шаг. Точнее содержит его значение в милливольтах. Записываем его туда в 16-ричном формате. Для 10мВ будет 0x0A.
5. исправляем контрольную сумму в конце строки, и пишем всё обратно в ВЦ.

Примечание: шаг=0 и шаг>200 считается некорректным, и принимается за 50 мВ.
4а. Величина смещения искомого байта = 22 = 0x16.


Цитата:
версия 007:
1. Работа с индикатором переведена на прерывания по таймеру. Теперь разряды не подмигивают.

Реализованные, но отключённые в данной сборке функции:
2. Отображение данных из встроенного в МК термодатчика;
3. усыпление МК через некоторое время при неактивности пользователя (если не трогает кнопки);
4. временно выкинул из настроек включение режима пониженной яркости;

http://alien.jabbercity.ru/v6/fw/20170613/vamp.hex


Цитата:
Инструкция по прошивке и история разработки от Алексея LaleksUi (за что ему большое спасибо. Smile )
Инструкция Пользователю
История Разработки





vc7_n31.zip
 Описание:
Последняя версия прошивки для ВЦ7

Скачать
 Имя файла:  vc7_n31.zip
 Размер:  15.46 KB
 Скачали:  1629 раз(а)


vamp_v6_n7.zip
 Описание:
Последняя версия прошивки для ВЦ6

Скачать
 Имя файла:  vamp_v6_n7.zip
 Размер:  4.85 KB
 Скачали:  1578 раз(а)


AVR Projects.rar
 Описание:
Исходный проект, который заливался в ВЦ5. Можно не скачивать, он уже сильно устарел.

Скачать
 Имя файла:  AVR Projects.rar
 Размер:  260.85 KB
 Скачали:  2206 раз(а)



Последний раз редактировалось: nik34 (Сб 02 Июн, 2018 12:24), всего редактировалось 11 раз(а)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Lex




Зарегистрирован:
Nov 23, 2016
Сообщения: 337
Откуда: 61

СообщениеДобавлено: Вт 06 Дек, 2016 0:11    Заголовок сообщения:
 Ответить с цитатой

Цитата:
сможете для моего ВЦ сделать прошивку, в которой напряжение на выходе вц будет отображаться на 1.25% ниже, чем отображается сейчас?

Сейчас формула для вычисления следующая:
U = (16*Uadc*1100) / 1024;
где Uadc -- 10-битное значение, измеренное АЦП,
16 -- неизменяемая константа (коэффициент аппаратного делителя напряжения).
Эти трогать нельзя.
Остальными двумя можете поиграться:
1100 -- максимальное измеряемое напряжение АЦП, мВ
1024 -- собственно, те самые 10 бит.
Давайте, что там вписать вместо них.
Только учтите, что деление здесь целочисленное. Т.е. с остатком, который выбрасывается.
И все промежуточные результаты вычислений ни при каких условиях не должны выходить за рамки диапазона [0..65535].
----
P.S. отредактировал сообщение: исправил формулу
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
RomaST




Зарегистрирован:
Dec 07, 2014
Сообщения: 119


СообщениеДобавлено: Вт 06 Дек, 2016 7:57    Заголовок сообщения:
 Ответить с цитатой

Lex писал(а):
Цитата:
сможете для моего ВЦ сделать прошивку, в которой напряжение на выходе вц будет отображаться на 1.25% ниже, чем отображается сейчас?

Сейчас формула для вычисления следующая:
U = (16*Uadc*1100) / 1024;
где Uadc -- 10-битное значение, измеренное АЦП,
16 -- неизменяемая константа (коэффициент аппаратного делителя напряжения).
Эти трогать нельзя.
Остальными двумя можете поиграться:
1100 -- максимальное измеряемое напряжение АЦП, мВ
1024 -- собственно, те самые 10 бит.
Давайте, что там вписать вместо них.
Только учтите, что деление здесь целочисленное. Т.е. с остатком, который выбрасывается.
И все промежуточные результаты вычислений ни при каких условиях не должны выходить за рамки диапазона [0..65535].
----
P.S. отредактировал сообщение: исправил формулу


А вот так можно?

U = 0.9879*(16*Uadc*1100) / 1024
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
LaleksUi




Зарегистрирован:
Nov 25, 2016
Сообщения: 32
Откуда: Кишинёв, Молдова

СообщениеДобавлено: Вт 06 Дек, 2016 19:16    Заголовок сообщения:
 Ответить с цитатой

константу 0.9879 надо представить например в виде 1000/1012=0.9881
если мне не изменяет память, еще важно спросить у автора, что "легче" менять 1100 или 1024. насколько я помню, эти цифры можно менять только на степени 2-ки. поправьте меня, если кто в курсе.

вычислить ваш коэффициент проще так:
(1/0.9879)*1000=1012.2482 (1012.25) это второй делитель,
например автор - умножает на 1100 и делит на 1024.

но важно спросить автора, какую из его цифр подгонять.
например подгоняем 1100, это пропорция:
(1.0000- исходный коэффициент автора по-умолчанию)
1.0000 - 1100/1024
0.9879 - х/1024

получаем:
(1100*0.9879/1024)/1.000=х/1024, => х=1100*0.9879, = 1086.69

дальше надо подобрать ближайшую степень двойки: это 1024+64=1088
или меньшая: 1024+32+16+8+4+2 = 1086.

вижу что много "мудрствований", но я хотел объяснить как подбирать коэффициент.

вот результат: вместо 1100 пишем 1086. пусть автор меня поправит, если что.
проверим:
Цитата:
А вот так можно?
U = 0.9879*(16*Uadc*1100) / 1024

16*Uadc - это константа, она нас не интересует.
0.9879*1100/1024=1,061220703125
1.0000*1086/1024=1,060546875
1.0000*1088/1024=1,0625

вот вы сами видите разброс ошибки отклонения.
возможно, имей я больше знаков после запятой в коэф. 0.9879,
точность при подборе степеней 2-ки была бы на 1 -2 шага другая. но вам решать, важно ли это.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
RomaST




Зарегистрирован:
Dec 07, 2014
Сообщения: 119


СообщениеДобавлено: Вт 06 Дек, 2016 22:52    Заголовок сообщения:
 Ответить с цитатой

LaleksUi писал(а):
константу 0.9879 надо представить например в виде 1000/1012=0.9881
если мне не изменяет память, еще важно спросить у автора, что "легче" менять 1100 или 1024. насколько я помню, эти цифры можно менять только на степени 2-ки. поправьте меня, если кто в курсе.

вычислить ваш коэффициент проще так:
(1/0.9879)*1000=1012.2482 (1012.25) это второй делитель,
например автор - умножает на 1100 и делит на 1024.

но важно спросить автора, какую из его цифр подгонять.
например подгоняем 1100, это пропорция:
(1.0000- исходный коэффициент автора по-умолчанию)
1.0000 - 1100/1024
0.9879 - х/1024

получаем:
(1100*0.9879/1024)/1.000=х/1024, => х=1100*0.9879, = 1086.69

дальше надо подобрать ближайшую степень двойки: это 1024+64=1088
или меньшая: 1024+32+16+8+4+2 = 1086.

вижу что много "мудрствований", но я хотел объяснить как подбирать коэффициент.

вот результат: вместо 1100 пишем 1086. пусть автор меня поправит, если что.
проверим:
Цитата:
А вот так можно?
U = 0.9879*(16*Uadc*1100) / 1024

16*Uadc - это константа, она нас не интересует.
0.9879*1100/1024=1,061220703125
1.0000*1086/1024=1,060546875
1.0000*1088/1024=1,0625

вот вы сами видите разброс ошибки отклонения.
возможно, имей я больше знаков после запятой в коэф. 0.9879,
точность при подборе степеней 2-ки была бы на 1 -2 шага другая. но вам решать, важно ли это.


Спасибо! Меня любая точность устроит.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Lex




Зарегистрирован:
Nov 23, 2016
Сообщения: 337
Откуда: 61

СообщениеДобавлено: Ср 07 Дек, 2016 11:49    Заголовок сообщения:
 Ответить с цитатой

LaleksUi писал(а):
константу 0.9879 надо представить например в виде 1000/1012=0.9881
если мне не изменяет память, еще важно спросить у автора, что "легче" менять 1100 или 1024.
Предпочтительнее, конечно, 1100. Т.к. деление на 1024 можно ускорить, заменив сдвигом на 10 бит. Только для меня остаётся загадкой, почему в случае такой замены размер прошивки увеличивается на несколько байт. Потому пока оставил как есть.
Цитата:
насколько я помню, эти цифры можно менять только на степени 2-ки. поправьте меня, если кто в курсе.
1100 и так уже не степень 2, так что её изменение вряд ли на что-то повлияет.

Цитата:
получаем:
(1100*0.9879/1024)/1.000=х/1024, => х=1100*0.9879, = 1086.69
Думаю, этим можно и ограничиться, 1087. Т.к. у нас сейчас больший дефицит памяти, чем производительности.

о калибровках:показать

К тому же, есть предпосылки к программным калибровкам, хранимым на флешке. Оказалось не так уж и сложно встроенную флешку писать-читать. При загрузке читаем [ранее записанные нами] коэффициенты для каналов, и далее их используем.
Но тут возникает подводный камень: Флешка, в общем случае, может быть записана произвольными значениями, а мы их будем читать. Т.е. тут возникает вопрос, как отличить записанное нами значение от мусора.
Есть идея именно это значение [1100] хранить как калибровочный коэффициент в 2х байтах [0..65535], и позволять его изменение в пределах, ну скажем, [1000..1200], остальные значения считать некорректными и инициализировать значением 1100.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Lex




Зарегистрирован:
Nov 23, 2016
Сообщения: 337
Откуда: 61

СообщениеДобавлено: Ср 07 Дек, 2016 16:13    Заголовок сообщения:
 Ответить с цитатой

Кто грузил версию 004? У меня там какой-то левый файл был залит. Перезалил. Был 10617 байт, теперь правильный 10891.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
RomaST




Зарегистрирован:
Dec 07, 2014
Сообщения: 119


СообщениеДобавлено: Ср 07 Дек, 2016 18:05    Заголовок сообщения:
 Ответить с цитатой

Lex писал(а):
Кто грузил версию 004? У меня там какой-то левый файл был залит. Перезалил. Был 10617 байт, теперь правильный 10891.


Алексей, у Вас получится внести корректировку напряжения в 4 версию, или мне эту заливать?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Lex




Зарегистрирован:
Nov 23, 2016
Сообщения: 337
Откуда: 61

СообщениеДобавлено: Ср 07 Дек, 2016 18:13    Заголовок сообщения:
 Ответить с цитатой

Пока не буду корректировать. В 4ке ускоренная установка не работает, в 5ке починю. Попробую туда ещё таймер и калибровку с флешки впихнуть.
Если поместится, то для калибровки будет использоваться отдельная прошивка: Шьём калибровочную - калибруем - шьём рабочую - пользуем.
Пока считаю таймер зарядки более приоритетным, чем калибровка измерителей.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
nik34



Зарегистрирован:
Mar 23, 2008
Сообщения: 2820
Откуда: Москва

СообщениеДобавлено: Ср 07 Дек, 2016 18:20    Заголовок сообщения: Re: про первый пост
 Ответить с цитатой

LaleksUi писал(а):
очень прошу... альтернативный вариант прошивки (с уменьшенным шагом, например) тоже публиковать в первом посте под отдельным спойлером.

Добавил ссылку на 4й вариант прошивки в первое сообщение.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Lex




Зарегистрирован:
Nov 23, 2016
Сообщения: 337
Откуда: 61

СообщениеДобавлено: Ср 07 Дек, 2016 19:29    Заголовок сообщения:
 Ответить с цитатой

Внимание вопрос:
1. Какие каналы измерения хотим калибровать? Все?
2. В каких пределах? Пока думаю целочисленный множитель 1100 позволить менять в диапазоне [1000..1200]
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
nik34



Зарегистрирован:
Mar 23, 2008
Сообщения: 2820
Откуда: Москва

СообщениеДобавлено: Ср 07 Дек, 2016 19:51    Заголовок сообщения:
 Ответить с цитатой

Lex писал(а):
1. Какие каналы измерения хотим калибровать? Все?

Для надежности можно калибровать Uin и токовые.
U и Uас смысла не вижу, т.к. они подгоняются в "железе", которое сбойнуть не может (уже обсуждали). Это для основного варианта. Для желающих, можно дать версию, где калибруются и эти каналы тоже.

Цитата:
2. В каких пределах? Пока думаю целочисленный множитель 1100 позволить менять в диапазоне [1000..1200]
Да, пожалуй и хватит +-10%. Хотя, ток измеряется иногда и с большей погрешностью, но это не такой уж важный параметр.

------------------------
Да, кстати, посмотрел сгоревший разъем на плате, которую Вы мне вернули.

Версия, почему это могло быть. Возможно вначале произошел разогрев разъема, из-за этого пластиковая втулка, которая держит центральный штырек размягчилась и ее повело в сторону, а сдвиг ее примерно на 1мм уже вызывает КЗ.
Разогрев возможен, например, при грязи в разъеме либо, что более вероятно, если напряжение внешнего блока сильно различалось с напряжением на внутренних акк. Тогда токи перетечки будут довольно большие и разогреют разъем. У меня похожий разъем потек уже амперах при 7.
Требования к безопасности:
1. при подключении внешнего блока надо следить, чтобы напряжение на нем не отличалось бы от напряжения на внутренних акк. больше, чем, скажем, 0.2...0.3В.
2. Внутренние аккумуляторы должны быть всегда установлены оба. и быть хорошего качества. (смысл в том, что максимальный ток от акк., который может взять ВЦ, ограничен на уровне 5.5...6А и желательно, чтобы как можно большая часть этого тока поставлялась из внутренних акк., а не проходила через разъем, который от такого тока будет разогреваться.)
------------------------
Да, и ВЦ с этой "погоревшей" платой может быть куплен, если кто желает, ну, скажем, за 1000р без акк. (1500р с акк.). Он полностью рабочий. Корпус заменен на новый. Место, где был разъем зачищено и покрыто лаком. Также заменены минусовые контакты, где пружины ослабли от разогрева.
Но плата будет без разъема, т.е. если захочется подключить внешний блок, то его провода надо будет самому припаивать к плате, либо ставить свой разъем.


Последний раз редактировалось: nik34 (Ср 07 Дек, 2016 20:02), всего редактировалось 3 раз(а)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
RomaST




Зарегистрирован:
Dec 07, 2014
Сообщения: 119


СообщениеДобавлено: Ср 07 Дек, 2016 21:55    Заголовок сообщения:
 Ответить с цитатой

Lex писал(а):
Внимание вопрос:
1. Какие каналы измерения хотим калибровать? Все?


Нужно откалибравать канал U.
И тот канал, который измеряет напряжение на аккумуляторе в режиме ЗАР, если он отличается от U.

Lex писал(а):

2. В каких пределах? Пока думаю целочисленный множитель 1100 позволить менять в диапазоне [1000..1200]


1087

Эту калибровку хотелось бы видеть в версии с шагом 10мВ.


Последний раз редактировалось: RomaST (Ср 07 Дек, 2016 21:57), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Lex




Зарегистрирован:
Nov 23, 2016
Сообщения: 337
Откуда: 61

СообщениеДобавлено: Чт 08 Дек, 2016 16:05    Заголовок сообщения:
 Ответить с цитатой

Начал делать таймер отключения зарядки -- стал превышаться размер прошивки. Оптимизирую код, чтобы попытаться таки впихнуть.
В лучшем случае получатся либо калибровки, либо таймер.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
nik34



Зарегистрирован:
Mar 23, 2008
Сообщения: 2820
Откуда: Москва

СообщениеДобавлено: Чт 08 Дек, 2016 19:01    Заголовок сообщения:
 Ответить с цитатой

Lex писал(а):
Начал делать таймер отключения зарядки -- стал превышаться размер прошивки. Оптимизирую код, чтобы попытаться таки впихнуть.
В лучшем случае получатся либо калибровки, либо таймер.

Думаю, таймер нужнее.
Не знаю, как Вы его делаете с точки зрения интерфейса, но, думаю, лучше всего его сделать следующим пунктом подменю после установки напряжения окончания заряда.
И еще, может сэкономить место на удалении показа номера версии, на выбрасывании разных экономичных режимов? Как-то не вижу я необходимости в этих вещах.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Lex




Зарегистрирован:
Nov 23, 2016
Сообщения: 337
Откуда: 61

СообщениеДобавлено: Чт 08 Дек, 2016 19:24    Заголовок сообщения:
 Ответить с цитатой

версия 005:
1. Исправлена ускоренная установка. Теперь работает.
2. Добавлен ВКлючаемый таймер для режима зарядки. Откалиброван по моему экземпляру. После выбора напряжения зарядки после буквы t устанавливаем количество минут (0=отключен).
3. Добавлены программные калибровки всех каналов измерения. Отличия от среднего более 10% игнорируются. Для записи калибровок будет отдельная прошивка.
4. Код прошивки перепахан в плане оптимизации по размеру. В результате на флешке занято 4094 байта из 4096 доступных.
http://alien.jabbercity.ru/v6/fw/20161208/vamp.hex

Квест на тему "как впихнуть невпихуемое" на сегодня пройден. С записью калибровочных коэффициентов будем разбираться завтра.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Lex




Зарегистрирован:
Nov 23, 2016
Сообщения: 337
Откуда: 61

СообщениеДобавлено: Чт 08 Дек, 2016 23:50    Заголовок сообщения:
 Ответить с цитатой

Цитата:
Для надежности можно калибровать Uin и токовые.
U и Uас смысла не вижу, т.к. они подгоняются в "железе", которое сбойнуть не может (уже обсуждали). Это для основного варианта. Для желающих, можно дать версию, где калибруются и эти каналы тоже.
Если пользователь не калибровал соответствующий канал, то с высокой долей вероятности в EEPROM по этому адресу будет лежать значение 65535 (как я понял, на стёртой или не записанной флешке все биты=1. На моём экземпляре, во всяком случае, так.), которое выходит за допустимые пределы, и будет игнорироваться. Следовательно, 5я версия без дополнительных телодвижений будет себя вести как не использующая программные калибровки.
Что же случится, если на флешке окажется какой-то мусор, и 2-байтное число оттуда неким чудом попадёт в разрешённый диапазон +/-10%?
- Для канала Uac будут не вполне корректно отображаться проценты. Неудобно, но на работе устройства никак не скажется, т.к. этот канал работает чисто на отображение.
- Для U (он же напряжение зарядки) может быть больше неудобств.
При завышаемых показаниях можем иметь некоторый недозаряд аккумуляторов. Чуть хуже, но ничего не испортится.
Занижаемые критичнее, хотя опять же, при отображаемых 5В будем иметь не более 5.5 -- в принципе почти в пределах допусков, многие устройства нормально прожуют.
Иными словами, проблемы могут возникнуть только с очень капризными по напряжению питания устройствами, при наличии мусора во флешке, при его удачном попадании в установленные рамки (200 допустимых значений из 65536). Всё это должно произойти одновременно. Да, за заниженные показания будут отвечать только половина из тех 200 значений.
Считаю такую вероятность достаточно низкой, чтобы оставить в общей прошивке функцию калибровок штатно.

Попробуйте погонять 5ку с секундомером на разных экземплярах. За начало отсчёта берётся момент начала зарядки. Это когда отображение с устанавливаемых минут переключается на проценты зарядки. Интересует разброс погрешности. У меня 1 минута отсчиталась идеально точно (с точностью до реакции пальца на кнопке часов. Показания на секундомере 01:00.1).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
RomaST




Зарегистрирован:
Dec 07, 2014
Сообщения: 119


СообщениеДобавлено: Пт 09 Дек, 2016 0:30    Заголовок сообщения:
 Ответить с цитатой

5я версия с каким шагом?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
LaleksUi




Зарегистрирован:
Nov 25, 2016
Сообщения: 32
Откуда: Кишинёв, Молдова

СообщениеДобавлено: Пт 09 Дек, 2016 1:04    Заголовок сообщения:
 Ответить с цитатой

я по старой привычке пользуюсь программой Far Manger, в ней есть простенький hex-редактор, и несколько плагинов с "крутыми" hex-редакторами.
также есть программа Beyond Compare, для сравнения двух файлов (она подсветит разницу);
но вот самый простой путь: команда FC (отличается только средняя строка)

fc vamp_u4_10mV-step.hex vamp_u4_50mV-step.hex
Сравнение файлов vamp_u4_10mV-step.hex и VAMP_U4_50MV-STEP.HEX
***** vamp_u4_10mV-step.hex
:1007AA00EEE3BE07E0E08E07E0E09E0730F498D162
:1007BA00E65FFF4F6F4F7F4F84D117C0F39B0CC08A
:1007CA00A0910202AA3018F473D1EF5F01C0E1E0F0
***** VAMP_U4_50MV-STEP.HEX
:1007AA00EEE3BE07E0E08E07E0E09E0730F498D162
:1007BA00EE5CFF4F6F4F7F4F84D117C0F39B0CC085
:1007CA00A0910202AA3018F473D1EF5F01C0E1E0F0
*****

***** vamp_u4_10mV-step.hex
:10080A0088D1F49B11C066D18AD1A93EE3E0BE0724
:10081A00E0E08E07E0E09E0730F062D1EA50F04057
:10082A00604070404ED116C0F39B0CC0A0910202EA
***** VAMP_U4_50MV-STEP.HEX
:10080A0088D1F49B11C066D18AD1A93EE3E0BE0724
:10081A00E0E08E07E0E09E0730F062D1E253F0405C
:10082A00604070404ED116C0F39B0CC0A0910202EA
*****


видите, в случае 10-50mV, всего 2 строки отличаются, а Beyond Compare еще и подсветит нужные буквы.
можно патчить самому, надо что бы лекс сказал где вписать нужый код.
в инете есть сайты которые переведут вам число в hex, конечно, надо все проверить,
не сложнее ли это будет,

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

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

лексу по оптимизации,
(тут я удалил неверные рассуждения, что бы не засорять тему)

Желаю Удачи и Везения в ваших изысканиях! Спасибо!


Последний раз редактировалось: LaleksUi (Пт 09 Дек, 2016 20:39), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
LaleksUi




Зарегистрирован:
Nov 25, 2016
Сообщения: 32
Откуда: Кишинёв, Молдова

СообщениеДобавлено: Пт 09 Дек, 2016 2:25    Заголовок сообщения:
 Ответить с цитатой

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

уважаемый лекс, идея с выносом калибровки на комп, будет невероятно удобной для Николая, автора ВЦ, ведь он имея плату перед собой, прошив ее стандартно, тут же измерив, вбив нужные значения в патчер, получит ту же самую версию прошивки, но идеально адаптированную под конкретный экземпляр ВЦ, которую прошьет 2й раз, получив максимально точно и индивидуально откалиброванный прибор!

у пользователя полностью исчезает потребность в калибровке!
это в корне меняет подход, и освобождает место в памяти ВЦ от функций калибровки.

как вам?


Последний раз редактировалось: LaleksUi (Пт 09 Дек, 2016 2:32), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Lex




Зарегистрирован:
Nov 23, 2016
Сообщения: 337
Откуда: 61

СообщениеДобавлено: Пт 09 Дек, 2016 12:01    Заголовок сообщения:
 Ответить с цитатой

Цитата:
5я версия с каким шагом?
50, она же общая

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

но это я к тому, что если мы знаем каждый свой коэф. , то то можем лично в стандартную прошивку его запихнуть, только нужна инструкция от лекса, проверенная.
Поясню.
В контроллере используется 2 типа флешки:

● 4Kbytes of in-system self-programmable flash (ATmega48)
Endurance: 75,000 write/erase cycles
Туда пишется пошивка.
Используется файл с расширением .hex

● 256 Bytes EEPROM (ATmega48)
Endurance: 100,000 write/erase cycles
в неё пишутся настройки, калибровки и прочие редко меняемые данные, которые нужно сохранить при отключении питания. Из неё v5 читает калибровочные коэффициенты.
Используется файл с расширением .eep

Шить их нужно отдельно. Это сделано, чтобы индивидуальные особенности экземпляра не затрагивали код прошивки.
Насчёт патчера. НЕ НУЖЕН! При большом желании можно на компе генерить файл .eep и шить его в EEPROM, не затрагивая прошивку, но программу для генерации пусть пишут желающие.

Цитата:
лексу по оптимизации, я заметил (это во всех прошивках так) но возьмем 5-ю: всего строк 258, отличаются первая и последняя строки, каждая строка заканчивается переводом строки и возвратом каретки (♪◙), прямо txt файл, начинается с ":"; и далее идет счетчик, после него 00, и далее данные. вот:

Цитата:
когда смотришь все это в hex редакторе, видно избыточность счетчика, начало строки - 1 байт, конец строки 2 байта, (напрашивается экономия на 2 байта)

Цитата:
например: убираем 2 байта в конце строки, оставляем только тот что в начале ":"
убираем 3 байта из начала счетчика, заменяем 00 (или вообще от него отказываемся) -1 байт (- 2)
убираем по 2 байта в конце первой и последней строк.

Цитата:
256*(2+3+1)+4=1540 байт экономии.

Рассуждения верны, только в том случае, если мы хотим экономить интернет трафик.
Формат файла прошивки описан тут:
http://microsin.net/programming/pc/intel-hex-file-format.html
https://ru.wikipedia.org/wiki/Intel_HEX
Иными словами, вся ваша избыточность и так никуда не прошивается.

Цитата:
уважаемый лекс, идея с выносом калибровки на комп, будет невероятно удобной для Николая, автора ВЦ, ведь он имея плату перед собой, прошив ее стандартно, тут же измерив, вбив нужные значения в патчер, получит ту же самую версию прошивки, но идеально адаптированную под конкретный экземпляр ВЦ, которую прошьет 2й раз, получив максимально точно и индивидуально откалиброванный прибор!

В чём принципиальное отличие от подхода, описанного здесь? [url]]http://mobipower.ru/modules.php?name=Forums&file=viewtopic&p=6419#6419[/url] Те же 2 операции прошивки: сервисной и рабочей.
Только требует ещё дополнительных телодвижений на компе, и все калибровки слетят при попытке пользователя обновить себе версию.

Цитата:
это в корне меняет подход, и освобождает место в памяти ВЦ от функций калибровки.

эмм... что? ничего там не освободится. функций калибровки в виде дополнительного меню в рабочей прошивке не будет.

Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Lex




Зарегистрирован:
Nov 23, 2016
Сообщения: 337
Откуда: 61

СообщениеДобавлено: Пт 09 Дек, 2016 12:06    Заголовок сообщения:
 Ответить с цитатой

Цитата:
Не знаю, как Вы его делаете с точки зрения интерфейса, но, думаю, лучше всего его сделать следующим пунктом подменю после установки напряжения окончания заряда.
Наши мысли сошлись, так и сделано.
Цитата:
И еще, может сэкономить место на удалении показа номера версии, на выбрасывании разных экономичных режимов? Как-то не вижу я необходимости в этих вещах.
Если уж очень прижмёт -- то придётся. Учту.
Кстати да, показ версии при нажатии двух кнопок уже выкинул в процессе кастрац.. Оптимизации.


Последний раз редактировалось: Lex (Пт 09 Дек, 2016 16:19), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Форум об электронике, зарядке аккумуляторов, солнечных батареях, вопросы по теме "сделай сам".
Начать новую тему   Ответить на тему    Список форумов -> Электроника Часовой пояс: GMT + 3
На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8, 9  След.
Страница 5 из 9

 
Перейти:  
Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прилагать файлы к сообщениям
Вы можете скачивать файлы


Форум Mobipower.ru - о солнечных батареях, аккумуляторах, зарядных устройствах, самоделках
 

Загрузка страницы: 0.08 секунды