Jump to content

Recommended Posts

И кстати, дизасемблеры не всегда правильно реверсят код. Тут нужна ручная работа по направлению дизасемблера внужное русло, чтобы он не пытался дизасемблировать ресурсы расположенные в флеше как исполняемый код и наоборот, не считал безликими данными участки флеша на которые нет прямых указателей/переходов а где-то в программе может быть косвенный вызов процедуры. Особенно это актуально для программных интерфейсов и динамических объектов. А для этого нужно досконально знать работу исследуемого микроконтроллера, это очень кропотливый и неблагодарный труд. Кроме того, у вас не будет никаких имен процедур и меток, вам их надо будет восстанавливать по смыслу исполняемого кода, а для этого нужен огромный опыт написания программ. И не на С++, а максимум чистый С. Ибо плюсы дают такую простыню кода, особенно после оптимизатора что человеческому мозгу там делать нечего. Хотя, из-за характерных паттернов автоматически воссоздавать исходный код будет даже проще, если отладчик знает версию компилятора которым он компилировался. Но опять же, никаких имен идентификаторов, только безликие цифровые адреса и сидеть угадывать имена процедур, методов и объектов. Это имеет смысл только при стоимости прошивки от 10000$ и то многие подумают прежде чем взяться.


Учение - изучение правил. Опыт - изучение исключений.

Share this post


Link to post
Share on other sites

IDA Pro хорошо справляется с данными в памяти программ, имею опыт. Дизассемблирует почти идеально.

Но, не смотря на заявляемое "восстановление до Си-исходника", не умеет это делать для AVR.

 


Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Share this post


Link to post
Share on other sites
1 час назад, ARV сказал:

"восстановление до Си-исходника"

 

Чтобы восстановить до Си-исходника, нужно, чтобы этот исходник вообще когда нибудь существовал, а равно дизассемблер должен знать родовые особенности того компилятора, который сгенерировал исследуемый код.

Восстановить неизвестно чем созданный код корректно невозможно.

Share this post


Link to post
Share on other sites

Вебинар "Разбор новых уникальных модулей FMAC и CORDIC в микроконтроллерах общего назначения STM32G4" (15.07.2020)

Компания КОМПЭЛ приглашает вас принять участие в вебинаре 15.07.2020, посвященном новому семейству микроконтроллеров общего назначения – STM32G4. Вебинар рассчитан на технических специалистов и тех, кто знаком с основами цифровой обработки сигналов. Мы разберем алгоритм работы CORDIC, а также рассмотрим пример создания цифрового фильтра на базе FMAC.

Зарегистрироваться на вебинар


Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Share this post


Link to post
Share on other sites
                     

Новые контроллеры VIPerPLUS для ИП – видео и материалы вебинара STMicroelectronics

Видеозапись и материалы вебинара ST о семействе AC/DC регуляторов VIPerPLUS производства компании STMicroelectronics. Инженерами ST было детально рассмотрено новое семейство микросхем VIPerPLUS со встроенным транзистором, их возможности и топологии применения. Продемонстрировано испытание из лаборатории ST в Праге и моделирование в среде E-DesignSuite.

Подробнее

3 часа назад, my504 сказал:

Восстановить неизвестно чем созданный код корректно невозможно

Я бы так категорично не стал утверждать, а высказался бы так: пока невозможно. Человек может это сделать, значит, когда-нибудь сможет и программа.

А компиляторов не так и много, чтобы нельзя было создать базу "родовых признаков"... Дело лишь за хакером-энтузиастом или спонсором.


Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Share this post


Link to post
Share on other sites
                     

Конденсаторы ECWFG от Panasonic: теперь и для высоковольтных применений

Компания Panasonic анонсировала существенное расширение серии пленочных конденсаторов ECWFG: на сегодняшний день диапазон рабочих напряжений серии составляет 630…1100 В (DC). Серия ECWFG поддерживает уникальную функцию микропредохранителей.

Подробнее

1 час назад, ARV сказал:

Человек может это сделать, значит, когда-нибудь сможет и программа.

Человек тоже не сможет. Если только код не совсем примитивен. А если он еще и оптимизирован, то вообще никакому восстановлению не подлежит.

 

Share this post


Link to post
Share on other sites

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


Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Share this post


Link to post
Share on other sites

Если речь идет о восстановлении алгоритма, а не исходника, то человек в состоянии это сделать. Но это не в состоянии сделать автомат, то есть другой алгоритм. Ибо это задача связана с абстрактным человеческим мышлением, то есть с ИНТЕЛЛЕКТОМ. И речь может тут идти только об искусственном интеллекте. А это совершенно другая история...

 

Share this post


Link to post
Share on other sites
12 часа назад, ARV сказал:

Человек может это сделать, значит, когда-нибудь сможет и программа.

программа уже может. Я недавно пытался разбираться с дизасемблированным в С-код бинарником одного аудиокодека.

Не получилось потому что код использовал внешние таблицы не доступные дизасемблеру, с хитрой навигацией по ним,

а так ничего сложного :) !

Там получается один файл в моем случае 60 тысяч строчек кода, вот такого (если интересно):

//----- (0040B690) --------------------------------------------------------
signed int __cdecl sub_40B690(int a1)
{
  signed int result; // eax@2
  signed int v2; // eax@3
  _DWORD *v3; // ecx@3
  int v4; // esi@8
  int v5; // ST0C_4@8
  int v6; // ST08_4@8

  if ( a1 )
  {
    v2 = 0;
    v3 = (_DWORD *)(a1 + 12);
    do
    {
      if ( !*v3 )
        break;
      ++v2;
      v3 += 14;
    }
    while ( v2 < 31 );
    if ( v2 == 31 )
    {
      result = -1;
    }
    else
    {
      v4 = a1 + 56 * v2;
      *(_DWORD *)(v4 + 16) = 0x2000000;
      v5 = *(_BYTE *)(v4 + 18);
      v6 = *(_BYTE *)(v4 + 19);
      *(_DWORD *)(v4 + 12) = 5;
      sub_402010((char *)(v4 + 24), aD_D_D_0, v6, v5, 0);
      *(_DWORD *)(v4 + 4) = aJun262012_0;
      *(_DWORD *)(v4 + 8) = a145950;
  ...

 


Можно сделать все! Но чем больше можно, тем больше нельзя!

Share this post


Link to post
Share on other sites

Ну я и говорю, IDA уже умеет для винды и пары ходовых компиляторов делать сишный исходники, немного магии поиска-замены и чуть-чуть понимания цели, и можно жить. Но для AVR не умеет вообще... Хотя паттерны узнаваемы весьма.


Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Share this post


Link to post
Share on other sites
27 минут назад, ARV сказал:

для винды и пары ходовых компиляторов

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


Можно сделать все! Но чем больше можно, тем больше нельзя!

Share this post


Link to post
Share on other sites
4 часа назад, ruhi сказал:

Только не для компиляторов, а для ассемблеров

Почитайте про IDA Pro, чтобы не говорить таких странных и не правильных вещей.


Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Share this post


Link to post
Share on other sites
Только что, ARV сказал:

Почитайте про IDA Pro, чтобы не говорить таких странных и не правильных вещей.

не хочу :), итак башка лопается


Можно сделать все! Но чем больше можно, тем больше нельзя!

Share this post


Link to post
Share on other sites
17 часов назад, ARV сказал:

Ну я и говорю, IDA уже умеет для винды и пары ходовых компиляторов делать сишный исходники, немного магии поиска-замены и чуть-чуть понимания цели, и можно жить. Но для AVR не умеет вообще... Хотя паттерны узнаваемы весьма.

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

Мало того, что нужно написать код, так ведь его еще нужно как то осмысленно совершенствовать. Восстановленный подобными инструментами код ущербен в принципе. В нем можно разобрать 99% смысла, при том, что вся новизна останется в неразобранном 1%. 

Беспонтовый инструмент...

ЗЫ. Могу дать упражнение для примера сказанного мной выше. Есть пара функций обработки сигнала. АСМ без комментариев и осмысленных названий переменных и меток. Предлагается определить алгоритм обработки сигнала реализуемый этими двумя функциями. Причем результат одной нужен при работе другой.

Слабо? :crazy::bye:

Edited by my504

Share this post


Link to post
Share on other sites
3 часа назад, my504 сказал:

Слабо?

Сколько платите? И в какие сроки ;) ибо только это определяет, слабо или нет.


Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Share this post


Link to post
Share on other sites

Я реверс-инжинирингом ПО занимался пару раз, и некоторое время следил, как этим занимаются другие. Полноценный реверс алгоритма по коду не делается, приходится и тесты всякие делать, и в "песочнице" запускать и сравнивать... Дело непростое, но выполнимое.

Что касается смысла, то я вполне согласен с вами: заниматься восстановлением исходника на ЯВУ занятие бессмысленное и бесперспективное. Однако, если за это платят... почему нет?

В реальном реверсе нет нужды не только в получении полного исходника на ЯВУ, но и в понимании точного алгоритма. Как правило, всегда интересует тот самый 1%, и то, скорее всего, лишь в плане того, как его обойти или выдрать и применить в своём коде. В основном приходится искать команду JNZ с целью заменить её на JZ :) Ну или 10...110 таких команд.

Edited by ARV

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Share this post


Link to post
Share on other sites
8 часов назад, ARV сказал:

Сколько платите? И в какие сроки

:lol:

Это МОЙ код. Это УПРАЖНЕНИЕ. Ребус. За него не платят. 

Точнее, если и платят, то составителю ребуса.  :crazy:

Share this post


Link to post
Share on other sites
38 минут назад, my504 сказал:

Ребус. За него не платят. 

Точнее, если и платят, то составителю ребуса.

:) а приз решившему ребус?


Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Share this post


Link to post
Share on other sites
21 минуту назад, Дмитрий Мамедиев сказал:

 только два входа для отслеживания сигнала int0 и int1. Мне нужно три, есть альтернатива?

Есть!

image001.png.ad4e97b6ada3a25bf5cd6aff7a412a43.png


Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

Share this post


Link to post
Share on other sites
36 минут назад, Дмитрий Мамедиев сказал:

Мне нужно три, есть альтернатива?

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

зависит от специфики задачи.

Compare там есть?

Edited by ruhi

Можно сделать все! Но чем больше можно, тем больше нельзя!

Share this post


Link to post
Share on other sites
48 минут назад, Дмитрий Мамедиев сказал:

Мне нужно три, есть альтернатива?

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

WhatsApp Image 2019-05-20 at 15.46.31.jpeg

Share this post


Link to post
Share on other sites

Доброго времени. Хочу найти ресурс где можно подробно почитать про компиляцию и линковку проекта для stm32f103 в линуксе. В гугле много инфы на счет самого мейка и с ним более менее понятно, а вот процесс компиляция под конкретный контроллер мне найти не удалось. Хотелось бы узнать на зависимости файлов CMSIS и весь алгоритм. Хочу научится компилировать проект из консоли, а в идеале прикрутить все необходимое к нужному мне текстовому редактору. Рассматривал готовые мейкфайлы, но написаны они достаточно сложно для моего познания в синтаксисе мейка. Пока планирую написать хотя бы элементарный мейк.

Edited by Mars36

Share this post


Link to post
Share on other sites
10 часов назад, Дмитрий Мамедиев сказал:

два входа для отслеживания сигнала int0 и int1. Мне нужно

Любой порт так же поддерживает прерывания по перепаду уровня, для некоторых целей их вполне можно использовать. Но есть ньюансы. Прерывание по порту - одно на все выводы, но раз тебе нужно просто третье то не имеет значения. Просто разрешить прерывание только по одному выводу порта, и его изменение будет дёргать обработчик. И второй ньюанс - в отличие от int0/1 это прерывание синхронное и стробируется частотой ядра, короткие импульсы короче двух периодов тактовой частоты можно упустить... Фронт и спад не различает - одинаково реагирует на оба. Не работает в режиме глубокого сна - этим прерыванием вывести контроллер с глубокого сна нельзя.


Учение - изучение правил. Опыт - изучение исключений.

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • Да ничего там не нарушится. @Clor просто хотел показать как именно максимальный ток зависит от отношения R25/R26.
    • Мда уж, прям испорченный телефон какой-то. У меня уже всё просчитано и работает как надо. Я просто хотел увеличить максимальный ток с 2,5А до 3А малой кровью. Шунта на 3А нет под рукой. Суть вопроса:  что нарушится в работе схемы если уменьшить верхнее плечо делителя?  
    • Больше ток, больше нагрев транзистора силового. По хорошему надо бы тепловой режим пересчитать. Я писал выше как это делается. А сейчас ночь, поздно уже портянки расписывать, да и пинают мол плохо объяснил.  Напишите какой у вас транзистор, какое напряжение трансформатора, какой ток хотите и какое минимальное напряжение планируется при использовании. Утром посчитаю подробно. 
    • Это понятно, но чем такое уменьшение верхнего плеча выйдет боком?  Минимальный ток ограничения тоже будет увеличиваться ?
    • @Clor берешься объяснять, так делай это так, чтобы тебя понимали.
    • Надо что бы на + входе da1.2 было меньшее чем на -, тодга оу притянет базу vt3 к земле. Вы можете легко рассчитать цепочку r25 r26. 12v + падение на шунте это будет величина Напряжение на делителе. Надо подобрать номинал так чтобы в точке r25 r26 было напряжение падения. 
  • Similar Content

    • By Rad TV
      Скетч простой и кислий. Сделан автором RadTV канал:https://www.youtube.com/channel/UC1k5elIKErFnmwTzIsRgQrA?view_as=subscriber
      Буду рад рокомендациях и помощи!Сделал сам проект должен бить простим и  что би влезло в ATtini85!
      Есть защита акб и просто парения (!!!Кнопка на розмикания!!!)
      Обновления будут!!!!
       
       
      RadMOD ver1.0.txt
    • By Стас73
      Доброй ночи, уважаемые.
      Прошу Вашего совета по следующей куче проблем для меня, т.к. не соображаю в электронике, схемах, резисторах и подобному, но дружу с компом и есть желание сделать определенный механизм, но пока нет наставления на путь истинный от специалистов)
      Задача состоит в следующем - хочу мотор стеклоочистителя подключить к Ардуино, но управлять им необходимо с кнопки. Шилд, например, который обрабатывает сигнал нажатия на кнопку (допустим кнопка записи), при ее активации, нажимаю на другую кнопку, которая дает команду движку вращаться по часовой стрелке. Отпускают ее, моторчик останавливается. Другая кнопка, вращение в противоположную сторону. Т.е. записал последовательность и продолжительность вращений,  нажимаю вновь на кнопку запись и мои действия сохраняются. Далее на 4 кнопку жму и моя игра с моторчиком автоматически воспроизводится. Если такое выполнимо с помощью плат и шилдов без доп программирования логики, то буду ОЧЕНЬ  признателен если расскажете как вкратце это осуществить или кинете ссылки к примеру на Али с нужными товарами. Если легковыполнимо, то в будущем наверное уже разберусь,  как обойтись без нажатия на 4 кнопку (воспроизведения записанных действий) и запускать этот процесс, подключив датчик движения или звука.
      Если необходимо описывать логику или создавать типа какого-то протокола, что шилд (?) умел понимать, что я от него хочу, то подскажите среду разработки для неба, что б там по минимуму было наворотов) В принципе с основами c++ для Ардуино скорее всего придется ознакомиться. 
      Заранее спасибо!
    • By Ilya Gray
      Доброго времени суток!
      В целом, имеется опыт разработки малых устройств, что-то понимаю, в общем, старательно читаю даташиты, даже понимаю их, но на звание серьёзного инженера (пока что) не претендую.
      Я пытаюсь использовать I2C на 8-битном PIC16F18326. Сижу в даташитах. Всё понимаю, всё делаю, на мой неопытный взгляд, правильно. Даже копирую полностью рабочие примеры (я даже купил такой же микроконтроллер, как в примере, скопировал код, контролируя, что он делает. Но всё равно не работает - SCL/SDA на 5в и всё тут).
      Так вот: PIC16F18326 on breadboard (прошу прощения, я хз как это по-русски) на внутреннем 32мгц кристалле. Чип пашет, без проблем моргаю LEDкой. Ну, думаю, щас быстренько подниму I2C. В итоге SCL SDA сидят на 5в без движения. Я использую LED для отладки. Судя по LED, код заloopливается в месте, где проверяется while PIR1bits.SSP1IF==0. Я уже везде был, кучу форумов перерыл. Уже попробовал всё, что мог представить. Я довольно новый в мире PIC, хотел попробовать их, а они ужасно сопротивляются. Уже 2 недели долблюсь безуспешно.
      Подтяжки 10к, проблем с ними никогда не было.
      Собственно, вот код (я уже там попробовал повыключать ADC, вычитал про баг, что сначала I2C пины надо делать OUTPUT LOW, а потом уже INPUT из-за бага MSSP, но ничего не помогло).
      // PIC16F18326 Configuration Bit Settings // 'C' source line config statements // CONFIG1 #pragma config FEXTOSC = OFF // FEXTOSC External Oscillator mode Selection bits (Oscillator not enabled) #pragma config RSTOSC = HFINT32 // Power-up default value for COSC bits (HFINTOSC with 2x PLL (32MHz)) #pragma config CLKOUTEN = OFF // Clock Out Enable bit (CLKOUT function is disabled; I/O or oscillator function on OSC2) #pragma config CSWEN = ON // Clock Switch Enable bit (Writing to NOSC and NDIV is allowed) #pragma config FCMEN = ON // Fail-Safe Clock Monitor Enable (Fail-Safe Clock Monitor is enabled) // CONFIG2 #pragma config MCLRE = ON // Master Clear Enable bit (MCLR/VPP pin function is MCLR; Weak pull-up enabled) #pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled) #pragma config WDTE = OFF // Watchdog Timer Enable bits (WDT disabled; SWDTEN is ignored) #pragma config LPBOREN = OFF // Low-power BOR enable bit (ULPBOR disabled) #pragma config BOREN = ON // Brown-out Reset Enable bits (Brown-out Reset enabled, SBOREN bit ignored) #pragma config BORV = LOW // Brown-out Reset Voltage selection bit (Brown-out voltage (Vbor) set to 2.45V) #pragma config PPS1WAY = ON // PPSLOCK bit One-Way Set Enable bit (The PPSLOCK bit can be cleared and set only once; PPS registers remain locked after one clear/set cycle) #pragma config STVREN = ON // Stack Overflow/Underflow Reset Enable bit (Stack Overflow or Underflow will cause a Reset) #pragma config DEBUG = OFF // Debugger enable bit (Background debugger disabled) // CONFIG3 #pragma config WRT = OFF // User NVM self-write protection bits (Write protection off) #pragma config LVP = ON // Low Voltage Programming Enable bit (Low Voltage programming enabled. MCLR/VPP pin function is MCLR. MCLRE configuration bit is ignored.) // CONFIG4 #pragma config CP = OFF // User NVM Program Memory Code Protection bit (User NVM code protection disabled) #pragma config CPD = OFF // Data NVM Memory Code Protection bit (Data NVM code protection disabled) // #pragma config statements should precede project file includes. // Use project enums instead of #define for ON and OFF. #include <xc.h> #include <htc.h> #include <stdio.h> #include <stdint.h> #define _XTAL_FREQ 32000000 void i2c_is_idle(void){ //while(!PIR1bits.SSP1IF); //while(SSPCON2bits.SEN==1 || SSPCON2bits.RSEN==1 || SSPCON2bits.PEN==1 || SSPCON2bits.RCEN==1 || SSPCON2bits.ACKEN==1 || SSPSTATbits.R_nW==1){}; while(PIR1bits.SSP1IF == 0){ PORTCbits.RC2=1; }; // SSP1IF is set when operation complete PORTCbits.RC2=0; PIR1bits.SSP1IF = 0; // clear interrupt flag } void i2c_start(void){ i2c_is_idle(); SSPCON2bits.SEN = 1; } void i2c_rep_start(void){ i2c_is_idle(); SSPCON2bits.RSEN = 1; } void i2c_stop(void){ i2c_is_idle(); SSPCON2bits.PEN = 1; } void i2c_write(uint8_t i2c_data){ i2c_is_idle(); SSPBUF = i2c_data; while(SSPSTATbits.BF != 0); while(SSPCON2bits.ACKSTAT != 0); } uint8_t i2c_read(uint8_t ack){ uint8_t recieve =0; i2c_is_idle(); SSPCON2bits.RCEN = 1; while(SSPSTATbits.BF != 1); recieve = SSPBUF; SSPCON2bits.ACKEN = ack; return recieve; } void i2c_init(void){ TRISCbits.TRISC0 = 1; TRISCbits.TRISC1 = 1; SSPSTATbits.SMP = 1; SSPSTATbits.CKE = 0; SSPCONbits.SSPM = 0x08; SSPADD = 79; SSPCONbits.SSPEN = 1; } void main(void) { ANSELCbits.ANSC0 = 0; //ADC RC0 OFF ANSELCbits.ANSC1 = 0; //ADC RC1 OFF TRISCbits.TRISC2=0; //LED PIN TRISCbits.TRISC0=0; //MSSP bug counter TRISCbits.TRISC1=0; //MSSP bug counter //__delay_ms(5); LATCbits.LATC1=0; //MSSP bug counter LATCbits.LATC0=0; //MSSP bug counter //__delay_ms(5); INTCONbits.GIE=1; //global interrupt en INTCONbits.PEIE=1; //peripheral interrupt en ADCON0bits.ADON=0; //unpower adc just in case i2c_init(); //THIS SETS TRISC BITS FOR SCL SDA while(1){ i2c_start(); i2c_write(0x3C); i2c_stop(); } return; } Задача: просто увидеть коммуникацию на SCL SDA, я уже потом по даташитам таргет девайсов без проблем напишу дрова. Не получается именно осуществлять коммуникацию.
      Подскажите, пожалуйста, я не понимаю, где я дурак, а между тем волос на голове становится всё меньше, а те, что остались, стремительно приобретают серый окрас, ибо 2 недели я долбаюсь с одной проблемой. Благодарю за ваши советы. Спасибо.
       
    • By MirVsem
      Добрый день.
      Есть интересные модули ибп для слаботочки до 1А.
      m.aliexpress.ru/item/4000109380893.html
       По цене идеально подходит для зоопарка роутеров, IoT устройств... Переключение на резерв (туда-обратно) без просадки. Зарядка литиевой банки как положено, всякие защиты от перегрузки и прочее. Казалось бы все замечательно. 
      НО как всегда не без ложки дёгтя.
       Защита от переразрядки работает неадекватно. Хотя возможно это не сама защита, а повышающий модуль. На пороге ~3в у него срабатывает циклический перезапуск и так пока банка не просядет ниже 3в. Точно померять нечем.
      Из наблюдений. Проверил напряжение переключается с 12в на 9в и щелчки. Естественно нагрузка в это время дико насилуется (роутер свистит минут 5 пока полностю не отключится)
      Вопрос к гуру. Возможно ли что-то доработать в даном модуле чтобы исправить этот досадный баг?
    • By Юлия Михайлова
      Требуються люди умеющие работать с микроконтролерами esp 32 и stm32 , так же будет плюсом опыт работы с raspberry , требования опыт работы не мение 1,5 года , возраст не старше 35 лет , готовы взять на удаленную работу просьба отправлять резюме , и звонить по номеру +380 (68) 227 82 52
×
×
  • Create New...