Электронная отмычка
Нее, в свавр реализован только мастер.
- Реклама
Ог. Кстати, а если запитать МК от самого домофона, прокатит?
aka Diamond
короч вот я нокодил проэкт на CVAVR с питанием от домофона. Знатоки СИ! Помогите разобраться с тем, что накодил
Не работает чет. Питание и от батарейки пробовал. всеравно. Тайминги ставил согласно документу
- Вложения
-
- IButtonEmul.zip
- (28.16 КБ) 607 скачиваний
aka Diamond
кста забыл про схему
- Вложения
-
- 01emul.GIF
- (3.53 КБ) 1586 скачиваний
aka Diamond
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
При вставке сишного кода в сообщение он почему-то претерпевает необратимые изменения. Посему мой ответ в приложенном файле!
//Вычисляем бит шоб не терять потом время
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 скачиваний
- Реклама
dx40, спасибо за помощь! Вчера целый вечер сидел врубал
А что в вас имеется ввиду под 30000 и 60000? Сколько мкс? Вот мой переделанный вариант. Считывание кода я пока не делал, т. к. у мну нету Tiny15L. Как куплю, займусь. Это будет ближе к 15 августа.
Очень интересует питание МК от домофона. Если при 3V ток у него 3 mA, то какой кондюк надо?
А этот 47 мкФ от домофона до пенсии будет заряжаться. Думаю, 5 мкФ.
Очень интересует питание МК от домофона. Если при 3V ток у него 3 mA, то какой кондюк надо?
- Вложения
-
- Emul.c
- (2.88 КБ) 543 скачивания
aka Diamond
Кстати, dx40, CRC вычисляется функцией w1_dow_crc8. И кстати, что такое b=(code>>x2)&1;?
aka Diamond
Код: Выделить всё
b=(code[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.
В документации указаны минимальные тайминги - на практике они могут быть и больше - например после записи бита мастер может подождать пару сотен мкс перед передачей следующего.
Опять же, смотри мой исходник. Он не очень красивый (не люблю си), но точно рабочий!
хлопцы, что-то я не понял, как вы реализуете чтение 1-wire... 15 мкс ожидания а потом чтение? по-моему, это на грани... почитайте статью, возможно что-то станет более понятно... а вот тутеще и исходники на ассемблере есть - чтоб вообще вопросов не осталось 
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Речь идет о чтении устройством(слейвом) команды от мастера. И читать надо именно через 15 мкс (+ время выполнения программы - еще несколько, а может и десяток мкс) после среза сигнала. Если промотать выше, то там тоже есть исходник (проверенно рабочий), в котором все это реализовано.
Действительно. Я до сих пор не могу понять почему надо читать не позднее 15 мкс? Ведь если читать посередине, между длительностью сигнала 1 и сигнала 0, то получится точнее. Ведь переходные процессы в шине из-за паразитной емкости могут не закончится через 15 мкс. Т.е. я имею ввиду если мастер бросает шину и сразу читает, то это не есть правильно. Сколько в среднем "обычно" мастер держит шину при чтении бита?
2kb of eeprom should be enought for everybody (C) Bill Gates` cat 
Может кто-то определенно сказать, будет ли схема от домофона питаться? Или на батарейке придется?
aka Diamond
Я думаю, можно сделать. Кондюк побольше поставить - должно хватить.
Извините, я не сразу вник, что речь об эмуляции ведомого (slave) - он действительно должен считывать шину как можно позже от начала тайм-слота - не грех и через 30-40 микросекунд, и даже позже...
А я по привычке все про ведущего думал...
А я по привычке все про ведущего думал...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Ан нет! В домофоне то подтяга 4.7 к минимум! Если кондюк 100 мкф поставить, то сколько он заряжаться то будет?dx40 писал(а):Я думаю, можно сделать. Кондюк побольше поставить - должно хватить.
aka Diamond
Питание от домофона не прокатит, т.к. сабж всё-таки является "мультиключом". Как в таком случае предполагается производить считывание "донора" и выбор нужного ключа из памяти?
В качестве варианта лишь максимальное снижение энергопотребления через соответствующие режимы контроллера, выход из которых лишь по прерываниям от вывода эмуляции и кнопки, и питания от литиевого 3V элемента типа того что на материнках ставится.
ЗЫ:В инете где-то встречал готовое решение на PIC, представляющее собой эмулятор тупой таблетки и именно с "паразитным" питанием, там PIC в SOIC-8, SMD кондёр, еще какая-то мелочь( не помню что именно) и всё, заделывается в конструкцию подобную "оригиналу" и как там описано от оригинала ничем не отличается.
В качестве варианта лишь максимальное снижение энергопотребления через соответствующие режимы контроллера, выход из которых лишь по прерываниям от вывода эмуляции и кнопки, и питания от литиевого 3V элемента типа того что на материнках ставится.
ЗЫ:В инете где-то встречал готовое решение на PIC, представляющее собой эмулятор тупой таблетки и именно с "паразитным" питанием, там PIC в SOIC-8, SMD кондёр, еще какая-то мелочь( не помню что именно) и всё, заделывается в конструкцию подобную "оригиналу" и как там описано от оригинала ничем не отличается.
Coming Soon...
Всем доброго дня!Я хотел спросить:а если на ключе ничего не выгравлено то это уже не DS???
IN GOD WE TRUST
Зеленоградский Ангстрем по-моему, аналоги DS делает.
Память очень интересная штука: бывает так, что запомнишь одно, а вспомнишь другое...
Собрал. Прошил. Включил. Считал ключ. Прочитал EEPROM – номер совпадает.dx40 писал(а):...работает только один индикатор, который показывает код текущего действия (или ошибки).
A - ждем сброса
b - пережидаем сбррос
C - читаем комманду
d - выдаем ответ
E - эмуляция закончена
Если все правильно, то буквы мигают так быстро что их не заметно. Если какая-то буква отображается заметное время, значит произошла ошибка (например из-за плохого контакта со считывателем).
Для проверки режима имитации использую компьютер с переходником DS9097E и программу iBViev32 (чтобы каждый раз к домофону не бегать). Компьютер читает номера ключей на ура, а отмычку не видит.
При подключении индикатор выдаёт последовательно Е, А, С, Е, А, С... Каждый символ светится меньше секунды, но прочитать можно. Контакт со считывателем – хороший. Что ещё может быть?
Возможно считыватель использует команду Search Rom...


