Открытый проект универсального зарядника

AlexN
AVK:

Тем более, что пики весьма дороги и требуют достаточно сложного программатора.

  1. Для кого как, а для меня 125-180 рублей уж точно не “весьма дорого”. В данном случае это скорее вопрос привычки, какой микроконтроллер применяет разработчик 😃
  2. Программатор собирается на 1 логической микросхеме.
Psw

Впаял в платку V10 кровати под Мегу и Макс и разъём для ЛЦД, КРЕНку и несколько кондёров/резисторов/кварец/цепь сброса МК. ЛЦД Драйв сигнал V0 просто закоротил R55 на корпус, остальные детали регулировки яркости не впаивал. В результате - пищалка пищит высоко/низко, потом пауза, потом низкий писк прерывается высоким - как будто сторожевая собака на ходу укусила, далее повторяется с примерно одинаковым интервалом около 10 секунд. На ЛЦД пара строк слегка темнее чем другая пара (4х строчный ЛЦД подключил), но никакой инфы. Комп подключенный после открытия порта в начале лога пишет про два таймаута, а потом (после нажатия на вкладке Ручное управление кнопки Обновить) - Запись D3, через примерно 9 секунд - чтение 00. Момент чтения 00 совпадает с началом высокого писка. Все эти 9 секунд BP.EXE сладко спит, включая перерисовку/перетаскивание окна, ну и переключение вкладок естественно тоже спит. Хотя буфер потом анализирует, вкладки с опозданием переключает, кнопки нажимает. После отключения от порта в окне лога странные тело движения.
Замерить частоту 16 МГц квареца прямо не могу, частотомер в мультиметре быть может до 4 МГц замеряет. Каковы мысли/советы, чего где померять/куда подключить? Кстати, L5 не впаивал - AVCC соответственно не подаётся. Это Мегу не смутит ? Керамика около 10-11 ног питания Меги впаяна, парочка танталов по 12 и 5 вольтам тоже впаял, 27 пик шунтирующие кварец на землю - тоже стоят. Ну и пищание говорит за то, что кое-как, но - возбудился. Прошил Хексом из позднейшего 1.0 архивчика. Прошивал внешним программатором Triton, биты конфигурации не трогал, хотя поставил галку их прошить. Их значение есть в HEX файлике ?

Psw

Ну вот - дистанционная отладка через интернет - кто-то где-то уже высказывался по поводу лёгкости/перспективности ентой затеи.
Вот как стоят фузы меги32:

Ну а вот как выглядит осц сигнала Е (6 контакт) на разъёме ЛЦД:
(Не разобрался, как в новой версии IPB вставлять в текст второй и третий прикреплённый файл - картинка будет в конце сообщения - выпадающий список Управление Текущими Файлами - выпадающие 2 и 3 элементы закрываются полем ввода имени загружаемого файла - просто ненавижу джава и иже с ней за частое отсутствие обратной совместимости - наверняка под Експлорер 7.0 и Виста Супер всё будет выпадать как надо)
Ну и работоспособность/правильность распайки кабеля/разъёма/макс232 проверил - перемыка между ногами 14 и 15 в кровати меги32 приводит к тому, что ГиперТерминал успешно видит эхо выдаваемых символов на скорости 115К ну и 19К - тоже видит. Так что - по периоду/длительности импульса сигнала Е который для ЛЦД генерится насколько я понял в прерывании по переполнению таймера - можно косвенно судить о реальной имеющейся тактовой проца.
Читая коменты к примеру в jki.cpp ( я бы ентот файлик пере обозвал lcd.cpp с удовольствием) мне кажется, что длительность импульса Е должна быть около 128 мкс. На деле мой игрушечный Веллеман PCS500 намерял период около 6 МИЛЛИ секунд и длительность 1 - чуть более 2х МИЛЛИ секунд. В итоге мне кажется, что с фузами я чего-то не того сделал и Мега не возбуждается на 16 МГц. Пьяное переваривание мануала Mega32_doc2503 страница 23 строк типа 1. For all fuses “1” means unprogrammed while “0” means programmed ну и галок (вместо 1 и 0) в программере - заставляют НЕ понимать, какой строке таблицы мануала соответствует Галка. Хотя - всего два варианта, глубоко научный тык.
После инверсии фузов CkSel0-3 и CkOpt

Мега завелась так, что пикающие звуки стали похожи на музыку с неким ритмом, длительность сигнала Е стала близка к 128 мкСек

  • можно считать что вопрос с возбуждением на 16 МГц снят, однако ЛЦД как молчал так и молчит. А вот обмен с ПК прогой BP.EXE заработал, читает и флэшу и ОЗУ и ЕЕПРОМ.
    Остаточный вопрос - чего померять ещё в ЛЦД ? Много канального Логгера логических уровней (Веллеман PCS10 к примеру) у меня нету, проверить выдаваемое на ЛЦД не могу. Хотя с виду всё верно распаяно, надо бы аналогичный 2х рядный 16 контактов разъёмер на другую мою макетку запаять и индикаторы местами поменять - ну уж совсем на всяк случай, проверить работоспособность ЛЦД.
    А ещё прикольная особенность - реагирует на поднесение руки (ближе 10 см) затяжным писком, пропадающим при убирании руки. Но музыка после этого уже не играет, а просто повторяющиеся пики - быть могет всё енто из-за болтающихся в воздухе входов АЦП или ещё каких.
    Одним словом, жду новых советов.

AlexN

Аналоговое питание к Меге подключено?

mega_john
Psw:

Остаточный вопрос - чего померять ещё в ЛЦД ?

еще можно (нужно) контрастность дисплюя покрутить 😃

R2D2

Трудновато однако дистанционно налаживать плату.
Для начала общие рекомендации:

Скорость порта не трогайте пусть пока будет такая, когда все оживет тогда будем про это говорить.
Кварц обязательно должен быть 16 МГц.
Про фузы в статье все четко написано (проверьте их и прошейте отдельно правильно).
Изначально в ЕЕПРОМЕ и ФЛАШЕ лежат еденицы (это означает незапрограммировано).
Если вы переворачиваете, значит программируете.
Галочка значит программируете значит вписываете 0.

Если Ваши 12в стабилизированные, то из силовой паять ничего не надо.
Достаточно запаять только цифровую часть там ее из платы ровно половина.
Не понял чем шьете. У вас есть 4 сопра 2 стабилитрона и 1 транзистор - шейте понипрогом.
COM шнурок я спер с работы 1 в 1 от какогото упса.
Если не фунциклит нормально, большая прога может портить прошивку.
Этот HEX не содержит фузов, не содержит ЕЕПРОМ, а содержит только ФЛАШ этого достаточно.
Так делает IAR. Я не знаю формата HEX intel-standart.

Обязательно или впаяйте L5 или закоротите перемычкой. Это питание АЦП преобразователя, иначе можно спалить.

На ЛСД 2хстрочном при подключении питания и правильной припайки ноги “V0” на +5 контраста/поляризации должна быть первая строка черная, вторая белая. Задержки у меня сильно увеличены это не возбраняется, я тоже писал про это.

Сегодня попробую свой четырехстрочный приделать. И посмотреть.

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

Ныняшняя прошивка при включении должна за 10-15 секунд переписать ЕЕПРОМ начальными акками, потом сыграть диггера на 2ной частоте посравнению пианином и потом выдать приглашение на ЖКИ

Удачи!!!

R2D2

Забыл ответить на рассуждения AVK.

Как обычно, каждое предложенное решение несет в себе и плюсы и минусы.

  1. Про кнопки, а не энкодер согласен.
  2. Про использование смд и согласен и нет. Никто не мешает развести еще одну PCB под обычные сопры.
    Уже сейчас в москве обычные сопры с трудом найти можно и сильно переплатить за штучность покупки.
  3. Точные сопротивления нужны чтоб от температуры хоть чуть меньше зависеть.
  4. Что касается сепик тоже и да и нет. Народ будет голосовать сам. И потом в планах у меня было сделать несколько силовых, но оставить тл494 и ЛМки. В силовой чуть перекомпоновать диод дроссель и кондер и вот вам уже step-Up или step-down.

Ну а если удасца с сепиком замутить подобрав количество витков (там их всего 10-15 штук) и кондеры, то…

//------------------------------------------------------------------------------------------------------------------------------------------

Убил отряд глюков, оптимизировал расчеты и повысил скорость, нарисовал иконки.

Вот вчера весь вечер заряжал сразу 2 канала NiMh 8S.
Потом заряжал 3 банки LiPo.

Вродибы фуньциклит нормально.

Микро
Макро

AVK

Потихоньку начну разводить цифровую часть, но на обычнюх компонентах. К слову на SMD крайне затруднительно развсети одностороннюю плату. Я так понимаю что у нас будет односторонняя?

AlexN
AVK:

К слову на SMD крайне затруднительно развсети одностороннюю плату. Я так понимаю что у нас будет односторонняя?

Разводка односторонней платы на СМД ничем не отличается от такой же разводки на выводных компонентах.
Как разработчик печатных плат говорю.
И мне тоже пора приниматься за дело, развожу на СМД.

R2D2

Да односторонняя!!!

Часа через 3 доложу что вышло из подключения 4х20 ЖКИ.

Пока он только засветился и ничего не показывает, а работать однако надо.

R2D2

4x20 жки замечательно работает.

НО

Ногу VO пришлось приделать к земле, тогда он начал показывать.

А вот фузы

AVK

Ну,ну, не сложнее, я между обычным резистором 6 дорожек протащу, а под SMD одну, и между диповскими ногами тоже дороги пролетают.
Тоже говорю на собственном опыте, обычно переделывая чью-то плату под штырек, удается избавиться от 80% перемычек.
Недавно переразводил плату паяльной станции, удалось избавиться от всех перемычек (8 шт) + как ни парадоксально в два раза сократить площадь платы 😃

Psw

Итак, продолжение дистанционной отладки через интернет.
ЛЦД не инициализировался потому, что Не работали DB7 и DB6 из-за разрешённого фузами JTAG. Скачал новую версию ТритонСофта и он получше прошивает/стирает - ЛЦД начал нормально очищаться, все 4 старших бита данных какую-то инфу качают с перепадами посерёдке между пиками Enable, всё как надо. Но тем не менее - музыка зациклена с периодом около 2.4 секунды - что сильно напоминает период WDT. Добавил в начало int.cpp
__interrupt void timer0_ovf_my(void) { __watchdog_reset();
для более частого убивания бешенной собаки - но результата это не имело (кроме того, что смог проект под ИАР 4.12.1.3 скомпилить и скомпилённый хекс в мегу залить и она даже заработала опять), музыка всё-равно зациклена 2.4 секунды. Диггера не слышал, оценить сходство не могу. Наводки с постоянным писком были действительно связаны с АЦП ноги 33-40 - подал на них AREF пока что. Все детальки сразу паять страшновато - что-бы не напортачить. Но видимо придётся. Хотя лучше бы конечно что-бы R2D2 определил приоритеты - из-за отсутствия каких сигналов/каких болтающихся в воздухе ног Меги прога может себя так вести, что-бы музыка циклила. А я пока что детальки потихоньку буду на плату добавлять.
Ну вот, писал это сообщение и вспомнил, что новая прошива с убитым отрядом глюков. Прошил - ЛЦД уже пишет Канал-1 пуск ну и до этого кое-что тоже, дата мелькает, двухканальное зарядное и прочие строки. И непрерывные пики идут. Так что победу над JTAGом можно считать свершённой.
Через несколько минут ожидания на экране - циклически сменяющиеся надписи - кнопка типа нажата. Я же резисторы подтягивающие к земле сигналы кнопок не впаял - вот и результат. Хотя после впайки резисторов R66 и R67 - поведение не изменилось вроде.
Кстати, я же енкодер не впаивал, а - прога сейчас на что заточена ? И кстати - напоминаю про возможность опроса 5 кнопок по шине LCD, если подтянуть резисторами примерно 10Ком к +5 вольт выводы Меги 22-26, кнопки через индивидуальные диоды и один общий резистор примерно 200 Ом к выводу меги 28 - и в драйвере дисплея между сменами данных на шине - добавить ещё один интервал 128 мкс, в начале которого шину на ввод, а в конце - читать с неё байтик состояния кнопочек. И эти кнопки можно вполне на платке ЖКИ приклеить - провода/разъём один и тот же.

R2D2

Да точно. Все заточено под енкодер. Если его нога висит может такое быть что прога непрерывно меню мотает.
В статье есть список окончательных исправлений. Все что связано с силовой пропускаем.

Собака и JTAG предусмотрены в программе и в фузах.
Если проц работает на меньшей частоте собака может срабатывать.
Прога и фузы проверены ничего добавлять не надо!
Пойманные глюки связаны зарядкой аккумов, а не с дровами клавы музыки и ЖКИ эту хрень я давно не трогаю.

Для минимального запуска проца нужно:

  1. Кварц и два кондюка по 27 пиков.
  2. Кнопки S0 S1 к земле притянуть.
  3. AVCC на +5 и AGND на землю и MENU на землю.
  4. Проц прошить нормально, может прошивалка файл неправильно понимает
    В свойствах проекта BP-RELISE->Правая кнопка мыши->Options->Linker->OUTPUT->OutputStandart->Intel-Standart
    можно поменять на стандар понятный вашей прошивалке.
    (Но я бы впаял 4 сопра 2 стабилитрона и 1 транзистор и на понипрог.)
  5. Фузы прошить как указано выше
  6. После 3х стаканов чая перепроверить ноги ЖКИ.
  7. Ну пищалку

Чтобы избежать гимора и суматохи (в конце окажется), что просто впаять всю цифровую былобы быстрее.

Еще раз просто Удачи.

AlexN
AVK:

Ну,ну, не сложнее, я между обычным резистором 6 дорожек протащу, а под SMD одну, и между диповскими ногами тоже дороги пролетают.

Недавно переразводил плату паяльной станции, удалось избавиться от всех перемычек (8 шт) + как ни парадоксально в два раза сократить площадь платы 😃

Ах да! Я обычный резистор на плате в последний раз использовал три года назад 😁 Про дорожки и не подумал 😃 А под чип-резисторами/конденсаторами никогда дорожки не провожу в принципе. Ладно, поглядим, насколько это будет критичным.
А платы паяльных станций китайскими студентами-практикантами трассируются, так что ничего удивительного 😒

Psw
AVK:

на SMD крайне затруднительно развести одностороннюю плату. Я так понимаю что у нас будет односторонняя?

Блин, ну лично по мне отверстия, лужение, металлизация дырок, шелкография и прочие вкусности промышленной платки стоят тех 200-300 рублёнцев что за неё придётся заплатить при заказе хотя бы десятка нормальных проверенных платок. Откуда такая любовь к лазерному утюгу и микро дрели ? Хочется дать возможность Дяде Васе на коленке зарядки клепать ? Так я будучи на месте ентого Дяди Васи - всё-равно купил бы готовую платку с удовольствием. Потому как всё-равно много придётся покупать, да и лудить/паять - тоже не мало. А паять SMD без предварительного лужения и шелкографии - ещё то удовольствие, представляю.

Вынужден отметить, что давненько не перечитывал подробно статью из-за её объёма - исправлюсь.
Из-за неполной инициализации джавы не могу пользоваться кнопками Вставить Ссылку и прочими, а руками писать тэги - лень.

R2D2:

Собака и JTAG предусмотрены в программе и в фузах.

Ну в фузах - согласен, а вот в проге - не знаю. Вроде как Мега может запретить JTAG при стоящей галке JTAGEN, однако я этого не заметил - на 24 и 25 ногах меги действительно не было выходных сигналов для ЛЦД - я не вру 😉 Хотя прога заводилась (пищала) и если бы она надёжно затыкала JTAG ( в мануале вроде углядел про необходимость затыкать несколько раз с интервалом) в модуле void InitAll(void) - то ЛЦД работал бы даже на низкой тактовой (судя по длительности Е Мега заводилась на 1 МГц примерно вместо 16)

R2D2:

Прога <> проверена ничего добавлять не надо! <> дрова клавы музыки и ЖКИ <> давно не трогаю. <> 6. После 3х стаканов чая перепроверить ноги ЖКИ.

Зато я - трогал, пользуясь открытостью исходника. Ну там пытался слегка строку инициализации поменять и ещё по мелочи - ну вот ручки шаловливые и привнесли глюков, которые исчезли при использовании оригинальной прошивы. Линии от ЖКИ до кровати Меги тоже кстати прозванивал - это вместо того, что-бы сразу вторым каналом ОСЦ по сигналам на ногах пробежаться и всё стало видно. А потом вспомнил высказанное где-то Вад64 сообщение про JTAG, начал мануал меги читать и увидел, что он аккурат на ногах ЛЦД сидит. А у меня первоначально галка JTAGEN действительно стояла.

R2D2:
  1. Проц прошить нормально, может прошивалка файл неправильно понимает
    <>
  2. Ну пищалку

Прошивалка www.triton-prog.ru/download.html не бесплатная, разные форматы файлов автоматом понимает. Кроме того, если при прошивке поменять местами каждые 2 байта к примеру или ещё как-либо “не понять” файлик - Мега должна вообще улететь в небеса и никакой музыки и любых других осмысленных действий не будет. А у меня - были осмысленные действия - сигнал Е мега формировала нормально и два сигнала данных.
А вот не собирать сразу всё - хочется, потому как не хочется мне возиться с подбором 1% элементов фильтрации ШИМа к примеру. Потому как в наличии есть ww1.microchip.com/downloads/en/…/21897B.pdf двухканальный MCP4922 12 бит ЦАП, который можно по SPI подключить к проектику и к плате проводками припаять - мне не в первой. Зато двух таких гравиЦАПов хватит для управления ТЛ и нагрузочными транзисторами без гемора и очень шустро. Осталось придумать, на какие ноги Меги их посадить для минимального конфликта с остальным проектом.
А присланная R2D2 пищаль поломалась на второй день экспериментов - проводок отломался. Пришлось впаять КТ3102, базовый резистор к нему, и в цепь коллектора динамик от матери компа махонький параллельно с 0.1 мкф для гашения индуктивных выбросов - ничего, тоже пищит прикольно. Зато ентих динамичков у меня много и выводы к ним можно перепаять - в отличие от заклеенной пьезо пищали.

R2D2

От JTAG я программно защищался потом выкинул и так все работает.

1% элементы это я для красоты нарисовал, чтоб если фильтр нефильтровался ясно было, где править надо.
А у себя я запаял обычные 10% все фунциклит более менее.

По прежнему предлагаю приделать понипрог и попробовать через него.
Или поменять кварц. Наверное попрет и 14 МГц.
Перепаять 22-27 пиков.

Фузы вы вписали. Потом все вырубить, врубить и прочитать их. Будет тоже самое?

Попрежнему думаю глюк какойто очень простой.

Чтобы собака не срабатывала в подпрограмме main.cpp(PrepAll) натыкайте после каждой строки сброс собаки.
Повидимому какаято фигня с частотой проца.

Могу налобать какуюнибудь простенькую прогу, которая будет замерять частоту проца и писками выдавать ее.
Или выдавать частоту скоканибудь герц на какойнибудь ноге

Последние исправления связанные с зарядом липо

Psw

Вот же блин, в моих длинных старательно написанных и подолгу обдуманных постах - смысл видимо теряется за обилием слов.
Кратко - ЛЦД уже заработал, а обмен с компом в начале (вроде бы) заработал а теперь снова нет. Я просто ход своих мыслей описывал.
А сейчас впаял все защитные диоды и резисторы во всех каналах АЦП - и прога перестала постоянно пищать, висит на надписи Универсальное Зарядное ЗУ, Oct 29 2007 35A7 - видимо ждёт нажатия кнопок, которых нету пока что. Музыка играется при включении 1 раз и затихает.
Обмен с компом - как уже говорил, если втыкаю перемыку в гнездо Меги между 14 и 15 ногами RXD и TXD то комп прекрасно видит эхо выдаваемых на платку символов - кабель/разъём/макс232/плата исправны. А вот читать состояние экрана не может, хотя какая-то инфа из Меги в ответ на команду начинает выливаться и в окне лога BP.EXE эта инфа мелькает.

R2D2:

От JTAG я программно защищался потом выкинул и так все работает.

Ну вот если бы не выкинулось, то от неправильно поставленной галки JTAGEN меня бы спасло.

R2D2:

Могу налобать какуюнибудь простенькую прогу, которая будет

Частоту проца я уже раньше понял как померять - длительность импульса Е на 28 ноге меги определяется переполнением таймера и должна быть 128 мкСек при 16 МГц тактовой - что мой игрушечный осц и намерял с точностью лучше 5% - я даже осциллограммы выше прикладывал.
А про написать прогу - ну давайте уже подумаем про минимально возможные изменения, что-бы гравиЦАПу приспособить для управления ТЛ и разрядными транзисторами. А если ног для этого не хватит - то кнопки на интерфейс ЛЦД перенесём.

R2D2

Связь с компом работает так:
И комп и ЗУ изначально настроены на 19200 скорость.
Со стороны компа просто выбирается в списке.
Со стороны ЗУ в main.cpp надо найти строку “UBRRL=51;” и поменять на че хотите в соответствии с шитом.

Далее:
Вы жмахаете кнопку дай экран ЖКИ.
Команда прилетает в ЗУ. (uart_in.cpp(строка case U_GiveMeScren:))
Если команда исказилась ЗУ переспрашивает а че хотели то?
Если она прилетела без искажений, то в ответ на нее
(uart_out(первые строки)) формируют пакет
0. Таже команда
1.-38. Видео буфер (32 символа и кой какие команды) на 38 место ставим адрес курсора моргающего
39. Контрольная сумма

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

Насчет ЦАПа.
Нужна инфа как его грузить? Это 1-3 свободных вечеров экспериментов.

Фильтр замечательно работает и настройки не требует. Если чесно мне не хотелось бы в этом направлении идти, но если будут вопросы по проге подскажу.

Тут обнаружен замечательный экран ЭлЭсДэ графический 133х64 точки с внешней подсветкой PCF8535 за 190 руб. Я его хотел на тотже разъем привесить.

Тут в недрах мордовии владыка саурон 30 лет и три года мастерит супер мега кольцо тьфу ты ЗУ.
Короче зародилась версия 2.0 HiEnd класса в ней все это предусмотрено и многое другое. Автор пока не готов высказаться поэтому и молчит.
А эта версия упрощенно попсовая. Я бы не трогал ЦАП лучше АЦП.
Вот АЦП хрен знает как плавает - его надо внешним делать и штуки 4 бита добавить еще.
И это тоже во 2 версии учтено.

R2D2

У меня Кнопки в ручном управлении работают.

Надо проверять скорости, конденсаторы и провода.

Psw

Пара дней паузы на гульки, однако - продолжим. Кстати, перечитал статью и если вдруг я спрашиваю что-то, что там уже описано - нет смысла здесь это цитировать, а надо сразу отсылать меня к нужной странице (или глава/раздел) в статье - мне так кажется правильнее.

R2D2:

Связь с компом работает так <>Вы жмахаете кнопку дай экран ЖКИ <>Если она прилетела без искажений, то <> формируют пакет
0. Таже команда+1.-38. Видео буфер <> 39. Контрольная сумма

BP.EXE не позволяет копировать в буфер содержимое вкладки лога - но и так видно, что в ответ на команду [84] прилетает длинная строка, первый байт которой [28] и далее 3A 08 6C D7 E8 E2 E5 F0 F1 E0 EB и далее - лень цитировать. Понятно, что 84 <> 28, НО - на ОСЦ асинхронный байт 0х84 выглядит как Провал Стартовый интервал и первая единица - Пик Четыре Нуля - Провал Единица - Пик Два Нуля - Пик стоповый интервал. Это когда я перемыку вместо меги ставлю и сигнал на ней гляжу ОСЦ, BP.EXE начинает передавать и принимать 0x84 циклически и отражать это в окне лога. А в числе 0х28 битики стоят совершенно по другому - после первых 3х нулей - одна единица, один ноль и снова одна единица, потом опять три нуля. Чего-то не вяжется. Если бы скорость процика была ± 10% от необходимых 16 МГц, то 0х84 могло приниматься как какое либо другое число, в центре которого одна либо две единицы ПОДРЯД, и много нулей. Так что если игра с параллельными кварецу 22 пик не поможет, сделаю в проге “перемыку” - что-бы она эхо выдавала, быть может какие другие мысли будут. Или есть под руками много кварецев 12 МГц и 20 МГц. Вад64 говорил как-то, что меги гонятся без проблемофф. Как она отнесётся к 20 МГц кварецу от старой сетевой карты ?

R2D2:

Фильтр замечательно работает и настройки не требует.

Ок, запаяю его, заодно и его выходные пульсации промеряю, что-то мне кажется, что далеко там до размаха пульсаций 5V/2^16=МикроВольтики.
Что-то мне кажется, что пульсации будут в лучшем случае МиллиВольтики=10 Бит точность Фильтра ШИМа=нет смысла программировать 244 Гц 16 бит ШИМ, а выгоднее по пульсациям будет примерно 10 бит 15 КГц фильтровать тем же фильтриком - больше октав фильтроваться будет. Кстати, частоту проца можно измерить, меряя частоту ШИМа - там же аппаратный делитель с известным коэффициентом.

R2D2:

мне не хотелось бы в этом направлении идти

Согласен, гравиЦАПа есть не в каждой деревне, да и пользы от неё - только в быстроте установки задатчиков разрядного/зарядного токов.

R2D2:

АЦП хрен знает как плавает - его надо внешним делать и штуки 4 бита добавить еще.

Блажен кто верует. Иными словами, это на бумаге или в С++ проге легко переделать вычисления с 8 бит на 16 или 24 или 32 бита. А в реальной природе несколько по другому - шумы и неточности на каждом шагу. И если у меня есть к примеру AD внешний 24 бита сигма-дэльта АЦП от весов, то реальное его разрешение - примерно 16-18 разрядиков, и те - тонут в шумах внешних схем. А реальная ПОГРЕШНОСТЬ измерителя веса в котором используется этот АЦП - ваапще - 0.5%, и при эксплуатации ухудшается.
А у нас - Анал оговая земля меги через R64 (я вместо него тоже индуктивность впаял) присоединена к другим землям в точке платы, далёкой от аналогового источника сигнала для меги - ЛМ324 в смысле. Надо будет перемыку к ЛМ кинуть и поглядеть, будет ли с этого толк по шумам/пульсациям.
Кроме того, 10 бит - это 0.1% от полной шкалы точность. А чем её поверять/калибровать в сельской местности ? ЖёЦким Китайцем с точностью 10% ?
Да и разница между 4.2 и 4.25 вольтами - это 1%. В наи худшем случае (зарядка 1 банки лития и полная шкала 10 бит 1024=30 Вольт делитель) вес младшего разряда будет 30/1024=0.03 вольтика - тоже лучше требований к точности зарядки лития 4.2-4.25 вольта. А когда более одной банки лития заряжать - то это уже балансир раскидает итоговую погрешность уставки по банкам равномерно. А у балансира режим более выгодный - он же побаночно меряет, соответственно делитель 5 Вольт=Полная Шкала, вес младшего разряда при 10 битах=0,005 Вольтиков - более чем достаточно по точности и трудно достижимо при калибровке.
Кстати, про термо стабильность резисторных делителей в статье - не совсем согласен. Если оба резистора делителя сделаны по одинаковой технологии ( например оба угольные или оба металло плёночные из одинакового материала) то при одинаковой температуре резисторов делителя коэфф деления не должен меняться с температурой.
Так что про применение внешнего 16 бит АЦП в подобном проектике - на мой взгляд он просто покажет картину окружающего нас шума более подробно. Однако итоговую погрешность измерений снизит не значительно. Если ваапще снизит.