И всё-таки она вертится!!!

Jul 08, 2009 03:35

Свершилось, я доделал проект, который забросил около года назад. В своё время по совету dark_simpson я купил промышленный ридер RFID меток. Но вот незадача, интерфейс у него был Wiegand, а мне нужно было его читать на компе. В результате нужно было ваять схему сопряжения. Я нашёл рабочий проект, как это сделать. Но вот незадача: там используется процессор AT90S1200, который давно снят с производства, и который даже у меня есть, но мне нечем его прошить. В результате я попытался перенести код на Attiny2313 (они частично совместимы, по крайне мере по ногам). Но он "влоб" вот так в своё время не заработал. Ну и я забил на него. Теперь я снова к нему вернулся. И даже задал вопрос по переносу кода в сообществе http://community.livejournal.com/ru_radio_electr/603084.html . Но я понял, что если сам не раскурю код, и не пойму в чём косяк, то никто за меня это не сделает. Ну я воспринял пожелания из сообщества, и вчера на ночь глядя начал вкуривать код.
Совет! Если вам не спиться ночью, то возьмите и просмотрите вдумчиво вникая в каждую строчку чей-нибудь код на ассемблере, желательно RISС-архитектуры. При чём идеально, чтобы многие аппаратные функции в коде были реализованы программно.

Оказывается в процессоре AT90S1200 нет UARTa! И он реализован программно, на фантастически быстрой скорости 1200 бит/сек (смеюсь). Я уснул примерно на третьей странице реализации юарта, прочитал перед этим ещё шесть. При чём так с листочками в руках и уснул. Собственно я не зря курил код. Ибо автор оставил "пасхальное яйцо" в коде - закомментировав важную строчку (гад, но это программисту сразу станет видно). С этим комментарием код компилируется, но не работает. Собственно про перенос кода я напишу позже, в сообщество ru_radio_electr, кому интересно, там и посмотрит.
Так сложились звёзды, что у меня есть макетная платка с tiny2313, как будто специально созданная для данного случая (до этого я её так и не использовал). Прекрасно питается БП от модема US Robotics, имеет на боту преобразователь интерфейсов. Немного покурив схему, я её значительно упростил, выкинув ненужные мне элементы.




Выкинутые элементы, помечены красными крестами

Собрал буквально из того что было под рукой. Но вот не задача, сам ридер питается от 12 вольт, а БП от момеда даёт 18 вольт, или после КРЕНки у меня +5 вольт. Пролистал книженцию к ридеру, и о удача! В ней написано, что он может работать от 18 вольт! Эврика! Смотрю после диодного моста как раз у нас 18 вольт, и там кондёр уже стоит - чистая постояннка. И вывел эти 18 вольт на плату. Чтобы не попутать - подписал. Подключил ридер - он пропищал, что работает - уже хорошо, что дым не пошёл. Небольшие проблемы вызвала прозвонка диодов (ночь на дворе, да и в руки шашек давно не брал), но я справился с этим, то же течёт от плюса к минусу (и срать что у нас двигаются отрицательно заряженные электроны). Ну в общем я собрал его достаточно быстро, что мне несвойственно.



Собранный ридер. Ррработает!

Собственно, включаю, запускаю, и опа, усё работает. Я кипятком себе все ноги ошпарил! Программа отдавала коды всех карточек, которые я ей скармливал. Кстати на фотке карточка со старой работы, которую я нагло зажал.



Программа отдаёт нам номер карты

Кстати я не сказал, как же я убедился в работоспособности программы микроконтроллера. Да достаточно просто. Я запустил данную программу, и там есть кнопки зажигания светодиодов, и я просто мерял мультиметром - "горит" ли светодиод. Оказалось что горит :). Вот такие пироги, теперь можно приступать к сборке эмулятора по посту товарища scanwidget, о котором я говорил постом ниже.

З.Ы. Справедливости ради - сайт проекта, по которому я делал данное устройство: http://www.circuitcellar.com/avr2004/DA3616.html

rfid, Гаджеты, Фрик

Previous post Next post
Up