LAPIS ML7396A Sub ghz band short range wireless transceiver ic Datasheet

FEDL7396A/B/E-07
Issue Date: Jan. 15, 2015
ML7396A/B/E
Sub GHz band short range wireless transceiver IC
■Overview
The ML7396 family (ML7396A (915MHz band), ML7396B (920MHz band), and ML7396E (868MHz band)) are ICs for
transmitting/receiving data which integrate the RF, IF, MODEM and HOST interface sections into one chip for the specified low
power radio communication. The ML7396 family is used for FCC PART15, ARIB STD-108(specified low-power radio station,
920MHz-band telemeter, telecontrol and data transmission radio equipment), ETSI EN 300 220 compliant radio station, and uses
a packet transmission function of IEEE802.15.4d and IEEE802.15.4g.
■Features
• Compliant to ARIB STD T-108 (ML7396B)
• Compliant to FCC Part15 (ML7396A)
• Compliant to ETSI EN 300-220 (ML7396E)
• High resolution modulation by using fractional-N PLL direct modulation.
• Modulation: GFSK / GMSK, FSK / MSK
(MSK is FSK transmission of modulation index: m=0.5 )
• Data rates: 10 / 20 / 40 / 50 / 100 / 150 / 200 kbps and 400 kbps (option)
• Data coding: NRZ and Manchester codes
• Programable channel filter suited to data rates
• Programmable frequency deviation function
• TX and RX data inverse function
• 36MHz oscillator circuit
• TCXO direct inputs available
• Oscillator capacitance fine tuning function
• Frequency fine tuning function (using fractional-N PLL)
• Synchronous serial peripheral interface (SPI)
• On chip TX PA (20mW/10mW/1mW selectable)
• External TX PA control function
• RSSI indicator and threshold judgement function
• AFC function
• Antenna diversity function
• Test pattern generator (PN9, CW, 01 pattern, all”1”, all“0”)
• FEC function
• CRC32 (Note: This function is not compliant to IEEE802.15.4g.)
• IEEE802.15.4d/g support
o Two 256-byte FIFOs (TX/RX common use)
o Max packet length 2047 byte (IEEE802.15.4g mode)
o RX Preamble pattern detection function (Programmable between 1 to 15 byte)
o Programmable TX preamble length (Max 255 byte)
o SFD generation and detection function (Max 4 byte)
o Programmable CRC function (CRC32, CRC16-IBM, CRC16, CRC8 or no-CRC)
o Whitening function
o Address filtering function
o Automatic Acknowledge (Ack TX or RX) function
o FEC function (IEEE802.15.4g mode)
Note; Interleaving mode is not compliant to IEEE802.15.4g.
1/140
FEDL7396A/B/E-07
ML7396A/B/E
• Supply voltage:
1.8 to 3.6V (TX power 1mW mode)
2.3 to 3.6V (TX power 10mW mode)
2.6 to 3.6V (TX power 20mW mode)
• Operating temperature:
-40 to +85 ˚C
• Current consumption (920MHz)
Sleep mode
0.6 μA (Typ.) (registor value retention)
Idle mode
1.4mA (Typ.)
TX
20mW
32 mA (Typ.)
10mW
24 mA (Typ.)
1mW
13 mA (Typ.)
RX
15 mA (Typ.) (@100kbps)
• Package
40 pin WQFN
P-WQFN40-0606-0.50
Pb free, RoHS compliant
■Description Convention
1) Numbers description
‘0xnn’ indicates hexa decimal. ‘0bnn’ indicates binary.
Example: 0x11= 17(decimal), 0b11= 3(decimal)
2) Registers description
[<register name>: B<Bank No> <register address>] register
Example: [CLK_SET:B0 0x02] register
Register name: CLK_SET
Bank No: 0
Register address: 0x02
3) Bir name description
<bit name> ([<register name>: B<Bank No> <register address>(<bit location>)])
Example: RATE[2:0] ([DATA_SET:B0 0x47(2-0)])
Bit name: RATE[2:0]
Register name: DATA_SET
Bank No: 0
Register address: 0x47
Bit location: bit2 to bit0
4) In this document
“TX” stands for transmittion.
“RX” stands for reception.
2/140
FEDL7396A/B/E-07
ML7396A/B/E
■Block Diagram
ATEST1 ATEST2 A_MON
ML7396A_B_E
RESETN
RF
BB
DCLK
DIO
TRX_SW
LNA_P
LNA
MIX
TEMP
RSSI
BPF
Limiter
ED_VAL
PHY
Demod
RF_Ma
nager
PA_OUT
REGPDIN
VCO
1mW/10m
W/20mW
REG_PA
S
P
I
SCLK
SDO
HOST
MCU
SDI
SCEN
FIFO
LO PLL
PA
ANT_SW
DIO
Digital
Mod
FMAP
Reg(PA)
I
R
C
SINTN
Reg
VBG REG_OUT XIN
REG_CORE
XOUT TCXO VB_EXT IND1,2
LP1,2
LC
DMON
(CLKOUT)
ANT_SW
DCNT
3/140
FEDL7396A/B/E-07
ML7396A/B/E
■PIN Configuration
LNA_P
VDD_PA
REG_PA
PA_OUT
ATEST2
ATEST1
A_MON
VDD_IF
DCNT
TRX_SW
40 Pin WQFN
30
29
28
27
26
25
24
23
22
21
N.C.
31
20
ANT_SW
VDD_RF
32
19
TEST
LP1
33
18
VDDIO
VDD_CP
34
17
DMON
LP2
35
16
DCLK
IND1
36
15
DIO
IND2
37
14
VDDIO
VB_EXT
38
13
SDI
VDD_VCO
39
12
SCEN
VDD_REG
40
11
SCLK
1
2
3
4
5
6
7
8
9
10
VBG
REG_OUT
REG_CORE
XIN
XOUT
TCXO
RESETN
REGPDIN
SDO
SINTN
GND
裏面PKG
GND PAD
(T.B.D.)
NOTE) GND pad in the middle of the IC is reverse side (name: GND PAD)
4/140
FEDL7396A/B/E-07
ML7396A/B/E
■PIN Definitions
Symbols
IRF
ORF
IA
IOS
OOS
I
O
I/O
Is
: RF input
: RF output
: Analog input
: Oscillator input
: Oscillator output
: Digital input
: Digital output
: Digital inout
: Schmitt Trigger input
●RF and Analog pins
Pin
No
Pin name
Reset
state
I/O
Active
Level
30
LNA_P
I
IRF
-
RF antenna input
27
PA_OUT
O
ORF
-
RF antenna output
36
IND1
-
-
-
Pin for VCO inductor
37
IND2
-
-
-
Pin for VCO inductor
33
LP1
-
-
-
Pin for PLL loop filter
38
VB_EXT
-
-
-
Pin for smoothing capacitor for internal bias
25
ATEST1
Hi-Z
ORF
-
26
ATEST2
Hi-Z
ORF
-
24
A_MON
Hi-Z
ORF
-
Detail function
Test pin for analog circuit.
*Left open when in normal use
Test pin for analog circuit.
*Left open when in normal use
Analog monitor pin (*1)
[Description]
*1 Analog monitor signal can be configured by [RSSI/TEMP_OUT:B1 0x03] register, no signal assigned as default
condition.
5/140
FEDL7396A/B/E-07
ML7396A/B/E
PIN DEFINITION(continued)
●SPI interface pins
Pin
No
Pin name
Reset
state
I/O
Active
Level
9
SDO
O/L
O
H or L
SPI data output
13
SDI
I
Is
H or L
SPI data input
11
SCLK
I
Is
P or N
SPI clock input
12
SCEN
I
Is
L
10
SINTN
O/H
O
L
Detail function
SPI chip enable
L: enable
H: disable
SPI interrupt output
L: interrupt occurs
H: -
●DIO interface pins
Pin No
Pin name
Reset
state
I/O
Active
Level
15
DIO
O/L
I/O
H or L
DIO data input/output
16
DCLK
O/L
O
P or N
DIO clock output
Detail function
●Regulator pins
Pin
No
Pin name
Reset
state
I/O
Active
Level
Detail function
2
REG_OUT
-
-
-
Regulator output (typ.1.5V)
(Cap 10uF)
Note: This pin will output 0V in the sleep
state
3
REG_CORE
-
-
-
Monitor pin for power supply to digital
core(typ.1.5V) (Cap 10uF)
1
VBG
-
-
-
8
REGPDIN
I
I
H
28
REG_PA
-
-
-
Pin for decoupling capacitor pin
(Cap 0.1uF)
Power down pin for regulator
* Fix to “L” for normal use
Regulator output for PA block
Note: This pin will output 0V in the sleep
state
6/140
FEDL7396A/B/E-07
ML7396A/B/E
PIN DEFINITION(continued)
●Miscellaneous pins
Pin
No
Pin name
Reset
state
I/O
Active
Level
7
RESETN
I
Is
L
4
XIN
I
Ios
P or N
5
XOUT
O
Oos
P or N
6
TCXO
I
IA
-
20
ANT_SW
O/L
O
21
TRX_SW
O/L
O
19
TEST
I
I
H
17
DMON*1
O
O
H
22
DCNT
O/L
O
H or L or
OD
31,35
N.C.
-
-
-
Detail function
Hardware reset
L: Hardware reset enable
H: normal operation
36MHz crystal pin1
*Fixed to GND in case of using external
clock
36MHzcristal pin2
*Fixed to GND in case of using external
clock
External clock (TCXO) input pin.
*Fixed to GND in case of using crystal
oscillator
H or L or
OD
H or L or
OD
Diversity control signal
TX-RX switch signal
Test mode input
Fixed to “L” for normal use
Digital monitor pin
Primary function: Clock output (6MHz)
Secondary function: PLL_LD output
Third function: FIFO trigger output
External TX PA control signal
Non connection
[Description]
*1 Function of DMON pin can be selected by following condition. Clock output as a default.
If clock output is not used, please select another function. Please refer to each register description for more details.
Primary function will have higher priority when multiple function are configured simultaneously.
Configuration of DMON output
Function Name
Configuration register name
Address
Bit position (bit symbol)
CLK output
CLK_SET
B0 0x02
bit4 (CLKOUT_EN)
PLL_LD output
PLL_MON/DIO_SEL
B0 0x69
bit4 (PLL_LD)
FIFO trigger output
CRC_AREA/FIFO_TRG
B0 0x77
bit0 (FIFO_TRG_EN)
7/140
FEDL7396A/B/E-07
ML7396A/B/E
●Power supply pins
Pin
No
Pin name
Reset
state
I/O
Active
Level
14,18
VDDIO
-/-
PWR
-
40
VDD_REG
-/-
PWR
-
29
VDD_PA
-/-
PWR
-
32
VDD_RF
-/-
PWR
-
23
VDD_IF
-/-
PWR
-
34
VDD_CP
-/-
PWR
-
39
VDD_VCO
-/-
PWR
-
EL
-
-/-
GND
-
Detail function
Power supply for digital IOs
(Input voltage: 1.8V to 3.3V)
Power supply for regulator input
(Input voltage: 1.8V to 3.3V)
Power supply for PA block
(Input voltage: 1.8V to.3.3V, depending on TX
mode)
Power supply for RF blocks
(REG_OUT is connected, typ.1.5V)
Power supply for IF block
(REG_OUT is connected, typ.1.5V)
Power supply for charge pump
(REG_OUT is connected, typ.1.5V)
Power supply for VCO
(REG_OUT is connected, typ.1.5V)
GND PAD
●Unused pins
Unused pins treatments are as follows:
Pin Name
XIN
XOUT
TCXO
ATEST1
ATEST2
A_MON
ANT_SW
DMON
DCNT
Pin number
4
5
6
25
26
24
20
17
22
Recommended treatment
Fixed to GND (When TCXO is used)
Fixed to GND (When TCXO is used)
Fixed to GND (When crystal OSC is used)
Left OPEN
Left OPEN
Left OPEN
Left OPEN
Left OPEN *1
Left OPEN
*1 If not using DMON, it is necessary to stop clock out (default output on DMON) by CLKOUT_EN
([CLK_SET:B0 0x02(4)]). Left open with enableing clock out causes the perfoemance down on RX sensitivity.
Note: If input pins are high-impedence state and leave open, excess current could be drawn. Care must be taken that unused
input pins and unused I/O pins should not be left open.
8/140
FEDL7396A/B/E-07
ML7396A/B/E
■Electrical Characteristics
●Absolute maximum ratings
Item
Symbol
Condition
Rating
Unit
Power Supply (I/O) (*1)
VDDIO
-0.3 to +4.6
V
Power Supply (RF) (*2)
VDDRF
-0.3 to +2.0
V
Digital Input Voltage
VDIN
-0.3 to VDDIO+0.3
V
RF Input Voltage
VRFIN
-1.0 to +2.0
V
Analog Input Voltage
VAIN
-0.3 to VDDIO+0.3
V
Analog Input Voltage2 (*3)
VAIN2
-0.3 to VDDRF+0.3
V
TCXO Input Voltage
VTCXO
-0.3 to +1.75
V
Digital Output Voltage
VDO
Ta=-40 to 85 ˚C
-0.3 to VDDIO+0.3
V
RF Output Voltage
VRFO
GND=0V
-0.3 to VDDRF+1.9
V
Analog Output Voltage
VAO
-0.3 to VDDIO+0.3
V
Analog Output Voltage2 (*4)
VAO2
-0.3 to VDDRF+0.3
V
Digital Input Current
IDI
-10 to +10
mA
RF Input Current
IRF
-2 to +2
mA
Analog Input Current
IAI
-2 to +2
mA
Analog Input Current2 (*3)
IAI2
-2 to +2
mA
TCXO Input Current
ITCXO
-2 to +2
mA
Digital Output Current
IDO
-8 to +8
mA
RF Output Current
IRFO
-2 to +60
mA
Analog Output Current
IAO
-2 to +2
mA
Analog Output Current2 (*4)
IAO2
-2 to +2
mA
Power Dissipation
Pd
Ta=+25 ˚C
300
mW
Storage Temperature
Tstg
-
-55 to +150
˚C
*1
*2
*3
*4
VDD_IO, VDD_REG, VDD_PA pins
VDD_RF, VDD_IF, VDD_VCO, VDD_CP pins
XIN, TCXO pins
XOUT pin
9/140
FEDL7396A/B/E-07
ML7396A/B/E
●Recommended operating conditions
Item
Power Supply (I/O)
Power Supply (PA)
Symbol
VDDIO
VDDPA
Min
Typ
Max
Unit
VDD_IO, VDD_REG pins
Conditions
1.8
3.3
3.6
V
VDD_PA pin
TX power 1mW mode
1.8
3.3
3.6
V
VDD_PA pin
TX power 10mW mode
2.3
3.3
3.6
V
VDD_PA pin
TX power 20mW mode
2.6
3.3
3.6
V
VDD_RF,
VDD_IF,
VDD_VCO,
VDD_CP pins
1.4
1.5
1.6
V
+25
-
+85
˚C
Power Supply (RF) (*2)
VDDRF
Operating Temperature
Ta
Digital Input Rising Time
TIR
Digital input pins (*1)
-40
-
20
ns
Digital Input Falling Time
TIF
Digital Input pins (*1)
-
-
20
ns
Digital Output Loads
CDL
All Digital Output pins
-
-
20
pF
-
Master Clock1 Accuracy
(Crystal)
FMCK1
XIN, XOUT pins
-20ppm
(*3)
36
+20ppm
(*3)
MHz
Master Clock2 Accuracy
(TCXO)
FMCK2
TCXO pin
-20ppm
(*3)
36
+20ppm
(*3)
MHz
TCXO Input Voltage
VTCXO
DC cut
0.8
-
1.5
Vpp
SPI clock frequency
FSCLK
SCLK pin
0.032
2
16
MHz
SPI clock duty ratio
DSCLK
SCLK pin
45
50
55
%
LNA_P,PA_OUT pins
863
-
960
MHz
RF channel frequency
FRF
*1 Those pins with symbol I, Is at pin definition section
*2 Use REG_OUT output of this LSI.
*3 It’s max.+10ppm and min.-10ppm at 10kbps setting.
[Note]
Electrical characteristics are in the above recommended operating conditions without special instruction.
10/140
FEDL7396A/B/E-07
ML7396A/B/E
* Following “Typ” value is not guaranteed value studied variation of IC but typical centre value.
●Power consumption
Item
Power Consumption (*1)
*1
*2
*3
*4
Symbol
Conditions
Min
Typ (*2)
Max
Unit
IDD1
Sleep state
(Retaining register values)
-
0.6
3.0(*3)
µA
IDD2
Idle state
-
1.4
3.0
mA
IDD3
RF RX state (*4)
-
15.0
20.0
mA
IDD4
RF TX state (1mW) (*4)
-
13.0
20.0
mA
IDD5
RF TX state (10mW) (*4)
-
24.0
35.0
mA
IDD6
RF TX state (20mW) (*4)
-
32.0
43.0
mA
Power consumption is sum of current consumption of all power supply pins
“Typ” value is centre value under condition of VDDIO=3.3V, 25 ˚C.
This “Max” value is under condition of 25 ˚C. Other “Max” values are defind under recommended operating coditions.
Current consumption when the data rate is 100kbps and the RF frequency is 920MHz.
11/140
FEDL7396A/B/E-07
ML7396A/B/E
●DC characteristics
Item
Symbol
Conditions
Min
VDDIO
* 0.75
VDDRF
*0.9
Typ (*2)
Max
Unit
-
VDDIO
V
-
VDDRF
V
VIH1
Digital input/inout pins
VIH2
XIN pin
VIL1
Digital input/inout pins
0
-
VIL2
XIN pin
0
-
Schmitt trigger
Threshold High level
VT+
RESETN pin
SDI, SCLK, SCEN pins
-
1.2
Schmitt Trigger
Threshold Low level
VT-
ESETN pin
SDI, SCLK, SCEN pins
VDDIO
*0.18
IIH1
Digital input/inout pins
IIH2
XIN pin
IIL1
Digital input/inout pins
IIL2
XIN pin
Voltage Input High
VDDIO
*0.18
VDDRF
*0.1
VDDIO
*0.75
V
0.8
-
V
-1
-
1
μA
-0.3
-
0.3
μA
-1
-
1
μA
-0.3
-
0.3
μA
Voltage Input Low
V
V
Input Leakage Current
Tri-state Output Leakage
Current
IOZH1
Digital inout pins
-1
-
1
μA
IOZL1
Digital inout pins
-1
-
1
μA
VDDIO
*0.8
-
VDDIO
V
0
-
0.3
V
Sleep state
0.95
1.3
1.65
V
Other states
1.40
1.5
1.60
V
Input pins
-
6
-
pF
COUT
Output pins
-
9
-
pF
CRFIO
RF inout pins
-
9
-
pF
Analog input pins
-
9
-
pF
Voltage Output Level H
VOH
IOH=-4mA /-2mA (*1)
Voltage Output Level L
VOL
IOL=4mA /2mA (*1)
Regulator output
Voltage
REG_CORE
(*2)
CIN
Pin Capacitance
CAI
*1 DMON pin is IOH=-2mA/2mA
*2 REG_CORE pin and REG_OUT pin. REG_OUT pin becomes 0V when in sleep state.
12/140
FEDL7396A/B/E-07
ML7396A/B/E
●RF characteristics
Data Rate
Modulation scheme
Channel spacing
Frequency
Others
:
:
:
:
:
10kbps/ 20kbps/ 40kbps/ 50kbps/100kbps/ 150kbps/200kbps/ 400kbps
GFSK
200kHz/400kHz/600kHz
Support 750MHz to 1GHz by changing L/C components between IND1 and IND2 pins
Definition point is a antenna connector in the reference circuit.
RF characteristics out of below table include 400kbps (option) are available as reference data
separately.
[TX]
Item
TX Power
Condition
20mW (13dBm) mode
10mW (10dBm) mode
1mW (0dBm) mode
Frequency deviation setting
range [Fdev] (*1)
920MHz band (920.5MHz to 928.1MHz)
Occupied bandwidth
n : number of channel
20mW mode (920.5MHz to 922.3MHz)
Power at channel edge
10mW mode
1mW mode
20mW mode ±1ch, bandwidth 200kHz)
Adjacent Channel Power
10mW mode +/-1ch bandwidth: 200kHz
1mW mode +/-1ch bandwidth: 200kHz
Spurious emission level
710MHz or lower, 100kHz band
(20mW mode)
Higher than 710MHz to 900MHz, 1MHz band
Higher than 900MHz to 915MHz, 100kHz band
Higher than 915MHz to 930MHz, 100kHz band
(Excluding within 200 + 100*n kHz above and
below the channel frequency, however, within
100 + 100*n kHz above and below for
920.5MHz to 922.3MHz. n is the number of
concurrently used channels)
Higher than 930MHz to 1000MHz, 100kHz
band
Higher than 1000MHz to 1215MHz, 1MHz band
Higher than 1215MHz, 1MHz band
(2nd harmonics or higher)
915MHz band (902MHz to 928MHz)
6dB bandwidth
Frequency deviation=171kHz
Power spectrum density
20mW mode, frequency deviation = 171kHz,
3kHz band
Spurious emission level
900MHz or lower
(20mW mode)
Higher than 960MHz (2nd harmonics or higher)
868MHz band (863MHz to 870MHz) (*2)
Spurious emission level
Higher than 1000MHz (2nd harmonics or
(10mW mode)
higher)
Min
9
6
-4
Typ
13
10
0
Max
15
12
2
Unit
dBm
dBm
dBm
-
-
2,250
kHz
-
-33
-39
-47
-65
-70
-72
200 * n
-7
-10
-20
-15
-18
-26
-36
-55
-55
kHz
dBm
dBm
dBm
dBm
dBm
dBm
dBm
dBm
dBm
-
-51
-36
dBm
-
-70
-55
dBm
-
-75
-45
dBm
-
-40
-30
dBm
500
-
-
kHz
-
-
8
dBm
-
-65
-50
-56
-41
dBm
dBm
-
-35
-30
dBm
*1 While the setting range is described as above, the possible maximum value depends on the RF channel frequency to be
used. RF channel frequency ± frequency deviation should not include a multiple of 36MHz (864MHz, 900MHz, 936MHz,
and so on).
Example) For 902MHz, 2,000kHz is a possible maximum frequency deviation value.
*2 863.5MHz to 866.2MHz cannot be used. For details, refer section "Programing Channel Frequency."
13/140
FEDL7396A/B/E-07
ML7396A/B/E
[RX]
Item
Condition
920MHz band (920.5MHz to 928.1MHz)
50kbps mode (*1)
Minimum RX sensitivity
100kbps mode (*1)
BER<0.1%
200kbps mode (*1)
Maximum input level
50kbps mode/100kbps mode/200kbps mode
50kbps mode
Adjacent channel selectivity
100kbps mode
200kbps mode
50kbps mode
Alternate channel selectivity
100kbps mode
200kbps mode
Minimum energy detection
level [ED value]
Energy detection range
Dynamic range
Energy detection accuracy
710MHz or lower, 100kHz band
Spurious emission level
Higher than 710MHz to 900MHz, 1MHz band
ARIB T108 measurement
Higher than 900MHz to 915MHz, 100kHz band
condition
Higher than 915MHz to 930MHz, 100kHz band
915.9MHz∼916.9MHz
Higher than 930MHz to 1000MHz, 100kHz band
920.5MHz∼929.7MHz
Higher than 1000MHz
915MHz band (902MHz to 928MHz)
100kbps mode (modulation index = 1) (*1)
150kbps mode (modulation index = 0.5) (*1)
Minimum receiver sensitivity 200kbps mode (modulation index = 1) (*1)
BER<0.1%
100kbps mode (frequency shift: 171kHz)
150kbps mode (frequency shift: 171kHz)
200kbps mode (frequency shift: 171kHz)
868MHz band (863MHz to 870MHz) (*2)
50kbps mode (*1)
Minimum receiver sensitivity
100kbps mode (*1)
BER<0.1%
200kbps mode (*1)
1000MHz or lower (local frequency)
Collateral emission level
Higher than 1000MHz
Min
Typ
Max
Unit
0
20
20
20
30
30
30
-108
-106
-102
35
35
35
45
45
45
-102
-100
-97
-
dBm
dBm
dBm
dBm
dB
dB
dB
dB
dB
dB
-
-
-100
dBm
60
-6
-
70
<-93
<-83
<-93
-63
<-93
-57
+6
-54
-55
-55
-54
-55
-47
dB
dB
dBm
dBm
dBm
dBm
dBm
dBm
-
-106
-102
-102
-100
-97.5
-96.5
-99
-96
-96
-87
-84
-83
dBm
dBm
dBm
dBm
dBm
dBm
-
-108
-106
-102
-63
-57
-102
-100
-97
-57
-47
dBm
dBm
dBm
dBm
dBm
*1 When NBO_SEL([DATA_SET:B0 0x47(7)])=0b0.
*2 863.5MHz to 866.2MHz cannot be used. For details, refer section "Programing Channel Frequency."
14/140
FEDL7396A/B/E-07
ML7396A/B/E
●SPI interface characteristics
Min
Typ
Max
Unit
SCLK clock frequency
Item
Symbol
FSCLK
Condition
0.032
2
16
MHz
SCEN input setup time
TSSNSU
30
-
-
ns
-
ns
SCEN input hold time
TSSNH
30
-
SCLK high pulse width
TWSCKH
28
-
-
ns
SCLK low pulse width
TWSCKL
28
-
-
ns
-
ns
Load capacitance
CL=20pF
SDI input setup time
TSDISU
5
-
SDI input hold time
TSDIH
15
-
-
ns
SCEN negate interval
TSSNAI
60
-
-
ns
SDO output delay time
TSDO
-
-
22
ns
[Note]
All timing parameter is defined at voltage level of VDDIO * 20% and VDDIO * 80%.
SCE
TSSNSU
SCLK
TSSNH
FSCLK
TWSCKL
TWSCKH
TSDISU TSDIH
SDI
MSB IN
BITS6-1
LSB IN
TSDO
SDO
MSB OUT
BITS6-1
LSB OUT
TSSNAI
SCE
15/140
FEDL7396A/B/E-07
ML7396A/B/E
●DIO interface characteristics
Item
Symbol
Condition
Min
Typ
Max
Unit
DIO input setup time
(Rising edge synchronization)
TDISU
1
-
-
μs
DIO input setup time
(Falling edge synchronization)
TDISU2
0
-
-
μs
DIO input hold time
(Rising edge synchronization)
TDIH
0
-
-
ns
DIO input hold time (*3)
(Falling edge synchronization)
TDIH2
10
5
2.5
-
-
μs
DIO Output hold time
TDOH
20
-
-
ns
Load capacitance
CL=20pF
DCLK frequency (*1) (*3) (TX)
FDCLK1
-20ppm
50
100
200
+20ppm
kHz
DCLK frequency (*2) (*3)
(RX)
FDCLK2
-4%
50
100
200
+4%
kHz
DCLK output duty ratio (TX)
DDCLK
-
50
-
%
DCLK output duty ratio (RX)
DDCLK
40
-
60
%
*1 DCLK clock frequency in TX mode will be varied depending on the variance of master clock frequency.
*2 DCLK clock frequency in RX mode will be varied by reproduced clock and its jitter.
*3 These characteristics are depend on the setting to the RATE [2:0] ([DATA_SET:B0 0x47(2-0)].
(upper: 50kbps, mid: 100kbps, lower: 200kbps)
[Note]
All timing parameter is defined at voltage level of VDDIO * 20% and VDDIO * 80%
(*1)
(*1)
(*1)
(*1)
FDCLK1 / FDCLK2
DCLK
TDISU
DIO (input)
Rising edge
synchronization
DIO (input)
Falling edge
synchronization
DIO(output)
VALID
TDIH
VALID
VALID
VALID
TDISU2
VALID(*2)
TDIH2
VALID
VALID
TDOH
VALID
VALID
VALID
(*1) Timing when ML7396 takes the DIO input.
(*2) For the falling edge synchronization, the first two bits of DIO input have the same data, refer section “TX mode (with DIO
mode)”
16/140
FEDL7396A/B/E-07
ML7396A/B/E
●Clock output characteristics
Clock output can be controled by [CLK_SET:B0 0x02] register (Initial value:enable), Clock output from DMON pin.
Item
Symbol
Clock output frequency
Clock output duty ratio
(*1)
Condition
Min
Typ
Max
Unit
-
0.0088
6
36
MHz
12MHz
30
-
70
%
Other than above
48
50
52
%
FCLKOUT
DCLKOUT
Load
capacitance
CL=20pF
*1 Duty ratio will be H:L = 1:2 when output frequency is 12MHz.. Refer [CLK_OUT: B0 0x03] register ().
FCLKOUT
DMON
●Reset
Item
Symbol
RESETN delay time (Power on)
TRDL
RESETN pulse period
(When starting from VDDIO=0V)
TRPW
RESETN pulse period 2 (*1)
(When starting from VDDIO≠0V)
TRPW2
RESETN rising period
TRRST
Condition
All power supply pins
(After power on)
VDD>1.8V
Min
Typ
Max
Unit
1.5
-
-
ms
200
-
-
ns
1.5
-
-
ms
-
-
1
ms
VDD level
VDDIO
GND level
TRPW
TRDL
TRPW2
RESETN
TRRST
(*1) When starting from VDDIO≠.0V, input a pulse to the RESETN signal after VDDIO exceeds 1.8V.
17/140
FEDL7396A/B/E-07
ML7396A/B/E
●Power on sequence
Item
Power on time
Symbol
TPWON
Condition
Power on state
(All power supply pins)
Min
Typ
Max
-
-
5
Unit
ms
TPWON
VDD
80%
20%
VDD level
GND level
18/140
FEDL7396A/B/E-07
ML7396A/B/E
■Registers
●Register map
It is consist of 3bank, BANK0, BANK1, BANK2. Each BANK has address space of 0x00 to 0x7F, 128 byte in total.
The space shown as gray highlighted part is not implemented in LSI or reserved bits. TX/RX FIFO is implemented in PHY
block, those register except for FIFO is implemented in SPI block. The address not exist in the memory map is not accessible.
Also, the address is not accessible during the VCO calibration.
In each BANK, there are some registers that can not be access unless give access allowance by TST_ACEN ([BANK_SEL:
B0/B1/B2 0x00(7)] =0b1. Such registers are marked with ”#” in the following list. The TST_ACEN enable setting is required in
the initial setting or test mode setting, but it is recommended to set disable when in normal operation to avoid miss-setting.
For registers whose setting value is specified by the “ML7396Family_InitialRegisterSetting” file, please set the value shown in
the file.
: Implemented as functionable register
: Implemented as reserved bits
19/140
FEDL7396A/B/E-07
ML7396A/B/E
BANK0
Address
Symbol
(# test register)
0x00
0x01
0x02
0x03
0x04
0x05
0x06-0x07
0x08
0x09-0x0a
0x0b
0x0c
0x0d-0x0e
0x0f
0x10
0x11
0x12
0x13
0x14
0x15
0x16
0x17
0x18
0x19
0x1a
0x1b
0x1c
0x1d
0x1e
0x1f
0x20
0x21
0x22
0x23
0x24
0x25
0x26
0x27
0x28
0x29
0x2a
0x2b
0x2c
0x2d
0x2e
0x2f
0x30
0x31
0x32
0x33
0x34
0x35
0x36
0x37
BANK_SEL
RST_SET
CLK_SET
CLKOUT
RATE_SET1
RATE_SET2
Reserved
#ADC_CLK_SET
Reserved
#OSC_ADJ
#RF_TEST_MODE
Reserved
# PHY_STATE
#FIFO_BANK
#PLL_LOCK_DETECT
CCA_IGNORE_LEVEL
CCA_LEVEL
CCA_ABORT
CCA_CNTRL
ED_RSLT
IDLE_WAIT_L
IDLE_WAIT_H
CCA_PROG_L
CCA_PROG_H
ED_CNTRL
GAIN_MtoL
GAIN_LtoM
GAIN_HtoM
GAIN_MtoH
RSSI_ADJ_M
RSSI_ADJ_L
RSSI_STABLE_TIME
RSSI_VAL_ADJ
INT_SOURCE_GRP1
INT_SOURCE_GRP2
INT_SOURCE_GRP3
INT_SOURCE_GRP4
PD_DATA_REQ
PD_DATA_IND
INT_EN_GRP1
INT_EN_GRP2
INT_EN_GRP3
INT_EN_GRP4
CH_EN_L
CH_EN_H
IF_FREQ_AFC_H
IF_FREQ_AFC_L
BPF_AFC_ADJ_H
BPF_AFC_ADJ_L
AFC_CNTRL
TX_ALARM_LH
TX_ALARM_HL
RX_ALARM_LH
Bit
7
6
5
4
3
2
1
Description
0
Register access bank selection
Software reset setting
Clock configuration
CLKOUT frequency setting
Data rate conversion setting 1
Data rate conversion setting 2
Reserved
RSSI ADC clock frequency setting
Reserved
Load capacitor adjustment for oscillation circuit
TX test pattern setting
Reserved
PHY status indication
FIFO bank indication
PLL lock detection configuration
ED threshold level setting for excluding CCA judgement
CCA threshold level setting
Timing setting for forced termincation of CCA operation
CCA control setting and result indication
ED (Energy Detection) value indication
IDLE detection period setting during CCA (low 8bits)
IDLE detection period setting during CCA (high 2bits)
IDLE judgement elapsed time indication during CCA (low byte)
IDLE judgement elapsed time indication during CCA (high 2bits)
ED detection control setting
Threshold level setting for switching middle gain to low gain
Threshold level setting for switching low gain to middle gain
Gain update setting and threshold level setting for switching high gain to middle gain
Threshold level setting for switching middle gain to high gain
RSSI offset value setting during middle gain operation
RSSI offset value setting during low gain operation
Time parameter for RSSI value become stable after gain switch
RSSI scale factor setting for ED value conversion.
FIFO clear setting and interrupt status for INT00 to INT05
Interrupt status for INT08 to INT15
Interrupt status for INT16 to INT23
Interrupt status for INT24 and INT25
Data transmission request status indication
Data reception status indication
Interrupt mask for INT00 to INT05
Interrupt mask for INT08 to INT15
Interrupt mask for INT16 to INT23
Interrupt mask for INT24 and INT25
RF channel enable setting for low 8ch
RF channel enable setting for high 8ch
IF frequency setting during AFC operation (high byte)
IF frequency setting during AFC operation (low byte)
Bandpass filter capacitance adjustment during AFC operation (high 2bits)
Bandpass filter capacitance adjustment during AFC operation (low byte)
AFC control setting
TX FIFO full level setting
TX FIFO empty level setting
RX FIFO full level setting
20/140
FEDL7396A/B/E-07
ML7396A/B/E
BANK0 (continued)
Address
Symbol
(# test register)
0x38
0x39
0x3a
0x3b
0x3c
0x3d
0x3e
0x3f
0x40
0x41
0x42
0x43
0x44
0x45
0x46
0x47
0x48
0x49
0x4a
0x4b
0x4c
0x4d
0x4e
0x4f
0x50
0x51
0x52
0x53
0x54
0x55
0x56-x58
0x59
0x5a
0x5b
0x5c
0x5d
0x5e
0x5f
0x60
0x61
0x62
0x63
0x64
0x65
0x66
0x67
0x68
RX_ALARM_HL
PREAMBLE_SET
SFD1_SET1
SFD1_SET2
SFD1_SET3
SFD1_SET4
SFD1_SET1
SFD2_SET2
SFD2_SET3
SFD2_SET4
TX_PR_LEN
RX_PR_LEN/SFD_LEN
SYNC_CONDITION
PACKET_MODE_SET
FEC/CRC_SET
DATA_SET
CH0_FL
CH0_FM
CH0_FH
CH0_NA
CH_SPACE_L
CH_SPACE_H
F_DEV_L
F_DEV_H
ACK_TIMER_L
ACK_TIMER_H
ACK_TIMER_EN
ACK_FRAME1
ACK_FRAME2
AUTO_ACK_SET
Reserved
GFIL00 / FSK_FDEV1
GFIL01 / FSK_FDEV2
GFIL02 / FSK_FDEV3
GFIL03 / FSK_FDEV4
GFIL04
GFIL05
GFIL06
GFIL07
GFIL08
GFIL09
GFIL10
GFIL11
FSK_TIME1
FSK_TIME2
FSK_TIME3
FSK_TIME4
Bit
7
6
5
4
3
2
1
Description
0
RX FIFO empty level setting
Preamble pattern setting
SFD pattern #1 1st byte setting (max 4byte)
SFD pattern #1 2nd byte setting (max 4byte)
SFD pattern #1 3rd byte setting (max 4byte)
SFD pattern #1 4th byte setting (max 4byte)
SFD pattern #2 1st byte setting (max 4byte
SFD pattern #2 2nd byte setting (max 4byte)
SFD pattern #2 3rd byte setting (max 4byte)
SFD pattern #2 4th byte setting (max 4byte)
TX preamble length setting
RX preamble setting and SFD length setting
Bit error tolerance setting in RX preamble and SFD detection
Packet configuration
FEC and CRC configuration
Data configuration
Channel #0 frequency (F-counter) setting (low byte)
Channel #0 frequency (F-counter) setting (middle byte)
Channel #0 frequency (F-counter) setting (high 4bits)
Channel #0 frequency (N-counter and A-counter) setting
Channel space setting (low byte)
Channel space setting (high byte)
GFSK frequency deviation setting (low byte )
GFSK frequency deviation setting (high byte)
Ack timer setting (low byte)
Ack timer setting (high byte)
Ack timer control setting
Ack Frame Control Field (2bytes) setting (low byte)
Ack Frame Control Field (2bytes) setting (high byte)
Auto_Ack function setting
Reserved
Gaussian filter coefficient setting 1 / FSK 1st frequency deviation setting
Gaussian filter coefficient setting 2 / FSK 2nd frequency deviation setting
Gaussian filter coefficient setting 3 / FSK 3rd frequency deviation setting
Gaussian filter coefficient setting 4 / FSK 4th frequency deviation setting
Gaussian filter coefficient setting 5
Gaussian filter coefficient setting 6
Gaussian filter coefficient setting 7
Gaussian filter coefficient setting 8
Gaussian filter coefficient setting 9
Gaussian filter coefficient setting 10
Gaussian filter coefficient setting 11
Gaussian filter coefficient setting 12
FSK 3rd frequency deviation (FDEV3) hold time setting
FSK 2nd frequency deviation (FDEV2) hold time setting
FSK 1st frequency deviation (FDEV1) hold time setting
FSK no-deviation frequency (carrier frequency) hold time setting
21/140
FEDL7396A/B/E-07
ML7396A/B/E
BANK0 (continued)
Address
Symbol
(# test register)
0x69
0x6a
0x6b
0x6c
0x6d
0x6e
0x6f
0x70
0x71
0x72
0x73
0x74
0x75
0x76
0x77
0x78
0x79
PLL_MON/DIO_SEL
FAST_TX_SET
CH_SET
RF_STATUS
2DIV_ED_AVG
2DIV_GAIN_CNTRL
2DIV_SEARCH
2DIV_FAST_LV
2DIV_CNTRL
2DIV_RSLT
ANT1_ED
ANT2_ED
RF_CNTRL_SET
Reserved
CRC_AREA/FIFO_TRG
RSSI_MON
TEMP_MON
0x7a
PN9_SET_L
0x7b
PN9_SET_H
0x7c
0x7d
0x7e
0x7f
RD_ FIFO_LAST
Reserved
WR_TX_FIFO
RD_RX_FIFO
Bit
7
6
5
4
3
2
1
0
Description
PLL lock detection signal output control and DIO mode configuration
TX trigger level setting in FAST_TX mode
RF channel setting
RFstate setting and status indication
Average number setting for ED calculation during 2 diversity
Gain control setting during 2 diversity
2 diversity search mode and search time setting
ED threshold level setting during 2 diversity FAST mode
2 diversity setting
2 diversity resurt indication and forced antenna control setting
Acquired ED value by antenna 1
Acquired ED value by antenna 2
RF control pin configuration (ANT_SW, TRX_SW,DCNT)
Reserved
CRC calculation field and FIFO trigger setting
RSSI value indication
Temperature indication
PN9 initialized status setting / randum number indication
(low byte)
PN9 initialized status setting / randum number indication (high
1bit) and PN9 enable control
FIFO remaining size or FIFO address indication
Reserved
TX FIFO
RX FIFO
BANK1
Address
Symbol
0x00
0x01
0x02
0x03
0x04
0x05
0x06
0x07
0x08
0x09
0x0a
0x0b
0x0c
0x0d
0x0e
0x0f
BANK_SEL
DEMOD_SET
RSSI_ADJ
RSSI/TEMP_OUT
PA_ADJ1
PA_ADJ2
PA_ADJ3
PA_CNTRL
SW_OUT/RAMP_ADJ
PLL_CP_ADJ
IF_FREQ_H
IF_FREQ_L
IF_FREQ_CCA_H
IF_FREQ_CCA_L
BPF_ADJ_H
BPF_ADJ_L
0x10
BPF_CCA_ADJ_H
0x11
0x12
0x13
0x14
0x15
0x16
BPF_CCA_ADJ_L
RSSI_LPF_ADJ
PA_REG_FINE_ADJ
IQ_MAG_ADJ
IQ_PHASE_ADJ
VCO_CAL_MIN_FL
7
6
5
Bit
4 3
2
1
0
Description
Register access bank selection
Demodulator setting
RSSI value adjustment
RSSI and Temperature data output setting
PA adjustment 1st setting
PA adjustment 2nd setting
PA adjustment 3rd setting
External PA control and PA mode setting
ANT_SW/TRX_SW configuration and PA ramping up adjustment
PLL charge pump current adjustment
IF frequency setting (high byte)
IF frequency setting (low byte)
IF frequency setting during CCA operation (high byte)
IF frequency setting during CCA operation (low byte)
Bandpass filter bandwidth adjustment (high 2bits)
Bandpass filter bandwidth adjustment (low byte)
Bandpass filter bandwidth adjustment during CCA operation (high
2bits)
Bandpass filter bandwidth adjustment during CCA operation (low byte)
RSSI lowpass filter adjustment
PA regulator fine adjustment
IF I/Q amplitude balance adjustment
IF I/Q phase balance adjustment
VCO calibration low limit frequency setting (low byte)
22/140
FEDL7396A/B/E-07
ML7396A/B/E
BANK1 (continued)
Address
0x17
0x18
0x19
0x1a
0x1b
0x1c
0x1d
0x1e
0x1f-0x2a
0x2b
0x2c-0x32
0x33
0x34
0x35
0x36-0x39
0x3a
0x3b-0x3e
0x3f
0x40-0x48
0x49
0x4a
0x4b-0x4c
0x4d
0x4e
0x4f
0x50-0x54
0x55
0x56-0x59
0x5a
0x5b-0x7f
Symbol
VCO_CAL_MIN_FM
VCO_CAL_MIN_FH
VCO_CAL_MAX_N
VCO_CAL_MIN
VCO_CAL_MAX
VCO_CAL
VCO_CAL_START
BPF_ADJ_OFFSET
Reserved
# ID_CODE
Reserved
# PA_REG_ADJ1
# PA_REG_ADJ2
# PA_REG_ADJ3
Reserved
# PLL_CTRL
Reserved
# RX_ON_ADJ2
Reserved
# LNA_GAIN_ADJ_M
# LNA_GAIN_ADJ_L
Reserved
# MIX_GAIN_ADJ_H
# MIX_GAIN_ADJ_M
# MIX_GAIN_ADJ_L
Reserved
#TX_OFF_ADJ1
Reserved
# RSSI_SLOPE_ADJ
Reserved
7
6
5
Bit
4 3
2
1
0
Description
VCO calibration low limit frequency setting (middle byte)
VCO calibration low limit frequency setting (high 4bits)
VCO calibration upper limit frequency setting
VCO calibration low limit value indication and setting
VCO calibration upper limit value indication and setting
VCO calibration value indication and setting
VCO calibration execution
BPF adjustment offset value indication
Reserved
ID code indication
Reserved
PA regulator adjustment (1st setting)
PA regulator adjustment (2nd setting)
PA regulator adjustment (3rd setting)
Reserved
PLL setting
Reserved
RX_ON timing adjustment #2
Reserved
LNA gain adjustment during middle gain operation
LNA gain adjustment during low gain operation
Reserved
Mixer gain adjustment during high gain operation
Mixer gain adjustment during middle gain operation
Mixer gain adjustment during low gain operation
Reserved
TX_OFF ramping down adjustment
Reserved
RSSI slope adjustment
Reserved
23/140
FEDL7396A/B/E-07
ML7396A/B/E
BANK2
Address
0x00
0x01-0x11
0x12
0x13-0x1d
0x1e
0x1f
0x20-0x21
0x22
0x23
0x24
0x25-0x29
0x2a
0x2b
0x2c
0x2d-0x5f
0x60
0x61
0x62
0x63
0x64
0x65
0x66
0x67
0x68
0x69
0x6a
0x6b
0x6c
0x6d
0x6e
0x6f
0x70
0x71-0x7f
Symbol
BANK_SEL
Reserved
# SYNC_MODE
Reserved
# PA_ON_ADJ
# DATA_IN_ADJ
Reserved
# RX_ON_ADJ
Reserved
# RXD_ADJ
Reserved
RATE_ADJ1
RATE_ADJ2
#RAMP_CNTRL
Reserved
ADDFILCNTRL
PANID_L
PANID_H
64ADDR1
64ADDR2
64ADDR3
64ADDR4
64ADDR5
64ADDR6
64ADDR7
64ADDR8
SHT_ADDR0_L
SHT_ADDR0_H
SHT_ADDR1_L
SHT_ADDR1_H
DISCARD_COUNT_L
DISCARD_COUNT_H
Reserved
7
6
5
Bit
4 3
2
1
Description
0
Register access bank selection
Reserved
Bit synchronization mode setting
Reserved
PA_ON timing adjustment
DATA enable timing adjustment
Reserved
RX_ON timing adjustment
Reserved
RXD timing adjustment
Reserved
Demodulator adjustment for optional data rate (low byte)
Demodulator adjustment for optional data rate (high 2 bits)
Ramp control enable setting
Reserved
Address filtering function setting
PANID setting for address filtering function (low byte)
PANID setting for address filtering function (high byte)
64bit address setting for address filtering function (1st byte)
64bit address setting for address filtering function (2nd byte)
64bit address setting for address filtering function (3rd byte)
64bit address setting for address filtering function (4th byte)
64bit address setting for address filtering function (5th byte)
64bit address setting for address filtering function (6th byte)
64bit address setting for address filtering function (7th byte)
64bit address setting for address filtering function (8th byte)
Short address #0 setting for address filtering function (low byte)
Short address #0 setting for address filtering function (high byte)
Short address #1 setting for address filtering function (low byte)
Short address #1 setting for address filtering function (high byte)
Discarded packet number indication by address filtering (low byte)
Discarded packet number indication by address filtering (high byte)
Reserved
24/140
FEDL7396A/B/E-07
ML7396A/B/E
■State Diagram
TRX_OFF
Force_TRX_OFF
SLEEP
TRX_OFF
Force_TRX_OFF
SLEEP
Force_TRX_OFF
SLEEP
TRASMIT
TX start
TRX_OFF
Force_TRX_OFF
SLEEP
RX_ON
TRX_OFF
Force_TRX_OFF
SLEEP
RX ON
TX_ON
Stop TX/
Start RX
TRX_OFF
Force_TRX_OFF
SLEEP
TX_ON
RX_ON
PLLWAIT
VCO_CAL
completion
RECEIVE
Start RX
(SFD detection)
TX complete
(TRX_OFF)
TX_ON
Force_TRX_OFF
SLEEP
Start
VCO_CAL
RX completed
(TRX_OFF)
RX_ON
TRX_OFF
Force_TRX_OFF
SLEEP
TX_ON
AUTO_ACK_EN
TX_ON
RX_ON
Start VCO_CAL
TX_ON
RX_ON
VCO_CAL
SLEEP
TRX_OFF
IDLE
TRX_OFF
Force_TRX_OFF
VCO_CAL completion
SLEEP
Exit SLEEP
SLEEP
VCOCAL
Exit SLEEP
SLEEP
Power OFF
[State]
SLEEP/Power OFF
TRX_OFF/IDLE
PLL_WAIT
TX_ON
TRANSMIT
RX_ON
RECEIVE
VCO_CAL
State Transition instruction
:SLEEP
:IDLE (TX-RX stand-by)
:PLL stand-by
:TX ready (TX data waiting)
:TX on-going
:RX readt (RX data waiting)
:RX in process
:VCO calibration on going
Normal sequence
(State transition)
Control from upper layer
ML7396 self controlled
state transition
25/140
FEDL7396A/B/E-07
ML7396A/B/E
■Functional Description
●SPI
ML7396 family has a Serial Peripheral Interface (SPI), which supports slave mode. Host MCU can read/write to the ML7396
registers and on-chip FIF using MCU clock. Single access mode and burst access mode are also supported.
[Single access mode]
In write operation, data will be stored into internal register at rising edge of clock which is capturing D0 data. During write
operation, if setting SCEN line to “H”, the data will not be sotred into register.
[Write]
SCLK
SCEN
SDI
A
6
Address Field
A
”1”
0
D
7
D
0
Write Data Field
W
[Read]
SCLK
SCEN
SDI
A
6
A
”0”
0
Address Field
SDO
R
D
7
D
0
Read Data Field
[Note]
When using IEEE802.15.4d mode, it is need to read “Length+1” bytes of data from RX FIFO for switching the FIFO banks
correctly. After reading Lngth bytes of data, need to access [RD_RX_FIFO:B0 0x7F] register once more. (The last byte is
invalid data.)
26/140
FEDL7396A/B/E-07
ML7396A/B/E
[Burst access mode]
By maintaining SCEN as L, Burst access mode will be active. By setting SCEN line to “H”, exiting from the burst access
mode. During burst access mode, address will be automatically incremented.
When SCEN become H before Clock for D0 is input, data transaction will be aborted.
[Note]
If destination is [WR_TX_FIFO:B0 0x7E] or [RD_RX_FIFO:B0 0x7F] register, address will not be incremented. And
continuous FIFO access is possible.
[Write]
SCLK
SCEN
SDI
A
6
Address Field
A
“1”
0
D
7
D
0
Write Data Field
W
Write Data Field
[Read]
SCLK
SCEN
SDI
A
6
Address Field
SDO
A
“0”
0
R
D
7
D
0
Read Data Field
Read Data Field
[Note]
When using IEEE802.15.4d mode, it is need to read “Length+1” bytes of data from RX FIFO for switching the FIFO banks
correctly. (The last byte is invalid data.)
●AFC function
ML7396 family supports AFC function during RX operation. Frequency deviation (max +/- 20ppm) between remote device
and local device can be compensated by this function. Using this function, stable RX sensitivity and interference blocking
performance can be achieved.
This function can be activated by setting AFC_EN ([AFC_CNTRL:B0 0x34(0)]) =0b1
This is not supported for optional data rate. (other than 50/100/150/200/400kbps) When using optional data rate, AFC_EN
should be set to 0b0.
27/140
FEDL7396A/B/E-07
ML7396A/B/E
●FIFO
ML7396 family has on-chio two 256byte FIFOs as TX -RX buffer. However, one FIFO can store only one packet. (one packet
cannot use two FIFOs).
During RX, RX data is stored in a FIFO (byte by byte), and the host MCU wil read RX data through SPI. Duting TX, the host
MCU write TX data to a FIFO (byte by byte) through SPI and tenasmitting through RF.
Followings show the data format stored in FIFO.
As described below, input data format will be different according to the setting value to IEEE_MODE ([PACKET
MODE_SET:B0 0x45(1)]). (Regardless of IEEE_MODE, preamble and SFD bits are not stored into FIFOs)
[IEEE802.15.4g mode] (IEEE_MODE =0b1)
Length (max: 2047byte)
LSB
Length
2byte
Data area stored into a FIFO
MSB
PSDU
(User data)
2045/2043byte
(CRC)
(ED)
1byte
[PACKET_MODE_SET]
B0 0x45
2/4byte
[FEC/CRC_SET]
B0 0x46
[Note; Length, CRC and ED value will be stored into data strage area other than FIFO.]
[IEEE802.15.4d mode] (IEEE_MODE =0b0)
Length (max: 127byte)
LSB
Length
1byte
Data area stored into a FIFO
PSDU
(User data)
125byte
128byte
MSB
(CRC)
2byte
(ED)
1byte
[PACKET_MODE_SET]
B0 0x45
[Note; Length, CRC and ED value will be stored into data strage area other than FIFO.]
Writeing or reading FIFO will be done through SPI with burst access. TX data is written to [WR_TX_FIFO:B0 0x7E] register,
and RX data is read from [RD_RX_FIFO:B0 0x7F] register. Continuous access increments internal FIFO address
automatically. If burst access is suspended during write or read operation, address will be kept until the packet will beagain.
Two FIFOs (bank0, bank1) will be accessed one by another. If the host MCU writes TX data to a FIFO during RX, RX FIFO
will use only single FIFO. Control of switching FIFO banks will be done automatically. FIFO status can be checked by
[PD_DATA_REQ:B0 0x28] or [PD_DATA_IND:B0 0x29] register.
[Note]
1.
When using IEEE802.15.4d mode, it is need to read “Length+1” bytes of data from RX FIFO for switching the FIFO
banks correctly. (The last byte is invalid data.)
2.
In both TX and RX, Length indicates PSDU length including CRC field. (not including ED fieled if selected)
However during TX, the host MCU writes PSDU excluding CRC field to a FIFO. During RX, the host MCU should read
Lngth field, user data field and CRC fieled from a FIFO.
28/140
FEDL7396A/B/E-07
ML7396A/B/E
cTX FIFO usage notification function
This function is to notice un-transmitted data in TX_FIFO (FIFO usage) to the MCU using SINTN (interrupt) pin (#10)
and/or DMON pin (#17). If un-transmitted data in TX_FIFO (FIFO usage) exceeds the full level threshold set by
[TX_ALARM_LH:B0 0x35] register, SINTN pin will become “L” (FIFO-Full interrupt) and/or DMON pin will become “H”.
And if the TX_FIFO usage is equal to or less than the empty threshold level set by [TX_ALARM_HL:B0 0x36] register,
SINTN will become “L” (FIFO-Empty interrupt) and/or DMON pin will become ”L”.
If re-generating the FIFO-Full interrupr (INT[05], group1), after clearing the interrupt, once the TX_FIFO usage should be
equal or less than the empty level. If re-generating the FIFO-Empty interrupt (INT[04], group1), after clearing the interrupt,
one the TX_FIFO usage excceds the full level threshold.
[TX FIFO usage]
SINTN signal
0xFF
TX full level
(address=0x3E)
TX data amount
DMON pin will be
“H” when written
data exceeds TX
full level.
DMON pin will be
“L” when TX data
usage is smaller
than TX empty
level.
TX data amount
DMON signal
TX full level
0x3E
TX empty level
(address=0x0F)
0x0F
TX empty level
Time
0x00
TX_FIFO usage transition
[Note]
1. At default setting, DMON pin is configured as CLKOUT output. If using DMON pin as this function, CLKOUT_EN
([CLK_SET:B0 0x02(4)]) =0b0 and FIFO_TRG_EN ([CRC_AREA/FIFO_TRG:B0 0x77(0)])=0b1 are required.
2. Each threshold should set as [TX_ALARM_LH:B0 0x35] (full level) > [TX_ALARM_HL:B0 0x36] (empty level).
29/140
FEDL7396A/B/E-07
ML7396A/B/E
cRX FIFO usage notification function
This function is to notice un-read data in RX_FIFO (FIFO usage) to the MCU using SINTN (interrupt) pin (#10) and/or
DMON pin (#17). If un-read data in RX_FIFO (FIFO usage) exceeds the full level threshold set by [RX_ALARM_LH:B0
0x37] register, SINTN pin will become “L” (FIFO-Full interrupt) and/or DMON pin will become “H”. And if the RX_FIFO
usage is equal to or less than the empty threshold level set by [RX_ALARM_HL:B0 0x38] register, SINTN will becom “L”
(FIFO-Empty interrupt) and/or DMON pin will become “L”.
If re-generating the FIFO-Full interrupr (INT[05], group1), after clearing the interrupt, once the RX_FIFO usage should be
equal or less than the empty level. If re-generating the FIFO-Empty interrupt (INT[04], group1), after clearing the interrupt,
one the RX_FIFO usage excceds the full level threshold.
[RX FIFO usage]
SINTN signal
0xFF
RX data amount
DMON pin will be
“H” when RX data
exceeds RX full
level.
RX full level
(address=0x3E)
DMON pin will be
“L” when un-read
data amount is
less than RX
empty level.
RX data amount
DMON signal
RX full level
0x3E
0x0F
RX empty level
RX emptylevel
(address=0x0F)
Time
0x00
RX_FIFO usage transition
[Note]
1. At default setting, DMON pin is configured as CLKOUT output. If using DMON pin as this function, CLKOUT_EN
([CLK_SET:B0 0x02(4)]) =0b0 and FIFO_TRG_EN ([CRC_AREA/FIFO_TRG:B0 0x77(0)]) =0b1 are required.
2. Each threshold should set as [RX_ALARM_LH:B0 0x37] (full level) > [RX_ALARM_HL:B0 0x38] (empty level).
3. If reading a portion of RX data from a FIFO before receiving RX completion interrupt (INT[18]/INT[19] group3), please
keep the FIFO remaining size indicated by [RD_FIFO_LAST:B0 0x7C] should be more than 0x01.
4. This function is valid only when data receiving. After RX completion, FIFO-Empty interrupt (INT[04] group1) is not
generated.
30/140
FEDL7396A/B/E-07
ML7396A/B/E
cFIFO control method when using FIFO address
(1) TX
Condition: AUTO_TX ([PACKET_MODE_SET:B0 0x45(2)]) =0b1 and FIFO access size is 128 bytes.
Set
[FAST_TX_SET;B0 0x6A] register and FIFO_ADR_EN ([PACKET_MODE_SET:B0 0x45(7)]) =0b1.
Write256 bytesdata to FIFO ([WR_TX_FIFO:B0 0x7E] register) via SPI interface.
* When the amount of written data reaches [FIFO_TX_SET:B0 0x6A] register, transmission starts.
Read
[RD_FIFO_LAST:B0 0x7C] register. When FIFO address indication (hereafter, Read pointer) is 128 or more and the
remaining TX data is 128 bytes or more, writing 128 bytes data to FIFO. If remaining TX data is less than 128 bytes, go
to .
Read [RD_FIFO_LAST] register. When Read pointer is 64 or less and the remaining Tx data is 128 bytes or more,
writing 128 bytes data to FIFO. If remaining TX data is less than 128 bytes, go to .
Repeat and until for the necessary amount of TX data.
Writing whole remaining data to FIFO and wait TX completion interrupt (INT[16] / INT[17], group3) notification.
If data amount written to a FIFO exceeds
the FAST_TX_TRG[7:0], TX will start.
Write 256 bytes
to a FIFO
[WR_TX_FIFO:B0 0x7E]
No
No
Read pointer≥128?
[RD_FIFO_LAST:B0 0x7C]
Yes
No
Write 128 bytes data
to a FIFO
64≥Read pointer?
[RD_FIFO_LAST:B0 0x7C]
Yes
Remaining Tx data
≥128 bytes?
Remaining Tx data
≥128 bytes?
Yes
No
Yes
Write 128 bytes data
to a FIFO
[WR_TX_FIFO:B0 0x7E]
[WR_TX_FIFO:B0 0x7E]
Write remaining data
to a FIFO
[WR_TX_FIFO:B0 0x7E]
Wait for TX completion int.
[INT_SOURCE_GRP3:B0 0x26]
TX FIFO address indication (read pointer)
increments after Tx start.
After transimitting 256th byte data, the
address indication is turned to 0 and
increments again.
Amount of
transmitted data
(Byte)
[Transmit]
Total Tx data
TX FIFO address indication
255
Start transmission
Time
31/140
FEDL7396A/B/E-07
ML7396A/B/E
(2) RX (FIFO access size is 128 bytes)
Set FIFO_ADR_EN ([PACKET_MODE_SET:B0 0x45(7)]) =0b1, and issuing RX_ON by [RF_STATUS:B0 0x6C]
register. (RX start)
Read [RD_FIFO_LAST:B0 0x7C] register. When FIFO address indication (hereafter, Write pointer) is 5 or more, read 5
bytes from FIFO ([RD_RX_FIFO:B0 0x7F] register). At this time, if the Length field is less than 5, this paclet does not
meet IEEE802.15.4 requirement of the minimum packet length, the the packet might be discarded. (* It is not applied when
using an original packet format other than IEEE802.15.4.) When it is equal to or more than 5 and less than 128, wait RX
completion interrupt (INT[18]/[19] group3) and then read out the remaining data from FIFO.
At , if the Length field is 128 or more, after Write pointer is 128 or more, read 123 bytes from FIFO. After that, if the
remaining RX data size is less than 128, go to .
At , if the remaining RX data size is 128 or more, after Write pointer is 0 to 127, read 128 bytes from FIFO. After that, if
the remaining RX data size is less than 128, go to .
At , if the remaining RX data size is 128 or more, after Write pointer is 128 to 255, read 128 bytes from FIFO. After that,
if the remaining RX data size is less than 128, go to .
Repeat and until for the necessary amount of Rx data.
After RX completion interrupt (INT[18]/INT[19], group3) notification, read out the remaining RX data from FIFO.
RX_ON issue
[RF_STATUS:B0 0x6C]
No
Write pointer≥5?
[RD_FIFO_LAST:B0 0x7C]
Yes
Write pointer≥128?
No
[RD_FIFO_LAST:B0 0x7C]
Read 5 bytes from FIFO
and Length≥5?
Discard packet
Clear FIFO
No
Yes
Yes
Yes
Yes
No
No
[RD_FIFO_LAST:B0 0x7C]
Read 128 bytes
Read 128 bytes
Remaining amount≥128?
No
128≤Write pointer≤255?
Yes
[RD_RX_FIFO:B0 0x7F]
[RD RX FIFO:B0 0x7F]
[RD_RX_FIFO:B0 0x7F]
Length≥128?
No
[RD_FIFO_LAST:B0 0x7C]
Yes
Read 128 bytes
[RST_SET:B0 0x01]
No
0≤Write pointer≤127?
Yes
Yes
Remaining amount≥128?
No
Remaining amount≥128?
No
RX completion?
(INT[18]/[19])
[INT_SOURCE_GRP3:B0 0x26]
Yes
Read remaining data
[RD_RX_FIFO:B0 0x7F]
Amount of received
data (Byte)
[Receive]
Total Rx data
RX FIFO address indication (read pointer)
increments after Rx start.
After receiving 256th byte data, the address
indication is turned to 0 and increments
again.
RX FIFO address indication
255
Start receiving
Time
32/140
FEDL7396A/B/E-07
ML7396A/B/E
●Packet format
ML7396 family supports following packet format. (In DIO mode, the packet format is Preamble, SFD+DIO data)
Preamble and SFD field are automatically inserted in TX, and automatically detected and deleted in RX. The host MCU need
not concern those packet handling.
[IEEE802.15.4g mode] (IEEE_MODE ([PACKET_MODE_SET:B0 0x45(1)]) =0b1)
Manchester coding field
Whitening field
CRC field
LSB
MSB
Preamble
SFD
Length
[B0 0x42]
[B0 0x39]
[B0 0x3a–0x3d]
[B0 0x3e–0x41]
[B0 0x43]
2byte
PSDU
(User data)
(ED)
(CRC)
2/4byte
[B0 0x46]
3 to 2045byte
1byte
[B0 0x45]
FIFO storage area
TX: automatic insertion
RX:auto detection/deletion
[Note]
1.
The following shows the bit assignment of Length field (PHR) in IEEE802.15.4g format. It is different from
IEEE802.15.4d format. User dara fieled (after 3rd byte) will be output with LSB first.
2.
When using CRC32, the minimum user data length is 4 bytes. When transmitting/receiving 3-bytes data, CRC16 should
be used. ACK packet cannot be received under CRC32 setting.
st
1 byte
Input from SPI
Output to Air
2
nd
byte
Mode Reserved Reserved FCS Whiteni
Switch
Length
ng
L10
L9
L8
L7
L6
L5
L4
L3
L2
L1
L0
Mode Reserved Reserved FCS Whiteni
Length
Switch
ng
L10
L9
L8
L7
L6
L5
L4
L3
L2
L1
L0
↑
TX starting bit
After 3rd byte
L7
L6
L5
L4
L3
L2
L1
L0
L0
L1
L2
L3
L4
L5
L6
L7
33/140
FEDL7396A/B/E-07
ML7396A/B/E
[IEEE802.15.4d mode] (IEEE_MODE ([PACKET_MODE_SET:B0 0x45(1)]) =0b0)
Manchester coding field
Whitening field
CRC field (#1)
LSB
MSB
Preamble
[B0 0x42]
[B0 0x39]
SFD
Length
[B0 0x3a–0x3d]
[B0 0x3e–0x41]
[B0 0x43]
2byte
PSDU
(User data)
3 to 125byte
(CRC)
2byte
[B0 0x46]
(ED)
1byte
[B0 0x45]
TX : automatic insertion
RX: auto detection/deletion
[Note]
#1 When in 802.15.4d mode, if setting CRC_AREA ([CRC_AREA/FIFO_TRG:B0 0x77(1)] bit (PHYSET101 bit1) =0b1,
CRC calculationn area will be extended to Length field (Length+PSDU).
1.
The following shows the bit assignment of Length field (PHR) in IEEE802.15.4d format. It is different from
IEEE802.15.4g format. User dara fieled (after 2nd byte) will be output with LSB first.
Input from SPI
L7
L6
L5
L4
L3
L2
L1
L0
Output to Air
L0
L1
L2
L3
L4
L5
L6
L7
↑
TX starting bit
34/140
FEDL7396A/B/E-07
ML7396A/B/E
●Data whitening function
ML7396 family supports data whitening function specified in IEEE 802.15.4g standard. The following figure shows the PN9
pattern generator. The generated pattern will be “XOR” with data located in PSDU area.
Initialization value can be configured by [PN9_SET_L:B0 0x7A] and [PN9_SET_H:B0 0x7B] registers.
When setting PN9_EN ([PN9_SET_H:B0 0x7B(7)]) =0b1, this generator can be used as random number generator.
When WHITENING ([PACKET_MODE_SET:B0 0x45(4)]) =0b1, whitening condition is set by IEEE_MODE
([PACKET_MODE_SET:B0 0x45(1)] setting. Please refer to the "Packet format".
• In IEEE802.15.4d mode (IEEE_MODE=0b0), data whitening applied to every TX or RX packet
• In IEEE802.15.4g mode (IEEE_MODE=0b1), data whitening will be applied to the packet which whitening bit in PHR
fieled is set to 0b1
[Note]
1. The PN9 pattern generator shares setting with the Whitening function. While the Whitening function is running, PN9_EN
should be set to 0b0.
TX: En = Rn
RX: Rn = REn
En:
Rn:
REn:
PN9n:
PN9n
PN9n
Whitening bits as TX data
data bits
Whitening bits as RX data
PN9 pattern (Initialization value 0b111111111)
D
D
D
D
D
D
D
D
D
PN9
Fig. PN9 pattern generator
●FEC function
ML7396 family supports FEC function. FEC function will be applied to PHR and PSDU field as shown in below.
MSB
LSB
Preamble
SFD
PHR
PSDU
(User data)
(CRC)
FEC field
[Note]
1. Length in PHR fieled should be set the length before FEC encoding.
2. When using whitening function at same time, whitening will apply to the FEC encoded data. For more details of
whitening field, please refer to the “Packet format”.
3. Inrerleaving mode is not compliant to IEEE802.15.4g.
35/140
FEDL7396A/B/E-07
ML7396A/B/E
●Energy Detection value (ED value) Function
ML7396 family supports calculating Energy detection value (here in after ED value) based on Received signal strength
indicator (RSSI). ED value acquisition can be enabled by ED_CALC_EN ([ED_CNTRL:B0 0x1B(7)])=0b1, and as soon as
transition to RX_ON state. And acquired ED value will be indicate at [ED_RSLT:B0 0x16] register. When ED_CALC_EN=1,
ED value will be updated constantly during RX_ON state. Even if ED_CALC_EN=1, While CCA operation or diversity search
operation, ED value will not be updated. After completion of CCA operation, diversity search, ED value will be updated.
ED value is not RSSI value at given timing, but average values. The number of average times can be specified by register
ED_AVG[2:0] ([ED_CNTRL:B0 0x1B(2-0)]). During diversity operation, 2DIV_ED_AVG[2:0] ([2DIV_ED_AVG:B0
0x6D(2-0)]) is used for setting. After acquiring specified average ED value, ED_DONE [ED_CNTRL:B0 0x1B(4)] becomes
“0b1”, and [ED_RSLT:B0 0x16] register is updated.
ED_DONE bit will be cleared if one of the following conditions is met.
1.
Gain is switched.
2.
Suspend ED value acquisition and then resume it.
3.
Antenna is switched. (When diversity is enabled)
Timing from ED value starting point ot ED value acquisition is calculated as following formula.
ED value averaging time = AD conversion time (17.7μs/16μs) * number of average times
Note; AD conversion time can be set by ADC_CLK_SET ([ADC_CLK_SET:B0 0x08(4)])
Default value is 1.8MHz and SDC conversion time is 17.7μs
[Timechart]
[Condition]
Set ADC_CLK_SET([ADC_CLK_SET: B1 0x08(4)])=0b1 (2MHz)
Set ED_AVG[2:0] ([ED_CTRL: B0 0x1B(2-0)])=0b011 (8 times averaging)
ED value calculation
execution flag
(Internal signal)
RSSI value
(Internal signal)
AD conversion (17.8/16usec)
[ADC_CLK_SET:B0 0x08(4)]
RSSI
1
RSSI
2
RSSI
3
RSSI
4
RSSI
5
RSSI
6
RSSI
7
RSSI
8
RSSI
9
Compensation
and averaging
ED_VALUE
[ED_RSLT:B0 0x16]
INVALID
ED value averaging period (16μs*8=128μs)
ED_AVG[2:0] ([ED_CNTRL: B0 0x1B(2-0)])
2DIV_ED_AVG[2:0] ([2DIV_ED_AVG:B0 0x6D (2-0)])
ED
1-8
ED
2-9
ED
3-10
Constantly update by
moving averaging
ED_DONE
([ED_CNTRL:B0 0x1b(4)])
36/140
FEDL7396A/B/E-07
ML7396A/B/E
cED value calculation
Input level and ED value are descrived in the following formula. During CCA operation, ED value is bigger than normal
case, since the BPF setting is modified. Therefore, CCA compensation value should be attached to the normal case.
Input level is defined at antenna connector in the ciruit described in the “Application Circuit Example”. And antenna SW
loss is assumed 0.5dB.
[≤200kbps]
ED value = 255/70 * (107 + input level [dBm] - variation - other loss) + CCA cpmpensation
[400kbps]
ED value = 255/62 * (99 + input level [dBm] - variation - other loss)
Parameter
Variations (individual, temp.)
Other loss
CCA compensation
Value
6dB
Antenna, matching circuit loss
12@100kbps, 16@200kbps, 0@other rates
37/140
FEDL7396A/B/E-07
ML7396A/B/E
●Diversity Function
ML7396 family supports two antenna diversity function.
While setting 2DIV_EN ([2DIV_CNTRL: B0 0x71(0)])=0b1, as soon as RX_ON is set, diversity mode will start. When
diversity mode is started, and upon RX data detection, each ED value will be acquired by switching two antennas. And then
antenna with higher ED value will be selected automatically. As diversity uses preamble data for ED value acquisition, longer
preamble length is desirable. If preamble is too short, accurate ED values may not be obtained.
The timing example is as below.
RX packet
RF STATE
Preamble
TRX_OFF
RX_ON
INT[09] (Diversity search completion)
[INT_SOURCE_GRP2: B0 0x25]
Antenna
SFD
ANT1/2
Data
Receive
Antenna
selection
ANT1
ANT1 ED
search period
ANT1/ANT2 search
is repeated
Length
Antenna with higher ED
ANT2
ANT2 ED stabilization
search period
period
SEARCH_TIME[6:0]
RSSI_STABLE[3:0]
([2DIV_SEARCH: B0 0x6F(6-0)])
([RSSI_STABLE_TIME: B0 0x22(3-0)])
ED values and antenna diversity result will be cleared when as below:
1. Diversity search completion interrupt (INT[09] group2) is cleard.
2. FIFO* RX competion interrupt (INT[18] or INT[19] group3) is cleared
3. Diversity resume by errounous detection
ED values and diversity result should be read before clearing Diversity search completion or FIFO* RX completion interrupt.
During receiving state, clearing Diversity search completion interrupt causes the data error since diversity operation wlll
resume by the interrupt clearance. Diverstiy search completion interrupt should be cleared at same timing of FIFO* RX
completion interrupt clearance.
ML7396 supports recovering function from incorrect diversity completion caused by errornous detection due to thermal noize,
After dicersity search completion, if preamble can not be detected until antenna search timer expiration, ML7396 judges the
previous diversity search completion is incorrect and resume diversity operation automatically.
When resume diversity operation for next packet receiving, please clear RX completion interrupt and Diversity search
completion interrupt.
(Note)
1. When an incorrect diversity completion caused by errornous detection due to thermal noize, ML7396 resume antenna
diversity automatically. But when receiving a desired signal during the process of errounous detection, ED value
obtained by [ANT1_ED:B0 0x73] or [ANT2_ED:B0 0x74] may indicate a low value different from the actual input
level.
If this event occures, the actual ED value of desired signal can be achibed by reading [ED_RSLT:B0 0x16] registers after
SFD detection interrupt (INT[11] group2) generation.
2. When RF state is changed to TX_ON state immediately after an incorrect diversity completion caused by errornous
detection, ML7396 judges Diversity search is done. Then, Diversity search is not operated at next receiving. In this case,
please clear Diversity search completion interrupt (INT[09] group2) by next receiving.
38/140
FEDL7396A/B/E-07
ML7396A/B/E
cAntenna switching function
By using [2DIV_CTRL: B0 0x71], [RF_CTRL_SET: B0 0x75] registers, ML7396 can support both SPDT and DPDT
antena swith control. ANT_SW pin (#20) and TRX_SW pin ( #21) output considion for each antenna switch are explained
below.
DPDT switch
Set 2PORT_SW([2DIV_CTRL:B0 0x71(1)])=0b1, ANT_CTRL1([2DIV_CTRL: B0 0x71(5)])=0b0. ANT_SW, TRX_SW
output condition of each Idle, TX, RX state are as follow. (default setting) If INV_TRX_SW([2DIV_CTRL:B0 0x71(2)])=0b1,
polarity of ANT_SW pin (#20) and TRX_SW pin (#21) are reversed.
TX/RX
state
Idle
TX
INV_TRX_SW=0b0
(default setting)
ANT_SW
TRX_SW
H
L
L
H
INV_TRX_SW=0b1
(reversed polarity)
ANT_SW
TRX_SW
L
H
H
L
H
L
L
H
L/H
H/L
H/L
L/H
RX
Description
Idle state
TX state
When Diversity disable or initial condition when
diversity enable is set ([2DIV_CTRL: B0
0x71(0)]=0b1).
If diversity enable is set, during searching,
(ANT_SW=H, TRX_SW=L) and (ANT_SW=L,
TRX_SW=H) are switched alternatively. After
diversity completion, fix to one of the condition.
SPDT switch
Set 2PORT_SW([2DIV_CTRL:B0 0x71(1)])=0b0, ANT_CTRL1([2DIV_CTRL: B0 0x71(5)])=0b0. ANT_SW, TRX_SW
output condition of each Idle, TX, RX state are as follow. (default setting) If INV_TRX_SW([2DIV_CTRL: B0 0x71(2)])=0b1,
polarity of TRX_SW pin (#21) is reversed.
TX/RX
condition
Idle
TX
RX
INV_TRX_SW=0b0
(default setting)
ANT_SW
TRX_SW
L
L
L
H
INV_TRX_SW=0b1
(polarity reverse)
ANT_SW
TRX_SW
L
H
L
L
L
L
L
H
H/L
L
H/L
H
Description
Idel state
TX state
When diversity disable or initial condition when
diversity enable is set ([2DIV_CTRL: B0
0x71(0)]=0b1).
If diversity enable is set,during searching
(TRX_SW=H) and (TRX_SW=L) is switched
alternatively. After diversity completion , fix to
one of the condition.
39/140
FEDL7396A/B/E-07
ML7396A/B/E
In the above setting, If INV_ANT_SW([2DIV_CTRL: B0 0x71(3)])=0b1, ANT_CTRL1([2DIV_CTRL: B0 0x71(5)])=0b1
are set, polarity of ANT_SW pin (#20)is reversed.
TX/RX state
Idle
TX
RX
INV_ANT_SW=0b0
ANT_CTRL1=any
(default setting)
ANT_SW
TRX_SW
L
L
L
H
INV_ANT_SW=0b1
ANT_CTRL1=0b1
ANT_SW
H
H
TRX_SW
L
H
L
L
H
L
H/L
L
L/H
L
Description
Idle state
TX state
When diversity disable or intial codition when
diversity enable is set ([2DIV_CTRL: B0
0x71(0)]=0b1).
If diversity enable is set, during searching
(ANT_SW=H) and (ANT_SW=L) is switched
alternatively. After diversity completion, fix to
one of the condition.
cAntenna switch forced setting
ANT_SW pin (#20) and TRX_SW pin (#21) output conditions can be set to fix by [RF_CNTRL_SET: B0 0x75] register, or
2DIV_RSLT2 ([2DIV_RSLT:B0 0x72(1)]) and INV_TRX_SW ([2DIV_CNTRL:B0 0x71(2)]) when diversity fuction is
diabled.
1.
Forced setting by [RF_CNTRL_SET] register
ANT_SW pin: By ANT_SW_EN (bit1)=0b1, ANT_SW_SET (bit5) condition will be output.
TRX_SW pin: By TRX_SW_EN (bit0)=0b1, TRX_SW_SET (bit4) condition will be output.
2.
Forced setting by 2DIV_RSLT2 bit and INV_TRX_SW bit when diversity function is disabled
( 2DIV_EN ([2DIV_CNTRL:B0 0x71(0)])=0b0)
ANT_SW pin: When 2DIV_RSLT2=0b0, output “L”. When 0b1, output “H”.
TRX_SW pin: When INV_TRX_SW=0b0, output “L”. When 0b1, output “H”.
Output defined by [RF_CNTRL_SET:B0 0x75] registers setting has higer priority.
When diversity is enable (2DIV_EN=0b1), output definced by 2DIV_RSLT2 and INV_TRX_SW are ignored.
Any antenna switch setting is inhibited to avoid out-of-synchronization during RECEIVE state.
40/140
FEDL7396A/B/E-07
ML7396A/B/E
Antenna switching control signals can be also used as below.
Example 1) using one DPDT switch
Please set 2PORT_SW([2DIV_CTRL: B0 0x71(1)])=0b1.
ML7396A_B_E
DPDT#1
LNA_P pin (#30)
PA_OUT pin (#27)
TRX_SW pin (#20)
ANT_SW pin (#21)
DCNT pin (#22)
(Note) altenate external PA control signal exists (DCNT pin).
(Note) external circuits around LNA_P pin, PA_OUT pin and antenna switch (DPDT#1) are omitted in this example.
Example 2) using 2 SPDT switches
Please set 2PORT_SW([2DIV_CTRL: B0 0x71(1)])=0b0.
ML7396A_B_E
SPDT#1
SPDT#2
LNA_P pin (#30)
PA_OUT pin (#27)
TRX_SW pin (#20)
ANT_SW pin (#21)
DCNT pin (#22)
(Note) altenate external PA control signal exsits. (DCNT pin)
(Note) external circuits around LNA_P pin, PA_OUTpin and antenna switch(SPDT#2) are omitted in this example.
41/140
FEDL7396A/B/E-07
ML7396A/B/E
●CCA (Clear Channel Assessment) Function
ML7396 family has CCA function that will check availability of certain channel. 3 type of modes are available, normal mode,
continuous mode, IDLE detection mode.
[CCA mode setting]
At normal operation
CCA mode
Normal mode
Continuous mode
IDLE detection mode
Bit4 (CCA_EN)
0b1
0b1
0b1
[CCA_CNTRL:B0 0x15]
Bit3 (CCA_IDLE_EN)
0b0
0b0
0b1
Bit5 (CCA_LOOP_START)
0b0
0b1
0b0
When using AUTO_ACK
CCA mode
IDLE detection mode
[AUTO_ACK_SET:B0 0x55]
Bit4 (AUTO_ACK_EN)
0b1
[CCA_CNTRL:B0 0x15]
Bit7 (CCA_AUTO_EN)
0b1
[ADDFIL_CNTRL:B2 0x60]
Bit0 to Bit4
Set 0b1 to any bits
[PACKET_MODE_SET:B0 0x45]
Bit0 (ADDFIL_IDLE_DET)
0b1
When using address filtering
CCA mode
IDLE detection mode
42/140
FEDL7396A/B/E-07
ML7396A/B/E
cNormal mode
Normal mode determines IDLE or BUSY. CCA (normal mode) will be executed when RX_ON is issued while CCA_EN
([CCA_CNTRL:B0 0x15(4)])=0b1, CCA_IDLE_EN ([CCA_CNTRL:B0 0x15(3)])=0b0 and CCA_LOOP_START
([CCA_CNTRL:B0 0x15(5)])=0b0 are set.
The judgement of CCA is determined by average ED value in [ED_RSLT:B0 0x16] and threshold value defined by
[CCA_LEVEL:B0 0x13] register. If average ED value exceeds CCA threshold value, it is determined as “BUSY”. And set
CCA_RSLT[1:0] ([CCA_CNTRL:B0 0x15(1-0)]) =0b01 is set. If ED value is smaller than CCA threshold, and maintains
IDLE detection period which is defined by IDLE_WAIT[9:0] of the [IDLE_WAIT_L:B0 0x17], [IDLE_WAIT_H:B0 0x18]
resisters, it is determined as “IDLE”. And CCA_RSLT[1:0] = 0b00 is set. For details operation of IDLE_WAIT[9:0], please
refer to “IDLE detection for long period”.
If “BUSY” or “IDLE” is determined, CCA_DONE [CCA_CNTRL:B0 0x15(2)] will become 0b1 and CCA completion
interrupt (INT[08] group2) is generated. CCA_EN bit will be cleared to 0b0 automatically.
When CCA completion interrupt is cleared, CCA_RSLT[1:0] are reset to 0b00. Therefore CCA_RSLT[1:0] need to be read
before clearing CCA completion interrupt.
If an ED value exceeds the value defined by [CCA_IGNORE_LEVEL:B0 0x12] register, and as long as a given ED value is
included in the averaging target of ED value calculation, IDLE judgment is not performed. In this case, if average ED value
exceeds CCA threshold value, it is determined as “BUSY” and CCA operation is terminated. However, if average ED value is
smaller than CCA threshold value, IDLE judgment is not determined. And CCA_RSLT[1:0] indicates 0b11. CCA operation
continues until “BUSY” is ditermined or the given ED value is out of the averaging target and “IDLE” is determined. For
detail operation of ED value exceeding [CCA_IGNORE_LEVEL:B0 0x12] register, please refer to "IDLE determination
exclusion under strong signal input".
Timing from CCA command issue to the CCA completion is calculated as the following formula.
[IDLE detection]
CCA execution time = (ED value average times + IDLE_WAIT setting) * A/D conversion time +
filter stabilization time (A/D conversion time* 2)
[BUSY detection]
CCA execution time = ED value average times * A/D conversion time+ filter stabilization time (A/D conversion time* 2)
[Note]
1. Above formula does not consider IDLE judgment exclusion based on [CCA_IGNORE_LEVEL:B0 0x12] register.
For details, please refer to "DLE determination exclusion under strong signal input ".
2. A/D conversion time can be selected by ADC_CLK_SET ([ADC_CLK_SET:B0 0x08(4)]).
ADC_CLK_SET=0b0: 17.8μs, 0b1: 16μs
43/140
FEDL7396A/B/E-07
ML7396A/B/E
The following is timing chart for normal mode.
[Conditions]
ADC_CK_SET ([ADC_CLK_SET:B0 0x08(4)])=0b1 (2MHz)
ED_AVG[2:0] ([ED_CNTRL:B0 0x1B(2-0)])=0b011 (ED value 8 times average)
IDLE_WAIT[9:0] ([IDLE_WAIT_L/H:B0 0x17/0x18(1-0)])=0b00_0000_0000 (IDLE detection 0μs)
[IDLE detection case]
CCA_EN
[CCA_CNTRL:B0 0x15(4)]
AD conversion
(16μs)
ED value
(Internal signal)
Filter stabilization
16 to 32 μs
ED0
ED value average period (16μs * 8=128μs)
ED1
ED2
ED3
●●●
ED5
ED6
ED7
averaging
ED value[7:0]
ED
(0-7)
[ED_RSLT:B0 0x16]
< CCA_TH_LV
B0 0x13
CCA_RSLT[1:0]
0b00 (IDLE)
0b10 (CCA on-going)
[CCA_CNTRL:B0 0x15(1-0)]
CCA_DONE
[CCA_CNTRL:B0 0x15(2)]
IDLE_WIAT[9:0]
should be set, for
IDLE detection for
longer period
CCA execution time (Max. 32μs+128μs=160μs)
[BUSY detection case]
CCA_EN
[CCA_CNTRL:B0 0x15(4)]
AD conversion Filter stabilization
(16μs)
16 to 32 μs
ED value
(Internal signal)
ED0
ED value averaging (16μs * 8=128μs)
ED1
ED2
ED3
●●●
ED5
ED6
ED7
averaging
ED Value[7:0]
ED
(0-7)
[ED_RSLT:B0 0x16]
> CCA_TH_LV
B0 0x13
CCA_RSLT[1:0]
[CCA_CNTRL:B0 0x15(1-0)]
0b10 (CCA on-going)
CCA_DONE
[CCA_CNTRL:B0 0x15(2)]
CCA execution time (Max. 32μs+128μs=160μs)
0b01 (BUSY)
IDLE_WIAT[9:0]
should be set, for
IDLE detection for
longer period
[Note]
1. After issuing CCA command, transit into no-input state, and exit this state after filter stbilization.
2. When the iput level chnge from no-input to -80dBm, it takes around 32 μs for indicating -80dBm ED value.
44/140
FEDL7396A/B/E-07
ML7396A/B/E
cContinuous mode
Continuous mode continues CCA operation until terminated by the host MCU. CCA continuous mode will be executed
when RX_ON is issued while CCA_EN ([CCA_CNTRL:B0 0x15(4)])=0b1, CCA_IDLE_EN ([CCA_CNTRL:B0
0x15(3)])=0b0 and CCA_LOOP_START ([CCA_CNTRL:B0 0x15(5)])=0b1 are set.
Like normal mode, CCA is determined by average ED value in [ED_RSLT:B0 0x16] register and threshold value defined
by [CCA_LEVEL:B0 0x13] register. If average ED value exceeds CCA threshold, it is determined as “BUSY”, set
CCA_RSLT[1:0] ([CCA_CNTRL:B0 0x15(1-0)]) =0b01. If ED value is smaller than CCA threshold, and maintains IDLE
detection period which is defined by IDLE_WAIT[9:0] of the [IDLE_WAIT_L:B0 0x17], [IDLE_WAIT_H:B0 0x18]
resisters, it is determined as “IDLE”. And CCA_RSLT[1:0] = 0b00 is set. For details operation of IDLE_WAIT[9:0], please
refer to “IDLE detection for long period”.
If an ED value exceeds the value defined by [CCA_IGNORE_LEVEL:B0 0x12] register, and as long as a given ED value is
included in the averaging target of ED value calculation, IDLE judgment is not performed. In this case, if average ED value
exceeds CCA threshold value, it is determined as “BUSY” and CCA operation is terminated. However, if average ED value is
smaller than CCA threshold value, IDLE judgment is not determined. And CCA_RSLT[1:0] indicates 0b11. For detail
operation of ED value exceeding [CCA_IGNORE_LEVEL:B0 0x12] register, please refer to "IDLE determination exclusion
under strong signal input".
Continuous mode does not stop when “BUSY” or “IDLE” is determined. CCA operation continues until 0b1 is set to
CCA_LOOP_STOP ([CCA_CNTRL:B0 0x15(6)]). Result is updated every time ED value is acquired. CCA_DONE
([CCA_CNTRL:B0 0x15(2)]) will not be 0b1, and CCA completion interrupt (INT[08] group2) will not be generated.
45/140
FEDL7396A/B/E-07
ML7396A/B/E
The following is timing chart for continuous mode.
[Conditions]
ADC_CK_SET ([ADC_CLK_SET:B0 0x08(4)])=0b1 (2MHz)
ED_AVG[2:0] ([ED_CNTRL:B0 0x1B(2-0)])=0b011 (ED value 8 times average)
IDLE_WAIT[9:0] ([IDLE_WAIT_L/H:B0 0x17/0x18(1-0)])=0b00_0000_0000 (IDLE detection 0μs)
[BUST to IDLE transitions, terminated with CCA_LOOP_STOP]
After CCA_LOOP_STOP is issued,
CCA_LOOP_START, CCA_EN and
CCA_LOOP_STOP are automatically
cleared.
CCA_LOOP_START/ CCA_EN
[CCA_CNTRL:B0 0x15(5,4)]
CCA_LOOP_STOP
[CCA_CNTRL:B0 0x15(6)]
AD conversion
(16μs)
ED value
(Internal signal)
Filter stabilization
16 to 32 μs
ED value average period (128μs)
ED0
●●●
ED7
ED8
●●●
ED28
●●●
ED50
●●●
ED
(21-28)
●●●
averaging
ED Value[7:0]
[ED_RSLT:B0 0x16]
INVALID
ED
(0-7)
ED
(1-8)
ED
(43-50)
> CCA_TH_LV
B0 0x13
CCA_RSLT[1:0]
[CCA_CNTRL:B0 0x15(1-0)]
CCA_DONE
[CCA_CNTRL:B0 0x15(2)]
ED_DONE
[ED_CNTRL:B0 0x1b(4)]
0b10 (CCA on-going)
0b01 (BUSY)
<CCA_TH_LV
B0 0x13
0b00 (IDLE)
Interrupt not generated
IDLE_WIAT[9:0]
should be seto, for
IDLE detection for
longer period
When 8 times ED value acquision,
ED_DONE=0b1.
(8 times average setting)
[Note]
1. After issuing CCA command, transit into no-input state, and exit this state after filter stbilization.
2. When the iput level chnge from no-input to -80dBm, it takes around 32 μs for indicating -80dBm ED value.
46/140
FEDL7396A/B/E-07
ML7396A/B/E
cIDLE detection mode
IDLE detection mode continues CCA until IDLE detection. IDLE detection CCA will be executed when RX_ON is issued
while CCA_EN ([CCA_CNTRL:B0 0x15(4)])=0b1, CCA_IDLE_EN ([CCA_CNTRL:B0 0x15(3)])=0b1 and
CCA_LOOP_START ([CCA_CNTRL:B0 0x15(5)])=0b0 are set.
When AUTO_ACK function is enabled by AUTO_ACK_EN ([AUTO_ACK_SET:B0 0x55(4)])=0b1, if CCA_AUTO_EN
([CCA_CTRL:B0 0x15(7)]) =0b1, CCA IDLE detection mode is performed before transsmitting ACK packet.
And when Address filtering function is enable by setting 0b1 to any bit0 to bit4 of [ADDFIL_CNTRL:B2 0x60] register, if
ADDFIL_IDLE_DET ([PACKET_MODE_SET:B0 0x45(0)])=0b1, CCA IDLE detection mode is performed after address
mismatch detection.
Like normal mode, CCA is determined by average ED value in [ED_RSLT:B0 0x16] register and threshold value defined
by [CCA_LEVEL:B0 0x13] register. If average ED value exceeds CCA threshold, it is determined as “BUSY”, set
CCA_RSLT[1:0] ([CCA_CNTRL:B0 0x15(1-0)]) =0b01. If ED value is smaller than CCA threshold, and maintains IDLE
detection period which is defined by IDLE_WAIT[9:0] of the [IDLE_WAIT_L:B0 0x17], [IDLE_WAIT_H:B0 0x18]
resisters, it is determined as “IDLE”. And CCA_RSLT[1:0] = 0b00 is set. For details operation of IDLE_WAIT[9:0], please
refer to “IDLE detection for long period”.
In IDLE detection mode, only when IDLE is detected, CCA_DONE ([CCA_CNTRL:B0 0x15(2)]) wil be set to 0b1 and
CCA completion interrupt (INT[08] group2) is generated. If CCA operation is performed by CCA_EN=0b1, after IDLE
detection, CCA_EN and CCA_IDLE_EN are reset to 0b0.
Upon clearing CCA completion interrupt, CCA_RSLT[1:0] are reset to 0b00. CCA_RSLT[1:0] should be read before
clearing CCA completion interrupt.
If an ED value exceeds the value defined by [CCA_IGNORE_LEVEL:B0 0x12] register, and as long as a given ED value is
included in the averaging target of ED value calculation, IDLE judgment is not performed. In this case, if average ED value is
smaller than CCA threshold value, IDLE judgment is not determined. And CCA_RSLT[1:0] indicates 0b11. CCA operation
continues until given ED value is out of averaging target and “IDLE” is determined. For details of ED value exceeding
[CCA_IGNORE_LEVEL: B0 0x12] register, please refer to ”IDLE determination exclusion under strong signal input”.
47/140
FEDL7396A/B/E-07
ML7396A/B/E
The follwing is timing chart for IDLE detection.
[Upon BUSY detection, continue CCA and IDLE detection case]
[Conditions]
ADC_CK_SET ([ADC_CLK_SET:B0 0x08(4)])=0b1 (2MHz)
ED_AVG[2:0] ([ED_CNTRL:B0 0x1B(2-0)])=0b011 (ED value 8 times average)
IDLE_WAIT[9:0] ([IDLE_WAIT_L/H:B0 0x17/0x18(1-0)])=0b00_0000_0000 (IDLE detection 0μs)
After IDLE detection, CCA will be completed,
then CCA_EN, CCA_IDLE_EN are reset to
0b0 automatically..
CCA_EN/CCA_IDLE_EN
[CCA_CTRL: B0 0x15(4-3)]
AD conversion
(16μs)
ED value
(internal signal)
Filter stabilization
16 to 32 μs
ED value average period
ED0
●●●
ED7
IDLE detection period
ED8
ED27
●●●
ED28
ED29
averaging
ED_Value[7:0]
[ED_RSLT: B0 0x16]
INVALID
ED
(0-7)
ED
(1-8)
●●●
ED
ED
ED
(20-27) (21-28) (22-29)
> CCA_TH_LV
B0 0x13
<CCA_TH_LV
B0 0x13
0b01 (BUSY)
0b00 (IDLE)
CCA_RSLT[1:0]
[CCA_CNTRL: B0 0x15(1-0)]
CCA_DONE
0b10 (CCA on-going)
If BUSY, Interrupt not generated
[CCA_CNTRL: B0 0x15(2)]
CCA execution period (Min.128μs+IDLE detection period)
IDLE_WAIT[9:0]
should be set, for
IDLE detection for
longer period.
[Note]
1. After issuing CCA command, transit into no-input state, and exit this state after filter stbilization.
2. When the iput level chnge from no-input to -80dBm, it takes around 32 μs for indicating -80dBm ED value.
48/140
FEDL7396A/B/E-07
ML7396A/B/E
cIDLE determination exclusion under strong signal input
If acquired ED value exceeds [CCA_IGNORE_LVL: B0 0x12] register, IDLE dertermination is not performed as lon as a
given ED value is included in the averaging target range. If average ED value including this strong ED value indicated in
[ED_RSLT: B0 0x16] register exceeds the CCA threshold value defined by [CCA_LEVEL: B0 0x13] register, it is
considered as ”BUSY”. And CCA_RSLT[1:0]([CCA_CTRL: B0 0x15(1-0)])=0b01 is set.
If average ED value is smaller than CCA threshold value, IDLE determination is not performed and CCA_RSLT[1:0]
indicates 0b11 ”CCA evaluation on-going (ED value excluding CCA judgement acquisition)”. CCA will continue until
“IDLE” or “BUSY” determination (in case of IDLE detection mode, “IDLE2 is determined. In case of continuous mode,
CCA_LOOP_STOP([CCA_CTRL: B0 0x15(6)]) is issued.)
[Note]
CCA completion interrupt (INT[08] group2) is generated only when “IDLE” or “BUSY” is determined. Therefore, if data
whose ED value exceeds IGNORE_LV[7:0] ([CCA_IGNORE_LEVEL:B0 0x12(7-0)]) are input intermittently, neither
“IDLE” or “BUSY” can be determined and CCA may continues.
[ED value acquisition under extrem strong signal]
ED value >CCA_IGNORE_LVL
IGNORE_LV[7:0]
[CCA_IGNORE_LEVEL: B0 0x12]
ED value
(analog)
ED value
[Time 1]
Shift register
(ED value 8 times
average)
Averaging target includes ED
value exceeding
IGNORE_LV[7:0]. In this case,
“IDLE” is not determined.
[Time2]
Time
[Time 3]
However, if averaging value
exceeds CCA threshold, “BUSY”
is determined.
●
●
●
[Time 8]
[Time 9]
ED value, which includes IGNORE_LV[7:0], is
out of averaging target. In this case, “IDLE” can
be determined.
49/140
FEDL7396A/B/E-07
ML7396A/B/E
The follwing is timing chart for CCA determination exclusion under strong signal.
[During IDLE_WAIT counting, detected extremly strong signal. After the given signal is out of averaging target, IDLE
detection case]
[Condition]
CCA normal mode
ADC_CK_SEL ([ADC_CLK_SET: B0 0x08(4)])=0b1 (2MHz)
ED_AVG[2:0] ([ED_CTRL: B0 0x1B(2-0)])=0b011 (ED value 8 times average)
IDLE_WAIT[9:0] ([IDLE_WAIT_L/H: B0 0x17/18(1-0)])=0b00_0000_0111(IDLE detection period 112μs)
ED VALUE>CCA_IGNORE_LEVEL
ED value <CCA_IGNORE_LEVEL
ED value
(internal signal)
●●●
ED7
ED8
●●●
ED value<CCA_IGNORE_LEVEL
ED13
ED14
ED15
●●●
ED21
ED22
●●●
ED29
Average ED value <CCA_TH_LV
(If average ED value >CCA_TH_LL, then BUSY detection.)
ED_Value[7:0]
[ED_RSLT: B0 0x16]
INVALID
ED
(0-7)
ED
(1-8)
●●●
ED
(6-13)
ED
(7-14)
ED
(8-15)
●●●
ED value>CCA_IGNORE_LEVEL
detection and reset
CCA_PROG[9:0]
[CCA_PROG_L/H:B0 0x19/1A]
0x001
●●●
0x006
0x000
[CCA_CNTRL: B0 0x15(1-0)]
CCA_DONE
0b10 (on-going)
●●●
ED
(22-29)
Resume counting due to the extreme
strong signal is out of averaging target.
●●●
0x007
CCA _RSLT maintains until
IDLE/BUSY detected.
Due to extreme strong signal detection,
CCA_RSLT is not indicating IDLE.
CCA_RSLT[1:0]
ED
ED
(14-21) (15-22)
0b11 (on-going)
0b00 (IDLE)
CCA_RSLT[1:0]=0b11 do not generate interrupt
[CCA_CNTRL: B0 0x15(2)]
[Note]
1. After issuing CCA command, transit into no-input state, and exit this state after filter stbilization.
2. When the iput level chnge from no-input to -80dBm, it takes around 32 μs for indicating -80dBm ED value.
50/140
FEDL7396A/B/E-07
ML7396A/B/E
cIDLE detection for long period
When CCA IDLE detection is performed for longer time period, IDLE_WAIT[9:0]([IDLE_WAIT_L/H:B0 0x17/18(1-0)]
can be used. By setting IDLE_WAIT [9:0], averaging period longer than the period (for example, AD conversion16μs, 8
times average setting 128μs) can be possible.
This function can be used for IDLE determination – by counting times when average ED value becomes smaller than CCA
threshold defined by [CCA_LEVEL: B0 0x13] register. When counting exceed IDLE_WAIT [9:0], IDLE is determined. If
average ED value exceeds CCA threshold level, imemediately “Busy” is determined without wait for IDLE_WAIT [9:0]
period.
The following timing chart is IDLE detection setting IDLE_WAIT[9:0].
[ED value 8 timesv average IDLE detection case]
[Condition]
CCA normal mode
ADC_CK_SEL ([ADC_CLK_SET: B0 0x08(4)])=0b1 (2MHz)
ED_AVG[2:0] ([ED_CTRL: B0 0x1B(2-0)])=0b011 (ED value 8 times average)
IDLE_WAIT[9:0] ([IDLE_WAIT_L/H: B0 0x17/18(1-0)])=0b00_0000_0011 (IDLE detection period 48μs)
CCA_EN
[CCA_CNTRL: B0 0x15(4)]
AD conversion
(16μs)
ED value
(Internal signal)
Filter stabilization
16 to 32 μs
ED value averaging period
(128μs)
ED0
ED1
ED2
●●●
IDLE detection period
(48μs)
ED7
ED8
ED9
ED
(0-7)
ED
(1-8)
ED10
ED11
ED
(2-9)
ED
(3-10)
averaging
ED_VALUE[7:0]
[ED_RSLT: B0 0x16]
INVALID
< CCA_TH_LV
B0 0x13
IDLE_WAIT[9:0]
[IDLE_WAIT_L/H:B0 0x17/18]
CCA_RSLT[1:0]
[CCA_CNTRL: B0 0x15(1-0)]
CCA_DONE
0x000
0x001 0x002 0x003
0b00 (IDLE)
0b10 (CCA on-going)
IDLE_WAIT start
[CCA_CNTRL: B0 0x15(2)]
CCA execution period (Max.32μs+128μs+48μs=208μs)
(average ED value < CCA_TH_LV)
continue for AD conversion period
3 times (48μs), then IDLE is
determined.
[Note]
1. After issuing CCA command, transit into no-input state, and exit this state after filter stbilization.
2. When the iput level chnge from no-input to -80dBm, it takes around 32 μs for indicating -80dBm ED value.
51/140
FEDL7396A/B/E-07
ML7396A/B/E
[ED value 1time IDLE detection case]
[Condition]
CCA normal mode
ADC_CK_SEL ([ADC_CLK_SET: B0 0x08(4)])=0b1 (2MHz)
ED_AVG[2:0] ([ED_CTRL: B0 0x41(2-0)])=0b000 (ED value 1 time average)
IDLE_WAIT[9:0] ([IDLE_WAIT_L/H:B0 0x1718(1-0)])=0b00_0000_1110 (IDLE detection period 224μs)
CCA_EN
ED value average period (16μs)
[CCA_CTRL: B0 0x15 (4)]
AD conversion
(16μs)
Filter stabilization
16 to 32 μs
ED value
(Internal signal)
ED0
IDLE detection period (224μs)
ED1
ED2
ED3
●●●
ED13
ED14
ED
(2)
●●●
ED
(12)
ED
(13)
Do not average
ED_Value[7:0]
[ED_RSLT: B0 0x16]
INVALID
ED
(0)
If IDLE_WAIT=0x000,
IDLE is detection here.
IDLE_WAIT[9:0]
[IDLE_WAIT_L/H;B0 0x17/18]
CCA_RSLT[1:0]
[CCA_CNTRL: B0 0x15(1-0)]
ED
(1)
ED
(14)
< CCA_TH_LV
0x000
0x001 0x002
●●●
0x00C 0x00D 0x00E
0b00 (IDLE)
0b10 (on-going)
CCA_DONE
[CCA_CNTRL:B0 0x15(2)]
CCA execution period (Max.32μs+16μs+224μs=272μs)
(average ED value < CCA_TH_LV)
continue for AD conversion period
14 times (224μs) , then IDLE is
determined.
52/140
FEDL7396A/B/E-07
ML7396A/B/E
cCCA operation during diversity
(1) CCA operation during diversity search
During diversity search, If CCA command is issued, diversity terminated and CCA starts.
Upon CCA starting, antenna is fixed to the default value (*1), maintaining until next diversity search. However, if
TX_ANT_EN ([2DIV_RSLT:B0 0x72(5)])=0b1 is set, antenna is specified by TX_ANT ([2DIV_RSLT:B0 0x72(4)]) and
maintaining until next diversity search.
After CCA completion, if SFD is not detected during diversity search time specified by SEARCH_TIME[6:0]
([2DIV_SEARCH:B0 0x6F(6-0)]) (default approx. 330μs), diversity search will be executed again. If SFD is detected
during CCA or after CCA completion, continuing RECEIVE state and diversity search is not executed.
* 1 : Please refer the each table of “Antenna switching function” in “Diversity Function”.
(Upper setting in the "RX" state column)
When TX_ANT_EN=0b1,
the antenna is switched to the
specified by TX_ANT.
When TX_ANT_EN=0b0 ,
the antenna is initialized to
ANT1.
Maintaining the antenna
during diversity search
time. (default: 330μs)
After CCA completion, if SFD
is not detected during diversity
search time, diversity search is
executed again.
If SFD is detected, maintaining
RECEIVE state.
ANT_SW
CCA_EN
CCA_DONE
Diversity search
CCA
Diversity search
[Note]
When executing CCA during diversity search, set the waiting taimer for waiting for CAA completion interrupt (INT[08]
group2). Since CCA executing timing is same as the diversity search completion, CCA completion interrupt may not be
notified. When timeout occurs, the latest result is stored into CCA_RSLT[1:0] ([CCA_CNTRL:B0 0x15(1-0)]). In this
case, if executing CCA again, set CCA_LOOP_STOP ([CCA_CNTRL:B0 0x15(6)])=0b1 before issuing CCA command.
For waiting timer setting, please refer to the CCA execution time described in "Normal mode".
For details of the CCA execution flow during diversity search, please refer to "CCA operation during diversity" in the
“Flow Charts”.
During CCA operarion, RX operation is performed at the same time. Even if CCA_DONE is not notified, SFD detection
interrupt (INT[11] group2), RX FIFO access error interruption (INT[14] group2), FIFO-Full interrupt (INT[05] group1),
FIFO0/1 RX completion interrupt (INT[18]/[19] group3), or FIFO0/1 CRC error interrupt (INT[20]/[21] group3) may be
notified.
For details of the diversity function, please refer to "Diversity Function".
53/140
FEDL7396A/B/E-07
ML7396A/B/E
(2) During diversity search, before RX_ON state, CCA is performed
If diversity ON setting and CCA operation setting are enabled before RX_ON state, after RX_ON state transition, diversity
search will not perform, but CCA will start.
After CCA completion, if SFD is not detected during diversity search time specified by SEARCH_TIME[6:0]
([2DIV_SEARCH:B0 0x6F(6-0)]) (default approx. 330μs), diversity search wil be executed. If SFD is detected during CCA
or after CCAcompletion, continuing RECEIVE state and diversity search is not executed.
When TX_ANT_EN=0b1,
the antenna is switched to the
specified by TX_ANT.
When TX_ANT_EN=0b0 ,
the antenna is initialized to
ANT1.
Maintaining the antenna
during diversity search
time. (default: 330μs)
After CCA completion, if SFD
is not detected during diversity
search time, diversity search is
executed again.
If SFD is detected, maintaining
RECEIVE state.
RX_ON
ANT_SW
2DIV_DONE
CCA_EN
CCA_DONE
CCA
Diversity search
54/140
FEDL7396A/B/E-07
ML7396A/B/E
●SFD detection function
ML7396 family supports the “Start Frame of Delimiter” (SFD) recognition function. By having 2 sets of SFD pattern strage
area, it is possible to detect IEEE 802.15.4g SFD patterns valied by “MRFSKFSD setting” and “FEC scheme”. For more
details, please refer to IEEE 802.15.4g standard.
Note: The default value of both SFD#1 and SFD#2 (Bank0 0x3A to 0x41) are set to the IEEE 802.15.4d SFD (1byte:0xA7).
In IEEE802.15.4g standard, 4 SFD pattern (each 2 bytes) is defined according to SFD group defined by phyMRFSKSFD and
FEC scheme (coded, uncoded).
According to the setting to MRFSKSFD ([PACKET_MODE_SET:B0 0x45(6)]) and FEC_EN ([FEC_CRC_SET:B0
0x46(6)]), SFD pattern to be added TX packet and SFD pattern to be received in RX packet are selected from SDF pattern #1
and SFD pattern #2 as following tables. SFD pattern #1 is defined by [SFD1_SET1:B0 0x3A] to [SFD1_SET4:B0 0x3D]
registers and SFD pattern #2 is defined by [SFD2_SET1:B0 0x3E] to [SFD2_SET4:B0 0x41] registers.
(1) TX
SFD length is shorter than or equal to 2 bytes. (IEEE 802.15.4g format)
MRFSKSFD
FEC_EN
0
1
0
1
SFD1[15:0]
SFD1[31:16]
SFD2[15:0]
SFD2[31:16]
SFD length is longer than or equal to 3 bytes. (Original format
MRFSKSFD
FEC_EN
0/1
0
1
SFD1 [31:0]
SFD2 [31:0]
(2) RX
If SFD length is shorter than or equal to 2 bytes and FEC_EN=0b1, it is possible to serach two SFD patterns. According to the
matching pattern, FEC is performed. Otherwise serach one pattern and the data following SFD are processed as uncoded.
SFD length shorter than or equal to 2bytes. (IEEE 802.15.4g format)
FEC_EN
MRFSKSFD
SFD pattern
uncoded
coded
SFD
detect
1
0
SFD1 [15:0]
SFD1 [31:16]
Uncoded
or coded
1
1
SFD2 [15:0]
SFD2 [31:16]
Uncoded
or coded
0
0
0
1
SFD1 [15:0]
SFD2 [15:0]
-
Uncoded
Uncoded
Data process after SFD
If pattern match with coded
pattern, FEC is performed.
If pattern match with uncoded
pattern, FEC is not performed
If pattern match with coded
pattern, FEC is performed.
If pattern match with uncoded
pattenr, FEC is not performed.
Determined as uncoded
Determined as uncoded
55/140
FEDL7396A/B/E-07
ML7396A/B/E
SFD length is longer than or equal to 3bytes. (Original format)
FEC_EN
MRFSKSFD
1
SFD pattern
SFD detect
uncoded
Coded
0
SFD1 [31:0]
-
Uncoded
1
1
SFD2 [31:0]
-
Uncoded
0
0
SFD1 [31:0]
-
Uncoded
0
1
SFD2 [31:0]
-
Uncoded
Process following to
SFD
Determined as
uncoded
Determined as
uncoded
Determined as
uncoded
Determined as
uncoded
When using IEEE 802.15.4g (2bytes SFD), recommended configuration will be as following table.
Register name
SFD1_SET1
SFD1_SET2
SFD1_SET3
SFD1_SET4
SFD2_SET1
SFD2_SET2
SFD2_SET3
SFD2_SET4
Address (Bank 0)
0x3a
0x3b
0x3c
0x3d
0x3e
0x3f
0x40
0x41
Setting value
0x09
0x72
0xF6
0x72
0x5E
0x70
0xC6
0xB4
56/140
FEDL7396A/B/E-07
ML7396A/B/E
●AUTO_ACK function
ML7396 family supports AUTO_ACK function to assist MCU operation in acknowledge packet (hereafter Ack packet)
transmission. Followings are detail of the AUTO_ACK function.
[Notes when using AUTO_ACK function]
1. AUTO_ACK function can not be used with FEC function, please set FEC_EN ([FEC/CRC_SET:B0 0x46(6)])=0b1.
When MCU handls Ack packet, FEC function can be used.
2. When TX packet and RX packet use diferent FCS length, especially note on the following;
If transmissting Ack packet before reading out RX data from FIFO, TX packet FCS length will be applied to the unread RX
data stored into FIFO. Therefore, RX data can not be read out correctly. Under this case, before start to read RX data,
forcibly set RX packet FCS length by using [FEC/CRC_SET:B0 0x46] register.
(Above condition will meet when the data packet uses 32bit FCS and Ack packet uses 16bit FCS. Since ML7396 fammily
does not support 32bit FCS Ack packet.)
*Ack transmission (MCU requests transmitting Ack packet)
1) Analyzing Frame Control Field in RX data, and if Ack request bit is set to 0b1, then obtain Sequence Number from RX
data.
2) After RX completion, performing CRC check and if FCS is OK, then transit to TX_ON state automatically for Ack packet
transmission preparation. (At this time, RX completion interrupt (INT[18]/[19] group3) will be generated.)
3) MCU analyzes Address field and Pending data in received data, and it decide to transmit Ack packet, set Ack packet to
[ACK_FRAME1:B0 0x53] and [ACK_FRAME2:B0 0x54] registers.
Note: It is dpossible to determine Ack packet transmittion by reading MAC header. Therefore Ack packet setting is possible
before RX completion.
If there is a Pending data, the Frame Pending bit should be set to 0b1 by [ACK_FRAME1:B0 0x53] register.
4) After completing TX_ON state transition, Auto_Ack ready interrupt (INT[24] group4) will be generated.
After confirming Ack_ready interrupt, set ACK_SEND ([AUTO_ACK_SET:B0 0x55(1)])=0b1 .
5) Transmitting Ack packet
Frame Control Field is filled with the setting data into [ACK_FRAME1:B0 0x53] and [ACK_FRAME2:B0 0x54] registers.
Sequence Number Field is automatically filled with sequence number obtained from received data.
6) After Ack packet transmission is completed, TX completion interrupt (INT[16]/[17] group 3) will be generated.
Note: RF status keeps TX_ON state, If return to IDLE state, set SET_TRX ([RF_STATUS:B0 0x6C(3-0)]) =0b1000
(TRX_OFF).
*Ack transmission (MCU requests to stop Ack packet transmission)
1) Analyzing Frame Control Field in RX data, and if Ack request bit is set to 0b1, then obtain Sequence Number from RX
data.
2) After RX completion, performing CRC check and if FCS is OK, then transit to TX_ON state automatically for Ack packet
transmission preparation. (At this time, RX completion interrupt (INT[18]/[19] group3) will be generated.)
3) After completing TX_ON state transition, Auto_Ack ready interrupt (INT[24] group4) will be generated.
4) MCU analyzes Address field and Pending data in received data, and it decide not to send Ack packet, issuing PHY reset by
[RST_SET:B0 0x01]=0x88 and then set ACK_STOP ([AUTO_ACK_SET:B0 0x55(0)])=0b1.
ML7396 family aborts Ack packet and RF status will be back to TRX_OFF state automatically.
57/140
FEDL7396A/B/E-07
ML7396A/B/E
5) Set ACK_STOP ([AUTO_ACK_SET:B0 0x46(0)])=0b0. If AckAuto_Ack ready interrupt (INT[24] group4) is already
generated, please clear the interrupt.
*Ack Transmission (Ack packet transmission using Ack timer)
Condition: AUTO_TIMER_EN ([ACK_TIMER_EN:B0 0x52(0)])=0b1.
1) Analyzing Frame Control Field in RX data, and if Ack request bit is set to 0b1, then obtain Sequence Number from RX
data.
2) After RX completion, performing CRC check and if FCS is OK, then transit to TX_ON state automatically for Ack packet
transmission preparation. (At this time, RX completion interrupt (INT[18]/[19]) will be generated.)
3) After Completing TX_ON state transition, Ack timer starts counting and Auto_Ack ready interrupt (INT[24] group4) will
be generated.
4) After elapsing the period defined by [ACK_TIMER_L/H:B0 0x50/51] registers, Ack packet will be transmitted.
5) After Ack packet trnasumission is completed, TX completion interrupt (INT[]16)/[17] group3) will be generated.
Note: RF status keeps TX_ON state, If return to IDLE state, set SET_TRX ([RF_STATUS:B0 0x6C(3-0)]) =0b1000
(TRX_OFF).
[Additional Function]
• By setting CCA_AUTO_EN ([CCA_CNTRL:B0 0x15(7)])=0b1, it is possible to execute CCA operation automatically for
Ack packet transmission.
*Ack Reception
Condition: AUTO_RX_EN ([AUTO_ACK_SET:B0 0x55(6)])=0b1.
1) After competing transmission of data packet with Ack request, TX completion interrupt (INT[16]/[17] group3) will be
generated, then transit to RX_ON state automatically for Ack packet to reception.
2) After RX completion for Ack packet, RX completion interrupt (INT[18]/[19]) will be generated.
Note: RF status keeps RX_ON state, If return to IDLE state, set SET_TRX ([RF_STATUS:B0 0x6C(3-0)]) =0b1000
(TRX_OFF).
*Ack Reception (Terminate Ack packet waiting)
Condition: AUTO_RX_EN ([AUTO_ACK_SET:B0 0x55(6)])=0b1.
1) After competing transmission of data packet with Ack request, TX completion interrupt (INT[16]/[17] group3) will be
generated, then transit to RX_ON state automatically for Ack packet to reception.
2) If MCU determined to terminate Ack packet waiting, set ACK_STOP ([AUTO_ACK_SET:B0 0x55(0)]) =0b1.
ML7396 family aborts Ack packet waiting and RF status will be back to TRX_OFF state automatically.
58/140
FEDL7396A/B/E-07
ML7396A/B/E
●Address filtering function:
ML7396 family has a function to receive RX packet which MAC header has specific code at yellow highlighted field in the
MAC header (IEEE802.15.4) as below. By using [ADDFIL_CNTRL:B2 0x20] register, comparing field is selected from
PANID, 64bit address, 16bit short address or I/G bit. Each specific code are defined by [PANID_L:B2 0x61] to
[SHT_ADDR1_H:B2 0x6E] registers. Source address is out of comparing target.
Byte : 2
Frame
Control
1
Sequence
Number
0/2
Destination
PAN
identifier
0/2/8
0/2
Source
Address
PAN
identifier
Addressing fields
Destination
0/2/8
Source
address
MAC header
Bits : 0-2
3
4
5
6
Frame
Security
Frame
Ack.
PAN-ID
type
enabled
pending
req.
Compressio
n
7-9
variable
Frame
payload
2
Frame
Chack
sequence
MAC
payload
MAC
footer
10-11
12-13
Dest.
Reserved
addressing
mode
Frame
Version
14-15
Source
addressing
mode
Fig. MAC header and Frame Control Field
Destination Addressing Mode
00: Beacon or Ack Packet (Beacon packet is always received, Ack packet reception can be selectable)
01: Reserved (Does not receive)
10: 16 bits address
11: 64 bits address
Destination.PAN-ID
0xFFFF: Broadcasting, then always receive this packet regardless to address mode.
16 bits address mode: Receive packet if PAN_ID (setting vslue) is matched.
64 bits address mode: Ignoring this field.
Destination Address
16 bit address mode: Receive packet only if short address (setting value) is matched.
64 bit address mode: Receive packet only if 64 bits address is matched, or I/G bit is set to 0b1 (multicast).
References:
When Address Filtering function is enabled, packet analisis will be executed. Therefore when using RX_ACK CANCEL
([AUTO_ACK_SET:B0 0x55(7)]) function, Address Filtering function should be enabled, since packet anlisis is need uted to
detect Ack packet. For details, please refer to [AUTO_ACK_SET:B0 0x55] register.
59/140
FEDL7396A/B/E-07
ML7396A/B/E
When address fields are mismatch with set value, following procedure is determined by the setting to ADDFIL_NG_SET
([PACKET_MODE_SET:B0 0x45(5)]) and packet discard completion interrupt (INT[03] group1) timing is defined by
ADDFIL_IDLE_DET ([PACKET_MODE_SET:B0 0x45(0)]).
ADDFIL_NG_SET (bit5)
0b1: When address-mismatch is detected, discarding RX data after RX completetion.
0b0: When address-mismatch is detected, discarding RX data immediately.
ADDFIL_IDLE_DET (bit0)
0b1: After discarding RX data perform CCA and “IDLE” is detected, INT[03] will be generated.
0b0: After discarding RX data, INT[03] will be generated immediately.
When RX data is discarded, adding to INT[03] generation, discarded packet can be counted up to 1023 and result stored in
[DISCARD_COUNT0:B2 0x6F] and [DISCARD_COUNT1:B2 0x70] registers.
[Note]
When using Address Filtering function while FEC function is enabled, if INT[03] is notified. PHY reset by [RST_SET:B0
0x01] should be required. If not issuing PHY reset, after that, ML7396 can not receive packet with address match also.
[Address Filtering function overview]
Frame Control Field
TX → RX
Device A
TX
Data Packet (TX)
ACK Packet (RX)
RX
Device B
RX → TX
Data Packet (RX)
ACK Packet (TX)
Address fields are match with setting
value, maintaining RX..
Address fields are mismatch with setting
value. RX data will be discarded
Device C
If ADDFIL_NG_SET=0b0,
this field will not be received
Data Packet (RX)
CCA detection
(IDLE detect)
INT[03] timing when ADDFIL_NG_SET=0
and ADDFIL_IDLE_DET =0
INT[03] timing when
ADDFIL_IDLE_DET=1
INT[03] timing when ADDFIL_NG_SET=1
and ADDFIL_IDLE_DET =0
60/140
FEDL7396A/B/E-07
ML7396A/B/E
[Interrupts timing when using INT_TIM_CTRL]
By setting INT_TIM_CTRL ([PLL_MOD/DIO_SEL:B0 0x69(6)]), it is possible to select interrupt timing during Address
filtering mode.
According to the ADDFIL_NG_SET or ADDFIL_IDLE_DET setting and CRC result in the RX packet, interrupt generation
timings of Packet discard completion interrupt, CRC error interrupt, and CCA completion interrupt, will become as
below figures.
Interrupt result
Input
Setting 1
Setting 2
Setting 3
Setting 4
Setting
setting register
Case1
Case2
Case3
Case4
Case5
Case6
Case7
Case8
Discard packet
after address
mismatch
ADDFIL_NG_SET=0b0
O
O
-
-
O
O
-
-
-
-
O
O
-
-
O
O
Discar packet after
address mismatch
and RX completion
ADDFIL_NG_SET=0b1
Execute CCA after
address mismatch
ADDFIL_IDLE_DET=0b 1
-
-
-
-
O
O
O
O
CRC_OK
-
O
-
O
-
O
-
O
-
CRC_NG
-
-
O
-
O
-
O
-
O
Packet discard
cpmpletion interrupt
INT[3]
[INT_SOURCE_GRP1]
INT[21/20]
[INT_SOURCE_GRP3]
INT[8]
[INT_SOURCE_GRP2]
O
O
O
O
O
O
O
O
O
O
-
O
O
O
-
O
-
-
-
-
O
O
O
O
CRC error interrupt
CCA completion
interrupt
(1) When INT_TIM_CTRL=0b0 (timing is comatible with ML7396)
Setting 4 Setting 3 Setting 2 Setting 1
PHY
HDR
MAC
HDR
Case1
Case2
DATA
CCA
(IDLE detection)
to : 1111ns
to : 1111ns
Case3
Case4
and
Case5
to
to
to
to
Case6
Case7
Case8
at same time
: 555ns
: 555ns
: 555ns
: 555ns
Setting 4 Setting 3 Setting 2 Setting 1
(2) When INT_TIM_CTRL=0b1 (ML7396B timing)
Case1
: 1111ns
Case2
to : 1111ns
Case3
Case4
and
at same time
Case5
Case6
Case7
Case8
61/140
FEDL7396A/B/E-07
ML7396A/B/E
●Interrupt generation function
ML7396 family supports intterupt generation function. When interrupt occurs, SINTN pin (#10) will become “Low” to notify
interrupt to the host MCU.
Interrupt elements are divided into 4groups, [INT_SOURCE_GRP1:B0 0x24] to [INT_SOURCE_GRP4:B0 0x27]. Each
interrupt elements can be masked by using [INT_EN_GRP1:B0 0x2A] to [INT_EN_GRP4] registers.
Note: If one of unmask interrupt event occurs, SINTN maintains “Low”.
cInterrupt events table
Each interrupt events is described as belo table.
Group
INT_SOURCE_GRP4
INT_SOURCE_GRP3
INT_SOURCE_GRP2
INT_SOURCE_GRP1
Name
INT[25]
INT[24]
INT[23]
INT[22]
INT[21]
INT[20]
INT[19]
INT[18]
INT[17]
INT[16]
INT[15]
INT[14]
INT[13]
INT[12]
INT[11]
INT[10]
INT[09]
INT[08]
INT[05]
INT[04]
INT[03]
INT[02]
INT[01]
INT[00]
Function:
PLL unlock interrupt
Auto_Ack ready interrupt
FIFO1 TX data request accept completion interrupt
FIFO0 TX data request accept completion interrupt
FIFO1 CRC error interrupt
FIFO0 CRC error interrupt
FIFO1 RX completion interrupt
FIFO0 RX completion interrupt
FIFO1 TX completion interrupt
FIFO0 TX completion interrupt
TX FIFO access error interrupt
RX FIFO access error interrupt
TX Length error interrupt
RX Length error interrupt
SFD detection interrupt
RF state transition completion interrupt
Diversity search completion interrupt
CCA completion interrupt
no function
no function
FIFO_Full interrupt
FOFO_Empty interrupy
Packet discard competion interrupt
VCO calbration completion interrupt
Reserved
Clock stabilization completion interrupt
62/140
FEDL7396A/B/E-07
ML7396A/B/E
cInterrupt generation timing
In each interrupt generation, timing from reference point to interrupt interrupt generation (nitification) are described in the
following table. Timeout procedure for interrupt notification waiting, are also described below.
[Note]
(1)The values are decribed in units of “symbol time” in the below table is the value at 100kbps. If using other data, please use
20, 5, and 2.5 for 50kbps, 200kbps, and 400kbps, respectively.
(2)Below table uses the following format of TX/RX data.
2 byte
10 byte
2 byte
Preamble
SFD
Length
24 byte
2 byte
User data
CRC
(3)Even if each interrupt notification is masked, in case of interrupt occurrence, interrupt elements are stored internnaly.
Therefore, as soon as interrupt notification is unmasked, interrupt will generate.
Interrupt notification
INT[0]
INT[1]
INT[2]
CLK stabilization
completion
RESETN release
(upon power-on)
SLEEP release
(recovered from
SLEEP)
VCO calibration
completion
Packet discard
completion during
Address Filtering
function
VCO calibration
start
SFD detection
INT[4]
FIFO-Empty detection
(TX)
TX_ON command
(* 1)
INT[5]
FIFO-Full detection
INT[3]
(INT[6])
(INT[7])
Time from reference point to interrupt generation
or interrupt generation timing
Reference point
(RX)
(TX)
(RX)
SFD detection
660μs
660μs
230μs
(1)If ADDFIL_NG_SET([PACKET_MODE_SET:B0 0x45(5)])
=0b0, the right timing to address mismatch detection.
(2)If ADDFIL_NG_SET([PACKET_MODE_SET:B0 0x45(5)])
=0b1,
(When FEC is disabled)
28byte (Length to CRC) * 8bit * 10(symbol time) + process
delay(5.55μs) =2245.55μs
(When FEC is enabled)
28byte (Length to CRC) * 2 * 8bit *10(symbol time) + process
delay(315.55μs) =4795.55μs
Empty trigger level is set to 0x02
(When FEC is disabled)
37 byte (preamble to 23th data) * 8bit * 10 (symbol time)
=2960μs
(When FEC is enabled)
{12byte (preamble to SFD) + 25byte(Length to 23th data) * 2}
* 8bit* 10(symbol time) + RF wake-up & process delay (106μs)
=5066μs
By FIFO read, remaining FIFO data is under trigger level
By FIDO write, FIFO usage exceeds trigger level
Full trigger level is set to 0x05
(When FEC is disabled)
th
8byte (Length + 6 data) * 8bit * 10(symbol time) =640μs
(Wwhen FEC is enabled)
th
8byte (Length + 6 data) * 8bit * 2 * 10(symbol time) + process
delay(305μs) =1585μs
-
(* 1) Befor issuing TX_ON, writing full-length TX data into a FIFO.
63/140
FEDL7396A/B/E-07
ML7396A/B/E
Interrupt notification
Reference point
INT[8]
CCA completion
CCA execution start
INT[9]
Diversity search
completion
RF state transition
completion
-
INT[10]
TX_ON command
RX_ON command
INT[11]
INT[12]
INT[13]
INT[14]
SFD detection
RX length error
TX length error
RX FIFO access error
TRX_OFF
command
Force_TRX_OFF
command
SFD detection
-
INT[15]
TX FIFO access error
-
INT[16]
INT[17]
FIFO0/FIFO1 TX
completion
TX_ON command
(* 1)
Time from reference point to interrupt generation
or interrupt generation timing
(1)Normal mode
{ED value calculation averaging time + IDLE_WAIT setting
[IDLE_WAIT_L/H:B0 0x17/18] + 2 (filter stbilization)} * A/D
conversion time
(2) IDLE detection mode
c IDLE detection case
{ED value calculation averaging time + IDLE_WAIT setting
[IDLE_WAIT_L/H:B0 0x17/18] + 2(filter stbilization)} * A/D
conversion time
c BUSY detection case
(ED value calculation averaging tim+ 2(filter stbilization)) * A/D
conversion
Note: A/D conversion time can be changed by ADC_CLK_SET
(ADC_CLK_SET:B0 0x08(4)). ADC conversion time= 17.7μs
(1.8MHz), 16μs (2.0MHz)
Note: When executing CCA during diversity, set the abort timer
for CCA completion notification. When CCA is run during
diversity, since there is a case CCA completion is not notified.
diversity search completion
(IDLE) 122μs
(RX) 89μs
(IDLE) 136μs
(TX) 142μs
(TX) 410μs
(RX) 11μs
(TX) 410μs
(RX) 10μs
SFD detection
80μs
Writing TX data to a FIFO
rd
(1).receiving 3 packet with remaining RX dara in both FIFO0
and FIFO1
(2) overfolow occurs because FIFO read is too slow
(3) underflow occurs because too many FIFO data is read
rd
(1) writing 3 packet with remaining TX data in both FIFO0 and
FIFO1
(2) FIFO overflow when writing
(3) FIFO underflow (or no data) when transmitting
(When FEC is disabled)
40byte (preamble to CRC) * 8bit * 10(symbol time) +
RF wake-up & process delay(154μs) =3354μs
(When FEC is enabled)
{12byte (preamble to SFD) + 28byte (Length to CRC) * 2} * 8bit
* 10(symbol time) + RF wake-up & process delay(224μs)
=5664μs
(* 1) Befor issuing TX_ON, writing full-length TX data into a FIFO.
64/140
FEDL7396A/B/E-07
ML7396A/B/E
Interrupt notification
Reference point
INT[18]
INT[19]
FIFO0/FIFO1 RX
completion
SFD detection
INT[20]
INT[21]
FIFO0/FIFO1CRC
error detection
SFD detection
INT[22]
INT[23]
FIFO0/FIFO1 TX data
request accept
completion
AutoAck ready
PLL unlock detection
INT[24]
INT[25]
RX completion
-
Time from reference point to interrupt generation
or interrupt generation timing
(When FEC is disabled)
28byte (Length to CRC) * 8bit * 10(symbol time + process
delay(5μs) =2245μs
(When FEC is enabled)
28byte (Length to CRC) * 2 * 8bit * 10(symbol time) + process
delay(315μs) =4795μs
(With FEC disabled)
28byte (Length to CRC) *8bit * 10(symbol time) + process
delay(5μs) =2245μs
(With FEC enabled)
28byte (Length to CRC) * 2 * 8bit * 10(symbol time + process
delay(315μs) =4795μs
After full-length data are written into a FIFO
92us
(TX) during TX after PA enable
(RX) during RX after RX enable
65/140
FEDL7396A/B/E-07
ML7396A/B/E
cClearing interrupt condition
The following table shows the condition of clearing each interrupt.
Interrupt notification
CLK stabilization completion
Reserved
Requirements for clearing interrupt
After the interrupt generation
After the interrupt generation
After the interrupt generation
INT[4]
VCO calibration completion
Packet discard completion during
Address Filtering function
FIFO-Empty detection
INT[5]
FIFO-Full detection
INT[6]
INT[7]
INT[8]
CCA completion
INT[9]
Diversity search completion
INT[10]
INT[11]
INT[12]
INT[13]
INT[14]
INT[15]
RF state transition completion
SFD detection
RX length error
TX length error
RX FIFO access error
TX FIFO access error
INT[0]
INT[1]
INT[2]
INT[3]
INT[16/17]
FIFO0/FIFO1 TX completion
INT[18/19]
FIFO0/FIFO1 RX completion
INT[20/21]
FIFO0/FIFO1CRC error detection
INT[22/23]
FIFO0/FIFO1 TX data request
accept completed
INT[24]
INT[25]
AutoAck ready
PLL unlock detection
After the interrupt generation
(must clear before the next FIFO-Empty trigger timing)
After the interrupt generation
(must clear before the next FIFO-Full trigger timing)
After the interrupt generation
(must clear before the next CCA execution)
* clearing interrupt erases CCA result as well
After RX completion interrupt(INT[18/19]), must cleare
with RX completion interrupt
* during RECEIVE stare, clearing is prohibited.
After the interrupt generation
After the interrupt generation
After the interrupt generation
After the interrupt generation
After the interrupt generation
After the interrupt generation
(must clear before the next packet transmission)
After the interrupt generation
(must clear before the next packet transmission)
After the interrupt generation
(must clear before the next packet reception)
After the interrupt generation
* clearing interrupt erases CRC result (CRC_RSLT1/0).
After TX completion interrupt (INT[16/17])
(must clear before the next packet transmission)
* during TRANSMIT state, clearing is prohibited.
After the interrupt generation
After the interrupt generation
(must clear before the next packet transmission or
reception)
66/140
FEDL7396A/B/E-07
ML7396A/B/E
●Temperature Measurement Function
ML7396 family has temeperature measurement function. This temperature information can be from A_MON pin (#24) as
analog output or digital information using [TEMP_MON:B0 0x79] register. Analog or digital can be switched by
[RSSI/TEMP_OUT:B1 0x03] register.
Notes:
1) Please do not set TEMP_OUT ([RSSI/TEMP_OUT:B1 0x03(4)]) and TEMP_ADC_OUT ([RSSI/TEMP_OUT:B1
0x03(5)]) at the same time. Correct value reading may not be guaranteed.
2) When TEMP_ADC_OUT is set, packet data is not able to receive normally.
[Analog output]
ML7396 family has current source circuits and its current flow through 75kΩ to A_MON pin (#24). From voltage information,
temperature information can be obtained.
Current from currwnt source circuits are 10μA at 25˚C. Following formula can be used to calculate temperature from the
current.
Itemp = (273+ Temp) / (273+25) * 10 (μA)
Therefore, if 75kΩ resister is connected, temprature can be calculated usng following formula.
Vamon = (273+ Temp) / (275+25) * 10E-6 * 75000
If temprature is -40˚C to +85˚C, Vamon will be 0.59V to 0.9V.
Therefore temperature can be calculated from voltage using following formula.
Temp = Vamon * 397.3 - 273
[Digital output]
Digital temperature information is using 6bits ADC to convert from the above analog information. Internally, 4samples
information are added and indicates as 8bits information in [TEMP_MON:B0 0x79] register. Ignorimg low 2 bits, upper 6bits
are used for average temperature information.
Temperature information is updated every 17.8μs. (if 2MHz is selected in [ADC_CLK_SET:B0 0x08] register, it is updated
every 16 μs)
67/140
FEDL7396A/B/E-07
ML7396A/B/E
●Ramp control function
ML7396 has Ramp control function. This function will contribute reducing spurious emission when transmission is
terminated. Ramp control will be executed when switching TX_ON to TRX_OFF state and TX_ON to RX_ON state.
The following are control bits retative with ramp control function.
TXOFF_RAMP_EN ([RAMP_CNTRL:B2 0x2C(4)]): Ramp control enable bit
TIM_TX_OFF1[7:0] ([TX_OFF_ADD1:B1 0x55(7-0)]): Ramp down timing adjustment when transitioning from TX_ON
to TRX_OFF.
TIM_RX_ON2[2:0] ([RX_ON_ADJ2:B1 0x3F(6-4)]): RX_ON timing adjustment when transitioning from TX_ON to
RX_ON
TIM_TX_OFF2[5:0] [2DIV_GAIN_CONTRL:B0 0x6E(7-2)]): Ramp down timing adjustment when transitioning from
TX_ON to RX_ON.
[Operation Overview]
(1) Ramp down timing when transitioning from TX_ON to TRX_OFF
[Condition]
TXOFF_RAMP_EN ([RAMP_CNTRL:B2 0x2C(4)]) =0b1
TIM_TX_OFF1[7:0] ([TX_OFF_ADD1:B1 0x55(7-0)] =0xb4(400 μs), 0x42 (150μs)
TIM_RX_ON2[2:0] ([RX_ON_ADJ2:B1 0x3F(6-4)]) =0b011
TIM_TX_OFF2[5:0] ([2DIV_GAIN_CONTRL:B0 0x6E(7-2)]) =0b1011_01
TRX_OFF command
* SET_TRX[3:0] ([RF_STATUS:B0 0x6C(4-0)]) =0b1000
SCEN
TX enable
PA enable
Transmitter power
RX enable
3μs
(TIM_TX_OFF1+1) * 2.22μs = 401.82μs
68/140
FEDL7396A/B/E-07
ML7396A/B/E
(2) Ramp down timing when transitioning from TX_ON to RX_ON
[Condition]
TXOFF_RAMP_EN ([RAMP_CNTRL:B2 0x2C(4)]) = 0b1
TIM_TX_OFF1[7:0] ([TX_OFF_ADD1:B1 0x55(7-0 )]) =0xb4 (400 μs)
TIM_RX_ON2[2:0] ([RX_ON_ADJ2:B1 0x3F(6-5)]) =0b011
TIM_TX_OFF2 ([2DIV_GAIN_CONTRL:B0 0x6E(7-2 )]) =0b1011_01
RX_ON command
* SET_TRX[3:0] ([RF_STATUS:B0 0x6C(4-0)]) =0b0110
SCEN
TX enable
PA enable
RX enable
Transmitter power
pll_rst_i
3μs
(TIM_TX_OFF2+1) * 2.22μs
= 102.12μs
(TIM_RX_ON2+1) * 8.88μs + 2.22μs
=37.74μs
69/140
FEDL7396A/B/E-07
ML7396A/B/E
(3) Ramp down timing when transitioning from TX_ON to TRX_OFF (ramp control disabled)
[Condition]
TXOFF_RAMP_EN ([RAMP_CNTRL:B2 0x2C(4)]) =0b0
TIM_TX_OFF1[7:0] ([TX_OFF_ADD1:B1 0x55(7-0)]) =0xb4 (400 μs)
TIM_RX_ON2[2:0] ([RX_ON_ADJ2:B1 0x3F(6-4)]) =0b011
TIM_TX_OFF2 ([2DIV_GAIN_CONTRL:B0 0x6E(7-2)]) =0b1011_01
TRX_OFF command
* SET_TRX[3:0] ([RF_STATUS:B0 0x6C(4-0)]) =0b1000
SCEN
TX enable
PA enable
Transmitter power
RX enable
3μs
24.42μs
70/140
FEDL7396A/B/E-07
ML7396A/B/E
(4) Ramp down timing when transitioning from TX_ON to RX_ON (ramp control disabled)
[Condition]
TXOFF_RAMP_EN ([RAMP_CNTRL:B2 0x2C(4)]) =0b0
TIM_TX_OFF1[7:0] ([TX_OFF_ADD1:B1 0x55(7-0)]) =0xb4 (400 μs)
TIM_RX_ON2[2:0] ([RX_ON_ADJ2:B1 0x3F(6-4)]) =0b011
TIM_TX_OFF2[5:0] ([2DIV_GAIN_CONTRL:B0 0x6E(7-2)]) =0b1011_01
RX_ON_ADJ[7:0] ([RX_ON_ADJ:B2 0x22(7-0)]) =0x0A
RX_ON command
* SET_TRX[3:0] ([RF_STATUS:B0 0x6C(4-0)]) =0b0110
SCEN
TX enable
PA enable
Transmitter power
RX enable
3μs
24.42μs
(RX_ON_ADJ+1) * 8.88μs = 97.68μs
71/140
FEDL7396A/B/E-07
ML7396A/B/E
■RF Configuration
●Programming Channel Frequency
Maximum 16 channels can be selected. (CH#0 to CH#15) Cahnnel allocation is defined by channel #0 frequency specified by
[CH0_FL:B0 0x48], [CH0_FM:B0 0x49], [CH0_FH:B0 0x4A] and [CH0_NA:B0 0x4B] registers, and channel spacing
specified by [CH_SPACE_L:B0 0x4C] and [CH_SPACE_H:B0 0x4D] registers.
16 channels can be enabled or disabled by [CH_EN_L:B0 0x2E] and [CH_EN_H:B0 0x2F] registers.
RF channel is set as channel number (#0 to #15) at [CH_SET:B0 0x6B] register
Notes:
1) Frequency range (from CH#0 to CH#15) can not include integer multiple of 36MHz. (ex: 900MHz, 936MHz)
2) The channel frequency must meet the following condition. If the following condition can not meet, please change the
channel #0 frequency or disabling channels that can not meet the condition by [CH_EN_L:B0 0x2E] and [CH_EN_H:B0
0x2F] register.
36MHz * n + 2.2MHz ≤ channel frequency < 36MHz * (n+1) – 500kHz
* n=integer
3) If the above condition can not be met, expected channel frequency is not functional or PLL may not be locked.
[Channel frequency programming flow]
START
Set CH#0 frequency
[CH0_FL:B0 0x48]
[CH0_FM:B0 0x49]
[CH0_FH:B0 0x4A]
[CH0_NA:B0 0x4B]
Set CH spacing
[CH_SPACE_L:B0 0x4C]
[CH_SPACE_H:B0 0x4D]
CH#0 to CH#15 frequency allocation
will be defined.
Set CH enable/disable
[CH_EN_L:B0 0x2E]
[CH_EN_H:B0 0x2F]
Select CH number
[CH_SET:B0 0x6B]
END
72/140
FEDL7396A/B/E-07
ML7396A/B/E
cProgramming Channel#0 Frequency
Channel #0 frequency can be set by [CH0_FL:B0 0x48], [CH0_FM:B0 0x49], [CH_FH:B0 0x4A] and [CH_NA:B0
0x4B] registers.
Each setting parameters for channel #0 can be calculated using the following formula.
N = f / fREF / P (Integer part)
A = f / fREF - N * P (Integer part)
20
[note: useing 20bit circuit]
F = {f / fREF - (N * P + A)} * 2 (Integer part)
Here
f
: Channel #0 fequency
: PLL reference frequency (input clock=36MHz)
fREF
P
: Dual modulus parameter (fixed to 4)
N
: N-counter parameter
A
: A-counter parameter
F
: F-counter parameter
And frequency error can be calculated using the following formula.
20
ferr = f - [fREF * {(N * P + A) + F/2 }]
[Example] When set channel #0 frequecy to 923.1MHz, the calculations are as follows. (fREF = 36MHz)
N = 923.1MHz / 36MHz / 4 (Integer part) = 6
A = 923.1MHz / 36MMHz- 6 * 4 (Integer part) = 1
F = {923. 1MHz / 36MHz - (6 *4 + 1)} *220 (Integer part) = 672836 (0xA4444)
Therefore
[CH0_FL:B0 0x48] = 0x44
[CH0_FM:B0 0x49] = 0x44
[CH0_FH:B0 0x4A] = 0x0A
[CH0_NA:B0 0x4B] = 0x61
Feuqency error will be ferr = 923. 1MHz - [36MHz * {(6 * 4 + 1) + 672836 / 220}] = +31.7Hz
cProgramming Channel pace
Channel space can be set by [CH_SPACE_L:B0 0x4C] and [CH_SPACE_H:B0 0x4D] registers.
Channel space is frequency space between centre frequency of given channel and that of adjacent channel.
Channel space setting value can be calculated using the following formula.
20
[note: using 20bit circuit]
CH_SP_F = {fSP / fREF} * 2 (Integr part)
Here
CH_SP_F : Channel space setting
: Channel space [MHz]
fSP
: PLL reference frequency (input clock=36MHz)
fREF
[Example] When set channel space is 400kHz, the calculation are as follow. (fREF = 36MHz)
CH_SP_F = {0.4MHz / 36MHz} * 220 (Integer part) = 11650 (0x2D82)
Therefore
[CH_SPACE_L:B0 0x4C] = 0x82
[CH_SPACE_H:B0 0x4D] = 0x2D
73/140
FEDL7396A/B/E-07
ML7396A/B/E
●Programming IF Frequency
In order to support various data rate , RX filters have to be optimised. The RX filter can be selected according to the IF
frequency. IF frequency can be set by using [IF_FREQ_H: B1 0x0A] and [IF_FREQ_L: B1 0x0B] registers. (default:
178.22kHz) According to the RATE[2:0] ([DATA_SET:B0 0x47(2-0)]) setting and NBO_SEL([DATA_SET:B0 0x47(7)])
setting, IF frequency will be multiplied automatically as following table.
NBO_SEL
Data rate
50kbps
100kbps
150kbps
200kbps
400kbps
0b0
x2
x4
x4
x6
x6
0b1
x2
x2
-
x4
-
IF frequency value should be set as the multiplied IF frequency corresponding to each data rate becomes the values described
in the following table.
NBO_SEL
Data rate
50kbps
100kbps
150kbps
200kbps
400kbps
0b0
500kHz
720kHz
0b1
500kHz
720kHz
900kHz
1300kHz
2100kHz
-
1300kHz
-
[Notes]
1. NBO_SEL=0b1 can not be set for the data rate other than 50kbps, 100kbps and 200kbps.
2. For 10kbps, 20kbps, 40kbps setting, please refer to the "Initial register setting" file .
If AFC is used, IF frequency setting in [IF _FREQ_AFC_H: B0 0x30] and [IF_FREQ_AFC_L: B0 0x31] registers will be used.
IF frequency setting for AFC operation is same as normal operation.
If CCA is used to detect channel carrier power, required RX filter bandwidth may be different. [IF _FREQ_CCA_H: B1 0x0C]
and [IF_FREQ_CCA_L: B1 0x57] registers must be used for CCA purpose. During CCA operation IF frequency calculation
becomes as below.
NBO_SEL
Data rate
50kbps
100kbps
150kbps
200kbps
400kbps
0b0
x2
x6
x8
x8
x8
0b1
x2
x2
-
x6
-
IF frequency value for CCA operation should be set as the multiplied IF frequency corresponding to each data rate becomes
the values described in the following table.
NBO_SEL
Data rate
50kbps
100kbps
150kbps
200kbps
400kbps
0b0
500kHz
1500kHz
1450kHz
2000kHz
2100kHz
0b1
500kHz
720kHz
-
1500kHz
-
[Notes]
1. NBO_SEL=0b1 can not be set for the data rate other than 50kbps, 100kbps and 200kbps.
2. For 10kbps, 20kbps, 40kbps setting, please refer to the "Initial register setting" file..
IF frequency setting value can be calculated using the following formula.
20
Here
IF_FREQ = {fIF / fREF} * 2 (Integr part) [note: using 20bit circuit]
IF_FREQ : IF frequency setting
: IF frequency [MHz]
fIF
: PLL reference frequency (input clock=36MHz)
fREF
[Example] When set IF frequency is 178.22kHz, the calculation are as follow. (fREF = 36MHz)
IF_FREQ = {0.17822MHz / 36MHz} * 220 (Integer part) = 5191 (0x1447)
Therefore
[IF_FREQ_H] = 0x14
[IF_FREQ_L] = 0x47
74/140
FEDL7396A/B/E-07
ML7396A/B/E
●Programming BPF band width
For normal operation (including AFC) and CCA operation, optimized BPF setting are necessary. To compensating LSI
variations, [BPF_ADJ_OFFSET:B1 0x1E] register indicates individual cpmpensation value.
According to the below table, multiplying BPF_OFFSET[6:0] ([BPF_ADJ_OFFSET:B1 0x1E(6-0)]) by the coefficient value
corresponding to each data rate. If BPF_OFFSET_POL ([BPF_ADJ_OFFSET:B1 0x1E(7)] = 0b1, incraseing, otherwise
(=0b0) decrasing to the default value corresponding each data rate.
Compensated value is set into [BPF_ADJ_H/L:B1 0x0E/0F] and [BPF_AFC_ADJ_H/L:B0 0x32/33] registers for normal
operation. For CCA operation, set to [BF_CCA_ADJ_H/L:B1 0x10/11] register.
Following tables show coefficient value and default value corresponfding to RATE[2:0] ([DATA_SET:B0 0x47(2-0)])
setting and NBO_SEL([DATA_SET:B0 0x47(7)]) setting
[When NBO_SEL=0b1]
Data rate
[kbps]
50
100
150
200
400
RATE[2:0]
[B0 0x47]
0b000
0b01
0b010
0b010
0b011
Normal operation
CCA Operation
Coefficient value
Default value
Coefficient value
Default value
1.44
1
0.8
0.554
0.343
0x034B
0x024A
0x01D4
0x0144
0x00C8
1.44
0.48
0.497
0.36
0.343
0x034B
0x0119
0x0122
0x00D2
0x00C8
[When NBO_SEL=0b0]
Data rate
[kbps]
50
100
150
200
400
RATE[2:0]
[B0 0x47]
0b000
0b01
0b010
0b010
0b011
Normal operation
CCA Operation
Coefficient value
Default value
Coefficient value
Default value
1.44
1
0.554
-
0x034B
0x024A
0x0144
-
1.44
1
0.48
-
0x034B
0x024A
0x0119
-
[Example]
Condition: Data rate is 100kbps, and [BPF_ADJ_OFFSET:B1 0x1E] =0x91
[BPF_ADJ_H/L:B1 0x0E/0F] = 0x24A + 1 * (0x11) = 0x025B
[BPF_AFC_ADJ_H/L:B0 0x32/33] = 0x24A + 1 * (0x11) = 0x025B
[BF_CCA_ADJ_H/L:B1 0x10/11] = 0x119 + 0.48 * (0x11) = 0x0121
Note: For 10kbps, 20kbps, 40kbps setting, please refer to the "Initial register setting" file.
75/140
FEDL7396A/B/E-07
ML7396A/B/E
●Programming GFSK modulation
By setting GFSK_EN ([DATA_SET;B0 0x47(4)]) =0b1, GFSK modulation can be selected.
cProgramming GFSK frequency deviation
In GFSK modulation, frequency deviation can be set by [F_DEV_L:B0 0x4E] and [F_DEV_H:B0 0x4F] registers.
Frequency deviation setting value can be calculated using the following formula.
20
[note: using 20bit circuit]
F_DEV = {fDEV / fREF} * 2 (Integer part)
Here
F_DEV
: Frequency deviation setting
: Frequency deviation [MHz]
fDEV
: PLL reference frequency (input clock=36MHz)
fREF
[Example] When set frequency deviation is 50 kHz at 100kbps, the calculation are as follow. (fREF = 36MHz)
F_DEV = {0.05MHz / 36MHz} * 220 (Integer part) = 1456 (0x05B0)
Therefore
[F_DEV_L:B0 0x4E] = 0xB0
[CH_SPACE_H:B0 0x4D] = 0x05
Following table shows frequency deviation value with modulation index (m) =1 for each data rate.
Register
[F_DEV_L:B0 0x4E]
[F_DEV_H:B0 0x4F]
50kbps
0xD8
0x02
Data rate
100kbps
150kbps
0xB0
0x44
0x05
0x04
200kbps
0x60
0x0B
Note: For 10kbps, 20kbps, 40kbps setting, please refer to the "Initial register setting" file.
76/140
FEDL7396A/B/E-07
ML7396A/B/E
cProgramming Gaussian Filter
Gaussian filter can be set by [GFIL00/FSK_FDV1:B0 0x59] to [GFIL11:B0 0x64] registers. BT value of Gaussian filter
and setting value to related registers are shown in the below tables. All setting values are described as hexadecimal value.
Remarks: Setting values for BT=0.5 at 100kbps are set as initial values in registers related to Gaussian filter, since initial
values of [DATA_SET:B0 0x47] register is GFSK enable and 100kbps setting.
Gaussian filter register setting (for 10kbps/20kbps/40kbps/50kbps/100kbps/150kbps/200kbps)
(HEX)
Register
GFIL00
Address:
0x59
GFIL01
0x5a
GFIL02
0x5b
bit
BT=1.0
BT=0.5
BT=0.4
BT=0.3
BT=0.25
[1:0]
0
0
0
0
1
[3:2]
0
0
0
0
1
[5:4]
0
0
0
1
1
[7:6]
0
0
0
1
2
[3:0]
0
0
0
1
3
[7:4]
0
0
1
2
4
[3:0]
0
0
1
3
5
[7:4]
0
1
2
5
6
GFIL03
0x5c
[7:0]
00
01
03
06
07
GFIL04
0x5d
[7:0]
00
03
05
08
09
GFIL05
0x5e
[7:0]
00
05
08
0A
0A
GFIL06
0x5f
[7:0]
00
09
0C
0C
0C
GFIL07
0x60
[7:0]
03
0F
0F
0E
0D
GFIL08
0x61
[7:0]
0B
15
13
10
0E
GFIL09
0x62
[7:0]
1D
1A
17
13
0F
GFIL10
0x63
[7:0]
35
1F
1A
14
10
GFIL11
0x64
[7:0]
40
20
1A
14
12
Gaussian filter register setting (for Optional 400kbps)
(HEX)
Register
GFIL00
GFIL01
Address:
0x59
0x5A
bit
BT=1.0
BT=0.5
BT=0.4
BT=0.3
BT=0.25
[1:0]
0
0
0
0
0
[3:2]
0
0
0
0
0
[5:4]
0
0
0
0
0
[7:6]
0
0
0
0
0
[3:0]
0
0
0
0
0
[7:4]
0
0
0
0
0
[3:0]
0
0
0
0
0
GFIL02
0x5B
[7:4]
0
0
0
0
1
GFIL03
0x5C
[7:0]
00
00
00
00
01
GFIL04
0x5D
[7:0]
00
00
00
01
03
GFIL05
0x5E
[7:0]
00
00
01
03
05
GFIL06
0x5F
[7:0]
00
00
02
07
09
GFIL07
0x60
[7:0]
00
03
07
0C
0F
GFIL08
0x61
[7:0]
00
0B
10
14
15
GFIL09
0x62
[7:0]
05
1D
1F
1D
1A
GFIL10
0x63
[7:0]
3C
35
2D
24
1F
GFIL11
0x64
[7:0]
7E
40
34
28
20
77/140
FEDL7396A/B/E-07
ML7396A/B/E
●Programming FSK modulation
By setting GFSK_EN ([DATA_SET;B0 0x47(4)]) =0b0, FSK modulation can be selected.
In FSK modulation, fine frequency deviation can be set by [GFIL00/FSK_FDEV1:B0 0x59] to [GFIL03/FSK_FDEV4:B0
0x5C] registers. By setting [FSK_TIME1:B0 0x65] to [FSK_TIME4:B0 0x68] registers, FSK timing can be fine tuned.
iv
+ΔF
iii
ii
i
i
-ΔF
ii
iii
iv
Output “1”
TX_POL=0b0
[DATA_SET:B0 0x47(6)]
Symbol
i
ii
iii
iv
Register
FSK_FDEV1
FSK_FDEV2
FSK_FDEV3
FSK_FDEV4
Address
0x59
0x5a
0x5b
0x5c
Output “0”
TX_POL=0b0
[DATA_SET:B0 0x47(6)]
Function
Freq dev
33.4x2(Hz)
Symbol
Register
FSK_TIME1
FSK_TIME2
FSK_TIME3
FSK_TIME4
Address
0x65
0x66
0x67
0x68
Function
Modulation
timing by
4MHz counter
[Note]
1. FSK modulation does not support optional 400kbps.
78/140
FEDL7396A/B/E-07
ML7396A/B/E
●Programming Data rate changing
50kbps, 100kbps, 200kbps and 400kbps data rate can be chnaged by RATE[2:0] ([DATA_SET:B0 0x47(2-0)]). When
changing data rate, below registers may have to be changed.
Note:
1. Depending on data rate, the following chage may not be necessary. For details, please refer to each register setting value
corresponding to each data rate in "Initial register setting" file.
2. Please change data rate setting in TRX_OFF state.
[Bank0]
[RATE_SET1:B0 0x04] register
[RATE_SET2:B0 0x05] register
(Note: setting is necessary only when changing to 150kbps.)
(Note: setting is necessary only when changing to 150kbps.)
[IF_FREQ_AFC_H:B0 0x30] register
[IF_FREQ_AFC_L:B0 0x31] register
[BPF_AFC_ADJ_H:B0 0x32] register
[BPF_AFC_ADJ_L:B0 0x33] register
[TX_PR_LEN:B0 0x42] register
[CH_SPACE_FL:B0 0x4C] register
[CH_SPACE_FH:B0 0x4D] register
[F_DEV_L:B0 0x4E] register
[F_DEV_H:B0 0x4F] register
[2DIV_SEARCH:B0 0x6F] register
[Bank1]
[PLL_CFP_ADJ:B1 0x09] register
[IF_FREQ_H:B1 0x0A] register
[IF_FREQ_L:B1 0x0B] register
[IF_FREQ_CCA_H:B1 0x0C] register
[IF_FREQ_CCA_L:B1 0x0D] register
[BPF_ADJ_H:B1 0x0E] register
[BPF_ADJ_L:B1 0x0F] register
[BPF_CCA_ADJ_H:B1 0x10] register
[BPF_CCA_ADJ_L:B1 0x11] register
[Bank2 registers]
[RATE_ADJ1:B2 0x2A] register
[RATE_ADJ2:B2 0x2B] register
(Note: setting is necessary only when changing to 150kbps.)
(Note: setting is necessary only when changing to 150kbps.)
79/140
FEDL7396A/B/E-07
ML7396A/B/E
●Programming narrow band option setting
By setting NBO_SEL ([DATA_SET:B0 0x47(7)]) = 0b1, narrow bandwidth mode can be selected. The narrow band mode is
applying 200 kHz channel spacing instead of 400 kHz defined in IEEE802.15.4g standard. When selecting the narrow
bandwidth mode, below registers should be changed to narrow RX bandpass filter bandwidth.
[Bank0]
[IF_FREQ_AFC_H:B0 0x30] register
[IF_FREQ_AFC_L:B0 0x31] register
[BPF_AFC_ADJ_H:B0 0x32] register
[BPF_AFC_ADJ_L:B0 0x33] register
[Bank1]
[PLL_CFP_ADJ:B1 0x09] register
[IF_FREQ_H:B1 0x0A] register
[IF_FREQ_L:B1 0x0B] register
[IF_FREQ_CCA_H:B1 0x0C] register
[IF_FREQ_CCA_L:B1 0x0D] register
[BPF_ADJ_H:B1 0x0E] register
[BPF_ADJ_L:B1 0x0F] register
[BPF_CCA_ADJ_H:B1 0x10] register
[BPF_CCA_ADJ_L:B1 0x11] register
80/140
FEDL7396A/B/E-07
ML7396A/B/E
■RF adjustment
●PA adjustment
ML7306 family has output circuits for 1mW and 20mW (10mW as well). Output circuits can be selected by PA_SEL
([PA_CNTRL:B1 0x07(4)]).
Each output power can be adjusted with 16 resolutions by using [PA_ADJ1:B1 0x04] to [PA_ADJ3:B1 0x06] registers and
[PA_REG_ADJ1:B1 0x33] to [PA_REG_ADJ3:B1 0x35] registers. In each register, 20mW circuit is adjusted by upper 4bits
and 1mW circuit is adjusted by lower 4bits. 3 setting value can be stored for each output power circuit. Applying setting can be
selected by PA_ADJ_SEL[1:0] ([PA_CNTRL:B1 0x07(1-0)]).
When switching output power between 10mW and 20mW, 10mW adjustment setting valueis stored into [PA_ADJ1:B0 0x04]
and those for 20mW is stored into [PA_ADJ2:B1 0x05]. After that, output power can be switched by PA_ADJ_SEL[1:0]
setting. Maximum 3 settings can be stored for each output circuit.
Note: Output impedance at PA_OUT pin (#27) differs between 1mW output circuit and 20mW output circuit.
Therefore, the most optimized matching circuit will also be different.
Following table shows setting validity corresponfding to PA_SEL and PA_ADJ_SEL[1:0] setting.
PA_SEL
(B1 0x07)
PA_ADJ_SEL
[1:0]
(B1 0x07)
0b0
0b0
0b0
0b1
0b1
0b1
0b01
0b10
0b11
0b01
0b10
0b11
PA adjustment registers
PA_ADJ1
PA_ADJ2
PA_ADJ3
[7:4] [3:0] [7:4] [3:0] [7:4] [3:0]
valid
valid
valid
valid
valid
valid
PA regulator adjustment registers
PA_REG_ADJ1 PA_REG_ADJ2 PA_REG_ADJ3
[2:0]
[2:0]
[2:0]
valid
valid
valid
valid
valid
valid
81/140
FEDL7396A/B/E-07
ML7396A/B/E
●I/Q adjustment
Image rejection ratio can be adjusted by tuning IQ signal balance. The adjustment procedure is as follows:
1.
From SG, image frequency signal is input to ANT pin (#30).
Input signal:
no modulation.wave
Input frequency: channel frequency - (2 * IF frequency)
In case of 100kbps, IF frequency = 720kHz. please refer to the “Programing IF frequency”.
Input level:
-70dBm
2.
By setting RSSI_OUT ([RSSI/TEMP_OUT:B1 0x03(0)]) =0b1, outputing RSSI from A_MON pin (#24).
3.
Issuing RX_ON by [RF_STATUS:B0 0x6C] register, by adjusting [IQ_MAG_ADJ:B1 0x14] and [IQ_PHASE_ADJ:
B1 0x15] registers, finding setting value so that RSSI value is minimum by measuring A_MON pin (#24).
[I\Q adjustment flow]
START
1
Power on
Initial amplitude setting
[IQ_MAG_ADJ:B1 0x14]=0x08
Initialize setting
Please refer to
“Initial register setting” file.
Channel setting
[CH_SET:B0 0x6B]
Channel setting
[CH_SET:B0 0x6B]
SG output setting
modulation: no modulation
level : -70dBm
frequency: CH frequency- 2 * IF
frequency
RSSI output setting
[RSSI/TEMP_OUT:B1 0x03]
RX_ON issue
[RF_STATUS:B0 0x6C]
1
Phase adjustment by
[IQ_PHASE_ADJ:B1 0x15], so
that RSSI value is minimum.
Set phase value
[IQ_PHASE_ADJ:B1 0x15]
Amplitude adjustment by
[IQ_MAG_ADJ:B1 0x14], so
that RSSI value is minimum.
Set amplitude value
[IQ_MAG_ADJ:B1 0x14]
Amplitude/phase re-adjustment
by changing range.
[IQ_MAG_ADJ] ±3LSB
[IQ_PHASE_ADJ] ±6LSB
so that RSSI value is minimum.
Amplitude, phase valur
confirm
END
82/140
FEDL7396A/B/E-07
ML7396A/B/E
●VCO adjustment
In order to compensate VCO operation margin, optimized capacitance compensation value should be set in each operation
frequency. This capacitance compensation value can be acquired by VCO calibration.
By performing VCO calibration when power-up or reset, acquired capacitance compensation values for upper limit and lower
limit of operation frequency range (for both TX/RX), based on this value optimised capacitance value is applied during TX/RX
operation. Lower limit frequency can be set by [VCO_CAL_MIN_FL:B1 0x16] to [VCO_CAL_MIN_FH:B1 0x18] registers.
Upper frequency is definced by [VCO_CAL_MAX_N:B1 0x19] register as frequency range.
[VCO adjustment flow]
The following flow is the procedure for acquiring capacitance compensation value when power-up or reset.
START
Initialize
setting
Setting lower limit frequency
[VCO_CAL_MIN_FL:B1 0x16]
[VCO_CAL_MIN_FM:B1 0x17]
[VCO_CAL_MIN_FH:B1 0x18]
Setting operation frequency range
[VCO_CAL_MAX_N:B1 0x19]
Start
calibration
Set VCO_CAL_START = 0b1
[VCO_CAL_START:B1 0x1D(0)]
Calibration operation
Completion wait
VCO calibration completion?
INT[02]
No
[INT_SOURCE_GRP1:B0 0x24]
Yes
END
Note: VCO calibration should be performed only during IDLE state.
83/140
FEDL7396A/B/E-07
ML7396A/B/E
VCO calibration is necessary every 0.9ms to 4.2ms.
After completion, capacitance compensation values are stored in the following registers.
Capacitance compensation value at lower limit frequency: [VCO_CAL_MIN:B1 0x1A]
Capacitance compensation value at upper limit frequency: [VCO_CAL_MAX:B1 0x1B]
In actual operation, based on the 2 compensation values, the most optimized capacitance value for the frequency is calculated
and applied. The calculated value is stored in [VCO_CAL:B1 0x1C] register.
By evaluation stage, if below values are stored in the MCU memory and uses these values upon reset or power-up, calibration
operation can be omitted.
Registers to be saved in the MCU memory.
[VCO_CAL_MIN_FL:B1 0x16]
[VCO_CAL_MIN_FM:B1 0x17]
[VCO_CAL_MIN_FH:B1 0x18]
[VCO_CAL_MAX_N:B1 0x19]
[VCO_CAL_MIN:B1 0x1A]
[VCO_CAL_MAX: B1 0x1B]
NOTE:
1. For lower limit frequency, please use frequency at least 2MHz lower than operation frequency
2. For upper limit frequency should be selected so that operation frequency is in the frequency range.
3. Frequency range should not include 36MHz multiplied frequency, i.e. 900MHz, 936MHz.
4. In case of like a channel change, if the setting frequency is outside of calibration frequency range, calibration process
has to be performed again with proper frequency.
●VCO lower limit frequency setting
As described in the “Programing Channel #0 Frequency”, VCO lower limit frequency can be set by setting F-counter
parameter into [VCO_CAL_MIN_FL:B1 0x16], [VCO_CAL_MIN_FM:B1 0x17] and [VCO_CAL_MIN_FH:B1 0x18]
registers. N-counter and A-counter parametrs are applied the valu stored in [CH0_NA:B0 0x4B] register.
Lower limit frequency setting value can be calculated using the following formula.
20
LOW_F = {FLOW – (4 * N + A) * fREF} / fREF * 2 (Integer part)
Here
LOW_F
: Lower limit frequency F-counter setting
: Lower limit frequency [MHz]
FLOW
: PLL reference frequency (input clock=36MHz)
fREF
N
: N-counter parameter
A
: A-counter parameter
[note: using 20bit circuit]
If operation low limit frequency is 923.1MHz, N= 6 and A=1. Setting value should be lower than 2MHz. Then in following
example, lower limit frequency is set to 921.1MHz. (fREF = 36MHz)
LOW_F = {921.1 – (4 * 6 + 1) * 36MHz} /36MHz * 220 (Integer part) = 614582 (0x960B6)
Setting values for each register is as follows:
[VCO_CAL_MIN_FL:B1 0x16]= 0xB6
[VCO_CAL_MIN_FM:B1 0x17]= 0x60
[VCO_CAL_MIN_FL:B1 0x18]= 0x09
84/140
FEDL7396A/B/E-07
ML7396A/B/E
●VCO upper limit frequency setting
VCO upper limit frequency is calculated as following formula, based on low limit frequency values and
VCO_CAL_MAX_N[4:0] ([VCO_CAL_MAX_N: B1 0x19(5-0)]).
VCO calibration upper limit frequency = VCO calibration lower limit frequency (B1 0x16-0x18) + ΔF(B1 0x51)
ΔF is defined in the table below.
VCO_CAL_MAX_N[4:0]
ΔF[MHz]
0b0_0000
0b0_0001
0b0_0011
0b0_0111
0b0_1111
0b1_1111
Other than aboev
1.125
2.25
4.5
9
18
36
Prohibited
85/140
FEDL7396A/B/E-07
ML7396A/B/E
●Energy Detection value (ED value) adjustment
[ED value adjustment]
ED value is calculated by RSSI signal (analog signal) from RF part,. By performing the following adjustment, it is possible
to correct the variation in LSIs.
The gain adjustment and related registers are described below.
In order to cover wider input range, gain should be changed at given point. Threshold for gain change points are set by
[GAIN_MtoL:B1 0x1C] to [GAIN_MtoH:B0 0x1F]. [RSSI_ADJ_M:B1 0x20] and [RSSI_ADJ_L:B1 0x21] registers are
used to addition values to maintain linearity when changing gain. RSSI slope can be set to [RSSI_VAL_ADJ:B1 0x23] register
so that ED value can be between 0x00(min) and 0xFF(max). For thse register setting, please use the value specified in the
“Initial register setting” file.
Adjusting the input level variation for the same input level can be set to [RSSI_ADJ:B1 0x02] register. It must compensate the
slope before compensation defined by [RSSI_VAL_ADJ:B1 0x23] register. However, if positive value is set , ED value
cannot be decreased down to 0x00 at low input signal level. If negative value is set, ED value cannot be increased up to 0xFF.
ED value
ED value
[RSSI_VAL_ADJ:B1 0x23]
[RSSI_ADJ_L:B0 0x21]
[GAIN_HtoM:B0 0x1E]
RSSI value (ADC output)
[RSSI_ADJ_M:B0 0x20]
[GAIN_MtoH:B0 0x1F]
[RSSI ADJ:B1 0x02]
[GAIN_MtoL:B0 0x1C]
[GAIN_LtoTOM:B0 0x1D]
High gain
Operation range
Middle gain
Operation range
low
Low gain
Operation range
high
RF input level
Operation in the High gain range:
Operation in the Middle gain range:
Operation in the Low gain range:
RSSI value>GAIN_HtoM, and move to Middle gain.
RSSI value>GAIN_MtoL, and move to Low gain.
GAIN_MtoH≥RSSI value, and move to High gain.
GAIN_LtoM≥RSSIvalue, and move to Middle gain.
86/140
FEDL7396A/B/E-07
ML7396A/B/E
■Other Setting
●BER measurement setting
The following registers setting are necessary for RX side when measuring BER.
[PLL_MON/DIO_SEL:B0 0x69] = 0x01
[DEMOD_SET:B1 0x01] = 0x80
[DEMOD_SET2:B2 0x0A] = 0x10
[SYNC_MODE:B2 0x12] = 0x00
87/140
FEDL7396A/B/E-07
ML7396A/B/E
■Flow Charts
●Initialization
In initialization status, interrupt process, registers setting, VCO calibration are necessary.
(1) Interrupt process
Upon reset, all interrupt notification settings ([INT_EN_GRP1-4:B0 0x2A-0x2D]) are enabled.
After hard reset is released, INT[00] (group 1: Clock stabilization completion interrupt) will be detected. After INT[00]
notification, please mask unused interruput elements by using [INT_EN_GRP1:B0 0x2A] to [INT_EN_GRP4] registers.
If interrupt elements are stored internnaly, interrupt will generate as soon as interrupt is unmasked, unless clearing the
interrpt. When clearing interrupt, it is recommended to clear interrput after masking the interrupt.
(2) Registers setting
In reset value setting, clock is output from DMON pin (#17). If clock output is not used, please assign another
monitoring function to DMON pin and terminate clock output.
After hard reset is released, all registers are accesible except for FIFO access registers and BANK1 registers before
INT[00] notification.
(3) VCO calibration
Executing VCO calibration after setting upper and lower limit of the operation frequency range. Operating frequency
should be in the calibration frequency range. In case of using frequency which is outside of calibration frequency range,
calibration process has to be performed again with proper frequency.
During VCO calibration, please register access is prohibited.
88/140
FEDL7396A/B/E-07
ML7396A/B/E
START
No
Clock stabilization completion int. ?
INT[00] [INT_SOURCE_GRP1: B0 0x24]
Yes
Masking INT[00]
[INT_EN_GRP1:B0 0x2A]
INT[00] clear
[INT_SOURCE_GRP1:B0 0x24]
(1)Interrupt process
Masking unused interrupts
[INT_EN_GRP1:B0 0x2A] to
[INT_EN_GRP4:B0 0x2D]
Register setting
(Including clock output termination)
(2)Register setting
Start VCO calibration
[VCO_CAL_START:B1 0x1D]
No
VCO calibration completion int. ?
INT[02] [INT_SOURCE_GRP1: B0 0x24]
(3)VCO calibration
INT[02] clear
[INT_SOURCE_GRP1:B0 0x24]
END
89/140
FEDL7396A/B/E-07
ML7396A/B/E
●TX mode (DIO mode)
DIO (TX) mode can be selected by setting DIO_EN ([PLL_MON/DIO_SEL:B0 0x69(1)]) =0b1. In DIO (TX) mode, when
issuing TX_ON command, data input to DIO pin (#15) will be transmitted to the air. TX Data following SFD field should be
input from host MCU and TX data should be synchronized with DCLK from DCLK pin (#16). After TX completion,
TRX_OFF commnand should be issued.
TX data request accept completion interrupt (INT[22] or INT[23] group3) notification should be required to start DIO (TX)
transmission. Before issuing TX_ON command, writing dummy data to a FIFO to generate TX data request accept completion
interrupt. More than 4byte dummy data (excluding Lngth field) is required.
[Example: Setting minimum dummy packet]
Set CRC_DONE ([FEC/CRC_SEC:B0 0x46(0)]) =0b0, and write 0x00-01-02 (3byte) tp [WR_TX_FIFO:B0 0x7E] register.
Note: The first TX data input during DIO (TX) mode.
Initial status of DCLK pin (#16) is “L”. Therefore there is no falling edge for the 1st TX data, the 1st TX data should be
pre-set to DIO pin (#15) before writing dummy packet.
For more details, please refer to the explanation in following page.
90/140
FEDL7396A/B/E-07
ML7396A/B/E
TX data corresponding to each register setting and DIO input is as below:
[Example] Transmitting prEN 13757-4rev Mode C format A packet (ML7396E)
Case 1: Input TX data at rising edge of DCLK
[Conditions]
[PREAMBLE_SET:B0 0x39] =0x55
[SFD1_SET1:B0 0x3A] =0x55
[SFD1_SET2:B0 0x3B] =0x55
[TX_PB_LEN:B0 0x42] =0x03
[RX_PR_LEN/SFD_LEN:B0 0x43] =0x02
DCLK output
Data
SyncWord
PREAMBLE
TX data (Air)
101010101 01010101 01010101 01010101 0101 0100 0011 1101 0101 0100 1100 1101 xxxx ….
Register setting and DIO input
PREAMBLE_SET
(3Byte)
SFD1_SET1 SFD1_SET2
(1Byte)
(1Byte)
DIO input
(SyncWord)
Pre-set “L” to DIO pin.
This bit will be transmitted
as 1st bit
DIO input
(Data)
Sending data following last
3 bytes of SyncWord.
Case 2: Input TX data at falling edge of DCLK
[Conditions]
[PREAMBLE_SET:B0 0x39]=0xAA
[SFD1_SET1:B0 0x3A] =0xAA
[SFD1_SET2:B0 0x3B] =0xAA
[TX_PB_LEN:B0 0x42] =0x03
[RX_PR_LEN/SFD_LEN:B0 0x42] =0x02
DCLK output
Data
SyncWord
PREAMBLE
TX data (Air)
0101010101 01010101 01010101 01010101 0101 0100 0011 1101 0101 0100 1100 1101 xxxx ….
Register setting and DIO input
PREAMBLE_SET
(3Byte)
SFD1_SET1 SFD1_SET2
(1Byte)
(1Byte)
DIO input
(SyncWord)
Pre-set “L” to DIO pin.
These 2 bits will be transmitted
as 1st bit and 2nd bit.
DIO input
(Data)
Sending data following last
3 bytes of SyncWord.
91/140
FEDL7396A/B/E-07
ML7396A/B/E
[Flowchart]
START
* RX_FIFO_MON ([PLL_MON/DIO_SEL:B0 0x69(0)])
setting does not affect on DIO (TX) mode operation.
Set DIO_EN =0b1
[PLL_MON/DIO_SEL:B0 0x69(2)]
Packet header setting
[PREAMBLE_SET:B0 0x39]
[SFD1_SET1-4:B0 0x3A-3D]
[TX_PR_LEN:B0 0x42]
[RX_PR_LEN/SFD_LEN:B0 0x43]
Set “L/H” to DIO pin
Write dummy data to a FIFO
No
* Set 1st biy of TX data to the DIO pin.
* Set CRC_DONE ([FEX/CRC_SET:B0 0x46(0)])=0b0
(disable) and write 0x00-01-02 to [WR_TX_FIFO:B0
0x7E] register.
TX data request accept completion int?
[INT_SOURCE_GRP3:B0 0x26]
Yes
TX_ON issue
[RF_STATUS:B0 0x6C]
No
DCLK output?
[DCLK pin (#16)]
* If issuing TX_ON before writing dummy
data, same result can be achieved
* Timing up to DCLK output varies
depending on preamble length, SFD
length and data rate
Yes
Input TX data
[DIO pin (#15)]
No
* TX data should be input at falling edge of DCLK.
TX completion?
Yes
TRX_OFF issue
[RF_STATUS:B0 0x6C]
Clear TX data request accept
completion interrupt
[INT_SOURCE_GRP3:B0 0x26]
Yes
Next packet TX?
No
END
92/140
FEDL7396A/B/E-07
ML7396A/B/E
●RX mode (DIO mode)
DIO (RX) mode can be selected by setting DIO_EN ([PLL_MON/DIO_SEL:B0 0x69(1)]) =0b1 and RX_FIFO_MON
([PLL_MON/DIO_SEL:B0 0x69(1)]) =0b1. In DIO (RX) mode, when issuing RX_ON command, preamble and SFD
detection will be started. After preamble and SFD are detected, RX data is output through DIO pin (#15). RX Data following
SFD field are output and RX data should be read at rising edge of DCLK from DCLK pin (#16). After RX completion,
TRX_OFF commnand should be issued.
Like packet mode, preamble and SFD detection are done according to the settings of [PREAMBLE_SET:B0 0x39],
[SFD1_SET1:B0 0x3A] to [SFD1_SET4:B0 0x3D], [RX_PR_LEN/SFD_LEN:B0 0x43] and [SYNC_CONDITION:B0 0x44]
registers.After SFD is deteceted, SFD detection interrupt (INT[11] group2) will generate.
The first RX data is output at the first rising edge of DCLK after SFD detection interrupt notification.(Timing from SFD
detection interrupt to the first DCLK rising edge is 9μs at 100kbps setting.)
START
Set DIO_EN =0b1
RX_FIFO_MON =0b1
[PLL_MON/DIO_SEL:B0 0x69(1,0)]
Detect condition setting
[PREAMBLE_SET:B0 0x39]
[SFD1_SET1-4:B0 0x3A-3D]
[RX_PR_LEN/SFD_LEN:B0 0x43]
[SYNC_CONDITION:B0 0x44]
* Like packet mode, detect pattern should be
set to ([PREAMBLE_SET:B0 0x39] and
[SFD_SET1-4:B0 0x3A-3D] registers.
Note: Different from DIO (TX) mode setting.
RX_ON issue
[RF_STATUS:B0 0x6C]
No
DCLK output?
[DCLK pin (#16)]
* Afetr entering RX_ON state, DCLK will be
output regardless of RX data.
Yes
Read RX data
[DIO pin (#15)]
No
* RX data should be read at rising edge of
DCLK.
TX completion?
Yes
TRX_OFF issue
[RF_STATUS:B0 0x6C]
END
93/140
FEDL7396A/B/E-07
ML7396A/B/E
●TX mode (Packet mode, packet length ≤ 256byte)
Packet mode can be selected by setting DIO_EN ([PLL_MON/DIO_SEL:B0 0x69(1)]) =0b0. In Packet mode, each TX data
is written into a FIFO by [WR_TX_FIFO:B0 0x7E] register. After writing full TX data of a packet, issuing TX_ON command.
Following PB (preamble), SFD data, TX data is transmitted to the air. When CRC is enabled, the CRC calcuration will be done
automatically and CRC result is set to FCS field and transmitted to the air.
After TX completion interrupt (INT[16]/[17] group3) occurs, the interrupt must be cleared. If the next TX packet is sent, the
next TX packet data is written to a FIFO. If RX is expected after TX, RX_ON should be issued by [RF_STATUS:B0 0x6E]
register. TX can be terminated by issuing TRX_OFF by [RF_STATUS:B0 0x6E] register.
At every packet writing, FIFO0 and FIFO1 are switched automatically. (FIFO0 → FIFO1 → FIFO0)
94/140
FEDL7396A/B/E-07
ML7396A/B/E
START
TX FIFO trigger level setting
[TX_ALARM_LH:B0 0x35] =0x00
[TX_ALARM_HL:B0 0x36] =0x00
If the TX data length is shorter than the
FAST_TX trigger level, TX will start by
writing all data to a FIFO.
Write TX data to FIFO
From CCA flowchart
[WR_TX_FIFO:B0 0x7E]
No
No
TX data request accept completion int?
CCA result=BUSY?
[INT_SOURCE_GRP3:B0 0x26]
Yes
Yes
Go to CCA flowchart
If random back-off period specified in
the IEEE, go to CCA normal mode.
If IDLE is detected in minimum period,
go to CCA IDLE detection mode.
Yes
Yes
CCA continue?
No
CCA execution?
Clear TX data request
No
[INTSOURCE_GRP3:B0 0x6C]
or [PD_DATA_REQ:B0 0x28]
TX_ON iisue
[RF_STATUS:B0 0x6C]
TRX_OFF iisue
[RF_STATUS:B0 0x6C]
No
TX completed (INT[16]/INT[17])?
[INT_SOURCE_GRP3:B0 0x26]
END
Yes
Clear interrupts
Write TX data to FIFO
[INT_SOURCE_GRP3:B0 0x26]
INT[16],[22] or INT[17],[23]
[WR_TX_FIFO:B0 0x7E]
AUTO_RX_EN =0b1?
[AUTO_ACK_SET:B0 0x55(6)] and
Yes
Go to RX flowchart
Send ACK request packet?
No
Yes
Next packet TX?
No
RX?
Yes
RX_ON issue
[RF_STATUS:B0 0x6C]
No
TRX_OFF issue
RF state transition completion int?
END
Go to RX flowchart
[RF_STATUS:B0 0x6C]
[INT_SOURCE_GRP2:B0 0x25]
INT[10]
95/140
FEDL7396A/B/E-07
ML7396A/B/E
●TX mode (Packet mode, packet length ≥ 257byte)
The host MCU should write TX data to a FIFO while checking FIFO-Full interrupt (INT[05] group1) and FIFO-Empty
interrupt (INT[04] group1) in order to avoid FIFO-Overrun or FIFO-Underrun. Other operation are same as packet mode (less
than 256byte).
Enabling FAST_TX mode by setting AUTO_TX ([PACKET_MODE_SET:B0 0x45(2)] =0b1 and FAST_TX_TRG[7:0]
([FAST_TX_SET:B0 0x6A(7-0)], TX will start when data amount written to a FIFO exceeds the setting value of
FAST_TX_TRG[7:0].
START
FAST_TX setting
AUTO_TX ([PACKET_MODE_SET:B0 0x45(2)])=0b1
FAST_TX trigger: [FAST_TX_SET:B0 0x6A]
TX FIFO trigger level LH: [TX_ALARM_LH: B0 0x35]
TX FIFO trigger level HL: [TX_ALARM_HL:B0 0x36]
Write TX data to FIFO
[WR_TX_FIFO:B0 0x7E]
If data amount written to a FIFO exceeds
the FAST_TX_TRG[7:0], TX will start.
FIFO-Empty (INT[04])?
Yes
[INT_SOURCE_GRP1:B0 0x24]
*Total data amount should be the size
subtracting CRC length from the
Write TX data to FIFO
Length value.
[WR_TX_FIFO:B0 0x7E]
If too much TX data written to a
FIFO, aftert TX completion interrupt,
issue TRX_OFF and then issue PHY
reset.
Clear INT[04]
No
No
When sending ACK request packet, please set
AUTO_RX_EN =0b1.
([AUTO_ACK_SET:B0 0x55(6)])
TX data request accept completion int?
[INT_SOURCE_GRP1:B0 0x24]
(INT[22] or INT[23])
[INT_SOURCE_GRP3:B0 0x26]
Yes
No
TX completion(INT[16]/[17])?
[[INT_SOURCE_GRP3:B0 0x 26]
Yes
AUTO_RX_EN =0b1?
[AUTO_ACK_SET:B0 0x55(6)] and
Yes
Go to RX flowchart
Send ACK request packet?
No
Clear interrupts
Write TX data to FIFO
INT[16],[22] or INT[17].[23]
[INT_SOURCE_GRP3:B0 0x26]
[WR_TX_FIFO:B0 0x7E]
Yes
Next packet TX?
No
Set AUTO_TX=0b0
[PAKET_MODE_SET: B0 0x45(2)]
END
96/140
FEDL7396A/B/E-07
ML7396A/B/E
●TX mode (Ack receiving with address filter)
Even when Address Filtering function is enabled, Ack packet (or beacon packet) will be received. However dscarding Ack
packet can be set by RX_ACK_CANCEL ([AUTO_ACK_SET:B0 0x55(7)]) =0b1.
And when AUTO_RX_EN ([AUTO_ACK_SET:B0 0x55(6)])=0b1, the Ack packet just after transmitting ACK request
packet can be received without discarding.
START
Address Filtering setting: [ADDFIL_CNTRL:B2 0x60]
RX_ACK_CANCEL ([AUTO_ACK_SET:B0 0x55(7)] =0b1
AUTO_RX_EN ([AUTO_ACK_SET:B0 0x55(6)] =0b1
END
Note: Ack packet is detected by frame type only. Therefore even if the first Ack packet destination is different address, this
Ack packet will be received. The following process is as below;
Address match
Following 2nd packet will be discarded.
Address mismatch
By setting RX_ACK_CANCEL=0b0, maintain RX until receiving Ack packet with right address.
97/140
FEDL7396A/B/E-07
ML7396A/B/E
●RX mode (Packet mode, packet length ≤ 256 bytes)
Packet mode can be selected setting DIO_EN ([PLL_MON/DIO_SEL:B0 0x69(1)]) =0b0. In DIO mode, when issuing
RX_ON command, preamble and SFD detection will be started. After preamble and SFD are detected, RX data will be stored
into a FIFO. After RX completion interrupt (INT[18]/[19] group3) occurs, the host MCU will read RX data from
[RD_RX_FIFO:B0 0x7F] register. If CRC error interrupt (INT[20]/[21]) is generated, FIFO data has to be cleared by setting
(FIFO_CLR1/0 ([INT_SOURCE_GRP1:B0 0x26(7/6)]) =0b0. After clearing RX retaive interrpts, if receiving the next packet,
maintain RX_ON status and waiting for next RX completion interrupt. If TX is expected after RX, TX_ON should be issued by
[RF_STATUS:B0 0x6E] register. If terminating RX, issuing TRX_OFF by [RF_STATUS:B0 0x6E] register.
If FIFO-Full trigger and FIFO-Empty trigger are not used, please set 0x00 to both [RX_ALARM_LH:B0 0x37]) and
[RX_ALARM_HL:B0 0x38)] registers.
START
RX FIFO trigger level setting
[RX_ALARM_LH:B0 0x37] =0x00
[RX_ALARM_HL:B0 0x38] =0x00
RX_ON issue
[RF_STATUS:B0 0x6C]
From automatic ACK receive in TX mode
No
RX completion (INT[18]/[19])?
[INT_SOURCE_GRP3:B0 0x26]
Yes
CRC error (INT[20]/INT[21])? Yes
[INT_SOURCE_GRP3:B0 0x26]
Go to CRC error flowchart
in “Error process”
No
AUTO_RX_EN=0b1?
Yes
[AUTO_ACK_SET] B0 0x55
Set ACK_STOP =0b1
No
[AUTO_ACK_SET:B0 0x55(0)]
Read RX data from FIFO
Set ACK_STOP =0b0
[RD_RX_FIFO:B0 0x7F]
ACK request?
[AUTO_ACK_SET:B0 0x55(0)]
Yes
No
Go to Act TX mode flowchart
(≤256byte)
Clear interrupts
INT[18],[20] or INT[19].[21]
[INT_SOURCE_GRP3:B0 0x26]
Next packet RX?
No
[Note]
If CRC_EN ([FEC/CRC_SET:B0
0x46(3)])=0b0, read out all RX
data from a FIFO before issuing
TRX_OFF command.
Please refer [FEC/CRC_SET:B0
0x46] register
TX?
Yes
Go to TX flowchart
No
TRX_OFF issue
[RF_STATUS:B0 0x6C]
END
98/140
FEDL7396A/B/E-07
ML7396A/B/E
●RX mode (Packet mode, packet length ≥ 257 bytes)
The host MCU should read RX data from a FIFO while checking FIFO-Full interrupt (INT[05] group1) and FIFO-Empty
interrupt (INT[04] group1) in order to avoid FIFO-Overrun or FIFO-Underrun. Other operation are same as packet mode (less
than 256byte).
START
RX_ON issue
[RF_STATUS:B0 0x6C]
FIFO-Full (INT[05])?
Yes
[INT_SOURCE_GRP1:B0 0x24]
Clear INT[05]
No
[INT_SOURCE_GRP1 B0 0x24]
Read RX data from FIFO
[RD_RX_FIFO:B0 0x7F]
No
No
ACK request?
Yes
RX completion (INT[18]/[19])?
[INT_SOURCE_GRP3:B0 0x26]
CRC error (INT[20]/INT[21])?
Gp to Ack TX mode flowchart
Yes
[INT_SOURCE_GRP3:B0 0x26]
Go to CRC error flowchart
in “Error process”
Read RX data from FIFO
[RD_RX_FIFO:B0 0x7F]
Clear interrupts
INT[18],[20] or INT[19].[21]
[INT_SOURCE_GRP3:B0 0x26]
Yes
Next packet RX?
No
TX?
Yes
Go to TX flowchart
No
TRX_OFF issue
[RF_STATUS:B0 0x6C]
END
99/140
FEDL7396A/B/E-07
ML7396A/B/E
●RX mode (IEEE802.15.4d mode)
When using IEEE80.15.4d mode by IEEE_MODE ([PACKET_MODE_SET:B0 0x45(1)]) =0b0, Basic flowchart is same as
IEEE 802.15.4g. However reading 1byte dummy data should be required after reading amount of data given by Length field.
START
RX_ON issue
[RF_STATUS:B0 0x6C]
No
RX completion (INT[18]/[19])?
[INT_SOURCE_GRP3:B0 0x26]
Yes
CRC error (INT[20]/INT[21])?
[INT_SOURCE_GRP3:B0 0x26]
Yes
Go to CRC error flowchart
in “Error process”
No
Read RX data from FIFO
[RD_RX_FIFO:B0 0x7F]
No
Read all data from FIFO
Yes
Read dummy data (1byte)
from FIFO
[RD_RX_FIFO:B0 0x7F]
Clear interrupts
INT[18],[20] or INT[19].[21]
[INT_SOURCE_GRP3:B0 0x26]
Yes
Next packet RX?
No
TRX_OFF issue
[RF_STATUS:B0 0x6C]
END
100/140
FEDL7396A/B/E-07
ML7396A/B/E
●ACK TX mode (AUTO_ACK, packet length ≤ 256 bytes)
When AUTO_ACK function is enabled by AUTO_ACK_EN ([AUTO_ACK_SET:B0 0x55(4)]) =0b1, if receiving TX packet
with ACK request, preparing TX Ack packet (TX_ON) or transmitting Ack packet automatically (when using Ack timer).
START
Set AUTO_ACK_EN=0b1
[AUTO_ACK_SET:B0 0x55(4)]
Address match?
No
RX_ON issue
[RF_STATUS:B0 0x6C]
Yes
From RX flowchart
(≤256 byte)
No
Read pending data
PHY reset issue
[RST_SET:B0 0x01]
RX completion (INT[18]/[19])?
[INT_SOURCE_GRP3:B0 0x26]
When CCA_AUTO_EN=0b1,
([CCA_CNTRL:B0 0x15(7)])
executing CCA automatically.
Yes
Set ACK_STOP=0b1
[AUTO_ACK_SET:B0 0x55(0)]
(*1)
CRC error (INT[20]/INT[21])?
Set ACK_STOP=0b0
Yes
[AUTO_ACK_SET:B0 0x55(0)]
[INT_SOURCE_GRP3:B0 0x26]
Ack frame setting
No
Read RX data from FIFO
[RD_RX_FIFO:B0 0x7F]
[ACK_FRAME1:B0 0x53]
[ACK_FRAME2:B0 0x54]
Clear INT[20] or [21]
[INT_SOURCE_GRP3:B0 0x26]
No
PHY reset issue
END
Auto Ack ready (INT[24])?
[INT_SOURCE_GRP4:B0 0x27]
[RST_SET:B0 0x01]
Yes
Set ACK_STOP=0b1
Set ACK_SEND=0b1
[AUTO_ACK_SET:B0 0x55(0)]
[AUTO_ACK_SET:B0 0x55(1)]
When using Ack timer, no need
to set ACK_SEND bit.
(*1)
Set ACK_STOP=0b0
[AUTO_ACK_SET:B0 0x55(0)]
No
TX completion?
(INT[16]/[17])
[INT_SOURCE_GRP3:B0 0x26]
END
Yes
Clear interrupts
INT[16],[22] or INT[17].[23]
[INT_SOURCE_GRP3:B0 0x26]
Set ACK_STOP=0b1
(*1)
Only when data rate is 50kbps and SCLK speed is
16MHz (max), please set 12μs wait between
ACK_STOP=0b1 to ACK_STOP=0b0.
[AUTO_ACK_SET:B0 0x55(0)]
(*1)
Set ACK_STOP=0b0
[AUTO_ACK_SET:B0 0x55(0)]
END
101/140
FEDL7396A/B/E-07
ML7396A/B/E
●ACK TX mode (AUTO_ACK, packet length ≥ 257 bytes)
START
Set AUTO_ACK_EN=0b1
[AUTO_ACK_SET:B0 0x55(4)]
RX FIFO trigger level setting
[RX_ALARM_LH:B0 0x37] =0x00
[RX_ALARM_HL:B0 0x38] =0x00
CRC error (INT[20]/INT[21])?
Yes
[INT_SOURCE_GRP3:B0 0x26]
RX_ON issue
[RF_STATUS:B0 0x6C]
No
Read pending data
No
Clear INT[20] or [21]
[INT_SOURCE_GRP3:B0 0x26]
FIFO-Full (INT[05])?
[INT_SOURCE_GRP1:B0 0x24]
PHY reset issue
[RST_SET:B0 0x01]
Yes
Read RX data from FIFO
Set ACK_STOP=0b1
[RD_RX_FIFO:B0 0x7F]
[AUTO_ACK_SET:B0 0x55(0)]
From RX flowchart (≥257 byte)
Address match?
(*1)
Set ACK_STOP=0b0
No
[AUTO_ACK_SET:B0 0x55(0)]
Yes
Ack frame setting
[ACK_FRAME1:B0 0x53]
[ACK_FRAME2:B0 0x54]
No
PHY reset issue
END
Auto Ack ready (INT[24])?
[INT_SOURCE_GRP4:B0 0x27]
[RST_SET:B0 0x01]
Yes
Set ACK_STOP=0b1
Set ACK_SEND=0b1
[AUTO_ACK_SET:B0 0x55(0)]
[AUTO_ACK_SET:B0 0x55(1)]
When using Ack timer, no need
to set ACK_SEND bit.
(*1)
Set ACK_STOP=0b0
[AUTO_ACK_SET:B0 0x55(0)]
No
RX completion?
(INT[18]/[19])
No
TX completion?
(INT[16]/[17])
[INT_SOURCE_GRP3:B0 0x26]
END
Yes
[INT_SOURCE_GRP3:B0 0x26]
Clear interrupts
Yes
INT[16],[22] or INT[17].[23]
[INT_SOURCE_GRP3:B0 0x26]
Set ACK_STOP=0b1
(*1)
Only when data rate is 50kbps and SCLK speed is
16MHz (max), please set 12μs wait between
ACK_STOP=0b1 to ACK_STOP=0b0.
[AUTO_ACK_SET:B0 0x55(0)]
(*1)
Set ACK_STOP=0b0
[AUTO_ACK_SET:B0 0x55(0)]
END
102/140
FEDL7396A/B/E-07
ML7396A/B/E
●ACK TX mode (without AUTO_ACK)
Below flowchart shows the Ack packet transmission without AUTO_AUK function. By using FIFO-Full interrupt (INT[05]
gtoup1), the host MCU write Ack packet to a FIFO during RX. After RX completion, transmitting Ack paket.
START
RX FIFO trigger level setting
[RX_ALARM_LH:B0 0x37] =0x00
[RX_ALARM_HL:B0 0x38] =0x00
If using interrupt notification by SINT
pin (#10), pleas unmask INT[05] by
[INT_EN_GRP1:B0 0x24] register.
RX_ON issue
[RF_STATUS:B0 0x6C]
Address match?
No
No
Yes
FIFO-Full (INT[05])?
Force_TRX_OFF issue
[INT_SOURCE_GRP1:B0 0x24]
[RF_STATUS:B0 0x6C]
Set Ack packet
to a FIFO.
Yes
Write TX data to FIFO
[WR_TX_FIFO:B0 0x7E]
Clear FIFO
Read RX data from FIFO
[INT_SOURCE_GRP1:B0 0x24]
[RD_RX_FIFO:B0 0x7F]
No
RX completion (INT[18]/[19])?
END
[INT_SOURCE_GRP3:B0 0x26]
Read length and
address field.
Yes
CRC error (INT[20]/INT[21])?
Yes
[INT_SOURCE_GRP3:B0 0x26]
Ack packet
cancellation
No
TX_ON issue
[RF_STATUS:B0 0x6C]
Clear PD_DATA_REQ
(Set 0b0)
[PD_DATA_REQ:B0 0x28(1,5]
No
TX completion?
(INT[16]/[17])
[INT_SOURCE_GRP3:B0 0x26]
PHY reset issue
[RST_SET:B0 0x01]
Yes
TRX_OFF issue
[RF_STATUS:B0 0x6C]
Read RX data from FIFO
Read out remaining
Rx data.
[RD_RX_FIFO:B0 0x7F]
END
103/140
FEDL7396A/B/E-07
ML7396A/B/E
●Address Filter
When Address filtering function is enabled, if receiving packet which address field are mismatch, Packet discard completion
interrupt (INT[03] group1) will be generated. At this time, if ADDFIL_NG_SET ([PACKET_MODE_SET:B0 0x45(5)]) =0b0,
aborting packet data immediately after address mismatch detection and CRC error interrupt (INT[20]/[21] group3) is also
generated at the same time. (The details of interrupt notifiaction, please refer to the [Interrupts timing when using
INT_TIM_CTRL] in “Address filtering function”.) After notifying Packet discard completion interrupt and CRC error
interrupt, it is need to clear FIFO by [INT_SOURCE_GRP1:B0 0x24] register or reading out data specified by Lngth field from
the FIFO, in order to store next packet to right FIFO. After that, clearing Packet discard completion interrupt and CRC error
interrupt, and then waiting next packet.
START
For deteils of process after receiving ACK packet, please refer
[AUTO_ACK_SET:B0 0x55] register description (*4) and
TX mode (Ack receiving with addrsss filter) flowchart.
Address filtering setting
ADDFIL_NG_SET=0b0 (B0 0x45(5))
[ADDFIL_CNTRL:B2 0x60]
[PANID_L/H:B2 0x61,62]
[64ADDR1-8:B2 0x63-6A]
[SHT_ADDR0_L/H:B2 0x6B,6C]
[SHT_ADDR1_L/H:B2 0x6D.6E]
RX_ON issue
[RF_STATUS:B0 0x6C]
Packet discard completion?
(INT[03])
Yes
[INT_SOURCE_GRP1:B0 0x24]
No
No
RX completion?
(INT[18]/[19])
[INT_SOURCE_GRP3:B0 0x26]
Yes
No
CRC Error?
(INT[20]/[21])
[INT_SOURCE_GRP3:B0 0x26]
Yes
Read RX data from FIFO
Clear FIFO which CRC error occurs
Clear interrupts
Clear interrupts
[RD_RX_FIFO:B0 0x7F]
INT[18],[20] or INT[19].[21]
[INT_SOURCE_GRP3:B0 0x26]
Yes
Confirming FIFO filed which CRC
error occurs.
Next packet RX?
No
TRX_OFF issue
[INT_SOURCE_GRP1:B0 0x24 (7 or 6)]
If ADDFIL_NG_SET=0b1,
When Packet discard cpmletion is
generated, PHY reset should be
required.
If CRC error interrupt occurs at the
same time, following process is same
as described in the flowchart.
INT[03]
[INT_SOURCE_GRP1:B0 0x24]
INT[20] or INT[21]
[INT_SOURCE_GRP3:B0 0x26
[Note]
When executing PHY reset during address filtering
function, any interrupt procedure should be done.
When executing PHY reset, if reading data is remaining in
a FIFO, this data will also be cleard and discarded packet
counter is reset to 0.
[RF_STATUS:B0 0x6C]
END
104/140
FEDL7396A/B/E-07
ML7396A/B/E
●FIFO Clear (Rx)
When RX completion interrupt (INT[18]/[19] group3) and CRC error interrupt (INT[20]/[21] group 3) is notified in the same
time, clearing FIFO by set 0b0 to FIFO_CLR0/1 ([INT_SOURCE_GRP1:B0 0x24(6/7)]) if no need to read remaining RX data.
And then clearing RX completion interript and CRC error interrupt.
If receiving next packet, keeping RX_ON state. If terminating RX_ON state, please issueing TRX_OFF command by
[RF_STATUS:B0 0x6C] register. Be sure to clear the correct FIFO bank only. Alternatively, FIFO can be cleared by issueing
PHY reset by using [RST_SET:B0 0x01] register.
START
RX FIFO trigger level setting
[RX_ALARM_LH:B0 0x37] =0x00
[RX_ALARM_HL:B0 0x38] =0x00
RX_ON issue
[RF_STATUS:B0 0x6C]
FIFO-Full (INT[05])?
Yes
[INT_SOURCE_GRP1:B0 0x24]
Read RX data from FIFO
No
No
[RD_RX_FIFO:B0 0x7F]
RX completion (INT[18]/[19])?
[INT_SOURCE_GRP3:B0 0x26]
Yes
CRC error (INT[20]/INT[21])?
No
[INT_SOURCE_GRP3:B0 0x26]
Yes
Clear FIFO
[INT_SOURCE_GRP1:B0 0x24(6,7)]
Clear interrupts
INT[18],[20] or INT[19].[21]
[INT_SOURCE_GRP3:B0 0x26]
Yes
Read out Rx data
Read RX data from FIFO
[RD_RX_FIFO:B0 0x7F]
Alternatively issueing
PHY reset.
Note:
Be sure to clear the correct FIFO bank.
When issuing PHY reset, both FIFOs are
cleard.
Next packet RX?
No
TRX_OFF issue
[RF_STATUS:B0 0x6C]
END
105/140
FEDL7396A/B/E-07
ML7396A/B/E
●SLEEP
Set 0b1 to SLEEP_EN ([CLK_SET:B0 0x02(5)]) in order to enter into SLEEP state. SLEEP state can be released by setting
SLEEP_EN=0b0.
START
Set SLEEP_EN=0b1
Sleep execution
[CLK_SET:B0 0x02(5)]
No
Sleep release?
Yes
Set SLEEP_EN=0b0
Sleep release
[CLK_SET:B0 0x02(5)]
No
Clock stabilization completion?
(INT[00])
[INT_SOURCE_GRP1:B0 0x24]
Yes
END
106/140
FEDL7396A/B/E-07
ML7396A/B/E
●ED Scan
ED value will be automatically acquired by issuing RX_ON by [RF_STATUS:B0 0x6C] register after setting ED_CALC_EN
[ED_CNTRL:B0 0x1B(7)]) =0b1. ED values is constantly updated when ED_CALC_EN=0b1 during RX_ON state.
When changing RF channel, once set ED_CALC_EN=0b0 and set 0b1 again after RF channel change completion. Except for
RF channel change, please do not set 0b0 to ED_CALC_EN bit.
START
Set ED_CALC_EN=0b1
[ED_CNTRL:B0 0x1B(7)]
RX_ON issue
[RF_STATUS:B0 0x6C]
No
ED_DONE=0b1?
[ED_CNTRL:B0 0x1B(4)]
Yes
Read ED value
ED value will be constantly
updated
[ED_RSLT:B0 0x16]
RF channel change
Yes
[CH_SET:B0 0x6B]
The timing from RF channel change setting
to channel change completion is 100μs.
Following operation this timing should be
considered.
RF channel change?
No
TRX_OFF issue
[RF_STATUS:B0 0x6C]
Set ED_CALC_EN=0b0
[ED_CNTRL:B0 0x1B(7)]
END
Set ED_CALC_EN=0b1
[ED_CNTRL:B0 0x1B(7)]
These processes are not necessary if
250μs wait is added after RF channel
changing setting.
107/140
FEDL7396A/B/E-07
ML7396A/B/E
●CCA operation
●Normal mode
CCA normal mode will be executed by issueing RX_ON by [RF_STATUS:B0 0x6C] register after setting CCA_EN
([CCA_CNTRL:B0 0x15(4)])=0b1, CCA_IDLE_EN ([CCA_CNTRL:B0 0x15(3)])=0b0 and CCA_LOOP_START
([CCA_CNTRL:B0 0x15(5)])=0b0. Compariing acquired ED average value with CCA threshold value in [CCA_LEVEL:B0
0x13] register and notice the result. After CCA execution, CCA_EN is turned disabled, and RF maintains RX_ON state.
Even if set CCA_EN=0b1 during RX_ON state, CCA can be performed by. However, in this case, 16μs - 32μs (2 cycle of
A/D conversion) WAIT is automatically added as the filter stabilization period before CCA execution. (If CCA_EN=0b1 is
set before issuing RX_ON, WAIT is not added because filter stabilization period is included in RF transition period.)
If bit synchronization is detected during CCA, keep receiving with wider BPF bandwidth for CCA operation. If CCA is
executed after bit synchronization detection, CCA is executed with normal BPF bandwidth.
CCA execution is also possible during diversity search. In this case, after CCA completion diversity search will be resumed
automatically.
START
CCA setting
[CCA_CNTRL:B0 0x15(5-3)]
CCA_LOOP_START=0b0
CCA_EN=0b1
CCA_IDLE_EN=0b0
CCA start
RX_ON issue
[RF_STATUS:B0 0x6C]
No
CCA completion (INT[08])?
[INT_SOURCE_GRP2:B0 0x25]
Yes
Read CCA_RSLT[1:0]
[CCA_CNTRL:B0 0x15(1-0)]
Set CCA_EN=0b1
[CCA_CNTRL:B0 0x15(4)]
Clear INT[08]
[INT_SOURCE_GRP2:B0 0x25]
No
Stop CCA?
Yes
TRX_OFF issue
[RF_STATUS:B0 0x6C]
END
108/140
FEDL7396A/B/E-07
ML7396A/B/E
●Continuous mode
CCA continuous mode will be executed by issueing RX_ON by [RF_STATUS:B0 0x6C] register after setting CCA_EN
([CCA_CNTRL:B0 0x15(4)])=0b1, CCA_IDLE_EN ([CCA_CNTRL:B0 0x15(3)])=0b0 and CCA_LOOP_START
([CCA_CNTRL:B0 0x15(5)])=0b1. In this mode, CCA continues until CCA_LOOP_STOP ([CCA_CNTRL:B0 0x15(6)])
=0b1 is set. In this mode, CCA_DONE ([CCA_CNTRL: B0 0x15(2)]) will not be 0b1 and CCA completion interrupt
(INT[08] group2) is not generated. During CCA execution, CCA_RSLT[1:0] ([CCA_CNTRL:B0 0x15(1-0)]) and
CCA_PROG[9:0] ([CCA_PROG_L/H:B0 0x19(7-0)/1A(1-0)]) are constantly updated. The value will be kept by setting
CCA_LOOP_STOP=0b1.
START
CCA setting
[CCA_CNTRL:B0 0x15(5-3)]
CCA_LOOP_START=0b1
CCA_EN=0b1
CCA_IDLE_EN=0b0
CCA start
RX_ON issue
[RF_STATUS:B0 0x6C]
No
RX_ON completion (INT[10]) ?
[INT_SOURCE_GRP2:B0 0x25]
* RF state transition (RX_ON) completion can
be confirmed by [RF_STATU:B0 0x0B] =
0x66
Yes
No
ED_DONE=0b1?
[ED_CNTRL:B0 0x1B(4)]
Yes
No
Stop CCA?
Yes
CCA stop
Set CCA_LOOP_STOP=0b1
[CCA_CNTRL:B0 0x15(4)]
Read CCA result
CCA_RSLT[1:0] ([CCA_CNTRL:B0 0x15(1-0)])
CCA_PROG[9:0] ([CCA_PROG_L/H:B0 0x19/1A])
* CCA result can be read during CCA.
Note:
CCA results before RX_ON are invalid.
(last value). Please read the valu after
RX_ON and ED_DONE=0b1.
TRX_OFF issue
[RF_STATUS:B0 0x6C]
END
109/140
FEDL7396A/B/E-07
ML7396A/B/E
●IDLE detection mode
CCA is continuously executed until IDLE is detected. CCA (IDLE detection mode) will be executing by setting RX_ON by
[RF_STATUS:B0 0x6C] register after setting CCA_EN ([CCA_CNTRL:B0 0x15(4)])=0b1, CCA_IDLE_EN
([CCA_CNTRL:B0 0x15(3)])=0b1 and CCA_LOOP_START ([CCA_CNTRL:B0 0x15(5)])=0b0..
START
CCA setting
[CCA_CNTRL:B0 0x15(5-3)]
CCA_LOOP_START=0b0
CCA_EN=0b1
CCA_IDLE_EN=0b1
RX_ON issue
CCA start
[RF_STATUS:B0 0x6C]
No
CCA completion (INT[08]) ?
[INT_SOURCE_GRP2:B0 0x25]
Yes: IDLE detection
Clear INT[08]
[INT_SOURCE_GRP2:B0 0x25]
END
110/140
FEDL7396A/B/E-07
ML7396A/B/E
In the below condition, CCA (IDLE detection mode) will be executed automatically.
1. When set 0b1 to ting CCA_AUTO_EN ([CCA_CNTRL:B0 0x15(7)]), CCA (IDLE detection mode) will be executed
after receiving Ack request packet.
●Internal operation is colored yellow
START
Set CCA_AUTO_EN=0b1
[CCA_CNTRL:B0 0x15(7)]
RX_ON issue
[RF_STATUS:B0 0x6C]
Receiving packet with
Ack request
* Please refer to the “AUTO_ACK function”.
Rx completion
Automatic execution
CCA (Idle detection mode)
execution
No
CCA completion (INT[08]) ?
[INT_SOURCE_GRP2:B0 0x25]
CCA result should be read to determine
CCA completion interrupt occues by
IDLE detection or CCA abort timer
completion.
Yes
CCA_RSLT[1:0]=0b00?
No
[CCA_CNTRL:B0 0x15(1-0)]
Yes: IDLE detection
Clear INT[08]
[INT_SOURCE_GRP2:B0 0x25]
TX_ON issue
Clear INT[08]
[INT_SOURCE_GRP2:B0 0x25]
Automatic
execution
END
Auto Ack ready interrupt
(INT[24]) generation
[INT_SOURCE_GRP4:B0 0x27]
END
111/140
FEDL7396A/B/E-07
ML7396A/B/E
2.
When Address Filtering function is enabled by set 0b1 to one of bit4-0 in [ADDFIL_CNTRL:B2 0x60] register, and if
ADDFIL_IDLE_DET ([PACKET_MODE_SET:B0 0x45(0)]) =0b1, CCA (IDLE detection mode) will be executed
after discardingRx data.
●Internal operation is colored yellow
START
Address filtering setting
[PACKET_MODE_SET:B0 0x45(0)]
[ADDFIL_CNTRL:B2 x60(4-0)]
RX_ON issue
[RF_STATUS:B0 0x6C]
Receiving packet with
unmatched address
* Please refer to the “Address filtering function”
Packet discard completion
interrupt (INT[03]) generation
[INT_SOURCE_GRP1:B0 0x24]
CCA (Idle detection mode)
execution
No
CCA completion (INT[08]) ?
[INT_SOURCE_GRP2:B0 0x25]
Automatic execution
* CRC error interrupt (INT[20]/[21] group3) may
be generated. For details of interrupt timing,
please refer to the “Address filtering function”.
Yes
Clear INT[08]
[INT_SOURCE_GRP2:B0 0x25]
END
112/140
FEDL7396A/B/E-07
ML7396A/B/E
●2 diversity operation
After setting 2DIV_EN ([2DIV_CNTRL: B0 0x71(0)])=0b1, issuing RX_ON by [RF_STATUS:B0 0x6C] register. Antennas
are switched to acquire each ED value, the antenna with higher ED value will be automatically selected.
ML7396 supports recovering function from incorrect diversity completion caused by errornous detection due to thermal noize,
After dicersity search completion, if preamble can not be detected until antenna search timer expiration, ML7396 judges the
previous diversity search completion is incorrect and resume diversity operation automatically.
When resume diversity operation for next packet receiving, please clear RX completion interrupt (INT[18]/[19] group3) and
Diversity search completion interrupt (INT[09] group2). For details, please refer to “Diversity function”.
ED values ([ANT1_ED:B0 0x73], [ANT2_ED:B0 0x74] registers) from diversityantennas and the diversity result
([2DIV_RSLT:B0 0x72(1-0)]) will be cleard when clearing Diversity search completion interrpy, clearing RX completion or
Diversity resume by errornous detection. ED values and diversity result should be read before clearing RX completion
interrupt.
START
Set 2DIV_EN=0b1
[2DIV_CNTRL:B0 0x71(0)]
Masking INT[09]
[INT EN GRP2:B0 0x2B ]
RX_ON issue
[RF_STATUS:B0 0x6C]
No
* If set 2DIV_EN=0b1 after issuing RX_ON, diversity
will be executed after search timer completion defined
by [2DIV_SEARCH:B0 0x6F] register.
If SFD is detected while seatch timer counting,
diversity will not be executed and keep receiving.
RX completion (INT[18]/[19])?
[INT_SOURCE_GRP3:B0 0x26]
Yes
Read diversity result
[2DIV_RSLT:B0 0x72(1-0)]
[ANT1_ED:B0 0x73]
[ANT2_ED:B0 0x74]
Clear INT[18] or [19]
[INT_SOURCE_GRP3:B0 0x26]
Clear INT[09]
[INT_SOURCE_GRP2:B0 0x25]
Yes
* Diversity search completion interrupt (INT[09]
group2) should be cleard at same timing of RX
completion interrupt clearance.
Next packet RX?
No
TRX_OFF issue
[RF_STATUS:B0 0x6C]
END
113/140
FEDL7396A/B/E-07
ML7396A/B/E
●CCA operation during diversity
If CCA is executed during diversity operation, there is a case CCA_DONE ([CCA_CNTRL:B0 0x15(2)]) is not notified and
keep CCA operation. When executing CCA during diversity, set CCA-competion wait timer (case1), or once disabling
diversity before CCA execution (case 2).
Case 1: Set CCA completion wait timer
START
Set 2DIV_EN=0b1
[2DIV_CNTRL:B0 0x71(0)]
Masking INT[09]
In IEEE standard, random buck off time
is required to resume CCA. However,
ML7396 family does not have rundum
back off time generator.
[INT EN GRP2:B0 0x2B ]
RX_ON issue
[RF_STATUS:B0 0x6C]
CCA start
CCA-completion
wait timer start
Set CCA_EN=0b1
[CCA_CNTRL:B0 0x15(4)]
No
CCA completion (INT[08])?
[INT_SOURCE_GRP2:B0 0x25]
No
CCA-completion wait
timer expiration?
Yes
Yes
Set CCA_EN=0b0
[CCA_CNTRL:B0 0x15(4)]
Read CCA_RSLT[1:0]
[CCA_CNTRL:B0 0x15(1-0)]
Clear INT[08]
[INT_SOURCE_GRP2:B0 0x25]
Resume CCA?
Yes
No
END
114/140
FEDL7396A/B/E-07
ML7396A/B/E
Case 2: Disbleing diversity before CCA execution
START
Set 2DIV_EN=0b1
[2DIV_CNTRL:B0 0x71(0)]
Masking INT[09]
[INT EN GRP2:B0 0x2B ]
RX_ON issue
[RF_STATUS:B0 0x6C]
Set CCA_EN=0b1
[CCA_CNTRL:B0 0x15(4)]
Wait receiving packet
Set 2DIV_EN=0b0
[2DIV_CNTRL:B0 0x71(0)]
PHY reset issue
* Alternatively,
1. Force_TRX_OFF issue
2. Set CCA_EN=0b1
3. RX_ON issue
[RST_SET:B0 0x01]
In IEEE standard, random buck off time
is required to resume CCA. However,
ML7396 family does not have rundum
back off time generator.
Set TX_ANT_EN
Forced antenna setting
during CCA
[2DIV_RSLT:B0 0x72(5)]
Set CCA_EN=0b1
[CCA_CNTRL:B0 0x15(4)]
No
CCA completion (INT[08])?
[INT_SOURCE_GRP2:B0 0x25]
Yes
Read CCA_RSLT[1:0]
CCA operation
[CCA_CNTRL:B0 0x15(1-0)]
Clear INT[08]
[INT_SOURCE_GRP2:B0 0x25]
Yes
Resume CCA?
No
END
115/140
FEDL7396A/B/E-07
ML7396A/B/E
●Error process
●CRC Error
Case 1: CRC error occurs due to bit error
If CRC error occurs due to bit error, no need to read out Rx data from FIFO. By issuing PHY reset by [RST_SET:B0 0x01]
register or FIFO clear by [INT_SOURCE_GRP1:B0 0x24] register, receiving status can be maintained.
For details of FIFO clear, please refer to “FIFO clear” in “Flow Charts”.
Case 2: Out-of-sync detection after SFD detection (During Length, Data, CRC field receiving)
If out-of-syn is detected after SFD detection, CRC error interrupt (INT[20]/[21] group3) will be notified. However RX
completion interrput (INT[18]/[19] group3) will not be generated. If this case occurs, read Rx data that amount is specified
Length field from FIFO and then clearing CRC error interrpt.
START
RX_ON issue
[RF_STATUS:B0 0x6C]
RX completion (INT[18]/[19])?
No
[INT_SOURCE_GRP3:B0 0x26]
Yes
CRC error notification
([INT[20]/[21]]
CRC error notification
([INT[20]/[21]]
[INT_SOURCE_GRP2:B0 0x25]
[INT_SOURCE_GRP2:B0 0x25]
From RX flowchart
Read all Rx data?
Yes
Read RX data from FIFO
[RD_RX_FIFO:B0 0x7F]
No
PHY reset issue
[RST_SET:B0 0x01]
or
Clear INT[20] or [21]
[INT_SOURCE_GRP3:B0 0x26]
Clear INT[20]/[21]
[INT_SOURCE_GRP3:B0 0x26]
Note:
Be sure to clear the correct FIFO bank.
When issuing PHY reset, both FIFOs
are cleard.
Yes
Next packet RX?
No
TRX_OFF issue
[RF_STATUS:B0 0x6C]
END
116/140
FEDL7396A/B/E-07
ML7396A/B/E
●TX FIFO Access Error
If one of the following conditions is met, TX FIFO access error interrupt (INT[15] group2) will be generated.
● The 3rd packet data is written to a FIFO when the transmitting data remain in both FIFO0 and FIFO1.
● Data write overflow occurs to a FIFO.
● No TX data in the TX_FIFO during TX data transimission.
When TX FIFO acccess error interrupt occurs, issuing TRX_OFF after TX completion interrupt(INT[16]/[17] group3) is
recognized, or issueing Force_TRX_OFF by [RF_STATUS:B0 0x0A] register without waiting for TX completion interrupt.
After that, clearing TX completion interrupt and TX FIFO access error interrrput..
If TX FIFO access error occurs, subquent TX data will be inverted. CRC error should be detected at rexeiver side even if
TRX_OFF is issued when TX completion interrupt detected.
START
TX setting
[FAST_TX_SET:B0 0x6A]
AUTO_TX=0b1 [PACKET_MODE_SET:B0 0x45(2)]
[TX_ALARM_LH:B0 0x35
[TX_ALARM_HL:B0 0x36]
Write TX data to FIFO
[WR_TX_FIFO:B0 0x7E]
TX FIFO access error?
INT[15]
* If data written to FIFO exceed FAST_TX_TRG[7:0] in
[FAST_TX_SET:B0 0x6a] register, TX will start.
(Length is included in the data length written to FIFO)
No
[INT SOURCE GRP2:B0 0x25]
Yes
Terminate TX immediately?
No
No
TX completion (INT[16]/[17])?
[INT_SOURCE_GRP3:B0 0x26]
Yes
TRX_OFF issue
[RF_STATUS:B0 0x6C]
Normat TX
Go to TX flowchart
Yes
AUTO_TX=0b0
[PACKET_MODE_SET:B0 0x45(2)]
Force_TRX_OFF issue
[RF_STATUS:B0 0x6C]
PHY reset issue
[RST_SET:B0 0x01]
AUTO_TX=0b0
[PACKET_MODE_SET:B0 0x45(2)]
Clear INT[16] or [17]
[INT_SOURCE_GRP3:B0 0x26]
No
Yes
Clear INT[15]
AUTO_TX has been set?
[INT_SOURCE_GRP2:B0 0x25]
Yes
Next packet TX?
No
TRX_OFF issue
[RF_STATUS:B0 0x6C]
END
117/140
FEDL7396A/B/E-07
ML7396A/B/E
●RX FIFO Access Error
If one of the following conditions is met, RX FIFO access error interrupt (INT[14] group2) will be generated.
● Receiving the 3rd packet when the receiving data remain in both FIFO0 and FIFO1.
● RX data overflow occurs to RX_FIFO (Overrun)
● Read RX_FIFO during no data in the RX_FIFO (Underrun)
When RX FIFO access error interrupt occurs, after RX completion interrupt (INT[18]/[19] group3) is
recognized, issuing PHY reset by [RST_SET:B0 0x01] register or FIFO clear by [INT_SOURCE_GRP1:B0
0x24] register. After that, clearing RX completion interrupt and RX FIFO access error interrupt.
After receiving 2 packets, by setting CLK1_EN ([CLK_SET:B0 0x02(1)] = 0b0, RX FIFO access error can be
avoid.
START
RX setting
[RX_ALARM_LH:B0 0x37]
[RX_ALARM_HL:B0 0x38]
RX_ON issue
[RF_STATUS:B0 0x6C]
RX process
Refer to RX flowchart
(packet mode)
RX FIFO access error notification
INT[14]
[INT_SOURCE_GRP2:B0 0x25]
PHY reset issue
[RST_SET:B0 0x01]
or
Clear FIFO
When interrupt caused by overrun, or
underrun, FIFO clear is possible.
[INT_SOURCE_GRP1:B0 0x24]
Clear interrupts
INT[18],[20] or INT[19].[21]
[INT_SOURCE_GRP3:B0 0x26]
Clear interrupts
INT[14]
[INT_SOURCE_GRP2:B0 0x25]
Yes
Next packet TX?
No
TRX_OFF issue
[RF_STATUS:B0 0x6C]
END
118/140
FEDL7396A/B/E-07
ML7396A/B/E
●PLL Unlock Detection
○ TX
During TX, if PLL unlock is detected, PLL unlock interrupt (INT[25] group4) will be generated. When PLL unlock
interrupt occurs, Force_TRX_OFF is automaticcally issued and move to IDLE state.
Before next TX operation, issuing PHY reset by [RST_SET:B0 0x01] register and clearing PLL unlock interrupt should be
required.
●Internal operation is colored yellow
START
Write TX data to FIFO
[WR_TX_FIFO:B0 0x7E]
TX_ON issue
[RF_STATUS:B0 0x6C]
PLL unlock (INT[25])?
No
[INT_SOURCE_GRP4:B0 0x27]
Yes
Force TRX_OFF issue
Automatic execution
Normat TX
Go to TX flowchart
PHY reset issue
[RST_SET:B0 0x01]
Clear INT[25]
[INT_SOURCE_GRP4:B0 0x27]
Yes
Next packet TX?
No
END
119/140
FEDL7396A/B/E-07
ML7396A/B/E
○ RX
During RX, if PLL unlock is detected, PLL unlock interrupt (INT[25] group4) will be generated. During RX, even if PLL
unlock is detected, RX_ON state is maintained (do not move to IDLE state).
Before next RX operation, issuing PHY reset by [RST_SET:B0 0x01] register and clearing PLL unlock interrupt should be
required.
START
RX_ON issue
[RF_STATUS:B0 0x6C]
PLL unlock (INT[25])?
No
[INT_SOURCE_GRP4:B0 0x27]
Yes
PHY reset issue
[RST_SET:B0 0x01]
Normat RX
Go to RX flowchart
Clear INT[25]
[INT_SOURCE_GRP4:B0 0x27]
Yes
Next packet RX?
No
END
120/140
FEDL7396A/B/E-07
ML7396A/B/E
●Data Rate Change sequence
When changing data rate during operation, data rate should be set in TRX_OFF state. Issuing MODEM reset by [RST_SET: B0
0x01] register is required after data rate change. If not issuing MODEM reset, ML7396 can not transmit or receive correctlly.
TX_ON or RX_ON state
START
TRX_OFF issue
[RF_STATUS:B0 0x6C]
Changing Data Rate
MODEM reset issue
* Relating registers are as below;
[DATA_SET:B0 0x47]
[RATE_SET1:B0 0x04]
[RATE_SET2:B0 0x05]
[RST_SET:B0 0x01]
END
121/140
FEDL7396A/B/E-07
ML7396A/B/E
■Timing Chart
The followings are operation timing of major functions.
[Note]
Bold characters indicate pins relative signals. Non bold characters indicate internal signal.
●Start up
Regfulator voltage wake up time
VDD
1.5ms
RESETN
Clock stabilization time from sleep state
OSC enable
Reg. enable
660μs
CLK_INIT_DONE
INT[00] interrupt
[INT_SOURCE_GRP1:B0 0x24]
SINTN
SPI access
possible
Whole operation possible
SPI access possible except for BANK1 and FIFO
RF operation possible
(RF regulator stabilization time)
122/140
FEDL7396A/B/E-07
ML7396A/B/E
●TX
Conditions
•Symbol rate:
100 kbps
•Preamble length: 4 byte
•SFD length:
2 byte
•Length:
2 byte
•CRC:
8 bit (1 byte)
•Data length:
100 byte
•Ramp control:
On
* Lamp control timing can be adjusted by the [2DIV_GAIN_CNTRL:B0 0x6E], [RX_ON_ADJ2:B1 0x3F] and
[TX_OFF_ADJ1:B1 0x55] registers. For more details, please refer to the “Ramp control function”.
FIFO write
TX_ON command
SET_TRX[3:0] = 0b1001
([RF_STATUS:B0 0x6c(3-0)])
TRX_OFF command
SET_TRX[3:0] = 0b1000
([RF_STATUS:B0 0x6c(3-0)]),
SCEN
Host MCU
interrupt processing
period
TX complete
PD_DATA_CFM0/1
[PD_DATA_REQ:B0 0x28]
RF status
TRX_OFF(IDLE)
TRX_OFF(IDLE)
TX_ON
PLL enable
18μs
TX enable
(TX_ON)
27μs
PA enable
(PA_ON)
6μs
44.4μs [PA_ON_ADJ:B2 x1E]
DATA enable
52μs
348μs
(Num TX symbol +3) * Symbol duration
((4+2+2+100+1)*8+3)*10μs = 8,750 μs
3μs
55μs
Air
INT[10] interrupt
[INT_SOURCE_GRP2:B0 0x25]
INT[16]/INT[17] interrupt
[INT_SOURCE_GRP3:B0 0x26]
SINTN
INT[22]/INT[23] interrupt
[INT_SOURCE_GRP3:B0 0x26]
INT[10] interrupt
[INT_SOURCE_GRP2:B0 0x25]
123/140
FEDL7396A/B/E-07
ML7396A/B/E
●RX (without CCA)
Conditions
•Symbol rate:
•Preamble length:
•SFD length:
•Length:
•CRC:
•Data length:
•Ramp control:
100 kbps
4 byte
2 byte
2 byte
8 bit (1 byte)
100 byte
On
RX_ON command
SET_TRX[3:0] =0b0110
([RF_STATUS:B0 0x6c(3-0)])
Read FIFO
TRX_OFF command
SET_TRX[3:0] =0b1000
([RF_STATUS:B0 0x6c(3-0)])
SCEN
(100+1)*8*10μs=8,080μs
2*8*10μs=160μs
Data RX complete
PD_DATA_IND0/1
[PD_DATA_IND: B0 0x29]
RF status
TRX_OFF(IDLE)
TRX_OFF(IDLE)
RX_ON
PLL enable
18μs
RX enable
1.11μs [RXD_ADJ:B2 0x24]
RXD enable
6μs
115.5μs
(17.78μs+[RX_ON_ADJ:B2 0x22])
2μs
Demodulated
data
PB
SFD
Length
Data
1μs
CRC
FIFO write enable
PSDU fileld data is stored into FIFO
(byte by byte)
FIFO read enable
(SPI to FIFO)
INT[11] interrupt
[INT_SOURCE_GRP2: B0 0x25]
INT[10] interrupt
[INT_SOURCE_GRP2:B0 0x25]
SINTN
INT[10] interrupt
[INT_SOURCE_GRP2:B0 0x25]
INT[18]/INT[19] or
INT[20]/INT[21]
[INT_SOURCE_GRP3: B0 0x26]
RX data can be read from a FIFO.
The last data can be read after PDDATA_IND0/1=0b1.
The shortest read out time will be approx 8,240μs+ 16 SCLK cycles
from SFD detection (INT[11] , group2).
124/140
FEDL7396A/B/E-07
ML7396A/B/E
●RX (with CCA)
Conditions
•Symbol rate:
•Preamble length:
•SFD length:
•Length:
•CRC:
•Data length:
•Ramp control:
100 kbps
4 byte
2 byte
2 byte
8 bit (1 byte)
100 byte
On
RX_ON command
SET_TRX[3:0] =0b0110
([RF_STATUS:B0 0x6c(3-0)])
Read FIFO
TRX_OFF command
SET_TRX[3:0] =0b1000
([RF_STATUS:B0 0x6c(3-0)])
SCEN
(100+1)*8*10μs=8,080μs
2*8*10μs=160μs
Data RX complete
PDDATA_IND0/1
[PD_DATA_IND:B0 0x29]
RF status
TRX_OFF(IDLE)
TRX_OFF(IDLE)
RX_ON
PLL enable
18μs
RX enable
1.11μs [RXD_ADJ:B2 0x24]
RXD enable
6μs
115.5μs
(17.78μs+[RX_ON_ADJ:B2 0x22])
CCA completion
1μs
2μs
CCA enable
Data can be received even during CCA.
Demodulated data
PB
SFD Length
Data CRC
FIFO write enable
PSDU field data is stored into FIFO(byte
by byte)
FIFO read enable
(SPI to FIFO)
INT[8] interrupt
[INT_SOURCE_GRP2:B0 0x25]
INT[10] interrupt
[INT_SOURCE_GRP2:B0 0x25]
SINTN
INT[10] interrupt
[INT_SOURCE_GRP2:B0 0x25]
INT[11] interrupt
[INT_SOURCE_GRP2: B0 0x25]
INT[18]/INT[19] or
INT[20]/INT[21] interrupt
[INT_SOURCE_GRP3:B0 0x26]
RX DATA can be read from a FIFO.
The last data can be read after PD_DATA_IND0/1=0b1.
The shortest read out time will be approx 8,240μs+ 16 SCLK cycles
from SFD detection (INT[11], group2).
125/140
FEDL7396A/B/E-07
ML7396A/B/E
●Transition from TX to RX
Condition:
•Ramp control: On
SCEN
RF status
TX_ON
DATA enable
RX_ON
3μs
PA_enable
53μs
TX enable
48μs
RX enable
97.68μs [RX_ON_ADJ:B2x22]
1.1μs
SINTN
INT[10] interrupt
[INT_SOURCE_GRP2:B0 0x25]
●Transition from RX to TX mode
Condition:
•Ramp control: On
TX_ON command
SET_TRX[3:0] =0b1001
([RF STATUS:B0 0x6c(3-0)])
SCEN
RF status
RX_ON
TX_ON
RX enable
3μs
TX enable
PA enable
DATA enable
10μs
44.4μs [PA_ON_ADJ:B2 0x1E]
30μs
1.1μs
SINTN
INT[10] interrupt
[INT_SOURCE_GRP2:B0 0x25]
126/140
FEDL7396A/B/E-07
ML7396A/B/E
●Transition from TX to SLEEP
Condition:
•Ramp control: On
SLEEP command
SLEEP_EN ([CLK_SET:B0 0x02(5)]) =0b1
SCEN
SLEEP enable
RF status
TX_ON
TRX_OFF (SLEEP)
PA enable
54μs
TX enable
348μs
PLL enable
6μs
OSC enable
9μs
Reg. enable
9μs
1.1μs
Switch to Sub-regulator
SINTN
INT[10] interrupt
[INT_SOURCE_GRP2:B0 0x25]
●Transition from RX to SLEEP
Condition:
•Ramp control: On
SLEEP command
SLEEP_EN ([CLK_SET:B0 0x02(5)]) =0b1
SCEN
SLEEP enable
RF status
RX_ON
TRX_OFF (automatic transition)
RX enable
3μs
PLL enable
6μs
OSC enable
Reg. enable
9μs
9μs
1.1μs
Switch to Sub-regulator
SINTN
INT[10] interrupt
[INT_SOURCE_GRP2:B0 0x25]
127/140
FEDL7396A/B/E-07
ML7396A/B/E
●Transition from SLEEP to IDLE
SLEEP exit command
SLEEP_EN ([CLK_SET:B0 0x02(5)]) =0b0
SCEN
SLEEP enable
RF status
TRX_OFF
OSC enable
Reg. enable
Clock stabilization time
from SLEEP state
RF stabilization time
from SLEEP state.
660μs
CLK_INIT_DONE
1500μs
REG_INIT_DONE
SPI access
possible
RF operation possible
Baseband operation possible
(FIFO and RF control register can be set)
SINTN
INT[00] interrupt
[INT_SOURCE_GRP1:B0 0x24]
Note: When using TCXO, enabling TCXO (clock) before issuing SLEEP exit command. If enabling TCXO after issuing
SLEEP exit command, the start time will delay for a certain time.
●Transition from IDLE to SLEEP
SLEEP command
SLEEP_EN ([CLK_SET:B0 0x02(5)]) = 0b1
SCEN
SLEEP enable
RF status
TRX_OFF
OSC enable
Reg. enable
CLK_INIT_DONE
REG_INIT_DONE
SINTN
Note: If disabling TCXO during SLEEP, wait more than 4μs after issuing SLEEP command, then disabling TCXO (clock).
128/140
FEDL7396A/B/E-07
ML7396A/B/E
●VCO Calibration
Calibration start command
VC_CAL_START ([VCO_CAL_START:B1 0x1d (0)]) =0b1
SCEN
REG_INIT_DONE
CLK_INIT_DONE
VCO_CAL_STA
870 to 4160μs
VCAL interrupt
INT[02] interrupt
[INT_SOURCE_GRP1:B0 0x24]
SINTN
Calibration period
RF regulator wake up time.
•from SLEEP 1.1ms
•from IDLE 0ms
129/140
FEDL7396A/B/E-07
ML7396A/B/E
■About FCC Support
ML7396A (915MHz band) complies with FCC PART 15. When the outputpowe is -1dBm or less, PART 15.249 is applied, and
when the output power is +30dBm or less, PART 15.247 is applied. Spurious emissions should comply with PART 15.209.
PART 15.247 requires the frequency hopping or the wideband digital modulation. For details of the frequency hopping, please
refer to the "About frequency hopping" below. For details of the wideband digital modulation, please refer to the " Initial register
setting " file.
●About frequency hopping (FHSS: Frequency Hopping Spread Spectrum)
According to the FCC (United States radio act) Part 15.247, the FHSS system which 20dB bandwidth is less than 250 kHz,
should have 50 or more hopping channels. If 20dB bandwidth is 250 kHz or more, 25 or more hopping channels should be
supported. And the channel occupation time should be limited to 400ms at a maximum.
The following examples show how to control and set registers in order to comply with above regulations.
For details of register settings, please refer to the "Initial registers setting" file.
• Frequency switch flow during TX
(0) TX completion (TX_ON)
(1) Transition to TRX_OFF or RX_ON state by SET_TRX[3:0] ([RF_STATUS:B0 0x6C(3-0)]).
(2) Switching frequency by [CH0_FL:B0 0x48], [CH0_FM:B0 0x49] and [CH0_FH:B0 0x4A] registers.
(3) Issuing TX_ON command by SET_TRX[3:0].
Repeat (0) to (3).
• Frequency switch flow during RX
(0) RX completion (RX_ON)
(1) Masking PLL unlock interrupt by INT_EN[25] ([INT_EN_GRP4:B0 0x2D(1)]) =0b0.
(2) Switching frequency by [CH0_FL:B0 0x48], [CH0_FM:B0 0x49] and [CH0_FH:B0 0x4A] registers.
(3) Wait 100μs. (PLL lock period)
(4) Clear the PLL unlock interrupt (INT[25] group4), and enable the interrupt by INT_EN[25] =0b1
(5) Receive data
Repeat (0) to (5).
* PLL unlock interrupt may be detected during frequency switch.
It is recommended to masking the PLL unlock interrupt for 100μs during frequency switch as shown in (1) to (4).
The following examples show how to control the frequency hopping system.
•Control example 1. TX equipment transmits a long term preamble, and the RX equipment scans channels to detect a preamble
TX equipment hops the frequency according to the hopping pattern. And the channel occupation time should be less than 400ms
to comply with the regulation.
RX equipment does not know the using channel transmitting preamble, and so scans all channels for detecting preamble. The
preamble transmitting period should be longer than the channel scan period on the RX equipment. For details of the channel scan
flow, please refer to the flow chart shown later.
The one channel scan time can be calculated as "preamble search period (36bits / data rate) + PLL lock period (100μs)".
The following table shows the channel scan period for each data rate. Please set an appropriate preamble length according to the
following table. The preamble length can be set by [TX_PR_LEN:B0 0x42] register. (max. 255 bytes)
130/140
FEDL7396A/B/E-07
ML7396A/B/E
Table. Channel scan period for each data rate
data rate
255 byte PB
transmitting period
Required period for
one channel scan
[kbps]
10
20
40
50
100
150
200
400
[ms]
204.0
102.0
51.0
40.8
20.4
13.6
10.2
5.1
[ms]
3.70
1.90
1.00
0.82
0.46
0.34
0.28
0.19
Required period for
all channels scan
[ms]
25ch
50ch
92.5
185.0
47.5
95.0
25.0
50.0
20.5
41.0
11.5
23.0
8.5
17.0
7.0
14.0
4.8
9.5
Availability
25ch
○
○
○
○
○
○
○
○
50ch
○
○
○
×
×
×
×
×
* This table does not take into account the register access time.
* This control method cannot be applied under the "×" condition, since the all channel scanning period exceeds the preamble
transmission period.
Control example 1 flowchart.
START
Set preamble
[TX_PR_LEN:B0 0x42]
Transmit?
Yes
No
Hop?
No
Receive?
No
Yes
Channel scan
Yes
Switch frequency
Transmit data
Receive data
131/140
FEDL7396A/B/E-07
ML7396A/B/E
Details of channel scan flow.
Channel scan start
Masking PLL unlock interrupt
[INT_EN_GRP4:B0 0x2D(1)]
Set frequency
[CH0_FL:B0 0x48]
[CH0_FM:B0 0x49]
[CH0_FH:B0 0x4A]
Reset MODEM
[RST_SET:B0 0x01(1)
Wait
(36 bits / data rate + 100μs)
Clear/enable PLL unlock interrupt
[INT_SOURCE_GRP4:B0 0x27(1)]
[INT_RN_GRP4:B0 0x2D(1)]
No
Detect preamble?
[PHY_STATE:B0 0x0F(5)]
Yes
End of channel scan
132/140
FEDL7396A/B/E-07
ML7396A/B/E
•Control example 2. Use beacon for synchronization and common hopping pattern
In this example, both master and slave nodes use the same synchronized hopping pattern.
The master node periodically transmits a beacon on pre-defined channel. The slave node receives the beacon for synchronizing
the hopping pattern.
The slave node waits for a beacon at the pre-defined channel. Once completing synchronization, both nodes hop frequencies
according to the common hopping pattern. The hopping interval should be “the beacon interval divided by the number of hopping
channels” and required less than 400ms. When transmitting, the transmitting period should be calculated from the data
length, making sure to avoid spanning hopping intervals.
When using multiple hopping patterns, adding sequential numbers (pattern number) on each hopping pattern. And the master
node attaches the using pattern number into a beacon.
This hopping method is available regardless of the data rate, the diversity search setting, and the number of hopping channels.
133/140
FEDL7396A/B/E-07
ML7396A/B/E
[Master node flowchart]
START
Starting
Set the beacon
transmitting channel
Set the hopping
pattern number
Beacon transmission
No
Hopping timer
expiration?
Yes
Hopping
Transmit?
No
Yes
No
Receive?
No
Yes
Data send period < Remaining time
before the hopping timer expiration?
Yes
WAIT until the next hopping
timing
No
Transmit data
Receive data
Hopping timer
expiration?
Yes
No
Beacon timer
expiration?
Yes
134/140
FEDL7396A/B/E-07
ML7396A/B/E
[Slave node flowchart]
START
Starting
Set the beacon
receiving channel
No
Beacon received?
Yes
No
Hopping timer
expiration?
Yes
Hopping
Transmit?
No
Yes
Receive?
No
Yes
Data send period < Remaining time
before the hopping timer expiration?
No
Yes
WAIT until the next hopping
timing
No
Transmit data
Receive data
Hopping timer
expiration?
Yes
No
Beacon timer
expiration?
Yes
135/140
FEDL7396A/B/E-07
ML7396A/B/E
■Application Circuit Example
Here is a circuit example for 915MHz/920MHz, 13dBm, and up to 200kbps.
10μF decoupling capacitor should be placed to common 3.3V power pins .
MURATA LQW15series inductors are recommended.
For more details about designing information, please refer to the “ML7396 Family LSIs Hardware Design Manual”.
L1
C1
LPF1
915MHz
4.3nH
3.9pF
DEA160915LT-5038A
(TDK)
920MHz
3.9nH
4.3pF
0Ω
136/140
FEDL7396A/B/E-07
ML7396A/B/E
■Package Dimensions
Remarks for surface mount type package
Surface mount type package is very sensitive affected by heating from reflow process, humidity during storaging Therefore, in
case of reflow mounting process, please contact sales representative about product name, package name, number of pin, package
code and required reflow process condition (reflow method, temperature, number of reflow process), storage condition.
137/140
FEDL7396A/B/E-07
ML7396A/B/E
■Footprint Pattern (Recommendation)
138/140
FEDL7396A/B/E-07
ML7396A/B/E
■Revision History
Document
No.
Date
Page
Previous
Current
Edition
Edition
FEDL7396A B E-01
FEDL7396A_B_E-02
to -06
2013.02.27
–
–
–
–
–
FEDL7396A B E-07
2015.01.15
–
–
Description
Initial release (Draft version)
These versions are not released.
Official release (Base on FJDL7396A B E-07)
139/140
FEDL7396A/B/E-07
ML7396A/B/E
■NOTES
No copying or reproduction of this document, in part or in whole, is permitted without the consent of LAPIS Semiconductor Co.,
Ltd.
The content specified herein is subject to change for improvement without notice.
Examples of application circuits, circuit constants and any other information contained herein illustrate the standard usage and
operations of the Products. The peripheral conditions must be taken into account when designing circuits for mass production.
Great care was taken in ensuring the accuracy of the information specified in this document. However, should you incur any
damage arising from any inaccuracy or misprint of such information, LAPIS Semiconductor shall bear no responsibility for such
damage.
The technical information specified herein is intended only to show the typical functions of and examples of application circuits
for the Products. LAPIS Semiconductor does not grant you, explicitly or implicitly, any license to use or exercise intellectual
property or other rights held by LAPIS Semiconductor and other parties. LAPIS Semiconductor shall bear no responsibility
whatsoever for any dispute arising from the use of such technical information.
The Products specified in this document are intended to be used with general-use electronic equipment or devices (such as audio
visual equipment, office-automation equipment, communication devices, electronic appliances and amusement devices).
The Products specified in this document are not designed to be radiation tolerant.
While LAPIS Semiconductor always makes efforts to enhance the quality and reliability of its Products, a Product may fail or
malfunction for a variety of reasons.
Please be sure to implement in your equipment using the Products safety measures to guard against the possibility of physical
injury, fire or any other damage caused in the event of the failure of any Product, such as derating, redundancy, fire control and
fail-safe designs. LAPIS Semiconductor shall bear no responsibility whatsoever for your use of any Product outside of the
prescribed scope or not in accordance with the instruction manual.
The Products are not designed or manufactured to be used with any equipment, device or system which requires an extremely
high level of reliability the failure or malfunction of which may result in a direct threat to human life or create a risk of human
injury (such as a medical instrument, transportation equipment, aerospace machinery, nuclear-reactor controller, fuel-controller
or other safety device). LAPIS Semiconductor shall bear no responsibility in any way for use of any of the Products for the above
special purposes. If a Product is intended to be used for any such special purpose, please contact a ROHM sales representative
before purchasing.
If you intend to export or ship overseas any Product or technology specified herein that may be controlled under the Foreign
Exchange and the Foreign Trade Law, you will be required to obtain a license or permit under the Law.
Copyright 2013-2015 LAPIS Semiconductor Co., Ltd.
2-4-8 Shinyokohama, Kouhoku-ku,
Yokohama 222-8575, Japan
http://www.lapis-semi.com/en/
140/140
Similar pages