View previous topic :: View next topic |
Author |
Message |
ManJak Guru
Joined: 18 Dec 2004 Posts: 561 Location: St. Petersburg, Russia
|
Posted: Wed Aug 10, 2005 4:44 pm Post subject: Датчик температуры |
|
|
Сорри, но судя по трэду:
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 |
|
|
ManJak Guru
Joined: 18 Dec 2004 Posts: 561 Location: St. Petersburg, Russia
|
Posted: Thu Aug 11, 2005 2:42 am Post subject: |
|
|
Нашел, но от этого не легче
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 |
|
|
ba l33t
Joined: 25 May 2003 Posts: 804
|
Posted: Thu Aug 11, 2005 7:08 am Post subject: |
|
|
digitemp ты неправильно собрал скорее всего...
там надо в Makefile-е поставить LOCK=no вместо yes
и собирать make ds9097
[edit]
не заметил, что он уже появился в портаже...
тогда собирай из портажа с SERIAL_DRIVER=ds9097 emerge digitemp
[edit#2]
из портажа у меня не поставилось, так что ставь лучше руками... |
|
Back to top |
|
|
ManJak Guru
Joined: 18 Dec 2004 Posts: 561 Location: St. Petersburg, Russia
|
Posted: Thu Aug 11, 2005 3:17 pm Post subject: |
|
|
У меня поставилось без траблов:
# 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
#
Но пока не достиг резалта
Ща помучаюсь, а потом руками + bugreport |
|
Back to top |
|
|
ManJak Guru
Joined: 18 Dec 2004 Posts: 561 Location: St. Petersburg, Russia
|
Posted: Thu Aug 11, 2005 3:17 pm Post subject: |
|
|
В догонку:
Переменную лучше определять в make.conf
Тогда она не глобальна |
|
Back to top |
|
|
ManJak Guru
Joined: 18 Dec 2004 Posts: 561 Location: St. Petersburg, Russia
|
Posted: Thu Aug 11, 2005 4:50 pm Post subject: |
|
|
Пересобрал, примерно понял, в чем было дело!
А сколько времени 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 |
|
|
ManJak Guru
Joined: 18 Dec 2004 Posts: 561 Location: St. Petersburg, Russia
|
Posted: Thu Aug 11, 2005 5:56 pm Post subject: |
|
|
Проверил схемы, девайсы.
Зацикливается
# 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 |
|
|
ManJak Guru
Joined: 18 Dec 2004 Posts: 561 Location: St. Petersburg, Russia
|
Posted: Thu Aug 11, 2005 6:05 pm Post subject: |
|
|
Т.е., что-то пытается сделать
Но не может |
|
Back to top |
|
|
ba l33t
Joined: 25 May 2003 Posts: 804
|
Posted: Thu Aug 11, 2005 7:25 pm Post subject: |
|
|
у меня стрейс выглядит так...
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 |
|
|
ManJak Guru
Joined: 18 Dec 2004 Posts: 561 Location: St. Petersburg, Russia
|
Posted: Fri Aug 12, 2005 4:15 am Post subject: |
|
|
Собрал с исходников - тоже самое
Я правильно понимаю:
-|>|-
----|====||=|-----
Т.е., полоса с этой стороны?
Попробую упростить, может перегрел чего, хотя, отводил пинцетом!
Выкину Шотки, для начала, т.к. я понимаю, что они не очень-то нужны (просто защищают КОМ-порт при большой длине шлейфа).
Будут идеи пиши плиз, т.к. у меня они пока кончаются. |
|
Back to top |
|
|
ManJak Guru
Joined: 18 Dec 2004 Posts: 561 Location: St. Petersburg, Russia
|
Posted: Fri Aug 12, 2005 4:33 am Post subject: |
|
|
Тем-более, накосячить-то сложно 4 диода впаять!
Может правда стабилитроны подвели, т.к. я взял отечественные на то-же напряжение стабилизации
Но странно, что в первый раз успешно у меня читает, а потом - все, похоже, что что-то с синхрой!!!
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 |
|
|
ba l33t
Joined: 25 May 2003 Posts: 804
|
|
Back to top |
|
|
ManJak Guru
Joined: 18 Dec 2004 Posts: 561 Location: St. Petersburg, Russia
|
Posted: Fri Aug 12, 2005 3:03 pm Post subject: |
|
|
Спасибо, схема - таже!
Похоже, незнаю как, но датчики спалил из-за того, что собрал прогу, а она не видит, начал разбираться (а помню плохо все это. Ибо давно не трогал)
Попробую купить один комплект по новой и попробовать снова (с новой прогой).
Спасибо огромное, что принял участие и так сильно помог! |
|
Back to top |
|
|
ManJak Guru
Joined: 18 Dec 2004 Posts: 561 Location: St. Petersburg, Russia
|
Posted: Fri Aug 12, 2005 3:13 pm Post subject: |
|
|
Да, сорри, а есть способ проверить датчик без ...?
Чтоб прям в магазине, а то потом скажут, что сам спалил, а может у них партия такая |
|
Back to top |
|
|
|
|
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
|
|