Elektroda.pl
Elektroda.pl
X
Sklep HeluKabel
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Znacznik RFID z mikrokontrolera AVR i cewki

Defenestrator 27 Cze 2009 23:40 10712 19
  • Znacznik RFID z mikrokontrolera AVR i cewki

    Celem autora pomysłu było zmuszenie mikrokontrolera ATtiny85 do zachowywania się jak EM4102, układ stosowany w znacznikach RFID. Niezbędne minimum potrzebne do działania to układ AVR i cewka, lecz całość działa dużo lepiej jeśli wyposaży się ją w kilka kondensatorów filtrujących. Od wielkości "anteny" zależy zasięg i pasmo obsługiwane przez urządzenie. Czytając opis tego projektu warto zwrócić uwagę na kilka ciekawych tricków zastosowanych przez autora, jak na przykład używanie cewki nie tylko jako zasilania, ale również jako źródła sygnału zegarowego. Interesujący jest również fakt, iż ten element zasila mikrokontroler mimo braku połączenia z pinami, które są do tego przeznaczone.

    Źródło
    Artykuł

    Znacznik RFID z mikrokontrolera AVR i cewki Znacznik RFID z mikrokontrolera AVR i cewki


    Fajne! Ranking DIY
  • Sklep HeluKabel
  • #2 29 Cze 2009 19:05
    bolek
    Specjalista - oświetlenie sceniczne

    no zasila bo leci przez diody zabezpieczajace porty. Choć i tak wydaje się to troche nie realne, bo co sie stanie z zasilaniem w momencie gdy procek zacznie odpowiadać... co je magazynuje, powietrzny kondensator pomiedzy Vcc a GND? ;/

    Jakoś mało szczegółów na tych stronkach.

  • #3 30 Cze 2009 11:26
    sheeeep
    Poziom 25  

    To pierwsze zdjęcie okej, diody moga być gdzieś pod izolacją, jakiś kondensatorek, dużo nie trzeba dla takiego uC, ale to 2gie zdjęcie to czysta bujda na resorach. Bez bufforowania zasilania, czyli dioda + C nie ma mowy o poprawnym działaniu a pojemności wewnętrzne uC nie zapewnią działania.

  • #4 30 Cze 2009 13:07
    Fimek
    Poziom 12  

    Chłopaki, zastanówcie się co piszecie.

    Przecież wejścia każdego CMOSa zabezpieczone są dwiema diodami, które w takim połączeniu cewki zasilającej, jakie zaproponował autor, działają jak mostek Graetz'a. Poza tym autor napisał, że pojemności rozproszeone między zasilaniem a podłożem układu scalonego działają jak kondensator blokujący zasilanie. Dla mnie to jest szemrane, ale zapewne działa skoro autor tak napisał(choć na słowo honoru). Stwierdzenie, że przebieg z cewki można wykorzysać jako źródło sygnału zegarowego - genialne :) jeżeli faktycznie powoduje to, że procek może działać przy niższym napięciu zasilającym. Moim zdaniem - pomysły i realizacja są rewelacyjne.

    Pozdrawiam

  • #5 30 Cze 2009 13:26
    bolek
    Specjalista - oświetlenie sceniczne

    Fimek, napisałeś to ja i Sheep, pozatym mostek gretza to za mocne słowo. Tych pojemności to moze będzie 1pf, TO ZA MAŁO żeby procek utrzymał swoją prace, nie mówiąc już o odpowiednim wysterowaniu dławika.

  • #6 30 Cze 2009 13:27
    zbyrek
    Poziom 23  

    W kodzie jest "schemat" i wygląda on tak:

    Znacznik RFID z mikrokontrolera AVR i cewki

    Żadnych kondensatorów tu nie widzę.

  • #7 30 Cze 2009 17:56
    Fimek
    Poziom 12  

    @bolek ok - przepraszam. Pojemnosci jest wiecej (to nie sa pojemnosci montazowe - one sa malutkie - tylko dyfuzyjne z wysp na ktorych siedza tranzystory P-kanalowe do podloza typu P). Ale fakt - ukladu nie sprawdzalem, wiec nie wiem - dla mnie to w kazdym razie brzmi dosyc wiarygodnie. A Graetz tam jednak siedzi.

    Znacznik RFID z mikrokontrolera AVR i cewki

    Pozdrawiam

  • Sklep HeluKabel
  • #8 02 Lip 2009 11:53
    OldSkull
    Poziom 27  

    Eh, niedowiarki :P Po tym jak zasiliłem ATmegę8 przez port, który miała wewnętrznie podciągnięty do 5V (czyli przez rezystor 20k) i potrafiła się uruchomić (chociaż się wieszała od razu, ale to była wesja zwykła i do tego dość stary model mikrokontrolera) to jeste mw stanie uwierzyć w coś takiego.
    Aczkolwiek nei zaufałbym takiemu układowi. Poza tym projekt jest mało uzyteczny, gdyż ten mikrokontroler jest 2-3 razy droższy niż ukąłd który ma zastępować (za to łatwiej dostępny)

  • #10 02 Lip 2009 16:03
    zbyrek
    Poziom 23  

    Kolego Nawigstor artykuł na oryginalnej stornie nie łaska przeczytać? To jest druga wersja, pierwsza z obrazka nr jeden nie posiada kondensatorów.

  • #11 02 Lip 2009 23:42
    sheeeep
    Poziom 25  

    Przez 20k i małym zasilaniu płyną b. małe prądy, w zależności od procka i wszystkiego da się to wytłumaczyć. Ale to jest jednak 20k, a tutaj z pojemności wewnętrznej. Jakby ta pojemność wynosiła 1nF to okey, chodz potem zwarcie wyjścia na 1ms odcina procka od zasilania... Chyba że gdzie indziej było by to 1nF czy wiecej. Dla mnie to czyste science fiction. Wer. z kondensatorami do mnie 100% przemawia.

  • #12 03 Lip 2009 12:37
    zbyrek
    Poziom 23  

    To może ja dorzucę coś od siebie. Miałem atmege8535 podpiętą pod rs232, i zaprogramowaną żeby wysyłała ciąg znaków. Odłączyłem pin od zasilania, zostały tylko miso mosi sck reset i masa oraz rx z rs'a, a ona nadal wysyłała.

  • #13 03 Lip 2009 21:34
    Jacek31
    Warunkowo odblokowany

    Powiem tak. Miałem trochę okazje się bawić ATTiny 45/85 i można tam praktycznie włączać/wyłączać z zasilania osobno praktycznie każdy podukład CPU, więc jest całkiem możliwe zasilanie tego bardzo małym prądem. Z drugiej strony należy pamiętać o właściwościach cewki w zmiennym polu magnetycznym. Sądzę że to całkiem realne do zrobienia. Oczywiście dodatkowy kondensator znacznie polepszy stabilność takiego układziku. Brzmi mało prawdopodobnie, ale całkiem możliwe.

  • #14 13 Lis 2009 12:16
    radekdjredi
    Poziom 12  

    Witam czy temu znacznikowi można nadać numer jeżeli tak to w jaki sposób i w ogóle to dokładnie w którym miejscu autor udostępnił program do tego procka.
    Był bym wdzięczny za odpowiedź.

  • #15 10 Kwi 2012 22:08
    piotrva
    Moderator na urlopie...

    Przemyślenia na temat:
    Ostatnio mocno grzebię w RFID UNIQUE 125kHz i między innymi przypomniał mi się ten projekt, więc (mając różne dławiki i attiny85) postanowiłem to cacko zrobić i oto moje refleksje:
    1. Na samym dławiku + uC nie chciało chodzić
    2. Dławik + kondensator na gnd i vcc + uC - nie działa
    3. Dławik + kondensator (równolegle) + uC - nie działa
    4. Dławik + kondensatory z pkt 2 i 3 (różne wartości próbowałem) - też nic
    5. Antena od modułu rfid (15 zwojów x 2, kwadrat na PCB, wymiary 65x65mm) + równolegle kondensator 10nF + uC - DZIAŁA w 100% (wersja RFID UNIQUE 125kHz)

    Tak więc zabawy z dławikami może są możliwe do wykonania, ale niespecjalnie chce to działać w każdych warunkach, za to stosując profesjonalną cewkę/antenę dopasowaną do tych zastosowań układ na prawdę działa.

  • #16 14 Lip 2012 19:19
    excray
    Poziom 39  

    piotrva napisał:
    1. Na samym dławiku + uC nie chciało chodzić
    2. Dławik + kondensator na gnd i vcc + uC - nie działa
    3. Dławik + kondensator (równolegle) + uC - nie działa
    4. Dławik + kondensatory z pkt 2 i 3 (różne wartości próbowałem) - też nic
    5. Antena od modułu rfid (15 zwojów x 2, kwadrat na PCB, wymiary 65x65mm) + równolegle kondensator 10nF + uC - DZIAŁA w 100% (wersja RFID UNIQUE 125kHz)

    W mojej wersji:
    1. Cewka 40zw fi 50mm bez niczego więcej - DZIAŁA
    2. Cewka + kondensator na zasilaniu - DZIAŁA
    3. Cewka + kondensator równolegle do cewki + kond. na zasilaniu - TEŻ DZIAŁA
    Oczywiście 2-ga wersja działała z większej odległości niż pierwsza a trzecia z większej niż 2-ga.

  • #17 14 Lip 2012 20:11
    piotrva
    Moderator na urlopie...

    Ogólnie ponadto dodam, że wypadałoby policzyć wszystko z punktu widzenia fizycznego i dobierać kondensator do cewki, a cewkę do parametrów tego standardu RFID. Ogólnie do moich testów można dopisać:
    1. Na samym dławiku + uC nie chciało chodzić
    2. Dławik + kondensator na gnd i vcc + uC - nie działa
    3. Dławik + kondensator (równolegle) + uC - nie działa
    4. Dławik + kondensatory z pkt 2 i 3 (różne wartości próbowałem) - też nic
    5. Antena od modułu rfid (15 zwojów x 2, kwadrat na PCB, wymiary 65x65mm) + równolegle kondensator 10nF + uC - DZIAŁA w 100% (wersja RFID UNIQUE 125kHz)
    6. Cewka wymontowana z karty RFID 125kHz sztywnej (Clamshell) bez kondensatorów - DZIAŁA w 100%
    Jak widać (i jak teraz już wiem poznawszy teorię działania tych kart) decydujące znaczenie ma cewka i jej parametry. Kondensatory w przypadku dobrej cewki pozwalają na zwiększenie zasięgu pracy układu.
    ---
    Na marginesie - zbudowałem nawet prosty kloner umożliwiający odczyt karty, wyświetlenie jej numeru, zapis numeru do pamięci eeprom (10 slotów), wprowadzenie numeru z klawiatury oraz oczywiście emulację numeru wczytanego do ramu. Wykorzystałem kostkę atmega328p oraz aktywny układ kluczujący cewkę "nadawczą" wymontowaną ze wspomnianej wyżej karty.

  • #18 14 Lip 2012 21:26
    excray
    Poziom 39  

    W jaki sposób dekodujesz dane z ciągu bitów? Właśnie się nad tym zastanawiam jak to ugryźć. Czy po 9-ciu bitach 1 synchronizacyjnych może być bit 1 czy zawsze jest 0?

  • #19 14 Lip 2012 22:41
    piotrva
    Moderator na urlopie...

    A więc jak działa mój algorytm:
    1. Dekoduję otrzymane 128 zbocz za pomocą manchesteru i otrzymuję ciąg 64 bitów - cała ramkę tego standardu (od razu w przerwaniu ICR timera 1)
    2. Szukam 9-ciu jedynek rotując cały czas zmienną o 1 bit w lewo (zmienna<<1) - jeśli znajdę 9 jedynek to mam pewność że to początek ramki, bo: a) poprzednia ramka musiała się skończyć zerem b) nawet jeśli 10-ty bit ramki ma wartość 1 (może tak być), to i tak wcześniej wykryłem 9 jedynek, więc jest wszystko wyrównane OK. Jeśli nie ma 9-ciu jedynek to idź do 4.
    3. liczę bity parzystości pionowej i poziomej, jeśli są zgodne to skocz do 6, jeśli nie to do 4
    4. jeśli nie znalazłem 9-ciu jedynek w pkt 2, lub nie zgadza się parzystość to neguję całe dane i powtarzam czynność z punktu 2 (na wypadek, gdybym zaczął odbiór od złego zbocza), jeśli dalej nie ma 9-ciu jedynek to odebrano śmieci, i zaczynamy odbiór od początku, jeśli są jedynki to idź do 5.
    5. liczę bity parzystości pionowej i poziomej, jeśli są zgodne to skocz do 6, jeśli nie to zaczynamy odbiór od początku
    6. przystępujemy do dekodowania wyrównanej ramki - to już bułeczka z masełkiem :D
    Taki jest mój algorytm i działa bardzo dobrze, a ponadto w tle - w sumie kod wystawia flagę po zdekodowaniu i zapisaniu do zmiennej globalnej zdekodowanego numeru karty, a kolejny odbiór rozpoczyna po wykasowaniu tej flagi przez program główny.
    ---
    kodów na razie nie chcę udostępniać na forum, gdyż zamierzam opisać całą tematykę tego typu kart w artykule na konkurs.

  • #20 14 Lip 2012 23:05
    excray
    Poziom 39  

    Dziękuję za odpowiedź. Jeśli to nie zahacza o konkurs to mam jeszcze jedno pytanie - do dekodowania kodu manchester potrzebujesz sygnału podstawowego CLK zsynchronizowanego z ciągiem danych. Jak generujesz sobie ten sygnał? Z timera? Jak synchronizujesz tak aby zsynchronizował się na odpowiednim zboczu danych? Synchronizujesz wielokrotnie czy tylko raz?