Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Готовые конструкции » Использование DS2408


Использование DS2408

Сообщений 1 страница 9 из 9

1

DS2408 - 1-Wire расширитель, подобный PCF8574, только с другим интерфейсом управления.

Очень занятная микруха, доставила (лично мне) много удовольствия в её "разгрызании", несмотря на достаточно подробный даташит.

Что выяснилось в процессе её "исследования"...
Перевод из даташита:

RSTZ Pin
Программно настраиваемый вход сброса PIO (RST) или строб-выход с открытым стоком (STRB).
При настройке как RST вход LOW (при установке «0» на ножке RSTZ) устанавливает все выходы PIO в состояние «выключено» («1»), устанавливая все биты в регистре состояния выходов PIO.
Когда сконфигурирован как STRB («1» на ножке RSTZ), строчный выход будет происходить после записи PIO (см. Команду Write-Access Write) или после чтения PIO (см. Команду чтения канала).
После включения питания по умолчанию для этого вывода - RST.
Если не сконфигурирован как выход STRB, вывод RSTZ должен быть подключен к VCC напрямую или через резистор. Локальное питание VCC может быть создано путем приема энергии от линии 1-Wire.

Обращаем внимание на выделенное !
Этим фактом пренебрегать НЕЛЬЗЯ ни в коем случае !
Этот вывод ДОЛЖЕН быть подключен обязательно !
Идеально - с использованием функции Reset, если не планируется использование данного вывода для других целей.
Самый простой вариант - использование RC-цепочки или генератора импульса Reset, ка на рис.20 в даташите.
В качестве RC-цепочки (практический эксперимент) лучше использовать связку 10кОм+0.1мкФ - 98% нормального Reset'а.

Второй фактор успешного запуска микрухи:

DS2408 чувствителен к скорости нарастания мощности и может непреднамеренно включить питание с включенной функцией тестового режима. Когда это происходит, порт P0 не отвечает на команду Write Access Write.
Для наиболее надежной работы рекомендуется отключить тестовый режим после каждого включения при включении, используя приведенную ниже последовательность Disable Test Mode «Отключить тестовый режим».
64-разрядный код ПЗУ должен быть передан в той же последовательности бит, что и в случае команды совпадения ПЗУ, то есть младшего значащего бита.
Эта предосторожность рекомендуется в режиме паразитного питания (контакт VCC, подключенный к GND), а также с VCC.

Это написано в самом конце даташита, стр.38 (из 39 !), куда обычно пуляют сведения о видах и качестве упаковки и куда не часто долистываются ! ;)
Поэтому последовательность команд

1wreset
1wwrite &H96, 1, PINx, x
<64-bit DS2408 ROM Code>
1wwrite &H3C, 1, PINx, x
1wreset

Для каждой микросхемы не просто желательна, а - ОБЯЗАТЕЛЬНА.
Независимо от количества данных м/с на шине.
После этого микрухи становятся "очень добрыми"... ;)
У меня из шести имеющихся без этой "гирлянды" успешно стартовала только одна !

Хочется еще добавить, что эти м/с почему-то очень любят, когда к нам обращаются "по имени" (64-bit DS2408 ROM Code)... ;)
Использование (в железе) команды &HCC (Skip ROM) нежелательно даже в случае одной м/с на шине...
Хотя, можно путем экспериментов установить "уровень толерантности" на практике... ;)
В моем случае - 2 из шести отказались понимать эту команду...
ИМХО, вставка в код трех строчек прямой адресации не сильно его (код) распушит... ;)

Так же имею подобные "исследования" по DS2413.
Желающим могу отправить частичные переводы на русский (после Гугла) по этим микросхемам.
Если есть возможность их выложить без использования файлообменников - предлагайте варианты, отдам без претензий.

PS. Обе микрухи - очень интересные в практической применяемости.
DS2408, например, уже не один день гоняет данные на LCD16*2 по витой паре 23...25м, смотанной в рулон под столом... ;)
По этой же "витухе" в качестве помехи запущено реле-вибратор (само себя отключает) от 5в БП.
Пока ошибок не наблюдалось... ;)

PSPS. В Протеусе для моделирования достаточно в свойствах модели в параметре Reset Time вместо 680us установить 480us.
Моделирование неполноценное, но вполне достаточное !

0

2

Отт ано как...
Помнишь, что я писал тебе в личко? Вспомни: Привести к общему знаменателю тайминги на шине 1w не догадался как сделать?

А теперь что? Ты с гордостью поднял свой флаг, мол я уговорил датчик работать????  :D   Ойй, не хорошо получается, несправедливо!!!

0

3

-NMi- написал(а):

А теперь что? Ты с гордостью поднял свой флаг, мол я уговорил датчик работать????     Ойй, не хорошо получается, несправедливо!!!

Одеяла на себя не тяну, учитывая гордо сделанные вами ранее растирания меня носом по столу, совершенные от  незнания, что Я могу и умею... ;)  А знать все и уметь все - невозможно в принципе...

В данной теме я рассказал о практическом опыте работы с реальной м/с, а не с моделью в Протеусе.
Так что не надо смешивать теплое с мягким... ;)

Если вы что-то знаете больше меня в этом вопросе (в чем я не сомневаюсь), то, вместо того, чтоб смайлики постить, можно было бы и сразу сказать причину граблей с моделью.
На изменение значения Reset Time для модели мне указал Mrshilov, но еще до этого я уже нашел этот вариант. Но и ему - отдельное спасибо, что не отделался смайликами и выпученным самомнением !

Обращение "на вы" прошу не расценивать как-то сторонне, я привык к людям, с кем лично не знаком (общение на сайте не в счет) так обращаться. Тут, плиз, без обид... ;)

Отредактировано Nord (2018-02-18 23:42:34)

0

4

Понятно.
Вся "фишка" в том, что протокол 1W сертифицирован и имеЮт местО быть не просто "схожести" протоколов а их полное СООТВЕТСТВИЕ!!!
Иными словами - ваше описание про датчик и команду "СС" полная лажа и не стоит об Этом так яростно утверждать.
лЮбой датчик 1W имеет ПОЛНОЦЕННО СХОЖУЮ систему команд и является ЧАСТЬЮ группы семейства 1W!!!
Вот Это прежде всего стоит учитывать!!!!!!
Ну... :D

0

5

-NMi- написал(а):

Понятно.Вся "фишка" в том, что протокол 1W сертифицирован и имеЮт местО быть не просто "схожести" протоколов а их полное СООТВЕТСТВИЕ!!!Иными словами - ваше описание про датчик и команду "СС" полная лажа и не стоит об Этом так яростно утверждать.лЮбой датчик 1W имеет ПОЛНОЦЕННО СХОЖУЮ систему команд и является ЧАСТЬЮ группы семейства 1W!!!

Абсолютно согласен с тем, что "сертифицирован", "схожесть" и т.п., но, имея практический опыт с всего 6-ю (!) микросхемами, работающих по этому протоколу, я не утверждаю, а рекомендую, что, собственно, понятно из текста - не использовать эту команду или первоначально протестировать ее "в железе" с конкретными микросхемами.
Что тут крамольного ? ;)

Отредактировано Nord (2018-02-19 00:01:20)

0

6

Ща меня опять обвинят в троллинге и в незнании протокола 1w  :D
Пойдём лучше STM32 изучать, вот там точно не соскучиШЬси...  :rofl:

0

7

-NMi- написал(а):

Ща меня опять обвинят в троллинге и в незнании протокола 1w

В первом - не моя прерогатива ;)
А во втором - за что ?  Никаких причин для этого нет.  :cool:

Хотелось бы надеяться на грамотную и адекватную поддержку в дальнейшем !

Отредактировано Nord (2018-02-19 00:11:57)

0

8

Ну сёння прощальное воскресение ---- вы уж меня простите...за тупость....  :flag:

0

9

-NMi- написал(а):

Ну сёння прощальное воскресение

... прощённое ...  :flag:

0


Вы здесь » Программирование ATMEL в BASCOM. » Готовые конструкции » Использование DS2408