Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема с DS2482
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам
GetSmart
Если задал вопрос не в той теме - больно не бейте smile.gif

Работаю с этой микросхемой - мостом I2C <-> OWI и всё работает прекрасно. Все команды выполняются отлично. Запись конфигурационного слова тоже работает отлично - это видно по тому, что микруха отвечает NACK когда старший полубайт не равен инверсному младшему полубайту. Перепробовал все 16 комбинаций конфигурации - пин PCTLZ всегда находится в 1. То есть посылаю микрухе команду конфигурации раз в секунду перебираю 16 вариантов и смотрю прибором пин PCTLZ. Кроме этой команды никаких команд не отрабатываю. Сброс микрухи предварительно делал. Вариантов больше нет. Помогите, люди дорогие smile.gif
GetSmart
Думал что только на процы выпускают эрраты. Но нашёл эррату на эту микруху версии A2. Моя микруха версии А3. Для А2 единственный косяк - проблемы на шине I2C при чтении другого слэйва, не DS2482, находящегося на той же шине.
GetSmart
Оказалось, что чтобы PCTLZ включился нужно ещё "плюнуть" какой-нибудь байт/бит на шину OWI. Вот разработчики блин молодцы.

Кстати, столкнулся с похожими проблемами на I2C для версии А3 (моей), которые описаны в эррате на А2. Того косяка из А2 кажется нет, но зато есть другой, похожий, хотя не настолько смертельный когда к шине I2C подключены другие девайсы. Позже отпишусь.

__________

Тему наверно лучше скинуть в форум по интерфейсам. Вроде как тема об 1-wire.
JeDay
Я тоже натолкнулся на фичу с ногой PCTLZ. Потом отказался от этой функции и подтянул шину резистором.
GetSmart
Цитата(JeDay @ Oct 8 2009, 13:05) *
Я тоже натолкнулся на фичу с ногой PCTLZ. Потом отказался от этой функции и подтянул шину резистором.

У меня на двух проводах висят 30 термометров, поэтому без этой ноги никак не обойтись.

Баг значит в А3 такой. При обращении (чтение/запись без разницы) на шине I2C к другому девайсу (не DS2482) внутри DS2482 начинает неправильно работать чтение данных (передача их на шину I2C). То есть если после общения с DS2482 по шине I2C пообщаться с другим девайсом, то после этого из DS2482 будет читаться "мусор", а не то, что должно читаться. Этот мусор никак не зависит от реальных данных внутри DS2482, но зависит от тех данных, которые пишутся в DS2482 по I2C. Выход из такого ступора чтения - команда сброса DS2482. Однако она сразу же отключает PCTLZ. Вобщем, для нормальной работы с DS2482 нужно (после общения с другим девайсом на шине I2C) сперва передавать команду сброса, а потом работать как ни в чём не бывало.
SWT-RUS
Цитата(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 тоже забавно "прихрамывают".
GetSmart
Цитата(SWT-RUS @ Oct 9 2009, 12:39) *
Вы свою DS2482 сами пинаете или OWFS (отсюда взятый http://owfs.org/) пользуете?

Скорее всего сам "пинаю", т.к. об OWFS впервые слышу.
SWT-RUS
Цитата(GetSmart @ Oct 9 2009, 12:24) *
Скорее всего сам "пинаю", т.к. об OWFS впервые слышу.

Дело в том что мы тоже имеем некоторую проблему с устройством висящим рядом с этими DS2482. У нас на шине висит DS1338 и добраться до него без приключений не получается. Такое впечатление что DS2482 как то реагирует на все что мимо нее пролетает по I2C. А уж когда их две - то просто оргия какая-то...
GetSmart
Цитата(SWT-RUS @ Oct 9 2009, 14:58) *
Такое впечатление что DS2482 как то реагирует на все что мимо нее пролетает по I2C. А уж когда их две - то просто оргия какая-то...

В ревизиях А2 (возможно и более ранних) этот баг описан в эррате. Скачайте эррату с сайта максима. А2 портит чужие данные на I2C шине, а А3 не портит.
SWT-RUS
Цитата(GetSmart @ Oct 9 2009, 13:21) *
В ревизиях А2 (возможно и более ранних) этот баг описан в эррате. Скачайте эррату с сайта максима. А2 портит чужие данные на I2C шине, а А3 не портит.

Это было бы совсем просто biggrin.gif . Но к сожалению у нас тоже ревизия A3. Могу фото приложить...
GetSmart
Цитата(SWT-RUS @ Oct 9 2009, 16:25) *
Это было бы совсем просто biggrin.gif . Но к сожалению у нас тоже ревизия A3. Могу фото приложить...

Опишите последовательность команд (с указанием старт/стоп битов) на шине I2C, которые вызывают искажения микросхемой DS2482. Я могу проверить на своей плате.
SWT-RUS
Цитата(GetSmart @ Oct 10 2009, 12:16) *
Опишите последовательность команд (с указанием старт/стоп битов) на шине I2C, которые вызывают искажения микросхемой DS2482. Я могу проверить на своей плате.

Вы будете смеяться, но я имено для этого пытался найти что-нибудь подходящее http://electronix.ru/forum/index.php?showtopic=68075. К сожалению Ваш случай (самостоятельного программирования) значительно проще. Может подскажете что-нибудь? Я i2c мониторы поискал но что все они не то выдают....
asket
Господа, добавлю свои монетки, у меня проблема с 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.
GetSmart
Почитайте эррату на свою ревизию чипа. Может там есть ответ.
В моём случае подобные глюки тоже случались, но проходили сразу же после передачи в DS2482 команды сброса. Я встроил в свой алгоритм передачу этой команды всегда, сразу перед началом общения с DS2482.
SWT-RUS
Мы со своей проблемой тоже разобрались. Невиноватая DS2482 оказалась. Работает как часы в обе стороны. Помочь советом не смогу потому как у нас OWFS работает. На 1W у нас весит больше десятка DS2438 и никаких проблем. Той ревизии что имела проблемы сейчас купить невозможно - если конечно не скупать по китайским складам. Но если Вам чудесным образом повезло и у Вас А2 то это всеравно не Ваш случай - там проблема была только с двумя микросхемами на I2C.
asket
Цитата(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, хотя заказывали именно последную, не попутали ли наши снабженцы? Вполне может что нам киатйские подкинули, снабженцам то все равно.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.