Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Датчик температуры
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Russian
View previous topic :: View next topic  
Author Message
ManJak
Guru
Guru


Joined: 18 Dec 2004
Posts: 561
Location: St. Petersburg, Russia

PostPosted: Wed Aug 10, 2005 4:44 pm    Post subject: Датчик температуры Reply with quote

Сорри, но судя по трэду:

https://forums.gentoo.org/viewtopic-t-368445.html
и
http://www.kusto.com.ru/temperature/

я все правильно (вроде, представлял)!

У кого получилось собрать?
Поделитесь плиз!

Code:

# digitemp -i -s /dev/ttyS3
DigiTemp v3.2.0 Copyright 1996-2003 by Brian C. Lane
GNU Public License v2.0 - http://www.brianlane.com
Error 5:   Adapter Not Detected
Error 7: DS2480B: Bad Response
Error 7: DS2480B: Bad Response
Error 7: DS2480B: Bad Response
Error 7: DS2480B: Bad Response
Error 7: DS2480B: Bad Response
Error 7: DS2480B: Bad Response
Error 7: DS2480B: Bad Response
Error 7: DS2480B: Bad Response
Error 7: DS2480B: Bad Response

# qpkg -v -I digitemp
app-misc/digitemp-3.2.0 *


Почему DS2480B?! :?: :?: :?:

У меня куплен и стоит:
DS18S20 :!: :!: :!:

Помогите плиз, просто СТРАННО это все!

ЗЫ
Предвосхищая вопрос, если вынуть датчик:
# digitemp -i -s /dev/ttyS3
DigiTemp v3.2.0 Copyright 1996-2003 by Brian C. Lane
GNU Public License v2.0 - http://www.brianlane.com
Error 5: DS2480B Adapter Not Detected
Error 10: Read COM Failed
Error 10: Read COM Failed
Error 10: Read COM Failed
Error 10: Read COM Failed
Error 10: Read COM Failed
Error 10: Read COM Failed
Error 10: Read COM Failed
Error 10: Read COM Failed
Error 10: Read COM Failed


Т.е., что-то видиит
Back to top
View user's profile Send private message
ManJak
Guru
Guru


Joined: 18 Dec 2004
Posts: 561
Location: St. Petersburg, Russia

PostPosted: Thu Aug 11, 2005 2:42 am    Post subject: Reply with quote

Нашел, но от этого не легче :cry:

Code:

DS2480B – Драйвер однопроводной сети MicroLAN, обеспечивающий отработку 1-Wire-протокола на линиях значительной протяженности, обслуживающих большое число однопроводных устройств. Соответствует всем стандартам связи iButton и MicroLAN. Предназначен для организации мастера однопроводной линии на базе интеллектуального устройства, имеющего последовательный интерфейс. Например, стандартный СОМ-порт компьютера или узел UART микроконтроллера. Позволяет выбирать скорость обмена данными со стороны последовательного порта обмена с ведущим устройством (9600, 19200, 57600 или 115200 бит/сек). Предоставляет возможность изменения параметров сигналов на однопроводной линии, используя так называемый программируемый механизм активной подтяжки шины данных 1-Wire-магистрали, обеспечивающий качественную передачу сигналов в длинных линиях и увеличение нагрузочной способности ведущего по количеству обслуживаемых им ведомых устройств. Кроме того, содержит встроенный датчик тока потребления однопроводной линии. Используя его показания можно реализовать еще более эффективный алгоритм работы активной подтяжки в перегруженных и проблемных 1-Wire-линиях. Поддерживает опцию 12-тивольтового программирования EPROM памяти и 5-тивольтовой подтяжки обслуживаемой линии для цифровых термометров и устройств, содержащих энергонезависимую память EEPROM. Реализует под управлением программного обеспечения ведущего интеллектуального устройства усовершенствованный протокол обмена данных на однопроводной линии. Позволяет работать на нескольких скоростях обмена, выбирая наиболее оптимальную для конкретного случая (длины линии, ее качества, количества задействованных устройств), в том числе режим Overdrive. Питание прибора производится напряжением от 4,5В до 5,5В. Устройство размещается в корпусе для поверхностного монтажа SOIC-8.


Это он:
http://www.elin.ru/1-Wire/images/2480.jpg

Судя по виду, не имеет никакого отношения к задачке =(
Back to top
View user's profile Send private message
ba
l33t
l33t


Joined: 25 May 2003
Posts: 804

PostPosted: Thu Aug 11, 2005 7:08 am    Post subject: Reply with quote

digitemp ты неправильно собрал скорее всего...
там надо в Makefile-е поставить LOCK=no вместо yes
и собирать make ds9097

[edit]
не заметил, что он уже появился в портаже...
тогда собирай из портажа с SERIAL_DRIVER=ds9097 emerge digitemp

[edit#2]
из портажа у меня не поставилось, так что ставь лучше руками...
Back to top
View user's profile Send private message
ManJak
Guru
Guru


Joined: 18 Dec 2004
Posts: 561
Location: St. Petersburg, Russia

PostPosted: Thu Aug 11, 2005 3:17 pm    Post subject: Reply with quote

У меня поставилось без траблов:

# digitemp -i -s /dev/ttyS3
DigiTemp v3.2.0 Copyright 1996-2003 by Brian C. Lane
GNU Public License v2.0 - http://www.brianlane.com
Turning off all DS2409 Couplers

Searching the 1-Wire LAN
#

Но пока не достиг резалта :D
Ща помучаюсь, а потом руками + bugreport :!:
Back to top
View user's profile Send private message
ManJak
Guru
Guru


Joined: 18 Dec 2004
Posts: 561
Location: St. Petersburg, Russia

PostPosted: Thu Aug 11, 2005 3:17 pm    Post subject: Reply with quote

В догонку:
Переменную лучше определять в make.conf
Тогда она не глобальна :idea:
Back to top
View user's profile Send private message
ManJak
Guru
Guru


Joined: 18 Dec 2004
Posts: 561
Location: St. Petersburg, Russia

PostPosted: Thu Aug 11, 2005 4:50 pm    Post subject: Reply with quote

Пересобрал, примерно понял, в чем было дело!

А сколько времени 1-й раз проходит?
У меня уже минут 5 крутит!

Code:

ioctl(3, TCFLSH, 0x2)                   = 0
write(3, "\377", 1)                     = 1
select(4, [3], NULL, NULL, {5, 0})      = 0 (Timeout)
ioctl(3, TCFLSH, 0x2)                   = 0
write(3, "\377", 1)                     = 1
select(4, [3], NULL, NULL, {5, 0})      = 0 (Timeout)
ioctl(3, TCFLSH, 0x2)                   = 0
write(3, "\0", 1)                       = 1
select(4, [3], NULL, NULL, {5, 0})      = 0 (Timeout)
ioctl(3, TCFLSH, 0x2)                   = 0
write(3, "\377", 1)                     = 1
select(4, [3], NULL, NULL, {5, 0})      = 0 (Timeout)
ioctl(3, TCFLSH, 0x2)                   = 0
write(3, "\377", 1)                     = 1
Back to top
View user's profile Send private message
ManJak
Guru
Guru


Joined: 18 Dec 2004
Posts: 561
Location: St. Petersburg, Russia

PostPosted: Thu Aug 11, 2005 5:56 pm    Post subject: Reply with quote

Проверил схемы, девайсы.
Зацикливается :?

# strace digitemp -i -s /dev/ttyS3
execve("/usr/bin/digitemp", ["digitemp", "-i", "-s", "/dev/ttyS3"], [/* 60 vars */]) = 0
uname({sys="Linux", node="manjakws", ...}) = 0
brk(0) = 0x8054000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=102972, ...}) = 0
mmap2(NULL, 102972, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40017000
close(3) = 0
open("/lib/libm.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0P4\0\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=157432, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40031000
mmap2(NULL, 135328, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x40032000
mmap2(0x40052000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1f) = 0x40052000
close(3) = 0
open("/lib/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0iQ\1\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1211416, ...}) = 0
mmap2(NULL, 1125564, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x40054000
mprotect(0x40160000, 27836, PROT_NONE) = 0
mmap2(0x40161000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x10c) = 0x40161000
mmap2(0x40165000, 7356, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40165000
close(3) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40167000
mprotect(0x40161000, 4096, PROT_READ) = 0
set_thread_area({entry_number:-1 -> 6, base_addr:0x401676b0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
munmap(0x40017000, 102972) = 0
open("/dev/urandom", O_RDONLY) = 3
read(3, "\27?\4\225", 4) = 4
close(3) = 0
brk(0) = 0x8054000
brk(0x8075000) = 0x8075000
open(".digitemprc", O_RDONLY) = -1 ENOENT (No such file or directory)
fstat64(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 3), ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40017000
write(1, "DigiTemp v3.2.0 Copyright 1996-2"..., 53DigiTemp v3.2.0 Copyright 1996-2003 by Brian C. Lane
) = 53
write(1, "GNU Public License v2.0 - http:/"..., 51GNU Public License v2.0 - http://www.brianlane.com
) = 51
access("/dev/ttyS3", R_OK|W_OK) = 0
open("/dev/ttyS3", O_RDWR) = 3
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, {B115200 -opost -isig -icanon -echo ...}) = 0
ioctl(3, SNDCTL_TMR_START or TCSETS, {B115200 -opost -isig -icanon -echo ...}) = 0
ioctl(3, TCFLSH, 0x2) = 0
write(1, "Turning off all DS2409 Couplers\n", 32Turning off all DS2409 Couplers
) = 32
ioctl(3, TCFLSH, 0x2) = 0
ioctl(3, SNDCTL_TMR_START or TCSETS, {B9600 -opost -isig -icanon -echo ...}) = 0
write(3, "\360", 1) = 1
select(4, [3], NULL, NULL, {5, 0}) = 1 (in [3], left {4, 998000})
read(3, "\0", 1) = 1
ioctl(3, SNDCTL_TMR_START or TCSETS, {B115200 -opost -isig -icanon -echo ...}) = 0
ioctl(3, TCFLSH, 0x2) = 0
write(3, "\0", 1) = 1
select(4, [3], NULL, NULL, {5, 0}) = 1 (in [3], left {4, 999000})
read(3, "\0", 1) = 1
ioctl(3, TCFLSH, 0x2) = 0
write(3, "\0", 1) = 1
select(4, [3], NULL, NULL, {5, 0}) = 0 (Timeout)
ioctl(3, TCFLSH, 0x2) = 0
write(3, "\0", 1) = 1
select(4, [3], NULL, NULL, {5, 0}) = 0 (Timeout)
ioctl(3, TCFLSH, 0x2) = 0
write(3, "\0", 1) = 1
select(4, [3], NULL, NULL, {5, 0}) = 0 (Timeout)
ioctl(3, TCFLSH, 0x2) = 0
write(3, "\377", 1) = 1
select(4, [3], NULL, NULL, {5, 0} <unfinished ...>
Back to top
View user's profile Send private message
ManJak
Guru
Guru


Joined: 18 Dec 2004
Posts: 561
Location: St. Petersburg, Russia

PostPosted: Thu Aug 11, 2005 6:05 pm    Post subject: Reply with quote

Т.е., что-то пытается сделать :?
Но не может :cry:
Back to top
View user's profile Send private message
ba
l33t
l33t


Joined: 25 May 2003
Posts: 804

PostPosted: Thu Aug 11, 2005 7:25 pm    Post subject: Reply with quote

у меня стрейс выглядит так...
Code:

execve("./digitemp", ["./digitemp", "-i", "-s", "/dev/ttyS1"], [/* 41 vars */]) = 0
uname({sys="Linux", node="baz.zuzino.mipt.ru", ...}) = 0
brk(0)                                  = 0x8055000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=76462, ...}) = 0
mmap2(NULL, 76462, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f6e000
close(3)                                = 0
open("/lib/tls/libm.so.6", O_RDONLY)    = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0P4\0\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=153240, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f6d000
mmap2(NULL, 139424, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f4a000
mmap2(0xb7f6b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x20) = 0xb7f6b000
close(3)                                = 0
open("/lib/tls/libc.so.6", O_RDONLY)    = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\332O\1"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1273176, ...}) = 0
mmap2(NULL, 1215676, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7e21000
mmap2(0xb7f44000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x123) = 0xb7f44000
mmap2(0xb7f48000, 7356, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f48000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7e20000
mprotect(0xb7f44000, 4096, PROT_READ)   = 0
mprotect(0xb7f97000, 4096, PROT_READ)   = 0
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7e206c0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
munmap(0xb7f6e000, 76462)               = 0
open("/dev/urandom", O_RDONLY)          = 3
read(3, "\343\374e\245", 4)             = 4
close(3)                                = 0
brk(0)                                  = 0x8055000
brk(0x8076000)                          = 0x8076000
open(".digitemprc", O_RDONLY)           = -1 ENOENT (No such file or directory)
fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 5), ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f80000
write(1, "DigiTemp v3.3.2 Copyright 1996-2"..., 53) = 53
write(1, "GNU Public License v2.0 - http:/"..., 51) = 51
access("/dev/ttyS1", R_OK|W_OK)         = 0
open("/dev/ttyS1", O_RDWR)              = 3
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, {B9600 opost isig icanon echo ...}) = 0
ioctl(3, SNDCTL_TMR_START or TCSETS, {B115200 -opost -isig -icanon -echo ...}) = 0
ioctl(3, TCFLSH, 0x2)                   = 0
write(1, "Turning off all DS2409 Couplers\n", 32) = 32
ioctl(3, TCFLSH, 0x2)                   = 0
ioctl(3, SNDCTL_TMR_START or TCSETS, {B9600 -opost -isig -icanon -echo ...}) = 0
write(3, "\360", 1)                     = 1
select(4, [3], NULL, NULL, {5, 0})      = 1 (in [3], left {4, 994000})
read(3, "\340", 1)                      = 1
ioctl(3, SNDCTL_TMR_START or TCSETS, {B115200 -opost -isig -icanon -echo ...}) = 0
ioctl(3, TCFLSH, 0x2)                   = 0
write(3, "\0\0\0\0\377\377\377\377", 8) = 8
select(4, [3], NULL, NULL, {5, 0})      = 1 (in [3], left {4, 998000})
read(3, "\0\0\0\0\377\377\377\377", 8)  = 8
ioctl(3, TCFLSH, 0x2)                   = 0
write(3, "\377", 1)                     = 1
select(4, [3], NULL, NULL, {5, 0})      = 1 (in [3], left {4, 999000})
read(3, "\374", 1)                      = 1
ioctl(3, TCFLSH, 0x2)                   = 0
write(3, "\377", 1)                     = 1
select(4, [3], NULL, NULL, {5, 0})      = 1 (in [3], left {4, 999000})
read(3, "\377", 1)                      = 1
ioctl(3, TCFLSH, 0x2)                   = 0
write(3, "\0", 1)                       = 1
select(4, [3], NULL, NULL, {5, 0})      = 1 (in [3], left {4, 999000})
read(3, "\0", 1)                        = 1
ioctl(3, TCFLSH, 0x2)                   = 0
write(3, "\377", 1)                     = 1
select(4, [3], NULL, NULL, {5, 0})      = 1 (in [3], left {4, 999000})
read(3, "\374", 1)                      = 1
ioctl(3, TCFLSH, 0x2)                   = 0
write(3, "\377", 1)                     = 1
select(4, [3], NULL, NULL, {5, 0})      = 1 (in [3], left {4, 999000})
read(3, "\377", 1)                      = 1
ioctl(3, TCFLSH, 0x2)                   = 0
write(3, "\0", 1)                       = 1

<...>

select(4, [3], NULL, NULL, {5, 0})      = 1 (in [3], left {4, 999000})
read(3, "\0", 1)                        = 1
write(1, "10D2722B0008002D : DS1820/DS18S2"..., 60) = 60
write(1, "ROM #0 : 10D2722B0008002D\n", 26) = 26
open(".digitemprc", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 4
fstat64(4, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
mmap2(NULL, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7e00000
write(4, "TTY /dev/ttyS1\nREAD_TIME 1000\nLO"..., 259) = 259
close(4)                                = 0
munmap(0xb7e00000, 131072)              = 0
write(2, "Wrote .digitemprc\n", 18Wrote .digitemprc
)     = 18
time(NULL)                              = 1123788047
time(NULL)                              = 1123788047
time(NULL)                              = 1123788047
ioctl(3, SNDCTL_TMR_START or TCSETS, {B9600 opost isig icanon echo ...}) = 0
close(3)                                = 0
munmap(0xb7f80000, 4096)                = 0
exit_group(0)                           = ?

Попробуй собрать из исходников как я написал последнюю версию, если не заработает - то в схеме скорее всего наглючил...
Back to top
View user's profile Send private message
ManJak
Guru
Guru


Joined: 18 Dec 2004
Posts: 561
Location: St. Petersburg, Russia

PostPosted: Fri Aug 12, 2005 4:15 am    Post subject: Reply with quote

Собрал с исходников - тоже самое :(

Я правильно понимаю:

-|>|-

----|====||=|-----

Т.е., полоса с этой стороны?

Попробую упростить, может перегрел чего, хотя, отводил пинцетом!
Выкину Шотки, для начала, т.к. я понимаю, что они не очень-то нужны (просто защищают КОМ-порт при большой длине шлейфа).

Будут идеи пиши плиз, т.к. у меня они пока кончаются.
Back to top
View user's profile Send private message
ManJak
Guru
Guru


Joined: 18 Dec 2004
Posts: 561
Location: St. Petersburg, Russia

PostPosted: Fri Aug 12, 2005 4:33 am    Post subject: Reply with quote

Тем-более, накосячить-то сложно 4 диода впаять!

Может правда стабилитроны подвели, т.к. я взял отечественные на то-же напряжение стабилизации :D

Но странно, что в первый раз успешно у меня читает, а потом - все, похоже, что что-то с синхрой!!!

Code:

...
ioctl(3, SNDCTL_TMR_START or TCSETS, {B115200 -opost -isig -icanon -echo ...}) = 0
ioctl(3, TCFLSH, 0x2) = 0
write(3, "\0", 1) = 1
select(4, [3], NULL, NULL, {5, 0}) = 1 (in [3], left {4, 999000})
read(3, "\0", 1) = 1
ioctl(3, TCFLSH, 0x2) = 0
write(3, "\0", 1) = 1
select(4, [3], NULL, NULL, {5, 0}) = 0 (Timeout)
...
Back to top
View user's profile Send private message
ba
l33t
l33t


Joined: 25 May 2003
Posts: 804

PostPosted: Fri Aug 12, 2005 2:03 pm    Post subject: Reply with quote

Вобщем от нефиг делать щас еще один такой собрал, именно по этой схеме - все работает...

http://files.yume.ru/side_1.jpg
http://files.yume.ru/side_2.jpg
Back to top
View user's profile Send private message
ManJak
Guru
Guru


Joined: 18 Dec 2004
Posts: 561
Location: St. Petersburg, Russia

PostPosted: Fri Aug 12, 2005 3:03 pm    Post subject: Reply with quote

Спасибо, схема - таже!
Похоже, незнаю как, но датчики спалил из-за того, что собрал прогу, а она не видит, начал разбираться (а помню плохо все это. Ибо давно не трогал) :oops:

Попробую купить один комплект по новой и попробовать снова (с новой прогой).

:wink:

Спасибо огромное, что принял участие и так сильно помог!
Back to top
View user's profile Send private message
ManJak
Guru
Guru


Joined: 18 Dec 2004
Posts: 561
Location: St. Petersburg, Russia

PostPosted: Fri Aug 12, 2005 3:13 pm    Post subject: Reply with quote

Да, сорри, а есть способ проверить датчик без ...?
Чтоб прям в магазине, а то потом скажут, что сам спалил, а может у них партия такая :cry:
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Russian All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum