Sei sulla pagina 1di 17

Copyright 2005 -Tutti i diritti sono riservati.

1
PCF7931: Interfaccia di programmazione lowcost.
Autore: TheInsider
Revisione: 1.0.2
Dopo aver esplorato a fondo nella precedente guida gli aspetti teorici di base
della tecnologia RFID, ci apprestiamo ora a progettare una completa interfaccia
di programmazione per transponder PCF7931.
Anche in questa guida porr particolare attenzione ad utilizzare un registro
comprensibile alla fascia pi ampia possibile di lettori, pur mantenendo il
necessario rigore espositivo.
I concetti di base gi esposti in precedenza si assumeranno gi acquisiti, vi
far riferimento in questa guida esclusivamente per evidenziare le differenze
tra il circuito LC parallelo gi studiato ed il circuito LC serie che sfrutteremo per
realizzare linterfaccia di programmazione in oggetto.
Cosa intendo per interfaccia di programmazione? E presto detto.
Ci che intendo proporre una sorta di scatola nera che metta a disposizione
dellutente due semplici segnali a livello TTL/CMOS(0-5V), da poter controllare
a piacimento per la lettura e la scrittura del transponder PCF7931.
Per la precisione la linea RX costituir loutput dellinterfaccia, la cui decodifica
software ci permetter di conoscere il contenuto del tag, la linea TX costituir
linput dellinterfaccia, pilotando opportunamente il quale sar possibile
programmare il tag a piacere.
Grazie allinterfaccia di programmazione che costruiremo potremo interagire
con il transponder come se stessimo scrivendo/leggendo su una comune
eeprom. Ovviamente spetter a voi codificare/decodificare opportunamente via
software i segnali da inviare a questa eeprom un po speciale, studiando con
attenzione il protocollo PPM (Pulse Position Modulation) per la scrittura ed il
protocollo CDP (Conditioned Diphase) per la lettura, il tutto spiegato
accuratamente sul datasheet del nostro caro PCF7931.
In altre parole una volta costruita linterfaccia non dovremo pi preoccuparci
di campi magnetici o modulazioni ASK, dovremo solo decidere come pilotare
digitalmente i segnali TX ed RX messi a disposizione dallinterfaccia, dopodich
potremo concentrarci esclusivamente sullaspetto software.
Come gestire i segnali TX ed RX? Vi sono diverse possibilit, il modo pi
professionale consiste nellutilizzare un microcontrollore (PIC Microchip od
altro). In alternativa possibile pilotare linterfaccia direttamente dalla porta
parallela di un PC, come ho fatto io, anche se, mi rendo conto, ci richiede una
certa capacit nel saper gestire con grande accuratezza il timer di sistema.
Se intendete invece limitarvi alla sola lettura del transponder, lapproccio
diretto tramite porta parallela non necessita del timer di sistema e risulta
quindi sicuramente alla portata di molti.
Vediamo dunque lo schema a blocchi dellinterfaccia di programmazione che
andremo a costruire.
Copyright 2005 -Tutti i diritti sono riservati.
2
Figura 1.
Schema a blocchi dellinterfaccia di programmazione per PCF7931.
Come potete vedere in Figura 1 linterfaccia costituita da un oscillatore ad
onda quadra che genera la portante a 125KHz. Tale portante viene modulata
OOK-ASK (ossia accesa-spenta, ricordate?) dal segnale di scrittura TX e data in
pasto al driver che genera il campo magnetico necessario a programmare il
tag. In ricezione il rivelatore di picco estrae dalla portante il segnale inviato dal
tag (demodulazione ASK), lo ripulisce con un semplice filtro RC e lo squadra
rendendolo idoneo a pilotare una porta a livelli TTL/CMOS.
Ogni progetto che si rispetti nasce da una serie di specifiche tecniche che
devono essere chiare fin dallinizio nella mente del designer. Queste sono le
specifiche definite per la nostra interfaccia:
- minimo costo realizzativo in termini di componentistica.
- tensione di alimentazione 5Vdc10%.
- frequenza e dutycycle della portante indipendente dalla tensione di
alimentazione.
- distanza operativa in lettura/scrittura minimale.
- segnali TX ed RX compatibili con livelli TTL/CMOS.
Lunico punto che forse merita una spiegazione quello relativo alla sensibilit
richiesta al nostro lettore. Ci interessa veramente riuscire a leggere il tag da
distanze di 20-30mm o ci basta semplicemente leggere-, anche se dobbiamo
inserire il tag al centro della bobina del lettore per riuscirvi?
OSCILLATORE
AD ONDA
QUADRA
(125KHz)
GENERATORE DI
CAMPO
MAGNETICO
RIVELATORE DI
PICCO, FILTRO
PASSA BASSO E
SQUADRATORE
PORTA PARALLELA OPPURE
MICROCONTROLLORE PIC MICROCHIP
TX
RX
Copyright 2005 -Tutti i diritti sono riservati.
3
Siccome riusciamo a risparmiare parecchi componenti se ci accontentiamo di
una sensibilit minimale preferiamo risparmiare soldi piuttosto che aggiungere
una feature per ora considerata non necessaria. In pratica riusciremo a fare a
meno dello stadio di amplificazione costituito da un operazionale e diversi
componenti di contorno, limitandoci a ripulire e squadrare il forte segnale
ricevuto posizionando il PCF7931 al centro della bobina del lettore.
Inoltre per ottenere una portante precisa, stabile ed indipendente dalla
tensione di alimentazione ho optato per un quarzo da 4MHz ed un divisore di
frequenza 74HC4060, ottenendo la miglior qualit possibile con un costo
minimale. Starete a questo smaniando di mettere finalmente le mani sullo
schematico completo del programmatore, non vero?
Attendete ancora un secondo, vediamo prima di fare la lista della spesa (o pi
tecnicamente la Bill Of Material):
BOM list.
Reference: Part number: RS code: RS euro/unit:
U1 74HC4060 436-7587 0.41
U2 74HC132 436-7414 0.28
U3 LMC555 346-1975 0.77
Q1 BC337 169-9617 0.10
Q2 BC327 348-3846 0.35
XTAL1 crystal 4MHz 471-9714 0.60
D1,D2 1N4148 446-8551 0.06
LD1,LD2 LED
L1 coil 122uH, 0.1mm 337-7088
C4 100uF electrolitic
C1,C5,C10,C11 100nF ceramic
C6,C8,C9,C12 10nF ceramic
C7 3.3nF ceramic
C2,C3 33pF ceramic
R1 1Mohm 0.25W
R12 330kohm 0.25W
R6 22kohm 0.25W
R3 10kohm 0.25W
R8,R10 10kohm 0.25W 1%
R9 8.2kohm 0.25W 1%
R7 1kohm 0.25W
R4 470 ohm 0.25W
R2,R11 330 ohm 0.25W
R13 100 ohm 0.25W
R5 18 ohm 0.25W
Copyright 2005 -Tutti i diritti sono riservati.
4
Figura 2.
Schematico completo dellinterfaccia di programmazione v2.1 per PCF7931.
Come potete notare dalla BOM tutti i componenti sono di facile reperibilit,
dove non diversamente indicato i resistori si intendono con tolleranza 5%.
Vi suggerisco di utilizzare la versione CMOS del timer 555 (LMC555), evitando
in questo caso la versione bipolare classica (LM555/NE555), la sensibilit del
vostro lettore ne trarr giovamento.
Nella BOM ho voluto indicare come riferimento il codice RS ed il prezzo per
unit di alcuni componenti, potr esservi utile per studiare i datasheet e per
fare valutazioni indicative di costo, considerate che nel vostro negozio di
fiducia potrete molto probabilmente spendere cifre inferiori ai prezzi indicati.
Lunico componente che sar necessario autocostruire la bobina L1,
costituita da un avvolgimento di filo di rame smaltato da 0.1mm di diametro, lo
stesso utilizzato nella precedente guida.
Essendo il driver la parte pi critica di tutto il progetto dedicher un capitolo
apposito per lanalisi e la messa a punto.
Quelli listati sono i componenti essenziali, ovviamente dovrete ritagliarvi una
basetta millefori di circa 10x5cm per montare il tutto, decidendo magari di
zoccolare gli integrati e di montare un comodo jack per lalimentazione del
programmer. Se deciderete inoltre di sfruttare la porta parallela di un PC per
pilotare i segnali TX ed RX, potr essere di utilit un connettore DB9 o DB25
per linterfacciamento.
Lo schematico di Figura 2 vi svela finalmente le scelte progettuali operate nel
dare corpo allo schema a blocchi visto in precedenza. Lintegrato 74HC4060
realizza con una manciata di componenti un preciso oscillatore quarzato e un
divisore di frequenza: sulluscita Q5 presente la frequenza del quarzo divisa
per 32, ottenendo unonda quadra oscillante a 125.000KHz con un perfetto
duty cycle del 50%. Non preoccupatevi se la frequenza effettiva che otterrete
non sar precisa allHertz, possiamo permetterci una tolleranza anche di
1KHz, la cosa importante che il dutycycle sia esattamente del 50%.
Copyright 2005 -Tutti i diritti sono riservati.
5
Qualora abbiate difficolt a reperire un quarzo da 4MHz niente paura, potete
raggiungere la frequenza desiderata scegliendo un divisore di frequenza
diverso (per esempio usando un quarzo da 16MHz troverete gli agognati
125KHz sul pin 6 di U1).
Una delle porte NAND dellHC132 viene usata per modulare digitalmente la
portante (ON/OFF) tramite il segnale di pilotaggio TX. Il segnale TX dovr
dunque permanere nello stato alto durante la lettura del tag, mentre dovr
essere in grado di produrre impulsi bassi della durata rispettivamente di 24us e
48us durante la scrittura del tag. Se per un PIC produrre tali brevi impulsi
abbastanza semplice, non si pu certo dire lo stesso per una porta parallela
programmata a livello di registri di I/O, anche se vi posso garantire per
esperienza diretta che si pu fare.
Siamo finalmente giunti al cuore del programmatore, il driver, costituito da
una coppia di transistor bipolari connessi ad emettitore comune (Q1 e Q2) e da
un circuito RLC risonante serie formato da R5,L1 e C6+C7.
Questa senzaltro la parte pi critica di tutto il progetto, ci ritorneremo pi
avanti, per ora vi basti sapere che ai capi di C6 e C7 si dovr osservare a vuoto
(ossia senza avvicinare il PCF7931 alla bobina L1) un perfetto segnale
sinusoidale di 13Vpp di ampiezza (con power supply di 5Vdc).
Inserendo il tag nella bobina L1 il segnale sinusoidale verr modulato in
ampiezza (modulazione ASK al 10%) e sar compito del blocco circuitale
successivo provvedere ad estrarre il segnale informativo inviato a ripetizione
dal tag.
Lestrazione del segnale viene effettuata tramite un rivelatore di picco
positivo costituito da D1,C8 ed R6. Il segnale viene poi ripulito dal filtro passa
basso costituito da R7 e C9. Il condensatore C10 infine disaccoppia in continua
il segnale utile sommandolo al riferimento di tensione presente sul pin
CONTROL dellLMC555 (posto a 2/3 VCC da un partitore resistivo interno al
chip).
La speciale configurazione adottata permette di sfruttare un economico timer
LMC555 come comparatore non invertente ad isteresi programmabile usando
solo 3 resistori esterni (R8,R9,R10), un vero record in termini di ottimizzazione
progettuale!
I valori scelti per i tre resistori all1% ci permettono di ottenere velocemente
una sensibilit pi che sufficiente per le nostre esigenze (circa 500mVpp di
segnale utile) senza perdere tempo in tarature fini (se non riuscite a reperire
resistori all1% potete selezionarli misurandone la resistenza con un
multimetro).
Siccome non ho resistito alla tentazione di spremere al massimo questo
ricevitore economico, vi mostrer in seguito come, semplicemente scegliendo
resistenze opportune, si possano raggiungere sensibilit di 150-200mVpp,
facendoci guadagnare per puro sfizio qualche millimetro in pi in termini di
distanza massima di lettura.
Per terminare lanalisi circuitale, luscita del timer LMC555 fornisce il segnale
digitale RX che rappresenta il contenuto informativo inviato dal tag e che dovr
essere decodificato dal software.
Copyright 2005 -Tutti i diritti sono riservati.
6
Ulteriori due porte NAND (U2B,U2C) provvedono infine a dotare il nostro
ricevitore di una feature decisamente utile: il led LD2 si accende in modo
stabile solo quando sulla linea RX presente un segnale da decodificare.
In questo modo potrete valutare immediatamente la sensibilit in lettura del
reader avvicinando un PCF7931 alla bobina, anche con diverse angolazioni:
appena il segnale ricevuto sar sufficientemente forte, il led si accender.
Ricordate che le massime distanze in lettura si ottengono mantenendo la
bobina del reader coassiale con la bobina interna del PCF7931, come ho gi
mostrato nella precedente guida.
Naturalmente possibile risparmiare qualche componente rinunciando alla
feature suddetta e al led di power-on LD1. La Figura 3 vi mostra la versione
ultra-lowcost del programmatore, priva dei led di segnalazione.
Potete scegliere indifferentemente tra le due versioni proposte, il
funzionamento assolutamente identico.
Figura 3.
Schematico completo dellinterfaccia di programmazione v2.0 per PCF7931.
Criteri di progetto del circuito LC risonante serie.
Qualcuno si sar chiesto per quale motivo non sia stata utilizzata una
configurazione LC parallelo, preferendo invece una configurazione LC serie.
Entrambi i bipoli generano un campo magnetico se percorsi da una corrente
variabile nel tempo. Il problema consiste nel fatto che il bipolo LC parallelo
tende ad opporsi al passaggio di corrente in quanto in condizioni di risonanza
aumenta di molto limpedenza che presenta ai suoi capi, dunque ci rema
decisamente contro. Ricordiamo infatti che il campo magnetico generato da
una bobina in aria direttamente proporzionale alla corrente RMS che la
Copyright 2005 -Tutti i diritti sono riservati.
7
percorre, dunque pi corrente iniettiamo e pi potente sar il campo magnetico
generato.
Il bipolo LC parallelo si presta molto meglio ad essere usato allinterno di un
transponder in quanto lalta impedenza che presenta il bipolo in risonanza
permette lo svilupparsi ai suoi capi di tensioni consistenti (il suo
comportamente diventa assimilabile ad un generatore di tensione), che
possono essere poi raddrizzate e applicate ad un carico (il microcontrollore e la
eeprom interna al tag).
Guarda caso allinterno del PCF7931 presente proprio un bipolo LC parallelo,
ottimo sensore di campo magnetico variabile.
Un bipolo LC serie invece si presta pefettamente al nostro scopo in quanto in
condizioni di risonanza presenta una bassa impedenza, fatto che ci permette di
farvi scorrere facilmente correnti elevate e produrre di conseguenza elevato
campo magnetico, indispensabile per riuscire a fornire sufficiente energia per
programmare un PCF7931.
Per nostra fortuna la formula della risonanza applicata al gi studiato LC
parallelo la stessa da applicare al bipolo LC serie:
f
res
=1/(2LC) Formula della risonanza.
Dunque, se utilizzate la bobina L1 e i condensatori di accordo C6 e C7 come
descritto nello schema, quale sar la frequenza di risonanza del bipolo?
Sostituite a C nella formula la somma C6+C7 e ad L il valore di L1 ed otterrete
guarda caso la frequenza di 125KHz.
Se avete studiato bene la guida precedente vi chiederete allora se la formula
per il calcolo del fattore di qualit Q che abbiamo usato nel bipolo LC parallelo
si applichi anche al bipolo LC serie. La risposta affermativa, con lunica
differenza che nel calcolo invece di considerare esclusivamente la resistenza
intrinseca della bobina (R
L
) necessario tenere conto anche della resistenza
offerta dal driver (Q1,Q2) e della resistenza serie R5:
Q= 2fL/ (R
L
+R
DRIVER
+R5) Fattore di qualit del bipolo LC serie.
In questo caso qual il significato del Q? Il Q del bipolo LC serie ci indica di
quanto la corrente verr amplificata grazie al magico fenomeno della
risonanza, dunque pi alto il Q e pi sar potente il campo magnetico
ottenibile.
Per quale motivo allora abbiamo inserito la resistenza R5 ? Togliamola, in
modo da alzare il Q del bipolo!
Purtroppo come al solito occorre trovare il giusto compromesso, infatti un Q
elevato oltre a rendere delicata loperazione di accordo della bobina con il
giusto condensatore serie (ricordate il picco della montagna?) porta in questo
caso una ben pi grave conseguenza: la bobina diventerebbe molto potente
ma estremamente lenta, sarebbe dunque impossibile riuscire a produrre
impulsi PPM di appena 24us con ripidi fronti di salita e di discesa e dunque
sarebbe impossibile riuscire a programmare il tag PCF7931.
Copyright 2005 -Tutti i diritti sono riservati.
8
Ma siccome il campo magnetico necessario per programmare il tag
relativamente basso (tipicamente 170uWeber/m
2
), abbastanza semplice
produrlo senza bisogno di alzare pericolosamente il Q: con una bobina da circa
122uH sufficiente un Q=2 per avere tutta la potenza necessaria per
programmare il tag.
Se riflettete sulla campana della risonanza che abbiamo studiato nella guida
precedente dedurrete che una bobina con Q=2 decisamente facile da
accordare, ci possiamo affidare completamente al software di calcolo senza
bisogno di tarature con loscilloscopio!
Siccome il valore da assegnare alla resistenza R
DRIVER
non noto a priori
conveniente usare una formula alternativa specifica per calcolare il Q del
nostro circuito:
Q= V
Cpp
*/(4*VCC)
Supponendo di alimentare linterfaccia con VCC=5V e di misurare sul
condensatore C6 una tensione sinusoidale di ampiezza 13Vpp il Q del nostro
circuito sar Q=2.04.
E importante non superare 13Vpp di tensione picco-picco, perch altrimenti
si rischia di avere un Q troppo alto e dunque una bobina troppo lenta.
Qualora misuraste una tensione picco-picco diversa modificate il
valore della resistenza R5 fino ad ottenere una tensione su C6
compresa tra 12.5Vpp e 13.5Vpp (alimentando linterfaccia con 5Vdc
esatti).
La funzione della resistenza R5 consiste proprio nel ridurre il Q del circuito al
fine di velocizzare la bobina.
Conoscendo la tensione picco-picco ai capi dei condensatori di accordo
possiamo ora calcolare la corrente picco-picco circolante nel circuito:
I
Cpp
= V
Cpp
*2fC
dove f=125KHz e C=C6+C7=13.3nF. Ad una tensione V
Cpp
=13Vpp corrisponde
dunque una corrente di circa 135mA picco-picco, equivalenti a 48mA RMS.
La corrente RMS cos calcolata la medesima corrente che scorre sulla bobina
ed dunque un dato prezioso per poter stimare il campo magnetico presente
allinterno della stessa. Come? Facendo uso della legge di Biot-Savart di cui
riporto la formula semplificata, perfetta per i nostri scopi:
B= 410
-7
*I
RMS
*N/D Biot-Savart law
dove I
RMS
=48mA, N=80 spire, D=0.0184m (diametro della bobina in metri).
Linduzione magnetica B presente al centro della bobina sar
B=262uWeber/m
2
. Abbiamo dunque ampio margine rispetto al valore tipico
richiesto per programmare un PCF7931 (170uWeber/m
2
).
Copyright 2005 -Tutti i diritti sono riservati.
9
Progettazione della bobina di lettura/scrittura.
Per progettare la bobina L1 da 122uH ci affideremo al software di calcolo
coil.exe usato nella guida precedente. Siccome il Q del circuito molto basso
non ci sar bisogno di accordare manualmente la bobina e ci potremo fidare
del valore di capacit di accordo suggerito dal software.
Il software pensato per una bobina di sezione rettangolare ma possibile
utilizzarlo anche per bobine di sezione circolare senza commettere errori
apprezzabili. Nella costruzione della bobina valgono tutte le raccomandazioni
elencate nella precedente guida, in particolare le spire devono essere
perfettamente serrate e non devono mai sovrapporsi.
Vi suggerisco di avvolgere la bobina su un supporto plastico cavo di forma
cilindrica. Ho scelto la forma cilindrica perch di pi facile reperibilit rispetto a
quella rettangolare, in Figura 4 e Figura 5 potete osservare la bobina in
dettaglio: come supporto ho usato un comune cappuccio di pennarello.
Caratteristiche della bobina realizzata:
- supporto plastico di forma cilindrica.
- diametro esterno del cilindro: 18.4mm.
- lunghezza dellavvolgimento: 9.4mm
- diametro del filo di rame smaltato: 0.1mm
- numero di spire: 80
Copyright 2005 -Tutti i diritti sono riservati.
10
Figura 4.
Dettaglio realizzativo della bobina di lettura/scrittura.
Copyright 2005 -Tutti i diritti sono riservati.
11
Figura 5.
Visione dinsieme della bobina protetta da uno strato di scotch e cera a caldo.
Copyright 2005 -Tutti i diritti sono riservati.
12
Ovviamente non detto che riusciate a procurarvi un cilindro plastico di
esattamente 18.4mm di diametro (sinceramente non saprei nemmeno dirvi la
marca del pennarello J), ed per questo che ci viene in aiuto il software
coil.exe. La cosa essenziale che voi siate in grado di realizzare una bobina
con uninduttanza compresa indicativamente tra 115uH e 125uH, a
prescindere dal diametro della bobina e dal numero di spire avvolte.
Siccome il software pensato per una bobina di sezione rettangolare, viene
richiesta la lunghezza dei due lati di una bobina rettangolare. Ora noi abbiamo
un supporto cilindrico di diametro 18.4mm, che dati dobbiamo inserire ?
E presto detto. Dobbiamo inserire nel software i lati di un quadrato che abbia
la stessa area della nostra bobina.
Facciamo il calcolo ricordando che larea di un cerchio di raggio r vale A=r
2
:
AREA DELLA BOBINA DI SEZIONE CIRCOLARE = (18.4mm/2)
2
= 265.9mm
2
LATO DEL QUADRATO DI AREA EQUIVALENTE = 265.9 = 16.3mm
Dunque nel software dobbiamo fingere di usare una bobina di sezione quadrata
di lato 16.3mm, la cui induttanza sappiamo sar circa equivalente a quella
della nostra bobina di sezione circolare di diametro 18.4mm. Chiaro?
In Figura 6 potete osservare i risultati del calcolo, dopo aver immesso tutti i
dati richiesti.
In questo caso gli unici output che ci interessano sono linduttanza della bobina
(122uH) e il valore del condensatore di accordo per LC serie risonante
(13.25nF).
Abbiamo dunque realizzato la bobina con linduttanza richiesta da accordare
con un condensatore da 13.25nF teorici. Nello schema il valore teorico stato
arrotondato senza problemi mettendo in parallelo due condensatori
rispettivamente da 10nF (C6) e 3.3nF(C7).
Copyright 2005 -Tutti i diritti sono riservati.
13
Figura 6.
Calcolo dei parametri della bobina di lettura/scrittura del programmer.
Un ultimo consiglio per riuscire a realizzare la bobina: progettando la bobina
esclusivamente con il software potete prevedere la lunghezza
dellavvolgimento sapendo che 80 spire ben serrate determinano una bobina di
circa 9.4mm di lunghezza, dunque ogni spira occuper circa 0.118mm (questo
ragionevole in quanto il filo di rame nudo ha diametro 0.1mm ma occorre
considerare anche lo spessore dellisolamento in poliuretano).
Dunque basta trovare un qualunque cilindro plastico di diametro 16-20mm
per poi calcolare tramite il software il numero di spire necessarie per
raggiungere linduttanza desiderata.
Dulcis in fundo potete osservare in Figura 7 linterfaccia di programmazione
assemblata nella versione completa v2.1. Come si vede ho adottato un
compatto connettore DB9 maschio per interfacciarmi direttamente con la porta
parallela tramite un cavetto autocostruito. Chi volesse invece gestire
linterfaccia di programmazione tramite un PIC non dimentichi di riservare
adeguato spazio sulla basetta a bollini.
Copyright 2005 -Tutti i diritti sono riservati.
14
Figura 7.
Interfaccia di programmazione per PCF7931 v2.1.
Copyright 2005 -Tutti i diritti sono riservati.
15
Affinamento della sensibilit del lettore.
Questo capitolo ha un intento puramente didattico in quanto la sensibilit del
lettore nella sua configurazione standard di Figura 2 gi pi che sufficiente
(bastano circa 500mVpp di segnale) per leggere senza problemi con il PCF7931
inserito nel cilindro al centro della bobina di lettura/scrittura.
Come vi avevo accennato la sensibilit del lettore pu essere comunque
tarata scegliendo opportunamente le resistenze R8,R9,R10 che in pratica
definiscono i livelli di trigger di commutazione dei comparatori interni del timer
LMC555.
Per prima cosa occorre misurare il valore di offset (tensione DC) a vuoto
presente sul pin 5 (VCONTROL) tramite un multimetro. Il valore teorico di
2/3 VCC, dunque sul pin 5 ci devono essere circa 3.33Vdc alimentando il
programmer con 5Vdc. Il datasheet dellLMC555 in realt specifica una
tolleranza abbastanza larga su questo riferimento di tensione per cui
opportuno comunque misurarlo per poter tarare con precisione la sensibilit del
lettore.
Supponiamo che:
VCC= 5.0V
VCONTROL=3.4V
Sensibilit richiesta = 200mVpp.
Calcoliamo ora la soglia di isteresi superiore e inferiore:
VH= 3.4+0.1 = 3.5V
VL= 3.4-0.1 = 3.3V
Scegliendo a piacere R8=10kohm la somma delle resistenze R9 ed R10 dovr
essere:
R9+R10= VL*R8/(VCC-VL) = 3.3*10000/(5-3.3) = 19411 ohm
La resistenza R10 dovr essere:
R10= VH*(R9+R10)/(VL*2) = 3.5*19411/(3.3*2) = 10293 ohm
e dunque R9 = 19411-10293 = 9118 ohm
Riassumendo se teoricamente scegliessimo:
R8=10000 ohm
R9=9118 ohm
R10=10293 ohm
il nostro lettore avrebbe una sensibilit di 200mVpp quando alimentato con
5Vdc.
Copyright 2005 -Tutti i diritti sono riservati.
16
In pratica la tensione presente sul pin 6 (THRESHOLD) rappresenta la soglia
inferiore VL, mentre la tensione presente sul pin 2 (TRIGGER) rappresenta la
met della soglia superiore VH.
Per comprendere meglio questa particolarissima configurazione realizzata con
il timer LMC555 vi suggerisco di studiarne bene la struttura interna.
Troubleshooting.
Come ho ripetuto pi volte la sezione pi critica costituita dal driver.
Verificate attentamente con un oscilloscopio la frequenza, lampiezza picco-
picco e la forma donda del segnale presente sui condensatori di accordo C6 e
C7: deve essere presente una perfetta onda sinusoidale di 12.5/13.5Vpp e
frequenza 125KHz.
Eventuali distorsioni della sinusoide possono essere sintomo di un errato
accordo della bobina, in pratica la bobina potrebbe avere uninduttanza molto
diversa da quella attesa a causa della scarsa qualit realizzativa (spire
distanziate, parzialmente sovrapposte, filo di diametro errato, ecc..).
Oppure lerrore potrebbe essere nel condensatore di accordo, molto diverso
rispetto al valore nominale a causa delle ampie tolleranze costruttive. Scegliete
condensatori con dielettrico definito NP0, C0G, X7R o X5R per disporre di un
valore di capacit stabile in temperatura. Usate eventualmente un capacimetro
per verificare leffettivo valore di capacit dei condensatori di accordo
(raccomandato nel caso vogliate calcolare con precisione il campo magnetico
generato dalla bobina).
Queste raccomandazioni valgono soprattutto per loperazione di scrittura del
tag, certamente pi critica e delicata della fase di lettura. Chi desiderasse
costruire uninterfaccia con la sola funzionalit di lettura del PCF7931 pu fare
riferimento allo schema sottostante (Figura 8).
Figura 8.
Schematico dellinterfaccia di sola lettura v1.0 per PCF7931.
Copyright 2005 -Tutti i diritti sono riservati.
17
Il software di lettura e programmazione.
Come gi detto linterfaccia di programmazione presentata costituisce un
tassello necessario ma non sufficiente per rendere pienamente funzionale il
programmatore. Ora che avete a disposizione una solida interfaccia hardware
occorre che vi rimbocchiate le maniche e che iniziate a stendere qualche
centinaia di righe di codice, datasheet del PCF7931 alla mano, per provare
inizialmente a decodificare il segnale digitale inviato dal tag sulla linea RX del
lettore. Una volta capita la decodifica e realizzata la procedura di lettura del
PCF7931 potrete concentrarvi sulla formattazione degli impulsi di scrittura da
inviare alla linea TX, rammentandovi che la comunicazione con il tag avviene
sempre in half-duplex, ossia o leggete o scrivete, non potete fare entrambe le
cose contemporaneamente.
A questo punto non mi resta che augurarvi buon divertimento.
-TheInsider-