|
Проблема с DS2482, Не устанавливается пин PCTLZ в ноль |
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 15)
|
Oct 8 2009, 12:31
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(JeDay @ Oct 8 2009, 13:05)  Я тоже натолкнулся на фичу с ногой PCTLZ. Потом отказался от этой функции и подтянул шину резистором. У меня на двух проводах висят 30 термометров, поэтому без этой ноги никак не обойтись. Баг значит в А3 такой. При обращении (чтение/запись без разницы) на шине I2C к другому девайсу (не DS2482) внутри DS2482 начинает неправильно работать чтение данных (передача их на шину I2C). То есть если после общения с DS2482 по шине I2C пообщаться с другим девайсом, то после этого из DS2482 будет читаться "мусор", а не то, что должно читаться. Этот мусор никак не зависит от реальных данных внутри DS2482, но зависит от тех данных, которые пишутся в DS2482 по I2C. Выход из такого ступора чтения - команда сброса DS2482. Однако она сразу же отключает PCTLZ. Вобщем, для нормальной работы с DS2482 нужно (после общения с другим девайсом на шине I2C) сперва передавать команду сброса, а потом работать как ни в чём не бывало.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Oct 9 2009, 06:39
|
Знающий
   
Группа: Свой
Сообщений: 569
Регистрация: 22-01-08
Из: Москва
Пользователь №: 34 316

|
Цитата(GetSmart @ Oct 8 2009, 16:31)  У меня на двух проводах висят 30 термометров, поэтому без этой ноги никак не обойтись.
Баг значит в А3 такой. При обращении (чтение/запись без разницы) на шине I2C к другому девайсу (не DS2482) внутри DS2482 начинает неправильно работать чтение данных (передача их на шину I2C). То есть если после общения с DS2482 по шине I2C пообщаться с другим девайсом, то после этого из DS2482 будет читаться "мусор", а не то, что должно читаться. Этот мусор никак не зависит от реальных данных внутри DS2482, но зависит от тех данных, которые пишутся в DS2482 по I2C. Выход из такого ступора чтения - команда сброса DS2482. Однако она сразу же отключает PCTLZ. Вобщем, для нормальной работы с DS2482 нужно (после общения с другим девайсом на шине I2C) сперва передавать команду сброса, а потом работать как ни в чём не бывало. Вы свою DS2482 сами пинаете или OWFS (отсюда взятый http://owfs.org/) пользуете? Мы используем OWFS и у нас на одной I2C висят две DS2482 тоже забавно "прихрамывают".
|
|
|
|
|
Oct 12 2009, 05:56
|
Знающий
   
Группа: Свой
Сообщений: 569
Регистрация: 22-01-08
Из: Москва
Пользователь №: 34 316

|
Цитата(GetSmart @ Oct 10 2009, 12:16)  Опишите последовательность команд (с указанием старт/стоп битов) на шине I2C, которые вызывают искажения микросхемой DS2482. Я могу проверить на своей плате. Вы будете смеяться, но я имено для этого пытался найти что-нибудь подходящее http://electronix.ru/forum/index.php?showtopic=68075. К сожалению Ваш случай (самостоятельного программирования) значительно проще. Может подскажете что-нибудь? Я i2c мониторы поискал но что все они не то выдают....
|
|
|
|
|
Nov 9 2009, 21:34
|
Частый гость
 
Группа: Участник
Сообщений: 91
Регистрация: 24-08-06
Из: Москва
Пользователь №: 19 809

|
Господа, добавлю свои монетки, у меня проблема с DS2482, прошу мне помочь разобраться. Я писал код и под AVR и под STM32, ситуация такая, на шине 1 wire висят DS2406 и DS2408, и ничего самодельного, по i2c кидаю команды, далее по статусу определяю ход выполнения команды, запись байта по 1wire работает на ура, однако при чтении бита или байта из 1 wire, по i2c DS2482 выдает ерунду типа 0xFF вместо нормального байта, а также проблема в чтении presence pulse, в статусе никак упорно не хочет ставить флаг PPD (presence pulse detected). Cкладывается впечатление что на запись DS2482 работает, а на чтение - облом, и так с четырьмя микросхемами подряд, то ли партия такая бракованная, то ли чего-то недопонимаю. Сталкивался ли кто-нибудь с подобными проблемами и как их решали? За основу брал руководство how to use the ds2482-100 с прилагаемым к нему исходником для 8051. Спасибо за внимание. PS хочу отметить что на i2c висит всего одна микросхема DS2482.
Сообщение отредактировал asket - Nov 9 2009, 21:50
|
|
|
|
|
Nov 13 2009, 18:04
|
Частый гость
 
Группа: Участник
Сообщений: 91
Регистрация: 24-08-06
Из: Москва
Пользователь №: 19 809

|
Цитата(SWT-RUS @ Nov 11 2009, 21:38)  Мы со своей проблемой тоже разобрались. Невиноватая DS2482 оказалась. Работает как часы в обе стороны. Помочь советом не смогу потому как у нас OWFS работает. На 1W у нас весит больше десятка DS2438 и никаких проблем. Той ревизии что имела проблемы сейчас купить невозможно - если конечно не скупать по китайским складам. Но если Вам чудесным образом повезло и у Вас А2 то это всеравно не Ваш случай - там проблема была только с двумя микросхемами на I2C. А у меня наоборот одно недоразумение, у всех работает, а у меня все четыре микросхемы не работают. Посоветовали делать device reset перед каждым общением и это не помогло, переписывал дважды, даже код скопировал из апнота how to use DS2482, и то не помогло, записывает в одну сторону 1 wire хорошо, а в другую сторону читает мусор. Единственное, не могу понять, на шапках микросхем указывается модель DS2482-100, а не DS2482S-100+ фирмы Maxim, хотя заказывали именно последную, не попутали ли наши снабженцы? Вполне может что нам киатйские подкинули, снабженцам то все равно.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|