Jump to content
Securety

Отвязать питание мк от выходного напряжения

Recommended Posts

Всем добрый день, добрался я наконец до кода прошивки мк, но пока слабо в этом разбираюсь. Суть описание проблемы такая, есть мк 12f629 у него по даташиту на 7-6 ноге встроен компаратор. Раньше у меня было питание 8-12в, а сейчас 3.7в соответственно мк отказывается работать потому-что выход питания с его ног заточен на 5в в коде. Сам мк работает от 2-5.5в но хотелось бы изменить привязку от 2.5в как это сделать где копать?

Прошивка привязана к выходному напряжению, которое жёстко привязано к напряжению питания контроллера, которое, по сути, является опорным. Замер напряжения делается компаратором ноги 6 и 7. Изменяя делитель можно установить любое напряжение срабатывания компаратора.

D2 контроллер pic12f629 / 7-6 ноги компаратор опорное напряжение привязано к напряжению питания контроллера зашитое в прошивку 2.71в на 60в срабатывает. Заряд с ноги 2 на транзистор VT1. Подстроечный резистор на паузу подкачки R6, делитель напряжения R6/R7/R5 в зависимости как подберем сопротивление верхнего и нижнего плеча для нужного заряда конденсатора 60в или 100в. Нога 5 разряд на катушку через ключ длительность импульсов от 1-30мс с шагом 1мс. 4 нога кнопка управления настройками длительности импульсов.

Описание: Как это работает: Красное свечение светодиода - рабочий режим Зеленое свечение светодиода - заряд Быстрое мигание красного-зеленого свечения - села батарея (сброс мк) Если зажать спуск, и включить схему, программа переход в режим программирования длительности, текущее значение длительности обнуляется, и каждое моргание красного светодиода это приращение длительности на шаг 1мс . При достижении конечного значения 30мс происходит кратковременное перемигивание светодиода красным-зеленым и все обнуляется и дальше по кругу. При отпускании спуска текущее значение длительности запоминается и схема переходит в рабочий режим.

Пояснение: Вывод :6 - это CIN-, :7 - CIN+ (входы компаратора).
По конфигурации компаратора в программе, на вход "+" компаратора подаётся напряжение =13/24*Vdd, а вход "-" переключают между выводами :6 и :7.
Как такового, опорного напряжения для компаратора нет, т.ч. именно выполняя программу, нет возможности отслеживать напряжение питания +5В.

при 60в 2,71В (если точнее, 2,708(3)В) - это то, с чем сравнивает компаратор при напряжении питания контроллера 5В.
Измените напряжение его питания - изменится и напряжение сравнения (текущую формулу выложил выше) и, соответственно, напряжение на X4.

По схеме, нижний предел АСС (Х4) жёстко задан соотношением номиналов (R6+R7)/R5, а верхний - подстроечником, в диапазоне от (R6+R7)/R5 до (R5+R6)/R7.

Питание менял в proteus ниже 4.8в отказывается работать. Есть в голове мысль, что я должен амплитуду выходов мк в 5в с ног в прошивке везде поменять на 2.5в. Также есть PWRTE — очередной таймер он включен.
При активации он будет сбрасывать МК до тех пор, пока питание не поднимется до нужного уровня. Думаю проблема в нём где он зашит? хорошо возможно я его откл. но хотелось бы понять где он в коде?

Сам код асм.

Скрытый текст

processor 12F629
#include <P12F629.INC>
__config 0x3F84
; _CPD_OFF & _CP_OFF & _BODEN_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF
; & _INTRC_OSC_NOCLKOUT
; __idlocs 0xFF, 0xFF, 0xFF, 0xFF

; EEPROM-Data
Org 0x2100
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........

; RAM-Variable
LRAM_0x20 equ 0x20
LRAM_0x21 equ 0x21
LRAM_0x22 equ 0x22
LRAM_0x23 equ 0x23
LRAM_0x38 equ 0x38
LRAM_0x39 equ 0x39
LRAM_0x3A equ 0x3A

; Program

Org 0x0000

; Reset-Vector
GOTO LADR_0x0028
LADR_0x0001
CLRF LRAM_0x23
LADR_0x0002
MOVWF LRAM_0x22
LADR_0x0003
MOVLW 0xFF ; b'11111111' d'255'
; Interrupt-Vector
ADDWF LRAM_0x22,F
BTFSS STATUS,C
ADDWF LRAM_0x23,F
BTFSS STATUS,C
GOTO LADR_0x0023
MOVLW 0x03 ; b'00000011' d'003'
MOVWF LRAM_0x21
MOVLW 0xDF ; b'11011111' d'223'
CALL LADR_0x000F
GOTO LADR_0x0003
CLRF LRAM_0x21
LADR_0x000F
ADDLW 0xE8 ; b'11101000' d'232'
MOVWF LRAM_0x20
COMF LRAM_0x21,F
MOVLW 0xFC ; b'11111100' d'252'
BTFSS STATUS,C
GOTO LADR_0x0018
LADR_0x0015
ADDWF LRAM_0x20,F
BTFSC STATUS,C
GOTO LADR_0x0015
LADR_0x0018
ADDWF LRAM_0x20,F
CLRWDT
INCFSZ LRAM_0x21,F
GOTO LADR_0x0015
BTFSC LRAM_0x20,0
GOTO LADR_0x001E
LADR_0x001E
BTFSS LRAM_0x20,1
GOTO LADR_0x0022
NOP
GOTO LADR_0x0022
LADR_0x0022
RETURN
LADR_0x0023
BCF STATUS,IRP
BCF STATUS,RP1 ; !!Bank Register-Bank(2/3)-Select
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
CLRWDT
RETURN
LADR_0x0028
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVLW 0xDB ; b'11011011' d'219'
MOVWF GPIO ; !!Bank!! GPIO - TRISIO
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVLW 0x16 ; b'00010110' d'022'
MOVWF CMCON ; !!Bank!! CMCON - VRCON
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVLW 0xAD ; b'10101101' d'173'
MOVWF CMCON ; !!Bank!! CMCON - VRCON
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,5 ; !!Bank!! GPIO - TRISIO
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,5 ; !!Bank!! GPIO - TRISIO
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,2 ; !!Bank!! GPIO - TRISIO
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,2 ; !!Bank!! GPIO - TRISIO
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
CLRF LRAM_0x38
CLRF LRAM_0x39
MOVLW 0x03 ; b'00000011' d'003'
MOVWF LRAM_0x23
MOVLW 0xE8 ; b'11101000' d'232'
CALL LADR_0x0002
CLRWDT
BTFSC GPIO,3 ; !!Bank!! GPIO - TRISIO
GOTO LADR_0x0045
CLRF LRAM_0x3A
GOTO LADR_0x0047
LADR_0x0045
CALL LADR_0x00CA
GOTO LADR_0x0092
LADR_0x0047
CLRWDT
BTFSC GPIO,3 ; !!Bank!! GPIO - TRISIO
GOTO LADR_0x0092
INCF LRAM_0x3A,F
CLRWDT
MOVLW 0x1F ; b'00011111' d'031'
SUBWF LRAM_0x3A,W
BTFSS STATUS,C
GOTO LADR_0x007E
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
MOVLW 0xC8 ; b'11001000' d'200'
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
CALL LADR_0x0001
BSF GPIO,4 ; !!Bank!! GPIO - TRISIO
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
MOVLW 0xC8 ; b'11001000' d'200'
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
CALL LADR_0x0001
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
MOVLW 0xC8 ; b'11001000' d'200'
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
CALL LADR_0x0001
BSF GPIO,4 ; !!Bank!! GPIO - TRISIO
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
MOVLW 0xC8 ; b'11001000' d'200'
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
CALL LADR_0x0001
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
MOVLW 0xC8 ; b'11001000' d'200'
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
CALL LADR_0x0001
BSF GPIO,4 ; !!Bank!! GPIO - TRISIO
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
MOVLW 0xC8 ; b'11001000' d'200'
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
CALL LADR_0x0001
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
BSF GPIO,4 ; !!Bank!! GPIO - TRISIO
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
CLRF LRAM_0x3A
GOTO LADR_0x0047
LADR_0x007E
CALL LADR_0x00D2
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BSF GPIO,4 ; !!Bank!! GPIO - TRISIO
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVLW 0x01 ; b'00000001' d'001'
MOVWF LRAM_0x23
MOVLW 0xF4 ; b'11110100' d'244'
CALL LADR_0x0002
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BSF GPIO,4 ; !!Bank!! GPIO - TRISIO
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVLW 0x01 ; b'00000001' d'001'
MOVWF LRAM_0x23
MOVLW 0xF4 ; b'11110100' d'244'
CALL LADR_0x0002
GOTO LADR_0x0047
LADR_0x0092
MOVF LRAM_0x3A,W
MOVWF LRAM_0x38
CLRF LRAM_0x39
LADR_0x0095
BCF CMCON,3 ; !!Bank!! CMCON - VRCON
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
MOVLW 0x14 ; b'00010100' d'020'
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
CALL LADR_0x0001
LADR_0x009F
CLRWDT
BTFSC CMCON,6 ; !!Bank!! CMCON - VRCON
GOTO LADR_0x00AC
BSF GPIO,5 ; !!Bank!! GPIO - TRISIO
NOP
NOP
NOP
NOP
NOP
BCF GPIO,5 ; !!Bank!! GPIO - TRISIO
NOP
NOP
GOTO LADR_0x009F
LADR_0x00AC
BSF CMCON,3 ; !!Bank!! CMCON - VRCON
BSF GPIO,4 ; !!Bank!! GPIO - TRISIO
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
MOVLW 0x14 ; b'00010100' d'020'
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
CALL LADR_0x0001
LADR_0x00B3
CLRWDT
BTFSS CMCON,6 ; !!Bank!! CMCON - VRCON
GOTO LADR_0x0095
CLRWDT
BTFSC GPIO,3 ; !!Bank!! GPIO - TRISIO
GOTO LADR_0x00BA
CALL LADR_0x00BB
LADR_0x00BA
GOTO LADR_0x00B3
LADR_0x00BB
BSF GPIO,2 ; !!Bank!! GPIO - TRISIO
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,2 ; !!Bank!! GPIO - TRISIO
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVF LRAM_0x39,W
MOVWF LRAM_0x23
MOVF LRAM_0x38,W
CALL LADR_0x0002
BCF GPIO,2 ; !!Bank!! GPIO - TRISIO
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,2 ; !!Bank!! GPIO - TRISIO
MOVLW 0x14 ; b'00010100' d'020'
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
CALL LADR_0x0001
RETURN
LADR_0x00CA
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVLW 0x0A ; b'00001010' d'010'
MOVWF EEADR ; !!Bank!! Unimplemented - EEADR
BSF EECON1,0 ; !!Bank!! Unimplemented - EECON1
MOVF EEDATA,W ; !!Bank!! Unimplemented - EEDATA
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVWF LRAM_0x3A
RETURN
LADR_0x00D2
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVLW 0x0A ; b'00001010' d'010'
MOVWF EEADR ; !!Bank!! Unimplemented - EEADR
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVF LRAM_0x3A,W
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVWF EEDATA ; !!Bank!! Unimplemented - EEDATA
BSF EECON1,2 ; !!Bank!! Unimplemented - EECON1
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVLW 0x80 ; b'10000000' d'128'
MOVWF INTCON
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVLW 0x55 ; b'01010101' d'085' "U"
MOVWF EECON2 ; !!Bank!! Unimplemented - EECON2
MOVLW 0xAA ; b'10101010' d'170'
MOVWF EECON2 ; !!Bank!! Unimplemented - EECON2
BSF EECON1,1 ; !!Bank!! Unimplemented - EECON1
BCF EECON1,2 ; !!Bank!! Unimplemented - EECON1
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
LADR_0x00E5
CLRWDT
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF STATUS,DC
BTFSC EECON1,1 ; !!Bank!! Unimplemented - EECON1
BSF STATUS,DC
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BTFSC STATUS,DC
GOTO LADR_0x00E5
RETURN
LADR_0x00EE
SLEEP
GOTO LADR_0x00EE

End

 

DipTrace принципиальная схема конструктора.jpg

Edited by Securety
код и таймер

Share this post


Link to post
Share on other sites

Хороший пост. Особенно понравились коментарии в ассемблерном тексте. :D

Share this post


Link to post
Share on other sites

К сожалению родного варианта с описание нет. Но пришел к выводу!

 

Также есть PWRTE — очередной таймер он включен в прошивке.
При активации он будет сбрасывать МК до тех пор, пока питание не поднимется до нужного уровня. Думаю проблема в нём где он зашит? хорошо возможно я его откл. но хотелось бы понять где он в коде и как его менять?

Share this post


Link to post
Share on other sites

Литиевые батарейки Fanso для систем телеметрии и дистанционного контроля

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

Подробнее

1 минуту назад, Securety сказал:

хотелось бы понять где он в коде...

То есть, код не ваш... Не проще ли сделать питание, как было? Цена вопроса - DC-DC преобразователь из 3,7 в 5,0 за десяток центов...

Share this post


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

Также есть PWRTE — очередной таймер он включен в прошивке.

 

9 минут назад, Securety сказал:

Думаю проблема в нём где он зашит? хорошо возможно я его откл. но хотелось бы понять где он в коде и как его менять?

вот здесь

__config 0x3F84
; _CPD_OFF & _CP_OFF & _BODEN_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF
; & _INTRC_OSC_NOCLKOUT
; __idlocs 0xFF, 0xFF, 0xFF, 0xFF

Edited by skripach

Share this post


Link to post
Share on other sites
                     

Приглашаем на вебинар Решения для построения ультразвуковых счетчиков жидкостей и газов на базе MSP430

Компэл совместно с Texas Instruments 23 октября 2019 приглашают на вебинар, посвященный системам-на-кристалле для построения ультразвуковых расходомеров жидкостей и газов на базе ядра MSP430. Вебинар проводит Йоханн Ципперер – эксперт по ультразвуковым технологиям, непосредственно участвовавший в создании данного решения. На вебинаре компания Texas Instruments представит однокристальное решение, позволяющее создавать точные недорогие счетчики жидкостей и газов.

Подробнее...

Нет конечно... У меня он есть с 2.7в - 5.в , просто места мало по-этому вместо него проще стабилизатор на 2.5в поставить. Все коды у многих взяты с интернета ведь весь мир не может быть моим так и здесь). Команды pic я читал примерно по коду я вижу что происходит примерно но разбираюсь,  плохо если править что-то. По-этому спрашиваю тыкните носом где это место.

Share this post


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

Также есть PWRTE
где он в коде и как его менять?

Он не в коде, он в битах конфигурации.

Share this post


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

Он не в коде, он в битах конфигурации.

Конфигурацию я на off сделаю. Просто я сомневаюсь что в коде прошивке не заточенно на диапазон 4.8-5.5 в ниже по питанию не работает нечего.

 

 

Edited by Securety

Share this post


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

Конфигурацию я на off сделаю

пересчитать нужно   __config 0x3F84

Share this post


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

4.8-5.5 в ниже по питанию не работает нечего

Вот чего все сразу за прошивку хватаются? Вы проверили, что полевики, чьи названия старательно затёрты на вашей схеме, открываются при низком напряжении? Скорее всего, у них тупо напряжение открывания 4 - 4,5В. :)

Share this post


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

плохо если править что-то. По-этому спрашиваю тыкните носом где это место.

Когда нужно разобраться в программе, обкладываюсь справочниками и тупо пишу комментарии буквально в каждой строке листинга - что выполняет та или иная команда (кроме очевидных моментов). Способ нубский и медленный, но работает на 100%.
Тем более, у вас листинг явно не человечий, а результат работы дизассемблера.

Share this post


Link to post
Share on other sites

По-этому и Lexter переделываю незачем им дергать полевики лог. Драйверы для этого есть) пусть работает себе мк от низкого напряжения.

 

Alex skripach - вроде верно правы откл. Тестирую пока... просто я удивился откуда таймер знает что работать надо с 4.8 в а не ниже хз)

Так и знал что откл его где-то засада будет, если не трогать кнопку не зажимать то нормально все работает заряжает. Только нажимаешь ошибку даёт похоже привязка есть к

–PWRTE

бит разрешения работы таймера включения питания PWRT

0 – будет производиться выдержка при включении питания

1 – выдержки производиться не будет

Бит разрешения работы таймера включения питания –PWRTE. После включения МК требуется некоторое время для стабилизации частоты кварцевого генератора и стабилизации напряжения. С помощью таймера включения осуществляется задержка на время 72мс (типовое время). В примерах таймер включен.

http://mculab.ru/datasheet/pic/pic16_3.pdf  будем читать похожий текст.

Edited by Securety

Share this post


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

Только нажимаешь ошибку даёт похоже привязка есть

что значит ошибку дает?

Share this post


Link to post
Share on other sites

Все нормально сейчас все работает немного нужно было еще в proteus поиграться. Сейчас никакой разницы нет от 2.6в работает также номинал резисторов отстается неизменный.

Всем спасибо, остался только у меня еще один вопрос! как можно изменять шим в данный момент частота 71'428.57...Hz (14µS) длительность t=6мкс.

У меня просто smd дросселей полно на разный ток и индуктивность, удобно было бы менять подстраиваться, под нужные параметры dc-dc выходной ток и тд..

Кусок кода:

LADR_0x009F
    CLRWDT
    BTFSC CMCON,6        ; !!Bank!! CMCON - VRCON
    GOTO LADR_0x00AC
    BSF GPIO,5           ; !!Bank!! GPIO - TRISIO
    NOP
    NOP
    NOP
    NOP
    NOP
    BCF GPIO,5           ; !!Bank!! GPIO - TRISIO
    NOP
    NOP
    GOTO LADR_0x009F

Выход из шим возможен только по срабатыванию компаратора.

Для просчёта частоты, достаточно прочитать pdf на контроллер (в частности, раздел INSTRUCTION SET SUMMARY) и включить калькулятор (можно "виндусячий") с функцией "1/х" (для пересчёта времени в частоту).

смотрел всякие проги PICTimerCalculator PIC_Delay 1.8  так и недошло как правильно его или увеличить или уменьшить.

69 страница:

https://static.chipdip.ru/lib/057/DOC000057097.pdf

73 страница

http://www.microchip.ru/files/d-sheets-rus/PIC12F629_675.pdf

Сколько не читал какой-то лес дремучий для меня это показалось :huh:

Share this post


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

остался только у меня еще один вопрос! как можно изменять шим в данный момент частота 71'428.57...Hz (14µS) длительность t=6мкс.

LADR_0x009F
    CLRWDT ;  +1мкс
    BTFSC CMCON,6        ;  +2мкс
   
GOTO LADR_0x00AC ;
    BSF GPIO,5           ;+1мкс , итого 8мкс ; в конце команды GPIO5=1
    NOP           ;  1мкс
    NOP           ; +1мкс
    NOP          ; +1мкс
    NOP          ; +1мкс
    NOP          ; +1мкс
    BCF GPIO,5           ;  +1мкс , итого 6мкс ;
в конце команды GPIO5=0
    NOP ;  +1мкс
    NOP ;  +1мкс
    GOTO LADR_0x009F ;  +2мкс

ЗЫ вы уже больше года ковыряете это г... , за время можно было с нуля выучить программирование, сменить/взять  камень и написать нормальный код

 

Share this post


Link to post
Share on other sites

Да -  это правда люблю я ковырять долго и разбираться.

Просто я схему всю переделал по-этому пока с этим камнем обкатаю всё глюки и тд.

А так конечно посматриваю в сторону avr.

IMXO - за разжовывание спасибо щас понятно.

Share this post


Link to post
Share on other sites

вопрос не в платформе , а в том что конкретно этот камень не подходит для этой задачи. из 8ми лапых подходит pic12f683 с аппаратным ШИМ, АЦП и таймерами для опроса кнопок или более новые типа 12ф1840

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. 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...

  • Similar Content

    • By Пентагрид
      Решил собрать источник питания с управлением через PIC16F628A (парой кнопок переключать нужные напряжения). Взял обычный импульсник на 15 В, из обратной связи выдрал TL431, оставил оптрон, его повесил на выход МК. Написал тестовую прошивку: задаётся Vref через VRCON, компаратор сравнивает и выдаёт на оптрон 1 или 0.
      Сделал два варианта прошивки: в одном проверка на срабатывание выполняется циклически, в другом - вызов прерывания при реакции компаратора. Оба варианта тестировал в Протеусе (потенциометр и светодиод), работают. На бредборде завёлся только первый (с нагрузкой и без). А с прерыванием не работает: при отсутствии нагрузки выдаёт нужное напряжение, но стоит только подключить нагрузку и даже если рукой коснуться - напряжение падает. С нагрузкой вообще не заводится.
      МК питаю отдельно (тлф. зарядка с домотанной вторичкой + 7805). Несколько раз прошёлся по прошивке, не нашёл за что зацепиться. Прошу совета.
      Схема
      В коде присутствуют рудименты для кнопок (пока не вводил).
       
      comp5nop.rar
    • By Vintik2000
      Всем здравствуйте! 
      Помогите разобраться с принципом работы компаратора! а именно с тем как происходит сравнение ! Никак не могу понять как узнать порог срабатывания переключения ( то есть момент когда Uсигнала становиться больше U опорного и на выходе формируется высокое положительное напряжение!) 
    • By BFG5000
      Имеется схема генератора пилообразного напряжения. Частоты звуковые. Управляется током, заряжающим конденсатор и сбрасывающим его до 5В при достижении нуля. Все работает, но компаратор LM311 выдает плавный фронт для заряжающего транзистора BC547C, вследствие чего фронт у выходного сигнала не настолько крут, как хотелось бы. В чем может быть дело?



    • By Motorist
      Tl494 имеет два компаратора, можно ли схему использовать как компаратор с гистерезисом? Задача такая чтоб ШИМ появлялся при напряжении 11.0 вольт и пропадал при 10.8 в. Причем не плавно нарастал и исчезал, а есть или нет. 
      Если есть такая возможность у схемы подскажите примерную обвязку.
    • By Золбообаяр Гантөмөр
      Здравствуйте. Появилась идея сделать "умный" горшок на сенсоре влажности grove. Сначала я реализовал идею через arduino(intel edison), но теперь хочу сделать всё без использования оного. Я представляю всё как:
      Трансформаторы напряжения с 220v на 9v и 5v(9v для попмы, 5v для датчика влажности) Сам датчик влажности(напряжение сигнала при влажной почве у неё будет от 1.47v) Компаратор и инвертор сигнала(то есть, если напряжение меньше 1.47v включать помпу) Транзистор(подключенный к измерителю напряжения и 9v линии) Я абсолютно ничего не смыслю в электронике, поэтому прошу помощи у знатоков: какие детали нужны и как всё это лучше реализовать?
      P.S: Какую литературу лучше прочитать чтобы начать разбираться в электронике?
  • Сообщения

    • Зря вы так яростно набросились с критикой на @rockforweb , могу совершенно ответственно заявить- до относительно недавнего времени (двутысячные года)  в жилом фонде старой постройки (дореволюционной) использовалась именно такая система электроснабжения, на трансформаторной подстанции стоял понижающий трансформатор, у которого и первичная 3х:6 кВ и вторичные 3х220 В обмотки были соединены по схеме треугольник/треугольник. Одна из фаз вторичного треугольника была заземлена. При этом в обычную розетку приходили либо две фазы либо фаза и заземленная фаза (которая не определялась обычным индикатором). Все эти здания были архитектурным наследием ( у нас район Старого Таллина) поэтому реконструкция их системы электроснабжения была связана с таким количеством геморроя по получению всяческих разрешений на проведение работ, что до относительно недавнего времени просто откладывалась в "долгий ящик". Резюмирую- не исключаю возможность подобного положения дел у ТС, поэтому совет по подключению розетки может быть дан только специалисту  по электротехнике, который сможет разобраться в используемой у него системы электроснабжения здания.
    • Очередная доработка на Коте. https://radiokot.ru/forum/viewtopic.php?f=11&t=97550&start=2740  
    • Посмотрите здесь. http://diodnik.com/peredelka-kompyuternogo-bloka-v-zaryadnoe-na-shim-at2005b/
    • Окажите честь, ответьте на вопрос: если неисправен обратный клапан, почему насос включается чаще обычного только во время потребления, а ночью не включается совсем?
    • Набираешь в поиске, и ищешь, ищешь, ищешь.
  • Покупай!

×
×
  • Create New...