Описание: Как это работает: Красное свечение светодиода - рабочий режим Зеленое свечение светодиода - заряд Быстрое мигание красного-зеленого свечения - села батарея Если зажать спуск, и включить схему, программа переход в режим программирования длительности, текущее значение длительности обнуляется, и каждое моргание красного светодиода это приращение длительности на шаг 1мс . При достижении конечного значения 30мс происходит кратковременное перемигивание светодиода красным-зеленым и все обнуляеться и дальше по кругу. При отпускании спуска текущее значение длительности запоминается и схема переходит в рабочий режим.
Автор прошивки зашил туда определение напряжение при котором контроллер показывает что села батарея, запрограммировал на ниже 5в. В симуляций протеус при подаче питания 5в все нормально, как только изменю на 3-3.3в proteus заряжает до 41в и все потом горит светодиод села батарея. Во общем на реальной плате тоже самое с одной оговоркой сразу отказывается заряжать) Думаю протеус просто по своему принципу симулирует быстро вот и не успевает мк сработать. Тыкните пальцем где это может быть зашито? Чтобы исправить на 3в допустим. Транзисторы логик все от 1-2в работают на затворе.
Сам код асм.
LIST P=16F84, F=INHX8M include "P16FXX.inc" ORG 0x0000
GOTO Label_0001 Label_000F CLRF 0x23 Label_0009 MOVWF 0x22 Label_0004 MOVLW 0xFF ADDWF 0x22 , f BTFSS STATUS , C ADDWF 0x23 , f BTFSS STATUS , C GOTO Label_0002 MOVLW 0x03 MOVWF 0x21 MOVLW 0xDF CALL Label_0003 GOTO Label_0004 CLRF 0x21 Label_0003 ADDLW 0xE8 MOVWF 0x20 COMF 0x21 , f MOVLW 0xFC BTFSS STATUS , C GOTO Label_0005 Label_0006 ADDWF 0x20 , f BTFSC STATUS , C GOTO Label_0006 Label_0005 ADDWF 0x20 , f CLRWDT INCFSZ 0x21 , f GOTO Label_0006 BTFSC 0x20 , 00 GOTO Label_0007 Label_0007 BTFSS 0x20 , 01 GOTO Label_0008 NOP GOTO Label_0008 Label_0008 RETURN Label_0002 BCF STATUS , IRP BCF STATUS , RP1 BCF STATUS , RP0 CLRWDT RETURN Label_0001 BSF STATUS , RP0 MOVLW 0xDB MOVWF TRISA BCF STATUS , RP0 MOVLW 0x16 MOVWF 0x19 BSF STATUS , RP0 MOVLW 0xAD MOVWF 0x19 BCF STATUS , RP0 BCF PORTA , 05 BSF STATUS , RP0 BCF TRISA , 05 BCF STATUS , RP0 BCF PORTA , 02 BSF STATUS , RP0 BCF TRISA , 02 BCF STATUS , RP0 CLRF 0x38 CLRF 0x39 MOVLW 0x03 MOVWF 0x23 MOVLW 0xE8 CALL Label_0009 CLRWDT BTFSC PORTA , 03 GOTO Label_000A CLRF 0x3A GOTO Label_000B Label_000A CALL Label_000C GOTO Label_000D Label_000B CLRWDT BTFSC PORTA , 03 GOTO Label_000D INCF 0x3A , f CLRWDT MOVLW 0x1F SUBWF 0x3A , W BTFSS STATUS , C GOTO Label_000E BSF STATUS , RP0 BCF TRISA , 04 BCF STATUS , RP0 BCF PORTA , 04 BSF STATUS , RP0 BCF TRISA , 04 MOVLW 0xC8 BCF STATUS , RP0 CALL Label_000F BSF PORTA , 04 BSF STATUS , RP0 BCF TRISA , 04 MOVLW 0xC8 BCF STATUS , RP0 CALL Label_000F BCF PORTA , 04 BSF STATUS , RP0 BCF TRISA , 04 MOVLW 0xC8 BCF STATUS , RP0 CALL Label_000F BSF PORTA , 04 BSF STATUS , RP0 BCF TRISA , 04 MOVLW 0xC8 BCF STATUS , RP0 CALL Label_000F BCF PORTA , 04 BSF STATUS , RP0 BCF TRISA , 04 MOVLW 0xC8 BCF STATUS , RP0 CALL Label_000F BSF PORTA , 04 BSF STATUS , RP0 BCF TRISA , 04 MOVLW 0xC8 BCF STATUS , RP0 CALL Label_000F BCF PORTA , 04 BSF STATUS , RP0 BCF TRISA , 04 BSF TRISA , 04 BCF STATUS , RP0 CLRF 0x3A GOTO Label_000B Label_000E CALL Label_0010 BSF STATUS , RP0 BCF TRISA , 04 BCF STATUS , RP0 BSF PORTA , 04 BSF STATUS , RP0 BCF TRISA , 04 BCF STATUS , RP0 MOVLW 0x01 MOVWF 0x23 MOVLW 0xF4 CALL Label_0009 BSF STATUS , RP0 BSF TRISA , 04 BCF STATUS , RP0 MOVLW 0x01 MOVWF 0x23 MOVLW 0xF4 CALL Label_0009 GOTO Label_000B Label_000D MOVF 0x3A , W MOVWF 0x38 CLRF 0x39 Label_0013 BCF 0x19 , 03 BSF STATUS , RP0 BCF TRISA , 04 BCF STATUS , RP0 BCF PORTA , 04 BSF STATUS , RP0 BCF TRISA , 04 MOVLW 0x14 BCF STATUS , RP0 CALL Label_000F Label_0012 CLRWDT BTFSC 0x19 , 06 GOTO Label_0011 BSF PORTA , 05 NOP NOP NOP NOP NOP BCF PORTA , 05 NOP NOP GOTO Label_0012 Label_0011 BSF 0x19 , 03 BSF PORTA , 04 BSF STATUS , RP0 BCF TRISA , 04 MOVLW 0x14 BCF STATUS , RP0 CALL Label_000F Label_0016 CLRWDT BTFSS 0x19 , 06 GOTO Label_0013 CLRWDT BTFSC PORTA , 03 GOTO Label_0014 CALL Label_0015 Label_0014 GOTO Label_0016 Label_0015 BSF PORTA , 02 BSF STATUS , RP0 BCF TRISA , 02 BCF STATUS , RP0 MOVF 0x39 , W MOVWF 0x23 MOVF 0x38 , W CALL Label_0009 BCF PORTA , 02 BSF STATUS , RP0 BCF TRISA , 02 MOVLW 0x14 BCF STATUS , RP0 CALL Label_000F RETURN Label_000C BSF STATUS , RP0 MOVLW 0x0A MOVWF 0x1B BSF 0x1C , 00 MOVF 0x1A , W BCF STATUS , RP0 MOVWF 0x3A RETURN Label_0010 BSF STATUS , RP0 MOVLW 0x0A MOVWF 0x1B BCF STATUS , RP0 MOVF 0x3A , W BSF STATUS , RP0 MOVWF 0x1A BSF 0x1C , 02 BCF STATUS , RP0 MOVLW 0x80 MOVWF INTCON BSF STATUS , RP0 MOVLW 0x55 MOVWF 0x1D MOVLW 0xAA MOVWF 0x1D BSF 0x1C , 01 BCF 0x1C , 02 BCF STATUS , RP0 Label_0017 CLRWDT BSF STATUS , RP0 BCF STATUS , DC BTFSC 0x1C , 01 BSF STATUS , DC BCF STATUS , RP0 BTFSC STATUS , DC GOTO Label_0017 RETURN Label_0018 SLEEP GOTO Label_0018
ORG 0x2000 DATA 0x0F DATA 0x0F DATA 0x0F DATA 0x0F
ORG 0x2007 DATA 0x04
ORG 0x2100 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00 DATA 0x00
Это я знаю проверял, проблема тут в том что, если питание контроллера не 5 в , то начинает моргать светодиод, что села батарея. Как это в прошивке определяется я не знаю поэтому кто знает и читать код умеет может увидеть и покажет где это мне.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Перед всеми заранее извиняюсь , что так долго не мог ответить всем по вашим вопросам был в командировке!!! Схема есть выкладываю: D2 контроллер pic12f629 / 7-6 ноги компаратор опорное напряжение зашитое в прошивку 2.71в. Заряд с ноги 2 на транзистор VT1 Подстроечный резистор на паузу подкачки R6, делитель напряжения R6/R7/R5 в зависимости как подберем сопротивление верхнего и нижнего плеча для нужного заряда конденсатора 60в или 100в. Нога 5 разряд на катушку через ключ длительность импульсов от 1-30мс с шагом 1мс. 4 нога кнопка управления настройками длительности импульсов.
Прошивку код в асм привел в человеческий вид ото неуважительно так выложил первый раз сорри!
Теперь вопросы такие остались у меня как через прошивку может определяться что села батарея (перемигивание светодиода) X3 ?
В прошивке с ноги 2 зашита частота шим 71кгц период 14мкс длительность импульса 6 мкс амплитуда 5 вольт. Как это можно изменять в прошивке и где с помощью прерывания? Насчет амплитуды 5 в это строка задается вот так: MOVLW 0xFF ; b'11111111' d'255'
Где в прошивке зашит шаг длительности импульса? Как можно менять его или сократить до 5мс допустим. Выложил прошивку с 0.1 до 10 для примера.
Скачивал программу PIC_Delay 1.8 слабо понял как по ней работать калькулятор задержки в мс.
Вложения:
Комментарий к файлу: другая прошивка шаг 0.1мс 01-10.hex [1.61 KiB]
Скачиваний: 457
Вывод :6 - это CIN-, :7 - CIN+ (входы компаратора). По конфигурации компаратора в программе, на вход "+" компаратора подаётся напряжение =13/24*Vdd, а вход "-" переключают между выводами :6 и :7. Как такового, опорного напряжения для компаратора нет, т.ч. именно выполняя программу, нет возможности отслеживать напряжение питания +5В (если схема правильная).
Добавлено after 1 hour 20 minutes 31 second: P.S. Кстати, выходное напряжение жёстко привязано к напряжению питания контроллера, которое, по сути, является опорным.
В proteus при моделировании зарядке как только на 7,или 6 не помню становиться 2.71в зарядка прекращается загорается светодиод красным. При зарядке зелёным горит. В случае подкачки как только просядет напряжение на конденсаторе на ноге 6 вроде станет 2.71в сразу вкл накачка. Как то так.
Добавлено after 2 minutes 31 second: P.S. Кстати, выходное напряжение жёстко привязано к напряжению питания контроллера, которое, по сути, является опорным
Вы имейте ввиду амплитуду сигналов с ног контроллера напряжением 5в ?
2,71В (если точнее, 2,708(3)В) - да, это то, с чем сравнивает компаратор при напряжении питания контроллера 5В. Измените напряжение его питания - изменится и напряжение сравнения (текущую формулу выложил выше) и, соответственно, напряжение на X4.
Добавлено after 1 hour 54 minutes 23 seconds: P.S. По схеме, нижний предел АСС (Х4) жёстко задан соотношением номиналов (R6+R7)/R5, а верхний - подстроечником, в диапазоне от (R6+R7)/R5 до (R5+R6)/R7. Программной подстройки "порогов" в программе нет.
Да я менял питания ставил 3 вольта но 4 и выше не проверял отказывался, он заряжать выше 41 вольта но делитель был из сопротивлений настроен на 63вольта. При питании 5вольт все нормально. Одно мне непонятно если в прошивке нет функций (села батарея) как он определяет правильно чисто по питанию? потому-что при таком явлений когда села батарея (резко моргает светодиод с красного на зеленый перемигивание) не врублюсь я тут как?
За разжовывание вам спасибо хоть что-то понятно стает принцип работы с этой прошивкой.
Что-то мне кажется, что то что вы принимаете за индикацию "села батарея" - на самом деле, это попытка старта схемы > просадка питания (как следствие, Reset контроллера) > повторный старт и т.д. по кругу. Есть PIC контроллеры, у которых есть возможность измерить напряжение питания не задействовав ни одного вывода портов (как говорится, "внутри себя"), но PIC12F629 к ним не относится.
Теперь, понятно а с частотой подсказать сможете как в этой прошивке ее так грамотно задали на транзистор накачки? 71кгц период Т=14мкс длительность t=6мкс. Через кнопку как допустим в прошивке изменить длительность импульсов сейчас 1-30мс шаг 1мм. Пытался разобраться с примером 0.1-10мс таки разницу в двух местах коде нашел и не догнал. Может объяснишь? Кстати я читал асм пытался разобраться понял одно там по формуле как то делить частоту кварца надо и высчитывать.
Выход из него возможен только по срабатыванию компаратора. Прерывания в данной программе не используются. Для просчёта частоты, достаточно прочитать pdf на контроллер (в частности, раздел INSTRUCTION SET SUMMARY) и включить калькулятор (можно "виндусячий") с функцией "1/х" (для пересчёта времени в частоту). Извините, но копаться в реассемблинге программы, которая писалась не на asm, не доставляет удовольствия...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения