Страница 1 из 1

Помогите с софтом для TMP03

Добавлено: Чт янв 13, 2011 17:29:50
uvv055
Есть несколько датчиков
TMP03_04.pdf
(241.99 КБ) 421 скачивание
TMP03,нашёл здесьhttp://shatura.laser.ru/Thermometer/aboutTermometr.htmlсхему но софта там нет,может кто поможет с написанием софта,может кто находил другие схемы с софтом под этот датчик.

Re: Помогите с софтом для TMP03

Добавлено: Чт янв 20, 2011 23:48:28
uvv055
Может кто нибудь напишет,рабочая ли схема,а то сказали что комп не может микросекунды считать, только миллисекунды,и для чего нужна микросхема 74HC86.

Re: Помогите с софтом для TMP03

Добавлено: Пт янв 21, 2011 11:33:37
Engineer_Keen
Теоретически схема рабочая, но похоже это не термометр, а термостат.
Микросхема 74С86 тут похоже служит для коммутации питания датчиков + на ней собрано что-то вроде интегратора. Я бы понял если бы 10-й контакт LPT порта был аналоговым входом (как входы игрового порта), тогда можно мерить не микросекунды, а напряжение, которое уже пропорционально температуре.
С датчиком TMP03 я работал, но мне было проще, так как я его опрашивал при помощи МК, а уже МК передавал обработанные данные по последовательному интерфейсу.

Re: Помогите с софтом для TMP03

Добавлено: Пт янв 21, 2011 21:48:42
uvv055
Ну хоть один написал,хоть помощь не большая, спасибо тебе БОЛЬШОЕ,с этим датчиком почему то совсем мало схем.А с МК есть схема,если есть,может выложишь здесь.Спасибо.

Re: Помогите с софтом для TMP03

Добавлено: Пт янв 21, 2011 22:15:18
Engineer_Keen
Просто датчики DS18B20 гораздо более распространенные, выдают уже числовой результат, не требуют питания, поэтому их все и используют. А про TMP03 большая часть народа неверно даже не догадывается.
Схема-то простая: датчик->МК->преобразователь уровня (UART-RS232 или UART-RS485), главное программа для МК. Хотя для простоты можно замеренные интервалы передавать в компьютер, а уже в нем считать по формуле температуру. Тогда программа для МК будет элементарная (я так сначала и сделал, но потом пришлось переделать). Схему и прошивку выкладывать не буду (да и права не имею), так как МК специфический и измерение температуры лишь вспомогательная функция. Для этого сгодится любой распространенный МК с UART-ом (если нужно выводить в комп), например ATtiny2313 (хоть 10 датчиков можно повесить).

Re: Помогите с софтом для TMP03

Добавлено: Сб янв 22, 2011 07:42:15
uvv055
Так вот в прошивке и софте вся и проблема в программировании я никакой,так что положу я его наверно подальше до лучших времён...

Re: Помогите с софтом для TMP03

Добавлено: Пт окт 07, 2011 15:07:30
Engineer_Keen
Если вдруг кому понадобится, переписал под AVRс поддержкой команды MUL (АТМеги) c MUL и без нее. Без измерения интервалов, только арифметика. Аргументы: T1 в регистрах R18:R19, T2 в R16:R17, результат в R17.

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

;+------------------------------------------------------+
;|Temperature calculation for TMP03/04 By Engineer_Keen	|
;|			AVR Assembler			|
;|			T=235-400*T2/T1			|
;|Use 16-bit Timer to measure T1&T2			|
;|Registers used:					|
;|R16,R17 (T2)						|
;|R18,R19 (T1)						|
;|R0,R1,R20,R21,R22					|
;|Result in R17						|
;|~11uS (Fc=11.059MHz)					|
;+------------------------------------------------------+
	.macro MULT_MEGA
	LDI	R20,0x90	
	MOV	R1,R17		
	MUL	R1,R20
	MOV	R22,R0
	MOV	R21,R1
	MOV	R1,R16
	MUL	R1,R20
	ADD	R0,R21
	ADC	R0,R17
	MOV	R21,R0
	ADC	R1,R16
	MOV	R20,R1	
	.endm
	.macro	MULT_TINY
	CLR	R0
	MOV	R22,R17
	MOV	R21,R16
	CLR	R20
	LSL	R22
	ROL	R21
	ROL	R20
	ADD	R22,R17
	ADC	R21,R16
	ADC	R20,R0
	LSL	R22
	ROL	R21
	ROL	R20
	LSL	R22
	ROL	R21
	ROL	R20
	LSL	R22
	ROL	R21
	ROL	R20
	ADD	R22,R17
	ADC	R21,R16
	ADC	R20,R0
	LSL	R22
	ROL	R21
	ROL	R20
	LSL	R22
	ROL	R21
	ROL	R20
	LSL	R22
	ROL	R21
	ROL	R20
	LSL	R22
	ROL	R21
	ROL	R20
	.endm
CALC:	
	MULT_MEGA
	CLR	R16	
	LDI	R17,0x09
CYC1:	MOVW	R0,R20
	SUB	R1,R19
	SBC	R0,R18
	BRCS	CC1
	MOVW	R20,R0
	INC	R16
CC1:	DEC	R17
	BRNE	CC2
	RJMP	EC1	
CC2:	LSL	R16
	LSL	R22
	ROL	R21
	ROL	R20
	RJMP	CYC1
EC1:	LDI	R17,235
	SUB	R17,R16
	RET
PS: с отрицательными температурами не проверял :oops:
Прескалер должен быть таким, чтобы счетчик считал T2 не более чем до 0xA3D7