Электронная отмычка

Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


Ответить
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 182
Зарегистрирован: Вт июл 11, 2006 12:39:16
Откуда: Москва

Сообщение dx40 »

Нее, в свавр реализован только мастер.
Контактная информация:
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 635
Зарегистрирован: Пн авг 29, 2005 16:27:04
Откуда: Дмитров

Сообщение Дмитрий О »

Ог. Кстати, а если запитать МК от самого домофона, прокатит?
aka Diamond
Контактная информация:
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 635
Зарегистрирован: Пн авг 29, 2005 16:27:04
Откуда: Дмитров

Сообщение Дмитрий О »

короч вот я нокодил проэкт на CVAVR с питанием от домофона. Знатоки СИ! Помогите разобраться с тем, что накодил :))) Не работает чет. Питание и от батарейки пробовал. всеравно. Тайминги ставил согласно документу
Вложения
IButtonEmul.zip
(28.16 КБ) 607 скачиваний
aka Diamond
Контактная информация:
Вымогатель припоя
Аватара пользователя
Сообщения: 635
Зарегистрирован: Пн авг 29, 2005 16:27:04
Откуда: Дмитров

Сообщение Дмитрий О »

кста забыл про схему
Вложения
01emul.GIF
(3.53 КБ) 1586 скачиваний
aka Diamond
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 182
Зарегистрирован: Вт июл 11, 2006 12:39:16
Откуда: Москва

Сообщение dx40 »

for (i=0; i<7>>x2)&1;
//Вычисляем бит шоб не терять потом время
y=0;
if (PIND.0==1) {
do { y++; } while ((y<30000)&&(PIND.0==1));
} //дождалить нуля, если не дождалисть пошли дальше по таймауту

if (nxt==0) { DDRD.0=1;delay_us(45);DDRD.0=0;}
else {if(PIND.0==0) { do { y++; } while ((y<60000)&&(PIND.0==0));}};

//Если выводим ноль то роняем шину на 45 мкс, если единицу то дожидаемся когда шина вернется в 1



При вставке сишного кода в сообщение он почему-то претерпевает необратимые изменения. Посему мой ответ в приложенном файле!
Вложения
emul.c
Полный исходник моего емулятора. Код запутанный, но помочь ничем не могу...
(5.9 КБ) 880 скачиваний
Text.txt
ответ в текстовом файле.
(664 байт) 614 скачиваний
Контактная информация:
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 635
Зарегистрирован: Пн авг 29, 2005 16:27:04
Откуда: Дмитров

Сообщение Дмитрий О »

dx40, спасибо за помощь! Вчера целый вечер сидел врубал :))) А что в вас имеется ввиду под 30000 и 60000? Сколько мкс? Вот мой переделанный вариант. Считывание кода я пока не делал, т. к. у мну нету Tiny15L. Как куплю, займусь. Это будет ближе к 15 августа.
Очень интересует питание МК от домофона. Если при 3V ток у него 3 mA, то какой кондюк надо? :) А этот 47 мкФ от домофона до пенсии будет заряжаться. Думаю, 5 мкФ.
Вложения
Emul.c
(2.88 КБ) 543 скачивания
aka Diamond
Контактная информация:
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 635
Зарегистрирован: Пн авг 29, 2005 16:27:04
Откуда: Дмитров

Сообщение Дмитрий О »

Кстати, dx40, CRC вычисляется функцией w1_dow_crc8. И кстати, что такое b=(code>>x2)&1;?
aka Diamond
Контактная информация:
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 182
Зарегистрирован: Вт июл 11, 2006 12:39:16
Откуда: Москва

Сообщение dx40 »

Код: Выделить всё

b=(code[i]>>x2)&1
Это я вычисляю нужный бит. i - номер байта x2 - номер бита &1 - наложение маски, т.к. интересует только первый бит.
Далее - 30000 и 60000 - это от балды, единицы мс, просто если не дождались импульсов от мастера, надо что-то делать, не ждать же их вечно...

Код: Выделить всё

  for (i=0;i<=7;i++) {delay_us(46);read+=((2^i)*W1BUS_R); delay_us(15);}; //читаем 8 байт
Это мне не очень нравится. Читать надо не так. Алгоритм такой
Дожидаемся когда шина уйдет в 0
Ждем 15 мкс
Читаем бит
Ждем когда шина вернется в 1.

В документации указаны минимальные тайминги - на практике они могут быть и больше - например после записи бита мастер может подождать пару сотен мкс перед передачей следующего.
Опять же, смотри мой исходник. Он не очень красивый (не люблю си), но точно рабочий!
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18679
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

хлопцы, что-то я не понял, как вы реализуете чтение 1-wire... 15 мкс ожидания а потом чтение? по-моему, это на грани... почитайте статью, возможно что-то станет более понятно... а вот тутеще и исходники на ассемблере есть - чтоб вообще вопросов не осталось :)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 182
Зарегистрирован: Вт июл 11, 2006 12:39:16
Откуда: Москва

Сообщение dx40 »

Речь идет о чтении устройством(слейвом) команды от мастера. И читать надо именно через 15 мкс (+ время выполнения программы - еще несколько, а может и десяток мкс) после среза сигнала. Если промотать выше, то там тоже есть исходник (проверенно рабочий), в котором все это реализовано.
Контактная информация:
Прорезались зубы
Аватара пользователя
Сообщения: 244
Зарегистрирован: Ср авг 31, 2005 20:09:08
Откуда: Петрозаводск, Карелия.

Сообщение Pa5ha »

Действительно. Я до сих пор не могу понять почему надо читать не позднее 15 мкс? Ведь если читать посередине, между длительностью сигнала 1 и сигнала 0, то получится точнее. Ведь переходные процессы в шине из-за паразитной емкости могут не закончится через 15 мкс. Т.е. я имею ввиду если мастер бросает шину и сразу читает, то это не есть правильно. Сколько в среднем "обычно" мастер держит шину при чтении бита?
2kb of eeprom should be enought for everybody (C) Bill Gates` cat :)
Контактная информация:
Вымогатель припоя
Аватара пользователя
Сообщения: 635
Зарегистрирован: Пн авг 29, 2005 16:27:04
Откуда: Дмитров

Сообщение Дмитрий О »

Может кто-то определенно сказать, будет ли схема от домофона питаться? Или на батарейке придется?
aka Diamond
Контактная информация:
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 182
Зарегистрирован: Вт июл 11, 2006 12:39:16
Откуда: Москва

Сообщение dx40 »

Я думаю, можно сделать. Кондюк побольше поставить - должно хватить.
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18679
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Извините, я не сразу вник, что речь об эмуляции ведомого (slave) - он действительно должен считывать шину как можно позже от начала тайм-слота - не грех и через 30-40 микросекунд, и даже позже...
А я по привычке все про ведущего думал... :oops:
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Вымогатель припоя
Аватара пользователя
Сообщения: 635
Зарегистрирован: Пн авг 29, 2005 16:27:04
Откуда: Дмитров

Сообщение Дмитрий О »

dx40 писал(а):Я думаю, можно сделать. Кондюк побольше поставить - должно хватить.
Ан нет! В домофоне то подтяга 4.7 к минимум! Если кондюк 100 мкф поставить, то сколько он заряжаться то будет? :) Думаю достаточно 4.7 мкФ, т. к. кондюк без подзарядки остается максимум 650 мкс, пока в линии 0,а МК при 1.5 МГц много и не кушает, т. к. только линию на землю закорачивает. Завтра померию, сколько домофон напруги дает.
aka Diamond
Контактная информация:
Родился
Сообщения: 3
Зарегистрирован: Чт июн 21, 2007 20:41:33
Откуда: Novosibirsk

Сообщение TimON »

Питание от домофона не прокатит, т.к. сабж всё-таки является "мультиключом". Как в таком случае предполагается производить считывание "донора" и выбор нужного ключа из памяти?
В качестве варианта лишь максимальное снижение энергопотребления через соответствующие режимы контроллера, выход из которых лишь по прерываниям от вывода эмуляции и кнопки, и питания от литиевого 3V элемента типа того что на материнках ставится.

ЗЫ:В инете где-то встречал готовое решение на PIC, представляющее собой эмулятор тупой таблетки и именно с "паразитным" питанием, там PIC в SOIC-8, SMD кондёр, еще какая-то мелочь( не помню что именно) и всё, заделывается в конструкцию подобную "оригиналу" и как там описано от оригинала ничем не отличается.
Coming Soon...
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 68
Зарегистрирован: Ср июн 20, 2007 18:46:54
Откуда: Красноярск

Сообщение Степаныч »

Всем доброго дня!Я хотел спросить:а если на ключе ничего не выгравлено то это уже не DS???
IN GOD WE TRUST
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3792
Зарегистрирован: Чт сен 14, 2006 11:42:09
Откуда: Обитаю на чердаке

Сообщение Мышонок »

Зеленоградский Ангстрем по-моему, аналоги DS делает.
Память очень интересная штука: бывает так, что запомнишь одно, а вспомнишь другое...
Контактная информация:
Родился
Сообщения: 6
Зарегистрирован: Вс сен 30, 2007 10:29:20
Откуда: Красноярск

Сообщение Mikl9439 »

dx40 писал(а):...работает только один индикатор, который показывает код текущего действия (или ошибки).
A - ждем сброса
b - пережидаем сбррос
C - читаем комманду
d - выдаем ответ
E - эмуляция закончена
Если все правильно, то буквы мигают так быстро что их не заметно. Если какая-то буква отображается заметное время, значит произошла ошибка (например из-за плохого контакта со считывателем).
Собрал. Прошил. Включил. Считал ключ. Прочитал EEPROM – номер совпадает.
Для проверки режима имитации использую компьютер с переходником DS9097E и программу iBViev32 (чтобы каждый раз к домофону не бегать). Компьютер читает номера ключей на ура, а отмычку не видит. :(
При подключении индикатор выдаёт последовательно Е, А, С, Е, А, С... Каждый символ светится меньше секунды, но прочитать можно. Контакт со считывателем – хороший. Что ещё может быть?
Контактная информация:
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 182
Зарегистрирован: Вт июл 11, 2006 12:39:16
Откуда: Москва

Сообщение dx40 »

Возможно считыватель использует команду Search Rom...
Контактная информация:
Ответить

Вернуться в «Статьи»