Помогите разобраться с компаратором attiny10

Обсуждаем контроллеры компании Atmel.
Ответить
vit007
Встал на лапы
Сообщения: 124
Зарегистрирован: Пн мар 22, 2010 18:07:52

Помогите разобраться с компаратором attiny10

Сообщение vit007 »

Здр, помогите советом, не срабатывает компарат при переходе напряжений, при чем постоянно выдает ноль...

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

RESET: 
		;(-|-|-|-|DDB3|DDB2|DDB1|DDB0)		   
		outi DDRB,0b00000100
		
		cbi PortB,2				; подтяжка "0"				
		
		;(-|-|-|-|PUEB3|PUEB2|PUEB1|PUEB0)
		outi PUEB,0b00001000	; настройка pull-up  	
		
		;(-|-|-|-|PCINT3|PCINT2|PCINT1|PCINT0)
		;outi PCMSK,0b00000111	
		
		;(-|-|-|-|-|-|-|PCIE0)
		;outi PCICR,0b00000001
					
		;(-|-|-|-|-|-|-|INT0)
		;outi EIMSK,0b00000000

		;(-|-|-|-|ADC3D|ADC2D|ADC1D|ADC0D)		   
		outi DIDR0,0b00001100

		;(-|-|-|-|-|-|MUX1|MUX0)		
		;outi ADMUX,0b00000000
		
		;(-|-|-|-|-|ADTS2|ADTS1|ADTS0)	
		;outi ADCSRB,0b00000000
		
		;(ADEN|ADSC|ADATE|ADIF|ADIE|ADPS2|ADPS1|ADPS0)
		;outi ADCSRA,0b00000000		

		;(ACD|-|ACO|ACI|ACIE|ACIC|ACIS1|ACIS0)
		;outi ACSR,0b00001000
		
		sbi	ACSR,ACD			; Отключение компоратора								
		
		;(-|-|OCIE0|-|-|OCIE0B|OCIE0A|TOIE0)
		outi TIMSK0,0b00000001

		;(FOC0A|FOC0B|-|-|-|-|-|-)		   
		;outi TCCR0C,0b00000000

		;(ICNC0|ICES0|-|WGM03|WGM02|CS02|CS01|CS01)		   
		outi TCCR0B,0b00000010	; CK/8,16bit
		
		;(COM0A1|COM0A0|COM0B1|COM0B0|-|-|WGM01|WGM00)
		;outi TCCR0A,0b00000000	
		
		;outi CCP,0xD8			; разблокировка защищенного регистра WDTCSR
		
		;(WDIF|WDIE|WDP3|-|WDE|WDP2|WDP1|WDP0)
		;outi WDTCSR,0b01000000	
		
		;(-|-|-|-|-|-|PRADC|PRTIM0)
		outi PRR,0b00000010

		;outi CCP,0xD8			; разблокировка защищенного регистра CLKPSR
		
		;(-|-|-|-|CLKPS3|CLKPS2|CLKPS1|CLKPS0)
		;outi CLKPSR,0b00000011	; 8(default),делитель частоты МК

		;outi CCP,0xD8			; разблокировка защищенного регистра CLKMSR

		;(-|-|-|-|-|-|CLKMS1|CLKMS0)
		;outi CLKMSR,0b00000000	; 8MHz(default),выбор источника частоты МК

		outi SPH,high(RAMEND) 
		outi SPL,low(RAMEND)

;Начальные условия работы
;--------------------------
start:	
		clr Temp2
		ldi Temp3,1				; корректировка работы компаратора при первом вкл

		sei		
		
;Основное тело программы
;--------------------------
cycle:;бесконечный цикл
		nop
		rjmp cycle										

;Вектор прерывания TIM0_OVF
;--------------------------
TIM0_OVF:		
		cbi ACSR,ACD			; вкл компаратора
		nop					; задержка на синхронизацию
		nop
		
		in Temp0,ACSR 
		sbrs Temp0,5 			; если бит в регистре установлен, пропускаем строку
		rjmp status_ON	
		
		;in Temp0,ACSR & 32		; получение состояния регистра + применение маски ИЛИ
		;cpi Temp0,32
		;brne status_ON			
				
		cpi Temp2,1			; проверка на наличие перехода "вкл-выкл"
		brne status_EXIT		
		
		dec Temp1
		
		cpi Temp1,0			; сравнение счетчика задержки
		brne status_OUT
		
		cbi PortB,2			; выкл LED
		clr Temp2				; сброс проверки на наличие перехода "вкл-выкл"
		rjmp status_OUT

status_EXIT:		
		clr Temp3				; выкл корректировки компаратора
		
status_OUT: 		
		sbi ACSR,ACD			; откл компаратора

		reti
		
status_ON: 
		cpi Temp3,0			; корректировка работы компаратора
		brne status_OUT
		
		sbi PortB,2			; вкл LED
		ldi Temp1,20			; установка времени задержки 
		ldi Temp2,1			; вкл задержки при переходе "вкл-выкл" 
		
		rjmp status_OUT	


В протеусе, на attiny85, работает, а в железе пришлось делать корректировку, т.к. при первом включение компаратор постоянно сидит в нуле и только потом переходит в рабочий режим...

Всех с Праздниками, Спасибо.
Аватара пользователя
VNS
Говорящий с текстолитом
Сообщения: 1614
Зарегистрирован: Пт дек 10, 2021 12:48:46
Откуда: Тюмень

Re: Помогите разобраться с компаратором attiny10

Сообщение VNS »

Компаратор у AVR прост как гвоздь. Если выставить настроечные биты правильно, то и работать он начинает сразу.
Вот как пример для теста компаратора для tiny10. МК тактируется по умолчанию на частоте 1 МГц.
Test.hex
(120 байт) 24 скачивания
Схема для теста.
test.png
(9.41 КБ) 33 скачивания
Если напряжение на входе РВ0 установится больше чем напряжение на входе РВ1 - светодиод засветится. Если напряжение РВ0 станет меньше напряжения на РВ1 – светодиод погаснет.

Про настройку компаратора можно прочесть в даташите…
vit007
Встал на лапы
Сообщения: 124
Зарегистрирован: Пн мар 22, 2010 18:07:52

Re: Помогите разобраться с компаратором attiny10

Сообщение vit007 »

Получается, опорные напряжение надо подавать на AIN1? У меня постоянно висит 250мВ на AIN0 и 190мВ на AIN1, когда касаюсь вывода, то на AIN1 поднимается до 450мВ, а светодиод постоянно продолжает гореть... Когда на 85 тиньке, все работает.
Ответить

Вернуться в «AVR»