Прошивка attiny2313 + тиристор bt136

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

насчет источника питания, посмотрите последний вариант вот здесь (на емкостном делителе), мне он всегда нравился своей стабильностью и высоким КПД. охлаждения не требуется.
я не критикую, просто советую свой вариант :)
Ставим плюсы: )
Реклама
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

в AVR182 написано что при подключении через 1МОм диапазон принимаемых значений будет +-1000В, просто делай как там написано прерывание по спаду напряжения на входе, должно работать.
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 122
Зарегистрирован: Вт ноя 17, 2009 11:05:02

Сообщение aleks_bmw528 »

GP1 если не трудно глянь, продолжаю свои эксперементы со спадом написал тестовую программу , грубо говоря если импульс на INT0 есть то лампа должна загоратся и тухнуть , стали творится чудеса , например если использовать резюк 10ком на +5В и минус при прикосновении к минусу лампа загорится сразу ну и через 10-15сек
потухнет и не загорится ,если я повторно прикоснусь то загорится не сразу 10-15сек потом потухнет

1. Не пойму почему при первом прикосновении сразу срабатывает таймер а при повторном как и должен через 10-15сек ???
2. При подключении через резистор 1Мом опять таймер сработал сразу ,чудеса в том что если отключить резистор 1мом таймер будет
будет сам продолжать работать ,т е INT0 каким то образом само
запускает таймер без наличия сигнала, и еше если включить в сеть без подключения 1мом то лампа загорается наглуха и не тухнет???

Не могу найти обьяснения ???

Код: Выделить всё

.include "tn2313def.inc" 

.def	tmp	=	r16
.def	tmp1	=	r17

.equ	power0	=	65535	
.equ	OutPort	=	PORTB
.equ	OutCntr	=	DDRB
.equ	OutPin	=	PB0
.equ	T1_off	=	0b00000000
.equ	T1_on	=	0b00000100

            .CSEG                
   .org 0 

reset:	rjmp   start	; 00 Reset Handler 
; ***** INTERRUPT VECTORS ************************************************
	.org	INT0addr	;= 0x0001 External Interrupt Request 0
	rjmp	int_0
;.equ	INT1addr	= 0x0002	; External Interrupt Request 1
;.equ	ICP1addr	= 0x0003	; Timer/Counter1 Capture Event
;	.org	OC1Aaddr	;= 0x0004 Timer/Counter1 Compare Match A
;	rjmp	comp1a
;.equ	OC1addr		= 0x0004	; For compatibility
	.org	OVF1addr	;= 0x0005	; Timer/Counter1 Overflow
	rjmp	T1_OVF
;.equ	OVF0addr	= 0x0006	; Timer/Counter0 Overflow
;.equ	URXCaddr	= 0x0007	; USART, Rx Complete
;.equ	URXC0addr	= 0x0007	; For compatibility
;.equ	UDREaddr	= 0x0008	; USART Data Register Empty
;.equ	UDRE0addr	= 0x0008	; For compatibility
;.equ	UTXCaddr	= 0x0009	; USART, Tx Complete
;.equ	UTXC0addr	= 0x0009	; For compatibility
;.equ	ACIaddr		= 0x000a	; Analog Comparator
;.equ	PCIaddr		= 0x000b	; 
;	.org	OC1Baddr	;= 0x000c
;	rjmp	comp1b
;	.org	OC0Aaddr	;= 0x000d
;	rjmp	comp0a
;.equ	OC0Baddr	= 0x000e	; 
;.equ	USI_STARTaddr	= 0x000f	; USI Start Condition
;.equ	USI_OVFaddr	= 0x0010	; USI Overflow
;.equ	ERDYaddr	= 0x0011	; 
;.equ	WDTaddr		= 0x0012	; Watchdog Timer Overflow
;=================
start:	
    ldi	tmp,low(ramend)      ;stack init SP=0xdf 
	out	spl,tmp

	sbi	ACSR,ACD      ;Analog comparator off 
	ser	tmp
	out	OutCntr,tmp
	clr	tmp
	out	OutPort,tmp
	clr	tmp
	out	ddrd,tmp       
	ldi	tmp,0b01111011       
	out	portd,tmp       
            ldi	tmp,(0<<ISC01)|(1<<ISC00)	; это так для порядка - сначала ст.бит, затем мл.бит
	out	MCUCR,tmp	      ;INT0 
	ldi	tmp,(1<<INT0)
	out	GIMSK,tmp
; установки для Т1
; тактовая Fo, режим работы - сброс по совпадению
           clr	tmp			; таймер отключен от выводов  порта
	out	TCCR1A,tmp
	ldi	tmp,0b00000000		; режим работы NORMAL, таймер остановлен!!!
	out	TCCR1B,tmp
; вот здесь загружаем начальное значение для power, таймер остановлен
	ldi	tmp,low(power0)
	ldi	tmp1,high(power0)
	out	TCNT1H,tmp1		; загрузка стартового значения мощности
	out	TCNT1L,tmp

; установка разрешений прерываний от таймеров
	clr	tmp
	ldi	tmp,(1<<TOV1)
	out	TIMSK,tmp
; здесь размещают тело основной программы.
	sei
next:
rjmp	next

;=================
; Обработчики прерываний
;=================
int_0:
	in	tmp,sreg
	push	tmp
	; запускаем Т1
	ldi	tmp,T1_on
	out	TCCR1B,tmp
	pop	tmp
	out	sreg,tmp
	reti

T1_OVF:
    in    tmp,sreg 
    push    tmp
    brts	t1_001	
    sbi	OutPort,(1<<OutPin)				
    pop    tmp 
    out     sreg,tmp	
    set							          	                     rjmp	t1_exit  
t1_001:
	ldi	tmp,T1_off
	out	TCCR1B,tmp
	cbi	OutPort,(1<<OutPin)	; получается 2,5 мкс
            pop    tmp 
            out     sreg,tmp	
  	clt

t1_exit:
	reti
Встал на лапы
Аватара пользователя
Сообщения: 122
Зарегистрирован: Вт ноя 17, 2009 11:05:02

Сообщение aleks_bmw528 »

перепутал :oops:
ldi tmp,(0<<ISC01)|(1<<ISC00)
по спаду так

Код: Выделить всё

 ldi   tmp,(1<<ISC01)|(0<<ISC00)
но один черт при включении без подачи чего либа на вход INT0 pd2
само по себе срабатывает INT0 и запускает таймер!!!!

Кто нибуть может обяснить в чем дело :shock: ?????
Реклама
Эиком - электронные компоненты и радиодетали
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

что-то я сегодня на работе затр...ся, завтра посмотрю.
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 122
Зарегистрирован: Вт ноя 17, 2009 11:05:02

Сообщение aleks_bmw528 »

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

по спаду резистор 10 ком +5в на минус все работает !!! :))
просто через резистор 1мом не очень хочется без гальванической развязки , к тому же придется подключать фаза ноль !!!
нет случайно какой нибуть мысли по ловле 0 через оптопару ,или еще чего нибуть????
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 122
Зарегистрирован: Вт ноя 17, 2009 11:05:02

Сообщение aleks_bmw528 »

Сделал гальванику через оптопару 4N33 по спаду, прошил увеличил время управляющего импульса заработало, возникли следующие проблемы при мощности 99% лампа горит на 50% и при этом мерцает ,
буду разбираться в коде !!!!!
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

HI, aleks_bmw528!
дело скорее всего не в коде, а в работе входного оптрона.
нарисуй схемку.

зы: конец года, что-то куча дел навалилась, но по мере возможности буду принимать участие.
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 122
Зарегистрирован: Вт ноя 17, 2009 11:05:02

Сообщение aleks_bmw528 »

GP1 Приветствую !!!!

Схема достаточно известная у буржуев ,100% рабочая
поминалы

R1A,R1B 27ком 1ватт
D1 1N4007
R3 10ком
4N33
Вложения
zc_sch.jpg
(12.97 КБ) 572 скачивания
Встал на лапы
Аватара пользователя
Сообщения: 122
Зарегистрирован: Вт ноя 17, 2009 11:05:02

Сообщение aleks_bmw528 »

Слушай GP1 может чего с фузами не так ,такое ощущение не так тактируется, вроде выставлял под внешний кварц ,но я особо не
силен в фузах
Вложения
fuse.jpg
(195.02 КБ) 368 скачиваний
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

в твоей программе галка - это единица?
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 122
Зарегистрирован: Вт ноя 17, 2009 11:05:02

Сообщение aleks_bmw528 »

Галка это 1
включенный FUSE - это FUSE без галочки!


во втором варианте лампа горит ярче при 99% и мерцает поменьше
Вложения
fuse2.jpg
(79.92 КБ) 338 скачиваний
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

у тебя fuse выставлены на 8МГц внутр.генератор и вкл делитель на 8, т.е. реально у тебя мк работает на частоте 1МГц

замени на такое:

СKSEL3:0 = 0b1110 - внешний кварц >3МГц
и CKDIV8=1

АХТУНГ если поставишь RSTDISBL = 0 - кердык последовательно программировать не сможешь
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 122
Зарегистрирован: Вт ноя 17, 2009 11:05:02

Сообщение aleks_bmw528 »

HI GP1 обьясни дураку СKSEL3:0 = 0b1110

1 - это значит без галочки т.е установлен???
0 - с галочкой сброшен
или на оборот???

это я так понял по fuse2
у тебя fuse выставлены на 8МГц внутр.генератор и вкл делитель на 8, т.е. реально у тебя мк работает на частоте 1МГц
Встал на лапы
Аватара пользователя
Сообщения: 122
Зарегистрирован: Вт ноя 17, 2009 11:05:02

Сообщение aleks_bmw528 »

Help поставил вообще не работает !!! :shock:
Вложения
fuse3.jpg
(76.72 КБ) 347 скачиваний
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

готов! :shock: :shock: :shock:

я ж предупреждал! RSTDISBL=0
все, теперь только параллельным программатором можно оживить!

ты же сам писал
Галка это 1
включенный FUSE - это FUSE без галочки!
т.е. 1=галка, 0=нет галки.
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 122
Зарегистрирован: Вт ноя 17, 2009 11:05:02

Сообщение aleks_bmw528 »

GP1 ты меня напугал RSTDISBL=0 это я просто не прочитал поэтому там 0

слушай сейчас эксперементировал походу работает только на внутреннем генераторе ставил cksel1 галку остальные 0 моргает медленнее я так понимаю вн частота 4мгц потом пробывал галку
ckdiv вообще не запускается ???

вопрос :может быть что с установкой portd ??? у меня такое ощущение что не работает внешний RC только что перепаял кварц и С 22 пф
все равно ZERRO
Последний раз редактировалось aleks_bmw528 Ср дек 02, 2009 11:59:19, всего редактировалось 1 раз.
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

ёу!
посмотрел еще раз на твою картинку, твоя прога что позволяет отдельные байты программировать?

тогда проверь генерацию на кварце.
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

какие конденсаторы блокировочные на кварце стоят?
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 122
Зарегистрирован: Вт ноя 17, 2009 11:05:02

Сообщение aleks_bmw528 »

22 пф
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»