ams AS3955-ATDM-I4 Nfc forum compliant dynamic tag Datasheet

AS3955
NFC Forum Compliant Dynamic Tag
General Description
AS3955 NFC Dynamic Tag IC is the ultimate solution to easily
add NFC functionality to electronic devices. Thanks to a high
sensitivity ISO14443A frontend and high integrated resonance
capacitor, AS3955 offers standalone NFC passive tag
functionality in a small footprint. Fast system integration and
high speed data transfer are guaranteed by the available SPI
and I²C interfaces and by the optimized protocols (Tunneling
Mode and Extended Mode), allowing bidirectional
communication between the device microcontroller and an
external NFC compliant device or ISO14443A reader device
(PCD).
AS3955 is able to operate fully powered by the RF field, without
any external supply. This, combined with an advanced energy
harvesting feature, greatly increases battery life time or even
allows battery-less designs.
AS3955 is used with an appropriate antenna coil connected to
the terminals LC1 and LC2, and behaves as a standard passive
ISO 14443A tag (PICC). After the anti-collision protocol stage,
based on configuration, AS3955 can operate as a standalone
NFC Forum Type 2 Tag or, when tunneling mode is activated, as
a bridge between the PCD and the microcontroller, e.g. to
emulate a custom or standard ISO14443A Level 3 or Level 4 PICC
or a NFC Forum tag. A configurable wake-up signal notifies the
microcontroller on ongoing RF activities, in order to minimize
overall power consumption.
AS3955 includes an embedded EEPROM memory that can be
accessed from the PCD through the RF link or from the
microcontroller through the SPI or I²C interfaces. Part or all
memory can be protected by a 32-bit password, or permanently
locked.
AS3955 supports ISO 14443A up to Level 4 and is designed
according to EMVCo requirements, to enable the emulation of
contactless smart cards or NFC Forum compliant Type 2 or Type
4 Tags.
AS3955 is designed for high reliability, and can operate in a wide
power supply range from 1.65V to 5.5V, in a wide temperature
range from -40 °C to 125 °C. EEPROM memory reaches
automotive grade quality with endurance of 100,000 cycles and
data retention of 10 years at 125 °C.
Ordering Information and Content Guide appear at end of
datasheet.
ams Datasheet
[v1-01] 2015-Apr-29
Page 1
Document Feedback
AS3955 − General Description
Key Benefits & Features
The benefits and features of AS3955, NFC Forum compliant
Dynamic Tag are listed below:
Figure 1:
Added Value of Using AS3955
Benefits
Features
• NFC Forum compliance for full interoperability
• Type 2 Tag standalone functionality
• Type 4 Tag emulation with external MCU
• NFC Forum compliance
• ISO 14443A compliance up to Level 4
• Operating frequency at 13.56 MHz
• Bit rate at 106 kbps
• 7-byte UID
• Choice of memory size based on application
• 2 kbit EEPROM (216 bytes of user data) or
• 4 kbit EEPROM (472 bytes of user data)
• Allows zero-power standby
• Configurable passive wake-up interrupt
• Enables long battery life time, or battery-less
designs
• Energy harvesting to supply up to 5mA @ 4.5V
(regulated)
• Allows fast antenna prototyping (ISO antenna
classes 1 to 6)
• 45 pF integrated resonant capacitor
• Design flexibility, easy integration. Fits
requirements for various embedded applications
• 3/4-wire SPI slave interface up to 5 Mbps
• I²C slave interface up to 1 Mbps
• Design flexibility, easy integration
• Programmable I²C address
• Fits supply requirements for various applications,
including industrial
• Wide interface supply range (1.65V to 5.5V)
• Support for multiple applications, and storage of
sensitive data
• 32-bit password memory protection
• High performance and robust data
communication, allows custom protocols to be
implemented
• Tunneling and Extended modes for MCU
communication
• Consistent NFC behavior of battery supplied
devices in e.g. pairing applications
• Silent mode (MCU power status detection),
configurable between 1.42V and 3.65V
• Possibility to disable RF communication
• Configurable Chip Kill mode
• Small outline, compatibility to common inlay and
card manufacturing lines, surface-mount
assembly
• Sawn wafer
• WL-CSP package
• 10-pin MLPD 3x3mm package
Page 2
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − General Description
Applications
AS3955 is suited to a wide range of applications, including
• NFC connection handover (Bluetooth™,
Bluetooth Low Energy, Wi-Fi pairing)
• Equipment setup, service and configuration
• Firmware upgrades
• Activity and status logging
• Wireless authentication (e.g. access control to buildings
and equipment)
Typical Markets:
• EMV payment cards
• Consumer electronics, wearables and smart clothing
• Home appliances
• Automotive
• Industrial equipment and building automation
• Remote sensing
• Gaming
A typical system diagram is depicted in Figure 2.
At the presence of a 13.56 MHz field generated by a NFC device,
AS3955 powers up, notifies the microcontroller through a
wake-up signal and handles the tag activation sequence.
Depending on configuration, several operations are then
possible:
• AS3955 exchanges with the NFC device NDEF data stored
in the internal EEPROM
• The microcontroller exchanges with the NFC device NDEF
data stored in external memory
• The microcontroller exchanges data with AS3955. This
operation can be performed concurrently with
communication over the RF link, or also in absence of RF
power, in presence of an external supply.
Figure 2:
Typical System Diagram
I²C or SPI
AS3955
ams Datasheet
[v1-01] 2015-Apr-29
wake-up
microcontroller
Page 3
Document Feedback
AS3955 − General Description
This built-in flexibility makes it ideal for a number of
applications requiring non-volatile memory to be accessed
when the system is not powered, e.g.:
• personalization data is programmed by the NFC device
(even in case SPI / I²C is not powered) and it is later read
by microcontroller through SPI / I²C interface
• Log data is stored periodically by the microcontroller and
can then be read by the NFC device even when the
microcontroller is not powered
• A NDEF message is regularly modified by the
microcontroller (e.g. Bluetooth pin code, or Wi-Fi key, or
dynamic URL) and it is later read by a NFC device.
Block Diagram
The functional blocks of this device for reference are
shown below:
Figure 3:
AS3955 Block Diagram
VP_REG
VP_INT
AS3955
VP_IO
POWER
MANAGER
VDD
LC1
IRQ
AFE
LC2
Page 4
Document Feedback
NFC FORUM
TYPE 2 TAG
LOGIC
EEPROM
2k or 4kbit
I²C/SPI
INTERFACE
I²C/SPI
VSS
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − General Description
AS3955 is composed of NFC-A Analog Front End (AFE), NFC Type
2 Tag Logic, EEPROM, SPI / I²C Interface and Power Supply
Manager Block (Power Manager).
The AFE is connected to an external tag coil which forms,
together with integrated resonant capacitor, a LC tank
resonating with the external electromagnetic field frequency
of 13.56 MHz. The AFE has built-in rectifier and regulators. The
output of the internal regulator (VP_INT) is used to supply the
AFE and also the Logic and EEPROM (through Power Supply
Manager). A regulator output VP_REG is available on a pin to
supply external circuitry by harvesting energy from the RF field.
The Power Manager is controlling the power supply of Logic
and EEPROM. The two blocks can be supplied either from
VP_INT or from VP_IO (SPI / I²C power supply) depending on
the power mode of the chip. AS3955 offers a power mode where
VP_IO supply is switched to VP_INT whenever the RF field is
present. VP_IO is typically used when some activity is started
over the SPI / I²C and the VP_INT is too low to be used as a power
supply.
The Logic is responsible for handling the anti-collision
sequence, when acting as NFC Type 2 Tag, and other data
transfer. The interface logic contains also a 32-byte buffer for
block transmission between NFC device and AS3955.
The EEPROM is used to store the UID, configuration and control
bits, and user data which can be accessed also via the SPI / I²C.
ams Datasheet
[v1-01] 2015-Apr-29
Page 5
Document Feedback
AS3955 − Pin Assignments
Pin Assignments
Figure 4:
AS3955 Pin Assignment
GND
VP_IO
1
10
IRQ
VP_REG
2
9
MISO / SDA
LC1
3
8
MOSI
LC2
4
7
SCLK / SCL
VSS
5
6
/SS
AS3955
MLPD
(Top view)
/SS
MOSI
A1
A2
SCLK / SCL MISO / SDA
A3
A4
VP_REG
IRQ
B1
B4
VSS
LC2
LC1
VP_IO
C1
C2
C3
C4
AS3955 WL-CSP (Top view)
Page 6
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Pin Assignments
Pin Description
Figure 5:
Pin Description
10-pin
MLPD
10-pin
WL-CSP
Die
Pin Name
NA
NA
1
meas
Analog I/O
Analog test pin (1)
1
C4
2
VP_IO
Supply Pad
Positive supply of the interface / IC
2
B1
3
VP_REG
Analog
Output
Regulator output
3
C3
4
LC1
Pin Type
Description
Connection to tag coil
Analog I/O
4
C2
5
LC2
Connection to tag coil
5
C1
6
VSS
6
A1
9
/SS
7
A3
10
SCLK / SCL
8
A2
11
MOSI
9
A4
12
MISO / SDA
Digital
Output /
Tristate
SPI data output / I²C data line
10
B4
13
IRQ
Digital
Output
Interrupt request output
(active high)
Supply Pad
Ground, die substrate potential
SPI enable (active low) /
I²C interface enable
Digital
Input
SPI / I²C clock
SPI data input
Note(s) and/or Footnote(s):
1. Pin meas is not bonded in MLPD package. It is only used during wafer sort test.
ams Datasheet
[v1-01] 2015-Apr-29
Page 7
Document Feedback
AS3955 − Absolute Maximum Ratings
Stresses beyond those listed under Absolute Maximum Ratings
may cause permanent damage to the device. These are stress
ratings only. Functional operation of the device at these or any
other conditions beyond those indicated under Operating
Conditions is not implied. Exposure to absolute maximum
rating conditions for extended periods may affect device
reliability.
Absolute Maximum Ratings
Figure 6:
Absolute Maximum Ratings
Symbol
Parameter
Min
Max
Unit
Comments
Electrical Parameters
VDD
Vin
DC supply voltage
-0.5
6.5
V
Input pin voltage except LC1
and LC2
-0.5
6.5
V
Input pin voltage pins LC1 and
LC2
-0.5
6.5
V
100
mA
100
mA
Norm: Jedec 78
Norm: MIL 883 E method 3015
(Human Body Model)
Peak current induced on pins
LC1 and LC2
Iscr
Input current (latch-up
immunity)
-100
Electrostatic Discharge
ESDHBM
Electrostatic Discharge HBM
±2
kV
ESDCDM
ESD – Machine and Charged
Device Models
±500
V
Temperature Ranges and Storage Conditions
Tstrg
Storage temperature
Tbody
Package body temperature
RHNC
Relative Humidity
non-condensing
MSL
Moisture Sensitivity Level
Page 8
Document Feedback
-55
150
5
3
°C
260
°C
85
%
Norm: IPC/JEDEC J-STD-020. The
reflow peak soldering
temperature (body temperature)
is specified according IPC/JEDEC
J-STD-020 “Moisture/Reflow
Sensitivity Classification for
Non-hermetic Solid State Surface
Mount Devices.” The lead finish
for Pb-free leaded packages is
matte tin (100% Sn).
Represents a max. floor life time
of 168h
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Electrical Characteristics
Electrical Characteristics
All limits are guaranteed. The parameters with min and max
values are guaranteed with production tests or SQC (Statistical
Quality Control) methods.
Operating Conditions
All in this specification defined tolerances for external
components need to be assured over the whole operation
conditions range and also over lifetime.
Figure 7:
Electrical Characteristics
Symbol
Parameter
Ilim
Min
Limiter current
Max
Unit
30
mA
Notes
VVP_IO
SPI power supply
1.65
5.5
V
When logic powered from
RF interface
VVP_IO
SPI power supply
1.65
5.5
V
When logic powered from
VP_IO
Junction temperature
-40
125
°C
Tjunc
DC/AC Characteristics for Digital Inputs and
Outputs
Figure 8:
CMOS Inputs
Symbol
Parameter
VIH
High level input voltage
VIL
Low level input voltage
ILEAK
Input leakage current
Min
Typ
Max
0.7 * VDD_IO
Unit
Note
V
0.3 * VDD_IO
V
10
μA
@125°C
Note(s) and/or Footnote(s):
1. Valid for input pins /SS, MOSI and SCLK
ams Datasheet
[v1-01] 2015-Apr-29
Page 9
Document Feedback
AS3955 − Electrical Characteristics
Figure 9:
CMOS Outputs
Symbol
VOH
Parameter
High level output voltage
Min
Typ
Max
Unit
0.85 *
VDD_IO
Note
V
VOL
Low level output voltage
RO
Output Resistance
200
RPD
Pull-down resistance pad
MISO
10
Isource=1mA
VP_IO = 5V
0.15 *
VDD_IO
V
400
Ω
kΩ
see note (1)
Note(s) and/or Footnote(s):Valid for output pins MISO and IRQ
1. Pull down can be enabled while MISO output is in tristate. The activation is controlled by register setting.
Electrical Specifications
Figure 10:
Electrical Specifications
Symbol
Parameter
Min
Typ
Stand by consumption on
VP_IO
100
VLIM
Limiter Voltage
5.2
IS
Supply current
VHF_PON
VPOR_HY
ISB_SPI
Max
Unit
Note
nA
V
ILC=30mA (DC) (1)
350
μA
see note (2)
HF_PON threshold
(rising VREG)
1.6
2.3
V
see note (3)
HF_PON hysteresis
0.8
V
VMOD
Modulator ON voltage drop
1.2
2.6
V
CRES
Resonance Capacitor
45
pF
EEEN
EEPROM endurance
EERET
EEPROM retention
5.5
ILC=1mA (1)
ILC=30mA (1)
100 000
cycles
@ 125°C (4)
10
years
@ 125°C (5)
Note(s) and/or Footnote(s):VP_IO=1.8V, Temperature 25°C unless noted otherwise
1. I LC is the current flowing through LC1 and LC2 pins
2. Internal supply current measured over VP_IO pin, by forcing internal digital supply to 2.0V, and applying 13.56 MHz alternative
pulses with amplitude 3.0Vpp to LC1 and LC2.
3. 1.6V is set in Power Mode 2 only.
4. See Figure 11.
5. See Figure 12.
Page 10
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Electrical Characteristics
Figure 11:
EEPROM Endurance Over Temperature
Endurance EEPROM
2,500,000
Number of Cycles
2,000,000
1,500,000
1,000,000
500,000
0
-40
-30
-20
-10
0
10
20
30
40
50
60
70
80
90
100 110 120 130
Temperature [°C]
Figure 12:
EEPROM Data Retention Over Temperature
Data retention EEPROM
10,000
data retention [years]
1,000
100
10
1
0
25
50
75
100
125
150
Temperature [°C]
ams Datasheet
[v1-01] 2015-Apr-29
Page 11
Document Feedback
AS3955 − Detailed Description
Detailed Description
Analog Frontend (AFE)
The AFE is connected to external tag coil, which together with
the integrated resonant capacitor forms an LC tank resonating
at the external electromagnetic field frequency (13.56 MHz).
Figure 13 depicts the main AFE building blocks.
Figure 13:
PICC AFE Block Diagram
VP_REG
RECTIFIER
VREC
VP_INT
EXTERNAL
REGULATOR
INTERNAL
REGULATOR
LIMITER
LC1
MODULATOR
SWITCH
BIAS
HF
PON
NFC Type 2
Tag Logic
LC2
DEMODULATOR
CLOCK
EXTRACTOR
Rectifier extracts DC power supply from the AC voltage
induced on coil terminals.
Limiter limits the maximum voltage on coil terminals to protect
AFE from destruction. At voltages that exceed limiter voltage it
starts to absorb current (acts as some sort of shunt regulator).
Modulator Switch is used for communication the NFC tag to a
NFC device. When switched on it will draw current from coil
terminals. This mechanism is called load modulation. Variation
of current in the modulator switch (ON and OFF state) is seen
as modulation by the NFC device.
Page 12
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
Demodulator is used for communication NFC device to NFC
tag. It detects AM modulation of the NFC device magnetic field.
The demodulator is designed to accept modulation according
to NFC-A specifications ([NFC Analog] [NFC Digital]).
Clock Extractor extracts a digital clock signal from the PCD
carrier field frequency which is used as clock signal by logic
blocks.
HF_PON enables operation of the AFE and the logic when the
supply voltage is sufficiently high. A buffer capacitor and
HF_PON hysteresis guarantee that there is no reset during NFC
device modulation.
Internal Regulator provides regulated voltage VP_INT to the
AFE and in most cases also to EEPROM and logic blocks. Typical
regulated voltage VP_INT is 2.0V. A buffer capacitor is also
integrated.
External Regulator provides regulated voltage on external pin
VP_REG where it can be used to supply some external circuitry.
The regulated voltage and output resistance can be adjusted
using EEPROM settings. Appropriate external buffer capacitor
is needed in case VP_REG is used in the application. Current
which may be provided depends on reader field strength,
antenna size and Q factor, but it is limited to maximum 5mA.
Bias provides bias currents and reference voltages to AFE
analog blocks.
Power Management
AS3955 power management comprises of four different modes
to fit requirements of different applications. AS3955 supports
two power sources, whose activation depends on the selected
power mode.
Power Mode 0
In this power mode, the Power Manager is controlling the
supply of the PICC Logic, EEPROM and SPI / I²C Interface (VDD).
Its inputs are VP_INT (rectified and regulated supply extracted
from RF field) and the VP_IO (supplied by external battery).
In standby mode, when AS3955 is not in the RF field (the
condition is that rectified supply voltage is below HF_PON
threshold) and the SPI / I²C is not active (/SS is high), the VDD
supply is disconnected. The only current consumption in this
state is leakage on VP_IO, mainly due to level shifters and SPI /
I²C pins.
When AS3955 is placed in a RF field, VDD is connected to VP_INT.
This happens once the VP_INT level is above the HF_PON
threshold.
ams Datasheet
[v1-01] 2015-Apr-29
Page 13
Document Feedback
AS3955 − Detailed Description
VP_IO is connected to VDD only when AS3955 is not in the RF
field (rectified supply voltage is below HF_PON threshold) and
the SPI / I²C interface is activated by pulling /SS signal low. The
switch to VP_IO is controlled by /SS signal. The deactivation is
delayed by 0.7ms minimum, so that the switch shall stay closed
in case of shorter times between successive SPI / I²C activations.
The switch is also closed during EEPROM writes activated over
SPI / I²C.
At activation of the switch, the time between the falling edge
of the /SS signal and rising edge of SCLK shall be at least 300μs
to allow charging of internal VDD buffer capacitor, expiration
of POR signal and to perform a complete IC initialization. Please
note that the only SPI / I²C operations, which are allowed in this
mode, are read and write of EEPROM and registers.
If the RF filed is lost during operation and the external system
(MCU) is supplied over battery and /SS is low then power
manager will automatically connect the VDD to VP_IO.
To enable low power mode where tag consumes less than 1uA
at room temperature following conditions must be met:
• SPI interface configured
• All SPI interface input lines (including /SS) must be set to
high
• All SPI output lines must be open
Figure 14:
Power Manager Concept
Page 14
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
Power Mode 1
AS3955 is fully supplied by RF field. AS3955 checks if Extended
or Tunneling mode are enabled. In this case, VP_REG supplies
the system (SPI / I²C pads, pull-ups, MCU), otherwise energy
harvesting is turned off and VP_REG is set in tristate.
Such power mode can be used in battery-less systems where
the system is fully powered by the RF field. In such
configuration, the VP_REG output pin for energy harvesting and
VP_IO input supply shall be externally connected. Battery, even
when present, will not be involved.
If this power mode is enabled and neither tunneling nor
extended mode are enabled, rreg value from
IC Configuration Register 1 will be forced to zero. This will
disable energy harvesting.
Power Mode 2
In this case, the external supply is used to provide power to
digital blocks, EEPROM, SPI / I²C pads and MCU. External supply
VP_REG is not used. Since this mode can be enabled only after
initialization of the chip, the /SS line must be either
permanently set to low or pulled low for short time (400μs) to
complete the initialization.
This mode is specifically designed to operate with AS392x
products (ams’ Active Boost). In this mode, the HF_PON
threshold of the chip will be decreased so that it will operate
with external voltage on LC pin in the range of 2.7-3.6Vpp.
If this mode is enabled, AS3955 will not be turned off as long
as there is an external supply present.
Power Mode 3
In this case the external supply shall be used to provide power
to digital blocks, EEPROM, SPI / I²C pads and MCU. External
supply VP_REG is not used. Since this mode can be enabled only
after initialization of the chip, the /SS line must be either
permanently set to low or pulled low for short time to complete
the initialization.
In this mode, the HF_PON threshold of the chip is set so that it
will operate with external voltage on LC pin in the range of
4.1-5Vpp.
If this mode is enabled, AS3955 will not be turned off as long
as there is an external power present.
Interface Arbitration
Concurrent access to AS3955 internal EEPROM from RF or SPI /
I²C requires arbitration, to resolve conflicts or undesired
behaviour.
AS3955 implements two arbitration modes, which can be set in
Configuration Byte IC_CFG0.
ams Datasheet
[v1-01] 2015-Apr-29
Page 15
Document Feedback
AS3955 − Detailed Description
Arbitration Mode 0
AS3955 arbitrates EEPROM write accesses according to
first-come-first-serve principle.
• In case no write access is currently ongoing, both RF and
SPI / I²C interfaces are allowed to write into EEPROM.
• In case a write request comes over RF, while SPI / I²C is
writing, AS3955 will return a NAK.
• In case a write request comes over SPI / I²C while RF is
writing, AS3955 will trigger a I_err_acc interrupt (see
Figure 92).
Arbitration Mode 1
AS3955 gives always priority to RF accesses. In this mode,
AS3955 behaves over RF as a pure contactless tag.
• In case SPI / I²C is performing a EEPROM write while the
RF field is turned on, the write operation is interrupted to
allow the initialization of the RF communication
• In case the RF field is already on and SPI / I²C performs a
write to EEPROM and a READ or WRITE command is
received via RF, the write operation of SPI / I²C is
interrupted so that the RF operation can be performed
In both cases, a I_err_acc interrupt (see Figure 92) will be
triggered.
Please note that the interruption of an EEPROM write may result
in an undefined or “weak” state for the cell being programmed,
and a second successful write attempt is suggested.
Energy Harvesting
AS3955 has energy harvesting capability. The regulated voltage
output pin for energy harvesting is VP_REG. The energy
harvesting is enabled only in Power Mode 1 and 2. The output
voltage and resistance can be set by Configuration Byte
IC_CFG1.The energy harvesting can be disabled by setting the
output resistance register to 0 as shown in Figure 15.
Figure 15:
Output Resistance Settings
rreg<1:0>
Output Resistance
Comment
00b
X
Disabled – output pin
is in tristate
01b
100Ω
10b
50Ω
11b
25Ω
Figure 15 shows settings of the regulated voltage output. The
output can be set between 1.8V and 4.5V in 100mV step.
Page 16
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
Figure 16:
Regulated Voltage Output Settings
vreg<4:0>
Output Voltage
Abs. Accuracy
00000b
1.8V
00001b
:
:
Step 100mV
±20mV
Linearly increasing
over range
11011b
4.5V
±225mV
±115mV
Silent Mode
The Silent mode enables detection of the power status of a
circuit whose supply (Vdd) is connected to VP_IO pin. If this
mode is enabled and the voltage measured on pin VP_IO is
below the configured threshold value, the RF part of AS3955
will be disabled, and the IC will not be responsive to incoming
commands. Silent mode settings can be performed by using
Configuration Byte IC_CFG0.
This feature overcomes a potentially inconsistent behavior in a
battery powered system, where a passive NFC tag can always
communicate with a NFC device, also in case the battery is not
sufficiently charged to supply the rest of the system. A typical
example is when the NFC tag is used for Bluetooth pairing:
AS3955 would trigger a pairing procedure only in case the
system is fully operational by monitoring the supply voltage.
Memory Protection
AS3955 internal memory can be protected from unauthorized
access by enabling password authentication. A 32-bit password
can be set to protect the full user memory, or part of it, to allow
the creation of a public data and a private data area. Password
protection can be applied for read and write accesses.
Password authentication is performed through a standard
WRITE command to the Authentication Password block. A
maximum of 7 negative attempts are permitted before the chip
is locked. Once authenticated, the user can modify the
password.
Password protection applies to RF communication only.
Further information on how to handle password authentication
can be found in Authentication Password, Configuration Byte
AUTH_CFG, Configuration Byte AUTH_CNT and Configuration
Byte AUTH_LIM.
ams Datasheet
[v1-01] 2015-Apr-29
Page 17
Document Feedback
AS3955 − Detailed Description
Passive Wake-Up
AS3955 is able to operate NFC tag operations standalone and
fully powered by the RF field. The connected MCU can remain
is standby/sleep mode as long as its intervention is not required
by the application, in order to save power. AS3955 can be
configured to notify the MCU through a wake-up interrupt.
A number of triggering events can be selected, e.g.:
• Power up
• SELECTED state entered
• Reception of SLP_REQ command
• NFC device has updated memory content
For a complete interrupt source list, please refer to the section
Interrupt Registers.
Chip Kill
Some applications require that the RF link is active only under
certain conditions, e.g. during device configuration only in a
controlled environment like a production facility.
AS3955 can be configured by the MCU in order to restrict the
NFC device access to the system. By setting the Configuration
Byte CHIP_KILL in EEPROM, the MCU can disable access to
SPI / I²C from the RF link (i.e. Tunneling and Extended mode are
permanently disabled), or even disable RF communication
completely. In the latter case, AS3955 will not respond to
incoming RF commands.
This configuration can be modified only by the MCU through
SPI / I²C interfaces.
Page 18
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
NFC Tag Functionality
Communication Principle
AS3955 autonomously executes complete NFC-A anti-collision
communication sequence, during which the 7-byte UID is used
([NFC Analog] [NFC Digital]). After anti-collision, the NFC tag is
brought into SELECTED state where read and write commands
can be processed. The NFC tag will accept only read and write
command issued to the address space actually available in
AS3955 EEPROM. Any attempt to access an address outside the
internal memory address space will be rejected. This default
behavior of the NFC tag can be modified by enabling Tunneling
or Extended mode.
A simplified AS3955 state diagram is shown in Figure 17.
Figure 17:
AS3955 State Diagram
POWER OFF
(RF field off)
Reset
SLEEP
SENSE
SENS_REQ
ALL_REQ
ALL_REQ
RESOLUTION
ANTI-COLLISION
SLP_REQ
SEL_REQ
SLP_REQ
SELECTED
READ (16 bytes)
WRITE (4 bytes)
GET VERSION
WRITE
Authentication Password
AUTHENTICATED
ams Datasheet
[v1-01] 2015-Apr-29
READ (16 bytes)
WRITE (4 bytes)
GET VERSION
Page 19
Document Feedback
AS3955 − Detailed Description
SENSE State
After a power-on reset (POR), AS3955 switches to the SENSE
state. This state is exited when a SENS_REQ or an ALL_REQ
command is received from the NFC device. Any other data
received while in this state is interpreted as an error and AS3955
remains in SENSE state.
When in SELECTED or AUTHENTICATED state, a correctly
executed SLP_REQ command will modify the default waiting
state from SENSE to SLEEP state. SLEEP state can be exited when
an ALL_REQ command is received.
SLEEP State
Together with SENSE state, SLEEP state is the other waiting state
for AS3955. SLEEP state can be entered upon reception of a
SLP_REQ command. The distinction between SENSE and SLEEP
state is made necessary to discriminate selected and not yet
selected tags.
AS3955 can only exit this state upon reception of an ALL_REQ
command. Any other command received in this state is
interpreted as an error and AS3955 state remains unchanged.
RESOLUTION State
In RESOLUTION state, the NFC device is resolving the tag UID.
Since AS3955 has a double size UID, the RESOLUTION state
actually comprises of two sub-states, where the anti-collision
procedure is carried out in Cascade Level 1 and 2. Please refer
to [ISO18092] for further information.
SELECTED State
All memory operations are operated in SELECTED state.
Upon reception of a SLP_REQ command, SELECTED state is
exited and AS3955 transits to SLEEP state. Any other command
received when the device is in this state is interpreted as an
error. Depending on its previous state, AS3955 returns to either
SENSE or SLEEP state.
Upon reception of a SECTOR SELECT command, AS3955 returns
a NAK and transits to SENSE or SLEEP state, depending on its
previous state.
AS3955 transits to the AUTHENTICATED state after successful
password verification, using a standard WRITE command to a
dedicated memory address (see Authentication Password). The
number of permitted failed authentications is set to 7, after
which AS3955 transits to LOCKED sub-state (not shown in the
picture). When LOCKED state is entered, only the MCU can bring
AS3955 back to SENSE state by resetting the authentication
counter (Configuration Byte AUTH_CNT) back to 0 and issue a
Set Default, or Go To Sense, or Go To Sleep command.
When in LOCKED sub-state, all memory operations are only
allowed in the memory area not password protected, as defined
by the configuration byte Configuration Byte AUTH_LIM.
Page 20
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
Upon reception of a SLP_REQ command, SELECTED state is
exited and AS3955 transits to SLEEP state.
Any other command received when the device is in this state is
interpreted as an error and, depending on its previous state,
AS3955 returns to either SENSE or SLEEP state.
AUTHENTICATED State
In this state, all operations on memory blocks, which are
configured as password verification protected, can be
performed.
Upon reception of a SECTOR SELECT command, AS3955 returns
a NAK and transits to SENSE or SLEEP state, depending on its
previous state.
IUpon reception of a SLP_REQ command, AUTHENTICATED
state is exited and AS3955 transits to SLEEP state.
Any other command received when the device is in this state is
interpreted as an error and, depending on its previous state,
AS3955 returns to either SENSE state or SLEEP state.
NFC Forum Type 2 Tag Support
NFC Forum NFC-A commands ALL_REQ, SENS_REQ, SDD_REQ,
SEL_REQ, SLP_REQ are required for anti-collision. Commands
READ and WRITE are used for internal memory access. If NFC
device issues a SECTOR SELECT command, AS3955 shall always
reply with NAK.
Figure 18:
NFC-A vs ISO14443 Terminology
NFC-A Term
ISO14443 Term
States
SENSE
IDLE
SLEEP
HALT
RESOLUTION
READY
SELECTED
ACTIVE
Commands / Responses
ams Datasheet
[v1-01] 2015-Apr-29
SENS_REQ
REQA
ALL_REQ
WUPA
SENS_RES
ATQA
SSD_REQ
AC
SEL_REQ
SELECT
SLP_REQ
HLTA
Page 21
Document Feedback
AS3955 − Detailed Description
UID Coding
Anti-collision procedure is based on the Unique Identification
Number (UID). AS3955 supports double size UID (7 bytes). First
three bytes of the UID are hardwired inputs to the PICC Logic
(uid<23:0>). The last 4 bytes of the UID are stored in EEPROM
UID block.
First UID Byte (uid0)
The first byte of UID is Manufacturer ID according to
[ISO7816-6]. It is coded on bits uid<7:0>. ams IC Manufacturer
ID is 3Fh.
Second UID Byte (uid1)
The second byte of UID (uid<15:8>) is reserved for ams’ chip
type (IC Type). Every ams’ RFID tag IC has its own chip type
assigned. AS3955 IC type is 14h.
Third UID Byte (uid2)
The third byte of UID (uid<23:16>) is set to 00h.
Figure 19:
Coding of First Three UID Bytes
UID Byte
Value (Hex)
uid0
3F
uid1
14
uid2
00
Last Four UID Bytes (uid3-uid6)
The last 4 bytes of UID are read from EEPROM (UID block) and
pre-programmed during IC production. Those 4 bytes are
unique, and cannot be modified.
Figure 20:
Last Four UID Bytes
Page 22
Document Feedback
UID Byte
UID Block Bits
uid3
b7-b0
uid4
b15-b8
uid5
b23-b16
uid6
b31-b24
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
Coding of SENS_RES, SEL_REQ, ACK and NACK
Several bits in certain responses are defined as don’t-care in the
NFC-A standard [NFC Digital], some others are defined by
optional choices in standard protocol. This chapter defines how
these bits are actually set in AS3955.
SENS_RES Response
SENS_RES is a response on ALL_REQ and SENS_REQ commands.
The SENS_RES is defined by Configuration Bytes SENSR1 and
SENSR2 stored in EEPROM.
Figure 21:
Coding of SENS_RES Response
b15
b14
b13
b12
b11
b10
b9
b8
b7
b6
b5
b4
SENSR2
b3
b2
b1
b0
SENSR1
SEL_RES Response, Cascade Level 1 and 2
SEL_RES is the response to SEL_REQ command. Since AS3955
UID is double sized, SEL_RES responses for Cascade Level 1 and
Cascade Level 2 are defined. SEL_RES on Cascade Level 1 and 2
is defined with Configuration Byte SELR except for cascade bit
3. The response on Cascade Level 2 is also configured by
selr_b6_inv bit which, when set, inverts cascade bit 6 in SEL_RES
response on Cascade Level 2 (see IC_CFG2).
Figure 22:
SEL_RES CL1 Coding
b8
MSB
b7
b6
b5
b4
sel_res<7:3>
b3
b2
b1
LSB
1
sel_res<1:0>
b4
b3
Description
Cascade bit set: UID not complete
Figure 23:
SEL_RES CL2 Coding
b8
MSB
b7
b6
b5
b2
b1
LSB
sel_res<5>
sel_res<7:6>
selr_b6_inv set to 0
sel_res<4:3>
NOT sel_res<5>
Description
0
sel_res<1:0>
selr_b6_inv set to 1
Note(s) and/or Footnote(s):
1. According to [ISO14443-3], all bits except b3 are “don’t care” for Cascade Level 1, and all bits except b6 and b3 are “don’t care” for
Cascade Level 2. Bit b6 in CL2 indicates whether the tag is compliant to [ISO14443] or not (resp. b6=1 and b6=0). In case of applications
requiring EMVCo compliance, bit b6 in Cascade Level 1 shall be set as bit b6 in Cascade Level 2 ([EMVCO-1]).
ams Datasheet
[v1-01] 2015-Apr-29
Page 23
Document Feedback
AS3955 − Detailed Description
ACK Response
The ACK response of AS3955 is a 4-bit value Ah.
NACK Response
The AS3955 uses all four combinations of NAK values. The usage
of various NAK values is explained in section Error Handling.
Access to UID, SENS_RES and SEL_REQ During
Anti-Collision
UID block, SENSR1, SENSR2 and SELR bytes are stored in a buffer.
The purpose of storing these data into the buffer is faster access
to the data and UID verification during the anti-collision
procedure. Buffer access over SPI / I²C is locked until NFC tag
enters SELECTED state.
Get Version Command
In addition to standard NFC tag commands, AS3955 supports a
custom Get Version command. This command consists of 8 bits
and shall be transmitted only in standalone and Extended mode
when the tag is SELECTED state. The command code and the
tag response are shown resp. in Figure 24 and Figure 25.
Figure 24:
Coding of Get Version Command
Page 24
Document Feedback
b8
b7
b6
b5
b4
b3
b2
b1
0
1
1
0
0
0
0
0
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
Figure 25:
Response to Get Version Command
Byte No.
Description
Comment
0
Fixed Header
00h
1
Vendor Id
3Fh
ams AG
2
Product Type
14h
AS395x
3
Product Subtype
01h
AS3955
4
Major Product Version
01h
1
5
Minor Product Version
00h
V0
6
Storage Size
7
Supported Features
15h
17h
see note (1)
01h or 02h
see note (2)
Note(s) and/or Footnote(s):Notes:
1. The most significant 7 bits of the storage size byte are interpreted as an unsigned integer value n. As a result, it codes the total
available user memory size as 2 n. If the least significant bit is 0b, the user memory size is exactly 2n . If the least significant bit is 1b,
the user memory size is between 2n and 2n+1.
The user memory is the memory available for user data (Capability Container and lock bits are excluded)
2. The figure below is maintained consistently across the whole AS395x family, where Get Version command is supported.
Figure 26:
Get Version Response, Byte 7
Get Version
Byte No. 7
Description
b7
b6
b5
b4
00000b: ISO14443A Level 3 supported, max
baudrate 106 kbps, Tunneling and
Extended mode present, Password
protection available, energy
harvesting available
Others: RFU
b3
b2
b1
000b: No wired interface available
001b: SPI slave, passive wake-up available
010b: I²C slave, passive wake-up available
b0
ams Datasheet
[v1-01] 2015-Apr-29
Page 25
Document Feedback
AS3955 − Detailed Description
Memory Organization
AS3955 contains an embedded EEPROM module which can be
accessed via RF or SPI / I²C interface. EEPROM contains 4096 bits
(512 bytes) organized in 128 blocks of 4 bytes each. Blocks in
EEPROM are numbered from 00h to 7Fh. Bits in a block are
numbered from 0 to 31.
Most of the EEPROM is NFC Type 2 Tag user data area (472 bytes).
The position of the dynamic lock bits is fixed at the end of NFC
Type 2 Tag user data area (blocks 7Ah and 7Bh). The
configuration bits which define AS3955 operating options are
stored in blocks 01h, 7Ch, 7Dh, 7Eh, 7Fh. Housekeeping
information is stored in block 00h. 4kbit EEPROM organization
is shown in Figure 27.
AS3955 is also available in 2kbit version. In this case the data
area is reduced to 216 byte. AS3955 internal user memory
implements static and dynamic lock bits according to NFC
Forum Type 2 Tag standard. Configuration and lock bits, as well
as the full 2kbit EEPROM organization, are shown in Figure 28.
4kbit EEPROM Organization
Numbers of dynamic lock bits:
• Data area size in bytes:
4*(127 – 3) – 7 – 17 = 472 bytes
• Number of dynamic lock bits:
(472 – 48) / 8 = 53 bits (53 bits)
Page 26
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
Figure 27:
4kbit EEPROM Organization
Byte Number in Block
Block
0
1
2
3
Description
Access
00h
UID0
UID1
UID2
UID3
UID / Internal
RO
01h
FAB_CFG0
FAB_CFG1
FAB_CFG2
FAB_CFG3
Fabrication data
RO
02h
Internal 8
Internal 9
Lock 0
Lock 1
Internal / Lock
OTP
03h
CC 0
CC 1
CC 2
CC 3
CC
OTP
04h
Data 0
Data 1
Data 2
Data 3
Data
RW
05h
Data 4
Data 5
Data 6
Data 7
Data
RW
06h
Data 8
Data 9
Data 10
Data 11
Data
RW
Data
RW
07h
:
:
79h
7Ah
Lock 2
Lock 3
Lock 4
Lock 5
Lock
OTP
7Bh
Lock 6
Lock 7
Lock 8 (1)
Reserved 0
Lock / Reserved
OTP
7Ch
RFP0
RFP1
RFP2
RFP3
Authentication
password
RW
7Dh
CHIP_KILL
AUTH_CNT
AUTH_LIM
AUTH_CFG
Authentication
settings
RW
7Eh
SENSR1
SENSR2
SELR
IC_CFG0
Config. block 0
RW
7Fh
IC_CFG1
IC_CFG2
MIRQ_0
MIRQ_1
Config. block 1
RW
Note(s) and/or Footnote(s):
1. Bits that are not used should be set to 0.
Access properties:
RO: Read only, writing to this word is not possible
RW: Reading and writing to this word is possible
OTP: One time programmable. A bit of this word once set to 1 cannot be set back to 0.
ams Datasheet
[v1-01] 2015-Apr-29
Page 27
Document Feedback
AS3955 − Detailed Description
2kbit EEPROM Organization
Numbers of dynamic lock bits:
• Data area size in bytes:
4*(63 – 3) – 3 – 21 = 216 bytes
• Number of dynamic lock bits:
(200 – 48) / 8 = 21 bits (21 bits)
Figure 28:
2kbit EEPROM Organization
Byte Number in Block
Block
0
1
2
3
Description
Access
Byte number in block
Block
0
1
2
3
Description
Access
00h
UID0
UID1
UID2
UID3
UID / Internal
RO
01h
FAB_CFG0
FAB_CFG1
FAB_CFG2
FAB_CFG3
Fabrication data
RO
02h
Internal 8
Internal 9
Lock 0
Lock 1
Internal / Lock
OTP
03h
CC 0
CC 1
CC 2
CC 3
CC
OTP
04h
Data 0
Data 1
Data 2
Data 3
Data
RW
05h
Data 4
Data 5
Data 6
Data 7
Data
RW
06h
Data 8
Data 9
Data 10
Data 11
Data
RW
Data
RW
07h
:
:
39h
3Ah
Lock 2
Lock 3
Lock 4
Lock 5
Lock
OTP
3Bh
Lock 6
Lock 7
Lock 8 (1)
Reserved 0
Lock / Reserved
OTP
3Ch
RFP0
RFP1
RFP2
RFP3
Authentication
password
RW
3Dh
CHIP_KILL
AUTH_CNT
AUTH_LIM
AUTH_CFG
Authentication
settings
RW
3Eh
SENSR1
SENSR2
SELR
IC_CFG0
Config. block 0
RW
3Fh
IC_CFG1
IC_CFG2
MIRQ_0
MIRQ_1
Config. block 1
RW
Note(s) and/or Footnote(s):
1. Bits that are not used should be set to 0.
Access properties:
RO: Read only, writing to this word is not possible
RW: Reading and writing to this word is possible
OTP: One time programmable. A bit of this word once set to 1 cannot be set back to 0.
Page 28
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
UID Bytes
The UID block contains four LSB bytes of the 7-byte UID which
is used during anti-collision and selection process. Every IC is
programmed by a unique number during fabrication process at
ams. See UID Coding about details on UID.
This block stores some IC manufacturer data which is
programmed and locked during fabrication process at ams.
UID is treated as IC internal configuration, and is permanently
locked during IC production.
Fabrication Data
Fabrication data are used to set internal configuration and
trimming values. They are treated as IC internal configuration.
Fabrication Data FAB_CFG0
Figure 29:
Fabrication Data FAB_CFG0
Conf. Bit
Name
Default
b7
0
b6
0
b5
0
b4
0
b3
0
b2
0
b1
0
b0
0
Function
Note
Internal configuration
Note(s) and/or Footnote(s):
1. This byte can be set only during production.
ams Datasheet
[v1-01] 2015-Apr-29
Page 29
Document Feedback
AS3955 − Detailed Description
Fabrication Data FAB_CFG1
Figure 30:
Fabrication Data FAB_CFG1
Conf. Bit
Name
Default
b7
fdel<3>
0
b6
fdel<2>
0
b5
fdel<1>
0
b4
fdel<0>
0
b3
osct<1>
0
b2
osct<0>
0
b1
decc<1>
0
b0
decc<0>
0
Function
Note
PCD to PICC frame delay time compensation;
frame compensation defined as fdel*1/fc
Oscillator trimming bits
Decoder compensation register
Note(s) and/or Footnote(s):
1. This byte can be set only during production.
The fdel bits define frame delay time (FDT) adjustment and
represent a time compensation in number of clocks of carrier
frequency. The osct bits are trimming bits for the internal
oscillator.
Fabrication Data FAB_CFG2
Figure 31:
Fabrication Data FAB_CFG2
Conf. Bit
Name
Default
Function
Note
b7
test_mode
0
b6
mod_r
0
1: decreased modulator switch resistance
b5
miso_pd2
0
1: pull down on MISO, when \SS is low and
MISO is not driven by the AS3955
b4
miso_pd1
0
1: pull down on MISO when \SS is high
b3
rfu
0
b2
rfu
0
b1
rfu
0
b0
rfu
0
Note(s) and/or Footnote(s):
1. This byte can be set only during production.
Page 30
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
Fabrication Data FAB_CFG3
Figure 32:
Fabrication Data FAB_CFG3
Conf. Bit
Name
b7
uid_crc<7>
b6
uid_crc<6>
b5
uid_crc<5>
b4
uid_crc<4>
b3
uid_crc<3>
b2
uid_crc<2>
b1
uid_crc<1>
b0
uid_crc<0>
Default
Function
Note
CRC value calculated on UID
Note(s) and/or Footnote(s):
1. This byte can be set only during production.
Reserved Bytes
The reserved bytes belong to reserved memory areas.
OTP Blocks
Write and Read Lock blocks are OTP (One Time Programmable).
This means that once they are set to 1, they cannot be set back
to 0. Since setting OTP bits is an irreversible operation, it is
strongly recommended to perform this operation in controlled
environment.
Lock Bits
The bits of byte 2 and 3 of block 02h represent the
field-programmable read-only locking mechanism called
“static lock bytes”. They are called static because their position
in memory is fixed.
When data memory is larger than 16 blocks (64 bytes), also
“dynamic lock bytes” are required. They are located starting at
address 7Ah (4kbit version) and address 3Ah (2kbit version).
Block lock granularity is 1 block per bit for the first 16 blocks, 2
blocks per bit for the remaining blocks.
Lock bits are OTP, i.e. setting bits to 1b is an irreversible
operation. Bits at 0b can be set to 1b through a WRITE operation,
the result being a bit-wise OR with the current value.
ams Datasheet
[v1-01] 2015-Apr-29
Page 31
Document Feedback
AS3955 − Detailed Description
Lock bits apply only to RF interface, as SPI / I²C interface has
unlimited access to user data area.
• Lock 0 byte locks 8 blocks starting from address 00h where
lock bit 0 locks block on address 00h
• Lock 1 byte locks 8 blocks starting from address 08h where
lock bit 0 locks block on address 08h
• Lock 2 byte locks 16 blocks starting from address 10h
where lock bit 0 locks block on address 10h and 11h
• Lock 3 byte locks 16 blocks starting from address 20h
where lock bit 0 locks block on address 20h and 21h
• Lock 4 byte locks 16 blocks starting from address 30h
where lock bit 0 locks block on address 30h and 31h
• Lock 5 byte locks 16 blocks starting from address 40h
where lock bit 0 locks block on address 40h and 41h
• Lock 6 byte locks 16 blocks starting from address 50h
where lock bit 0 locks block on address 50h and 51h
• Lock 7 byte locks 16 blocks starting from address 60h
where lock bit 0 locks block on address 60h and 61h
• Lock 8 byte locks 16 blocks starting from address 70h
where lock bit 0 locks block on address 70h and 71h
Figure 33:
Example of Lock Bits
Lock 0 byte
b7
b6
b5
b4
b3
Lock 1 byte
b2
b1
b0
b7
b6
b5
locks block
07h
06h
05h
04h
03h
b4
b3
b2
b1
b0
0Ah
09h
08h
locks block
02h
01h
00h
0Fh
0Eh
0Dh
0Ch
0Bh
Capability Container
Block 03h in AS3955 EEPROM contains the Capability Container
(CC), pre-programmed during IC production according to NFC
Forum Type 2 Tag specifications [T2T]. CC bits are OTP, i.e.
setting bits to 1b is an irreversible operation. Bits at 0b can be
set to 1b through a WRITE operation, the result being a bit-wise
OR with the current value.
Figure 34 and Figure 35 show the Capability Container content
at delivery.
Figure 34:
CC Content at Delivery (4kbit Option)
Byte number in block
Block address
0
1
2
3
03h
E1h
10h
3Bh
00h
Page 32
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
Figure 35:
CC Content at Delivery (2kbit Option)
Byte number in block
Block address
0
1
2
3
03h
E1h
10h
1Bh
00h
Configuration Bytes
The Configuration bytes are used to define AS3955 operating
options. AS3955 is delivered by ams with default settings.
Authentication Password
The Authentication password block (bytes RFP0, RFP1, RFP2,
and RFP3) contains the 32-bit password. This password is used
for authentication over RF side. The NFC tag is set into
AUTHENTICATED state when a write command is issued via the
RF to write password address with the data that has same
content as the data stored in Authentication password block. If
the NFC tries to authenticate with a wrong password, AS3955
shall not respond and returns into SENSE / SLEEP state and the
value of the AUTH_CNT is decreased.
The password can be overwritten via RF only in
AUTHENTICATED state and can always be set via SPI / I²C.
Configuration register AUTH_CFG defines access rights
controlled by the password. The RF password can’t be read via
RF.
The authentication for read or write is required only to the
memory portion defined by AUTH_LIM. The chip is no longer in
AUTHENTICATED state when the tag leaves SELECTED state.
An attempt to read the password block will return zeroes. The
authentication does not override permissions set by the lock
bits. Authentication also does not restrict access over SPI / I²C
in any way.
Authentication can be configured using configuration bits in
AUTH_CFG and AUTH_LIM bytes.
ams Datasheet
[v1-01] 2015-Apr-29
Page 33
Document Feedback
AS3955 − Detailed Description
Configuration Byte CHIP_KILL
Figure 36:
Configuration Byte CHIP_KILL
Conf. Bit
Name
Default
Function
b7
chip_kill_2
0
1: Tunneling and Extended mode are disabled
b6
chip_kill_1
0
1: RF communication part is disabled
b5
rfu
0
b4
rfu
0
b3
rfu
0
b2
rfu
0
b1
rfu
0
b0
rfu
0
Note
Note(s) and/or Footnote(s):
1. This byte can always be accessed for read and write via the SPI / I²C and can’t be accessed for read and write from the RF side.
By setting CHIP_KILL byte the RF communication part of the
chip or Tunneling and Extended mode will be disabled
permanently. At its initial state, the CHIP_KILL byte is set to
value 00h. The value of this byte can be changed via SPI / I²C. If
bit b6 is set to value 1, the RF part of the chip shall be disabled
and AS3955 will not respond to any command received from a
NFC device. By setting bit b7 to 1, Tunneling and Extended
mode will be disabled.
Page 34
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
Configuration Byte AUTH_CNT
Figure 37:
Configuration Byte AUTH_CNT
Conf. Bit
Name
Default
b7
rfu
0
b6
auth_cnt2<2>
1
b5
auth_cnt2<1>
1
b4
auth_cnt2<0>
1
b3
rfu
0
b2
auth_cnt1<2>
1
b1
auth_cnt1<1>
1
b0
auth_cnt1<0>
1
Function
Note
Authentication counter 2
Authentication counter 1
Note(s) and/or Footnote(s):
1. This byte can always be accessed for read and write via the SPI / I²C and can’t be accessed for read and write from the RF side.
This byte indicates the number of allowed unsuccessful
authentication attempts over RF available before disabling the
chip. The byte consists of two separate counters where the
second counter is a copy of the first counter.
These counters are updated at each failed authentication. At
each successful authentication, counters are reset to 7 and, at
each unsuccessful authentication attempt, counters are
decreased by one. If the value of the counters reaches 0, the
chip will be permanently locked and cannot be authenticated
any longer over the RF field. The chip will also be locked in case
the two counter values don’t match. The lock can always be
cleared via SPI / I²C interface.
ams Datasheet
[v1-01] 2015-Apr-29
Page 35
Document Feedback
AS3955 − Detailed Description
Configuration Byte AUTH_LIM
Figure 38:
Configuration Byte AUTH_LIM
Conf. Bit
Name
Default
b7
auth_lim<7>
1
b6
auth_lim<6>
1
b5
auth_lim<5>
1
b4
auth_lim<4>
1
b3
auth_lim<3>
1
b2
auth_lim<2>
1
b1
auth_lim<1>
1
b0
auth_lim<0>
1
Function
Note
AUTH_LIM defines the block address above
which password verification is required.
Note(s) and/or Footnote(s):
1. This byte can always be accessed for read and write via SPI / I²C and can be accessed for read and write from the RF side if chip is in
AUTHENTICATED state and configuration bit auth_set is 1.
AUTH_LIM defines the block address above which password
verification is required. Valid address range for the AUTH_LIM
byte is from 00h to FFh. If AUTH_LIM is set to a block address
higher than the last block of the EEPROM address space, the
password protection is effectively disabled. Addresses above
the limit are protected for read / write depending on auth_r and
auth_w values. If no bits are set, password protection is
disabled.
If the NFC device tries to access protected blocks without
authenticating first, then:
• If only protected blocks are accessed, AS3955 will not
respond
• If protected and unprotected blocks are accessed 1,
AS3955 will return actual stored values only for the
unprotected portion, and zeroes for the protected
portion.
1. This can occur, for instance, with a READ command crossing the border between protected and unprotected memory.
Page 36
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
Configuration Byte AUTH_CFG
Figure 39:
Configuration Byte AUTH_CFG
Conf. Bit
Name
Default
Function
b7
rfu
0
b6
rfu
0
b5
rfu
0
b4
rfu
0
b3
rfu
0
b2
rfu
0
b1
auth_w<1>
0
Authentication is required for writing
b0
auth_r<0>
0
Authentication is required for reading
Note
Note(s) and/or Footnote(s):
1. This byte can always be accessed for read and write via SPI / I²C and can be accessed for read and write from the RF side if chip is in
AUTHENTICATED state and configuration bit auth_set is 1.
Bits auth_w and auth_r define for which operations the
authentication is needed. If a lock bit is set for a certain block,
then write cannot be performed even if IC is in AUTHENTICATED
state. This means that lock bits overrule authentication.
Configuration Byte SENSR1
Figure 40:
Configuration Byte SENSR1
Conf. Bit
Name
Default
b7
sens_res<15>
0
b6
sens_res<14>
0
b5
sens_res<13>
0
b4
sens_res<12>
0
b3
sens_res<11>
0
b2
sens_res<10>
0
b1
sens_res<9>
0
b0
sens_res<8>
0
Function
Note
SENS_RES response byte 2 on SENS_REQ
Note(s) and/or Footnote(s):
1. This byte can always be accessed for read and write via SPI / I²C and can be accessed for read and write from the RF side if rfcfg_en
is set to 1.
ams Datasheet
[v1-01] 2015-Apr-29
Page 37
Document Feedback
AS3955 − Detailed Description
Configuration Byte SENSR2
Figure 41:
Configuration Byte SENSR2
Conf. Bit
Name
Default
b7
sens_res<7>
0
b6
sens_res<6>
1
b5
sens_res<5>
0
b4
sens_res<4>
0
b3
sens_res<3>
0
b2
sens_res<2>
1
b1
sens_res<1>
0
b0
sens_res<0>
0
Function
Note
SENS_RES response byte 1 on SENS_REQ
Note(s) and/or Footnote(s):
1. This byte can always be accessed for read and write via SPI / I²C and can be accessed for read and write from the RF side if rfcfg_en
is set to 1.
Configuration Byte SELR
Figure 42:
Configuration Byte SELR
Conf. Bit
Name
Default
b7
sel_res<7>
0
b6
sel_res<6>
0
b5
sel_res<5>
0
b4
sel_res<4>
0
b3
sel_res<3>
0
b2
sel_res<2>
0
b1
sel_res<1>
0
b0
sel_res<0>
0
Function
Note
SEL_RES response on
Cascade Level 1/2
This bit is not used, as cascade bit 3 in
SEL_RES CL1 is fixed to 1, and to 0 in
SEL_RES CL2
Note(s) and/or Footnote(s):
1. This byte can always be accessed for read and write via SPI / I²C and can be accessed for read and write from the RF side if rfcfg_en
is set to 1.
Page 38
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
Configuration Byte IC_CFG0
Figure 43:
Configuration Byte IC_CFG0
Conf. Bit
Name
Default
b7
slnt_mod
0
b6
slnt_vl<2>
0
b5
slnt_vl<1>
0
b4
slnt_vl<0>
0
b3
arbit_mod
0
b2
i2c_addr3<2>
0
b1
i2c_addr2<1>
0
b0
i2c_addr1<0>
0
Function
Note
1: Enable silent mode
Silent mode voltage level (see Silent Mode)
1: RF has priority access to EEPROM over
SPI / I²C
I²C slave address
Note(s) and/or Footnote(s):
1. This byte can always be accessed for read and write via SPI / I²C and can be accessed for read and write from the RF side if rfcfg_en
is set to 1. Bit arbit_mod can be modified after initialization over SPI / I²C.
Bit slnt_mod enables Silent mode. In this mode, the supply pin
VP_IO is being observed. If voltage is below the level defined
in slnt_vl<2:0>, then Silent mode is activated. This means that
RF part of the IC is turned off and stops being responsive to
incoming RF commands.
Voltage threshold settings on VP_IO are shown in Figure 44.
Figure 44:
Silent Mode Threshold Voltage Levels
ams Datasheet
[v1-01] 2015-Apr-29
slnt_vl<2:0>
Voltage Threshold
Abs. Accuracy
000b
1.42V
±15mV
001b
1.62V
010b
1.82V
011b
2.23V
100b
2.53V
101b
2.74V
110b
3.04V
111b
3.65V
Linearly
increasing over
range
±25mV
Page 39
Document Feedback
AS3955 − Detailed Description
The voltage level of the supply on VP_IO is measured when tag
enters RF field. The selected voltage level threshold can be
properly measured only if the RF field is strong enough to
provide sufficient supply voltage level. When small antennas
are used, it is advisable to set lower threshold.
Bit arbit_mod defines arbitration mode during mutual EEPROM
access via SPI / I²C and RF side. If arbit_mod is set to 0, then the
EEPROM access follows the first-come-first-serve principle. If
arbit_mod is set to 1, then the RF part will always have higher
priority over SPI / I²C. For further details, please refer to section
Interface Arbitration.
The i2c_addr bits represent lower three bits of the I²C address.
The upper four bits of the I²C address that represent a group
shall be set to 1010b.
Configuration Byte IC_CFG1
Figure 45:
Configuration Byte IC_CFG1
Conf. Bit
Name
Default
b7
en_rx_crc
0
b6
vreg<4>
0
b5
vreg<3>
0
b4
vreg<2>
0
b3
vreg<1>
0
b2
vreg<0>
0
b1
rreg<1>
0
b0
rreg<0>
0
Function
Note
1: CRC stored in the buffer in the tunneling mode
Voltage level for voltage regulator VP_REG
(see Figure 16)
Output resistance value for voltage regulator VP_REG
(see Figure 15)
Note(s) and/or Footnote(s):
1. This byte can always be accessed for read and write via SPI / I²C and can be accessed for read and write from the RF side if rfcfg_en
is set to 1.
If bit en_rx_crc is set to 1 then the CRC shall be part of the
message in the buffer. This implies that maximum message
effective length is reduced to 30 bytes. CRC check is performed
regardless of the value of the en_rx_crc bit.
Page 40
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
Configuration Byte IC_CFG2
Figure 46:
Configuration Byte IC_CFG2
Conf. Bit
Name
Default
Function
b7
rfcfg_en
1
1: Enables personalization / configuration
over RF
b6
tun_mod
0
1: Enables Tunneling Mode
b5
ext_mod
0
1: Enables Extended Mode
b4
nak_on_crc_parity
0
1: Defines error handling and response
b3
auth_set
0
1: Configuration of the authentication
settings is enabled from RF side
b2
selr_b6_inv
0
1: Inverts bit 6 in SEL_RES response on
Cascade Level 2
b1
powm<1>
0
b0
powm<0>
0
00: Power Mode 0
01: Power Mode 1
Note
10: Power Mode 2
11: Power Mode 3
Note(s) and/or Footnote(s):
1. This byte can always be accessed for read and write via SPI / I²C and can be accessed for read and write from the RF side if rfcfg_en
is set to 1. Bits tun_mod and ext_mod represents a default value stored in a volatile memory which can be modified after initialization
over SPI / I²C.
Bit rfcfg_en enables the personalization process during
production at customer facilities. When this bit is set to 0, the
modification of the last two blocks is not possible anymore over
the RF field.
If auth_set is set then changing of authenticated setting
(authentication limits, read/write permission) is enabled over
the RF after successful authentication. Password can always be
changed via the RF side if tag is in authenticated state
regardless of the value of read/write bits.
Bit nak_on_crc_parity configures error handling mechanism as
described in Error Handling.
Bit selr_b6_inv configures SEL_RES response on Cascade Level
2. If selr_b6_inv is set to 1, bit b6 in SEL_RES response on Cascade
Level 2 will be inverted, otherwise it will be set as configured
in SELR byte.
Bits powm<1:0> are setting power modes as defined in Power
Management.
ams Datasheet
[v1-01] 2015-Apr-29
Page 41
Document Feedback
AS3955 − Detailed Description
Configuration Bytes MIRQ_0 and MIRQ_1
These two bytes define the default value of the volatile memory
for Mask Interrupt Register 0 and Mask Interrupt Register 1
registers. These bytes can always be accessed for read and write
via the SPI / I²C and can be accessed for read and write from the
RF side if rfcfg_en is set to 1.
AS3955 Communication Modes
AS3955 supports three different modes. The basic
communication mode is a standalone mode where AS3955 can
behave as a standalone NFC tag without MCU intervention. The
other two modes (Tunneling and Extended mode) represent
modification of the communication in SELECTED state. The
anti-collision process is the same for all three modes.
It is possible to change the mode of operation at any time.
In case Tunneling and Extended mode are both enabled,
Tunneling mode has priority over Extended mode.
Standalone NFC Type 2 Tag Mode
If neither of the two modes are enabled (Tunneling and
Extended mode) in IC Configuration Register 2, the tag is in
standalone mode. In this mode, all RF incoming commands
address the internal EEPROM. In this mode, it is always possible
to connect the MCU since all other functionalities of AS3955 are
not limited by the communication modes. The main purpose of
this mode is to use the AS3955 as a standalone chip or a chip
in combination with MCU where the MCU is used for managing
AS3955 configuration and memory content.
Tunneling Mode
Tunneling mode enables transparent data transfer between
NFC device and MCU. In this mode, the internal EEPROM cannot
be accessed via RF and any type of data received will be
forwarded to MCU when the tag is in SELECTED state. An error
during the reception will trigger a corresponding interrupt. In
this mode the MCU shall take care for the correct response. For
this purpose, the MCU may issue an ACK or a different type NAK
response using implemented commands.
By enabling this mode, the MCU can emulate NFC type 2 tags,
NFC type 4 tags, ISO14443A Level 3 cards, ISO14443A Level 4
cards, and also implement higher level protocols such as
[PHDC].
Tunneling mode can be configured by setting Configuration
Byte IC_CFG2 in EEPROM or the corresponding register
( IC Configuration Register 2).
This mode also allows access to the internal EEPROM via the SPI
/ I²C during RF communication.
Page 42
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
The basic assumption of Tunneling mode is that MCU is
responsible for generating the response and that AS3955 takes
care of the response synchronization over RF. For this reason,
AS3955 has a possibility to transmit ACK and NACK by issuing
a direct command (see section Direct Commands). The MCU can
also transmit data by writing the data into the buffer and issuing
a Transmit command. The implementation of Tunneling mode
also requires the handling of the SLP_REQ command since all
the received data in SELECTED state are stored in the buffer and
will not be processed by AS3955. This also implies that MCU has
to take care of correct transition of the tag into SLEEP or SENSE
state by using one of the three available commands Go To Sleep,
Go To Sense and Go To Sense / Sleep.
Data Transaction in Tunneling Mode
Figure 47 shows an example of how communication in
Tunneling mode should be implemented.
Figure 47:
Read First, then Acknowledge
PCD
AS3955
MCU
Rx start
DAT
A
TX
DAT
AR
X
Rx end, crc or parity error,
buffer error
DAT
AR
DO
ACK / N
CK
CMD A
ACK
UT
/ NACK
Tx end
ACK and NACK responses can be replaced by data, in case of an
incoming READ command.
Relevant Registers, Interrupts and Commands
Registers:
• Buffer Status Register 1 and Buffer Status Register 2 (data
length and error type)
ams Datasheet
[v1-01] 2015-Apr-29
Page 43
Document Feedback
AS3955 − Detailed Description
Interrupts:
• Rx start (I_rxs bit in Interrupt Register 1)
• Rx end, Tx end (resp. I_rxe and I_txe bits in Interrupt
Register 0)
• CRC, parity and framing interrupt (resp. I_crc_err, I_par_err
and I_frm_err bits in Interrupt Register 1)
• Buffer error (I_bf_err in Interrupt Register 1)
• SPI / I²C buffer access error (I_acc_err in
Interrupt Register 1)
Commands:
• Transmit ACK
• Transmit NACK 0-5
• Transmit Buffer
• Go To Sense
• Go To Sleep
• Go To Sense / Sleep
Extended Mode
Extended mode enables communication between the NFC
device and MCU by employing standard NFC Tag 2 Type READ
and WRITE commands. The purpose of this communication
mode is to provide a simple data transfer mechanism between
a NFC device and a MCU while guaranteeing correct timing and
synchronization. This is achieved by implementing a robust
handshake mechanism.
This mode uses a part of the memory address space that is out
of range of the internal physical memory. The communication
between a NFC device and a MCU can be performed by using
WRITE/READ commands on address FCh – FFh, independently
of the EEPROM configuration size. Data with CRC or any other
error will not be forwarded to the MCU. In case of successful
reception of data, AS3955 will automatically reply with ACK.
Error handling in Extended mode is defined in Error Handling.
Data received from RF side are kept available until the MCU
reads the data. The implemented asynchronous transmission
protocol arbitrates on overlapping memory accesses
(producer-consumer principle) and complies with timing
constraints of both RF and SPI / I²C protocols regardless of the
MCU performance.
Extended mode can be configured by setting Configuration
Byte IC_CFG2 in EEPROM or the corresponding register ( IC
Configuration Register 2).
Page 44
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
Extended mode uses an address space above the address space
of the internal EEPROM. It is then possible for a NFC device to
perform accesses to AS3955 internal memory and data transfer
to/from the MCU, without switching modes. This feature allows
the NFC device e.g. to request to the MCU a switch to Tunneling
mode with a simple WRITE command.
The extended mode communication employs a built-in buffer
for communication. Access to buffer from RF and SPI / I²C is
mutually exclusive. AS3955 ensures that buffer content shall be
kept as long as the AS3955 is powered (even in case RF field is
not present) and as long the tag is in SELECTED state. In case
the RF field is switched off and then on again, the buffer content
will be reset.
NFC Device to MCU Data Flow Protocol
For the data transmission from NFC device to the MCU
employing the Extended mode, a NFC WRITE shall be used. Each
data transfer from NFC device is comprised of four WRITE
commands starting from address FCh and ending at address
FFh. The protocol implemented on a NFC device is expected to
always start the data transmission at address FCh, which signals
the beginning of the communication, and end at address FFh.
Figure 48 depicts regular implementation of the Extended
mode using the WRITE commands.
Figure 48:
Address Space Employed for Communication
Address space used for communication in
extended mode
...
WRITE FCh,00112233h
TIME
WRITE FDh,44556677h
WRITE FEh,8899AABBh
WRITE hFF,CCDDEEFFh
ams Datasheet
[v1-01] 2015-Apr-29
ACK, rf_busy = 1,
IRQ RX start = 1
ACK
ACK
ACK, rf_data_rdy = 1,
IRQ RX end = 1
FCh
00h
11h
22h
33h
FDh
44h
55h
66h
77h
FEh
88h
99h
AAh
BBh
FFh
CCh
DDh
EEh
FFh
...
Page 45
Document Feedback
AS3955 − Detailed Description
Assuming that the internal buffer is empty, the NFC device may
start with data transmission by sending a WRITE command on
address FCh. When the first block is written, the rf_busy flag is
set and Rx start interrupt is triggered. At this point, the buffer
cannot be accessed over SPI / I²C until the entire write message
is received which is assumed to be complete when NFC device
sends a write command to block FFh. At this point, an Rx end
interrupt is triggered. This implies that a minimum two
messages must be received from a NFC device in order to
successfully complete a message. If a WRITE command is
received on address FFh before a WRITE command to address
FCh, AS3955 will assume that an error has occurred and will
respond as described in Error Handling.
When the reader writes into the last block FFh, rf_data_rdy flag
is set and the reader cannot change the buffer content until the
MCU reads the content of the block and clears the rf_data_rdy
flag. Any additional reception of WRITE commands from NFC
device, prior to MCU reading out the buffer content, shall result
in a response as defined in Error Handling. The blocks from
internal memory address space are directly mapped into buffer
space as shown on Figure 49.
Figure 49:
Mapping of Data Received into Buffer
Address space used for communication in
extended mode
Buffer address space
...
FCh
00h
11h
22h
33h
00h
00h
11h
22h
33h
FDh
44h
55h
66h
77h
04h
44h
55h
66h
77h
FEh
88h
99h
AAh
BBh
08h
88h
99h
AAh
BBh
FFh
CCh
DDh
EEh
FFh
0Ch
CCh
DDh
EEh
FFh
...
When MCU reads out the data from the buffer, data will be sent
to MCU in the same order as they were stored in the buffer
starting from address 00h. When MCU has read all buffer
content, it shall issue a Clear Buffer command to clear the flag
rf_data_rdy. At this point, a new data message can be received.
Page 46
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
Figure 50:
Data Reception in Extended Mode
PCD
WRITE
AS3955
MCU
@ FC h
A CK
WRITE
@
FDh
A CK
WRITE
@
FEh
A CK
WRITE
@ FF h
A CK
Rx end
DATA R
D
OU T
MCU to NFC Device Data Flow Protocol
NFC devices can receive data from a MCU through AS3955 by
using standard READ commands.
Prior to writing data into the buffer, the MCU shall issue a Clear
Buffer command to AS3955 to ensure data are correctly
mapped into the buffer. To start data transmission, the MCU
shall issue then a Transmit Buffer command. In this way, the flag
io_data_rdy is set and data can be transmitted to the reader.
The transmission of the data from the tag to the NFC device is
done by issuing a READ command on block FCh. The fourth
block being read during the read command contains the status
flags of the ongoing communication.
NFC devices can receive data from a MCU through AS3955 by
using standard READ commands.
Prior to writing data into the buffer, it is advisable that to issue
a Clear Buffer command to AS3955 to ensure data are correctly
mapped into the buffer. MCU can trigger data transmission by
writing three words of data into the buffer at addresses
FCh-FEh, and issuing a Transmit Buffer command. This will also
set io_data_rdy flag. The transmission of the data from the tag
to the read is done by issuing a read command on word 0xFC.
The NFC device can then retrieve the data from the buffer by
sending a READ command to address FCh. The fourth word
contains the status flags as shown in Figure 51.
ams Datasheet
[v1-01] 2015-Apr-29
Page 47
Document Feedback
AS3955 − Detailed Description
Figure 51:
Data Transmission from MCU to NFC Device
Address space used for communication in
extended mode
...
READ FCh
TIME
io_busy = 1, io_data_rdy = 0
Response : 00000000h,
00000000h,
00000000h,
00000002h
READ FCh
0
11h
22h
33h
44h
55h
66h
77h
FEh
88h
99h
AAh
BBh
FFh
00h
00h
00h
FLAGS
...
io_busy = 0, io_data_rdy = 0
Response : ACK
b7 b6 b5 b4
0
00h
io_busy= 0, io_data_rdy = 1
Response : 00112233h,
44556677h,
8899AABBh,
00000001h
WRITE FFh,
00000000h
FLAGS:
FCh
FDh
0
0
b3
b2
b1
b0
rf_busy
rf_data_rdy
io_busy
io_data_rdy
When the NFC device has successfully read all data from the
buffer, it shall clear the buffer and prepare for further data
transfer by issuing a WRITE command to address FFh. This will
trigger a Tx end interrupt.
If a READ command is received on address FCh prior to the
Transmit Buffer command, AS3955 will return zero data, io_busy
set to 1 and io_data_rdy set to 0. A NFC device can then poll
AS3955 by continuously sending READ commands at address
FCh and waiting until the last word equals 01h.
A READ command can be issued only to address FCh. Issuing a
READ command to any other address than FCh while in
Extended mode shall be treated as an error.
In Extended mode, it is assumed that AS3955 will always receive
16 bytes and transmit 12 bytes of data, 3 empty bytes and 1
byte for FLAGS. If the message size differs in any direction, then
the MCU or NFC device are responsible for proper error
management.
Page 48
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
Figure 52:
Data Transmission in Extended Mode
PCD
AS3955
MCU
IN
WRITE
READ @
Transmit
FC h
DATA
WRITE
@ FFh
Tx end
If MCU decides to update the buffer before the NFC device
issues a WRITE command to address FFh, a I_acc_err interrupt
will be triggered, signaling that buffer cannot be accessed (see
Interrupt Register 1).
Relevant Registers, Interrupts and Commands
Relevant Registers:
• Buffer Status Register 1 (status flags : rf_busy, rf_data_rdy,
io_data_rdy)
Relevant Interrupts:
• Rx start (I_rxs bit in Interrupt Register 1)
• Rx end, Tx end (resp. I_rxe and I_txe bits in Interrupt
Register 0)
Commands:
• Transmit Buffer
• Clear Buffer
ams Datasheet
[v1-01] 2015-Apr-29
Page 49
Document Feedback
A S 3 9 5 5 − Detailed Description
Extended Mode Timing Diagram
Figure 53:
RF to MCU Data Transfer in Extended Mode
RFLINK
RFfield
NFCreader
RFfieldON
Tagstate
Poweroff
BUFFER
SPI/I²CLINK
INTERRUPTS
SENSE
0xFC
0xFD
0xFE
0xFF
0x00000000
0x00000000
0x00000000
0x00000000
WRITE
0xFC,
0x001122
33
WRITE
0xFD,
0x445566
77
WRITE
0xFE,
0x8899AA
BB
WRITE
0xFF,
0xCCDDE
EFF
READ
0xFC
RESOLUTI
SELECTED
ON
AntiͲcollision
sequence
AS3955RF
response
Buffercontent
AntiͲcollision
sequence
ACK
0x00112233
0x00000000
0x00000000
0x00000000
ACK
0x00112233
0x44556677
0x00000000
0x00000000
ACK
0x00112233
0x44556677
0x8899AABB
0x00000000
0x000000 0x000000 0x000000 0x000000
00
00
00
02
ACK
0x00112233
0x44556677
0x8899AABB
0xCCDDEEFF
0x00000000
0x00000000
0x00000000
0x00000000
AS3955
SPI/I²C
0x001122 0x445566 0x8899AA 0xCCDDE
33
77
BB
EFF
0x10
MCU
SPI/I²C
ReadIRQ
Read
Buffer
Length
Buffer
Read
Clear
Buffer
RXstart
Rxend
Txend
FLAGS
rf_busy
rf_data_rdy
io_busy
io_data_rdy
TAGINITIALIZATION
Page 50
Document Feedback
RFTOBUFFERDATATRANSFER
BUFFERTOMCUDATATRANSFER
ams Datasheet
[v1-01] 2015-Apr-29
A S 3 9 5 5 − Detailed Description
Figure 54:
MCU to RF Data Transfer in Extended Mode
RFLINK
RFfield
NFCreader
WRITE
0xFF,
0x000000
00
READ
0xFC
READ0xFC
Tagstate
INTERRUPTS
SPI/I²CLINK
BUFFER
AS3955RF
response
Buffercontent
0x00000000
0xFC
0xFD
0xFE
0xFF
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0xFFEECCAA
0x00000000
0x00000000
0x00000000
0x00000000
0xFFEECCAA
0x99887766
0x00000000
0x00000000
0x00000000
0x000000
02
0xFFEECC 0x998877 0x554433 0x000000
AA
66
22
09
0xFFEECCAA
0x99887766
0x55443322
0x00000000
ACK
0x00000000
0x00000000
0x00000000
0x00000000
AS3955
SPI/I²C
MCU
SPI/I²C
BufferLoad
0xFFEECCAA
0x99887766
0x55443322
TransmitBuffer
ReadIRQ
RXstart
Rxend
Txend
FLAGS
rf_busy
rf_data_rdy
io_busy
io_data_rdy
MCUTOBUFFERDATATRANSFER
ams Datasheet
[v1-01] 2015-Apr-29
BUFFERTORFDATATRANSFER
Page 51
Document Feedback
AS3955 − Detailed Description
Implementation Recommendations
While in Extended mode, the NFC device shall not issue a WRITE
command to the address space of the internal EEPROM until the
buffer is empty. The NFC device can issue a READ command to
check internal status flag (io_busy = 0), before writing to
EEPROM.
It is also not allowed to interleave data communication in
Extended mode (e.g. writing to addresses FCh-FFh) and issue a
WRITE command to internal EEPROM. If case this happens,
writing to internal EEPROM would be successful, but the buffer
content would be lost.
Reading status flags is always allowed.
Error Handling
Figure 55 shows how different type of errors in Standalone and
Extended communication modes are handled and what is the
resulting state of the tag.
Figure 55:
Error Handling
Command
Condition
AS3955
nak_on_crc_parity=0
AS3955
nak_on_crc_parity=1
(empty fields have same
reply as
nak_on_crc_parity=0)
Any
Bit Coding Error
No Response, SLEEP
Any
Incomplete Frame
No Response, SLEEP
T2T Read
Parity Error
No Response, SLEEP
NAK_1, SLEEP
T2T Read
CRC Error
No Response, SLEEP
NAK_1, SLEEP
T2T Read
1 Byte Frame (no CRC)
No Response, SLEEP
T2T Read
Empty frame (only CRC
bytes)
No Response, SLEEP
T2T Read
Missing address
No Response, SLEEP
T2T Read
Too long frame
No Response, SLEEP
T2T Read
Memory fully locked
Send Block Content
T2T Read
Memory partially locked
Send Block Content
T2T Read
Memory fully protected
NAK_4, SLEEP
T2T Read
Memory partially
protected
Send unprotected memory as is, replace protected memory
with zero bytes
T2T Read
Memory address range
fully not existent
NAK_0, SLEEP
Page 52
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
Command
Condition
AS3955
nak_on_crc_parity=0
AS3955
nak_on_crc_parity=1
(empty fields have same
reply as
nak_on_crc_parity=0)
T2T Read
Memory address range
partially not existent
Send existing memory
appended with zero bytes
T2T Read
EEPROM access collision
NAK_5, SLEEP
T2T Read
No Error
Send Block Content
T2T Write
Parity Error
No Response, SLEEP
NAK_1, SLEEP
T2T Write
CRC Error
No Response, SLEEP
NAK_1, SLEEP
T2T Write
1 Byte Frame (no CRC)
No Response, SLEEP
T2T Write
2 Byte Frame with correct
CRC
No Response, SLEEP
T2T Write
Missing address and data
No Response, SLEEP
T2T Write
Missing data
No Response, SLEEP
T2T Write
Incomplete data
No Response, SLEEP
T2T Write
Too long frame
No Response, SLEEP
T2T Write
Memory fully locked
NAK_0, SLEEP
T2T Write
Memory partially locked
cannot occur
T2T Write
Memory fully protected
NAK_4, SLEEP
T2T Write
Memory partially
protected
cannot occur
T2T Write
Memory address range
fully not existent
NAK_0, SLEEP
T2T Write
Memory address range
partially not existent
cannot occur
T2T Write
EEPROM access collision
NAK_5, SLEEP
T2T Write
No Error
ACK, SELECTED
T2T Sector
Select 1
Parity Error
No Response, SLEEP
NAK_1, SLEEP
T2T Sector
Select 1
CRC Error
No Response, SLEEP
NAK_1, SLEEP
T2T Sector
Select 1
1 Byte Frame (no CRC)
No Response, SLEEP
T2T Sector
Select 1
Empty frame (only CRC
bytes)
No Response, SLEEP
ams Datasheet
[v1-01] 2015-Apr-29
Page 53
Document Feedback
AS3955 − Detailed Description
Command
Condition
AS3955
nak_on_crc_parity=0
AS3955
nak_on_crc_parity=1
(empty fields have same
reply as
nak_on_crc_parity=0)
T2T Sector
Select 1
Missing second byte
No Response, SLEEP
T2T Sector
Select 1
Incorrect second byte (not
FFh)
No Response, SLEEP
T2T Sector
Select 1
Too long frame
No Response, SLEEP
T2T Sector
Select 1
Only 1 sector available
NAK_0, SLEEP
T2T Sector
Select 2
Parity Error
No Response, SLEEP
NAK_1, SLEEP
T2T Sector
Select 2
CRC Error
No Response, SLEEP
NAK_1, SLEEP
T2T Sector
Select 2
1 Byte Frame
No Response, SLEEP
T2T Sector
Select 2
Empty frame (only CRC
bytes)
No Response, SLEEP
T2T Sector
Select 2
Missing sector number
No Response, SLEEP
T2T Sector
Select 2
Missing RFU bytes
No Response, SLEEP
T2T Sector
Select 2
Too few RFU bytes
No Response, SLEEP
T2T Sector
Select 2
Too long frame
No Response, SLEEP
T2T Sector
Select 2
Selected sector not
existent
(cannot happen for
AS3955)
No Response, SLEEP
T2T Sector
Select 2
No Error
(cannot occur for AS3955)
No Response, SLEEP
Unknown
Command
Code
Parity Error
No Response, SLEEP
NAK_1, SLEEP
Unknown
Command
Code
CRC Error
No Response, SLEEP
NAK_1, SLEEP
Unknown
Command
Code
No Error
No Response, SLEEP
Page 54
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
Wired Interfaces
AS3955 host interface can be configured to be either SPI or I²C
at production (Fabrication Data FAB_CFG0). In both cases, the
/SS signal is also used to control the IC power state. By pulling
the /SS low, the chip interface or the chip itself is enabled /
powered (see Power Management). Note that interrupting SPI
/ I²C operations or issuing incomplete command sequence from
the MCU may result in corrupted data content. For more
information on EEPROM and buffer data reading and writing
see EEPROM Read and Write and Data Buffer sections.
SPI / I²C Access Modes
Figure 56:
Access Modes
MODE Byte (com. bits)
Mode
MODE
Trailer
MODE Related Data
M2
M1
M0
C4
C3
C2
C1
C0
Register Write
0
0
0
A4
A3
A2
A1
A0
Data byte(s)
Register Read
0
0
1
A4
A3
A2
A1
A0
Data byte(s)
EEPROM Write
0
1
0
0
0
0
0
0
Block Address
byte
4 bytes of block
data
EEPROM Read
0
1
1
1
1
1
1
1
Block Address
byte
N*4 bytes
Buffer Load
1
0
0
x
x
x
x
x
Data byte(s)
Buffer Read
1
0
1
x
x
x
x
x
Data byte(s)
COMMAND Mode
1
1
C5
C4
C3
C2
C1
C0
ams Datasheet
[v1-01] 2015-Apr-29
Page 55
Document Feedback
AS3955 − Detailed Description
SPI Interface
Communication between AS3955 and microcontroller can be
done via a four-wire Serial Peripheral Interface (SPI) and an
additional interrupt signal. AS3955 acts an SPI slave device, and
it can request MCU attention by sending an interrupt (pin IRQ).
The SCLK frequency can be between 100 kHz and 5 MHz.
Figure 57:
SPI and Interrupt Signals
Name
/SS
Signal
Signal Level
Description
Digital Input with pull up
CMOS
SPI Enable (active low)
MOSI
Digital Input
CMOS
Serial Data input
MISO
Digital Output with tristate
CMOS
Serial Data output
SCLK
Digital Input
CMOS
Clock for serial communication
Digital Output
CMOS
Interrupt Output pin (active high)
IRQ
SPI interface is in reset mode when signal /SS is high, and it is
enabled when /SS is low. It is recommended to keep signal /SS
high whenever the SPI interface is not used. MOSI is sampled
at the falling edge of SCLK. All communication is done in 8-bit
blocks (bytes). First three bits of first byte transmitted after /SS
high to low transition define SPI operation mode. MSB bit is
always transmitted first (valid for address and data). Read and
Write modes support address auto incrementing, which means
that in case some additional data bytes may be sent (read), they
are written to (read from) addresses incremented by 1 after the
address and first data byte.
SPI interface supports the following modes:
• internal registers read and write
• EEPROM read and write
• buffer read and write
• direct commands
Note that in case when logic and EEPROM are supplied from the
VP_IO, the only SPI operations permitted are reading and
writing of EEPROM and registers (see also Power Management).
MISO output is usually in tristate and it is only driven when
output data is available. MOSI and MISO can then be externally
shorted to create a bidirectional signal. When MISO output is
in tristate, it is possible to switch on a 10 kΩ pull down by
activating option bits miso_pd1 and miso_pd2 in IO
Configuration Register.
Page 56
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
Figure 58:
IO Signals to Controller
MOSI
MOSI
MOSI
μC
AS3955
MISO
AS3955
I/O
μC
MISO
MISO
Separate SPI Input and Output Signals to Controller
Bidirectional Data IO Signal to Controller
Writing Data to Addressable Registers
(Register Write Mode)
Following figures show waveforms of writing a single byte and
writing multiple bytes with auto-incrementing address. After
the SPI operation mode bits, the address of starting register to
be written is provided. Then one or more data bytes are
transferred from the SPI, always MSB first. The data byte is
written in register on falling edge of its last clock. In case the
communication is terminated by putting /SS high before a
packet of 8 bits composing one byte is sent, writing of this
register is not performed. In case the register on the defined
address does not exist or it is a read-only register, no write is
performed.
Figure 59:
SPI Communication: Writing a Single Register
/SS
SCLK
MOSI
X
0
0
Three
leading bits
indicate Mode
ams Datasheet
[v1-01] 2015-Apr-29
0
A4
A3
SCLK raising
edge Data is
transfered
from µC
A2
A1
SCLK falling
edge Data is
sampled
A0
D7
D6
D5
D4
D3
D2
D1
D0
Data is moved to
Address
A4-A0
X
/SS rising
edge signals
end of WRITE
Mode
Page 57
Document Feedback
AS3955 − Detailed Description
Figure 60:
SPI Communication: Writing Register Data with Auto-Incrementing Address
/SS
SCLK
MOSI
X
0 0 0
A A A A A D D D D D D D D D D D D D D D D D D
4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6
Data is
moved to
Address
<A4-A0>
Three
leading bits
indicate Mode
Data is moved
to Address
<A4-A0> + 1
D D D D D D D D D D
1 0 7 6 5 4 3 2 1 0
Data is moved to
Address
<A4-A0> + (n-1)
X
Data is moved to
Address
<A4-A0> + n
/SS rising edge
signals end of
WRITE Mode
Reading Data from Addressable Registers
(Register Read Mode)
After the SPI operation mode bits, the register address to be
read shall be provided, MSB first. Then one or more data bytes
are transferred to MISO output, always MSB first. As in case of
the write mode, also the read mode supports
auto-incrementing addressing.
MOSI is sampled at the falling SCLK edge (as shown in the
following diagrams); data to be read from AS3955 internal
register is driven to MISO pin on rising edge of SCLK and is
sampled by the master at the falling SCLK edge.
In case the register on defined address does not exist, all 0 data
is sent to MISO. In the following figure an example of reading
of a single byte is given.
Figure 61:
SPI Communication: Reading a Single Register
/SS
SCLK
MOSI
X
0
0
MISO
1
A4
A3
A2
A1
X
Three
leading bits
indicate The
Mode
Page 58
Document Feedback
SCLK rising
edge Data is
transferred
from µC
X
A0
D7
SCLK falling
edge Data is
sampled
D6
SCLK rising
edge Data is
moved from
Address
<A4-A0>
D5
D4
D3
SCLK falling
edge Data is
transferred to
µC
D2
D1
D0
X
/SS rising
edge signals
end of READ
Mode
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
Writing and Reading of EEPROM Through SPI
EEPROM data can be read and written also through SPI
interface. Due to possible conflict with the RFID interface
additional arbitration bit can be set (IC_CFG0) in order to set
the priority access to the EEPROM access. If EEPROM write
operation is terminated due to higher priority of the RF an
I_acc_err (Interrupt Register 1) IRQ is sent. The description is
referring to following case when an EEPROM write operation is
triggered via SPI / I²C and bit arbit_mod (EEPROM, IC_CFG0,
bit3) is set to 1 which means that RF has priority over SPI when
accessing EEPROM. In this case EEPROM via SPI / I²C write will
be terminated and IRQ I_acc_err is triggered if tags enters RF
field and EEPROM is needed for RF initialization, EPROM read or
write is issued via RF.
ams Datasheet
[v1-01] 2015-Apr-29
Page 59
Document Feedback
AS3955 − Detailed Description
Word Address Byte
Both EEPROM modes (Read and Write) use Word Address byte
to define the address of the EEPROM word which is accessed.
Seven MSB bits of the Address Byte are used to define the
address; while the last bit is don’t care (it is used to synchronize
EEPROM access).
Figure 62:
EEPROM Block Address Byte
EEPROM Block Address
B7
B6
B5
B4
B3
B2
B1
B0
WA6
WA5
WA4
WA3
WA2
WA1
WA0
x
EEPROM Write
In order to program an EEPROM block, six bytes shall be sent
(mode byte, block address byte and 4 bytes of data, all of them
MSB first). Actual EEPROM programming is started with rising
/SS edge signal which terminates the EEPROM Write command.
EEPROM Read
In order to read data from EEPROM, first a mode byte is sent,
followed by the block address byte (MSB first). Then one or more
blocks of data with address auto-incrementing (packets of 4
bytes) are transferred to MISO output, also MSB first. MOSI is
sampled at the SCLK falling edge; data to be read from AS3955
EEPROM is driven to MISO pin on SCLK rising edge and is
sampled by the master at the SCLK falling edge. In case the
block on the defined address does not exist, all 0 data is sent to
MISO.
Please note that SCLK frequency should not exceed 1MHz
during EEPROM Read (limited by EEPROM read access time).
Figure 63:
Reading an EEPROM Block over SPI
/SS
SCLK
MOSI
W W W W W W W
X
0 1 1 1 1 1 1 1 A A A A A A A x
6
MISO
5
3
2
1
X
X
0
B B B B B B B B B B
3 3 2 2 2 2 2 2 2 2
1 0 9 8 7 6 5 4 3 2
X
1µs min
Page 60
Document Feedback
4
MSB Byte from Address
<WA6-WA0>
B B B B B B B B B B
9 8 7 6 5 4 3 2 1 0
X
LSB Byte from Address
<WA6-WA0>
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
Loading Transmission Data into Buffer
Loading the transmitting data into the buffer is similar to
writing data into an addressable registers. Difference is that in
case of loading more bytes all bytes go to the buffer. The
command mode code 100b indicates buffer write operation. A
bit stream of 32 bytes of data can be transferred. The following
figure shows how to load the transmission data into the buffer.
Figure 64:
Loading Data into Buffer over SPI
/SS
SCLK
MOSI
X
1
0
10 pattern
indicates
FIFO mode
ams Datasheet
[v1-01] 2015-Apr-29
0
x
x
SCLK rising
edge Data is
transfered
from µC
x
x
SCLK falling
edge Data is
sampled
1 to 32
bytes
x
Start of
payload Data
X
/SS rising edge
signals end of
COMMAND Mode
Page 61
Document Feedback
AS3955 − Detailed Description
Reading Received Data from Buffer
Reading received data from the buffer is similar to reading data
from an addressable registers. Difference is that, in case of
reading more bytes, they all come from the buffer. The
command mode code 101b indicates buffer operations. In case
the command is terminated by putting /SS high before a packet
of 8 bits composing one byte is read that particular byte is
considered read.
Direct Command Mode
Direct Command Mode is comprised of one command byte
followed by argument byte. SPI operation mode bits 11b
indicate Direct Command Mode. The following six bits define
command code, sent MSB first. Last two bits in argument byte
indicate success of the direct command. Value 01h of the
argument byte indicates that command was accepted, while
value 02h indicates rejected due to internal access priorities.
The argument byte does not provide information on timing of
the command execution.
Figure 65:
Sending a Direct Command over SPI
/SS
SCLK
MOSI
X
1
1
Two leading
ONE indicate
COMMAND
Mode
Page 62
Document Feedback
C5
C4
C3
SCLK rising
edge Data is
transferred
from µC
C2
C1
C0
D7
D6
D5
D4
D3
D2
D1
D0
X
SCLK falling
edge Data is
sampled
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
SPI Timing
Figure 66:
SPI Timing
Symbol
Parameter
Min
Typ
Max
Unit
Note
General timing (VDD=VDD_IO=VDD_D= 3.3V, Temperature 25°C)
TSCLK
SCLK period
200
ns
TSCLKL
SCLK low
80
ns
TSCLKH
SCLK high
80
ns
TSSH
SPI reset (/SS high)
50
ns
TNCSL
/SS falling to SCLK rising
25
ns
first SCLK pulse
TNCSH
SCLK falling to /SS rising
80
ns
last SCLK pulse
TDIS
Data in setup time
10
ns
TDIH
Data in hold time
10
ns
(1)
Read timing (VDD=VDD_IO=VDD_D= 3.3V, Temperature 25°C, Cload≤50pF)
TDOD
Data out delay
20
ns
TDOHZ
Data out to high
impedance delay
20
ns
Note(s) and/or Footnote(s):
1. TSCLK=TSCLKL+TSCLKH, during EEPROM read the SCLK period has to be increased to 1μs (this limitation is imposed by EEPROM read
access time)
Figure 67:
SPI General Timing
/SS
...
t NCSL
t SCLKH
tSCLKL
t NCSH
SCLK
...
t DIS
MOSI
MISO
ams Datasheet
[v1-01] 2015-Apr-29
tDIH
DATAI
DATAI
...
DATAI
...
Page 63
Document Feedback
AS3955 − Detailed Description
Figure 68:
SPI Read Timing
...
/SS
SCLK
MOSI
...
...
DATAI
DATAO
MISO
...
DATAO
t DOHZ
t DOD
SPI Electrical Connection
A pull-down resistor can be connected by setting miso_pd1 and
miso_pd2 bits in IO Configuration Register .
Figure 69:
SPI Electrical Connection
AS3955
VP_IO
MISO
RP=10kΩ
Pull down
settings
VSS
Page 64
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
I²C Interface
Communication between AS3955 and microcontroller can be
done via a I²C interface and an additional interrupt signal.
AS3955 acts an I²C slave device, and supports single master,
multiple slave configurations. AS3955 I²C supports following
modes: Standard-mode, Fast-mode, Fast-mode Plus.
Figure 70:
I²C and Interrupt Signals
Name
Signal
Signal Level
Description
/SS
Digital Input with pull up
CMOS
Should be set to high during I²C communication
SDA
Digital Output
CMOS
Serial Data output
SCL
Digital Input
CMOS
Clock for serial communication
IRQ
Digital Output
CMOS
Interrupt Output pin (active high)
During I²C communication, the signal /SS should be set to low.
By setting the /SS to low, I²C interface is enabled. It is
recommended to keep signal /SS high whenever the I²C
interface is not used.
I²C interface supports the following modes:
• internal registers read and write
• EEPROM read and write
• buffer read and write
• direct commands
Please note that the only I²C operations allowed, when logic
and EEPROM are supplied from VP_IO, are EEPROM and registers
reading and writing (see also Power Management).
ams Datasheet
[v1-01] 2015-Apr-29
Page 65
Document Feedback
AS3955 − Detailed Description
Writing Data to Addressable Registers (Register Write
Mode)
Following figures show cases of writing a single byte and
writing multiple bytes with auto-incrementing address. After
the I²C slave address, the initial register address follows. Then
one or more data bytes are transferred from the I²C, MSB first.
The data byte is written in register on falling edge of its last
clock.
Figure 71:
Writing a Single Register over I²C
SCL
SDA
S
A
A
A
A A A A A A A 0
R R R R R
D D D D D D D D C
C 0 0 0
C
6 5 4 3 2 1 0
4 3 2 1 1
7 6 5 4 3 2 1 0 K
K
K
Slave address
Mode Byte
P
Data
Figure 72:
Writing Register Data with Auto-incrementing Address over I²C
SCL
SDA
S
A
A
A
A A A A A A A
D D D D D D D D C
R R R R R
C
0 C 0 0 0
6 5 4 3 2 1 0
7 6 5 4 3 2 1 0 K
4 3 2 1 1
K
K
Slave address
Page 66
Document Feedback
Mode Byte
Data is moved
to Address
<R4-R0> + 0
A
D D D D D D D D
C
7 6 5 4 3 2 1 0
K
P
Data is moved to
Address
<R4-R0> + n
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
Reading Data from Addressable Registers (Register Read
Mode)
After the I²C slave address, the address of register to be read
shall be provided, MSB first. Then one or more data bytes are
transferred to SDA output, also MSB first. As in case of the write
mode, also read mode supports auto-incrementing address. In
case the register at the defined address does not exist, all 0 data
is sent to SDA. In the following figure, an example for reading
of single byte is given.
Figure 73:
Reading a Single Register over I²C
SCL
SDA
S
A
A
A A A A A A A
R R R R R
C S
0 C 0 0 1
6 5 4 3 2 1 0
4 3 2 1 0
K
K
Slave address
Mode Byte
A
N
D D D D D D D D A
A A A A A A A
1 C
6 5 4 3 2 1 1
K 7 6 5 4 3 2 1 0 K
Slave address
P
Data
Writing and Reading EEPROM through I²C
EEPROM data can be read and written through I²C interface. Due
to possible conflict with RFID interface, additional arbitration
bit can be set (IC_CFG0) in order to set the priority access to the
EEPROM access. If EEPROM write operation is terminated due
to higher priority of the RF an I_spi (Interrupt Register 1), an IRQ
is sent.
Block Address Byte
Both EEPROM Read and Write use Block Address byte to define
the EEPROM block address to be accessed. Seven MSB bits of
the Address Byte are used to define the address; while the last
bit is don’t-care (it is used to synchronize EEPROM access).
Figure 74:
EEPROM Block Address Byte over I²C
EEPROM Block Address
ams Datasheet
[v1-01] 2015-Apr-29
B7
B6
B5
B4
B3
B2
B1
B0
WA6
WA5
WA4
WA3
WA2
WA1
WA0
x
Page 67
Document Feedback
AS3955 − Detailed Description
EEPROM Write
In order to program an EEPROM block, seven bytes shall be sent
(slave address, mode byte, block address byte and 4 bytes of
data, all of them MSB first). Actual EEPROM programming is
started with rising edge of ACK of the last byte.
Figure 75:
Writing Register Data with Auto-incrementing Address over I²C
SCL
SDA
S
A
A
A W W W W W W W
A A A A A A A
0 C 0 1 0 0 0 0 0 0 C A A A A A A A x C
6 5 4 3 2 1 0
K
K
K 6 5 4 3 2 1 0
Mode Byte
Slave address
A
D D D D D D D D
C
7 6 5 4 3 2 1 0
K
EEPROM page
address
P
Data
EEPROM Read
In order to read data from EEPROM, first a slave address and
mode byte is sent, followed by the block address byte (MSB
first). Then one or more blocks of data with address
auto-incrementing (packets of 4 bytes) are transferred via SDA
line, also MSB first. SDA is sampled at the SCL falling edge. In
case the block on defined address does not exist, all 0 data is
sent via SDA line.
Figure 76:
Reading a EEPROM Block over I²C
SCL
SDA
S
A
A W W W W W W W
A
A A A A A A A
0 C 0 1 1 1 1 1 1 1 C A A A A A A A x C
6 5 4 3 2 1 0
K
K 6 5 4 3 2 1 0
K
Slave address
S
EEPROM page
address
A
N
A A A A A A A
D D D D D D D D
1 C
A
6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
K
K
Slave address
Page 68
Document Feedback
Mode Byte
P
Data
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
Loading Transmission Data into Buffer
Loading the transmitting data into the buffer is similar to
writing data into an addressable register. Difference is that, in
case of loading more bytes, all bytes go to the buffer. The
command mode code 10b indicates buffer operations.
The following figure shows how to load the transmitting data
into the buffer.
Figure 77:
Loading Data into Buffer over I²C
SCL
SDA
S
A
A
A
A A A A A A A
D D D D D D D D C
0 C 1 0 0 0 0 0 0 0 C
6 5 4 3 2 1 0
7 6 5 4 3 2 1 0 K
K
K
Mode Byte
Slave address
A
D D D D D D D D
C
7 6 5 4 3 2 1 0
K
Data
P
Data
Reading Received Data from Buffer
Reading received data from the buffer is similar to reading data
from an addressable register. Difference is that, in case of
reading more bytes, they all come from the buffer. The
command mode code 10b indicates buffer operations. In case
of reading the received data from the buffer, all bits <C5 – C0>
are set to 1.
Figure 78:
Reading Data from Buffer over I²C
SCL
SDA
S
A
A
A A A A A A A
0 C 1 0 1 1 1 1 1 1 C
6 5 4 3 2 1 0
K
K
Slave address
S
A
N
A A A A A A A
D D D D D D D D
1 C
A
6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
K
K
Slave address
ams Datasheet
[v1-01] 2015-Apr-29
Mode Byte
P
Data
Page 69
Document Feedback
AS3955 − Detailed Description
Direct Command Mode
Direct Command Mode is comprised of one command byte and
argument byte. The two msb’s of command code 11b indicate
Direct Command Mode. The following six bits define command
code, sent MSB first. Last two bits in argument byte indicate
success of the direct command. Value 01h of the argument byte
indicates that command was accepted, while 02h indicates it
was rejected due to internal access priorities. The argument
byte does not provide information on timing of the command
execution.
Figure 79:
Sending a Direct Command over I²C
SCL
SDA
S
A A A A A A A
6 5 4 3 2 1 0
Slave address
A
A
C C C C C C C C
C
C S
7 6 5 4 3 2 1 0
K
K
Mode Byte
A
A A A A A A A
1 C 0 0 0 0 0 0 x x
6 5 4 3 2 1 1
K
Slave address
N
A
K
P
Argument byte
I²C Electrical Connection
The AS3955 has two built-in 3kΩ pull-up resistors on SDA and
SCL lines as shown on Figure 80 and used only in I²C mode. The
SPI pull-down bits in IO Configuration Register must be set 00h.
Figure 80:
I²C Interface with Built-In Pull-Up Resistors
AS3955
VP_IO
RP=3kΩ
RP=3kΩ
SDA
SCL
VSS
Page 70
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
Interrupt Interface Description
There are two interrupt registers implemented in AS3955
(Interrupt Register 0 and Interrupt Register 1).
When an interrupt condition is met, the source of interrupt bit
is set in the interrupt register and the IRQ pin goes to high.
The microcontroller shall read the interrupt registers to
distinguish between different interrupt sources. After an
interrupt register is read, its content is reset to 0. IRQ pin goes
to low after the interrupt bit(s), which caused its transition to
high, has been read. Please note that there may be multiple
interrupt register bits set in case the controller does not
immediately read the Interrupt Registers after the IRQ signal
was set and another event causing interrupt occurred.
The process of reading interrupt registers is composed of two
phases. In the first phase, interrupts are pushed into internal
buffer just before reading the first bit of the register. In the
second phase the bits stored in the buffer are read out. The
interrupts stored in each internal register are cleared and
considered being read out at the rising edge of SCLK of the first
interrupt bit for each interrupt register.
Buffer Interrupts and Buffer Status Register
The AS3955 contains a 32 byte buffer. In case of transmission
the Control logic shifts data which was previously loaded by the
external controller to the Framing Block and further to the
Transmitter. During reception, the demodulated data is stored
in the buffer and the external controller can download received
data.
Transmit and receive capability of the AS3955 is limited by the
buffer size. The maximum message size that can be received or
transmitted is 32 bytes. The mutual access to the buffer from
NFC block and SPI / I²C block is not allowed. At the beginning
of each reception the buffer is cleared automatically. Before the
data is loaded into the buffer via SPI / I²C for transmission the
MCU must take care of clearing the buffer.
Five interrupts that can be triggered during read or write of the
buffer:
• When buffer overflow or underflow is detected an I_bf_err
is triggered. The reason for the interrupt can be
distinguished by reading the Buffer Status Register 1.
• Buffer overflow IRQ is not blocked, in case if more than 32
bytes are received from reader or written via SPI / I²C into
buffer the buffer underflow IRQ is produced.
• When data is loaded via data RF an I_rxs and I_rxe are
triggered
• When all data is transmitted an I_txe is triggered
• When buffer is already busy due to another operation in
progress and MCU tries to access the internal buffer an
interrupt I_acc_err shall be triggered.
ams Datasheet
[v1-01] 2015-Apr-29
Page 71
Document Feedback
AS3955 − Detailed Description
After data is received, the microcontroller shall check the
amount of bytes actually received. This information is available
in the Buffer Status Register 2, which displays number of bytes
in the buffer not yet read out. Buffer Status Register 1
additionally contains a flag indicating buffer overflow.
EEPROM Read and Write
The EEPROM can be accessed from SPI / I²C interface or over RF
field issuing NFC read and write commands. The EEPROM access
is controlled by the internal EEPROM controller. Since the
mutual access to the EEPROM is not possible AS3955 needs to
arbitrate between MCU and NFC device in cases of mutual
access. How this is handled it is defined according to arbit_mod
bit. Typical EEPROM programing time is 8.3 ms and should not
exceed 9.5 ms. Please note that word data is sent MSB first which
is opposite to the RFID EEPROM programming where LSB is sent
first.
Three interrupts can be triggered during EEPROM read or write:
• When EEPROM programing is executed successfully an
I_io_eewr interrupt is triggered.
• When EEPROM programming is terminated due to higher
priority of the RF part, writing to a non-existent address
or writing is not allowed an I_eeac_err interrupt is
triggered.
• When EEPROM is busy and can’t be accessed an I_acc_err
interrupt is triggered
Note that EEPROM does not contain any kind on ant tearing
mechanism that would allow detection of corrupted data
The valid range for the Block Address byte depends on the
EEPROM size. For 4kbit EEPROM, the valid range for the Block
Address byte is from 000_0000b to 111_1111b (EEPROM blocks
from 00h to 7Fh).
Data Buffer
Data in buffer is organized in bytes; each byte is terminated by
a parity bit. Data bits in a byte are numbered from b1 to b8
where b1 is LSB bit, LSB is sent first.
Data sent over SPI / I²C is also organized in bytes, bits in a byte
are marked D0 to D7, where D0 is LSB bit, MSB is sent first.
During reception, the framing engine checks the parity bit and
removes it from data frame, and only data bytes are put into
buffer. During transmission, the process is reversed, only data
bytes are put into buffer, while the framing engine adds the
parity bits.
The data bits b1 to b8 are mapped to buffer data bits D0 to D7,
which means that the order of receiving/transmitting bits in a
byte is reversed (the bytes are sent LSB first while the SPI / I²C
bytes are sent MSB first).
Page 72
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Detailed Description
Direct Commands
Figure 81:
List of Direct Commands
Command Byte
Value <hex>
Command
C2
Set Default
Set AS3955 to default state
C4
Clear Buffer
Clears buffer and its error flags
C6
Restart Transceiver
C7
Disable/Enable Transceiver
C8
Transmit Buffer
C9
Transmit ACK
CA
Transmit NACK 0
Transmits NFC NAK reply with code 0h
CB
Transmit NACK 1
Transmits NFC NAK reply with code 1h
CD
Transmit NACK 4
Transmits NFC NAK reply with code 4h
CC
Transmit NACK 5
Transmits NFC NAK reply with code 5h
D0
Go To Sleep
Puts a tag in SLEEP state
D1
Go To Sense
Puts a tag in SENSE state
D2
Go To Sense / Sleep
Comments
Restarts transceiver communication logics
Toggles disable transceiver bit
Starts a transmit sequence of the buffer content
Transmits NFC ACK reply
Puts a tag in SENSE or SLEEP state depending
on the internal AS3955 state
Set Default
This direct command puts the AS3955 in the same state as
power-up initialization except for I²C bit in register IC Status
Display Register that defines the interface and IO Configuration
Register, which are not cleared.
Clear Buffer
Clears buffer, buffer overflow and underflow bits.
Restart Transceiver
Resets protocol logic to its initial state except for the tag state.
This interrupts all receptions and transmissions that are being
processed at the time.
ams Datasheet
[v1-01] 2015-Apr-29
Page 73
Document Feedback
AS3955 − Detailed Description
Disable/Enable Transceiver
This direct command toggles internal states which enables or
disables the reception or transmission of the data. This
command should be used when MCU wants to disable the
interruption of EEPROM write/read over SPI / I²C by the received
RF wire/read command. The RF part can also be enabled by
issuing the Restart RX/TX. This command shall not change the
tag state.
Transmit Buffer
This direct command trigger the transmission of data stored in
the buffer over the RF link. Before issuing a Transmit command,
the MCU shall send a Clear Buffer command, and write into the
buffer the data to be transmitted by sending a Buffer Load
command.
Execution of this direct command is only enabled when the
AS3955 antenna coil is in a PCD field (VP_INT is above HF_PON
threshold) and AS3955 Extended or Tunneling modes are
enabled.
Transmit ACK
Transmit 4-bit ACK response.
Transmit NACK 0-5
Transmit 4-bit NACK response with different NACK codes.
Go To Sleep
Puts tag in SLEEP state. Execution of this direct command is only
enabled when AS3955 antenna coil is in a NFC device field
(VP_INT is above HF_PON threshold).
Go To Sense
Puts tag in SENSE state. Execution of this direct command is
only enabled when the AS3955 antenna coil is in a NFC device
field (VP_INT is above HF_PON threshold).
Go To Sense / Sleep
Puts tag in SLEEP state depending on the internal state of the
tag. Execution of this direct command is only enabled when
AS3955 antenna coil is in a NFC device field (VP_INT is above
HF_PON threshold).
Page 74
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Register Description
The 6-bit register addresses below are defined in hexadecimal
notation. The possible address range is from 00h to 3Fh.
Register Description
There are two types of registers implemented in AS3955:
configuration registers and display registers. The configuration
registers are used to configure AS3955. They can be written and
read through SPI / I²C (RW). The display registers are read-only
(RO); they contain information about AS3955 internal state,
which can be accessed through SPI / I²C.
Registers Overview
Figure 82:
List of the SPI / I²C Internal Registers
Address [hex]
Content
Comment
Type
00
IO Configuration Register
01
IC Configuration Register 0
Default: IC_CFG0
RO/RW
02
IC Configuration Register 1
Default: IC_CFG1
RO
03
IC Configuration Register 2
Default: IC_CFG2+ battery supply
enable
04
RFID Status Display Register
RO
05
IC Status Display Register
RO
08
Mask Interrupt Register 0
Default: MIRQ_0
RW
09
Mask Interrupt Register 1
Default: MIRQ_1
RW
0A
Interrupt Register 0
RO
0B
Interrupt Register 1
RO
0C
Buffer Status Register 2
RO
0D
Buffer Status Register 1
RO
0E
Last NFC Address Access
Register
RO
1E
Version Control – Major
Revision
RO
1F
Version Control – Minor
Revision
RO
ams Datasheet
[v1-01] 2015-Apr-29
RW
RO/RW
Page 75
Document Feedback
AS3955 − Register Description
IO Configuration Register
Figure 83:
IO Configuration Register
Address 00h:
IO Configuration
Type: RW
Bit
Name
Default
Function
Comments
7
miso_pd2
0
1: pull down on MISO, when \SS is low and MISO is
not driven by the AS3955
6
miso_pd1
0
1: pull down on MISO when \SS is high
5
rfu
0
4
rfu
0
3
rfu
0
2
rfu
0
1
rfu
0
0
rfu
0
Note(s) and/or Footnote(s):
1. Default value is loaded from EEPROM configuration block bits (IC_CFG2).
IC Configuration Registers
Figure 84:
IC Configuration Register 0
Address 01h:
Bit
Name
7
slnt_mod
6
slnt_vl<2>
5
slnt_vl<1>
4
slnt_vl<0>
3
arbit_mod
2
i2c_addr3<2>
1
i2c_addr2<1>
0
i2c_addr1<0>
IC Configuration 0
Default
Function
Type
1: Enable silent mode
RO
Silent mode voltage level (see Silent Mode)
RO
1: RF has priority access to EEPROM over SPI / I²C
RW
I²C slave address
RO
See note
Note(s) and/or Footnote(s):
1. Default value is loaded from EEPROM configuration block bits (IC_CFG0).
Page 76
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Register Description
Figure 85:
IC Configuration Register 1
Address 02h:
Bit
Name
7
en_rx_crc
6
vreg<4>
5
vreg<3>
4
vreg<2>
Default
See note
3
vreg<1>
2
vreg<0>
1
rreg<1>
0
rreg<0>
IC Configuration 1
Function
Type
1: CRC stored in the buffer in the Tunneling mode
RO
Voltage level for voltage regulator VP_REG
(see Energy Harvesting)
RO
Output resistance value for voltage regulator VP_REG
(see Energy Harvesting)
RO
Note(s) and/or Footnote(s):
1. Default value is loaded from EEPROM configuration block bits (IC_CFG1).
Figure 86:
IC Configuration Register 2
Address 03h:
Bit
Name
7
rfcfg_en
6
tun_mod
5
ext_mod
4
nak_on_crc_parity
0
3
auth_set
See note
2
selr_b6_inv
0
1
powm<1>
IC Configuration 2
Default
Function
Type
RO
See note
RW
RW
See Configuration Byte IC_CFG2 for full
description
RO
RO
RO
RW
See note
0
powm<0>
RW
Note(s) and/or Footnote(s):
1. Default value is loaded from EEPROM configuration block bits (IC_CFG2)
ams Datasheet
[v1-01] 2015-Apr-29
Page 77
Document Feedback
AS3955 − Register Description
Status Display Registers
Figure 87:
RFID Status Display Register
Address 04h:
RFID Status Display
Bit
Name
Function
7
hf_pon
6
state<3>
5
state<2>
4
state<1>
3
state<0>
2
state_notvalid
1
rfu
RO
0
rfu
RO
1: PICC AFE is active
0000: POWER OFF
0001: SENSE
0011: RESOLUTION
0010: RESOLUTION_L2
0110: SELECTED
0111: SECTOR_2
Type
RO
1111: SECTORX_2
1110: SELECTEDX
1010: SENSEX_L2
1011: SENSEX
1001: SLEEP
1: State update – indicates that the state is not valid
RO
RO
Figure 88:
IC Status Display Register
Address 05h:
Bit
Name
7
ee2k
Default
IC Status Display
Function
Type
RO
see note (1)
6
i2c
RO
5
chipkill_2
0
Signal depends on the CHIP_KILL value at
initialization
RO
4
chipkill_1
0
Signal depends on the CHIP_KILL value at
initialization
RO
3
auth_locked
0
Signal depends on the AUTH_CNT value
RO
2
rfu
0
RO
1
rfu
0
RO
0
rfu
0
RO
Note(s) and/or Footnote(s):
1. Default is set during production
Page 78
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Register Description
Interrupt Registers
Figure 89:
Mask Interrupt Register 0
Address 08h:
Bit
Name
7
Default
Mask Interrupt 0 (1)
Function
Type
M_pu
Mask I_pu IRQ
RW
6
M_wu_a
Mask I_wu_a IRQ
RW
5
M_slp
Mask I_slp IRQ
RW
4
M_eew_rf
Mask I_eew_rf IRQ
RW
see note (2)
3
M_eer_rf
Mask I_eer_rf IRQ
RW
2
M_rxe
Mask I_rxe IRQ
RW
1
M_txe
Mask I_txe IRQ
RW
0
M_xrf
Mask I_xrf IRQ
RW
Note(s) and/or Footnote(s):
1. The mask bits only mask the triggering of the physical interrupt line. The interrupt bits in the Interrupt register still get set when
the interrupt is masked.
2. Default values are loaded from EEPROM configuration block bits (MIRQ_0).
Figure 90:
Mask Interrupt Register 1
Address 09h:
Bit
Name
7
Mask Interrupt 1 (1)
Default
Function
Type
M_rxs
Mask I_rxs IRQ
RW
6
M_frm_err
Mask I_frm_err IRQ
RW
5
M_par_err
Mask I_par_err IRQ
RW
4
M_crc_err
Mask I_crc_err IRQ
RW
see note (2)
3
M_bf_err
Mask I_bf_err IRQ
RW
2
M_io_eewr
Mask I_io_eewr IRQ
RW
1
M_eeac_err
Mask I_eeac_err IRQ
RW
0
M_acc_err
Mask I_acc_err IRQ
RW
Note(s) and/or Footnote(s):
1. The mask bits only mask the triggering of the physical interrupt line. The interrupt bits in the Interrupt register still get set when
the interrupt is masked.
2. Default values are loaded from EEPROM configuration block bits (MIRQ_1).
ams Datasheet
[v1-01] 2015-Apr-29
Page 79
Document Feedback
AS3955 − Register Description
Figure 91:
Interrupt Register 0
Address 0Ah:
Interrupt Register 0
Bit
Name
Function
Type
7
I_pu
Power-up IRQ. Interrupt is triggered at each power up (RF or battery),
when chip is already powered and RF field appears and after Go To
Sleep, Go To Sense, Go To Sense / Sleep and Set Defaultcommand
RO
6
I_wu_a
Wake-up IRQ at entry in SELECTED state
RO
5
I_slp
IRQ due to reception of SLP_REQ command
RO
4
I_eew_rf
PCD has updated the content of the data area
RO
3
I_eer_rf
PCD has read the content of the data area
RO
2
I_rxe
IRQ due to End of Receive. Applicable when receive frame is put in
buffer
RO
1
I_txe
IRQ due to End of Transmission. Applicable when data from buffer is
sent
RO
0
I_xrf
Exit RF field IRQ
RO
Note(s) and/or Footnote(s):
1. Power-up and Set Default command set the content of this register to 0. After Interrupt Register has been read, its content is set
again to 0.
Figure 92:
Interrupt Register 1
Address 0Bh:
Bit
Name
7
I_rxs
6
Interrupt Register 1
Function
Type
IRQ due to Start of Receive. Applicable when receive frame is
put in buffer
RO
I_frm_err
Lower layer error (broken byte, wrong bit coding sequence) / In
case of error the receive data is still put in buffer, error IRQ is
additionally sent
RO
5
I_par_err
Parity error / In case of error the receive data is still put in buffer,
error IRQ is additionally sent
RO
4
I_crc_err
CRC error / In case of CRC error the receive data is still put in
buffer, error IRQ is additionally sent
RO
3
I_bf_err
Buffer error (overflow/underflow). See Buffer Status Register 2
RO
Page 80
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Register Description
Address 0Bh:
Interrupt Register 1
Bit
Name
Function
Type
2
I_io_eewr
IRQ due to successful termination of EEPROM programming. In
case EEPROM write command was sent through SPI / I²C
RO
1
I_eeac_err
IRQ due to EEPROM write on write protected block or write to
non-existing address
RO
0
I_acc_err
IRQ due to interruption of SPI / I²C operation on buffer, EEPROM
or registers due to access control
RO
Note(s) and/or Footnote(s):
1. Power-up and Set Default command reset the content of this register to 0. After Interrupt Register has been read, its content is set
again to 0.
Buffer Registers
Figure 93:
Buffer Status Register 2
Address 0Ch:
Bit
Name
7
buf_len_invalid
6
rfu
5
buf_len<5>
4
buf_len<4>
3
buf_len<3>
2
buf_len<2>
1
buf_len<1>
0
buf_len<0>
Buffer Status Register 2
Function
Type
Buffer content is being changed – data length not valid
RO
RO
Number of data bytes (binary coded) in the buffer not yet read
out. Valid range is from 000000b to 100000b – 000000b means
that there are no data bytes to be read out
RO
Note(s) and/or Footnote(s):
1. Power-up and commands Set Default and Clear Buffer reset the content of this register to 0.
ams Datasheet
[v1-01] 2015-Apr-29
Page 81
Document Feedback
AS3955 − Register Description
Figure 94:
Buffer Status Register 1
Address 0Dh:
Buffer Status Register 1
Bit
Name
Function
Type
7
rfu
RO
6
rfu
RO
5
rf_busy
RO
Extended mode buffer status flags (see Extended Mode);
io_busy flag is omitted since in this it is always zero when this
byte is read out
4
rf_data_rdy
RO
3
io_data_rdy
RO
2
rfu
RO
1
buf_unf
Buffer underflow. Set when read more bytes then actual content
of buffer
RO
0
buf_ovr
Buffer overflow. Set when written more bytes then actual
content of buffer
RO
Note(s) and/or Footnote(s):
1. Power-up and commands Set Default and Clear Buffer reset the content of this register to 0.
NFC Last Address Register
Figure 95:
Last NFC Address Access Register
Address 0Eh:
Bit
Name
7
last_addr<7>
6
last_addr<6>
5
last_addr<5>
4
last_addr<4>
3
last_addr<3>
2
last_addr<2>
1
last_addr<1>
0
last_addr<0>
Last NFC Address Access
Function
Type
Contains last address accessed by reader. Updated on internal
EEPROM access over RF. The address is 8 bit long and contains
also access attempts that are higher than the EEPROM address
space. Value FFh indicates that the value is being updated and
is not valid.
RO
Note(s) and/or Footnote(s):
1. Power-up and commands Set Default and Clear Buffer reset the content of this register to 0.
Page 82
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Register Description
Version Control Register
Figure 96:
Version Control – Major Revision
Address 1Eh:
Bit
Name
Default
7
maj7
0
6
maj6
0
5
maj5
0
4
maj4
0
3
maj3
0
2
maj2
0
1
maj1
0
0
maj0
1
Version Control – Major Revision
Function
Type
Major version revision
RO
Figure 97:
Version Control – Minor Revision
Address 1Fh:
Bit
Name
Default
7
min7
0
6
min6
0
5
min5
0
4
min4
0
3
min3
0
2
min2
0
1
min1
0
0
min0
0
Version Control – Minor Revision
Function
Type
Minor version revision
RO
Note(s) and/or Footnote(s):
1. Default values are loaded from EEPROM configuration block bits (Configuration Bytes MIRQ_0 and MIRQ_1)
ams Datasheet
[v1-01] 2015-Apr-29
Page 83
Document Feedback
AS3955 − Application Information
Application Information
This section describes some general use cases of AS3955 in
combination with a microcontroller. The examples are shown
for explanatory purposes of specific AS3955 features. Detailed
descriptions of specific implementations are subject of
dedicated Application Notes.
Writing a NDEF Message into AS3955 Memory
AS3955 is an NFC Forum Type 2 Tag Platform and as such its
memory has to have the layout defined in NFC Forum Type 2
Tag Operation Specification. In a Type 2 Tag platform data is
stored in memory in the form of TLV blocks. A TLV block has
three fields: T field – tag field, L field – length field and
V field – value field.
• T field – indicates the type of the TLV block and is one byte
long.
• L field – gives the size in bytes of the value field. It’s 1 or
3 bytes long depending on the size of the value filed. When
the size of the value field is between 0 and 254 bytes, the
L field is one byte long and has a value between 00h and
FEh. For sizes of the value field between 255 and 65535
bytes, the L field is 3 bytes long. First byte is FFh indicating
that the size will be provided by the following two bytes
that can have values between 00FFh and FFFEh.
• V field – holds the bytes of the data carried by the TLV
block. When the L field is zero or not present, the V field
is omitted.
For NDEF messages the TLV block has a T field value of 03h and
the message is stored inside the V field. The NDEF Message TLV
should always be present in a T2T platform and at a minimum
it is an empty NDEF Message TLV, which is defined as an NDEF
Message TLV with L field equal 00h and no V field. For the NDEF
message format refer to NFC Data Exchange Format Technical
Specification.
Two more TLV types can exist in the memory, these are Lock
Control TLV and Memory Control TLV. When they are present
inside the memory, the NDEF Message TLV should be placed
after them.
Another structure that has to be present in the memory of T2T
platform is the Capability Container (CC). CC contains NFC
Forum management data. It is comprised of 4 bytes and always
resides at block number 03h of the memory.
The AS3955 comes with programmed CC (refer to Capability
Container in the section Memory Organization of this
datasheet), no Lock Control TLV and no Memory Control TLV.
The NDEF Message TLV then can be placed already at the
beginning of the data area of the memory - block 04h.
Page 84
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Application Information
Following is an example of an NDEF message with one Well
Known URL record, which carries the http://www.ams.com URL:
• In the NDEF message format, the URL above will be
represented by the bytes:
[D1 01 08 55 01 61 6D 73 2E 63 6F 6D]h
• The NDEF Message TLV will have the content: [03 0C D1 01
08 55 01 61 6D 73 2E 63 6F 6D]h; first byte is 03h – T field
value, indicating this is an NDEF Message TLV, second byte
is 0Ch saying the V field is 12 bytes long, the following 12
bytes are the V field holding the NDEF message.
The NDEF message TLV given above will fully occupy the first 3
blocks of the data area and the first two bytes of the 4th block
of the data area (each memory block is 4 bytes long).
Reading/Writing Through NFC Device
NFC devices use the T2T WRITE command to write data into a
T2T platform. The T2T WRITE command consists of 6 bytes, 1st
byte is the command code – A2h, 2nd byte is the block number
where data is to be written and the remaining 4 bytes are the
data content. When the execution of the command is
successful, the tag will return an ACK response – A0h. In case of
failure, a NACK code will be returned (see Error Handling section
of this datasheet for NACK codes).
The T2T READ command consists of 2 bytes, first byte is the
command code and is equal to 30h, second byte is the first block
number from which data will be returned. The response, when
successful, will return 4 blocks of data, each block is 4 bytes
long, so 16 bytes of data. In case of error, one byte NACK
response will be returned (see error handling section of AS3955
datasheet for NACK codes).
AS3955 has to be configured in Extended or Normal mode in
order for an NFC device to write/read NDEF data from the
EEPROM of the tag.
An NFC device has to send 4 write commands to the tag to write
the NDEF Message TLV bytes [03 0C D1 01 08 55 01 61 6D 73 2E
63 6F 6D]hex defined in the section above into blocks 04h-07h:
1. [A2 04 03 0C D1 01]hex
2. [A2 05 08 55 01 61]hex
3. [A2 06 6D 73 2E 63]hex
4. [A2 07 6F 6D 00 00]hex
The same NDEF Message TLV bytes can be obtained with a
single READ command, as the TLV occupies only 4 blocks and
the READ command returns 16 bytes. In case of longer NDEF
messages of course several READs are necessary until the
complete message has been read out.
ams Datasheet
[v1-01] 2015-Apr-29
Page 85
Document Feedback
AS3955 − Application Information
Reading/Writing Through SPI / I²C
An MCU can write the NDEF Message TLV bytes [03 0C D1 01 08
55 01 61 6D 73 2E 63 6F 6D]hex into blocks 04h-07h by sending
the following 4 bytes sequences through SPI or I²C (as described
in the Wired Interfaces section of this datasheet):
Writing:
1. [40 08 03 0C D1 01]hex
2. [40 0A 08 55 01 61]hex
3. [40 0C 6D 73 2E 63]hex
4. [40 0E 6F 6D 00 00]hex
To read the same data bytes written in blocks 04h – 07h, the
MCU should send the bytes sequences below (2 clock cycles for
MODE and address and 4 additional clock cycles to read the
data sent from AS3955, refer to the Wired Interfaces section of
this datasheet):
1. [7F 08 00 00 00 00]hex
2. [7F 0A 00 00 00 00]hex
3. [7F 0C 00 00 00 00]hex
4. [7F 0E 00 00 00 00]hex
Using Extended Mode to Switch AS3955 into
Tunneling Mode
An NFC device can force the AS3955 in Tunneling mode by
sending a command via Extended to the MCU to switch the
AS3955 operating mode from Extended to Tunneling (refer to
Extended mode section of this datasheet for implementation
details). If the MCU should emulate a T4T after the switch,
AS3955 should be sent to SENSE state by the MCU with the
direct command “Go To Sense” (command code D1h) and the
NFC device should do a new anti-collision round for proper T4T
activation.
Using Tunneling Mode to Emulate a NFC Type 4
Tag
For T4T emulation the Tunneling mode has to be enabled by
setting the tun_mod bit of IC_CFG2 to 1 and the SELR to 0x20.
With this configuration, once AS3955 has passed anti-collision
and entered SELCTED state, all frames coming from the NFC
interface will be pushed to the BUFFER. That means also the
SENS_REQ, ALL_REQ, SSD_REQ, SEL_REQ and SLP_REQ will not
be executed by the AS3955, so MCU must send the tag to SLEEP
state on SLP_REQ (with direct command “Go To Sleep”) and to
SENSE state (with direct command “Go To Sense”) on any of the
other commands listed above. The ISO14443A-4 command
RATS should also be handled by the MCU. RATS is sent by an
NFC device to activate ISO14443A-4, on top of which is T4T
platform is implemented.
Page 86
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Application Information
if (rxBuffer.size > 0)
{
switch (rxBuffer.data[0])
{
case 0x26:
//SENS_REQ
err = as3955DirectCommand(0xD2);
break;
case 0x50:
//SLP_REQ
if ((rxBuffer.size == 2) && (rxBuffer.data[1] == 0x00))
{
err = as3955DirectCommand(0xD0);
}
else
{
err = as3955DirectCommand(0xD2);
}
break;
case 0x52:
//ALL_REQ
err = as3955DirectCommand(0xD2);
break;
case 0x93:
//SSD_REQ cascade level 1
err = as3955DirectCommand(0xD2);
break;
case 0x95:
// SEL_REQ cascade level 2
err = as3955DirectCommand(0xD2);
break;
case 0x97:
// SSD_REQ Select cascade level 1
err = as3955DirectCommand(0xD2);
break;
case 0xE0:
//RATS
if (rxBuffer.size == 2)
{
//initialize ISO14443A-4 (T4T)
err = l4TagAppInitialize(rxBuffer.data[1]);
/*point dispatcher to a function that handles
* ISO14443A-4 blocks */
hfDispatcher = &handleL4Cmd;
}
else
{
//send the tag to SLEEP/SENSE state
err = as3955DirectCommand(0xD2);
}
ams Datasheet
[v1-01] 2015-Apr-29
Page 87
Document Feedback
AS3955 − Application Information
break;
case 0x30: // T2T read
case 0xA2: // T2T write
case 0xC2: // T2T sector select
case 0x60: // AS3955 GET_VERSION
break;
default:
//unexpected frame, send the tag to SLEEP/SENSE state
err = as3955DirectCommand(0xD2);
break;
}
}
Further, the MCU should implement the ISO14443A-4 block
transmission protocol; Select, ReadBinary and UpdateBinary
commands from ISO/IEC 7816-4.
ISO14443A-4 block transmission protocol
#define ISO14443_4_PCB_I
0x02
/*!< ISO14443_4 Data Link Layer Head-er I-block. */
#define ISO14443_4_PCB_I_MASK
0xC6
/*!< ISO14443_4 I-block Header Mask, NAD not supported. */
// added the RFU for the EMVco tests
#define ISO14443_4_PCB_I_CHAINING
0x10
/*!< ISO14443_4 I-block chaining bit. */
#define ISO14443_4_PCB_R
0xa2
/*!< ISO14443_4 Data Link Layer Head-er R-block. */
#define ISO14443_4_PCB_RACK
ISO14443_4_PCB_R
#define ISO14443_4_PCB_R_MASK
0xe6
/*!< ISO14443_4 R-block Header Mask */
#define ISO14443_4_PCB_R_NAK_BIT
0x10
/*!< ISO14443_4 R-block NAK bit */
#define ISO14443_4_PCB_S
0xc0
/*!< ISO14443_4 Data Link Layer Head-er S-block. */
/*!< ISO14443_4 Data Link Layer R(ACK) */
#define ISO14443_4_PCB_S_WTX_MASK 0xf2
/*!< ISO14443_4 S-block Header Mask */
#define ISO14443_4_PCB_S_MASK
/*!< ISO14443_4 S-block Header Mask */
0xc2
s8 handleL4Cmd()
{
s8 err = ERR_NONE;
u8 pcb;
/* read the current frame from the HF-interface */
err = as3955RxNBytes(rxBuffer.data, AS3955_RX_TX_BUFFER_SIZE, &rxBuffer.size);
if (rxBuffer.data[0] & ISO14443_4_PCB_CID_BIT)
{
if (l4Config.cid != rxBuffer.data[1])
{
//Wrong CID;
return ERR_NONE;
}
else
{
/* Reply with CID */
Page 88
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Application Information
dllHeaderSize = 2;
txBuffer.data[1] = l4Config.cid;
}
}
else
{
if (l4Config.cid)
{
return ERR_NONE;
}
else
{
/* Reply without CID */
dllHeaderSize = 1;
}
}
pcb = rxBuffer.data[0];
err = handleL4Block(pcb);
return err;
}
s8 handleL4Block(u8 pcb)
{
s8 err = ERR_NONE;
/* Look at the different commands and decide on further action */
if (ISO14443_4_PCB_I == (pcb & ISO14443_4_PCB_I_MASK))
{
if ((pcb & 1) != isoDepCnt)
{
l4FwtStartUs = stopWatchMeasure();
l4FwtTemp = l4Config.fwt_us;
txBuffer.size = 0;
isoDepCnt = !isoDepCnt; /* 7.5.3.2 Rule D, standard has a "may" on check-ing
the current block number.... */
if (ISO14443_4_PCB_I_CHAINING & pcb)
{
/* I(1) received */
memcpy(chainInBuffer + chainInSize, rxBuffer.data + dllHeader-Size,
rxBuffer.size - dllHeaderSize);
chainInSize += (rxBuffer.size - dllHeaderSize);
txBuffer.data[0] = ISO14443_4_PCB_RACK | isoDepCnt | CURR_CID_BIT;
txBuffer.size = dllHeaderSize;
err = as3955TxNBytes(txBuffer.data, txBuffer.size, 0,
AS3955_TX_FLAG_NONE);
}
else
{
/* I(0) received */
txBuffer.data[0] = ISO14443_4_PCB_I | isoDepCnt | CURR_CID_BIT;
if (chainInSize > 0)
{
memcpy(chainInBuffer + chainInSize, rxBuffer.data +
ams Datasheet
[v1-01] 2015-Apr-29
Page 89
Document Feedback
AS3955 − Application Information
dllHeaderSize, rxBuffer.size - dllHeaderSize);
chainInSize += (rxBuffer.size - dllHeaderSize);
memcpy(rxBuffer.data + dllHeaderSize, chainInBuffer,
chainInSize);
rxBuffer.size = dllHeaderSize + chainInSize;
chainInSize = 0;
}
err = nfcTagAppProcessAPDU(dllHeaderSize);
if (txBuffer.size > l4Config.fsd)
{
//start chaining to reader
memcpy(chainOutBuffer, txBuffer.data + dllHeaderSize,
txBuffer.size - dllHeaderSize);
chainOutBufferSize = txBuffer.size - dllHeaderSize;
chainOutSize = 0;
txBuffer.data[0] |= ISO14443_4_PCB_I_CHAINING;
err = as3955TxNBytes(txBuffer.data, l4Config.fsd, 0,
AS3955_TX_FLAG_NONE);
state = L4_WAIT_FOR_ACK;
if (err == ERR_NONE)
{
chainOutSize += l4Config.fsd - dllHeaderSize;
}
}
else
{
err = as3955TxNBytes(txBuffer.data, txBuffer.size, 0,
AS3955_TX_FLAG_NONE);
as3955SetTxFrameState(as3955FrameTXed);
state = L4_IDLE;
}
rxBuffer.size = 0;
rxBuffer.state = as3955FrameIdle;
}
}
else
{
/* Repeat last buffer */
err = as3955TxNBytes(txBuffer.data, txBuffer.size, 0, AS3955_TX_FLAG_NONE);
}
}
else if (ISO14443_4_PCB_R == (pcb & ISO14443_4_PCB_R_MASK))
{
if ((pcb & 1) != isoDepCnt)
{
if (ISO14443_4_PCB_R_NAK_BIT & pcb)
Page 90
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Application Information
{
/* R(NAK) received */
/* 7.5.3.2 Rule E, Note 2 no toggling for NAK*/
txBuffer.data[0] = ISO14443_4_PCB_RACK | isoDepCnt | CURR_CID_BIT;
txBuffer.size = dllHeaderSize;
err = as3955TxNBytes(txBuffer.data, txBuffer.size, 0,
AS3955_TX_FLAG_NONE);
rxBuffer.size = 0;
rxBuffer.state = as3955FrameIdle;
}
else
{
/* R(ACK) received */
/* 7.5.3.2 Rule E, normal toggling*/
isoDepCnt = !isoDepCnt;
if (L4_WAIT_FOR_ACK == state)
{
txBuffer.data[0] = ISO14443_4_PCB_I | isoDepCnt | CURR_CID_BIT;
if ((chainOutBufferSize - chainOutSize +
dllHeaderSize) > l4Config.fsd)
{
//continue with chaining
memcpy(txBuffer.data + dllHeaderSize,
chainOutBuffer + chainOutSize,
l4Config.fsd - dllHeaderSize);
txBuffer.size = l4Config.fsd;
chainOutSize += l4Config.fsd - dllHeader-Size;
txBuffer.data[0] |= ISO14443_4_PCB_I_CHAINING;
}
else
{
//last block of chaining
memcpy(txBuffer.data + dllHeaderSize,
chainOutBuffer + chainOutSize,
chainOutBufferSize - chainOutSize);
txBuffer.size = dllHeaderSize +
(chainOutBufferSize –
chainOutSize);
chainOutSize = 0;
chainOutBufferSize = 0;
state = L4_INITIALIZED;
}
err = as3955TxNBytes(txBuffer.data, txBuffer.size, 0,
AS3955_TX_FLAG_NONE);
}
else
{
//R(ACK)!
txBuffer.data[0] = ISO14443_4_PCB_RACK | isoDepCnt | CURR_CID_BIT;
txBuffer.size = dllHeaderSize;
err = as3955TxNBytes(txBuffer.data, txBuffer.size, 0,
AS3955_TX_FLAG_NONE);
ams Datasheet
[v1-01] 2015-Apr-29
Page 91
Document Feedback
AS3955 − Application Information
}
}
}
else
{
//R-block same cnt -> repeat last block
if (txBuffer.size > 0)
{
err = as3955TxNBytes(txBuffer.data, txBuffer.size, 0,
AS3955_TX_FLAG_NONE);
}
}
}
else if (ISO14443_4_PCB_S == (pcb & ISO14443_4_PCB_S))
{
//S-Block
if (ISO14443_4_PCB_S_WTX_MASK == (pcb & ISO14443_4_PCB_S_WTX_MASK))
{
/* S(WTX) received */
l4FwtStartUs = stopWatchMeasure();
txBuffer.data[0] = ISO14443_4_PCB_S_WTX_MASK |
CURR_CID_BIT;
txBuffer.size = dllHeaderSize;
err = as3955TxNBytes(txBuffer.data, txBuffer.size, 0,
AS3955_TX_FLAG_NONE);
}
if (ISO14443_4_PCB_S_MASK == (pcb & ISO14443_4_PCB_S_MASK))
{
/* S(DESELECT) received */
txBuffer.data[0] = ISO14443_4_PCB_S_MASK | CURR_CID_BIT;
txBuffer.size = dllHeaderSize;
err = as3955TxNBytes(txBuffer.data, txBuffer.size, 0, AS3955_TX_FLAG_NONE);
err = as3955DirectCommand(0xD0); //go to SLEEP
state = L4_IDLE;
hfDispatchInitialize();
}
}
return err;
}
Page 92
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Application Information
Select, ReadBinary and UpdateBInary APDUs (ISO/IEC 7816-4),
NDEF management
//NDEF application AID
static const u8 ndefAppAID[] ={0xd2, 0x76, 0x00, 0x00, 0x85, 0x01, 0x01};
#define NDEF_MSG_MAX_LENGTH
0x0204
/*!< NDEF message maximum length */
#define NDEF_CCF_MAX_LENGTH
0x0F
/*!< NDEF message maximum length */
u8 ndefMessageFile[NDEF_MSG_MAX_LENGTH] =
{
0x00, 0x31,
//NLEN
0xd1,
//mb=1 me=1 cf=0 sr=1 il=0 tnf=001
0x01,
//type length = 1 byte
0x2d,
//payload length 45 bytes
0x55,
//type 'U'
//payload: ams.com/eng/Products/RF-Products/RFID/AS3953, below the bytes
0x01, //uri identifier code 0x01 means prepending http://www. - 5 bytes so far
0x61, 0x6d, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x6e, 0x67, 0x2f, //12
0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x52, 0x46, 0x2d, //12
0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x52, 0x46, 0x49, //12
0x44, 0x2f, 0x41, 0x53, 0x33, 0x39, 0x35, 0x33, //8
0xFE,//1
};
#define RXTX_BUFFER_SIZE
256
u8 ndefFileReadCount = 0;
u8 * filePtr = NULL;
BOOL ndefInitDone = FALSE;
u8 ndefCcFile[NDEF_CCF_MAX_LENGTH] =
{
0x00, 0x0F, 0x20, 0x00, 0x1C, 0x00, 0x1A, 0x04,
0x06, 0xE1, 0x04, (u8)(0x0204 >> 8), (u8)(0x0204), 0x00, 0x00,
};
s8 nfcTagAppProcessAPDU(int dllInHeaderSize)
{
s8 err = ERR_NONE;
u8 * rxPtr = &rxBuffer.data[dllInHeaderSize];
if (*(rxPtr) == 0x00)
{
txBuffer.size = dllInHeaderSize + 2;
rxPtr += 1;
switch (*rxPtr)
{
case C_APDU_SELECT_CMD:
//select command detected -> check what should be selected
switch (*(rxPtr + 1))
ams Datasheet
[v1-01] 2015-Apr-29
Page 93
Document Feedback
AS3955 − Application Information
{
case C_APDU_SELECT_P1_BYNAME:
// check if this is _THE_ NDEF APP SELECT CMD
if (*(rxPtr + 3) == 0x07 && !memcmp((rxPtr + 4), &ndefAppAID[0], 7))
{
selectedApp = t4AppNDEF;
txBuffer.data[dllInHeaderSize] = 0x90;
txBuffer.data[dllInHeaderSize + 1] = 0x00;
}
else
{
//ERROR
selectedApp = t4AppNone;
err = ERR_PARAM;
txBuffer.data[dllInHeaderSize] = 0x6a;
txBuffer.data[dllInHeaderSize + 1] = 0x82;
}
break;
case C_APDU_SELECT_P1_BYID:
if (selectedApp == t4AppNDEF)
{
//read NDEF message saved in MCU's internal flash memory
flashReadNdef();
err = ndefSelectFile(rxPtr);
if (ERR_NONE == err)
{
txBuffer.data[dllInHeaderSize + 0] = 0x90;
txBuffer.data[dllInHeaderSize + 1] = 0x00;
}
else
{
txBuffer.data[dllInHeaderSize + 0] = 0x6a;
txBuffer.data[dllInHeaderSize + 1] = 0x82;
}
}
else
{
err = ERR_PARAM;
txBuffer.data[dllInHeaderSize] = 0x6a;
txBuffer.data[dllInHeaderSize + 1] = 0x82;
}
break;
default:
err = ERR_PARAM;
txBuffer.data[dllInHeaderSize] = 0x6a;
txBuffer.data[dllInHeaderSize + 1] = 0x82;
break;
}
break;
case C_APDU_READBIN_CMD:
Page 94
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Application Information
if (selectedApp == t4AppNDEF)
{
err = ndefReadFile(rxPtr, dllInHeaderSize);
}
else
{
err = ERR_PARAM;
txBuffer.data[dllInHeaderSize] = 0x6a;
txBuffer.data[dllInHeaderSize + 1] = 0x82;
}
break;
case C_APDU_UPDATEBIN_CMD:
if (selectedApp == t4AppNDEF)
{
err = ndefWriteFile(rxPtr);
if (ERR_NONE == err)
{
txBuffer.data[dllInHeaderSize + 0] = 0x90;
txBuffer.data[dllInHeaderSize + 1] = 0x00;
}
else
{
txBuffer.data[dllInHeaderSize + 0] = 0x6a;
txBuffer.data[dllInHeaderSize + 1] = 0x82;
}
}
else
{
err = ERR_PARAM;
txBuffer.data[dllInHeaderSize] = 0x6a;
txBuffer.data[dllInHeaderSize + 1] = 0x82;
}
break;
default:
err = ERR_PARAM;
txBuffer.data[dllInHeaderSize + 0] = 0x6d;
txBuffer.data[dllInHeaderSize + 1] = 0x00;
break;
}
}
else
{
//Unknown Class Byte
err = ERR_PARAM;
txBuffer.data[dllInHeaderSize + 0] = 0x6d;
txBuffer.data[dllInHeaderSize + 1] = 0x00;
}
return err;
}
ams Datasheet
[v1-01] 2015-Apr-29
Page 95
Document Feedback
AS3955 − Application Information
s8 ndefReadFile (u8 * rxPtr, u8 hdrLen)
{
s8 err = ERR_NONE;
if (filePtr != NULL)
{
// read from file
u16 offset = (*(rxPtr + 1) << 8) | *(rxPtr + 2);
u8 length = *(rxPtr + 3);
memcpy(&txBuffer.data[hdrLen], filePtr + offset, length);
txBuffer.data[hdrLen + length] = 0x90;
txBuffer.data[hdrLen + length + 1] = 0x00;
txBuffer.size = hdrLen + length + 2;
}
else
{
txBuffer.data[hdrLen + 0] = 0x6a;
txBuffer.data[hdrLen + 1] = 0x82;
err = ERR_PARAM;
}
return err;
}
s8 ndefWriteFile (u8 * rxPtr)
{
s8 err = ERR_NONE;
if (filePtr != NULL)
{
//write to file
u16 offset = (*(rxPtr + 1) << 8) | *(rxPtr + 2);
u8 length = *(rxPtr + 3);
memcpy(filePtr + offset, rxPtr + 4, length);
}
else
{
err = ERR_PARAM;
}
return err;
}
s8 ndefSelectFile (u8 * rxPtr)
{
s8 err = ERR_NONE;
filePtr = NULL;
if (*(rxPtr + 3) == 0x02)
{
// ID size == 2 -> files
if (*(rxPtr + 4) == 0xE1)
{
switch (*(rxPtr + 5))
{
Page 96
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Application Information
case 0x03:
// CCF selected
filePtr = (u8*) ndefCcFile;
break;
case 0x04:
//NDEF message selected
filePtr = (u8*) ndefMessageFile;
break;
default:
err = ERR_PARAM;
break;
}
}
else
{
err = ERR_PARAM;
}
}
else
{
err = ERR_PARAM;
}
return err;
}
ams Datasheet
[v1-01] 2015-Apr-29
Page 97
Document Feedback
AS3955 − Application Information
References
• [EMVCO-1] EMVCo Type Approval Contactless Terminal
Level 1 – PCD Digital Test Bench & Test Cases, version
2.3.1a, January 2013
• [ISO14443-3] ISO/IEC 14443-3:2011(E), Identification
cards — Contactless integrated circuit cards — Proximity
cards — Part 3: Initialization and anticollision
• [ISO14443-4] ISO/IEC 14443-4:2008(E), Identification
cards — Contactless integrated circuit(s) cards —
Proximity cards — Part 4: Transmission protocol
• [ISO18092] ISO/IEC 18092:2013 — Information
technology — Telecommunications and information
exchange between systems — Near Field Communication
— Interface and Protocol (NFCIP-1)
• [ISO7816-3] ISO/IEC 7816-3:2006, Identification cards —
Integrated circuit cards — Part 3: Cards with contacts —
Electrical interface and transmission protocols
• [ISO7816-4] ISO/IEC 7816-4:2005, Identification cards —
Integrated circuit cards — Part 4: Organization, security
and commands for interchange
• [ISO7816-6] ISO/IEC 7816-6:2004, Identification cards —
Integrated circuit cards — Part 6: Interindustry data
elements for interchange
• [NFC Analog] NFC Analog Specification — NFC Forum,
11.07.2011, Version 1.0
• [NFC Digital] NFC Digital Protocol — NFC Forum,
17.11.2010, Version 1.0
• [NDEF] NFC Data Exchange Format (NDEF), Technical
Specification — NFC Forum, 24.07.2006, Version 1.0
• [PHDC] Personal Health Device Communication),
Technical Specification — NFC Forum, 27.02.2013, Version
1.0
• [T2T] Tag 2 Type Operation, Technical Specification —
NFC Forum, 31.05.2011, Version 1.1
• [T4T] Tag 4 Type Operation, Technical Specification —
NFC Forum, 28.06.2011, Version 2.0
Page 98
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Package Drawings & Markings
Package Drawings & Markings
Figure 98:
Package Outline Drawings MLPD
RoHS
Green
Symbol
Min
Nom
Max
A
A1
A3
L
b
D
E
e
D2
E2
aaa
bbb
ccc
ddd
eee
N
0.80
0
0.90
0.02
0.20 REF
0.40
0.25
3.00 BSC
3.00 BSC
0.50 BSC
2.38
1.64
0.15
0.10
0.10
0.05
0.08
10
1.00
0.05
0.30
0.18
2.23
1.49
-
0.50
0.30
2.48
1.74
-
Note(s) and/or Footnote(s):
1. Dimensioning and tolerancing conform to ASME Y14.5M-1994.
2. All dimensions are in millimeters. Angles are in degrees.
3. Coplanarity applies to the exposed heat slug as well as the terminal.
4. Radius on terminal is optional.
5. N is the total number of terminals.
ams Datasheet
[v1-01] 2015-Apr-29
Page 99
Document Feedback
AS3955 − Package Drawings & Mark ings
Figure 99:
Package Marking MLPD (I²C)
AS39
55I4
XXXX
Figure 100:
Package Marking MLPD (SPI)
AS39
55S4
XXXX
Figure 101:
Package Code MLPD
XXXX
Tracecode
Page 100
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Package Drawings & Markings
Figure 102:
Package Outline Drawings WL-CSP
RoHS
Green
Note(s) and/or Footnote(s):
1. Pin 1=A1
2. ccc Coplanarity
3. All dimensions are in μm.
ams Datasheet
[v1-01] 2015-Apr-29
Page 101
Document Feedback
AS3955 − Package Drawings & Mark ings
Figure 103:
Package Marking WL-CSP
3955_S4
XXXX
Figure 104:
Package Code WL-CSP
XXXX
Tracecode
Page 102
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Ordering & Contact Information
Ordering & Contact Information
Figure 105:
Ordering Information
Ordering Code
Package
Marking
Delivery Form
Configuration
AS3955-ATDM-S4
MLPD
AS3955S4
Mini Reels
SPI - EEPROM 4kbit
AS3955-ATDT-S4
MLPD
AS3955S4
Tape & Reel
SPI - EEPROM 4kbit
AS3955-ATDM-I4 (1)
MLPD
AS3955I4
Mini Reels
I²C - EEPROM 4kbit
AS3955-ATDT-I4 (1)
MLPD
AS3955I4
Tape & Reel
I²C - EEPROM 4kbit
AS3955-AWLT-S4 (1)
WL-CSP
3955_S4
Tape & Reel
SPI - EEPROM 4kbit
AS3955-AWLT-I4 (1)
WL-CSP
3955_I4
Tape & Reel
I²C - EEPROM 4kbit
AS3955-ASWF-S4 (1)
Sorted wafer
NA
Wafer Box
SPI - EEPROM 4kbit
AS3955-ASWF-I4 (1)
Sorted wafer
NA
Wafer Box
I²C - EEPROM 4kbit
AS3955-ATDM-S2 (2)
MLPD
AS3955S2
Mini Reels
SPI - EEPROM 2kbit
AS3955-ATDT-S2 (2)
MLPD
AS3955S2
Tape & Reel
SPI - EEPROM 2kbit
AS3955-ATDM-I2 (2)
MLPD
AS3955I2
Mini Reels
I²C - EEPROM 2kbit
AS3955-ATDT-I2 (2)
MLPD
AS3955I2
Tape & Reel
I²C - EEPROM 2kbit
AS3955-AWLT-S2 (2)
WL-CSP
3955_S2
Tape & Reel
SPI - EEPROM 2kbit
AS3955-AWLT-I2 (2)
WL-CSP
3955_I2
Tape & Reel
I²C - EEPROM 2kbit
AS3955-ASWF-S2 (2)
Sorted wafer
NA
Wafer Box
SPI - EEPROM 2kbit
AS3955-ASWF-I2 (2)
Sorted wafer
NA
Wafer Box
I²C - EEPROM 2kbit
Note(s) and/or Footnote(s):
1. Not available yet
2. Will be available on request
ams Datasheet
[v1-01] 2015-Apr-29
Page 103
Document Feedback
AS3955 − Ordering & Contact Information
Buy our products or get free samples online at:
www.ams.com/ICdirect
Technical Support is available at:
www.ams.com/Technical-Support
Provide feedback about this document at:
www.ams.com/Document-Feedback
For further information and requests, e-mail us at:
[email protected]
For sales offices, distributors and representatives, please visit:
www.ams.com/contact
Headquarters
ams AG
Tobelbaderstrasse 30
8141 Unterpremstaetten
Austria, Europe
Tel: +43 (0) 3136 500 0
Website: www.ams.com
Page 104
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − RoHS Compliant & ams Green Statement
RoHS Compliant & ams Green
Statement
RoHS: The term RoHS compliant means that ams AG products
fully comply with current RoHS directives. Our semiconductor
products do not contain any chemicals for all 6 substance
categories, including the requirement that lead not exceed
0.1% by weight in homogeneous materials. Where designed to
be soldered at high temperatures, RoHS compliant products are
suitable for use in specified lead-free processes.
ams Green (RoHS compliant and no Sb/Br): ams Green
defines that in addition to RoHS compliance, our products are
free of Bromine (Br) and Antimony (Sb) based flame retardants
(Br or Sb do not exceed 0.1% by weight in homogeneous
material).
Important Information: The information provided in this
statement represents ams AG knowledge and belief as of the
date that it is provided. ams AG bases its knowledge and belief
on information provided by third parties, and makes no
representation or warranty as to the accuracy of such
information. Efforts are underway to better integrate
information from third parties. ams AG has taken and continues
to take reasonable steps to provide representative and accurate
information but may not have conducted destructive testing or
chemical analysis on incoming materials and chemicals. ams AG
and ams AG suppliers consider certain information to be
proprietary, and thus CAS numbers and other limited
information may not be available for release.
ams Datasheet
[v1-01] 2015-Apr-29
Page 105
Document Feedback
AS3955 − Copyrights & Disclaimer
Copyrights & Disclaimer
Copyright ams AG, Tobelbader Strasse 30, 8141
Unterpremstaetten, Austria-Europe. Trademarks Registered. All
rights reserved. The material herein may not be reproduced,
adapted, merged, translated, stored, or used without the prior
written consent of the copyright owner.
Devices sold by ams AG are covered by the warranty and patent
indemnification provisions appearing in its General Terms of
Trade. ams AG makes no warranty, express, statutory, implied,
or by description regarding the information set forth herein.
ams AG reserves the right to change specifications and prices
at any time and without notice. Therefore, prior to designing
this product into a system, it is necessary to check with ams AG
for current information. This product is intended for use in
commercial applications. Applications requiring extended
temperature range, unusual environmental requirements, or
high reliability applications, such as military, medical
life-support or life-sustaining equipment are specifically not
recommended without additional processing by ams AG for
each application. This product is provided by ams AG “AS IS”
and any express or implied warranties, including, but not
limited to the implied warranties of merchantability and fitness
for a particular purpose are disclaimed.
ams AG shall not be liable to recipient or any third party for any
damages, including but not limited to personal injury, property
damage, loss of profits, loss of use, interruption of business or
indirect, special, incidental or consequential damages, of any
kind, in connection with or arising out of the furnishing,
performance or use of the technical data herein. No obligation
or liability to recipient or any third party shall arise or flow out
of ams AG rendering of technical or other services.
Page 106
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Document Status
Document Status
Document Status
Product Preview
Preliminary Datasheet
Datasheet
Datasheet (discontinued)
ams Datasheet
[v1-01] 2015-Apr-29
Product Status
Definition
Pre-Development
Information in this datasheet is based on product ideas in
the planning phase of development. All specifications are
design goals without any warranty and are subject to
change without notice
Pre-Production
Information in this datasheet is based on products in the
design, validation or qualification phase of development.
The performance and parameters shown in this document
are preliminary without any warranty and are subject to
change without notice
Production
Information in this datasheet is based on products in
ramp-up to full production or full production which
conform to specifications in accordance with the terms of
ams AG standard warranty as given in the General Terms of
Trade
Discontinued
Information in this datasheet is based on products which
conform to specifications in accordance with the terms of
ams AG standard warranty as given in the General Terms of
Trade, but these products have been superseded and
should not be used for new designs
Page 107
Document Feedback
AS3955 − Revision Information
Revision Information
Changes from 1-00 (2015-Apr-27) to current revision 1-01 (2015-Apr-29)
Page
Added section SPI / I2C Access Modes
55
Updated Figure 71
66
Updated Figure 72
66
Updated Figure 73
67
Updated Figure 75
68
Updated Figure 76
68
Updated Figure 77
69
Updated Figure 78
69
Updated Figure 79
70
Note(s) and/or Footnote(s):
1. Page and figure numbers for the previous version may differ from page and figure numbers in the current revision.
2. Correction of typographical errors is not explicitly mentioned.
Page 108
Document Feedback
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Content Guide
Content Guide
1
2
3
4
General Description
Key Benefits & Features
Applications
Block Diagram
6
7
Pin Assignments
Pin Description
8
Absolute Maximum Ratings
9
9
9
10
Electrical Characteristics
Operating Conditions
DC/AC Characteristics for Digital Inputs and Outputs
Electrical Specifications
12
12
13
13
15
15
15
15
16
16
16
17
17
18
18
19
19
20
20
20
20
21
21
22
22
22
22
22
23
23
23
24
24
24
Detailed Description
Analog Frontend (AFE)
Power Management
Power Mode 0
Power Mode 1
Power Mode 2
Power Mode 3
Interface Arbitration
Arbitration Mode 0
Arbitration Mode 1
Energy Harvesting
Silent Mode
Memory Protection
Passive Wake-Up
Chip Kill
NFC Tag Functionality
Communication Principle
SENSE State
SLEEP State
RESOLUTION State
SELECTED State
AUTHENTICATED State
NFC Forum Type 2 Tag Support
UID Coding
First UID Byte (uid0)
Second UID Byte (uid1)
Third UID Byte (uid2)
Last Four UID Bytes (uid3-uid6)
Coding of SENS_RES, SEL_REQ, ACK and NACK
SENS_RES Response
SEL_RES Response, Cascade Level 1 and 2
ACK Response
NACK Response
Access to UID, SENS_RES and SEL_REQ During Anti-Collision
Get Version Command
Memory Organization
4kbit EEPROM Organization
2kbit EEPROM Organization
24
26
26
28
ams Datasheet
[v1-01] 2015-Apr-29
Page 109
Document Feedback
AS3955 − Content Guide
29
29
29
30
30
31
32
33
33
34
35
36
37
37
38
38
39
40
41
42
42
42
42
43
43
44
45
47
49
50
52
52
55
55
56
57
58
59
61
62
62
63
64
65
66
67
67
69
69
70
Page 110
Document Feedback
UID Bytes
Fabrication Data
Fabrication Data FAB_CFG0
Fabrication Data FAB_CFG1
Fabrication Data FAB_CFG2
Fabrication Data FAB_CFG3
Capability Container
Configuration Bytes
Authentication Password
Configuration Byte CHIP_KILL
Configuration Byte AUTH_CNT
Configuration Byte AUTH_LIM
Configuration Byte AUTH_CFG
Configuration Byte SENSR1
Configuration Byte SENSR2
Configuration Byte SELR
Configuration Byte IC_CFG0
Configuration Byte IC_CFG1
Configuration Byte IC_CFG2
Configuration Bytes MIRQ_0 and MIRQ_1
AS3955 Communication Modes
Standalone NFC Type 2 Tag Mode
Tunneling Mode
Data Transaction in Tunneling Mode
Relevant Registers, Interrupts and Commands
Extended Mode
NFC Device to MCU Data Flow Protocol
MCU to NFC Device Data Flow Protocol
Relevant Registers, Interrupts and Commands
Extended Mode Timing Diagram
Implementation Recommendations
Error Handling
Wired Interfaces
SPI / I²C Access Modes
SPI Interface
Writing Data to Addressable Registers
(Register Write Mode)
Reading Data from Addressable Registers
(Register Read Mode)
Writing and Reading of EEPROM Through SPI
Loading Transmission Data into Buffer
Reading Received Data from Buffer
Direct Command Mode
SPI Timing
SPI Electrical Connection
I²C Interface
Writing Data to Addressable Registers (Register Write
Mode)
Reading Data from Addressable Registers (Register Read
Mode)
Writing and Reading EEPROM through I²C
Loading Transmission Data into Buffer
Reading Received Data from Buffer
Direct Command Mode
ams Datasheet
[v1-01] 2015-Apr-29
AS3955 − Content Guide
ams Datasheet
[v1-01] 2015-Apr-29
70
71
71
72
72
73
73
73
73
74
74
74
74
74
74
74
I²C Electrical Connection
Interrupt Interface Description
Buffer Interrupts and Buffer Status Register
EEPROM Read and Write
Data Buffer
Direct Commands
Set Default
Clear Buffer
Restart Transceiver
Disable/Enable Transceiver
Transmit Buffer
Transmit ACK
Transmit NACK 0-5
Go To Sleep
Go To Sense
Go To Sense / Sleep
75
75
76
76
78
79
81
82
83
Register Description
Registers Overview
IO Configuration Register
IC Configuration Registers
Status Display Registers
Interrupt Registers
Buffer Registers
NFC Last Address Register
Version Control Register
84
84
85
86
86
86
98
Application Information
Writing a NDEF Message into AS3955 Memory
Reading/Writing Through NFC Device
Reading/Writing Through SPI / I²C
Using Extended Mode to Switch AS3955 into Tunneling
Mode
Using Tunneling Mode to Emulate a NFC Type 4 Tag
References
99
103
105
106
107
108
Package Drawings & Markings
Ordering & Contact Information
RoHS Compliant & ams Green Statement
Copyrights & Disclaimer
Document Status
Revision Information
Page 111
Document Feedback
Similar pages