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

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

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


Аватара пользователя
dx40
Нашел транзистор. Понюхал.
Сообщения: 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 КБ) 604 скачивания
aka Diamond
Аватара пользователя
Дмитрий О
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пн авг 29, 2005 16:27:04
Откуда: Дмитров
Контактная информация:

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

кста забыл про схему
Вложения
01emul.GIF
(3.53 КБ) 1585 скачиваний
aka Diamond
Аватара пользователя
dx40
Нашел транзистор. Понюхал.
Сообщения: 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 КБ) 878 скачиваний
Text.txt
ответ в текстовом файле.
(664 байт) 611 скачиваний
Аватара пользователя
Дмитрий О
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пн авг 29, 2005 16:27:04
Откуда: Дмитров
Контактная информация:

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

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

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

Кстати, dx40, CRC вычисляется функцией w1_dow_crc8. И кстати, что такое b=(code[i]>>x2)&1;?
aka Diamond
Аватара пользователя
dx40
Нашел транзистор. Понюхал.
Сообщения: 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
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

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

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

Сообщение dx40 »

Речь идет о чтении устройством(слейвом) команды от мастера. И читать надо именно через 15 мкс (+ время выполнения программы - еще несколько, а может и десяток мкс) после среза сигнала. Если промотать выше, то там тоже есть исходник (проверенно рабочий), в котором все это реализовано.
Аватара пользователя
Pa5ha
Прорезались зубы
Сообщения: 243
Зарегистрирован: Ср авг 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
Аватара пользователя
dx40
Нашел транзистор. Понюхал.
Сообщения: 182
Зарегистрирован: Вт июл 11, 2006 12:39:16
Откуда: Москва
Контактная информация:

Сообщение dx40 »

Я думаю, можно сделать. Кондюк побольше поставить - должно хватить.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 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
TimON
Родился
Сообщения: 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 делает.
Память очень интересная штука: бывает так, что запомнишь одно, а вспомнишь другое...
Mikl9439
Родился
Сообщения: 6
Зарегистрирован: Вс сен 30, 2007 10:29:20
Откуда: Красноярск
Контактная информация:

Сообщение Mikl9439 »

dx40 писал(а):...работает только один индикатор, который показывает код текущего действия (или ошибки).
A - ждем сброса
b - пережидаем сбррос
C - читаем комманду
d - выдаем ответ
E - эмуляция закончена
Если все правильно, то буквы мигают так быстро что их не заметно. Если какая-то буква отображается заметное время, значит произошла ошибка (например из-за плохого контакта со считывателем).


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

Сообщение dx40 »

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

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