Сейчас на форуме: Dart Raiden, Alf, bedop66938 (+6 невидимых)

 eXeL@B —› Электроника —› простая отмычка ds-1990 на асме
Посл.ответ Сообщение

Ранг: 10.7 (новичок), 2thx
Активность: 0.010
Статус: Участник

Создано: 25 августа 2013 20:00 · Поправил: ylproduction
· Личное сообщение · #1

новости с фронта

простая отмычка ds-1990 БЕЗ ПИТАНИЯ. автор не я, собрана лично и проверена на домофоне мной. Отмыкает (я аж охерел)

схема (так понятнее)

кондюк электролит 22 мкф, диод бери с малым падением 200-300 мВ, я брал стеклянный в SMD исполнении, ПИК в PID корпусе (как нуб )

А ВОТ ИСХОДНИК НА АСМЕ

Code:
  1.             list      p=12f629        ; list directive to define processor
  2.             #include <p12f629.inc>    ; processor specific variable definitions
  3.  
  4.             errorlevel -302
  5.          __CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT & _BODEN_OFF & _MCLRE_OFF
  6.  
  7.  
  8. coreg       equ     0x20
  9. delcnt      equ     0x21
  10. cobit       equ     0x22
  11. TM1         EQU     024H
  12.  
  13. reg0        equ     025h
  14. reg1        equ     026h
  15. reg2        equ     027h
  16. reg3        equ     028h
  17. reg4        equ     029h
  18.  
  19. shreg       equ     02Ah
  20.  
  21.             ORG     0x3FF
  22.             ORG     0x000             ; coding begins here
  23.                         goto  RUN
  24.  
  25.                         ORG     0x04
  26. Int
  27.                         btfss  INTCON, T0IF     ; флаг прерывания по таймеру?
  28.                         return
  29.                         movlw         B'10000000'     ;прерывания по таймеру отключаем
  30.                         movwf          INTCON          ;
  31.                         bcf            INTCON, T0IF
  32.                         return
  33. RUN
  34.                         bcf     STATUS,RP0
  35.                         movlw b'00000111'                  ;
  36.                         movwf CMCON         ;Вsкл компаратор
  37.                         bsf     STATUS,RP0         ;
  38.                       movlw         b'00111111'           ;все порты на вход
  39.                         movwf TRISIO      ;
  40.                         movlw 0x00            ;
  41.                         movwf IOCB            ;
  42.                         movlw   b'10000001'         ;
  43.             movwf OPTION_REG               ;
  44.             call  3FFh
  45.             MOVWF   OSCCAL                  ;
  46.                         movlw         B'10100000'     ;прерывания только по таймеру
  47.                         movwf          INTCON          ;
  48.                         bcf     STATUS, RP0               ;
  49.                         clrf  GPIO               ;
  50. Next
  51.                         btfsc INTCON, T0IE      ;ждем заряда емкости
  52.                         goto  Next               ;
  53.             nop
  54.  
  55. main
  56.                         bsf     STATUS,RP0         ;
  57.                         MOVLW   B'00101111'         ;переводим порт на выход
  58.             movwf TRISIO      ;
  59.                         bcf     STATUS, RP0               ;
  60.  
  61.             movlw 0x10                ;01 start
  62.             movwf reg0
  63.             movlw 0xBD                ;1-ый байт кода
  64.             movwf reg1
  65.             movlw 0xBB                ;2-ой
  66.             movwf reg2
  67.             movlw 0xBE                ;3-ий
  68.             movwf reg3
  69.             movlw 0xBE                ;4-ый
  70.             movwf reg4
  71.  
  72.             bcf     GPIO      , 4
  73.             movlw   0x04
  74.             movwf   coreg
  75.             movlw   reg0
  76.             movwf   FSR
  77.  
  78.             movlw   0x04
  79.             call    word_emu
  80.             incf    FSR       , f
  81.  
  82. ask         movlw   0x08
  83.             call    word_emu
  84.  
  85.             incf    FSR       , f
  86.             decfsz  coreg     , f
  87.             goto    ask
  88. ; MOVLW B'00101111'
  89.  ; TRIS GPIO
  90.             goto main
  91.  
  92. DEL50       movlw   0x10
  93.             movwf   delcnt
  94. del_loop    decfsz  delcnt    , f
  95.             goto    del_loop
  96.             RETURN
  97.  
  98. word_emu    movwf   cobit             ; ---- вывод слова (эмуляция)
  99.             MOVF    INDF      , W
  100.             MOVWF   shreg
  101. bit_loop    BCF     GPIO      , 4     ; используем ra6 для выхода - вывели "0"
  102.             CALL    DEL50             ; первые 50 мкс выводим "0"
  103.             BTFSC   shreg     , 07    ; проверяем старший разряд
  104.             BSF     GPIO      , 4     ; если единица, вторые 50 мкс выводим
  105.             CALL    DEL50             ; "1"(011), в противном случае "0" (001)
  106.             BSF     GPIO      , 4
  107.             CALL    DEL50             ; третие 50 мкс выводим "0"
  108.             RLF     shreg     , f
  109.             DECFSZ  cobit     , f
  110.             GOTO    bit_loop          ; выводим следующий бит
  111.                         BCF     GPIO      , 4     ;
  112.             RETURN
  113.     END


Кусок из кода - номер таблетки

Code:
  1. movlw 0x10                ;01 start
  2.             movwf reg0
  3.             movlw 0xBD                ;1-ый байт кода
  4.             movwf reg1
  5.             movlw 0xBB                ;2-ой
  6.             movwf reg2
  7.             movlw 0xBE                ;3-ий
  8.             movwf reg3
  9.             movlw 0xBE                ;4-ый
  10.             movwf reg4


К.О. : меняем код ключа на свой (либо универсальный), компилим (я компилил через фирменный MPASM) , получаем HEX, заливаем его в PIC.


откомпиленый выше исходник (тут ключ 01 DB BB EB EB)

Code:
  1. ::020000040000FA
  2. :020000000A28CC
  3. :080008000B1D080080308B0085
  4. :100010000B11080083120730990083163F308500CA
  5. :100020000030960081308100FF239000A0308B00CB
  6. :10003000831285018B1A1A28000083162F30850041
  7. :1000400083121030A500BD30A600BB30A700BE3023
  8. :10005000A800BE30A90005120430A000253084009D
  9. :1000600004303E20840A08303E20840AA00B332846
  10. :100070001D281030A100A10B3B280800A200000899
  11. :10008000AA0005123920AA1B0516392005163920A9
  12. :0A009000AA0DA20B4128051208007A
  13. :02400E00043F6D
  14. :00000001FF


у кого нет проггера - я в соседнем топике выкладывал JDM --тык


кстати, в исходном варианте конфиг стоял __CONFIG _CP_ON ,(ваще наглёж) наверняка типуля хотел мутить свои ключи .а ваще скажем спасибо санстюденту за изначальный реверс протокола (хотя китайцы по идее опередили)

| Сообщение посчитали полезным: Gerpes

Ранг: 10.7 (новичок), 2thx
Активность: 0.010
Статус: Участник

Создано: 25 августа 2013 20:31 · Поправил: ylproduction
· Личное сообщение · #2

кста, кто может поправить исходик, чтобы было 6 байто



Ранг: 61.7 (постоянный), 12thx
Активность: 0.090.02
Статус: Участник

Создано: 26 августа 2013 08:11 · Поправил: Gerpes
· Личное сообщение · #3

Земля на схеме куда идет?
ylproduction пишет:
пример откомриленой прошивки (моя) (тут все 4 байта ключа FF)

дык разницы-то нет, у всех такая же должна быть? а то у мну компилятора нету, но зато остальное есть, спаять думаю.
АА.. прочитал про "меняем код ключа на свой" понятно.



Ранг: 45.7 (посетитель), 5thx
Активность: 0.020
Статус: Участник

Создано: 26 августа 2013 09:24
· Личное сообщение · #4

Gerpes пишет:
Земля на схеме куда идет?


Вот так наверное будет понятнее:




Ранг: 61.7 (постоянный), 12thx
Активность: 0.090.02
Статус: Участник

Создано: 26 августа 2013 09:31 · Поправил: Gerpes
· Личное сообщение · #5

Да это я затупил что-то, ага так-то спаял, но не открывает. хекс брал тупо из первого поста скопировал и сохранил как .hex
Решил прошивку перекомпилить, но что-то кучу ошибок выдает , никак не пойму. Можно на всякий случай готовый hex выложить?
И еще вопрос- на самом домофоне где минус? а то я мало ли попалил проц уже))



Ранг: 45.7 (посетитель), 5thx
Активность: 0.020
Статус: Участник

Создано: 26 августа 2013 09:59
· Личное сообщение · #6

Спалить я думаю сложно будет... а так МИНУС - внешняя часть разъема. ПЛЮС - внутренний пятачок.



Ранг: 61.7 (постоянный), 12thx
Активность: 0.090.02
Статус: Участник

Создано: 26 августа 2013 10:14 · Поправил: Gerpes
· Личное сообщение · #7

да, не спалил- проверил уже.. скорее всего не открывает из-за того, что в прошивке конфигов не было.
ЗЫ перепрошил, конфиг взял из исходника, поставил галочку в проге. но видимо где-то ошибся- не открывает один хрен. просьба готового hex в силе.



Ранг: 10.7 (новичок), 2thx
Активность: 0.010
Статус: Участник

Создано: 26 августа 2013 12:29 · Поправил: ylproduction
· Личное сообщение · #8

2 Gerpes

вообще не реагирует ? или реагирует но не открывает ?

залей прошивку из аттача. домофон будет реагировать но не будет открывать (так как код ключа вбит другой)

кто не умеет компилить:

1. качаем полностью раздачу --> Link <--
2. устанавливаем по порядку

3. открываем в C:\Program Files\Microchip\MPLABC18\v3.44\mpasm\MPASMWIN.exe
4. компилим



Code:
  1. но что-то кучу ошибок выдает , никак не пойму

читай 2 пункт и все получится



удачи




вот попробуй прошивку, должен реагировать
c0b6_26.08.2013_EXELAB.rU.tgz - Emu_Cyfral_noCP.HEX



Ранг: 10.7 (новичок), 2thx
Активность: 0.010
Статус: Участник

Создано: 26 августа 2013 13:42
· Личное сообщение · #9

кароч тут есть одна фишка (!)

Code:
  1.  
  2.     movlw 0x10                ;01 start
  3.                 movwf reg0
  4.                 movlw 0xBD       &
  5.     nbsp; ;1-ый байт кода
  6.                 movwf reg1
  7.                 movlw 0xBB       &
  8.     nbsp; ;2-ой
  9.                 movwf reg2
  10.                 movlw 0xBE       &
  11.     nbsp; ;3-ий
  12.                 movwf reg3
  13.                 movlw 0xBE       &
  14.     nbsp; ;4-ый
  15.                 movwf reg4
  16.  


тут код выбрасывается задом-наперед

тобышь всем привычная выгравированная запись 01 DB BB EB EB 00 00 CRC выбрасывается как 10 BD BB BE BE ... аа где CRC ? а где последние 2 байта "00 00" ? вот домофон и не реагирует, так как CRC не верный ( а где его в исходнике найти ?



Ранг: 61.7 (постоянный), 12thx
Активность: 0.090.02
Статус: Участник

Создано: 26 августа 2013 21:05 · Поправил: Gerpes
· Личное сообщение · #10

Пересобрал, контроллер в DIP, кондер с диодом между выводами спрятал, перемотал узкой изолентой- получился кубик с двумя усиками. Проверил еще раз, не открывает. Ошибок быть не должно, все же очень просто.. Видимо, в нашем колхозе другие стоят(не вникал еще в вопрос), их относительно недавно у нас ввели. Пока оставил- есть еще старые домофоны кое-где.



Ранг: 10.7 (новичок), 2thx
Активность: 0.010
Статус: Участник

Создано: 27 августа 2013 01:10 · Поправил: ylproduction
· Личное сообщение · #11

Вернусь к исходнику, а именно с попыткой найти то место где забит CRC8
автор забыл откомментировать это место (
по логике, должен идти после тех 4 байт

с 73 по 82 строчку

команда movwf как раз пересылает литеру в регистр

Code:
  1.  movlw   0x04  ;73 строчка (прим. ylproduction)
  2.             movwf   coreg
  3.             movlw   reg0
  4.             movwf   FSR
  5.  
  6.             movlw   0x04
  7.             call    word_emu
  8.             incf    FSR    &nb
  9. sp; , f
  10.  
  11. ask         movlw   0x08
  12.             call    word_emu
  13.  
  14.             incf    FSR    &nb
  15. sp; , f
  16.             decfsz  coreg     , f
  17.             goto    ask
  18. ; MOVLW B'00101111'
  19.  ; TRIS GPIO
  20.             goto main
  21.  
  22. DEL50       movlw   0x10  ;82 строчка (прим. ylproduction)
  23.  

.
нашел 04, опять 04 , 08 , 10 какой именно из них CRC ?

как получится, поправлю 1й пост с подробным маном

кстати, тестить надо только на домофоне\. такой ридер как у меня емуль не видит


а обычный ключ видит





Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 29 августа 2013 04:36
· Личное сообщение · #12

ylproduction пишет:
меняем код ключа на свой (либо универсальный)

всегда было интересно где их берут эти универсальные коды?
интересные темы, ностальгия просыпается, рука тянется к паяльнику)
жаль тут это не актуально

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh



 eXeL@B —› Электроника —› простая отмычка ds-1990 на асме
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати