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

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить
Открыл глаза
Сообщения: 55
Зарегистрирован: Вс авг 29, 2010 17:54:52
Откуда: Краснодарский край

Сообщение uvv055 »

Есть несколько датчиков
TMP03_04.pdf
(241.99 КБ) 421 скачивание
TMP03,нашёл здесьhttp://shatura.laser.ru/Thermometer/aboutTermometr.htmlсхему но софта там нет,может кто поможет с написанием софта,может кто находил другие схемы с софтом под этот датчик.
Реклама
Открыл глаза
Сообщения: 55
Зарегистрирован: Вс авг 29, 2010 17:54:52
Откуда: Краснодарский край

Сообщение uvv055 »

Может кто нибудь напишет,рабочая ли схема,а то сказали что комп не может микросекунды считать, только миллисекунды,и для чего нужна микросхема 74HC86.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

Теоретически схема рабочая, но похоже это не термометр, а термостат.
Микросхема 74С86 тут похоже служит для коммутации питания датчиков + на ней собрано что-то вроде интегратора. Я бы понял если бы 10-й контакт LPT порта был аналоговым входом (как входы игрового порта), тогда можно мерить не микросекунды, а напряжение, которое уже пропорционально температуре.
С датчиком TMP03 я работал, но мне было проще, так как я его опрашивал при помощи МК, а уже МК передавал обработанные данные по последовательному интерфейсу.
Открыл глаза
Сообщения: 55
Зарегистрирован: Вс авг 29, 2010 17:54:52
Откуда: Краснодарский край

Сообщение uvv055 »

Ну хоть один написал,хоть помощь не большая, спасибо тебе БОЛЬШОЕ,с этим датчиком почему то совсем мало схем.А с МК есть схема,если есть,может выложишь здесь.Спасибо.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

Просто датчики DS18B20 гораздо более распространенные, выдают уже числовой результат, не требуют питания, поэтому их все и используют. А про TMP03 большая часть народа неверно даже не догадывается.
Схема-то простая: датчик->МК->преобразователь уровня (UART-RS232 или UART-RS485), главное программа для МК. Хотя для простоты можно замеренные интервалы передавать в компьютер, а уже в нем считать по формуле температуру. Тогда программа для МК будет элементарная (я так сначала и сделал, но потом пришлось переделать). Схему и прошивку выкладывать не буду (да и права не имею), так как МК специфический и измерение температуры лишь вспомогательная функция. Для этого сгодится любой распространенный МК с UART-ом (если нужно выводить в комп), например ATtiny2313 (хоть 10 датчиков можно повесить).
Реклама
Открыл глаза
Сообщения: 55
Зарегистрирован: Вс авг 29, 2010 17:54:52
Откуда: Краснодарский край

Сообщение uvv055 »

Так вот в прошивке и софте вся и проблема в программировании я никакой,так что положу я его наверно подальше до лучших времён...
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение 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
Ответить

Вернуться в «Интеграция с ПК»