Jump to content
Пентагрид

управление БП через оптрон + PIC16F628A

Recommended Posts

Решил собрать источник питания с управлением через PIC16F628A (парой кнопок переключать нужные напряжения). Взял обычный импульсник на 15 В, из обратной связи выдрал TL431, оставил оптрон, его повесил на выход МК. Написал тестовую прошивку: задаётся Vref через VRCON, компаратор сравнивает и выдаёт на оптрон 1 или 0.

Сделал два варианта прошивки: в одном проверка на срабатывание выполняется циклически, в другом - вызов прерывания при реакции компаратора. Оба варианта тестировал в Протеусе (потенциометр и светодиод), работают. На бредборде завёлся только первый (с нагрузкой и без). А с прерыванием не работает: при отсутствии нагрузки выдаёт нужное напряжение, но стоит только подключить нагрузку и даже если рукой коснуться - напряжение падает. С нагрузкой вообще не заводится.

МК питаю отдельно (тлф. зарядка с домотанной вторичкой + 7805). Несколько раз прошёлся по прошивке, не нашёл за что зацепиться. Прошу совета.

Схема

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

5c744667866cf_.thumb.JPG.0f70dc6f63691c6d8b39834f7bfab079.JPG

В коде присутствуют рудименты для кнопок (пока не вводил).

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

;4 MHz
;компаратор 2 - -RA1, +RA2, выхRA0
 RA2 ничего не подключать!
;MCLR - сброс в ноль

list	p = 16f628a
#include <p16f628a.inc>

__CONFIG   _CP_OFF & DATA_CP_OFF & _LVP_OFF & _BOREN_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTOSC_OSC_NOCLKOUT 

#define	up	PORTA,7
#define	down	PORTA,6
#define	sd	PORTA,0

CBLOCK 70h
Reg_1	:1
Reg_2	:1
Reg_3	:1
ENDC


;переход к основной программе
org	0000h
goto	start


;переход к прерыванию
org	0004h
btfsc	CMCON,7	;обработка прерываний (опрос компаратора и вывод ОС)
goto	sd_0
goto	sd_1

sd_0:			;есть накачка
bcf	sd
goto	komp_end

sd_1:			;нет накачки
bsf	sd
goto	komp_end

komp_end:
bcf	PIR1,6

retfie
;конец обработки прерываний


;основная программа - инициализация МК
start:
BCF	INTCON,GIE	;глобальное запрещение прерываний
BCF	INTCON,PEIE	;запретить прерывания от периферийных модулей
CLRF	PORTA		;инициализация PORTA
clrf	PORTB

MOVLW	b'00000101'	;использовать только 2 компаратор
MOVWF	CMCON
BSF	STATUS,RP0	;банк 1 (TRISA, VRCON)
bsf	TRISA,1		;настройка пинов
bcf	TRISA,0


MOVLW	b'11101110'	;включитьVREF, RA2, нижн.диап., 
MOVWF	VRCON		;14В (2,92В)
BCF	STATUS,RP0	;банк 0 (порты)
CALL	delay_10mks	;задержка 10 мкс

MOVF	CMCON,F	;чтение CMCON для устранения несоответствия
BCF	PIR1,CMIF	;сбросить флаг прерываний
BSF	STATUS,RP0	;банк 1
BSF	PIE1,CMIE	;разрешить прерывания от модуля компараторов
BCF	STATUS,RP0	;банк 0
BSF	INTCON,PEIE	;Разрешить прерывания от периферийных модулей
BSF	INTCON,GIE	;Глобальное разрешение прерываний

bsf	STATUS,RP0
movlw	0x00		;PORTB - выход
movwf	TRISB
bcf	STATUS,RP0
;конец инициализации МК
bcf	PIR1,6
;пусковой вызов ОС (без него не заработает до нажатия кнопок up/down)
btfsc	CMCON,7
goto	sd_0_first
goto	sd_1_first

sd_0_first:
bcf	sd
goto	komp_end_first

sd_1_first:
bsf	sd
goto	komp_end_first

komp_end_first:
bcf	PIR1,6
;конец пускового вызова ОС


main:
nop
nop
nop
goto	main



;подпрограммы задержек
delay_10mks:
movlw	.3
movwf	Reg_1
decfsz	Reg_1,F
goto	$-1
return


END

 

 

comp5nop.rar

Share this post


Link to post
Share on other sites

В ассемблере не силен , но за темой буду следить . У самого намечается подобная задача :)


Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Share this post


Link to post
Share on other sites
start:
BCF	INTCON,GIE	;глобальное запрещение прерываний
BCF	INTCON,PEIE	;запретить прерывания от периферийных модулей

заменить на

start:
clrf	INTCON	;глобальное запрещение прерываний
banksel PIE1	;запретить прерывания от периферийных модулей
clrf    PIE1 ;

какое отношение эта настройка компаратора 

MOVLW	b'00000101'	;использовать только 2 компаратор
MOVWF	CMCON

имеет к внутреннему ИОН? при этой настройке задействованы входы RA1 и RA2 , RA2 и вас в схеме ваапче не задействован.

требование ДШ об устранении несоответствия 

MOVF	CMCON,F	;чтение CMCON для устранения несоответствия
BCF	PIR1,CMIF	;сбросить флаг прерываний

при инициализации выполнили,  а в прерывании значит это уже делать недада?

Share this post


Link to post
Share on other sites

Время – деньги и наноамперы: применение часов реального времени Maxim Integrated

Зачем использовать внешнюю микросхему часов реального времени (RTC), а не внутренние RTC микроконтроллера? Хотя бы потому, что у RTC MAX31342 производства Maxim Integrated типовое потребление составляет 150 нА при 3 В и температуре 25°С, а у встроенных RTC одного из самых малопотребляющих микроконтроллеров при тех же условиях – примерно 370 нА.

Читать статью

11 час назад, IMXO сказал:

требование ДШ об устранении несоответствия

Добавил, не заработало. Перепроверю сам БП, есть подозрения на ШИМку. Буду использовать вариант с прямым подключением выхода компаратора к пину.

 

11 час назад, IMXO сказал:

RA2 и вас в схеме ваапче не задействован

Бит VRCON,6=1 подключает ИОН к RA2, т.е. он идёт на вход компаратора внутри МК.

Share this post


Link to post
Share on other sites
                     

Чип-резисторы Panasonic - технология мягких выводов и сертификация AEC-Q200

Технология мягких выводов чип-резисторов производства компании Panasonic. Обзор серий с оптимизированными параметрами: прецизионных тонкопленочных, токоизмерительных, антисерных, резисторов с повышенной стойкостью к статике и импульсным нагрузкам, резисторных сборок.

Читать статью

Это твои опыты показывают. Мои например опыты отличаются от твоих , причем в противоположную сторону .


Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Share this post


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

причем в противоположную сторону

Получилось что-нибудь работоспособное с прерыванием?

Share this post


Link to post
Share on other sites

Ну естественно , как же без них любимых?))

При помощи прерываний можно из невозможного сделать возможное !


Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Share this post


Link to post
Share on other sites

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

1 минуту назад, Пентагрид сказал:

выкладывай

Что именно? У меня много чего на прерываниям есть. И все отлично работает !


Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Share this post


Link to post
Share on other sites
21 минуту назад, Пентагрид сказал:

работоспособное с прерыванием?

У меня даже где-то есть решение софтово стабилизатора тока на attiny13A


Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Share this post


Link to post
Share on other sites

Похоже, проблема была в конфигурационных файлах проекта (переносил и компилировал на разных компьютерах) и/или "пусковой ОС". Откатил и написал для прерываний заново (без пусковой ОС), теперь работает.

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

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

;4 MHz
;компаратор 2 - -RA1, +RA2, выхRA0
;к RA2 ничего не подключать!

list	p = 16f628a
#include <p16f628a.inc>

__CONFIG   _CP_OFF & DATA_CP_OFF & _LVP_OFF & _BOREN_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTOSC_OSC_NOCLKOUT 

CBLOCK 20h
Reg_1	:1
Reg_2	:1
Reg_3	:1
ENDC

ORG	0
goto	start

ORG	4

btfsc	CMCON,7	;обработка прерываний (опрос компаратора и вывод ОС)
goto	sd_0
goto	sd_1

sd_0:			;есть накачка
bcf	PORTA,0
goto	komp_end

sd_1:			;нет накачки
bsf	PORTA,0
goto	komp_end

komp_end:
MOVF	CMCON,F
bcf	PIR1,6

retfie

start:
BCF	INTCON,GIE	;Глобальное запрещение прерываний
BCF	INTCON,PEIE	;Запретить прерывания от периферийных модулей
CLRF	PORTA		;Инициализация PORTA
clrf	PORTB

MOVLW	b'00000101'	; 2 аналоговых входа
MOVWF	CMCON		; только 2-й компаратор
BSF	STATUS,RP0	; Выбрать Банк 1
bsf	TRISA,1
bcf	TRISA,0

MOVLW	b'11101001'	; включитьVREF, RA2, нижн.диап., 
MOVWF	VRCON		; 1,88В (9В)
			; установить VR<3:0>=6
BCF	STATUS,RP0	; Выбрать Банк0
CALL	delay_10mks	; задержка 10 мкс

MOVF	CMCON,F	;Чтение CMCON для устранения несоответствия
BCF	PIR1,CMIF	;Сбросить флаг прерываний
BSF	STATUS,RP0	;Выбрать банк 1
BSF	PIE1,CMIE	;Разрешить прерывания от модуля компараторов
BCF	STATUS,RP0	;Выбрать банк0
BSF	INTCON,PEIE	;Разрешить прерывания от периферийных модулей
BSF	INTCON,GIE	;Глобальное разрешение прерываний

bsf	STATUS,RP0
movlw	0x00
movwf	TRISB
bcf	STATUS,RP0


komp2_pusk:			;проверка компаратора 2
btfsc	CMCON,7
goto	sd2_0_pusk
goto	sd2_1_pusk

sd2_0_pusk:
bcf	PORTA,0
goto	manolo

sd2_1_pusk:
bsf	PORTA,0
goto	manolo

manolo:
nop
nop
nop
goto	manolo

;подпрограммы задержек
delay_10mks:
movlw	.3
movwf	Reg_1
decfsz	Reg_1,F
goto	$-1
return

END

 

 

Вариант с циклической проверкой. Надёжно работает с нагрузкой и без, подключением и отключением в процессе работы. Без нагрузки напряжение гуляет в пределах 1 В,  с нагрузкой -- стабильно. Похоже, придётся вывести его в подпрограмму и вызывать везде, где только возможно зацикливание (опрос кнопок и т.п.).

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

;4 MHz
;компаратор 2 - -RA1, +RA2, выхRA0
;к RA2 ничего не подключать!

list	p = 16f628a
#include <p16f628a.inc>

__CONFIG   _CP_OFF & DATA_CP_OFF & _LVP_OFF & _BOREN_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTOSC_OSC_NOCLKOUT 

CBLOCK 20h
Reg_1	:1
Reg_2	:1
Reg_3	:1
ENDC

ORG	0
goto	start



start:
BCF	INTCON,GIE	;Глобальное запрещение прерываний
BCF	INTCON,PEIE	;Запретить прерывания от периферийных модулей
CLRF	PORTA		;Инициализация PORTA
clrf	PORTB

MOVLW	b'00000101'	; 2 аналоговых входа
MOVWF	CMCON		; только 2-й компаратор
BSF	STATUS,RP0	; Выбрать Банк 1
bsf	TRISA,1
bcf	TRISA,0

MOVLW	b'11101001'	; включитьVREF, RA2, нижн.диап., 
MOVWF	VRCON		; 1,88В (9В)
			; установить VR<3:0>=6
BCF	STATUS,RP0	; Выбрать Банк0
CALL	delay_10mks	; задержка 10 мкс

MOVF	CMCON,F	;Чтение CMCON для устранения несоответствия
BCF	PIR1,CMIF	;Сбросить флаг прерываний
;BSF	STATUS,RP0	;Выбрать банк 1
;BSF	PIE1,CMIE	;Разрешить прерывания от модуля компараторов
;BCF	STATUS,RP0	;Выбрать банк0
;BSF	INTCON,PEIE	;Разрешить прерывания от периферийных модулей
;BSF	INTCON,GIE	;Глобальное разрешение прерываний

bsf	STATUS,RP0
movlw	0x00
movwf	TRISB
bcf	STATUS,RP0


komp2:			;проверка компаратора 2
btfsc	CMCON,7
goto	sd2_0
goto	sd2_1

sd2_0:
bcf	PORTA,0
goto	komp2

sd2_1:
bsf	PORTA,0
goto	komp2


;подпрограммы задержек
delay_10mks:
movlw	.3
movwf	Reg_1
decfsz	Reg_1,F
goto	$-1
return

END

 

 

comp666interrupt.rar

comp777cycle.rar

Share this post


Link to post
Share on other sites
2 минуты назад, Пентагрид сказал:

Похоже, придётся вывести его в подпрограмму и вызывать везде, где только возможно зацикливание (опрос кнопок и т.п.).

Какое зацикливание?? Сделайте все на прерываниях и будет все на автомате работать!


Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Share this post


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

будет все на автомате работать

Без нагрузки вырубается. Надо подобрать холостую нагрузку в разумных пределах потребления.

Share this post


Link to post
Share on other sites
4 минуты назад, Пентагрид сказал:

Надо подобрать холостую нагрузку

Так надо цеплять нагрузочный резистор , порядка 51 - 100 Ом при 12в питании .

 

Так вырубаться не должно ! Будут колебания , но вырубаться ничего не должно :) что то не так или с кодом инициализации или с алгоритмом реализации стабилизатора / обратной связи .


Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Share this post


Link to post
Share on other sites

@artos5 , ради стабильности можно и 50 Ом. Похоже, мне придётся опять вернуться к варианту с прерыванием.

 

Пока тестировал вариант с кнопками и циклическим опросом. Запуск с Vref=0, потом можно переключать кнопками вверх/вниз с шагом 1 В. Без нагрузки всё норм, но с нагрузкой работает только начиная с 9 В, ниже вольтметр не показывает, трансформатор пищит с одной периодичностью. Это похоже на постоянный сброс? Каково Ваше мнение о причинах такой лажи на низких напряжениях?

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

;4 MHz
;компаратор 2 - -RA1, +RA2, выхRA0
;RA7-up, RA6-down
 RA2 ничего не подключать!

list	p = 16f628a
#include <p16f628a.inc>

__CONFIG   _CP_OFF & DATA_CP_OFF & _LVP_OFF & _BOREN_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTOSC_OSC_NOCLKOUT 

#define	sd	PORTA,0
#define	up	PORTA,7
#define	down	PORTA,6

CBLOCK 20h
Reg_1	:1
Reg_2	:1
Reg_3	:1
ENDC

ORG	0
goto	start


;ИНИЦИАЛИЗАЦИЯ МК
start:
clrf	INTCON
banksel	PIE1
clrf    PIE1
banksel PORTA
;BCF	INTCON,GIE	;глобальное запрещение прерываний
;BCF	INTCON,PEIE	;запретить прерывания от периферийных модулей
CLRF	PORTA		;инициализация портов
clrf	PORTB

MOVLW	b'00000101'	; 2 аналоговых входа
MOVWF	CMCON		; только 2 компаратор
BSF	STATUS,RP0
bsf	TRISA,1	;вход -
bsf	TRISA,6	;вход down
bsf	TRISA,7	;вход up
bcf	TRISA,0	;выход оптрон
movlw	0x00
movwf	TRISB

MOVLW	b'11100000'	; включитьVREF, RA2, нижн.диап., 
MOVWF	VRCON		; 0В (0В)
BCF	STATUS,RP0	; Выбрать Банк0
CALL	delay_10mks	; задержка 10 мкс

MOVF	CMCON,F	;Чтение CMCON для устранения несоответствия
BCF	PIR1,CMIF	;Сбросить флаг прерываний



;ОСНОВНОЙ РАБОЧИЙ ЦИКЛ
knopka_up:		;метка работы с кнопкой UP
call	sd_os
btfss	up		;проверка факта нажатия UP
goto	wait_up
goto	knopka_down

wait_up:			;проверка факта отжатия UP
call	sd_os
btfss	up
goto	wait_up
goto	inc_vrcon

inc_vrcon:			;повышение Vref
bsf	STATUS,RP0

btfss	VRCON,0		;проверка потолка Vref=1111
goto	inc_vrcon_in
btfss	VRCON,1
goto	inc_vrcon_in
btfss	VRCON,2
goto	inc_vrcon_in
btfss	VRCON,3
goto	inc_vrcon_in
goto	inc_vrcon_out

inc_vrcon_in:		;повысить Vref (потолок не достигнут)
INCF	VRCON,1
BCF	STATUS,RP0
CALL	delay_10mks
goto	knopka_down

inc_vrcon_out:		;не повышать Vref (потолок достигнут)
bcf	STATUS,RP0
goto	knopka_down


knopka_down:		;метка работы с кнопкой DOWN
call	sd_os
btfss	down		;проверка факта нажатия DOWN
goto	wait_down
goto	knopka_up

wait_down:			;проверка факта отжатия DOWN
call	sd_os
btfss	down
goto	wait_down
goto	dec_vrcon

dec_vrcon:			;понизить Vref (плинтус не достигнут)
bsf	STATUS,RP0

btfsc	VRCON,0		;проверка плинтуса Vref=0000
goto	dec_vrcon_in
btfsc	VRCON,1
goto	dec_vrcon_in
btfsc	VRCON,2
goto	dec_vrcon_in
btfsc	VRCON,3
goto	dec_vrcon_in
goto	dec_vrcon_out

dec_vrcon_in:		;понизить Vref (плинтус не достигнут)
DECF	VRCON,1
BCF	STATUS,RP0
CALL	delay_10mks
goto	knopka_up

dec_vrcon_out:		;не понижать Vref (плинтус достигнут)
bcf	STATUS,RP0
goto	knopka_up





;подпрограмма ОС
sd_os:			;проверка компаратора 2
btfsc	CMCON,7
goto	sd_0
goto	sd_1
sd_0:			;нет накачки
bcf	sd
goto	sd_end
sd_1:			;есть накачка
bsf	sd
goto	sd_end
sd_end:
MOVF	CMCON,F	;Чтение CMCON для устранения несоответствия
BCF	PIR1,CMIF	;Сбросить флаг прерываний
return





;подпрограммы задержек
delay_10mks:
movlw	.3
movwf	Reg_1
decfsz	Reg_1,F
goto	$-1
return

END

 

Пока буду проверять:

1. качество питания МК;

2. опять вариант с непосредственным подключением выхода компаратора к пину.

 

Схема

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

5c781de7aaad5_.thumb.JPG.8b1532c196ccfc4cc14f6f1eb839ec0a.JPG

 

Edited by Пентагрид

Share this post


Link to post
Share on other sites

Применил все рекомендации, скомпилировал и испробовал с десяток разных вариантов, в т.ч. с прямым подключением выхода компаратора. Наблюдения:

1. без нагрузки стабильно держит весь диапазон;

2. под нагрузкой 30 Ом напряжение держит с 9 В;

3. под нагрузкой 240 Ом держит весь диапазон подрагивая, стабильно держит с 10-11 В.

 

Решил, что при малых напряжения сказываются факторы:

1. качество питания ИОН (однако запитал от кроны через 7805, и всё осталось как прежде);

2. пульсации измеряемого напряжения (их влияние прослеживается при изменении нагрузки).

Share this post


Link to post
Share on other sites

Удалось постепенно снизить порог стабильной работы до 6 В (электролит. 22 мкФ параллельно R4, керам. 100 нФ между верхним концом R3 и точкой ИОН RA2, напряжение ОС берётся не с диода, а с нагрузки).

Share this post


Link to post
Share on other sites

@РадиоНастройщик , делитель рассчитал из того, чтобы нижний диапазон Vref=0...3,13 укладывался в 0...15 В. Стабилитрон пока убрал.

Испытания провожу при прямом выходе CMOUT2=RA4T0CKI, код к нему -- просто инициализация + циклы чтения кнопок +/- 1 В.

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

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

;4 MHz внутренний
;RA7-up, RA6-down
;компаратор 1	-RA0, outRA3 (не используется, вход на землю)
;компаратор 2	-RA1, outRA4 (используется, СД к Vdd)
 +RA2 ничего не подключать!



list	p = 16f628a
#include <p16f628a.inc>

__CONFIG   _CP_OFF & DATA_CP_OFF & _LVP_OFF & _BOREN_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_OFF & _INTOSC_OSC_NOCLKOUT 

#define	up	PORTA,7
#define	down	PORTA,6

CBLOCK 20h
Reg_1	:1
Reg_2	:1
Reg_3	:1
ENDC

ORG	0
goto	start


;ИНИЦИАЛИЗАЦИЯ МК
start:
clrf	INTCON
banksel	PIE1
clrf	PIE1
banksel	PORTA
;BCF	INTCON,GIE	;глобальное запрещение прерываний
;BCF	INTCON,PEIE	;запретить прерывания от периферийных модулей
CLRF	PORTA		;инициализация портов
clrf	PORTB

MOVLW	b'00000110'	; оба компаратора, прямые выходе C1-RA3, C2-RA4
MOVWF	CMCON		; только 2 компаратор
BSF	STATUS,RP0
bsf	TRISA,0
bsf	TRISA,1
bcf	TRISA,3
bcf	TRISA,4
bsf	TRISA,2
bsf	TRISA,6
bsf	TRISA,7


MOVLW	b'11100000'	; включитьVREF, RA2, нижн.диап., 
MOVWF	VRCON		; 0В (0В)
BCF	STATUS,RP0	; Выбрать Банк0
CALL	delay_10mks	; задержка 10 мкс

MOVF	CMCON,F	;Чтение CMCON для устранения несоответствия
BCF	PIR1,CMIF	;Сбросить флаг прерываний



;ОСНОВНОЙ РАБОЧИЙ ЦИКЛ
knopka_up:		;метка работы с кнопкой UP
;call	sd_os
btfss	up		;проверка факта нажатия UP
goto	wait_up
goto	knopka_down

wait_up:			;проверка факта отжатия UP
;call	sd_os
btfss	up
goto	wait_up
goto	inc_vrcon

inc_vrcon:			;повышение Vref
bsf	STATUS,RP0

btfss	VRCON,0		;проверка потолка Vref=1111
goto	inc_vrcon_in
btfss	VRCON,1
goto	inc_vrcon_in
btfss	VRCON,2
goto	inc_vrcon_in
btfss	VRCON,3
goto	inc_vrcon_in
goto	inc_vrcon_out

inc_vrcon_in:		;повысить Vref (потолок не достигнут)
INCF	VRCON,1
BCF	STATUS,RP0
CALL	delay_10mks
goto	knopka_down

inc_vrcon_out:		;не повышать Vref (потолок достигнут)
bcf	STATUS,RP0
goto	knopka_down


knopka_down:		;метка работы с кнопкой DOWN
;call	sd_os
btfss	down		;проверка факта нажатия DOWN
goto	wait_down
goto	knopka_up

wait_down:			;проверка факта отжатия DOWN
;call	sd_os
btfss	down
goto	wait_down
goto	dec_vrcon

dec_vrcon:			;понизить Vref (плинтус не достигнут)
bsf	STATUS,RP0

btfsc	VRCON,0		;проверка плинтуса Vref=0000
goto	dec_vrcon_in
btfsc	VRCON,1
goto	dec_vrcon_in
btfsc	VRCON,2
goto	dec_vrcon_in
btfsc	VRCON,3
goto	dec_vrcon_in
goto	dec_vrcon_out

dec_vrcon_in:		;понизить Vref (плинтус не достигнут)
DECF	VRCON,1
BCF	STATUS,RP0
CALL	delay_10mks
goto	knopka_up

dec_vrcon_out:		;не понижать Vref (плинтус достигнут)
bcf	STATUS,RP0
goto	knopka_up





;подпрограмма ОС
;sd_os:			;проверка компаратора 2
;btfsc	CMCON,7
;goto	sd_0
;goto	sd_1
;sd_0:			;нет накачки
;bcf	sd
;goto	sd_end
;sd_1:			;есть накачка
;bsf	sd
;goto	sd_end
;sd_end:
;MOVF	CMCON,F	;Чтение CMCON для устранения несоответствия
;BCF	PIR1,CMIF	;Сбросить флаг прерываний
;return





;подпрограммы задержек
delay_10mks:
movlw	.3
movwf	Reg_1
decfsz	Reg_1,F
goto	$-1
return

END

 

 

Edited by Пентагрид

Share this post


Link to post
Share on other sites
7 минут назад, РадиоНастройщик сказал:

он просто не успевает зажигаться

Как это решить при прямом подключении компаратора? Оригинальные схемы на TL431 обеспечивают гарантированное зажигание?

Share this post


Link to post
Share on other sites

@РадиоНастройщик , всё дело оказалось в самопитании ШИМки, она берётся с того же трансформатора (обмотка Vtx). На малом коэффициенте заполнения напряжения Vcc не хватает, и ШИМка переходит в режим постоянного перезапуска, отчего и скачет вых. напряжение хаотически.

Проверил с временным питанием от "дежурки" (тлф. зарядки с домотанной вторичкой на 13 В, от которой питается МК через 7805). На её трансформатор  намотаю ещё обмотку тонким проводом и будет изолированное питание для ШИМки.

scrn1.png.dfb787ef1b00491f37a132b1e1070b6f.png

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...

  • Сообщения

    • И предлагал и делал и работает замечательно если это конечно не HI FI. На простой динамик в диапазоне 300..6000 гц.  все шикарно.
    • Выброс после ОУ нам не настолько интересен, как форма меандра на выходе. Если этого же самого выброса не будет на выходе уся - лучше снижать эту емкость, насколько возможно, разумеется, по устойчивой работе во всех состояниях.
    • Я тоже знаю как они звучат, отлично звучат, жаль только,что больше не выпускаются нашей радиопромышленностью, "дифисит однако". А у автора, при консультации@FonSchtirlitz , получилась по моему мнению, извините за выражение" просто бомба. @Artem Ivn спасибо за предоставленный материал и примите мои, приправленные"белой завистью", поздравления с новой конструкцией. Пока пользую с удовольствием вот такой вариант комбинированный щит ГИ, правда ролики сняты на смартфон. https://yadi.sk/i/m5EMNQETg5r8OA https://yadi.sk/i/Eg5GgXSCs1PWmQ https://yadi.sk/i/U3EKNy71vez8GA.  
    • Всем привет! Интересное повествование - читаю. Интересно, насколько хватит автора темы? Хотя, за его плечами такие книги! Завидую! О сколько нам открытий чудных…, Пушкин Александр Сергеевич, 1829** О, сколько нам открытий чудных Готовят просвещенья дух, И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, Бог изобретатель... Внушил поэту сделать стих Для тех, кто знание постиг, И передав его прилежно, Взирает на птенцов своих. Для чего написал? Тема ни о чем. Говорите, что три года шли к пониманию... Видать серьезно настроены. Еще 37 лет идти. Делать что-ли нечего?
    • Конечно, есть. Вот, например, здесь: В.Л.Шило "Популярные цифровые микросхемы". И еще. В розницу диплом выйдет дороже, лучше брать оптом, не мелочиться.  
    • О как интересно ..А кто же еще может забанить? 
    • Кмк-как мне кажется. Это не модератор
  • Similar Content

    • By Xlebyss
      ХОЧУ ОТРЕМОНТИРОВАТЬ СВОЙ СТАБИЛИЗАТОР НАПРЯЖЕНИЯ:
      в окне напряжения постоянно мигает надпись "Н" превышение напряжения, и по факту оно завышено. + к этому постоянно счелкают реле. посмотрев ролики в ютубе, я попытался проверить переменные резисторы, но они оказались исправными. и выбор неисправности пал на две микрухи, на операционный усилитель общего применения, его к частью можно купить за 15руб в местном ларьке, но с микроконтроллером настоящая засада, единственное место где я его могу купить это алибаба 10шт по цене 650руб, + доставка 2500руб. меня это возмутило.
      По этому я решил поискать аналоги. я не силен в английском и да и вообще в электронике, хотя паять умею лучше кого либо даже smd, по этому прошу помощи в поиске аналогов этой микро-схемки у вас.  на ней написано две строчки одна из которых является маркеровкой ,напишу обе: (верхняя) - HT46F47E , (нижняя) - B549T0329GN , Я ТАК ПОНЯЛ первая - это маркировка , корпус как мне сказал продавец старинный, 18 выходов, вставляется в гнездо.
      Дорогие мастера , не пройдите мимо, скажите какая микруха подойдет по аналогии  и главное функционалу, и надо ли ее программировать ?????
      Заранее скажу спасибо, если мой любимый стабилизатор снова заработает, и даже готов положить 50руб тому на телефон кто сыграет ключевую роль в помощи поиска информации для ремонта этого аппарата. (может кто то уже ремонтировал такие?)
    • By Aizenkevich
      Здрасте бартцы. Это снова я. Тут таке дело. Собрал значит усилитель STK на пришедших платках. Ну, вроде все спаял, включаю, шумит в динамиках, подал сигнал - играет музыка. Однако, ВПЕЗАПНО выяснилось, что радиатор раскаливается микросхемой буквально за 20 секунд до состояния - "невозможно держать руку". Диодный мост тоже горячий, хотя он тут на 25А. Питание подаю 18в переменки. Че не так? Смотрел смотрел, чесал репу. В итоге заметил, что так скажем, по дефолту на плату должен устанавливаться линейный стабилизатор питания - MC7812ACTG. У меня таких не оказалось, были только - L7812CV. Я его и ставил. Однако, изучая характеристики, я заметил что у MC7812ACTG - 3 вывода, а у L7812CV - один. Может ли это быть причиной такого адского перегрева с первых секунд работы усилка?



      Тьфу ты блин, сдела скриншот не с MC7812ACTG, а с L7812ACV. Но сути не меняет, L7812ACV - тоже 3 вывода.
    • By Olga Kovin
      Генератор НЧ Г3-123. В отличном состоянии. Год выпуска: 1989. Без ЗИП. В наличии: 2шт. Цена: 17000р   
      Антенна FMA-11 к SMV-11.  1,6MHz. Без поворотного механизма. В наличии: 1шт. Цена: 10000р.
      Антенна FMA-11 к SMV-11.  30MHz. Без поворотного механизма. В наличии: 1шт. Цена: 12000р
      Компаратор частотный Ч7-39.  В хорошем состоянии. Год выпуска: 1990. Без ЗИП. В наличии: 1шт. Цена: 34000р.                   
      Преобразователи М3-53. Комплект (2шт). С хранения. В наличии: 3шт. Цена: 22000р
      Преобразователи М3-52. Комплект (2шт). С хранения. В наличии: 1шт. Цена: 20000р.
      Преобразователь М5-78. С хранения. В упаковке. В наличии: 3шт. Цена: 3500р.
      Тахометр часовой ТЧ-10Р. В футляре. Комплект. В наличии: 2шт. Цена: 5000р       
      г. Энгельс, Саратовская обл.
      Отправлю: почтой, транспортной компанией, в Москву передам с курьером
       
      Контакты: 
      Моб. тел.:+7904-240-51-17.
      E-mail: olgalosewa86@mail.ru














    • By tishkanexx
      Приветствую,
      Есть ЦАП, на входе стоят два стабилизатора, в общем, схемка:

      На выходе стаба 1:

      На выходе стаба 2:

      Что я пробовал делать:
      1. менял сам стаб 1, на заведомо проверенный (2 раза )
      2. поднимал входную "ногу" стаба asm1117 с дорожки (разрывал связь)
      3. менял c2 на большую емкость (без C2 шум вообще зашкаливает)
      4. шунтировал C2 пленкой 100нф (100V104J), правда шунт ставил вместе с конденсатором 100мКф
      Вопрос: как добиться выхода такого как на стабе 2?
      В принципе, после asm1117 "колбаса" значительно уменьшается, но все же. Стаб 1 и греется больше, чем стаб 2.
      На входе стабов:

      Благодарю!
    • By Retriburatin
      Здравствуйте, в вопросах электроники я новичок. Хотел бы получить совет опытных людей. Имеется данный двухполярный блок питания необходимый для работы аудио усилителя. Хотелось бы с данного БП запитать параллельно сумматор на ОУ. Для него необходимо более низкое напряжение, но так же двухполярное. Можно ли тут использовать делитель напряжения для данной цели?
×
×
  • Create New...