It took a bit of experimentation to get the 6+' distance. It's all about placement of the
small RFID LF antennas on the receiving unit. Once you get that dialed-in you get a
whopping range. The first pictures were the initial prototypes. These had around 3+'
range.
This picture is the final version that works at 6+' range. If you compare placement of the
small RFID antennas on this one to the one above you'll know how/where to put them for
excellent range. You can walk up to the initiator with the ID badge in your back pocket, and
it still gets solid comms.
The final ID board is about 1/3 the size of a credit card, and modified to fit into a keychain
type plastic enclosure.
SMD caps & resistors are all 0402 size. Boy were those fun to hand-solder on the last
prototype. Phew...
	
		
			
			
				would I need to modulate the Debugout signal
			
		
 
	 
 I used a TC4422A high-speed MOSFET driver to drive the large LF antenna, and PWM to send
data like this;
	Code:
	ID_Init:   
    T1CON.0 = 0  ' Shut-down Timer1 during wake-up routine
    ' Wakeup sequence. 4mS ON, 500uS gap, 2mS ON, 2mS OFF. Then
    ' follow up with header & data.
    CCP1CON = 12   ' PWM ON
    PAUSEUS AGC_STABLE
    CCP1CON = 0    ' PWM OFF
    PAUSEUS GAP
    CCP1CON = 12
    PAUSEUS 2210   ' 2mS ON
    CCP1CON = 0
    PAUSEUS 2210   ' 2mS OFF
    ' Wakeup sequence complete
    
    CCP1CON = 12   ' Send header after initial wakeup
    PAUSE 1        ' 1mS high on receiver LFDATA pin
    CCP1CON = 0
    PAUSEUS 500    ' header complete
    
    ' Transponder should now be waiting for data payload
    FOR LOOPS = 0 TO 7 ' loop for all 8-bits
    CCP1CON = 12
    IF DAT.0[LOOPS] THEN
       PAUSEUS 500
    ELSE
       PAUSEUS 250
    ENDIF
    CCP1CON = 0
    PAUSEUS 500    ' this pause allows 500uS for ID badge to respond
    NEXT LOOPS     ' after challenge code is sent.
    CCP1CON = 0    ' turn off PWM
    ' Data payload complete
    PAUSE 5        ' Pause a bit so interrupt flag-bit can be set when ID badge responds
    TMR1L = 0
    TMR1H = 0      ' Clear Timer1 count before re-enabling
    T1CON.0 = 1    ' Re-enable Timer1 on exit
    RETURN
    
    ' Notes: After wakeup the receivers 16F639 AFE inactivity
    ' timer will expire after 16mS. Any gap in transmision that
    ' exceeds 16mS will require another wakeup sequence before data
    ' can be sent.
 The receiving end just uses PULSIN to grab the inbound data.
				
			
Bookmarks