Обсуждаем цифровые устройства...
Ответить

Re: Копировщик RFID-ключей T5557

Ср мар 07, 2018 21:34:36

Вообщем нашел я ошибку,у меня не было синхронизации импульсов,суть была в том что я во внешнем прерывании делаю все,пишу на асме,дак вот при ошибке я делал сброс и остановку таймеров и выскакивал из внешнего прерывания в ожидании следующего внеш прерывания,а надо было не выскакивать из внешнего прерывани, а заново с этой точке запустить таймер))),вот так вот,терь все летает,читает все))) :music:

Re: Копировщик RFID-ключей T5557

Ср мар 07, 2018 21:40:53

Ну вот видите. :) Поздравляю! :)

пишу на асме


Зачем? :roll:

Re: Копировщик RFID-ключей T5557

Чт мар 08, 2018 00:43:41

Зачем?


затем))),фанат,даже не уговаривайте токо он все и точка,спс за помощь

Re: Копировщик RFID-ключей T5557

Чт мар 08, 2018 07:11:00

затем))),фанат,даже не уговаривайте токо он все и точка,спс за помощь


8) А я попробую всё-таки уговорить. :)
Дело в том, что главное в разработке ПО - это управляемость разработки на любом этапе (вы это заметите, если будете писать в одиночку программы систем и комплексов (они могут иметь мегабайты исходников на Си++ - попробуйте не запутаться в них)). Не скорость работы программы, а управляемость ей. Со сложностью мы боремся методом разделяй и властвуй (другого никто не придумал). Ради этого и придумана масса концепций - языки высокого уровня, то же ООП, паттерны и прочее. Так вот, когда программа написана на ассемблере, управляемость низкая. Более того, по мере развития, такая программа быстро теряет управляемость до критических значений. Отладка, рефакторинг, доработка и развитие такой программы через некоторое время может стать невозможной. Поэтому не стоит использовать ассемблер там, где без него можно легко обойтись. Он нужен только в критических по скорости кусочках кода - ну и бывает, например, когда вообще всё по тактам должно быть строго выровнено. Во всём остальном ассемблер категорически противопоказан. У меня на работе тоже есть любитель ассемблера - как надо что-то поменять (перенести на другой контроллер или добавить новую математическую модель), так он выпадает в длительную отладку/переделку, а прошивка потом обязательно где-нибудь сбойнёт, и эта самая отладка начинает новую итерацию. А всё потому, что код непереносим и нифига не нагляден. Поэтому незамеченные ошибки в нём - это норма. А переделка такого кода - апокалипсис.

Re: Копировщик RFID-ключей T5557

Чт мар 08, 2018 09:56:02

Знаете все верно,но нет я буду писать на asm ,не переубидите,я когда то писал на си,после того как стал писать на asm понял что это мое,я бывает пишу код неделями и фанатею.:)

Re: Копировщик RFID-ключей T5557

Пн мар 12, 2018 12:41:38

Подскажите пожалуйста при записи на карточку,возьмем например T5557/T5577,нужно ли ловить момент конца чтения карточки или неважно в какой момент делать START GAP на новую карту?,можешь расписать свои длительности для этих типов карт,и как точно отправлять данные,я уже все даташиты смотрел но не пойму когда делать start gap в какой момент именно,после отправки например конфига я вконце шлю паузу на 100 мс потом например вкл генератор,а через какой промежуток я могу слать данные?,если тебе несложно можешь расписать досканально как отправляешь пакеты вот что делаю я:

моя карточка :

Код:
111111111 0010 1 1100 0 0000 0 0000 0 0011 0 0101 0 1111 0 0111 1 0001 1 1010 0 1011 0


отправляю так

start gap- 300 мкс
write gap-100 мкс
0 bit -200 мкс
1 bit -450 мкс

шлю
Код:
start_gap

Код:
100 00000000 00010100 10000000 01000000 000 - 0 блок конфиг

пауза 100 мс вкл снова генератор
делаю паузу 1сек
;/////////////////
шлю
Код:
start_gap

Код:
100 111111111 0010 1 1100 0 0000 0 0000 0 001 001  - 1 блок

пауза 100 мс вкл снова генератор
делаю паузу 1сек
;///////////////////////
шлю
Код:
start_gap

Код:
100 1 0 0101 0 1111 0 0111 1 0001 1 1010 0 1011 0 010 -2 блок

пауза 100 мс вкл снова генератор

записать не удается
Последний раз редактировалось sirha Пн мар 12, 2018 20:11:06, всего редактировалось 5 раз(а).

Re: Копировщик RFID-ключей T5557

Пн мар 12, 2018 20:00:14

В любой момент. :)

Re: Копировщик RFID-ключей T5557

Пн мар 12, 2018 20:19:31

В любой момент. :)

Можешь ответить, я выше отредактировал,и еще вопросик нужно ли делать reset после конфига?,ты сверяешь в программе для проверки записалась ли картачка или нет старые данные другой карты номер которой будешь заносить в новую карточку с перезаписанной картой,я иммею ввиду программно?

Re: Копировщик RFID-ключей T5557

Вт мар 13, 2018 07:22:57

,можешь расписать свои длительности для этих типов карт,и как точно отправлять данные,я уже все даташиты смотрел но не пойму когда делать start gap в какой момент именно,после отправки например конфига я вконце шлю паузу на 100 мс потом например вкл генератор,а через какой промежуток я могу слать данные?,если тебе несложно можешь расписать досканально как отправляешь пакеты вот что делаю я:


У вас же программа на руках, там все длительности есть. Ну или здесь посмотрите: https://habrahabr.ru/post/330710/

нужно ли делать reset после конфига?,


А что такое reset? Выключать питание генератора? Попробуйте и так и эдак. Здесь всё подбирается методом проб и ошибок.

ты сверяешь в программе для проверки записалась ли картачка или нет старые данные другой карты номер которой будешь заносить в новую карточку с перезаписанной картой,я иммею ввиду программно?


Я читаю карту и сверяю заданный номер со считанным.

Re: Копировщик RFID-ключей T5557

Вт мар 13, 2018 13:13:52

Я читал эти статьи уже кучу раз,я поэтому и попросил написать какие у вас длительности,не подскажите где найти даташит t5577 (ata5577??)?

t5557 я нашел

по даташиту:

Sgap от 80-400 мкс
Wgap от 64-240 мкс
0 data от 128-248 мкс
1 data от 384-504 мкс

а t5577 что изменить?, получается если вообщем для обоих делать, то токо подстраиваться под Wgap 64-160 мкс (t5577) ?

кстати вот вы ссылаетесь на BolshoyK ( http://kazus.ru/forums/showthread.php?t=101565 )
вот его параметры:

Start Gap(Sgap) = 300мкс
Write Gap(Wgap) = 300мкс
0 data = 150мкс
1 data = 420мкс

откуда Wgap 300???там быть такого не может Wgap от 64-240 мкс
В таблице же четко написано от 8 до 30 умножаем их на 8 мкс - от несущей
откуда он взял 300.

Re: Копировщик RFID-ключей T5557

Вт мар 13, 2018 15:00:02

где найти даташит t5577 (ata5577??)?


Ищите Atmel-9187-RFID-ATA5577C_Datasheet

откуда Wgap 300???там быть такого не может Wgap от 64-240 мкс


В программе тоже 300? Может быть, он просто опечатался в статье.

Я читал эти статьи уже кучу раз,


Вот сделайте ровно так же, как в программах для этих статей и всё запишется. И, кстати, не надейтесь, что в даташитах будет описан механизм записи болванок со всеми подробностями. Было бы это так, копировщики клепали бы все подряд. Часто там весьма туманно написано, как же записывается болванка.

Re: Копировщик RFID-ключей T5557

Ср мар 14, 2018 07:47:17

Посмотрел я вашу программу, delay_us(420-80)-- bit1?,не пойму как вы такое получаете???,это у вас стандартно для двух типов карт??? минимум тут 384 мкс,а у вас получается 340 откуда?.я так заметил что и Wgap вы каким то чудом вначале сделали 300 мкс а по даташиту максимум 240 мкс,а потом уже сделали для 5577 и 5557 (300-80 мкс),как вы 300 то получили вначале для 5557?
А еще вы используете writeReset отправка вконце двух 00,а сами этого не помните
А что такое reset?


отличие в даташите токо по Wgap.

5557

Sgap от 80-400 мкс
Wgap от 64-240 мкс
0 data от 128-248 мкс
1 data от 384-504 мкс

5577

Sgap от 80-400 мкс
Wgap от 64-160 мкс
0 data от 128-248 мкс
1 data от 384-504 мкс

Re: Копировщик RFID-ключей T5557

Ср мар 14, 2018 10:13:06

А еще вы используете writeReset отправка вконце двух 00,а сами этого не помните


Так два года прошло! ;) Знаете, сколько у меня проектов за это время сменилось и по работе и своих? :)

не пойму как вы такое получаете???


Вот вы и сделайте, как в программе - так точно работает. :) Я не помню уже, что там как должно быть.

Re: Копировщик RFID-ключей T5557

Пт мар 16, 2018 13:29:12

Вот вы и сделайте, как в программе - так точно работает

У меня заработало,у меня проблема была не с таймингами.
Думаю то что у вас в программе немного не то Write Gap точно не 300 мкс для t5557 как собственно и у BolshoyK тоже 300 ,быть такого не должно,да я смотрю у вас многое совпадает с BolshoyK,а у него ошибки.
Я кое что не дописал , забыл вначале включать опкод+локбит,с моими таймингами работают четко t5557/t5577 два типа карт :
для обоих карт прописал:
Start Gap(Sgap) = 300мкс
Write Gap(Wgap) = 120мкс
0 data = 180мкс
1 data = 450мкс

а так в даташитах написано:

5557

Sgap от 80-400 мкс
Wgap от 64-240 мкс
0 data от 128-248 мкс
1 data от 384-504 мкс

5577

Sgap от 80-400 мкс
Wgap от 64-160 мкс
0 data от 128-248 мкс
1 data от 384-504 мкс

Re: Копировщик RFID-ключей T5557

Пн мар 19, 2018 13:24:47

Обьясните пожалуйста про em4305,обязательно ли передавать login ?,для чего это?

посмотрите пожалуйста правильно ли я отправляю байты
шлем (4,0x5f,0x80,0x01,0x00)
Код:
FieldStop
0
0101
0010 00 1

11111010 0
00000001 1
10000000 1
00000000 0

01111011 0


FieldOn


подскажите еще если к примеру у меня номер карточки начинается на:
111111111 0011 0 1000 1 1111 0 1000 0 0000 0

правильно ли будет отправлять его так?:

Код:
11111111 0
00101100 1
10111110 0
00000000 0

01101101 0



тоесть шлем наоборот? каждый байт

Не пойму как вы отсылаете FieldStop -пачка каких то импульсов,в документации вообще не написано про это там токо про 55 циклов и то что нужно сделать MOD on и всее,откуда вы взяли стоко импульсов?
Как вы шлёте 0?
ведь в даташите сказано включить поле на 18*8 мкс и отключить на 14*8,а у вас все наоборот,вы его почему то выключаете а затем включаете,я чего то непойму вы по даташиту делали??

Re: Копировщик RFID-ключей T5557

Вт мар 20, 2018 07:22:05

Обьясните пожалуйста про em4305,обязательно ли передавать login ?,для чего это?


Не обязательно. Это для карточек с установленным паролем. Оставлено для тех, у кого этот пароль всё-таки окажется на карте.

правильно ли будет отправлять его так?:


Не помню. :) Вроде бы да. Но в программе ведь это всё есть. :dont_know:

Не пойму как вы отсылаете FieldStop -пачка каких то импульсов,в документации вообще не написано про это там токо про 55 циклов и то что нужно сделать MOD on и всее,откуда вы взяли стоко импульсов?
Как вы шлёте 0?
ведь в даташите сказано включить поле на 18*8 мкс и отключить на 14*8,а у вас все наоборот,вы его почему то выключаете а затем включаете,я чего то непойму вы по даташиту делали??


Я ведь вам говорил, даташиту НЕ ВЕРЬТЕ! ;) Если бы там всё было написано правильно, этих копировщиков em4305 бы наделали с лёгкостью фиг знает сколько штук. По факту, пришлось снимать сигнал с имеющегося копировщика и его анализировать.

Re: Копировщик RFID-ключей T5557

Вт мар 20, 2018 07:32:57

Хорошо,я не вижу смысла в скрывании даташита,все равно эти копировщики продаются и стоят не так уж и дорого.
Тогда скажите,в программе то написано,но я плохо помню некоторые команды Си,в самом конце когда все отправлено и вы отключаете поле на 500 ms, через скоко его можно включить?
И в самом начале поле было включено?

Код:
что было тут поле было уже включено? если рассматривать самое начало записи
FieldOn
delayms 500

..........

FeildOff
delayms 500
после этого когда можно включить поле?

Re: Копировщик RFID-ключей T5557

Вт мар 20, 2018 10:57:35

Перед началом записи поле включите на некоторое время. После окончания записи поле модно включить когда угодно, после того, как запись завершилась.

Re: Копировщик RFID-ключей T5557

Вт мар 20, 2018 12:03:05

Всмысле включите)?

я после чтения поле не отключаю,его нужно отключать перед началом записи а затем включать или как?

Код:
FieldOn
delayms 500


Может нарисуете прям досканально как у вас протокол записи реализован досканально со всеми паузами,а то многое непонятно,сделал по вашей схеме ничего не пишется,пробовал не одну карточку и не один брелок em4305.

делаю так:

Код:
FirstFieldStop:

   rcall FieldOff
   delayus 50
   rcall FieldOn
   delayus 100
   rcall Fieldoff
   delayus 320
   rcall FieldOn
   delayus 140
   rcall Fieldoff   

ret

SendOne:

     rcall FieldOn
     delayus 240
   
ret

SendZero:

    rcall FieldOff
    delayus 150
    rcall FieldOn
    delayus 140

ret


Значит так чтение карточки у меня заканчивается со включенным полем дальше делаю так еще раз пишу как и вы:
Код:
rcall FieldOn
delayms 500

rcall FirstFieldStop
rcall Send Zerro
шлем 0101
rcall Send Zerro
rcall Send One
rcall Send Zerro
rcall Send One
отправляю конфигурацию адресс 0x04 и байты 0x5f,0x80,0x01,0x00
адресс переворачиваем 0010 дальше шлем 00 и бит четности 1

дальше переворачиваем байты
шлем
0xFA бит четности 0
0x01 бит четности 1
0x80 бит четности 1
0x00 бит четности 0

дальше шлем байт четность по строкам
0x7B вконце шлем 0

rcall FieldOn
delayms 500


Далее шлем все также токо теперь сначала в 5 блок
а потом в шестой блок

в самом конце делаем

Код:
rcall FieldOff
delayms 500
rcall FieldOn

Re: Копировщик RFID-ключей T5557

Вт мар 20, 2018 15:22:28

Всмысле включите)?
я после чтения поле не отключаю,его нужно отключать перед началом записи а затем включать или как?


Как хотите. Можете отключать и снова включать. Можете не отключать. Это без разницы.

Может нарисуете прям досканально как у вас протокол записи реализован досканально со всеми паузами,а то многое непонятно,сделал по вашей схеме ничего не пишется,пробовал не одну карточку и не один брелок em4305.


Раз уж вы взялись переделывать программу под себя и свой контроллер, то смотрите все длительности и как реализовано в программе. Там же всё это есть! А я не хочу сейчас вспоминать и заново разбираться. У меня и так дел полно на данный момент - голова и так кругом идёт. Поэтому что я мог, я рассказал, а остального не помню. :dont_know:
Ответить