Страница 15 из 21
Re: Копировщик RFID-ключей T5557
Добавлено: Ср мар 07, 2018 21:34:36
sirha
Вообщем нашел я ошибку,у меня не было синхронизации импульсов,суть была в том что я во внешнем прерывании делаю все,пишу на асме,дак вот при ошибке я делал сброс и остановку таймеров и выскакивал из внешнего прерывания в ожидании следующего внеш прерывания,а надо было не выскакивать из внешнего прерывани, а заново с этой точке запустить таймер))),вот так вот,терь все летает,читает все)))

Re: Копировщик RFID-ключей T5557
Добавлено: Ср мар 07, 2018 21:40:53
da-nie
Ну вот видите.

Поздравляю!
пишу на асме
Зачем?

Re: Копировщик RFID-ключей T5557
Добавлено: Чт мар 08, 2018 00:43:41
sirha
Зачем?
затем))),фанат,даже не уговаривайте токо он все и точка,спс за помощь
Re: Копировщик RFID-ключей T5557
Добавлено: Чт мар 08, 2018 07:11:00
da-nie
затем))),фанат,даже не уговаривайте токо он все и точка,спс за помощь

А я попробую всё-таки уговорить.

Дело в том, что главное в разработке ПО - это управляемость разработки на любом этапе (вы это заметите, если будете писать в одиночку программы систем и комплексов (они могут иметь мегабайты исходников на Си++ - попробуйте не запутаться в них)). Не скорость работы программы, а управляемость ей. Со сложностью мы боремся методом разделяй и властвуй (другого никто не придумал). Ради этого и придумана масса концепций - языки высокого уровня, то же ООП, паттерны и прочее. Так вот, когда программа написана на ассемблере, управляемость низкая. Более того, по мере развития, такая программа быстро теряет управляемость до критических значений. Отладка, рефакторинг, доработка и развитие такой программы через некоторое время может стать невозможной. Поэтому не стоит использовать ассемблер там, где без него можно легко обойтись. Он нужен только в критических по скорости кусочках кода - ну и бывает, например, когда вообще всё по тактам должно быть строго выровнено. Во всём остальном ассемблер категорически противопоказан. У меня на работе тоже есть любитель ассемблера - как надо что-то поменять (перенести на другой контроллер или добавить новую математическую модель), так он выпадает в длительную отладку/переделку, а прошивка потом обязательно где-нибудь сбойнёт, и эта самая отладка начинает новую итерацию. А всё потому, что код непереносим и нифига не нагляден. Поэтому незамеченные ошибки в нём - это норма. А переделка такого кода - апокалипсис.
Re: Копировщик RFID-ключей T5557
Добавлено: Чт мар 08, 2018 09:56:02
sirha
Знаете все верно,но нет я буду писать на asm ,не переубидите,я когда то писал на си,после того как стал писать на asm понял что это мое,я бывает пишу код неделями и фанатею.

Re: Копировщик RFID-ключей T5557
Добавлено: Пн мар 12, 2018 12:41:38
sirha
Подскажите пожалуйста при записи на карточку,возьмем например 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 мкс
шлю
Код: Выделить всё
100 00000000 00010100 10000000 01000000 000 - 0 блок конфиг
пауза 100 мс вкл снова генератор
делаю паузу 1сек
;/////////////////
шлю
Код: Выделить всё
100 111111111 0010 1 1100 0 0000 0 0000 0 001 001 - 1 блок
пауза 100 мс вкл снова генератор
делаю паузу 1сек
;///////////////////////
шлю
Код: Выделить всё
100 1 0 0101 0 1111 0 0111 1 0001 1 1010 0 1011 0 010 -2 блок
пауза 100 мс вкл снова генератор
записать не удается
Re: Копировщик RFID-ключей T5557
Добавлено: Пн мар 12, 2018 20:00:14
da-nie
В любой момент.

Re: Копировщик RFID-ключей T5557
Добавлено: Пн мар 12, 2018 20:19:31
sirha
В любой момент.

Можешь ответить, я выше отредактировал,и еще вопросик нужно ли делать reset после конфига?,ты сверяешь в программе для проверки записалась ли картачка или нет старые данные другой карты номер которой будешь заносить в новую карточку с перезаписанной картой,я иммею ввиду программно?
Re: Копировщик RFID-ключей T5557
Добавлено: Вт мар 13, 2018 07:22:57
da-nie
,можешь расписать свои длительности для этих типов карт,и как точно отправлять данные,я уже все даташиты смотрел но не пойму когда делать start gap в какой момент именно,после отправки например конфига я вконце шлю паузу на 100 мс потом например вкл генератор,а через какой промежуток я могу слать данные?,если тебе несложно можешь расписать досканально как отправляешь пакеты вот что делаю я:
У вас же программа на руках, там все длительности есть. Ну или здесь посмотрите:
https://habrahabr.ru/post/330710/
нужно ли делать reset после конфига?,
А что такое reset? Выключать питание генератора? Попробуйте и так и эдак. Здесь всё подбирается методом проб и ошибок.
ты сверяешь в программе для проверки записалась ли картачка или нет старые данные другой карты номер которой будешь заносить в новую карточку с перезаписанной картой,я иммею ввиду программно?
Я читаю карту и сверяю заданный номер со считанным.
Re: Копировщик RFID-ключей T5557
Добавлено: Вт мар 13, 2018 13:13:52
sirha
Я читал эти статьи уже кучу раз,я поэтому и попросил написать какие у вас длительности,не подскажите где найти даташит 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
da-nie
где найти даташит t5577 (ata5577??)?
Ищите Atmel-9187-RFID-ATA5577C_Datasheet
откуда Wgap 300???там быть такого не может Wgap от 64-240 мкс
В программе тоже 300? Может быть, он просто опечатался в статье.
Я читал эти статьи уже кучу раз,
Вот сделайте ровно так же, как в программах для этих статей и всё запишется. И, кстати, не надейтесь, что в даташитах будет описан механизм записи болванок со всеми подробностями. Было бы это так, копировщики клепали бы все подряд. Часто там весьма туманно написано, как же записывается болванка.
Re: Копировщик RFID-ключей T5557
Добавлено: Ср мар 14, 2018 07:47:17
sirha
Посмотрел я вашу программу, 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
da-nie
А еще вы используете writeReset отправка вконце двух 00,а сами этого не помните
Так два года прошло!

Знаете, сколько у меня проектов за это время сменилось и по работе и своих?
не пойму как вы такое получаете???
Вот вы и сделайте, как в программе - так точно работает.

Я не помню уже, что там как должно быть.
Re: Копировщик RFID-ключей T5557
Добавлено: Пт мар 16, 2018 13:29:12
sirha
Вот вы и сделайте, как в программе - так точно работает
У меня заработало,у меня проблема была не с таймингами.
Думаю то что у вас в программе немного не то 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
sirha
Обьясните пожалуйста про 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
da-nie
Обьясните пожалуйста про em4305,обязательно ли передавать login ?,для чего это?
Не обязательно. Это для карточек с установленным паролем. Оставлено для тех, у кого этот пароль всё-таки окажется на карте.
правильно ли будет отправлять его так?:
Не помню.

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

Если бы там всё было написано правильно, этих копировщиков em4305 бы наделали с лёгкостью фиг знает сколько штук. По факту, пришлось снимать сигнал с имеющегося копировщика и его анализировать.
Re: Копировщик RFID-ключей T5557
Добавлено: Вт мар 20, 2018 07:32:57
sirha
Хорошо,я не вижу смысла в скрывании даташита,все равно эти копировщики продаются и стоят не так уж и дорого.
Тогда скажите,в программе то написано,но я плохо помню некоторые команды Си,в самом конце когда все отправлено и вы отключаете поле на 500 ms, через скоко его можно включить?
И в самом начале поле было включено?
Код: Выделить всё
что было тут поле было уже включено? если рассматривать самое начало записи
FieldOn
delayms 500
..........
FeildOff
delayms 500
после этого когда можно включить поле?
Re: Копировщик RFID-ключей T5557
Добавлено: Вт мар 20, 2018 10:57:35
da-nie
Перед началом записи поле включите на некоторое время. После окончания записи поле модно включить когда угодно, после того, как запись завершилась.
Re: Копировщик RFID-ключей T5557
Добавлено: Вт мар 20, 2018 12:03:05
sirha
Всмысле включите)?
я после чтения поле не отключаю,его нужно отключать перед началом записи а затем включать или как?
Может нарисуете прям досканально как у вас протокол записи реализован досканально со всеми паузами,а то многое непонятно,сделал по вашей схеме ничего не пишется,пробовал не одну карточку и не один брелок 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 блок
а потом в шестой блок
в самом конце делаем
Re: Копировщик RFID-ключей T5557
Добавлено: Вт мар 20, 2018 15:22:28
da-nie
Всмысле включите)?
я после чтения поле не отключаю,его нужно отключать перед началом записи а затем включать или как?
Как хотите. Можете отключать и снова включать. Можете не отключать. Это без разницы.
Может нарисуете прям досканально как у вас протокол записи реализован досканально со всеми паузами,а то многое непонятно,сделал по вашей схеме ничего не пишется,пробовал не одну карточку и не один брелок em4305.
Раз уж вы взялись переделывать программу под себя и свой контроллер, то смотрите все длительности и как реализовано в программе. Там же всё это есть! А я не хочу сейчас вспоминать и заново разбираться. У меня и так дел полно на данный момент - голова и так кругом идёт. Поэтому что я мог, я рассказал, а остального не помню.
