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

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

Сообщение ibiza11 »

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

Сообщение GP1 »

в AVR182 написано что при подключении через 1МОм диапазон принимаемых значений будет +-1000В, просто делай как там написано прерывание по спаду напряжения на входе, должно работать.
Чем дальше, тем больше становлюсь занудой...
Изображение
Аватара пользователя
aleks_bmw528
Встал на лапы
Сообщения: 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
Аватара пользователя
aleks_bmw528
Встал на лапы
Сообщения: 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 »

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

Сообщение aleks_bmw528 »

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

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

Сообщение aleks_bmw528 »

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

Сообщение GP1 »

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

зы: конец года, что-то куча дел навалилась, но по мере возможности буду принимать участие.
Чем дальше, тем больше становлюсь занудой...
Изображение
Аватара пользователя
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 КБ) 570 скачиваний
Аватара пользователя
aleks_bmw528
Встал на лапы
Сообщения: 122
Зарегистрирован: Вт ноя 17, 2009 11:05:02

Сообщение aleks_bmw528 »

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

Сообщение GP1 »

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

Сообщение aleks_bmw528 »

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


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

Сообщение GP1 »

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

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

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

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

Сообщение aleks_bmw528 »

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

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

это я так понял по fuse2

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

Сообщение aleks_bmw528 »

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

Сообщение GP1 »

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

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

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

т.е. 1=галка, 0=нет галки.
Чем дальше, тем больше становлюсь занудой...
Изображение
Аватара пользователя
aleks_bmw528
Встал на лапы
Сообщения: 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 »

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

Сообщение aleks_bmw528 »

22 пф
Закрыто

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