Страница 1 из 1

реализация 1-wire на attiny13.одни вопросы...

Добавлено: 18 май 2017, 12:22
Pavel901
Уважаемые коллеги. Пробую реализовать 1-wire на тиньке для 1990... и одни вопросы по протоколу:
1. начинаем с ресета - на что ключик отвечает преференсом (пробовано в ISIS 7 Pro, так и с реальным ключом, что видно по скринам)
2. формируем 0x33, а затем шлем в линию "1", в глубокой надежде что ключ будет либо растягивать их до "0", либо возвращать без изменения в зависимости от кода своего серийника (задал FF0FAA, ну чтоб точно видеть по графику, 50мкс/дел.)... но..но...
Чую, что где-то допустил очевидный ляп, но моя "извилина" только сворачивается в спиральку и грустно смотрит на меня тоскливым собачьим взглядом. Что может что сказать умного, доброго, вечного?

Re: реализация 1-wire на attiny13.одни вопросы...

Добавлено: 18 май 2017, 18:47
rhf-admin
ATtiny - мастер и вы им пытаетесь читать DS1990, так?
Про сам протокол читали? И реализацию мастера на AVR смотрели?

Теперь по вашим осциллограммам. Осциллограф у вас конечно хреновый и как-то неправильно настроен, но даже так видно, что передаётся:
1-Wire.png
То есть: RESET -> PRESENCE -> 1 1 0 0 1 1 0 0
Если восстановить порядок бит, то получим 00110011 = 0x33
То есть мастер всё правильно посылает. Либо ключ дохлый и поэтому не отвечает, либо это не осциллограф хреновый, а реально сигналы уродские. Надо растянуть осциллограмму и смотреть саму посылку более детально, по графику например, не видно, успевает ли реально сигнал упасть до нуля при передаче "0" и на какое время. Ну и тайминги будет видно, а то в масштабе 200 мкс/дел смотреть по 10-20 мкс интервалы вообще не айс. Мне фронт задний вообще не нравится.

Re: реализация 1-wire на attiny13.одни вопросы...

Добавлено: 19 май 2017, 00:24
Fahivec
По осциллограмме заметно, что ключик формирует хороший задний фронт, чего не скажешь про мастера.
Подозреваю, что ключик из-за этого кроме сброса ничего толком понять не может.
Вернее, ключик даже не распознает начало таймслота.

Давай схему на обсуждение!

Re: реализация 1-wire на attiny13.одни вопросы...

Добавлено: 19 май 2017, 01:55
Pavel901
Нет, коллеги, нет. Понятно, что карманный осцилл, эпюры с которого я привел в качестве примера, больше подходит для правки своей прически в отражении стекла экрана, чем для измерений;))) - во что превращает реальный сигнал на линии АЦП-шка осцилла (с учетом потерь в щупе, "тянучек" во входных повторителях и д.т.), а затем исходя из каких соображений и в каких кривых этот сигнал рисуется на экране малого разрешения - великая загадка инженера Дзынь и его нерукотворного творения... Я выложил этот скрин разве ради того, чтобы показать временное соответствие модели в ISIS 7 Pro (несмотря на его периодическую ругань о невозможности соблюдения временных реалий) и того, что тинька формирует по факту. Оказалось, что близко (с арифметикой тактов у меня в порядке - слава Великому Калькулятору!!!). Железный ключ и его моделька презентуется, а дальше... молчит, как рыба об лед. Кроме того, и модель ключа и само железо - рабочие, запороть я ни чего не смог....
Второй вечер морщу лоб, чтоб выдавить мысль - сколько таймов даллосовцы могли зафигарить между "презентом" и приемом команды (без разницы какой), чтобы их тупая железяка не путала команды инициализации с командами управления памятью. Кажется в этом месте собака порылась. скорее всего - это время должно быть заведомо больше самой длинной команды инициализации - ресета, для надежности на их месте я сделал бы раза в два... а я в этом варианте после двух тайм-слотов сразу в морду:"память читай свою!!!" естественно он в ауте от такой наглости.

Re: реализация 1-wire на attiny13.одни вопросы...

Добавлено: 19 май 2017, 12:10
Pavel901
"Заработало!!!",- кричал кот Матроскин....
Ну, в общем, все видно из картинки:
- подача команды управления памятью - через 960-1000us после отклика ключа;
- формирование кода ответа ключа: тактируется Мастером выставлением "1" на линии длительностью 10-15us с периодичностью 120us (4 тайм-слота, по видимому для особо удаленных или "тормознутных" ключей)
а так все остальное - по протоколу.
Протокол мне понравился, дальнейшая реализация в "железе" - дело техники...
Кстати, на основе этого протокола можно лепить совершенно оригинальные поделки со своей внутренней системой команд (в один байт их до хе..., т.е. много влезет), а с периферией общаться уже по протоколу... Мне понравилось.

Re: реализация 1-wire на attiny13.одни вопросы...

Добавлено: 19 май 2017, 12:16
Pavel901
Да уж, нарисовал в картинке паузу в 120us (((( - это результат ночных бдений. 980-1000us, конечно! или 2 ресета.

Re: реализация 1-wire на attiny13.одни вопросы...

Добавлено: 19 май 2017, 12:36
Pavel901
Вот так, подправил. Масштаб развертки - 200us/дел.

Re: реализация 1-wire на attiny13.одни вопросы...

Добавлено: 19 май 2017, 18:13
Fahivec
И где же собака порылась?

Re: реализация 1-wire на attiny13.одни вопросы...

Добавлено: 19 май 2017, 18:19
rhf-admin
сколько таймов даллосовцы могли зафигарить между "презентом" и приемом команды
подача команды управления памятью - через 960-1000us после отклика ключа;
Всё же вы не читали или плохо читали матчасть. Второй рисунок (про reset и presence) всё объясняет. А именно - время TRSTH должно быль больше 480 мкс. То есть мастер меряет время до начала передачи команды не от момента, когда он увидел или не увидел Presence от слэйва, не от момента отклика, а от того момента, когда он сам "отпустил" шину.

За это время, в том числе происходит или не происходит следующее:
"Слэйвы", не ранее, чем через 15 мкс, но и не позднее, чем через 60 мкс после того, как "Мастер" отпустит шину (15 мкс < TPDH < 60 мкс), должны сформировать на шине низкий уровень (это и есть сигнал присутствия), длительностью от 60 до 240 мкс (60 мкс < TPDL < 240 мкс), после чего они также отпускают шину.
Так что не нужно ждать никакой миллисекунды после presensa, нужно просто отмерить полмиллисекунды от момента отпускания мастером шины.

Re: реализация 1-wire на attiny13.одни вопросы...

Добавлено: 19 май 2017, 18:38
Pavel901
Грешен, каюсь что не читал матчасть, грешен.... Но, видать, не все испробовал, чтобы обратиться к даташиту. Зато, как увлекателен был процесс поиска истины...