Данная тема создана для того, чтобы написать другие прошивки контроллера вампирчика.
Ниже прицеплены последние варианты прошивок для Вампирчиков 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. Первая реализация ускоренной установки. (ВНИМАНИЕ!!! Требуется тестирование!)
Писал без тестов на железе. Если кому не лень -- прошейте-погоняйте. Стабильной пока считаем версию №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.
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.
Если и после этого не отпустили верхнюю кнопку -- попадаем в меню настроек.
Безопасный сброс и меню калибровок одновременно в прошивку не помещаются. Потому две на выбор. Отличить можно по наличию меню калибровок.
Самый простой способ, чтобы не вычислять смещения:
1. включаем свежепрошитую (или со сброшенными настройками) 6ку.
2. в меню настроек устанавливаем режим повышенного разрешения. Больше никаких настроек и калибровок не меняем.
3. сохраняем EEPROM в файл.
4. Там должны быть все 0xFF, кроме одного 0x00. Этот байт отвечает за флаг повышенного разрешения. Байт перед ним отвечает за шаг. Точнее содержит его значение в милливольтах. Записываем его туда в 16-ричном формате. Для 10мВ будет 0x0A.
5. исправляем контрольную сумму в конце строки, и пишем всё обратно в ВЦ.
Примечание: шаг=0 и шаг>200 считается некорректным, и принимается за 50 мВ.
4а. Величина смещения искомого байта = 22 = 0x16.
Цитата:
версия 007:
1. Работа с индикатором переведена на прерывания по таймеру. Теперь разряды не подмигивают.
Реализованные, но отключённые в данной сборке функции:
2. Отображение данных из встроенного в МК термодатчика;
3. усыпление МК через некоторое время при неактивности пользователя (если не трогает кнопки);
4. временно выкинул из настроек включение режима пониженной яркости;
ещё в копилку пожеланий к прошивке:
- прямой и/или обратный отсчёт времени в режиме зарядки
- измерение закачанных А*ч и Вт*ч в аккумуляторы
- при отключении зарядки по времени, сообщать об этом на индикаторе (сейчас FUL)
- добавить возможность выхода из режима зарядки без перезагрузки МК
Фантазии по железу:
- придумать возможность регулировки яркости индикатора через встроенный ШИМ МК. Получим плавную настройку яркости без дополнительного мерцания и сложностей в программной реализации
- добавить пищалку/пьезик для возможности звуковой сигнализации о событиях, например, окончании зарядки
- а что если кинуть ещё один проводок с неиспользуемой ноги на кнопку включения? Хотя сейчас уже не знаю для чего это было бы нужно, т.к. режим зарядки заработал.
ещё в копилку пожеланий к прошивке:
...- добавить пищалку/пьезик для возможности звуковой сигнализации о событиях, например, окончании зарядки
Здоровые они по размерам. Только в более мощный.
Цитата:
- а что если кинуть ещё один проводок с неиспользуемой ноги на кнопку включения? Хотя сейчас уже не знаю для чего это было бы нужно, т.к. режим зарядки заработал.
Это было бы полезно, чтобы отключать только преобразователь и не дергать всю схему. Чтобы все работало заведомо корректно и не было гонок и гаданий "выключится-не выключится". Также, можно в таком варианте организовать поддержание заряда на заряжаемом аккумуляторе, когда возможно возобновить зарядку при снижении напряжения на акк.
Ну почему же здоровые? Пьезик очень даже небольшой, он меньше миллиметра в толщину. Можно клеить на крышку, и пружинками с платы подключаться. Так в часах делают, например в моей электронике-55.
Создать отдельную тему для инструкции, которую в первых постах со спойлерами расположить. А ниже -- обсуждение с удаляемыми постами.
Вопрос решён -- пост удалён.
Я, если честно, уже начал путаться в ЛС, что прочёл, на что ответил, и т.д. Там история переписки не отслеживается вообще никак.
LaleksUi, В инструкции используются разные цвета: Красный, синий (почти сливается со ссылками), светло-серый (почти сливается с фоном).
Опишите там же в обозначениях их назначение. Чтобы все понимали, какая информация каким цветом выделена.
- отображать зашкал для значений превышающих диапазон измерителей (U>17.6, I>2.2 ...)
** можно зажигать все точки, т.к. цифры могут прыгать, что бы "зашкал" не менялся с цифрами уже показывающими верхний предел; а так цифры будут просто стоять, а точки как светофор, будут сообщать - перегрузка, измеритель врет.
Можно зажигать. Но это чревато путаницей с режимом зарядки, когда точки мигают.
Я вполне допускаю, что зашкал может быть не постоянным, и визуально выглядеть как мигание в режиме зарядки.
Я себе это представляю по принципу мультиметров. Например, зажигать цифру "1" в первом разряде, и гасить остальные. Или, как вариант, рисовать минусы вместо цифр.
Зарегистрирован: Mar 23, 2008 Сообщения: 2823 Откуда: Москва
Добавлено: Ср 01 Мар, 2017 10:40 Заголовок сообщения:
Lex писал(а):
Николай, как там успехи с заменой контроллера на более ёмкий?
Контроллеры пришли, оба типа, что предлагали.
Правда, перепаивать я их не спешу в уже рабочие платы. Хочу доделать последние неск. десятков и если в них встретится нерабочий контроллер (такое уже было), который все равно перепаивать, то его и заменю.
Зарегистрирован: Nov 23, 2016 Сообщения: 337 Откуда: 61
Добавлено: Пт 10 Мар, 2017 15:20 Заголовок сообщения:
Скомпилил прошивку под более мозговитые варианты МК.
Шить некуда и проверять не на чем. Не факт, что верно выбрал маркировку чипа. Там много вариантов с дополнительными буквами.
Скрытый текст:показать
Chip: ATmega328P
Clock frequency: 1,280000 MHz
EEPROM usage: 25 byte(s), 2,4% of EEPROM
Program size: 2308 words (4616 bytes), 14,1% of FLASH
208 words (416 bytes), 8,3% reduced by Code Compression
Зарегистрирован: Mar 23, 2008 Сообщения: 2823 Откуда: Москва
Добавлено: Сб 11 Мар, 2017 17:44 Заголовок сообщения:
Lex писал(а):
Скомпилил прошивку под более мозговитые варианты МК.
Шить некуда и проверять не на чем.
Алексей, спасибо большое.
Не спешите, пожалуйста, не тратьте время и силы. В текущей версии все равно никто перепаивать контроллер не будет, а в новой, возможно, будут какие-то изменения в разводке ножек и т.д.
Кстати, у нас есть пара-тройка свободных ножек, может, подумать, как их использовать?
версия 007:
1. Работа с индикатором переведена на прерывания по таймеру. Теперь разряды не подмигивают.
Реализованные, но отключённые в данной сборке функции:
2. Отображение данных из встроенного в МК термодатчика;
3. усыпление МК через некоторое время при неактивности пользователя (если не трогает кнопки);
4. временно выкинул из настроек включение режима пониженной яркости;
версия 007:
1. Работа с индикатором переведена на прерывания по таймеру. Теперь разряды не подмигивают.
Реализованные, но отключённые в данной сборке функции:
2. Отображение данных из встроенного в МК термодатчика;
3. усыпление МК через некоторое время при неактивности пользователя (если не трогает кнопки);
4. временно выкинул из настроек включение режима пониженной яркости;
Большое СПАСИБО, мерцающий индикатор был крайне не приятен.
А подскажите почему данные функции были реализованы, но отключены?
и будут ли они включены?
Всё банально, и выше описывалось. Размер флешки меги48 не вмещает всех хотелок.
Уточню, если вдруг неправильно поняли:
Функции отключаются при компиляции прошивки. То есть, в исходнике программы они есть, в собранном бинарнике -- нет.
Последний раз редактировалось: Lex (Вт 21 Ноя, 2017 12:20), всего редактировалось 1 раз
Всё банально, и выше описывалось. Размер флешки меги48 не вмещает всех хотелок.
Уточню, если вдруг неправильно поняли:
Функции отключаются при компиляции прошивки. То есть, в исходнике программы они есть, в собранном бинарнике -- нет.
Ясно, ну самое главное залечилось и это замечтательно!)))
Вы можете начинать темы Вы можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прилагать файлы к сообщениям Вы можете скачивать файлы
Форум Mobipower.ru - о солнечных батареях, аккумуляторах, зарядных устройствах, самоделках