EM9304 [EMMICRO]

5.0 LOW-ENERGY COMPANION OR SOC;
EM9304
型号: EM9304
厂家: EM MICROELECTRONIC - MARIN SA    EM MICROELECTRONIC - MARIN SA
描述:

5.0 LOW-ENERGY COMPANION OR SOC

文件: 总67页 (文件大小:1285K)
中文:  中文翻译
下载:  下载PDF数据表文档文件
EM MICROELECTRONIC - MARIN SA  
EM9304  
OPTIMIZED  
5.0 LOW-ENERGY COMPANION OR SOC  
Description  
Main Features  
The EM9304 is a tiny, low-power, integrated circuit (IC)  
optimized for Bluetooth® 5.0 low energy enabled products. The  
flexible architecture of the EM9304 allows it to act as a  
companion IC to any ASIC or MCU-based product, or as a  
complete System-on-Chip (SoC). Custom applications can  
execute from one-time-programmable (OTP) memory, and  
digital peripherals (SPI or I2C) can be used to interface with  
external devices such as sensors, memory, display, or touch  
drivers. A floating point unit can be exploited to implement  
advanced algorithms such as sensor fusion.  
System-on-Chip:  
Energy efficient, industry standard, ARC EM4, 32-bit  
MCU running at 24MHz  
Floating-point unit for sensor processing  
136kB ROM including link layer and stack  
128kB OTP for parameters, profiles, and applications  
– 24MHz execution speed  
48kB instruction RAM and 28kB data RAM  
4, 8, or 20kB with selectable data retention  
Universal, sleep, and protocol timers  
I2C and SPI master interfaces  
Included in ROM is a Bluetooth 5.0 link layer with a Host  
Controller Interface (HCI), a Bluetooth stack with proprietary  
Application Controller Interface (ACI), several profiles, and  
over-the-air firmware (FOTA) updating routines. The Bluetooth  
low energy controller and host can be configured to support up  
to eight simultaneous connections. Secure connections and  
extended packet length are also supported.  
Up to 12 GPIO  
Bluetooth 5.0 Low Energy Technology:  
BT 5.0 Controller Subsystem (QD ID 93999)  
Bluetooth stack (QD ID 84268) in ROM  
SPI and UART HCI/ACI Transport Layers  
Up to eight simultaneous connections supported  
Extended PDU length and enhanced security  
Security Features:  
The EM9304 includes  
a
sophisticated on-chip power  
management system with automatic configuration for 1.5V or  
3V batteries. Current consumption is minimized for all modes  
of the application utilizing an efficient scheduler and memory  
manager. Several memory configuration options allow for  
optimum performance for any given application. A stable, low-  
power sleep oscillator (RC or crystal based) minimizes power  
consumption while in a connected state.  
True Random Number Generator  
AES-128 Hardware Encryption Engine  
Key Generation (ECC-P256)  
The EM9304 features a state-of-the-art 2.4GHz transceiver: an  
extremely  
low-power  
receiver  
with  
excellent  
Firmware Over-the-Air Updating  
sensitivity/selectivity, and a programmable transmitter for  
optimized output power and current consumption.  
Per application, function, or configuration  
Sophisticated Power Management System:  
Digital step-up/down DCDC operation  
Supports 1.5V and 3.0V batteries  
Scheduler and memory manager  
Low frequency RC or crystal oscillator time base  
Low Current Consumption at 3V:  
The PCB footprint and cost is minimized with a very low  
external component count and several package options. The  
circuit is offered in a WLCSP25 wafer level chip-scale package,  
a plastic QFN-28 package, and bare die/ wafer form. The  
device and reference design is qualified over the industrial  
temperature range.  
Customer support for PCB design, and FCC/CE certification  
are available. A hardware and software development kit are  
available, including commercially available tools with IDE and  
debugger. A website and forum are also available to help with  
your custom developments.  
3.0mA typical peak receiver current  
5.2mA typical peak transmitter current at 0.4dBm  
1.0µA connected sleep mode  
5nA chip disable mode  
High Performance RF:  
-94dBm Bluetooth low energy receiver sensitivity for  
1Mpbs operation and 37 byte payload  
-34 to +6.1dBm transmitter output power range  
Low Component Count and Cost:  
3 DC caps, 1 DCDC coil, 1 ferrite bead  
Single ended 50antenna pin (no balun)  
48MHz XTAL, 32kHz XTAL (optional)  
Packaging:  
QFN-28 (4x4mm), WLCSP25, and bare-die/wafer  
Industrial Operating Temperature Range: -40C to +85C  
Customer Support:  
Hardware, software development kits  
FCC/CE certification support  
Forum for hardware and software support  
1
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
EM9304  
Typical Applications  
Bluetooth low energy applications such as:  
Beacons  
3V o r 1.5V  
battery  
Wearables and Sports Equipment  
Healthcare Monitoring  
Remote Sensing  
Motion and Tracking Devices  
Home Automation  
Light Control Applications  
Wireless Mice and Keyboards  
Alarms and Security System  
Toys  
+
Sen so rs /  
Sen so r Hub  
DCDC  
passives  
-
POWER  
MANAGEMENT  
DIGITAL  
INTERFACE  
SENS1  
SENS2  
etc  
IO  
A/D  
EM9304  
CPU  
SUBSYSTEM  
2.4GHz  
RADIO  
Enabled by the mobile phone as access-point to the Internet.  
2.4GHz  
50 ohm  
Typical Application Diagrams  
The EM9304 is the ideal Bluetooth low energy companion IC for  
any MCU or ASIC application, as illustrated in Figure 1. It may  
be easily connected with:  
32kHz (opt)  
RF xtal  
Figure 2: Typical Application Schematic – EM9304  
Connected With Digital Sensors / Sensor Hubs  
-
-
-
standard 3V MCU’s within the very rich catalog of any  
microprocessor vendor;  
standard 1.5V MCU’s such as ultra-low-power watch  
microprocessors from EM Microelectronic;  
any custom sensor processing ASIC for customers  
requiring a simple add-on function.  
Package Information  
The versions below are considered standards and should be  
readily available. Please make sure to give the complete part  
number when ordering.  
3V o r 1.5V  
battery  
WLCSP25, 5x5 array, 0.4mm pitch, 2.3x2.2mm  
QFN-28, 0.4mm pitch, 4x4mm  
+
AppLication MCU /  
DCDC  
passives  
-
ASIC / SoC  
POWER  
MANAGEMENT  
Bare die in wafer format  
SPI  
UART  
DIGITAL  
INTERFACE  
MCU  
ANAL OG DIGITAL  
etc  
IO  
Please contact EM Microelectronic-Marin S.A. for more  
information.  
EM9304  
Sen so rs /  
Sen so r Hub  
CPU  
2.4GHz  
RADIO  
Product and Developer Support  
SUBSYSTEM  
SENS1  
SENS2  
etc  
IO  
2.4GHz  
50 ohm  
The following product support is available:  
A/D  
Hardware Development Kit (DVK)  
Software Development Kit (SDK)  
Getting Started guide and PC Tools  
32kHz (opt)  
RF xtal  
Figure 1: Typical Application Schematic – Bluetooth  
Low-Energy Companion IC to any MCU or ASIC  
Integrated Development Environment (IDE) for ARC  
Metaware and MetawareLite Tools  
Reference designs with schematics, PCB layouts,  
and bill-of-materials  
The EM9304 is a flexible solution which may also be used  
without an external MCU for simple applications such as  
beacons. As illustrated in Figure 2, it may be directly  
connected to external digital sensors which may exploit the  
EM9304’s internal 32-bit processing capability, or with sensor  
hubs such as from EM’s SENtral platform. Other applications  
using A/D converters, EEPROMs, display and/or touch  
interfaces can also be implemented.  
Developer forum for hardware and software support  
www.emdeveloper.com  
PCB Antenna Design Support  
FCC/CE Test Support  
The EM9304 can be supplied from a 3V battery (e.g. Lithium  
coin-cell). In such case, the DCDC converter is put into step-  
down configuration. The EM9304 can also be supplied from a  
1.5V battery (e.g. Alkaline, Silver-Oxide, or Zinc-Air single  
cells). In such case, the DCDC converter is put into step-up  
configuration.  
The Bluetooth word mark and logos are registered trademarks owned by the  
®
Bluetooth SIG, Inc. and any use of such marks by EM Microelectronic is under  
license. Other trademarks and trade names are those of their respective  
owners.  
Finally, configurations are also possible without the DCDC  
converter (no inductor required), for systems already with  
power management, or for systems that require the lowest bill  
of materials.  
2
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
EM9304  
Table of Contents  
List of Tables..........................................................................................................................................................................4  
List of Figures.........................................................................................................................................................................5  
1 Overview.....................................................................................................................................................................................6  
1.1 Introduction.......................................................................................................................................................................6  
1.2 Chip Architecture..............................................................................................................................................................7  
1.3 RF Description..................................................................................................................................................................8  
1.4 Power Management Description ......................................................................................................................................9  
1.5 Operating Modes............................................................................................................................................................11  
1.6 Pin Description...............................................................................................................................................................11  
1.7 GPIO Configuration........................................................................................................................................................11  
1.8 QFN Reference Schematics and External Components ................................................................................................12  
1.9 WLCSP Reference Schematics and External Components ...........................................................................................14  
1.10 Related Documents......................................................................................................................................................15  
2 Electrical Specifications..........................................................................................................................................................16  
2.1 Absolute Maximum Ratings............................................................................................................................................16  
2.2 Handling Procedures......................................................................................................................................................16  
2.3 General Operating Conditions........................................................................................................................................16  
2.4 Electrical Characteristics................................................................................................................................................17  
2.5 DC Characteristics .........................................................................................................................................................17  
2.5.1 DCDC Step-Down Configuration.........................................................................................................................17  
2.5.2 DCDC Step-Up Configuration.............................................................................................................................17  
2.5.3 DCDC Off Configuration and External DCDC Configuration...............................................................................18  
2.6 Digital Pin Characteristics ..............................................................................................................................................18  
2.6.1 GPIO Pin Characteristics....................................................................................................................................18  
2.6.2 I2C Timing .........................................................................................................................................................19  
2.6.3 SPI Timing .........................................................................................................................................................19  
2.6.4 Enable Pin Characteristics..................................................................................................................................21  
2.7 Power Management Characteristics...............................................................................................................................21  
2.7.1 Low Frequency Crystal Oscillator Specifications ................................................................................................21  
2.7.2 Timing Characteristics ........................................................................................................................................21  
2.8 RF Characteristics..........................................................................................................................................................22  
2.8.1 General RF Characteristics.................................................................................................................................22  
2.8.2 High Frequency Crystal Oscillator Specifications................................................................................................22  
2.8.3 Transmitter Characteristics.................................................................................................................................22  
2.8.4 Receiver Characteristics.....................................................................................................................................23  
3 Functional Description............................................................................................................................................................24  
3.1 Block Diagram................................................................................................................................................................24  
3.1.1 Digital Processing ...............................................................................................................................................25  
3.1.2 CPU  
.........................................................................................................................................................25  
3.1.3 Memories .........................................................................................................................................................26  
3.1.4 Peripherals .........................................................................................................................................................27  
3.1.5 Applications and Patch Loading..........................................................................................................................27  
3.1.6 Security  
.........................................................................................................................................................28  
3.2 Peripherals.....................................................................................................................................................................28  
3.2.1 I2C Master .........................................................................................................................................................28  
3.2.2 SPI Master .........................................................................................................................................................29  
3.2.3 UART  
.........................................................................................................................................................30  
3.2.4 SPI Slave .........................................................................................................................................................30  
3.2.5 GPIO  
3.2.6 Timers  
.........................................................................................................................................................32  
.........................................................................................................................................................34  
3.3 Power Management .......................................................................................................................................................34  
3.3.1 Supply Domains..................................................................................................................................................35  
3.3.2 Logic Power Domains.........................................................................................................................................35  
3.3.3 Supply Monitoring ...............................................................................................................................................36  
3.3.4 Chip Disable........................................................................................................................................................36  
3.3.5 Reset Structure...................................................................................................................................................36  
3.4 Operating Modes............................................................................................................................................................37  
3.4.1 Mode Descriptions ..............................................................................................................................................37  
3.4.2 Mode Transitions ................................................................................................................................................38  
3.5 Clock Structure...............................................................................................................................................................39  
3.5.1 LF XTAL Modes..................................................................................................................................................39  
3.5.2 LF Clock Calibration............................................................................................................................................39  
4 Ordering information...............................................................................................................................................................40  
4.1 Ordering information.......................................................................................................................................................40  
4.2 Pin List .........................................................................................................................................................................40  
4.3 QFN Package Marking ..................................................................................................................................................41  
4.4 QFN Package Information..............................................................................................................................................41  
4.5 WLCSP Package Information.........................................................................................................................................42  
3
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
EM9304  
4.6 WLCSP Package Marking .............................................................................................................................................42  
4.7 WLCSP Package Reflow...............................................................................................................................................43  
5 Embedded Software ................................................................................................................................................................44  
5.1 Overview ........................................................................................................................................................................44  
5.2 Hardware Platform .........................................................................................................................................................45  
5.2.1 Memory Organization..........................................................................................................................................45  
5.2.2 Embedded Software Memory Usage ..................................................................................................................46  
5.3 Software Architecture.....................................................................................................................................................46  
5.3.1 Application Framework .......................................................................................................................................47  
5.3.2 Hardware Abstraction Layer................................................................................................................................52  
5.4 Production Test Mode (PTM) .........................................................................................................................................53  
5.5 Software Configuration Options......................................................................................................................................54  
5.6 Vendor Specific HCI Commands....................................................................................................................................54  
5.6.1 EM_SetPublicAddress ........................................................................................................................................55  
5.6.2 EM_SetUartBaudRate ........................................................................................................................................56  
5.6.3 EM_TransmitterTest ...........................................................................................................................................57  
5.6.4 EM_TransmitterTestEnd.....................................................................................................................................57  
5.6.5 EM_ReadAtAddress ...........................................................................................................................................58  
5.6.6 EM_ReadContinue..............................................................................................................................................58  
5.6.7 EM_WriteAtAddress............................................................................................................................................58  
5.6.8 EM_WriteContinue..............................................................................................................................................58  
5.6.9 EM_SetPowerModeEx........................................................................................................................................59  
5.6.10 EM_SetRfActivitySignalEx................................................................................................................................59  
5.6.11 EM_SetRfPowerLevelEx...................................................................................................................................59  
5.6.12 EM_WritePatchStart .........................................................................................................................................59  
5.6.13 EM_WritePatchContinue...................................................................................................................................61  
5.6.14 EM_WritePatchAbort ........................................................................................................................................61  
5.6.15 EM_SetClockSource.........................................................................................................................................61  
5.6.16 EM_SetMemoryMode .......................................................................................................................................62  
5.6.17 EM_GetMemoryUsage .....................................................................................................................................62  
5.6.18 EM_SetSleepOptions........................................................................................................................................62  
5.6.19 EM_SvldMeasurement......................................................................................................................................63  
5.6.20 EM_SetEventMask ...........................................................................................................................................63  
5.6.21 EM_CpuReset...................................................................................................................................................63  
5.6.22 EM_CalculateCrc32Ex......................................................................................................................................63  
5.6.23 EM_PatchQuery...............................................................................................................................................64  
5.7 Vendor Specific Events ..................................................................................................................................................65  
5.7.1 EM_ActiveStateEntered .....................................................................................................................................65  
5.7.2 EM_TestModeEntry............................................................................................................................................66  
5.7.3 EM_HalNotification.............................................................................................................................................66  
5.8 Hardware Error Event Codes .........................................................................................................................................66  
6 Changes....................................................................................................................................................................................67  
List of Tables  
Table 1: DCDC Configuration Options..........................................................................................................................................10  
Table 2: Typical Battery Types .....................................................................................................................................................11  
Table 3: Digital Interfaces.............................................................................................................................................................12  
Table 4: Recommended Component List for the Reference Design.............................................................................................14  
Table 5: Absolute Maximum Ratings ............................................................................................................................................16  
Table 6: General Operating Conditions ........................................................................................................................................16  
Table 7: DC Characteristics, DCDC Step-Down Configuration, VBAT2=3.0V..............................................................................17  
Table 8: DC Characteristics, DCDC Step-Up Configuration, VBAT2=1.5V...................................................................................18  
Table 9: GPIO Pin Characteristics................................................................................................................................................18  
Table 10: I2C Output Pin Characteristics......................................................................................................................................19  
Table 11: I2C Capable GPIO Timing Characteristics....................................................................................................................19  
Table 12: SPI Timing Specification for VBAT > 1.9V....................................................................................................................20  
Table 13: SPI Timing Specification for VBAT < 1.9V....................................................................................................................20  
Table 14: Enable Pin Characteristics............................................................................................................................................21  
Table 15: Low Frequency Crystal Oscillator Specifications ..........................................................................................................21  
Table 16: Start-Up Characteristics................................................................................................................................................21  
Table 17: Timing Characteristics ..................................................................................................................................................21  
Table 18: General RF Characteristics...........................................................................................................................................22  
Table 19: High Frequency Crystal Oscillator Specifications .........................................................................................................22  
Table 20: Transmitter Characteristics...........................................................................................................................................22  
Table 21: Receiver Characteristics...............................................................................................................................................23  
Table 22: Memories......................................................................................................................................................................27  
Table 23: Security Features..........................................................................................................................................................28  
4
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
EM9304  
Table 24: GPIO Functions ............................................................................................................................................................33  
Table 25: GPIO Configuration.......................................................................................................................................................34  
Table 26: Supply Domains............................................................................................................................................................35  
Table 27: Logic Power Domains...................................................................................................................................................35  
Table 28: SVLD Supply Domains .................................................................................................................................................36  
Table 29: Reset Structures...........................................................................................................................................................37  
Table 30: Operating Modes ..........................................................................................................................................................37  
Table 31: System Clocks..............................................................................................................................................................39  
Table 32: LF XTAL Modes............................................................................................................................................................39  
Table 33: Versions........................................................................................................................................................................40  
Table 34: Ordering Information.....................................................................................................................................................40  
Table 35: Pin List..........................................................................................................................................................................40  
Table 36: QFN-28 Package Marking ............................................................................................................................................41  
Table 37: WLCSP25 Package Marking ........................................................................................................................................42  
Table 38: WLCSP Temperature/Time Reflow Specification..........................................................................................................43  
Table 39 Modes of Operation .......................................................................................................................................................44  
Table 40 Container Header Format ..............................................................................................................................................50  
Table 41 Container Types.............................................................................................................................................................51  
Table 42 Device Driver List...........................................................................................................................................................53  
Table 43 Software Platform Configuration Options.......................................................................................................................54  
Table 44 Vendor Specific HCI Commands ...................................................................................................................................54  
Table 45 Vendor Specific Events..................................................................................................................................................65  
Table 46 Hardware Event Codes..................................................................................................................................................66  
List of Figures  
Figure 1: Typical Application Schematic – Bluetooth Low-Energy Companion IC to any MCU or ASIC.........................................2  
Figure 2: Typical Application Schematic – EM9304 Connected With Digital Sensors / Sensor Hubs.............................................2  
Figure 3: a) Hardware Architecture, b) Software Architecture.........................................................................................................8  
Figure 4: RF Transceiver Block Diagram........................................................................................................................................8  
Figure 5: a) DCDC Step-Down Configuration, b) DCDC Step-Up Configuration ............................................................................9  
Figure 6: a) DCDC Off Configuration, b) External DCDC Configuration .......................................................................................10  
Figure 7: QFN DCDC Step-Down Configuration a) Schematic; b) Layout (Top, Bottom) .............................................................13  
Figure 8: WLCSP DCDC Step-Down Configuration a) Schematic; b) Layout (Top, Bottom)........................................................15  
Figure 9: SPI Timing.....................................................................................................................................................................20  
Figure 10: Block Diagram Configured In Step-Down Configuration..............................................................................................25  
Figure 11: SPI Slave Write Transaction with Active Flow Control by Means of RDY....................................................................31  
Figure 12: SPI Slave Write Transaction........................................................................................................................................31  
Figure 13: SPI Read Transaction..................................................................................................................................................31  
Figure 14: Logic Power Domains..................................................................................................................................................36  
Figure 15: Mode Transitions.........................................................................................................................................................38  
Figure 16: QFN-28 Mechanical Drawing.......................................................................................................................................42  
Figure 17: WLCSP25 Mechanical Drawing...................................................................................................................................42  
Figure 18: WLCSP Temperature/Time Reflow Profile ..................................................................................................................43  
Figure 19 Controller and Companion Usage Modes.....................................................................................................................44  
Figure 20 Application and Production Test Modes of Operation...................................................................................................45  
Figure 21 Simplified System Overview .........................................................................................................................................47  
Figure 22 JLI Table Example Prior to Firmware Patch .................................................................................................................49  
Figure 23 JLI Table Example After Firmware Patch .....................................................................................................................49  
5
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
EM9304  
1 Overview  
1.1 Introduction  
The EM9304 is a 2.4 GHz RF system on chip with the following target applications:  
Bluetooth Controller Mode  
o
o
o
o
o
Host connect to controller via Host Controller Interface (HCI)  
HCI interface implemented via SPI or UART transport layer  
Link layer implemented in ROM  
Up to 8 simultaneous connections supported  
Long packet lengths (payload up to 255 bytes) supported  
Bluetooth Companion Mode  
o
o
o
o
o
o
Interface to host with proprietary Application Controller Interface (ACI)  
ACI interface implemented via SPI or UART transport layer  
Bluetooth 4.2 certified stack and standard profiles and services implemented in ROM  
Additional profiles and services can be loaded and stored in OTP  
Secure connections including key-exchange supported  
All other Controller Mode features supported except HCI  
Bluetooth Application Mode  
o
Application hosting  
.
Low energy applications such as proximity or sensor beacons using Bluetooth are  
easily implemented  
.
Connections to digital peripherals through SPI, I2C, UART, and GPIOs allow for  
data collection, storage, or display for example.  
o
Software development platform  
.
.
.
.
.
Application Program Interface (API) available for all levels of firmware  
Full featured development tools (Metaware/MetawareLite and GCC)  
Development and debugging using JTAG interface  
Programs can be developed in RAM and then moved to OTP  
Programs stored in OTP can execute from RAM or OTP  
o
All Controller Mode and Companion Mode features supported  
The chip architecture is described in Section 1.2. A 32-bit MCU efficiently controls the movement of data  
between the RF modem, memory, and the digital interfaces. Digital interfaces include UART, SPI, and  
I2C which are mapped to GPIO as required by the application. Other peripherals include an interrupt  
manager, timers, and encryption engines. The RF and Power Management blocks are described in  
separate sections. The firmware is implemented in a power efficient manner using a scheduler, memory  
manager, hardware drivers, link layer, and stack implemented in a single ROM. The state can be retained  
in 4kB, 8kB, or 20kB retention memory selectable to optimize features versus memory leakage. And a  
one-time programmable (OTP) memory is used for trimming, unique identification numbers, profiles,  
patches, and application storage.  
The firmware can be updated or “patched” through SPI, UART, JTAG, or using firmware-over-the-air  
(FOTA). Patches can be loaded into and executed from RAM or OTP. (Note, JTAG cannot be used to  
directly write to OTP.) Patches can be loaded from external memory via SPI, UART, or I2C interfaces.  
The RF modem is described in Section 1.3. A very sensitive RF front-end achieves a -94dBm typical  
sensitivity for 1Mbps operation with 37 byte payloads, while dissipating very low current (3.0mA peak) at  
3V. An efficient transmitter at 0.4dBm output power and dissipates only 5.2mA at 3V. Programmable RF  
power levels from -34dBm up to +6.1dBm are possible. A connection to a 50 ohm antenna with  
appropriate matching circuit. Fast mode transition times and extremely low sleep current (1µA) enable  
very low energy application implementations.  
An advanced power management system is described in Section 1.4. Power consumption and battery life  
are optimized in all conditions. Most common 1.5V and 3.0V primary battery cell technologies are directly  
supported including Lithium, Alkaline, Zinc-Air and Silver Oxide. For 1.5V batteries, the on-chip DCDC  
converter steps up the voltage to the required internal levels. For 3.0V batteries, the on-chip DCDC  
converter steps the voltage down internally for efficient power consumption. Very few external  
components are necessary for the DCDC converter operation; however, it is also possible to operate  
without the converter or using an external converter to minimize component count even further.  
6
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
EM9304  
Packaging options are described in Section 4. Several types are offered for various application  
constraints. A wafer chip-scale package (WLCSP25) is offered for minimum PCB footprint 2.340mm x  
2.206mm; a QFN-28 package compatible with standard PCB technology is offered with additional GPIOs;  
and bare die in wafer format is offered for i.e. chip-on-board (COB) applications.  
The package pins are described in Section 1.6. The GPIO configuration is described in Section 1.7. The  
reference schematics are described in Section 1.8 with required and optional external components.  
1.2 Chip Architecture  
The chip architecture is shown in Figure 3. In Figure 3a, the hardware architecture is shown. A 32-bit  
MCU efficiently controls the movement of data between the RF modem, memory, and the digital  
interfaces. The 32-bit MCU includes a floating point unit (FPU) for efficient implementation of sensor  
algorithms, for example. A CRC coprocessor is also included for efficient verification of program memory,  
for example. Memories are included for the following functions (size shown in parentheses):  
ROM (136kB) – used for the start-up sequence, Bluetooth low energy link layer, and stack  
iRAM (48kB) – used for application development  
dRAMs (4, 4, and 12kB) – used for data with optional state retention  
dRAM (8kB) – used for data without state retention  
iRAM (4kB) – used for the subroutine jump table  
OTP (128k) – used for configuration data, Bluetooth profiles, and applications  
The memory architecture is divided into several different power domains for power consumption  
optimizations. When a memory is not being used, it can be switched off to reduce current consumption.  
During Bluetooth connected sleep mode the entire MCU subsystem can be shut off and only the power  
management system and required state retention memories (if any) need to be powered. The power  
management system will properly wakeup the MCU subsystem when it is needed. The RF modem is  
also on a separate supply domain and is turned on and off as needed in order to minimize energy  
consumption.  
Digital interfaces including UART, SPI slave, SPI master, and I2C master are mapped to GPIO as required  
by the application. When the chip is used as a peripheral to a host application, then the SPI slave and  
UART can be used for communication. The standard Host-Controller Interface (HCI) is implemented for  
communicating with the link layer, and a proprietary Application-Controller Interface (ACI) is implemented  
for communicating with the stack and profiles. When the chip is used as an application host, then the SPI  
master or I2C master can be used to talk with most standard digital peripherals. Other peripherals include  
an interrupt manager and three timers for low power implementations, and an AES-128 encryption engine  
for security implementation. A NIST compliant true random number generator is also included for key  
generation.  
The software architecture is shown in Figure 3b. The firmware is implemented in a power efficient manner  
using a basic scheduler and memory manager. The EM9304 implements a Bluetooth 5.0 compliant link  
layer at the bottom of the stack and accessed through the standard HCI interface. Peripherals are  
accessed through hardware drivers. Bluetooth HCI commands are implemented and additionally some  
vendor specific commands are implemented. The link layer is designed to optimize power consumption  
in each role. The CPU is normally halted and is only activated when a task needs to be accomplished.  
When sleeping, states and connection information are properly stored in the retention memory and all  
other memories and peripherals are turned off. A low power timer is used to properly wakeup the system.  
The EM9304 is certified by the Bluetooth SIG as Bluetooth Low Energy 5.0 Controller Subsystem (QD ID  
93999).  
The Bluetooth 4.2 low energy stack (QD ID 84268) is accessed through a proprietary Application  
Controller Interface (ACI) in ACI mode or Application Programming Interface (API) in application mode.  
The stack includes the L2CAP, Security Manager, ATT, GAP, and GATT. Standard Bluetooth profiles  
such as Proximity and Find-Me are also included in this ROM, as well as proprietary data-exchange and  
Firmware-Over-the-Air updating procedures to help manage data and program transfer.  
The EM9304 can be customized using the one-time programmable (OTP) memory. Specific Bluetooth  
profiles can be loaded depending on the application. Simple applications can be implemented including  
parameters and unique identification numbers  
sensor interfaces. Package configuration, production trim  
can also be stored here.  
7
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
EM9304  
Proprietary API  
Bluetooth 4.2 Stac k  
Analog I/O  
Power Management  
Future  
Security  
RF / MODEM  
Support:  
(RN G, AES)  
Interrupt  
4/4/12k DRAM  
Proprietary  
(Data /Retention)  
Controller  
BT 5.0 2Mbps  
Ant+  
8k DRAM  
32-bit  
HCI  
ZigBee  
(Data /No Retention)  
MC/FPU/CRC  
48k IRAM  
136k ROM  
Bluetooth 5.0  
Link Layer  
(Instruction)  
(Bo ot, Link Layer, Stac k)  
128k OTP  
4k IRAM  
(Prof iles, Main)  
(Jump Table)  
Scheduler/Memory Manager  
Hardware Drivers  
Digital I/O  
a)  
b)  
Figure 3: a) Hardware Architecture, b) Software Architecture  
1.3 RF Description  
The RF transceiver exceeds the specifications and requirements of the Bluetooth 5.0 PHY specification.  
The main features of the RF transceiver are the following:  
Ultra-low-power: The peak current in receive mode is 3.0 mA and in transmit mode is 5.2mA at  
0.4dBm and 3.0V in DCDC Step-Down Configuration at room temperature.  
Excellent RF performance: including -94dBm sensitivity for 1Mbps operation with 37 byte  
payload and a programmable output power range from -34dBm to +6.1dBm  
Low-voltage: Operation from 3.6V down to 1.05V  
Very high degree of integration: small footprint with few external components  
The RF transceiver block diagram is shown in Figure 4.  
Frequency  
Synthesizer  
PA  
LNA  
ADC  
RSSI  
Bus  
Figure 4: RF Transceiver Block Diagram  
The RF transceiver is based on a low-IF architecture and comprises the following building blocks:  
Single-ended 50 Ohm RF port with on-chip harmonic filter  
High gain, low power, LNA and mixer  
Power Amplifier with programmable output power range  
Low-IF receiver with 5th order channel filter and ADC converter  
Fully integrated frequency synthesis with fast settling time and digital modulation  
48MHz XTAL reference with finely trimmable internal loading capacitor  
8
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
EM9304  
Fully integrated FSK-based modem, with programmable pulse shape, data rate and modulation  
index  
Digital baseband (DBB) with link layer functionalities, including automatic packet handling with  
preamble & sync, CRC, separate Rx and Tx 128-bytes FIFOs, support of long packets, early  
signalling of incoming packet, integrated CCM-AES encryption, and supporting multiple  
simultaneous connections.  
The RF specifications are detailed in Section 2.8.  
1.4 Power Management Description  
An advanced power management system is implemented on the EM9304. Key low-power circuits include  
a configurable and highly-efficient DCDC converter, low noise bandgap references, low drop-out  
regulators (LDOs), a high frequency RC oscillator for efficient MCU operation, and a high accuracy, low  
frequency, RC oscillator for sleep mode control. A sophisticated digital control system optimizes power  
consumption and battery life in all conditions. There are four possible power management configurations:  
DCDC Step-Down, DCDC-Step-Up, DCDC Off, and External DCDC. The configuration is automatically  
detected from the PCB, but a minimum supply voltage ramp-up must be maintained.  
The most common application configurations are shown in Figure 5. In Figure 5a, DCDC Step-Down  
Configuration, a typical arrangement is shown for connecting a 3V battery (1 Lithium or 2 Alkaline cells,  
for example) to the EM9304 and an external 3V MCU. The battery is applied to VBAT1, which powers  
the DCDC converter and OTP, and VBAT2, which powers key analog circuits in the power management.  
Using the SW pin, a coil and capacitor, the DCDC converter efficiently steps-down the battery voltage to  
generate 1.25V on the VCC pin. This is the main supply voltage for the rest of the IC during normal  
operation. During sleep mode the DCDC operation is off and an optional charging circuit is used to  
maintain VCC.  
In Figure 5b, DCDC Step-Up Configuration, a typical arrangement is shown for connecting a 1.5V battery  
(1 Alkaline, Zinc Air or Silver Oxide cell, for example) to the EM9304 and an external 1.5V MCU. The  
battery is applied to VCC, which is the main supply for the IC including the RF portion, and VBAT2, which  
powers key analog circuits in the power management. Using the SW pin, a coil and capacitor, the DCDC  
converter steps-up the battery voltage to generate 2.6V on the VBAT1 pin to supply the OTP. During  
sleep mode the DCDC operation is off.  
a)  
b)  
Figure 5: a) DCDC Step-Down Configuration, b) DCDC Step-Up Configuration  
Other possible configurations are shown in Figure 6 which have the minimum possible external  
components. In Figure 6a is the DCDC Off Configuration. In this case, a 3V battery source is required  
and applied directly to VBAT1 and VBAT2. An internal LDO is then used to generate 1.25V on the VCC  
pin. The DCDC converter is not used in this arrangement and is turned off. Since the 1.25V is generated  
by a linear regulator instead of a switching regulator, more power is consumed in this arrangement.  
9
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
EM9304  
In Figure 6b, External DCDC Configuration, the configuration shown utilizes an external DCDC converter  
from an external 1.5V MCU. In this case, the 1.5V battery is applied to the VBAT2 and VCC pins of the  
EM9304 and the MCU. The DCDC converter on the 1.5V MCU, for example, then generates the required  
2.6V for the OTP and applies it to VBAT1. This is less efficient than the configuration described in Figure  
5b in terms of power consumption because the sleep modes cannot be optimized; however, it does reduce  
the overall system component count.  
Other configurations could be possible, but please review with EM Microelectronic before proceeding.  
a)  
b)  
Figure 6: a) DCDC Off Configuration, b) External DCDC Configuration  
A summary of the four configuration options and voltage ranges is shown in Table 1. Here is a brief  
description of each configuration:  
In the DCDC Step-Down Configuration, the battery voltage is applied to VBAT2, VBAT1, and  
VIO, and can have an operating range of 1.9V – 3.6V. Then 1.25V is generated on VCC by the  
DCDC voltage.  
In the DCDC Step-Up Configuration, the battery voltage is applied to VBAT2, VCC and VIO,  
and can have a range of 1.05 to 1.9V. The DCDC generates 2.6V on VBAT1.  
In the DCDC Off Configuration the battery voltage is applied to VBAT2, VBAT1, and VIO and  
can have a range from 1.9V to 3.6V. Then 1.25V is generated on VCC by the internal LDO.  
In the External DCDC Configuration, the battery voltage is applied to VBAT2 and VCC with an  
operating range of 1.05V to 1.9V. The external DCDC generates a voltage of 2.6V (up to 3.6V)  
which is applied to VBAT1 and VIO. In External DCDC Configuration, VBAT1 voltage must be  
connected at the same time as VBAT2 voltage. If it is not possible, the device must be kept in  
chip disable mode (ENABLE = '0') till VBAT1 voltage reaches the specified value.  
If VIO is not directly connected to VBAT1/VBAT2, the condition VIO>=VBAT2 must be fulfilled.  
Table 1: DCDC Configuration Options  
Configuration  
DCDC Step-Down  
DCDC Step-Up  
DCDC Off  
VBAT1  
VBAT2  
VCC  
VIO  
VBAT2  
1.9V – 3.6V  
1.05V – 1.9V  
1.9V – 3.6V  
1.05V – 1.9V  
1.25V, DCDC  
VBAT2  
VBAT2  
VBAT2  
VBAT2  
VBAT1  
2.6V, DCDC  
VBAT2  
1.25V, LDO  
VBAT2  
External DCDC  
2.6V, MCU DCDC  
See section 2.3 for the minimal battery supply voltage for RF operations.  
The EM9304 can directly be used with the battery types listed in Table 2, for example. Most common  
1.5V and 3.0V primary battery cell technologies are directly supported including Lithium, Alkaline, Zinc-  
Air and Silver Oxide. Other battery types are also supported, for example carbon-printed batteries, but  
additional decoupling capacitors may be necessary to supply the peak current without the battery level  
decreasing below the minimum voltage.  
10  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
EM9304  
Table 2: Typical Battery Types  
Nominal  
Voltage (V)  
Minimum  
Voltage (V)  
Capacity  
(mAh)  
Type  
CR1225/CR2032  
Li/MnO2  
3.0  
2.0  
0.9  
1.1  
1.2  
48/225  
115/1000  
650  
LR44/AAA  
Alkaline (Zn/MnO2)  
1.5  
ZincAir  
ZA675  
1.4  
Silver Oxide (Zn/Ag2O)  
357  
1.55  
190  
1.5 Operating Modes  
The chip has several modes of operation including several active, standby and sleep modes. These  
modes are described in detail in Section 3.4. Power consumption is optimized in each of these modes.  
The lowest power mode while maintaining an active connection dissipates 950nA if a 32kHz crystal is  
used, or 1µA if the internal sleep RC oscillator is used. Additionally, a deep sleep mode is provided with  
typical current consumption of 650nA, and a chip disable mode is provided with typical current  
consumption 5nA.  
Note that special circuitry is added to keep peak currents to the battery typically less than 12.5mA when  
transmit power is set to 0.4dBm or lower.  
1.6 Pin Description  
The pins of the EM9304 are described in Table 35. For the QFN-28 package, the 28 pins and the die  
attach are described. For the WLCSP25, 21 pins are described (4 unused) and 6 fewer GPIO than QFN.  
Analog pins include voltage supply pins, pins for crystal oscillators, and an antenna pin for the RF. Power  
is supplied through VBAT1, VBAT2, VIO, and VCC depending on the power management configuration  
described in Section 1.4. Ground is connected to the various VSS pins. Impedance of these connections  
should be minimized for low noise performance. Ideally they should be connected directly to a ground  
plane on the PCB using multiple vias where possible. Two pins are provided for the 48MHz crystal (XIN,  
XOUT) and two are provided for the optional 32kHz crystal (LF_XIN, LF_XOUT). If there is already a  
32kHz crystal in the system, the LF_XIN pin can be used to receive a reference signal. The RF antenna  
is connected to the ANT pin.  
Digital pins include general purpose I/O pins (GPIO) and a dedicated input pin for chip enable. There are  
12 GPIO pins available on the QFN-28 package and in die form. There are 6 GPIO available on the  
WLCSP25. Configuration of the GPIO is described in Section 1.7. The chip enable pin (ENABLE) is  
provided to achieve the lowest possible power consumption (5nA) of the device. The chip is not  
operational when this pin is low, and then it is initialized when this pin is raised high. VIO supplies the  
GPIO pins.  
1.7 GPIO Configuration  
The EM9304 has the digital serial interfaces listed in Table 3, and a complete function list shown in Table  
24. These interfaces are available through General Purpose I/O pins (GPIO). These include SPI slave  
and a UART for an HCI or ACI application interface. The UART can also be used for a test interface and  
for debug. A SPI master and I2C master are provided for interfacing to external memory or digital sensors  
for beacon type applications, for example. A JTAG interface is provided for programming and debug.  
11  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
 
EM9304  
Table 3: Digital Interfaces  
Interface  
Pads  
Comment  
SPI Slave  
Programmable  
HCI/ACI application interface  
16MHz, VIO >=1.9V  
8MHz, VIO < 1.9V  
5 wires, 8-bit  
Flow control on dedicated pad  
UART, 9.6kbaud- 1.84Mbaud  
Programmable  
Programmable  
HCI/ACI test interface  
SPI Master  
External memory or sensors  
6MHz, VIO >=1.9V  
3MHz, VIO < 1.9V  
3 or 4 wires, 8-bit  
I2C Master  
Standard (up to 100kbps) and Fast  
modes (up to 400kbps)  
Programmable  
Fixed  
External memory or sensors  
4-pin interface supported  
JTAG  
1.8 QFN Reference Schematics and External Components  
The typical reference design for a 2-layer PC board for the QFN packaged device in the DCDC step down  
configuration is shown in Figure 7. The schematic is shown in Figure 7a. The battery voltage is supplied  
on VBAT2, which can be combined with VIO in most applications. The value of CBAT2 is optimized for  
CR2032 batteries, for example, but can be adjusted for other battery or power supply types depending on  
the application. Combined with FB1 and CBAT1, a pi-filter is formed to reduce supply noise generated  
on VBAT1 by the DCDC converter. This filtering protects the battery from voltage spikes which could  
reduce battery lifetime. CIO provides additional filtering of high-frequency energy generated by GPIO  
switching. The inductor LDCDC is used by the DCDC converter to generate the voltage VCC and CVCC  
filters the switching noise to an acceptable level.  
An optional 32kHz crystal (X32M) is shown for the lowest possible sleep mode consumption. Alternately  
the on-chip RC oscillator can be used with a minor increase in current consumption including required  
frequency calibration. The 48MHz crystal (X48M) shown is required by the RF for frequency channel  
accuracy. Other suitable crystals are available but in some cases a frequency offset would need to be  
trimmed by configuration in OTP. Final selection should be confirmed with EM Microelectronic for correct  
performance.  
The RF components CRF1, LRF1, and CRF2 are optimized for additional filtering of RF harmonics and  
matching to the antenna. For custom PCB layout and antennas, these components may need  
modification. The best cost and performance antenna was chosen for the module. However, other 50ohm  
Bluetooth or WiFi antennas optimized for the 2.4 GHz ISM band can be used, including custom PCB trace  
or punched antennas. All PCB designs need to conform to regulatory requirements and relevant  
certifications need to be obtained (FCC, CE, etc.). Consult EM Microelectronics for additional information.  
The reference design layout shown in Figure 7b is a 14x16mm module with all required I/O brought out  
to pin headers for use on the DVK with castellations for soldering to PCBs. When soldering to other  
PCBs, care must be taken to keep noisy signals from under the module and away from the RF section.  
It is required to keep all signals including ground plane from underneath the antenna area. It is preferred  
to keep the antenna either off of the application PCB or on a corner of the PCB with no ground plane  
underneath. Preferably the PCB should be removed from under the antenna area. Metal, plastic and  
other materials (i.e. batteries) shall be kept as far away from the antenna as possible in order not to affect  
the RF performance.  
The module height is < 2.0mm. The module bottom layer has a ground plane. The EM9304 is shown  
with the QFN-28 pinout. This layout has been optimized for performance and should be used directly on  
the application PCB with the IO pins removed. The RF and analog sections shall not be modified without  
careful review by the EM Microelectronics team. The PCB thickness of 0.8mm and 5mil space and trace  
rules shall also be respected.  
12  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
EM9304  
a)  
b)  
Figure 7: QFN DCDC Step-Down Configuration a) Schematic; b) Layout (Top, Bottom)  
A list of recommended components to be used on the reference design is given in Table 4. The required  
components for the DCDC converter have a very small footprint.  
The 470nF and 2.2µF ceramic capacitors are available in an 0402 size. The ferrite bead is also available  
in an 0402 size, and the DCDC coil is available in an 0603 size. The crystal sizes were chosen for lowest  
cost, although other suitable crystals are available in a variety of sizes (including smaller ones). A three  
component RF matching network is shown with 0402 components. This network has been carefully  
design to optimize RX sensitivity, TX output power, and additional filtering of the second harmonic at  
4.8GHz in order to meet FCC requirements at the maximum output power setting. Modification to this  
network should not be done without consulting EM Microelectronics. Each end product should be verified  
for compliance with the applicable regulatory requirements and certified by the Bluetooth SIG.  
13  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
EM9304  
Altium design files for this and the other power configurations are available upon request.  
Table 4: Recommended Component List for the Reference Design  
Name  
U1  
Component  
Radio  
Vendor  
EM Micro  
muRata  
muRata  
Part Number  
Specification  
Size  
4x4mm  
0402  
EM9304V01LF28B+  
GRM155R61C225KE11  
GRM188R61C106MAAL  
QFN-28  
CBAT1  
CBAT2  
Capacitor  
Capacitor  
2.2µF Ceramic 16V X5R  
10µF Ceramic 16V X5R  
FERRITE BEAD 600 OHM  
@100MHz  
0603  
LBAT  
Ferrite bead  
Capacitor  
muRata  
muRata  
BLM15HG601SN1  
0402  
0402  
CVCC  
GRM155R61C225KE11  
2.2µF Ceramic 16V X5R  
4.7µH FIXED IND 620MA 550  
MOHM  
LDCDC  
CVIO  
Inductor  
muRata  
LQM18PN4R7MFRL  
0603  
Capacitor  
muRata  
Micro-  
Crystal  
GRM155R61A474KE15D  
470nF Ceramic 10V X5R  
32.768kHz, 6pF, +/-20ppm  
48MHz, 10pF, 10ppm  
0402  
3.2x1.5x0.65  
mm  
1.6x1.2x0.3  
mm  
Q1  
Quartz  
CM7V-T1A  
NX1612SA 48MHz EXS00A-  
CS10127  
Q2  
Quartz  
NDK  
CRF1  
Capacitor  
muRata  
GJM1555C1H2R2BB01  
CAP CER 2.2PF 50V NP0  
INDUCTOR 2.2nH FIXED  
300MA 180MOHM  
0402  
LRF1  
CRF2  
Inductor  
muRata  
muRata  
LQP15MN2N2B02  
0402  
Capacitor  
GJM1555C1H2R7BB01  
CAP CER 2.7 PF 50V NP0  
0402  
3.2x1.6x1.2  
mm  
ANT  
Antenna  
Abricon  
AMCA31-2R450G-S1F-T  
2.45GHz, 90MHz BW, -1dBi  
1.9 WLCSP Reference Schematics and External Components  
The typical reference design for a 2-layer PC board for the WLCSP packaged device in the DCDC step  
down configuration is shown in Figure 8, with the schematic shown in Figure 8a and PCB layout shown  
in Figure 8b. The reference design shown is a 10x12mm module. The active portion of the design if the  
32kHz crystal and antenna are removed is 5x8mm.  
The design is similar to the QFN version previously shown with some important differences. Fewer GPIO  
are available on the CSP package. GPIO5 is brought out for test reasons, however, if not used in the  
final application this signal can be left buried. This enables lower cost PCB space and trace design rules  
(5mil instead of 3mil). Another significant difference is that VBAT1 and VIO have been merged into a  
single battery voltage to minimize the IO pins on the module. The RF matching network components are  
also different:  
CRF1 = 1.4pF (GJM1555C1H1R4BB01)  
LRF1 = 2.0nH (LQP15MN2N0B02)  
CRF2 = 1.6pF (GJM1555C1H1R6BB01)  
This network has been carefully design to optimize RX sensitivity, TX output power, and additional filtering  
of the second harmonic at 4.8GHz in order to meet FCC requirements at the maximum output power  
setting. Modification to this network should not be done without consulting EM Microelectronics. Each  
end product should be verified for compliance with the applicable regulatory requirements and certified  
by the Bluetooth SIG.  
Altium design files for this and the other power configurations are available upon request.  
14  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
EM9304  
a)  
b)  
Figure 8: WLCSP DCDC Step-Down Configuration a) Schematic; b) Layout (Top,  
Bottom)  
1.10 Related Documents  
The EM9304 was designed to comply with the following Bluetooth specifications published by the  
Bluetooth Special Interest Group (SIG) on www.bluetooth.org:  
[1] Bluetooth Core Specification, Version 5.0, Bluetooth SIG, 6.12.2016  
[2] Bluetooth RF PHY Test Specification, Version 5.0.0, Bluetooth SIG, 13.12.2016  
[3] Bluetooth Link Layer Test Specification, Version 5.0.0, Bluetooth SIG, 13.12.2016  
[4] Bluetooth Host Controller Interface (HCI), Version 5.0.0, Bluetooth SIG, 13.12.2016  
Customers are however required to test the compliance of their final systems incorporating or embedding  
the EM9304 with these or other standards as they may apply and to obtain all necessary licenses and  
authorizations.  
15  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
 
 
EM9304  
2 Electrical Specifications  
2.1 Absolute Maximum Ratings  
Table 5 summarizes the absolute maximum ratings for the EM9304. Stresses above these listed  
maximum ratings may cause permanent damages to the device. Exposure beyond specified operating  
conditions may affect device reliability or cause malfunction.  
Table 5: Absolute Maximum Ratings  
Parameter  
Symbol  
VGND  
VBAT1  
VBAT2  
VCC  
Min.  
-0.2  
-0.2  
-0.2  
-0.2  
-0.2  
---  
Max.  
0.2  
3.9  
3.9  
3.9  
3.9  
18  
Unit  
V
Voltage at any ground pin  
Battery voltage 1  
V
Battery voltage 2  
V
Analog Supply Voltage  
Voltage at any remaining pin  
RF input power  
V
VPIN  
V
PIN  
dBm  
°C  
Storage temperature  
Tst  
-50  
150  
Electrostatic discharge referred to VSS HBM  
according to Jedec JS-001  
VESDHBM  
VESDCDM  
-2000  
-500  
2000  
500  
V
V
Electrostatic discharge referred to VSS CDM  
according to Jedec JS-002  
Maximum soldering conditions  
As per Jedec J-STD-020 standard  
2.2 Handling Procedures  
This device has built-in protection against high static voltages or electric fields; however, anti-static  
precautions must be taken as for any other CMOS component. Unless otherwise specified, proper  
operation can only occur when all terminal voltages are kept within the voltage range. Unused inputs must  
always be tied to a defined logic voltage level unless otherwise specified.  
2.3 General Operating Conditions  
Table 6 shows the general operating conditions for the EM9304. While the chip is operational down to  
1.05V, the output power levels are only guaranteed at the supply voltages specified in the table.  
Table 6: General Operating Conditions  
All DC voltages are referred to the absolute voltage at the pin VSS.  
Parameter  
Symbol  
Min  
-40  
Max  
85  
Unit  
oC  
oC  
V
Operating temperature range  
Operating temperature for OTP write  
Battery voltage 1  
Top  
Top_otpw  
VBAT1_OTP  
VBAT2  
-401  
2.32  
1.05  
1.253  
1.453  
1.73  
1.05  
85  
3.6  
3.6  
3.6  
3.6  
3.6  
1.9  
Battery voltage, TX Power Level 0-14  
Battery voltage, TX Power Level 15  
Battery voltage, TX Power Level 16  
Battery voltage, TX Power Level 17  
Analog supply voltage  
V
VBAT2_15  
VBAT2_16  
VBAT2_17  
VCC  
V
V
V
V
Note 1: Increased write error possible below -20C, rewriting may be required  
Note 2: Minimum voltage required for OTP write operation.  
Note 3: Output power will decrease automatically if supply voltage drops below this value  
The battery voltage is always connected to VBAT2, and alternatively to VBAT1 and VCC; see Figure 6.  
The maximum battery ramp-up slope is 3.6V/1µs. The minimum ramp-up slope is 1V/5ms. Care should  
be taken to avoid a slow Vbat ramp in case of battery bounce type effects.  
The minimum slope is not limited in low-voltage configurations.  
16  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
 
 
 
EM9304  
2.4 Electrical Characteristics  
Unless otherwise specified:  
All DC voltages are referred to the absolute voltage at the pin VSS.  
Typical values are measured at 25°C; minimal and maximal values are measured from -40°C  
to +85°C.  
2.5 DC Characteristics  
2.5.1 DCDC Step-Down Configuration  
Table 7 shows the DC characteristics in DCDC Step-Down Configuration with 3.0V applied to  
VBAT2, no OTP usage, and GPIO not toggling. DCDC efficiency is 85%.  
Table 7: DC Characteristics, DCDC Step-Down Configuration, VBAT2=3.0V  
Parameter  
Min  
Typ  
3.0  
2.2  
2.4  
2.8  
2.9  
3.0  
3.1  
3.2  
3.3  
3.4  
3.6  
3.8  
4.1  
4.3  
4.6  
5.2  
5.6  
7.5  
9.9  
0.2  
0.4  
0.7  
1.2  
1.6  
1.0  
0.95  
0.65  
5
Max  
Unit  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
µA  
RX Mode  
TX mode, TX Power Level 0  
TX mode, TX Power Level 1  
TX mode, TX Power Level 2  
TX mode, TX Power Level 3  
TX mode, TX Power Level 4  
TX mode, TX Power Level 5  
TX mode, TX Power Level 6  
TX mode, TX Power Level 7  
TX mode, TX Power Level 8  
TX mode, TX Power Level 9  
TX mode, TX Power Level 10  
TX mode, TX Power Level 11  
TX mode, TX Power Level 12  
TX mode, TX Power Level 13  
TX mode, TX Power Level 14  
TX mode, TX Power Level 15  
TX mode, TX Power Level 16  
TX mode, TX Power Level 17  
Active RC1  
Active XTAL1  
ECC ROM execution in a loop  
Coremark test from IRAM1  
Coremark test from OTP  
Sleep mode, LF RC  
Sleep mode, LF XTAL  
µA  
Deep Sleep mode  
µA  
Chip Disable  
nA  
Battery peak current2  
10.3  
mA  
Note 1: CPU halted  
Note 2: Typical value using pi-filter in reference schematic. Valid for TX power levels of  
0dBm and below.  
2.5.2 DCDC Step-Up Configuration  
Table 8 shows the DC characteristics in DCDC Step-Up Configuration with VBAT2=1.5V, no OTP  
usage, and GPIO not toggling, except where indicated.  
17  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
 
 
EM9304  
Table 8: DC Characteristics, DCDC Step-Up Configuration, VBAT2=1.5V  
Parameter  
Min  
Typ  
5.8  
4.1  
4.5  
5.3  
5.5  
5.7  
5.8  
6.1  
6.3  
6.6  
6.9  
7.3  
7.8  
8.3  
8.8  
9.9  
10.7  
12.7  
14.8  
0.3  
0.7  
1.3  
2.4  
3.2  
1.0  
0.95  
0.65  
5
Max  
Unit  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
µA  
RX Mode  
TX mode, TX Power Level 0  
TX mode, TX Power Level 1  
TX mode, TX Power Level 2  
TX mode, TX Power Level 3  
TX mode, TX Power Level 4  
TX mode, TX Power Level 5  
TX mode, TX Power Level 6  
TX mode, TX Power Level 7  
TX mode, TX Power Level 8  
TX mode, TX Power Level 9  
TX mode, TX Power Level 10  
TX mode, TX Power Level 11  
TX mode, TX Power Level 12  
TX mode, TX Power Level 13  
TX mode, TX Power Level 14  
TX mode, TX Power Level 15  
TX mode, TX Power Level 16  
TX mode, TX Power Level 171  
Active RC2  
Active XTAL2  
ECC ROM execution in a loop  
Coremark test from IRAM1  
Coremark test from OTP  
Sleep mode, LF RC  
Sleep mode, LF XTAL  
µA  
Deep Sleep mode  
µA  
Chip Disable  
nA  
Battery peak current  
21.2  
mA  
Note 1: Tx Power Level 17 requires a minimum VBAT=1.7V  
Note 2: CPU halted  
2.5.3 DCDC Off Configuration and External DCDC Configuration  
Typical currents in DCDC Off Configuration and External DCDC Configuration are similar to those in  
Step-Up Configuration shown in Table 8 except for battery peak current.  
2.6 Digital Pin Characteristics  
2.6.1 GPIO Pin Characteristics  
The GPIO pin characteristics are described in Table 9. Functions implemented are a digital input,  
push-pull output, selectable pull-down/pull-up resistors, 3.3V standard protections against VSS  
and VIO.  
Table 9: GPIO Pin Characteristics  
Parameter  
Schmidt trigger hysteresis  
Input low level  
Symbol  
Vhys  
Vil  
Conditions  
Min  
Typ  
Max  
Unit  
V
0.05*VIO  
VIO >= 1.9V  
0.3*VIO  
V
18  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
 
 
EM9304  
VIO < 1.9V  
VIO >= 1.9V  
VIO < 1.9V  
0.15*VIO  
V
V
V
0.7*VIO  
Input high level  
Vih  
0.85*VIO  
IOUT=3mA  
VIO=1.9V  
Output voltage low  
Vol_low1  
0.4  
V
V
V
V
IOUT=0.8mA  
VIO=1.05V  
Output voltage low  
Output voltage high  
Output voltage high  
Vol_low2  
0.21  
IOUT=-3mA  
VIO=1.9V  
Voh_high1  
Voh_high2  
1.5  
IOUT=-0.8mA  
VIO=1.05V  
0.84  
Pull up/down resistor GPIO5 Rpull5  
8
10  
18  
kΏ  
kΏ  
Pull up/down resistor other  
Rpull  
GPIO  
70  
100  
130  
Output parameters for I2C mode are shown in Table 10.  
Table 10: I2C Output Pin Characteristics  
Parameter  
Output voltage low  
Symbol  
Conditions  
IOUT=3mA  
VIO=1.9V  
IOUT=2mA  
VIO=1.05V  
Min  
Typ  
Max  
Unit  
Vol_low1  
0.1  
V
Output voltage low  
Vol_low2  
0.21  
V
2.6.2 I2C Timing  
The timing characteristics for GPIO pins capable of an I2C interface (GPIO0-1 and GPIO4-9) are  
according to I2C Specification V3.0. Otherwise these pins have the timing specification described  
in Table 11 I2C Capable GPIO Timing Characteristics.  
Table 11: I2C Capable GPIO Timing Characteristics  
Parameter  
Symbol Conditions  
tODEL_F Output load 25pF  
Min  
Typ  
Max  
Unit  
Output delay, falling edge  
(VBAT =1.05V to 3.6V)  
500  
520  
540  
ns  
ns  
ns  
Output load 150pF  
Output load 400pF  
2.6.3 SPI Timing  
The SPI timing signals are shown in Figure 9. The SPI timing specification for VBAT > 1.9V (ie  
Step-Down and DCDC-Off Configuration) is shown in Table 12. The SPI timing specification for  
VBAT < 1.9V (ie Step-Up or External DCDC Configuration) is shown in Table 13.  
To achieve the required SPI maximum frequency, the SPI slave is changing the MISO value at  
the opposite edge compared to industry practice (on the same edge when value sensing is done).  
All known SPI masters require MISO hold time < 10ns, so the device is working in all applications.  
Nevertheless, this change could cause SPI protocol detection problem in some standard logic  
analysers with sampling frequency below 100MHz.  
19  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
 
 
EM9304  
Figure 9: SPI Timing  
Table 12: SPI Timing Specification for VBAT > 1.9V  
Parameter  
Symbol  
Min  
Typ  
Max  
Unit  
Clock frequency Slave  
Clock frequency Master  
Data setup time (input)  
Data hold time (input)  
Data setup time (output)  
Data hold time  
CSN setup time  
CSN hold time  
Data setup time Master (input)  
Data hold time Master (input)  
t_frq_s  
t_frq_m  
t_dsi  
t_dhi  
t_dso  
t_dhd  
t_cssu  
t_cshd  
t_dsim  
t_dhim  
16  
6
MHz  
MHz  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
10  
10  
(1/t_frq) - 46ns  
13  
100  
100  
35  
10  
ns  
Table 13: SPI Timing Specification for VBAT < 1.9V  
Parameter  
Symbol  
Min  
Typ  
Max  
Unit  
Clock frequency Slave  
Clock frequency Master  
Clock pulse width low  
Clock pulse width high  
Data setup time (input)  
Data hold time (input)  
Data setup time (output)  
Data hold time  
CSN setup time  
CSN hold time  
Data setup time Master (input)  
Data hold time Master (input)  
t_frq_m  
t_frq_s  
t_ckl  
t_ckh  
t_dsi  
8
3
MHz  
MHz  
µs  
µs  
ns  
ns  
ns  
ns  
ns  
0.4/t_frq  
0.4/t_frq  
10  
10  
t_dhi  
t_dso  
t_dhd  
t_cssu  
t_cshd  
t_dsim  
t_dhim  
(1/t_frq) - 46ns  
13  
100  
100  
60  
ns  
ns  
ns  
10  
20  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
EM9304  
2.6.4 Enable Pin Characteristics  
Enable pin characteristics are shown in Table 14.  
Table 14: Enable Pin Characteristics  
Parameter  
Input voltage low  
Input voltage high  
Symbol  
Vil  
Vih  
Conditions  
Min  
Typ  
Max  
Unit  
V
0.4*VBAT2  
0.6*VBAT2  
V
2.7 Power Management Characteristics  
2.7.1 Low Frequency Crystal Oscillator Specifications  
The general specifications for the low frequency crystal oscillator are shown in  
Table 14.  
Table 15: Low Frequency Crystal Oscillator Specifications  
Parameters  
Comments  
Symb.  
Min  
Typ  
Max  
Units  
Crystal frequency  
Fundamental  
fLFXTAL  
32.768  
kHz  
Including frequency tolerance,  
stability over temperature, aging, and  
total tolerances of external  
capacitances  
Crystal deviation  
df0/f0LFXTAL  
-3001,2  
-20  
ppm  
Equiv. series Res.  
ESRLFXTAL  
CLLFXTAL  
55  
6
100  
kΩ  
Typical supported  
crystal parameters  
Differential equivalent load  
capacitance (13)  
pF  
Note 1: Valid for crystal specified in Table 4  
Note 2: Much better precision can be obtained using the on-chip calibration system  
2.7.2 Timing Characteristics  
The typical start-up time for each power configuration is listed in Table 16. Start-up time is defined  
as ENABLE pin high until RDY pin high, when the device is ready to receive an HCI/ACI  
command. The times listed assume a SPI transport layer is used and only trimming information  
is stored in OTP and no other patches are stored in OTP. The times assume the components  
listed in Table 4 are used. When a 32kHz crystal or external input is used, a cold start counter  
runs for 1 second before releasing the CPU for general usage.  
Table 16: Start-Up Characteristics  
Configuration  
Step-Down, DCDC Off  
Step-Up  
Comment  
Min  
Nom  
3.6  
Max  
Units  
ms  
ms  
ms  
s
VBAT=3.0V, ramp=0.3V/µs, LF RC  
VBAT=1.5V, ramp=0.3V/µs, LF RC  
VBAT=1.5V, ramp=0.3V/µs, LF RC  
32kHz crystal or external signal is used  
5.0  
External-DCDC  
Any  
3.2  
1.2  
Timing characteristics from sleep to active modes are listed in Table 17. The transition is started  
by a wake-up event (pad or sleep timer) and finishes when the device is ready to receive an  
HCI/ACI command. The times listed assume only trimming information is stored in OTP and no  
other patches are stored in OTP. The times assume the components listed in Table 4 are used.  
Table 17: Timing Characteristics  
Mode 1  
Mode 2  
Comment  
Min  
Nom  
Max  
Units  
HCI/ACI command RDY  
Depends on crystal Q  
Sleep  
Active XTAL  
1.1  
ms  
21  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
 
 
 
 
 
EM9304  
2.8 RF Characteristics  
All the RF parameters are measured using the reference design presented in Section 1.8. Parameters  
are compliant to [1] (Bluetooth Core Specification Version 5.0, Volume 6, Part A). Measuring conditions  
and device configuration are specified in [2] (RF PHY Bluetooth Test Specification: RF-PHY.TS.5.0.0) for  
PHY parameters and in [3] (Link Layer Bluetooth Test Specification: LL.TS.5.0.0) for LL parameters.  
2.8.1 General RF Characteristics  
General RF characteristics are listed in Table 18.  
Table 18: General RF Characteristics  
Parameters  
Comments  
Symb.  
ZIN  
Min  
Typ  
Max  
Units  
RF input impedance  
Input reflection coefficient  
Data rate  
Single ended  
All channels  
BT LE 1M PHY  
501  
S11  
-8  
dB  
RBT  
1000  
Kbps  
Note 1: The impedance is measured at the antenna port of the QFN reference design in Section 1.8 and WLCSP  
reference design in Section 1.9. The RF matching network has been optimized for RX sensitivity, TX output power,  
and spurious emissions of the second harmonic at 4.8GHz at the maximum output power setting.  
2.8.2 High Frequency Crystal Oscillator Specifications  
The general specifications for the high frequency crystal oscillator are shown in Table 19.  
Table 19: High Frequency Crystal Oscillator Specifications  
Parameters  
Comments  
Symb.  
Min  
Typ  
Max  
Units  
Crystal frequency  
Fundamental  
fXTAL  
481  
MHz  
Including frequency tolerance, stability  
over temperature, aging, and total  
tolerances of external capacitances  
Crystal deviation  
df0/f0  
±50  
ppm  
Equiv. series Res.  
ESRXTAL  
20  
6
80  
10  
Typical supported Xtal  
parameters  
Differential equivalent load  
capacitance (13)  
2
CLXTAL  
8
pF  
Note 1: The crystal oscillator center frequency should be trimmed to exactly this frequency in the final application  
Note 2: The crystal oscillator startup current should be adjusted based on the crystal load capacitance chosen  
Contact EM Microelectronic for more information on how to make these adjustments  
2.8.3 Transmitter Characteristics  
Transmitter characteristics are shown in Table 20.  
Table 20: Transmitter Characteristics  
Parameters  
Comments  
Symb.  
PTX0  
PTX1  
PTX2  
PTX3  
PTX4  
PTX5  
PTX6  
PTX7  
PTX8  
PTX9  
PTX10  
PTX11  
Min  
Typ  
-33.5  
-29.0  
-17.9  
-16.4  
-14.6  
-13.1  
-11.4  
-9.9  
Max  
Units  
dBm  
dBm  
dBm  
dBm  
dBm  
dBm  
dBm  
dBm  
dBm  
dBm  
dBm  
dBm  
TX Power Level = 01  
TX Power Level = 11  
TX Power Level = 2  
TX Power Level = 3  
TX Power Level = 4  
TX Power Level = 5  
TX Power Level = 6  
TX Power Level = 7  
TX Power Level = 8  
TX Power Level = 9  
TX Power Level = 10  
TX Power Level = 11  
Output power  
-8.4  
-6.9  
-5.5  
-4.0  
22  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
 
 
 
 
EM9304  
Parameters  
Comments  
Symb.  
PTX12  
PTX13  
PTX14  
PTX15  
PTX16  
PTX17  
PTX2  
Min  
Typ  
-2.6  
-1.4  
0.4  
2.5  
4.6  
6.2  
-50  
-60  
Max  
Units  
TX Power Level = 12  
TX Power Level = 13  
TX Power Level = 14  
TX Power Level = 15  
TX Power Level = 16  
TX Power Level = 17  
dBm  
dBm  
dBm  
dBm  
dBm  
dBm  
dBm  
dBm  
Power in 2nd harmonic2  
Power in 3rd harmonic2  
Output power step = 17  
50 Ω for "Typ" value. PT for "Max"  
value  
PTX3  
Matching network defined in sections  
1.8 and 1.9.  
Power in 4th harmonic2  
PTX4  
-60  
dBm  
kHz  
Deviation from the channel  
center frequency  
Δfc  
-150  
150  
Frequency drift for any packet  
length  
Δfc_pkt  
Δfc/ΔT  
Δfmod  
50  
kHz  
Hz/µs  
kHz  
Drift rate  
400  
Modulated frequency  
deviation  
±250  
In-band spurious emission,  
power transmitted outside the  
selected channel, at a  
frequency offset foffs  
foffs│ = 2MHz  
foffs│ ≥ 3MHz  
-20  
-30  
dBm  
Pout  
(fc+foffs  
)
dBm  
Note: All measurements as described in RF PHY Bluetooth Test Specification Version 5.0.0  
Note 1: TX Power Level 0 and 1 do not comply with BT PHY requirements and should be used at risk only after complete  
evaluation in the desired application  
Note 2: Measured on DCDC Step-Down Configuration reference module described in Section 1.8.  
2.8.4 Receiver Characteristics  
Receiver characteristics are shown in Table 21.  
Table 21: Receiver Characteristics  
Parameters  
Comments  
Symb.  
Min  
Typ  
-94  
-93  
0
Max  
Units  
dBm  
dBm  
dBm  
dB  
1Mbps, 37 byte payload  
Sensitivity  
1Mbps, 255 byte payload  
1Mbps, 255 byte payload  
Co-channel interference (i.e.0MHz)  
Adjacent ±1MHz interference  
Adjacent +2MHz interference  
Adjacent -2MHz interference (image)  
Adjacent +3MHz interference  
Maximum input power  
C/I0_MHz  
C/I±1_MHz  
C/I+2_MHz  
C/I-2_MHz  
C/I+2_MHz  
6
-4  
dB  
-25  
-18  
-33  
dB  
dB  
In-band blocking  
(-67dBm desired signal)  
dB  
Adjacent -3MHz interference (next to  
image)  
Adjacent ≥±4MHz and ≤±10MHz  
interference  
C/I-2_MHz  
-32  
dB  
dB  
C/I4-  
10_MHz  
-35  
-43  
Adjacent ≥±10MHz interference  
C/I≥10_MHz  
dB  
30MHz – 2000MHz  
-30  
-35  
dBm  
2003MHz – 2399MHz  
(excepted for fRF-96MHz)  
2484MHz – 2997MHz  
(excepted for fRF+96MHz)  
dBm  
dBm  
Out-of-band blocking  
(-67dBm desired signal)  
-35  
-30  
3000MHz – 12.75GHz  
fRX=2*f1-f2 and f2-f1=±3MHz  
fRX=2*f1-f2 and f2-f1=±4MHz  
fRX=2*f1-f2 and f2-f1=±5MHz  
F=30MHz – 88MHz  
dBm  
dBm  
dBm  
dBm  
dBm  
-45  
-45  
-45  
Intermodulation  
Spurious emissions  
-57.4  
23  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
EM9304  
F=88MHz-1GHz  
F=1GHz-12.75GHZ  
-57  
-47  
dBm  
dBm  
Note: All measurements as described in RF PHY Bluetooth Test Specification Version 5.0.0  
An RSSI circuit with 60 dB nominal range is available and suitable for use in some applications. However, the  
accuracy is not guaranteed and should be thoughoughly evaluated in the final application to ensure it meets the  
desired needs. Typically the RSSI value should be ignored in most applications.  
3 Functional Description  
This section provides a functional description of the EM9304. A block diagram of the IC is described in Section  
3.1. There are subsections on the digital processing capability, CPU, memories, applications and patch  
loading, peripherals, and security. Peripherals are described in detail in Section 3.2. The power management  
is described in Section 3.3, including subsections on the power supply domains, the DCDC converter function,  
power supply monitoring, chip enable, and the reset structure. The operating modes are described in Section  
3.4, including a description of the start-up procedure and the sleep mode store and restoration procedures.  
The clock structure is described in Section 3.5.  
3.1 Block Diagram  
A block diagram of the EM9304 is shown in Figure 10 with the power management configured in DCDC  
Step-Down Configuration. The main blocks are the Digital Processing Block (DPR), the RF block, the  
Power Management Logic (PML), the Power Management Blocks, and the General Purpose Input Output  
blocks (GPIO).  
The Power Management Blocks are scattered throughout the design and will be described first. The  
battery is connected to VBAT1 and VBAT2. The DCDC block generates VCC through the switching node  
and external filter. (VCC is optionally generated by the LDO_VCC block if the external filter is not present.)  
A number of power management blocks are connected to VBAT2 including a low-power bandgap voltage  
reference circuit (BGR_PWR), a supply voltage level detector (SVLD), a low drop-out regulator for the  
one-time programmable (OTP) memory (LDO_OTP), a low-frequency RC oscillator (LF_RC), a low-  
frequency crystal oscillator (LF_XTAL), a temperature dependant bias generator (PTAT), and a power-  
on-reset (POR) block. OTP writing requires 2.25V minimum to operate and so the OTP is also connected  
to VBAT1 through a switch. The SVLD uses a precision bandgap (BGR_PWR) voltage reference for  
accurate voltage level. The main low drop-out regulators for the IC are connected to VCC, which include  
three regulators for the RF block (LDO_PA for the power amplifier, LDO_PLL for the frequency  
synthesizer, and LDO_RF for the remaining RF circuits), the DPR block (LDO_DIG), and a linear regulator  
used for sleep mode (LDO_SLEEP). The DPR uses BGR_PWR for a voltage reference, while the RF  
regulators use a low-noise bandgap circuit (BGR_RF) which is only powered when the RF block is active.  
The LF_XTAL block operation is optional but requires an external 32.768kHz quartz crystal if used.  
The power management logic (PML) is powered from LDO_DIG when the EM9304 is in active mode and  
by LDO_SLEEP when in sleep mode. (The modes of the EM9304 are described in Section 3.4.) The  
PML block includes digital control circuits for the clock, reset, pads, DCDC converter, analog circuits, and  
other system functions. The sleep timer is also included in the PML and is driven by the active low-  
frequency oscillator (LF_RC or LF_XTAL) to track when it is time to come out of sleep mode.  
The DPR includes the central processing unit (CPU), memory, and peripherals. Memories includes 2 x  
4kB and one 12kB SRAM for data and retention, one 8kB SRAM for data without retention, one 4k SRAM  
for the dynamic program jump table which is optionally retained, one 48k SRAM for program development  
and debug, and a 128k instruction ROM plus 8kB data ROM for the dedicated chip firmware (contains the  
start-up program, hardware drivers, scheduler, memory manager, Bluetooth link-layer, and the Bluetooth  
stack). Peripherals include two timers (a protocol timer and a universal timer), a UART, an SPI master,  
SPI slave, I2C master, and GPIO control. The DPR is powered from LDO_DIG, but has several power  
domains for each memory. The GPIO themselves are shown as a separate block because they are  
powered by a separate supply voltage (VIO) and can drive an external load.  
The RF block operates at 2.4GHz and includes a transmitter (TX) with a programmable power amplifier  
(PA), a receiver (RX), and a phase-locked loop (PLL) frequency synthesizer. The PLL includes a high  
frequency crystal oscillator (HF_XTAL), which requires an external 48MHz quartz crystal. The RF has a  
significant portion implemented in logic including the modem, packet processing, and encryption, which  
is interfaced to the DPR CPU bus.  
24  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
EM9304  
Level shifters (LS) are included between the various power domains to prevent cross-domain currents.  
VCC  
TX  
LDO  
PA  
VBAT1  
DCDC  
PA  
SW_DCDC  
Bypass  
LDO  
RF  
LDO VCC  
LDO  
PLL  
RX / PLL  
BGR  
PWR  
VBAT2  
SVL D  
BGR  
RF  
HF  
XTAL  
LDO  
OTP  
RF IP  
LDO  
DIG  
SW  
OTP  
LDO  
SLEEP  
LS  
PML  
LS  
DPR  
LS  
LF  
RC  
Timers  
UART  
Clk/reset  
co ntrol  
S l eep  
timer  
CPU  
HF  
RC  
RFIP  
Dom ain  
co ntrol  
RAM  
ROM  
GPIO  
SPI Slave  
DCDC  
co ntrol  
A nalo g  
co ntrol  
PTAT  
POR  
I2C  
Master  
Pad  
co ntrol  
System  
co ntrol  
SPI  
Master  
LF  
XTAL  
VIO GPIO  
Figure 10: Block Diagram Configured In Step-Down Configuration  
3.1.1 Digital Processing  
The digital process block (DPR) is designed as CPU based system with closed coupled instruction  
and data memories and peripherals connected as slaves to a bus. All data and control  
transactions are done by register access without DMA control. The RF block is connected as a  
peripheral device.  
3.1.2 CPU  
The CPU is a 32-bit ARC EM4 V3.2 by Synopsys, with an integrated floating point unit (FPU),  
which is optimized for area, power, and performance efficiency. The ARC’s RISC pipe-lined  
architecture with mostly single-cycle operations is approximately 30% more efficient than other  
popular 32-bit CPUs. Effective use of the sleep instruction minimizes power consumption. The  
CPU is awakened on an interrupt, quickly executes the required functions with a 24MHz clock,  
and returns to sleep. A hardware interrupt handler is implemented with several interrupt levels in  
order to define high and low priority functions.  
25  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
EM9304  
There are four additional CPU coprocessors: 1) an AES-128 crypto engine, 2) LOG2, 3)  
JLI_Rebase, and 4) a CRC calculator. Dedicated CPU instructions are defined to run AES  
encryption/decryption, calculate a log2() function, a function to help with rebasing the JLI table,  
and a function to calculate CRC values respectively.  
The ARC processor is supported with a commercially available MetaWare toolkit (compiler, linker,  
debugger, etc.) and free GCC tools. An integrated development environment (IDE) and software  
development kit (SDK) customized for the EM9304 implementation, can easily be used to link to  
functions embedded in ROM, implement patches, implement code in RAM or OTP, and execute  
code from RAM or OTP. A 4-wire JTAG interface is provided in the QFN package format for  
debugging.  
3.1.2.1 Floating Point Unit  
The ARC also includes a Floating Point Unit (FPU) compliant with the IEEE 754-2008  
specification:  
o
o
Full support for quiet and signaling NaN, infinity and sub-normals  
Support for all IEEE specified rounding modes  
The FPU has single precision hardware support for multiply, add, subtract, integer/float  
conversions, compare, divide, and square root. All FPU operations are supported by the  
Metaware compiler for ARC EM4  
3.1.3 Memories  
Code memory is split to ROM, RAM and OTP and use is optimized for power consumption. In  
sleep mode ROM can be shut off without losing its contents while RAM will lose its contents and  
needs to be reloaded. Therefore all critical functions for Bluetooth low energy controller and host  
are implemented in the ROM.  
48kB RAM is available for application and patch development. These can then be moved into  
OTP for production. The patching system is based on using instruction index tables and  
dedicated CPU instructions. (Refer to Section 5.3.1.4) All functions that are to be patched must  
use index table call. The index table is loaded from ROM into RAM and rebuilt during the boot  
process. It is also rebuilt when waking from sleep mode if IRAM0 is not specified for retention.  
28kB of RAM is provided for data. Either 4kB, 8kB, or 20kB of that data RAM can be specified  
as retention memory which is kept active during sleep mode at the expense of additional leakage  
current. Data in non-retention memory is lost during sleep mode.  
128kB OTP is available for instructions or data. Trimming, configuration data, Bluetooth profiles  
and services, an application, and code patches can be installed into OTP during manufacturing  
or at a later time in the field using the over-the-air firmware (FOTA) updating mechanism. Code  
can be executed from OTP or copied to RAM for execution, whichever is more power efficient.  
The EM9304 memories are described in Table 22. Refer to Section 5.2.1 for more details.  
26  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
EM9304  
Table 22: Memories  
Name  
Type  
Size  
Usage  
CPU program, boot, LL, Host  
RAM Retention  
Address Range  
0x000000  
0x01FFFF  
0x020000  
0x02BFFF  
0x030000  
0x030FFF  
0x031000  
0x0FFFFF  
0x100000  
0x11FFFF  
0x120000  
0x7FFFFF  
0x800000  
0x800FFF  
0x801000  
0x801FFF  
0x802000  
0x804FFF  
0x805000  
0x806FFF  
0x807000  
0x807FFF  
0x808000  
0x809FFF  
IROM  
ROM  
128kB  
CPU program, to be loaded from No  
OTP or serial interface  
IRAM1  
IRAM0  
Empty  
OTP  
SRAM  
SRAM  
48kB  
4kB  
Optional  
CPU instruction index table  
N/A  
OTP  
128kB  
CPU program, profiles, applications  
Empty  
DRAM0  
DRAM1  
DRAM2  
DRAM3  
Empty  
DROM  
Yes  
SRAM  
SRAM  
SRAM  
SRAM  
4kB  
4kB  
12kB  
8kB  
CPU data, unique ID, configuration  
Optional  
Optional  
No  
CPU data  
CPU data  
CPU data  
ROM  
8kB  
SW constants  
3.1.4 Peripherals  
Peripherals include an I2C master, SPI master, UART, SPI slave, GPIO, and timers. These are  
discussed in detail in Section 3.2.  
3.1.5 Applications and Patch Loading  
The DPR can be configured as a Bluetooth controller or host, software can be developed in RAM,  
and software can be permanently installed in OTP.  
3.1.5.1 Bluetooth Controller  
When configured as a Bluetooth controller, the GPIO is configured as an SPI slave as the HCI  
transport layer by default. Alternatively the GPIO can be configured as a UART to be used for  
the HCI transport layer. In this configuration, the EM9304 responds to all valid HCI commands  
on the activated transport layer and generates the proper HCI events.  
3.1.5.2 Bluetooth Host  
When configured as a Bluetooth host, the GPIO is configured as an SPI slave as the ACI transport  
layer by default. Alternatively the GPIO can be configured as a UART to be used for the ACI  
transport layer. In this configuration, the EM9304 responds to all valid ACI commands on the  
activated transport layer and generates the proper ACI events.  
3.1.5.3 Software Development  
When configured for software development, software can be developed with the ARC EM4  
Metaware IDE and downloaded into SRAM using the proper JTAG programmer (not included). A  
software development kit (SDK) can be obtained from EM Microelectronic with supporting  
functions, API, and examples. Note the WLCSP version does not have the proper JTAG pins for  
software development; only the QFN version can be used. A hardware development kit (DVK)  
can be obtained from EM Microelectronic with the proper package version and a configurable  
PCB.  
Additionally, software can be loaded into RAM from external EEPROM or Flash through the I2C  
or SPI interface, or from an external microcontroller.  
3.1.5.4 Software Installation  
After proper software development and verification, the object code can be loaded into OTP using  
tools supplied by EM Microelectronic. Object code examples include link-layer or stack patches,  
27  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
EM9304  
user defined functions (vendor specific HCI commands, for example), Bluetooth profiles, or a  
small Bluetooth application such as a sensor beacon.  
3.1.6 Security  
The security features are implemented in a combination of digital hardware and software functions  
which are described in Table 23. A hardware based true random number generator is  
implemented which complies with the NIST 800-90A standard. Packet encryption and decryption  
is implemented in hardware with an AES-128 core embedded in-line with the RF packet processor  
block which allows the operation to be performed on the fly. (A second AES-128 block is included  
for non-real-time operation.) Finally, the EEC P-256 function is implemented in software for key  
generation.  
Table 23: Security Features  
Bluetooth  
Specification  
Feature  
Implementation  
True RNG based on logic  
Pseudo RNG: NIST, Recommendation for Random Number Generation  
Using Deterministic Random Bit Generators, Special Publication 800-  
90A, January 2012  
Vol 2, Part H,  
Section 2  
Random data generation  
Variant with block cipher (AES)  
Packet encryption and  
authentication  
HW block in RF IP packet processor with AES core embedded to  
compute MIC and encrypt/decrypt a packet on the fly  
Vol 6, Part E  
Vol 3, Part H,  
Section 2.4  
Key generation  
Implemented in SW included ECC P-256 function  
3.2 Peripherals  
Peripherals include an I2C master, SPI master, UART, SPI slave, GPIO, and timers. The SPI slave  
includes flow control for maximum transfer efficiency. The I2C master and SPI master have 16 byte  
buffers. The UART slave and SPI slave have FIFOs implemented with the following features:  
64 byte FIFOs for reception (RX) and transmission (TX)  
1, 2, 3 or 4 byte register reads from RX FIFO or writes to TX FIFO  
FIFO status register information:  
o
o
o
o
o
TX FIFO empty  
TX FIFO exceeds user defined limit  
RX FIFO exceeds user defined limit  
RX FIFO full  
Number of bytes in each FIFO.  
Individual FIFO flush commands to remove all content  
Interrupt vectors:  
o
TX interrupts:  
.
.
.
.
Byte sent  
TX FIFO empty  
TX FIFO limit  
TX FIFO underflow  
o RX interrupts:  
.
.
.
.
Byte received  
RX FIFO full  
RX FIFO limit  
RX FIFO overflow  
o Additional UART interrupts  
.
.
Frame error detected (wrong stop bit)  
Parity error detected  
3.2.1 I2C Master  
The I2C master peripheral supports following features in addition to the FIFOs:  
Supported speeds:  
Standard mode (up to 100 kbps)  
.
28  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
 
EM9304  
.
.
Fast mode (up to 400 kbps)  
Speed is configurable by register  
Clock stretching  
Addressing modes:  
.
7-bit device addressing mode  
I2C enable/disable  
16 byte RX buffer for reception and 16 byte TX buffer for transmission  
I2C transactions:  
o
Write: 1) start bit, 2) device address, 3) memory/register address to write, 4) data to  
write (N bytes), 5) stop bit  
o
o
Simple read: 1) start bit, 2) device address, 3) data to read (N bytes), 4) stop bit  
Complex read: 1) start bit, 2) device address, 3) memory/register address to read,  
4) repeated start bit, 5) device address, 6) data to read (N bytes), 7) stop bit  
I2C Device address in separate register with configurable length (7 or 10 bits)  
Memory/register address to read/write in separate register, 1 bytes, configurable  
length  
o
o
o
Number of bytes to send/receive can be 1-256; sending/receiving started by writing  
to control register  
Number of bytes sent/received in last transaction  
Stopping current transaction (after finishing current byte)  
Status flags:  
o
o
o
o
o
I2C transaction status (busy flag)  
Start condition detected  
Stop condition detected  
No ACK detected  
Clock stretching by slave  
IRQs:  
End of sequence  
o
3.2.2 SPI Master  
The SPI master peripheral supports following features in addition to the FIFOs:  
3 wire SPI interface (SCK, MISO, MOSI)  
Note: CSN should be generated through GPIO by software  
o
Full duplex communication  
Configurable clock speed derived from system clock by power of 2, starting at 6MHz  
Clock rates up to 3MHz VIO < 1.9V, and 6MHz VIO>= 1.9V  
Motorola compliant, all 4 SPI clock polarity/phase configurations supported (CPOL = 0,1;  
CPHA = 0,1)  
SPI enable/disable  
16 byte RX buffer for reception and TX buffer for transmission  
One shot mode: Number of bytes to send/receive is configured (1-16 bytes).  
o
Sending/receiving is started by a register write  
Status flags:  
o
IRQs:  
o
Busy  
End of transaction  
Configurable bit order (LSB first or MSB first)  
Note the SPI Master must set a pull resistor to MISO till RDY=1 or tolerate a High-Z state on  
MISO.  
29  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
EM9304  
3.2.3 UART  
The UART peripheral supports following features in addition to the FIFOs:  
2 wire interface without flow control (TX, RX)  
4 wire interface with flow control (TX, RX, CTS, RTS)  
Full duplex communication  
1 start bit, 8 data bits, and 1 stop bit  
Even, odd, or no parity  
Configurable speed  
o
Supported speeds: 9600Bd, 14400Bd, 19200Bd, 28800Bd, 38400Bd, 57600Bd,  
76800Bd, 115200Bd, 230400Bd, 460800Bd, 921600Bd, 1843200Bd  
Other “non-standard” speeds also supported  
o
o
Default speed 115200Bd  
Flow control (CTS, RTS signals) enable/disable  
Separate TX/RX enable  
Configurable bit order (LSB first or MSB first).  
3.2.4 SPI Slave  
The SPI slave peripheral supports following features in addition to the FIFOs:  
4 wire SPI interface (SCK, CSN, MISO, MOSI) with flow control (RDY output signal)  
Half duplex communication, write or read determined by a control byte  
Clock rates up to 8MHz VIO < 1.9V, and 16MHz VIO>= 1.9V  
Motorola compliant:  
o
o
clock polarity CPOL = 0 (clock is inactive low)  
clock phase CPHA = 0 (data is valid on clock rising edge)  
All 4 SPI clock polarity/phase configurations  
SPI enable signal  
Flow control enable/disable  
Configurable bit order (LSB first or MSB first)  
Multi byte transactions (without de-asserting CSN between bytes)  
3.2.4.1 SPI Slave Flow Control  
The SPI Slave flow control can be used in two different ways depending on the SPI Master  
capability or preferences. In all cases the RDY signal is needed and it shall be connected on the  
SPI Master side as an input pin preferably with interrupt capability. The beginning of a SPI  
transaction is always same: the SPI Master asserts CSN to '0', waits until RDY is at '1' and then  
sends 2 header bytes and reads the status bytes STS1 and STS2. The rest of the SPI transaction  
is different depending on the way flow control is used on the SPI Master.  
3.2.4.2 Flow Control Using RDY  
In this case RDY is used as information from EM9304 indicating SPI buffer ready status. The SPI  
Master has to check RDY after each transmitted byte. If RDY is at '1' SPI Master can transmit  
another byte. If RDY is at '0' SPI Master may not transmit another byte and SPI Master has to  
wait until RDY goes to '1'. Once RDY is at '1' again SPI Master can continue to transmit additional  
byte(s). This approach allows SPI Master to send/receive unlimited number of bytes in single SPI  
transaction thanks to RDY providing updated status of SPI buffer after each transmitted byte.  
An example of write transaction using RDY as a flow control during transaction is shown in Figure  
11.  
30  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
EM9304  
Figure 11: SPI Slave Write Transaction with Active Flow Control by Means of RDY  
In this approach, the RDY signal has to be checked by the Master after each transmitted byte  
which may insert gaps into SPI transaction. In case the SPI Master uses DMA, this method might  
be difficult or impossible, unless the DMA can be triggered by the RDY pin.  
3.2.4.3 Flow Control Using Status Byte STS2  
A Master with DMA, using the status byte STS2, can run an SPI transaction without interruptions.  
In this case SPI Master can ignore RDY during the SPI transaction and use instead the status  
byte STS2 to determine the maximum length of the SPI transaction. Once maximum length of  
SPI transaction is known (from STS2), the SPI Master can configure the DMA to realize the rest  
of the SPI transaction. After transmitting the given number of bytes (less than or equal to  
maximum length determined from STS2) SPI transaction shall be finished by de-asserting CSN.  
A new SPI transaction shall start by asserting CSN and reading status bytes to determine  
maximum length of this new transaction.  
Examples of transactions ignoring RDY are shown in Figure 12 and Figure 13.  
Figure 12: SPI Slave Write Transaction  
Figure 13: SPI Read Transaction  
3.2.4.4 SPI Operation  
Each SPI transaction starts by activating CSN. After setting CSN to '0' RDY goes to '0' to indicate  
that SPI interface is not ready for transfer. Once RDY is at '1' it indicates that SPI interface is  
ready for transaction and header bytes can be sent.  
31  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
EM9304  
The control byte (CTRL) sent on MOSI defines type of transaction (read or write). The second  
byte on MOSI is dummy to align with read status data from the Slave and reads 0x00.  
The status byte STS1 on MISO indicates general status of device. The status byte STS2 on MISO  
indicates buffer capacity and it depends on read or write transaction. In case of write transaction  
STS2 contains the number of bytes which can be written into Slave RX buffer. In case of read  
transaction STS2 contains the number of bytes which can be read from Slave TX buffer.  
After receiving header bytes (STS1 and STS2), the SPI Master knows how many bytes can be  
transferred via SPI in the current transaction (read or write) and the rest of SPI transaction is  
standard.  
An SPI transaction can be terminated by the SPI Master at any time. The SPI Master can send  
only a header in order to get the status of the RX/TX buffer and then stop the SPI transaction.  
The type of transaction (read or write) in half duplex mode is defined by CTRL, the 1st byte sent  
by the Master:  
CTRL = 0x81 for a read transaction.  
CTRL = 0x42 for a write transaction.  
The STS1 byte contains the status of the SPI slave.  
STS1 = 0xC0 when slave is ready.  
The STS2 byte contains the maximum number of bytes which can be written into RX FIFO without  
RX FIFO overflow during a write transaction, or the maximum number of bytes which can be read  
from TX FIFO without TX FIFO underflow during a read transaction.  
3.2.4.5 SPI Slave RDY  
RDY signal has following meaning depending on SPI transaction phase:  
1. Data ready (when CSN = '1')  
RDY at '1' indicates SPI Slave has some data to send.  
RDY at '0' indicates SPI Slave has no data to send.  
2. SPI ready (between CSN falling edge and end of 1st header byte)  
RDY at '1' indicates that SPI Slave is ready and SPI transaction can start.  
RDY at '0' indicates that SPI Slave is not ready and SPI transaction cannot start. SPI  
master has to wait until RDY is at '1'.  
3. Buffer ready (between end of 1st header byte and CSN rising edge)  
RDY at '1' indicates that buffer is ready and byte can be written/read  
RDY at '0' indicates that buffer is not ready and byte cannot be written/read. SPI  
master has to wait until RDY is at '1'.  
After asserting CSN and before sending first byte SPI Master checks if RDY is at '1'. This check  
shall be done at least T_RDY (100ns) after asserting CSN. If RDY is at '1' SPI transaction can  
start, if RDY is at '0' SPI master has to wait until RDY is at '1'.  
3.2.5 GPIO  
The GPIO are standard input/output structures with high-drive and pull-up or pull-down capability.  
Level shifters are provided between VIO and the internal supply voltage. An optional input  
debouncer is clocked by the LF RC oscillator divided by a selectable value between 16 and 2048.  
Any GPIO can interrupt the CPU on any input value and are maskable.  
The GPIO functions are listed in Table 24. Available peripherals are UART, SPI slave, SPI  
master, I2C master, timer start/stop and capture, RF active, PA enable, PML mode, 32kHz input,  
and JTAG. The peripherals can be mapped to several different pins in order to optimize the PC  
board layout when connecting it to an external MCU, sensor, or other devices to avoid crossed  
wires when routing the board.  
32  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
EM9304  
Table 24: GPIO Functions  
Blocks  
Pads  
Comment  
GPIO  
all  
General IO function input, output, pull down, pull up  
Programmable mapping  
SPI Slave  
CSN, SCK, MISO, MOSI, RDY  
RX, TX, CTS, RTS  
CSN, SCK, MISO, MOSI  
SCK, SDA  
UART  
Programmable mapping  
SPI Master  
I2C Master  
Programmable mapping  
Programmable mapping  
Timer start/stop  
Timer capture  
Timer clock input  
Timer output  
GPIO0 to GPIO11  
HW start/stop of Universal timer  
HW capture of Universal timer  
External clock of Universal timer  
Output of Universal Timer  
GPIO0 to GPIO11  
RF activity  
GPIO0 to GPIO11  
Output, SW controlled, RF activity monitor  
PA enable  
JTAG  
GPIO0 to GPIO11  
For switching external PA on during TX  
ARC debugging port  
TCK, TMS, TDI, TDO  
The GPIO configuration options are detailed in Table 25. The peripherals can typically be mapped  
to several possible GPIO. If a GPIO can be configured as an input it is marked with an “IN” at the  
appropriate column and the function is shown in the corresponding row. Likewise, if a GPIO can  
be configured as an output it is marked with an “OUT”, and if it can be both an input and output it  
is marked as “INOUT”. Note: to achieve minimum current consumption, no enabled GPIO should  
be left as a floating input.  
The default configuration highlighted in orange uses the GPIO functionsfor GPIO 0-7 and JTAG  
for GPIO 8-11. JTAG is only available on the QFN, which is recommended for development. The  
default software configuration selects SPI slave on GPIO0-4 which can be overridden in OTP.  
Note, the default hardware GPIO configuration is applied briefly during startup and after chip reset  
until the new configuration is read from OTP and applied to the GPIO. This may have unintended  
consequences to your application such as additional current consumption or incorrect logic  
function.  
33  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
EM9304  
Table 25: GPIO Configuration  
3.2.6 Timers  
The EM9304 has 3 types of timers in the system. The first timer is a 32-bit timer driven by the  
32kHz crystal oscillator or low-frequency RC oscillator (divided by 12) and is dedicated to the  
sleep function which controls when the CPU is woken up. The second timer is a 32-bit timer  
driven by the 48MHz crystal oscillator or 24/48MHz RC oscillator and used by the link layer for  
higher-speed protocol related timing. The third timer is a universal timer, which can be used by  
the application.  
There are two universal timers with the following features:  
.
.
.
.
.
.
.
.
.
.
.
32-bit up counter, selectable auto-reload  
clock source: system clock, GPIO  
7-bit pre-scaler  
SW start/stop  
HW start/stop  
input capture on HW events (GPIO)  
input capture on SW event  
limit value  
compare value  
output to GPIO; maximal frequency 12MHz, minimal duty cycle 45/65  
interrupt on limit value, compare and input capture  
3.3 Power Management  
This section describes the EM9304 power management. The DCDC converter is a single-output, step-  
up/down converter with a simple bang-bang regulation. The output voltage is monitored with a supply  
voltage level detector (SVLD) circuit and the regulation is adjusted accordingly. In sleep mode, the DCDC  
converter is off but the output capacitor can optionally be kept charged.  
The power management can be configured in several different modes:  
In DCDC Step-Down Configuration, the battery is connected to VBAT1 and VBAT2. The DCDC  
switching output is connected to VCC.  
In DCDC Step-Up Configuration, the battery is connected to VCC, and VBAT2. The DCDC  
switching output is connected to VBAT1.  
In DCDC Off Configuration, the battery is connected VBAT1, and VBAT2. The DCDC switching  
output is connected to ground, and VCC is connected to a 2.2µF decoupling capacitor. There  
34  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
EM9304  
is a dedicated linear regulator (LDO VCC) between VBAT1 and VCC which creates 1.25V on  
VCC.  
In External-DCDC Configuration, the battery is connected to pads VBAT2, and VCC. The DCDC  
switching output is connected to ground, and VBAT1 is connected to an externally supplied  
voltage with a minimal level of 2.6V.  
3.3.1 Supply Domains  
The supply domains in the device are described in Table 26.  
Table 26: Supply Domains  
Supply  
Configuration  
Range [V]  
Description  
VBAT2  
All  
1.05 - 3.6V  
Input from battery  
Step-Down  
DCDC Off  
1.9 - 3.6V  
Input from battery  
Generated from DCDC switch, external inductor and  
external capacitor  
VBAT1  
Step-Up  
1.9 - 3.4, +/- 100mV  
1.9 - 3.6  
External DCDC  
Step-Down  
Input from external DCDC converter  
Generated from DCDC switch, external inductor, and  
external capacitor  
1.05 – 1.7, +/- 50mV  
1.05 – 1.9V  
Step-Up  
VCC  
Input from battery or external DCDC converter  
Output of LDO VCC, external decoupling capacitor  
External DCDC  
DCDC Off  
1.25, +/- 25mV  
3.3.2 Logic Power Domains  
The logic power domains are described in Table 27 and shown in Figure 14.  
Table 27: Logic Power Domains  
Domain  
Voltage  
Blocks  
Control  
Description  
System controller, reset controller, clock  
controller, pad controller, DC/DC control, data  
RAM  
VDD_P or  
VDD  
VDD_P  
PML, DRAM0  
Always on  
VDD0  
VDD  
DRAM2  
By PML  
Can be used for retention  
DPR, IROM,  
DRAM3  
VDD1  
VDD2  
VDD  
VDD  
By PML  
By CPU  
The minimal set for CPU running  
The complete set for RF operation  
VDD1 must be on at the same time  
RF  
VDD3  
VDD4  
VDD5  
VDD  
VDD  
VDD  
IRAM0  
IRAM1  
DRAM1  
By CPU  
By CPU  
By CPU  
Can be used for retention  
VDD1 must be on at the same time  
Can be used for retention  
OTP core voltage  
VDD1 must be on at the same time  
VDD6  
VDD_OTP  
OTP  
By CPU  
35  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
 
EM9304  
PML  
VDD_P  
CPU  
IRQ  
Timers  
SPI Slave  
GPIO  
RF IP  
VDD2  
DRAM0  
VDD_P  
Switch  
matrix  
OTP  
VDD6  
DRAM1  
VDD5  
IROM  
DRAM3  
UART  
DROM  
I2C  
Master  
IRAM1  
VDD4  
IRAM0  
VDD3  
SPI  
Master  
VDD1  
VDD_P  
DRAM2  
VDD0  
Figure 14: Logic Power Domains  
3.3.3 Supply Monitoring  
The power management configuration is automatically detected by the power management logic  
and setup appropriately. This is accomplished with use of an internal supply voltage level detector  
(SVLD) that can be applied to the following supply domains: VBAT1, VCC, AVDD_RF (internal  
RF supply), and SW_DCDC. The SVLD supply domains are described in Table 28 VBAT1 is  
used to monitor the battery voltage in DCDC Step-Down Configuration or the DCDC control loop  
in DCDC Step-Up Configuration. VCC is used to monitor the battery voltage in DCDC Step-Up  
Configuration or the DCDC control loop in DCDC Step-Down Configuration. AVDD_RF is used  
to monitor the voltage on the RF IP. In case of low-voltage an event is issued.  
Table 28: SVLD Supply Domains  
Supply  
Range  
Step  
Comment/Configuration  
100mV  
4 bits  
Used for battery voltage monitoring  
Step-Down, DCDC Off: battery monitoring  
Step-Up: DCDC control loop  
1.9 –  
3.4V  
VBAT1  
External DCDC: DCDC voltage monitor  
“0010” → 1.05V  
50mV  
4 bits  
Step-Up, External-DCDC: battery monitoring  
Step-Down: DCDC control loop  
DCDC Off: LDO voltage monitor  
Used for RF supply monitoring  
0.95 –  
1.7V  
VCC  
0.94,  
0.99V  
AVDD_RF  
1 bit  
CPU will use the information to inform Host about battery level  
3.3.4 Chip Disable  
There is a specific device mode called chip disable mode, which is activated if the pad ENABLE  
is low or '0'. In this mode all GPIO are floating (Hi-Z), and the supply current is reduced to absolute  
minimum (5nA). Note, when the chip is disabled, digital outputs are put to a Hi-Z condition and  
the logic states are not maintained. This may lead to a misleading state on the RDY pin. The  
firmware is also reset.  
3.3.5 Reset Structure  
The power management reset structures are shown in Table 29. When the battery is inserted, a  
power-on-reset is generated at 470mV and the entire logic is reset. Additionally, the DPR can be  
reset in 4 different ways:  
36  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
 
 
EM9304  
1) VDD power-on-reset  
2) VDD power check  
3) CPU watchdog  
4) Software reset is issued  
Table 29: Reset Structures  
Name  
Condition  
What is reset  
Description  
VDD POR  
VDD PWR-CHK  
VDD> (470;670) mV  
VDD < 0.83V  
The whole logic  
DPR and RF logic  
VTH based reference  
Static comparator  
WATCHDOG  
SW  
CPU watchdog  
DPR and RF logic  
DPR and RF logic  
ARC request processed in PML  
Writing 0xCAFEABAB,0xCDCDBEEF to  
the register RegPmlRes.SWReset  
SWReset register  
3.4 Operating Modes  
3.4.1 Mode Descriptions  
The EM9304 operating modes are described in Table 30. Operating modes are designed to  
optimize the power consumption during operation.  
Table 30: Operating Modes  
Mode  
VDD supply  
Full, high load  
DC/DC on  
Clock  
Description  
Active RC  
(active mode)  
Active XTAL  
(active mode)  
Sleep  
RC  
48MHz  
CPU enabled, logic power domains controlled by CPU  
Full, high load  
DC/DC on  
CPU enabled, logic power domains controlled by CPU,  
RF controlled by CPU  
XTAL  
48MHz  
CPU powered-down; VCC optionally charged (on by default)  
RC  
250kHz  
DC/DC off  
DCCM0 and optionally DCCM1, DCCM2, and ICCM0 in retention mode  
LF RC oscillator with normal precision, PML clock reduced to 250kHz  
(sleep mode)  
Deep Sleep  
CPU powered down, VCC not charged  
DCCM0 and optionally DCCM1, DCCM2, and ICCM0 in retention mode  
RC  
250kHz  
DC/DC off  
None  
LF RC oscillator in low precision operation, PML clock reduced to  
250kHz  
(sleep mode)  
Chip Disable  
None  
Chip disabled  
When the CPU is active, two modes are possible. Active RC mode is used with a high-frequency  
(HF) RC oscillator for fast turn-on and turn-off performance. This can be used to service the  
peripherals, for example. When the RF is required, active XTAL mode is used with a high-  
accuracy crystal oscillator for channel frequency precision required by the RF standards. The  
crystal oscillator takes longer to turn on than the RC oscillator and more energy is consumed  
when in use.  
In the sleep and deep sleep modes, the sleep timer clock (device timing reference) can be  
connected either to the digitally calibrated RF low-frequency (LF) RC oscillator or to the low-  
frequency crystal (LF XTAL) oscillator. If the LF crystal oscillator is used, the LF RC oscillator is  
switched to a relaxed mode with less supply current and less accuracy. LF RC runs all the time  
since it is used for the power management logic. The LF crystal option brings higher clock  
accuracy (about 10 times), which requires a shorter RF window in time for TDMA functions, hence  
lower average current. However, it requires an external crystal component.  
Chip disable mode is provided as the lowest power mode possible with the battery voltage still  
applied to the IC but all functions are disabled.  
37  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
 
EM9304  
3.4.2 Mode Transitions  
The mode transition diagram is shown in Figure 15. When the chip is powered from the OFF  
mode, enabled from chip disabled mode, or woken from sleep or deep sleep modes, it enters the  
active RC mode. Active XTAL mode is then entered if the radio is to be used to send or receive  
data or the HF crystal is required for other reasons. (It is also entered when coming out of sleep  
mode.) When no CPU tasks are pending the CPU is halted. If there is enough time before the  
next pending CPU task sleep mode is entered. Note, when the chip is enabled, it will enter sleep  
mode until a command is received, and so this could be considered the default mode.  
Alternatively, deep sleep mode can be entered by issuing the appropriate command. Sleep mode  
can be disabled by software (during software development, for example) in which case the chip  
will remain in the active state with the CPU halted. The chip can be woken up by the sleep timer  
(scheduled by the link-layer) or from pad activity such as an HCI command and enters active RC  
mode as previously described. Chip disable mode is entered at any time by setting the ENABLE  
pin to logic 0.  
OFF  
No Pending CPU Tasks  
ACTIVE_RC  
GoTo Xtal  
Command  
GoTo RC  
Command  
Sleep timer IRQ or  
Pad (HCI Co mmand)  
ACTIVE_XTAL  
No Pending  
CPU Tasks  
SLEEP  
DEEP_SLEEP  
Enable = ‘0’  
Enable = ‘0’  
Enable = ‘0’  
Enable = ‘1’  
CHIP_DISABLE  
Figure 15: Mode Transitions  
38  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
EM9304  
3.5 Clock Structure  
The device has the following clock sources as shown in Table 31. By default the EM9304 is configured  
to use the internal RC oscillator (lf_rc_clk) as the sleep clock source with frequency calibration enabled.  
If a different sleep clock source is desired (32kHz crystal or external source) a configuration patch is  
necessary to load into OTP.  
Table 31: System Clocks  
Oscillator,  
Name  
Accuracy  
Description  
frequency  
-/+ 10%  
PML system clock when sleep timer needed (on  
during power up)  
2-bit trim from 420-615kHz  
after trimming  
500 ppm after  
calibration  
lf_rc_clk  
RC, 500kHz  
PML system clock when sleep timer not needed  
or running on LF XTAL  
lf_rc_lp_clk  
RC, 500kHz  
+/-40%  
hf_rc_clk  
clk_xtal  
RC, 48MHz  
-/+ 2% at 25C  
20 ppm  
Used as system clock  
XTAL, 48MHz  
Output of RF IP, used as system clock  
Used for Sleep timer  
External oscillator signal can also be applied.  
LF XTAL, 32kHz  
(32.768kHz)  
50 ppm after  
calibration  
lf_xtal_clk  
clk_spi  
SPI slave clock,  
16MHz  
N/A  
SPI (HCI) slave clock  
3.5.1 LF XTAL Modes  
The low-frequency crystal (LF XTAL) block can operate in 3 different modes or disabled, as  
described in Table 32. In the first mode, a crystal is connected between LF_XIN and LF_XOUT  
pads. In the second mode, a full swing logic signal is applied to LF_XIN and the internal amplifier  
is turned off. In the third mode, an analog sine wave is applied to LF_XIN and the internal low-  
noise amplifier is used to amplify the signal to the internal logic level. If LF_XIN or LF_XOUT are  
not used, they shall be left floating.  
Table 32: LF XTAL Modes  
RegPmlMode.LFXtal  
lf_xtal_clk  
Description  
LF XTAL disabled. LF_XIN and  
LF_XOUT to be left open.  
0
‘0’  
LF XTAL enabled, XTAL connected to  
LF_XIN and LF_XOUT  
1
2
clock  
clock  
LF XTAL disabled, 12pF load capacitor  
disconnected, external full swing square  
wave clock signal connected to LF_XIN  
LF XTAL amplifier enabled, 12pF load  
capacitor disconnected, external sine  
wave clock signal connected to LF_XIN  
3
clock  
3.5.2 LF Clock Calibration  
Bluetooth requires a minimum of +/-500ppm timing precision for a connected state. The actual  
communication timing precision is calculated based on the precision of both master and slave  
devices. Better timing precision allows for longer sleep time in between communication slots,  
resulting in lower average power consumption, especially for longer connection intervals.  
Before using the low-frequency (LF) RC clock for protocol timing, it must be calibrated against the  
high-frequency crystal (HF XTAL). Typically the HF XTAL has better than +/-50 ppm versus  
offset, temperature and aging, but this should be confirmed with the specification of the actual  
crystal used. Frequency trimming of the HF XTAL may be required for each application since the  
PCB layout parasitics vary between designs. The EM9304 comes trimmed with the frequency  
centered based on the reference design. The accuracy achieved depends on the length and of  
39  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
 
 
EM9304  
the calibration, the frequency of the calibration and the expected maximum temperature gradient  
of the application. The length and frequency of calibration can be adjusted in the configuration of  
the EM9304.  
Additionally, if a low-frequency crystal is used, the frequency accuracy can also be improved with  
calibration. A typical low cost crystal is centered at room temperature, but can drift to -200ppm  
at both -40 and 85C. These calibration parameters can also be adjusted in the configuration of  
the EM9304.  
Contact EM Microelectronic for further guidance in setting the low-frequency clock calibration  
parameters for your application.  
4 Ordering information  
The EM9304 is available in one version.  
Table 33: Versions  
Version  
Description /Features  
Applications / Comments  
Bluetooth Low Energy 5.0 IC  
Integrated PHY, Link Layer, Stack and Profiles  
128kB One-Time-Programmable Memory  
HCI, ACI, and SOC use cases supported  
Software development kit available for on-chip  
applications  
Standard  
version  
1
4.1 Ordering information  
Table 34: Ordering Information  
Ordering Code  
EM9304V01LF28B  
EM9304V01CS25B  
EM9304V01WW31  
EMDVK9304  
Description  
Packaging  
QFN-28  
Container  
Tape on reel  
Tape on reel  
Wafer container  
Box  
Units per Container  
Bluetooth Low Energy SoC  
Bluetooth Low Energy SoC  
Bluetooth Low Energy SoC  
Development Kit  
2,500  
4,000  
12,000 est.  
1
WLCSP25  
Tested wafer  
4.2 Pin List  
The EM9304 Pin List is shown in Table 35.  
Table 35: Pin List  
QFN-28 WLCSP25  
Name  
Type  
Description  
Pin #  
Pin #  
0
DIE_PAD  
ANT  
Die attach pad, connect to VSS on PCB  
1
A5  
B5  
C5  
B4  
D5  
E5  
E4  
D4  
E3  
E2  
ANT RF single ended antenna  
SUP PA ground  
2
AVSS_PA  
VBAT2  
3
SUP Battery voltage  
4
ENABLE  
LF_XIN  
LF_XOUT  
VCC  
DIG Chip enable  
5
XTAL 32kHz XTAL  
6
XTAL 32kHz XTAL  
7
SUP Analog supply  
8
VIO  
SUP GPIO voltage level  
SUP Battery voltage for DCDC, mode detection  
DCDC Coil; mode detection  
9
VBAT1  
10  
11  
12  
13  
SW_DCDC  
VSS_DCDC DCDC Ground of DCDC switches  
D3  
D2  
VSS  
SUP Logic ground  
GPIO5  
DIG Logic input/output  
40  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
 
 
EM9304  
QFN-28 WLCSP25  
Name  
Type  
Description  
Pin #  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
Pin #  
GPIO6  
GPIO0  
GPIO1  
GPIO2  
GPIO3  
GPIO7  
GPIO4  
GPIO8  
GPIO9  
GPIO10  
GPIO11  
XOUT  
DIG Logic input/output  
DIG Logic input/output  
DIG Logic input/output  
DIG Logic input/output  
DIG Logic input/output  
DIG Logic input/output  
DIG Logic input/output  
DIG Logic input/output  
DIG Logic input/output  
DIG Logic input/output  
DIG Logic input/output  
XTAL 48MHz XTAL  
E1  
D1  
C1  
B1  
A1  
A2  
A3  
XIN  
XTAL 48MHz XTAL  
B3/C3  
AVSS_RF  
SUP RF ground  
NC  
Connect to RF ground  
4.3 QFN Package Marking  
The EM9304 QFN package markings are shown in Table 36. Line A indicates the product number.  
Code B1-3 indicates the product version, code B4 indicates year of assembly, and code B5-6  
indicates package information. Additional marking in line C are used for lot traceability.  
Table 36: QFN-28 Package Marking  
1
E
0
2
M
0
3
9
1
4
3
5
0
6
4
A
B
C
4.4 QFN Package Information  
EM9304 is available in a QFN-28 4mm x 4mm package. The QFN-28 package mechanical drawing is  
shown in Figure 16.  
41  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
EM9304  
BOTTOM VIEW  
4.00 ± 0.10  
DAP SIZE 2.90 x 2.90 mm  
22  
28  
21  
1
C0.35  
2.60 ± 0.10  
0.40 ± 0.10  
15  
7
0.30 REF.  
14  
0.40 BSC.  
8
+0.05  
-0.03  
0.20  
SIDE VIEW  
0.75 ± 0.05  
Figure 16: QFN-28 Mechanical Drawing  
4.5 WLCSP Package Information  
The EM9304 is available as a Wafer Level Chip Scale Package (WLCSP25). The package has in a  
2.340mm x 2.206mm a 5x5 ball array with 0.4mm pitch. Several balls are not in the array to avoid  
interference with the RF performance. The mechanical drawing is summarized in Figure 17.  
Figure 17: WLCSP25 Mechanical Drawing  
4.6 WLCSP Package Marking  
The EM9304 WLCSP package markings are shown in Table 37. Line A indicates the product  
number. Code B1-3 indicates the product version, code B4 indicates year of assembly, and code  
B5-6 indicates package information. Additional marking in line C are used for lot traceability.  
Table 37: WLCSP25 Package Marking  
1
E
0
2
M
0
3
9
1
4
3
5
0
6
4
A
B
C
42  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
 
 
EM9304  
4.7 WLCSP Package Reflow  
Figure 18 shows the typical Temperature / Time Reflow profile for lead-free solder (SnAgCu) with  
recommended parameter values. The specification details are in Table 38. The optimum profile  
may depend on many factors such as the oven type, the solder type, the temperature difference  
across the board, the oven temperature / thermocouples tolerance etc. and must be fine-tuned to  
establish a robust process.  
Figure 18: WLCSP Temperature/Time Reflow Profile  
Table 38: WLCSP Temperature/Time Reflow Specification  
Profile Feature  
Preheat/Soak  
Pb-Free Assembly  
150 °C  
180 °C  
Temperature Min (Tsmin  
)
Temperature Max (Tsmax  
)
Time (ts) from (Tsmin to Tsmax  
)
60-180 seconds  
Ramp-up rate (TL to Tp)  
3 °C/second  
220 °C  
Liquidous temperature (TL)  
30-90 seconds  
Time (tL) maintained above TL  
Peak package body temperature (Tp)  
260 °C  
Time (tp) within 5 °C of the specified Peak  
package body temperature (Tp)  
10-20 seconds  
Ramp-down rate (Tp to TL)  
6 °C/second max.  
43  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
EM9304  
5 Embedded Software  
5.1 Overview  
The EM9304 embedded software or firmware provides an embedded application framework to support  
Bluetooth connectivity and communication when coupled with a link layer and Bluetooth stack. The core  
firmware presents a hardware abstraction layer (HAL) to support a fully integrated stack, and an  
application framework to add optional user applications. The HAL, application framework, and other  
associated functionality is referred to as the core firmware, which excludes the stack.  
The core firmware supports four primary usage modes of operation as described in Table 39.  
Table 39 Modes of Operation  
Usage Modes  
Controller  
Description  
EM9304 controller is used with an external host where the user application  
and the host layers of the stack reside in the external processor or host  
controller. Interaction with the EM9304 controller occurs through the HCI.  
EM9304 controller is used with an external host where the user application  
resides in the external host, and the stack resides in the EM9304.  
Interaction with the EM9304 controller occurs through the ACI.  
The user application and entire stack reside in the EM9304 controller.  
The production test mode of operation provides functionality to support  
Companion  
Application  
Production  
Test  
(PTM)  
Mode production test during manufacturing. PTM supports a limited number of  
HCI commands since the stack and Link Layer are not available when in  
PTM.  
Diagram 1 of Figure 19 shows the usage mode where no user application is present and the Bluetooth  
connectivity is accessed through the HCI by an external host. In this instance, the stack and the user  
application reside in a host controller, so the upper layers of the stack in the EM9304 are not used.  
Diagram 2 of Figure 19 shows the companion mode where the full stack is accessed through ACI by an  
external host.  
1
2
EM9304  
EM9304  
User Application  
User Application  
Bluetooth  
Bluetooth  
External  
Access  
ACI  
Stack Host Layers  
HCI  
ACI  
Stack Host Layers  
HCI  
External  
Access  
Link Layer  
Link Layer  
Core Firmware  
Core Firmware  
Hardware Platform  
Hardware Platform  
Figure 19 Controller and Companion Usage Modes  
44  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
 
EM9304  
The SOC mode of operation is shown in Diagram 3 of Figure 20 shows the scenario where a user  
application is present in the EM9304 controller, which provides the full stack. In this configuration, a  
host is not needed since the complete user application is captured in the EM9304.  
Diagram 4 of Figure 20 shows the Production Test Mode (PTM) usage where the EM9304 is configured  
to support production test during the manufacturing process. PTM is independent of Bluetooth DTM,  
which is a standard Bluetooth mode that allows testing of the radio's Physical Layer by transmitting and  
receiving sequences of test packets. PTM allows for test or support functions to be executed through  
HCI or for custom test applications to be executed from within the EM9304.  
3
4
EM9304  
EM9304  
User Application  
Test Application  
Bluetooth  
Bluetooth  
ACI  
Stack Host Layers  
HCI  
ACI  
Stack Host Layers  
HCI (Limited)  
Link Layer  
Test  
Access  
Link Layer  
Core Firmware  
Core Firmware  
Hardware Platform  
Hardware Platform  
Figure 20 Application and Production Test Modes of Operation  
5.2 Hardware Platform  
The core firmware executes on the Synopsys DesignWare ARC EM4 processor operating at 24MHhz  
connected to a 32-bit AHB-Lite bus. The ARC EM supports two types of closely coupled memories:  
Instruction Closely Coupled Memory and Data Closely Coupled Memory (DCCM). The DCCM is accessed  
by the processor core through load/store memory references, whereas the ICCM is accessible for  
instruction fetch as well as load/store references.  
Although the ARC architecture has physically separate instruction and data paths, the instruction and  
data memories, and the peripheral addresses are mapped to the same address space. The peripheral  
address space provides memory mapped access to peripherals on the AHB bus. The auxiliary address  
space is a separate address space, which is used by the security and encryption libraries.  
5.2.1 Memory Organization  
The memory address space is mapped to IROM, DROM, OTP, DRAM, IRAM, and the peripheral  
register address space.  
Table 22 shows the memory map of the EM9304 controller.  
45  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
EM9304  
5.2.1.1 Instruction Address Space  
The instruction address space is mapped into lower half of addressable space. The instruction  
Closely Coupled Memory (ICCM) consists of three memory types: IROM, IRAM0 and IRAM1.  
The OTP memory is an instruction memory on the AHB-Lite bus.  
The OTP, IRAM, and DRAM memories can be used for data storage. Access to data in IRAM0/1  
is accomplished using the load and store instructions as is done with the DCCM. However, the  
data access time of IRAM0/1 is longer than the access time of DRAM0/1. This is due to IRAM0/1  
residing on the same physical bus as IROM, so instructions and data access are interleaved  
decreasing system performance.  
The core firmware configures IRAM0 to be non-retention and is dedicated to the JLI table.  
5.2.1.2 Data Address Space  
The dedicated data memory address space is mapped to DRAM0, DRAM1, DRAM2, DRAM3,  
and the DROM. The DRAMs reside at the beginning of the upper half of the address space.  
DRAM0 is a retention memory and DRAM1 and DRAM2 are optionally retention memory.  
DRAM3 is a non-retention memory. The memory manager enables persistence for DRAM1  
and DRAM2 as required to support the requested memory allocation. The DROM contains  
constants used by the EM Core, link layer, and Bluetooth stack software.  
5.2.1.3 Peripheral Address Space  
The peripheral address space is located at the end of the address space. The peripheral  
address space provides access to the memory mapped peripheral registers connected to the  
AHB-Lite bus.  
The peripheral memory map is available upon request to EM Microelectronic.  
5.2.2 Embedded Software Memory Usage  
The IROM contains the core firmware, HAL, security and encryption libraries, Bluetooth 5.0 link  
layer, stack, the FOTA profile and the following four Bluetooth services:  
Immediate Alert Service  
Link Loss Service  
Transmit Power Service  
Alpwise Data Exchange Service  
The DROM contains constant data used by the core firmware, HAL, link layer, and stack software.  
The OTP can be used for firmware patches are needed for new functionality, updating exiting  
ROM functionality, adding new initialization or calibration data, profiles, and user data such as  
data logs. If no firmware code patches are present in the OTP, the OTP is turned off, so it  
consumes no power after the firmware power up process is complete.  
DRAM contains the following retention data:  
Stack buffers and retention data when the stack is enabled  
Link layer buffers and retention data  
Driver retention data  
The minimal Bluetooth link layer configuration with the Bluetooth stack disabled, requires only  
DRAM0 to be retention, so DRAM1 and DRAM2 do not consume power while in sleep mode.  
5.3 Software Architecture  
The core firmware and the hardware abstraction layer reside between the hardware and the stack and  
the user application as shown in Figure 21. The embedded software application framework consists of  
the TSOS that provides task prioritization and scheduling, interrupt handling functionality, timer  
functionality, and utility functions such as the firmware update or patch manager. The (HAL) consists of  
46  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
EM9304  
the boot functionality, power manager, and a number of hardware drivers that provide an API to the  
underlying hardware components.  
Bluetooth  
AIC / Stack Host Layers  
User Application  
HCI  
Link Layer  
Core Firmware  
Application Framework  
TSOS  
Memory Manager  
Timers  
Patch Manager  
Program Loader  
Interrupt Ha ndler  
HCI Command Parser  
Utility  
Hardware Abstraction Layer  
Hardware Drivers  
Boot Sequencer  
Power Manager  
Memory Arrays  
Voltage Monitor  
AHB-Lite Bus  
ARC EM Proces sor  
Peripherals  
Hardware Platform  
Figure 21 Simplified System Overview  
The software architecture is composed of a number of functional blocks, which can be divided into two  
categories: application framework functionality or hardware abstraction layer functionality.  
5.3.1 Application Framework  
The application framework provides functional blocks to the support the stack and user  
applications. The application frameworks consists of the TSOS, interrupt handler, timer  
management, and utility functionality such as the firmware patch manager, test mode manager,  
and standard C runtime libraries.  
5.3.1.1 TSOS  
The TSOS is the task management software framework, QP-nano ported to the ARC processor  
with minor customizations and optimizations. TSOS is a run-to-completion, pre-emptive,  
cooperative operating system that is optimized for speed with a minimal ROM footprint. It  
contains a pre-emption kernel with up to 8 levels of priority. Each priority must run a single task  
that may consist of 1 or more finite state machines (FSM). These tasks must be defined before  
TSOS is started.  
Pre-emption  
TSOS uses two forms of pre-emption: synchronous and asynchronous. Pre-emption occurs  
when an event is posted from an ISR or within the currently running task.  
Synchronous Pre-emption  
Synchronous pre-emption occurs when a task issues an event that is handled by a higher  
priority task. In this case, the event will be added to the event queue and the task scheduler is  
immediately called to run the higher priority task. Once all higher priority tasks complete,  
execution resumes in the original task.  
47  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
EM9304  
Asynchronous Pre-emption  
Asynchronous pre-emption occurs when the interrupt handler issues an event handled by a  
higher priority task. In this case, the event will be added to the event queue and the task  
scheduler will run after all interrupts are handled that are higher priority than the tasks. For this,  
a context switch is required to save the state of the previous task and another context switch is  
required to restore the previous task after all higher priority tasks are complete.  
Context Switching  
Context switching is achieved through the use of 8 software interrupts. These correspond to the  
8 priority levels for the TSOS. When asynchronous pre-emption occurs (even in the case where  
the CPU is sleeping and no tasks are in the run queue), the software interrupt for the  
corresponding priority of the event that will be received by a task is triggered. Remember that  
asynchronous pre-emption occurs when a hardware ISR issues an event. Each software  
interrupt is given a unique priority that has no overlap with any other interrupt. All 8 software  
interrupts are lower priority than all other interrupts so that execution may be paused while a  
hardware event is processed.  
Note that when a synchronous pre-emption occurs, the corresponding software interrupt for the  
new priority is not triggered. The TSOS will simply note the new priority and prevent any  
hardware ISR from triggering the higher priority (but even higher priorities may still be triggered  
asynchronously) until the priority drops again. In this case, the event will be processed (again  
in the lower priority software interrupt) after the task currently running at that priority is  
completed. This produces the minimal amount of software interrupts and context switches.  
The other method of handling context switching is to trigger a single software interrupt (again  
at the lowest priority) that will execute the scheduler and run the new task upon exit. This is  
achieved by modifying the stack pointer and return address. Once the task is complete a second  
interrupt is triggered to switch back to the previous task. At this time, the context restoring  
interrupt will remove itself from the stack so that when the interrupt returns, the task returned to  
is the previous pre-empted task. Unfortunately, this requires time to be consumed saving the  
state of the CPU for the context restoring interrupt, only for it to be popped off the stack  
immediately upon entry.  
Since the TSOS only contains a maximum of 8 priority levels and the two interrupt (ARM)  
approach requires more time to context switch, 8 software interrupts were used instead. This  
produces less context switching code and allows for a simpler and assembly free solution. An  
added benefit of the assembly free solution is that any architecture changes (like another  
register that must be saved) on the ARC will not require a change of the context switching code.  
5.3.1.2 Interrupt Handler  
The interrupt handler provides a default interrupt handler for all interrupt vectors. The default  
interrupt handler for a specific interrupt vector is overwritten to provide specific functionality to  
handle to the specific interrupt.  
5.3.1.3 Memory Manager  
The memory manager provides functionality to dynamically allocate memory from a memory  
pool composed of the optionally retention DRAM memories. The persistence option is only  
enabled once a retention memory allocation is made in that memory. Once the persistence  
option is enabled for a DRAM it is not disabled during operation. Functionality is provided to  
allocate either retention or non-retention memory with or without 32-bit alignment enforced. To  
eliminate the complexity and non-determinism of garbage collection, de-allocating or freeing  
memory is not supported. Retention is maintained in sleep mode, but not in deep sleep mode.  
5.3.1.4 Firmware Patch Manager  
The firmware patch manager primarily enables the ROM firmware functions to be updated or  
replaced by writing the updated functionality to the OTP memory and updating the JLI (Jump  
and Link Indexed) table. The JLI table is part of the code-density option in the ARCv2 core that  
is similar to a lookup table mapping a function identifier (index) to an indirect call. All normal  
function calls are replaced with a JLI instruction where the address of the destination function  
48  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
EM9304  
is defined in the JLI table. The JLI table can accommodate 1024 entries where each entry is 4  
bytes in size. Figure 22 depicts an example prior to the application of the firmware patch.  
JLI Table  
void main( void )  
llA( void )  
...  
{
...  
CallA();  
}
..  
CallB();  
allB( void )  
{
...  
}
...  
}
...  
...  
...  
Figure 22 JLI Table Example Prior to Firmware Patch  
Figure 23 depicts an example after the firmware patch is applied.  
JLI Table  
void main( void )  
llA( void )  
...  
{
...  
CallA();  
}
...  
CallB();  
CallB( void )  
...  
}
...  
...  
...  
allPatchB( void )  
}
...  
Figure 23 JLI Table Example After Firmware Patch  
The firmware patch manager handles the transfer of containers to OTP and applies the firmware  
patches found in the OTP or IRAM memory. A container is a block of data formatted in the EM  
container format that may contain firmware patch information, configuration data, and other  
data. The following sequence is performed by the patch manager during the boot process.  
1. Beginning at the start of the OTP memory, read the contents of the OTP sequentially  
searching for the container signature  
2. If the patch file container contains a valid checksum, update the JLI table from the  
contents of the patch file.  
3. If the patch file container does not contain a valid checksum, go to step 1.  
49  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
EM9304  
4. Continue to iterate through the OTP until no valid patch containers are found  
5. Repeat the patch process for the IRAM.  
As newer patch files are identified in the OTP or IRAM, JLI table entries will be overwritten.  
Since OTP memory is in separate power domain, the OTP memory power domain must be  
enabled before accessing the OTP memory. As specified in the boot sequence, the presence  
of content in the OTP must be noted to ensure the power domain remains enabled and is re-  
enabled when resuming from sleep.  
Since the JLI table contents in IRAM will be lost in sleep mode, the JLI table must be  
reconstructed when resuming from sleep. However, it is critical to minimize the time it takes to  
resume from sleep. To minimize the time spent reading the OTP, the following steps are  
required:  
1. During the construction of the JLI table during the boot process, the patch manager will  
construct a list of valid containers for reference when resuming from sleep. This  
eliminates reading the OTP to locate containers.  
2. Processing the OTP will be terminated when the end of the OTP is reached or after  
1024 erased bytes are read. This eliminates unnecessarily reading large sections of  
erased OTP.  
The EM container format is an extensible format specification created to accommodate all data  
stored in the OTP memory while optimizing the identification and processing of that data. Table  
40 defines the format of the container header. The header is 32-bit aligned and the packet size  
must be a multiple of 32 bits. The table column labelled “Offset” shows the offset in bytes of  
each entry.  
Table 40 Container Header Format  
Size  
(Bits)  
Offset Name  
Description  
0
4
8
Signature  
32 Container signature used for search for a container.  
Signature = 0x656D3933 or ASCI “em93”  
Size  
32 Size of the entire container in bytes and used to index to  
next container.  
Format version  
8
Container format version used to identify supported format  
features. The initial value is 0x00 and is incremented for  
each subsequence version revision.  
9
Container type  
8
Identifies the contents of container.  
0x00 = undefined  
0x01 = configuration data  
0x02 = random data  
0x03 = random byte  
0x04 = block data  
0x05 = patch file  
0x06 = unstructured data (user defined)  
0x07 = unstructured data byte  
0x08 = block byte  
0x09 = transfer patch OTP version execute from OTP  
0x0A = transfer patch IRAM version executed from IRAM  
0x0B = configuration data byte  
Container identifier that is unique for a given container  
type.  
10 Container identifier  
8
8
11 Container  
header  
Length of the container header in bytes.  
length  
12 Build number  
16 Firmware build number – used to determine precedence  
of patched functions.  
14 User build number  
16 User defined number used to determine precedence of  
patched functions.  
50  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
EM9304  
16 CRC32  
32 CRC32 of the entire container. If the checksum is invalid,  
the entire container is disregarded.  
The container type defines the type of data encapsulated in the container. Table 41 summarizes  
the container types  
Table 41 Container Types  
Type  
Name  
Description  
0x00 Undefined  
This container type is reserved.  
Contains software configuration options in 32-bit format.  
0x01 Configuration Data  
0x02 Random Data  
Contains random data consisting of address and 32-bit value pairs  
where the 32-bit value is written to the given address.  
0x03 Random Byte  
0x04 Block Data  
Contains random data consisting of address and 8-bit value pairs  
where the 8-bit value is written to the given address using a  
read/modify/write sequence.  
Contains a single address followed by a block of 32-bit values where  
the block of data is written to the given address.  
0x05 Patch File  
Contains a code patch.  
0x06 Unstructured Data  
Contains 1 or more 32-bit values. This data is user defined and is  
available for access through the patch manager API following the  
boot process.  
0x07 Unstructured  
Data Contains 1 or more 8-bit values. This data is user defined and is  
available for access through the patch manager API following the  
boot process.  
Byte  
0x08 Block byte  
Contains a single address followed by a block of 8-bit values where  
the block of data is written to the given address.  
0x09 Transfer Patch OTP OTP version of the transfer patch that executes only if transfer  
version patches are not allowed.  
0x0A Transfer Patch IRAM IRAM version of the transfer patch that executes if transfer patches  
version  
are allowed.  
0x0B Configuration  
Data Contains software configuration options in 8-bit format.  
Byte  
Note that since the header length is given in the container header, additional entries can be  
added to the header following the checksum entry which simplifies the addition of user defined  
entries. Additional entries must be a multiple of 4 bytes.  
The container identifier field is used to uniquely identify containers of a given type. For instance,  
if more than one configuration data containers are desired, a unique identifier can be used to  
distinguish between two independent containers versus one container that is intended to  
replace another container.  
The user build number is zero for EM firmware containers. A nonzero user build number  
identifies the container as a user container.  
If the CRC in the header is invalid, the entire packet is disregarded, and the search for a new  
container begins at the next memory address after the last container signature found.  
The transfer patch type applies to code containers only and provides a means to  
programmatically execute the code from IRAM. During the boot process and when resuming  
from sleep mode, the transfer patch container is copied from OTP to IRAM and the software  
code within is executed from IRAM. This provides the benefit of operating with the OTP  
51  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
EM9304  
powered off in active mode and both the IRAM and OTP powered off during sleep mode. Thus,  
transfer patches reduce the overall current consumption. Transfer patches only apply to HCI  
and ACI modes where application code is not executing from the OTP.  
5.3.2 Hardware Abstraction Layer  
The HAL provides hardware abstraction of the 9304 hardware platform in the form of a boot  
sequencer, power manager, and hardware drivers.  
5.3.2.1 Boot Sequencer  
The boot sequencer is the functional block that executes after the following conditions:  
Transition from powered off to powered on (boot state) – the value of all memory is  
undefined.  
Reset (reset state) – the value of all memory is retained from prior to the reset  
Exit from sleep mode (resume state) – retention memory is retained from prior to sleep, but all non-retention memory  
is unknown.  
5.3.2.2 Power and Sleep Management  
The power manager primarily determines if a sleep mode can be entered. The firmware  
identifies three sleep modes, CPU sleep, sleep, and deep sleep. In CPU sleep mode, the  
CPU is placed in sleep mode with the other system components power on. In sleep mode,  
the CPU is placed in sleep mode, and many of the system components are powered off. Deep  
sleep mode is executed by the core firmware unless specifically commanded through a vendor  
specific HCI command.  
The following sequence of events are executed prior to entering sleep mode.  
1. TSOS enters the idle state.  
2. TSOS calls the power manager’s sleep function.  
3. The sleep function determines if all conditions have been met to enter sleep mode as  
defined below.  
4. The store functions of all driver modules are called to store the configuration data.  
5. Retrieve and store the next protocol timer transaction from the linker layer to determine  
if the radio should be powered on when resuming from sleep.  
6. The sleep function executes the sleep sequence as defined in the “Power Modes”  
section of this datasheet.  
All of the following requirements must be met prior to entering sleep mode:  
TSOS has entered the idle state  
No UART transactions are active or pending  
No SPI transaction are active or pending  
Maximum sleep time reported by the link layer (link layer API) is greater than the  
minimum allowed sleep time plus overhead. The minimum allowed sleep time is  
defined as 15ms plus overhead and derived by the sum of the following time periods.  
o
o
o
o
Time to store the configuration  
Time to restore the configuration  
Time to start HF XTAL  
Additional margin  
When in sleep mode, the JTAG function of the device is powered off, which will result in the  
Metaware debugger disconnecting from the device. The embedded software provides a  
configuration bit is provided that forces the embedded software to substitute CPU sleep for  
sleep. Since CPU sleep does not power off the JTAG function, the debugger will remain  
connected for software debugging.  
5.3.2.3 Voltage Monitor  
The voltage monitor is responsible for providing power level status to the core firmware and link  
layer to limit the use of or disable the power-level sensitive hardware components. The voltage  
monitor is executed after resuming from sleep mode and when commanded by the voltage  
monitor IRQ. It is also executed when starting the RF power domain, although only if the  
previous result is older than 0.5ms. An IRQ from voltage monitor is trigged whenever the  
52  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
EM9304  
voltage drops below a defined limit. The voltage monitor provides functions to identify the  
following conditions:  
Voltage level sufficient to support OTP operations  
Voltage level sufficient to support Bluetooth radio operations  
If the supply voltage drops below a specific level the voltage monitor issues a system  
notification.  
5.3.2.4 Device Drivers  
The device drivers provide a layer of abstraction of the underlying hardware generally through  
memory-mapped registers. All interaction with a hardware component is accomplished  
through the device driver. Table 42 lists all required hardware drivers and the hardware  
component the driver manages.  
Table 42 Device Driver List  
Firmware  
Driver  
Hardware  
Component  
Description  
Advanced Encryption Standard for Bluetooth  
encryption, decryption, and authentication  
General Purpose IO control  
I2C master interface controller (available with code  
patch)  
AES  
AES  
GPIO  
GPIO Top  
I2C Master  
I2C Master  
Interrupt  
Handler  
Interrupt  
Manager  
Interrupt controller  
Power Control PML  
Protocol  
Timer  
Power Management Logic controls the power  
Used for BLE protocol timing  
OTP  
OTP Controller One Time Programmable memory controller  
Sleep Timer  
Radio  
Sleep Timer  
icyTRX  
The only timer active in deep sleep mode  
Bluetooth radio controller  
RC Calibration  
System  
RC Calibration  
RNG  
Calibration system for the RC calibration system  
Random Number Generator used for Bluetooth  
authentication and encryption  
SPI master interface controller (available with code  
patch)  
RNG  
SPI Master  
SPI Master  
SPI Slave  
UART  
SPI Slave  
UART  
SPI slave interface  
UART interface controller  
Universal  
Timer  
Universal Timer General purpose timer active in the active power mode  
5.4 Production Test Mode (PTM)  
PTM is a mode of operation that does not apply configuration options from the OTP or IRAM and does  
not execute any application code. It provides a reduced function set allowing patches in the OTP to be  
safely invalidated. This is particularly useful to regain access to the EM9304 when an errant user  
application has eliminated other means of interacting with the EM9304.  
PTM is entered when GPIO5 is toggled at a 30 KHz rate during the boot process. When PTM is entered,  
all interrupts are disabled except those required for PTM operations. The TSOS is not active, but the  
hardware modules have been initialized through the drivers with default parameters.  
PTM will support a subset of the vendor specific HCI commands listed in the “Vendor Specific HCI  
Commands” section of the document. The PTM operates independent of the link layer. Because the link  
layer will not be active prior to entering PTM, PTM contains functionality to process and execute Bluetooth  
5.0 compliant HCI commands, and produce the Command Complete Event. The HCI transport defaults  
to SPI in PTM.  
53  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
EM9304  
Programming the EM9304 is supported by PTM, which allows the OTP or IRAM to be written through the  
HCI interface using the vendor specific HCI commands for programming, EM_WritePatchStart,  
EM_WritePatchContinue, and EM_WritePatchAbort.  
The programming state is entered when  
EM_WritePatchStart is called, and is terminated by resetting or power down.  
5.5 Software Configuration Options  
The Bluetooth link layer and stack (platform) are configurable through the software configuration options.  
The default values define the configuration that requires the minimum amount of retention memory  
yielding the lowest power consumption. Table 43 lists the platform options.  
Table 43 Software Platform Configuration Options  
Option  
Default  
Value Range  
Maximum link layer connections supported  
1
1 = minimum  
8 = maximum  
Maximum packet payload length  
Bluetooth stack enabled  
Maximum bonds supported  
Bluetooth company ID  
27  
0
27 = minimum  
251 = maximum  
False = HCI enabled  
True = ACI enabled  
0
0 = minimum  
8 = maximum  
0x005a 0x0000 = minimum  
0xFFFF = maximum  
Bluetooth address  
Unique 0x000000000000 = minimum  
0xFFFFFFFFFFFF = maximum  
If the maximum number of bonds supported is set to zero, Bluetooth bonding is disabled. A unique 6 byte  
Bluetooth address is programmed into OTP for each EM9304.  
5.6 Vendor Specific HCI Commands  
All of vendor specific HCI commands are supported by the link layer, and a subset of the commands are  
supported in firmware PTM. The vendor specific HCI command OGF, OCF, and op codes are defined to  
be compatible with those defined for the EM9301 device.  
The EM core firmware provides an API that abstracts the implementation details from the link layer unless  
the HCI command is fully handled by the link layer.  
Table 44 summarizes the vendor specific HCI commands. The column labelled “PTM Support” indicates  
whether the command is supported in firmware PTM. Command names ending in “Ex” are an extension  
of an EM9301 device vendor specific HCI command.  
Table 44 Vendor Specific HCI Commands  
HCI Command  
OGF  
0x3F  
0x3F  
0x3F  
0x3F  
0x3F  
0x3F  
0x3F  
OCF  
Opcode PTM Support  
EM_SetPublicAddress  
EM_SetUartBaudRate  
EM_TransmitterTest  
EM_TransmitterTestEnd  
EM_ReadAtAddress  
EM_ReadContinue  
EM_WriteAtAddress  
0x002  
0x007  
0x011  
0x012  
0x020  
0x021  
0x022  
0xFC02  
0xFC07  
0xFC11  
0xFC12  
0xFC20  
0xFC21  
0xFC22  
No  
No  
No  
No  
Yes  
Yes  
Yes  
54  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
 
EM9304  
HCI Command  
OGF  
0x3F  
0x3F  
0x3F  
0x3F  
0x3F  
0x3F  
0x3F  
0x3F  
0x3F  
0x3F  
0x3F  
0x3F  
0x3F  
0x3F  
0x3F  
0x3F  
OCF  
0x023  
0x024  
0x025  
0x026  
0x027  
0x028  
0x029  
0x02A  
0x02B  
Opcode PTM Support  
EM_WriteContinue  
EM_SetPowerModeEx  
EM_SetRfActivitySignalEx  
EM_SetRfPowerLevelEx  
EM_WritePatchStart  
EM_WritePatchContinue  
EM_WritePatchAbort  
EM_SetClockSource  
EM_SetMemoryMode  
EM_GetMemoryUsage  
EM_SetSleepOptions  
EM_SvldMeasurement  
EM_SetEventMask  
0xFC23  
0xFC24  
0xFC25  
0xFC26  
0xFC27  
0xFC28  
0xFC29  
0xFC2A  
0xFC2B  
Yes  
Yes  
No  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
0x02C 0xFC2C  
0x02D 0xFC2D  
0x02E  
0x02F  
0x032  
0x033  
0x034  
0xFC2E  
0xFC2F  
0xFC32  
0xFC33  
0xFC34  
EM_CpuReset  
EM_CalculateCrc32Ex  
EM_PatchQuery  
5.6.1 EM_SetPublicAddress  
Set the device public address.  
Parameter  
Address  
Size (Bytes) Description  
Opcode: 0xFC02  
6
1
Device public address.  
Return Parameters  
Status  
Standard BT error code.  
A command complete event is generated after the completion of this command.  
55  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
EM9304  
5.6.2 EM_SetUartBaudRate  
Set the UART baud rate to the specified value. After issuing the Command Complete Event, the  
UART baud rate will be changed.  
Parameter  
Baud Rate  
Size (Bytes) Description  
Baud rate selection.  
Opcode: 0xFC07  
1
0x00 = Reserved  
0x01 = Reserved  
0x02 = Reserved  
0x03 =  
9600 Baud  
0x04 = 14400 Baud  
0x05 = 19200 Baud  
0x06 = 28800 Baud  
0x07 = 38400 Baud  
0x08 = 57600 Baud  
0x09 = Reserved  
0x0A = 115200 Baud  
0x0B = 230400 Baud  
0x0C = 460800 Baud  
0x0D = 921600 Baud  
0x0E – 0xFF reserved  
Return Parameters  
Status  
1
Standard BT error code.  
A command complete event is generated after the success reception of this command.  
56  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
EM9304  
5.6.3 EM_TransmitterTest  
Configure and execute the transmitter test. The transmitter test mode, channel number, packet  
length and payload type are configurable. The command is only accepted if there is no Bluetooth  
activity (no advertising, scanning or connection) currently in progress.  
Size  
(Bytes)  
Opcode:  
0xFC11  
Parameter  
Description  
Transmitter Test Mode  
1
Test mode selection.  
0x00 = EM transmitter test  
0x01 = CM (continuously modulated)  
0x02 = CW0 (continuous wave at bit ‘0’)  
0x03 = CW1 (continuous wave modulated)  
0x04 = CWC (continuous wave at center frequency)  
0x05 - 0xFF Reserved  
Channel Number  
1
0x00 – 0x27 = Bluetooth RF channel number (0 – 39)  
0x28 – 0xFF = Reserved  
Packet Length  
1
1
0x00 – 0xFF = Length in bytes of the test packet  
Packet Payload Type  
Packet payload type for EM and CM transmitter test  
modes.  
0x00 = Pseudo-Random bit sequence 9  
0x01 = Pattern of alternating bits ‘11110000’  
0x02 = Pattern of alternating bits ‘10101010’  
0x03 = Pseudo-Random bit sequence 9  
0x04 = Pattern of All ‘1’ bits  
0x05 = Pattern of All ‘0’ bits  
0x06 = Pattern of alternating bits ‘00001111’  
0x07 = Pattern of alternating bits ‘01010101’  
0x08 – 0xFF = Reserved  
Return Parameters  
Status  
1
Standard BT error code.  
EM transmitter test mode (0x00) is similar to the standard transmitter test mode with one added  
benefit. When test mode is terminated with the vendor specific HCI command,  
EM_TransmitterTestEnd, the number of packets transmitted is returned as an event parameter.  
The Bluetooth frequency range is 2402 to 2480 MHz where the frequency for a specific channel  
is  
ƒn = 2402 + 2n MHz where n is the channel number.  
A command complete event is generated after the transmitter test is initiated. This command is  
not supported in PTM.  
5.6.4 EM_TransmitterTestEnd  
Terminate the transmitter test mode and return the number packets sent during the test for EM  
and CM transmitter test modes. The command is only accepted if there is no Bluetooth activity  
(no advertising, scanning or connection).  
Parameter  
None  
Size (Bytes) Description  
Opcode: 0xFC12  
0
1
This command contains no parameters.  
Return Parameters  
Status  
Standard BT error code.  
57  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
EM9304  
Packet Count  
A command complete event is generated after the completion of this command.  
5.6.5 EM_ReadAtAddress  
2
Number of packets transmitted during the test.  
Read one or more bytes at the given address. If the specified data length is greater 64 bytes, an  
invalid parameter error will be returned.  
Parameter  
Start Address  
Data Length  
Return Parameters  
Status  
Size (Bytes) Description  
Opcode: 0xFC20  
4
1
Address to start reading.  
Number of bytes to read up to 64 bytes.  
1
Standard BT error code.  
Data  
Data Length Data read from the specified address.  
A command complete event is generated after the completion of this command.  
5.6.6 EM_ReadContinue  
Read one or more bytes beginning from where the previous read command ended. This allows  
for continuous reads without supplying the address. If the specified data length is greater 64  
bytes, an invalid parameter error will be returned.  
Parameter  
Data Length  
Return Parameters  
Status  
Size (Bytes) Description  
Opcode: 0xFC21  
1
Number of bytes to read up to 64 bytes.  
1
Standard BT error code.  
Data  
Data Length Data read from the specified address.  
A command complete event is generated after the completion of this command.  
5.6.7 EM_WriteAtAddress  
Write one or more bytes at the given address. The number of bytes to write is inferred from the  
HCI packet size and cannot be over 64 bytes.  
Parameter  
Start Address  
Data  
Size (Bytes) Description  
Address to start reading.  
Data Length Data to write to the specified address (up to 64 bytes).  
Opcode: 0xFC22  
4
Return Parameters  
Status  
1
Standard BT error code.  
A command complete event is generated after the completion of this command.  
5.6.8 EM_WriteContinue  
Write one or more bytes beginning from where the previous write command ended. The number  
of bytes to write is inferred from the HCI packet size and cannot be over 64 bytes.  
Parameter  
Data  
Size (Bytes) Description  
Opcode: 0xFC23  
Data Length Data to write (up to 64 bytes).  
Return Parameters  
Status  
1
Standard BT error code.  
A command complete event is generated after the completion of this command.  
58  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
 
EM9304  
5.6.9 EM_SetPowerModeEx  
Enter the specified power mode. If active mode is already active, this command has no effect on  
the power mode.  
Parameter  
Size (Bytes) Description  
Opcode: 0xFC24  
Power mode  
1
0x00 = Active  
0x01 = CPU sleep  
0x02 = Sleep  
0x03 = Deep sleep  
Return Parameters  
Status  
1
Standard BT error code.  
A command complete event is generated prior to issuing the sleep operation, and after entering  
the active power mode.  
5.6.10 EM_SetRfActivitySignalEx  
Enable or disable the RF activity signal on the specified GPIO pin. The activity signal is active  
when the radio is transmitting or receiving a packet. The activity signal can be programmed to  
be active low or active high.  
Parameter  
Size (Bytes) Description  
Opcode: 0xFC25  
RF Signal Enable  
1
0x00 = RF activity signal disabled  
0x01 = RF activity signal enabled active high  
0x02 = RF activity signal enabled active low  
0x03 – 0xFF reserved  
RF Signal GPIO Output  
1
1
GPIO pin number to output the RF activity signal, e.g. 0  
= GPIO0, 1 = GPIO1, etc. Allowed range is 0 to the  
maximum number of GPIOs.  
Return Parameters  
Status  
Standard BT error code.  
A command complete event is generated after the baud rate has been updated.  
5.6.11 EM_SetRfPowerLevelEx  
Set the radio transmit power level. The RF output power level cannot be changed when the radio  
is active. If the command is received while the radio is active, the power level will be changed  
once the radio activity is complete.  
The maximum allowed power level may be limited due to the voltage supply level. The maximum  
allowed transmit power level is returned by this command.  
Parameter  
Size (Bytes) Description  
Opcode: 0xFC26  
Transmit Power Level  
1
Transmit output power level defined in steps from 0 to  
17 (0x11) Values 0x12 – 0xFF are reserved. See the  
data sheet for power step definitions  
Return Parameters  
Status  
1
1
Standard BT error code.  
Max Power Level  
Maximum allowed power level. The returned power level  
is provided as a power step as defined above.  
A command complete event is generated after the completion of this command.  
5.6.12 EM_WritePatchStart  
Write a patch into the desired memory. This command may only be called if one of the following  
conditions is true:  
59  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
 
EM9304  
EM_WritePatchStart has not been called since the chip has rebooted.  
The last EM_WritePatchStart or EM_WritePatchContinue command has returned the  
patch applied status.  
The EM_WritePatchAbort command is sent and returns the command complete  
successful status.  
Parameter  
Size (Bytes) Description  
Opcode: 0xFC27  
0x00 = The patch should be written into IRAM1.  
0x01 = The patch should be written into OTP.  
Destination Memory  
1
0x02 - 0x0FF = Reserved.  
CRC32  
Data  
4
CRC32 of the patch data parameter to ensure correct read  
of this vendor command.  
X
First portion of the patch data that may not exceed 59 bytes  
(X <= 59).  
Return Parameters  
Status  
1
1
Standard BT error code.  
Patch Status  
Status code for the patch process (see table below).  
A command complete event is generated after the completion of this command.  
Status  
Code  
Name  
Meaning  
0x01  
0x02  
0x03  
Patch Applied  
Patch has been successfully and completely written into the  
destination memory. No more action is required.  
Patch Continue  
Bad CRC32  
Patch data has been received and more is needed to  
complete the patching process.  
The CRC32 check of the sequence number and/or data failed.  
The command should be re-sent with the same data to  
continue the patch process. This could indicate one or more  
corrupt bits were read from the transport.  
0x04  
0x05  
Corrupt Patch  
CRC calculation of the container has failed. The patch data  
sent was incorrect and has been written into the destination  
memory in its incorrect form.  
RAM Allocation Error  
Corrupt Container  
The code patch is unable allocate the requested number of  
RAM bytes. The patch has been partially written into the  
destination memory.  
0x06  
0x07  
0x08  
0x09  
The container does not conform to the required format. The  
destination memory is not altered.  
Container Allocation Error A free location could not be found in the desired memory to  
store the container. The destination memory is not altered.  
Write Error  
A write to the desired memory has failed. The container is  
partially written into the destination memory and is corrupt.  
Bad Sequence  
The patching system saw an incorrect order of vendor  
commands or sequence numbers. This could indicate  
EM_WritePatchStart was called in the middle of an upload or  
an invalid sequence number was provided.  
0x0A  
0x0B  
OTP Upload Disallowed  
Unknown  
An OTP patch may not be uploaded if patches are present in  
IRAM.  
An unknown error has occurred during the upload process.  
The destination memory may or may not be corrupt.  
60  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
EM9304  
5.6.13 EM_WritePatchContinue  
Continue to write a patch into the desired memory.  
Parameter  
Size (Bytes) Description  
Opcode: 0xFC28  
Sequence Number  
2
Number for the patch data chunk. The sequence number  
must start at 1 for a new patch and increment only when the  
patch continue status is returned. The sequence may only  
return to 1 for another patch after the EM_WritePatchStart  
command completes successfully.  
CRC32  
Data  
4
CRC32 of the sequence number and patch data  
parameters to ensure correct read of this vendor command.  
X
A portion of the patch data that may not exceed 58 bytes (X  
<= 58).  
Return Parameters  
Status  
1
1
Standard BT error code.  
Patch Status  
Status code for the patch process (see table in the  
EM_WritePatchStart command).  
Patch Address  
4
When the patch applied status code is returned, this field  
contains the address where the patch was written.  
A command complete event is generated after the completion of this command.  
5.6.14 EM_WritePatchAbort  
Abort the write of a patch. Depending on the progress of the patching process and the destination  
memory, a half-written patch may be permanently written into the memory. It is recommended to  
never issue this command unless an unrecoverable patch error occurs.  
Parameter  
Size (Bytes) Description  
Opcode: 0xFC29  
Code Value  
4
The code 0xDEADC0DE must be provided to this vendor  
command for successful completion. Upon successful  
completion, the patch process is reset and a new patch may  
be applied with the EM_WritePatch vendor command.  
Return Parameters  
Status  
1
Standard BT error code.  
A command complete event is generated after the completion of this command.  
5.6.15 EM_SetClockSource  
Select the clock source.  
Parameter  
Size (Bytes) Description  
Opcode: 0xFC2A  
Clock Source  
1
0x00 = High Frequency RC.  
0x01 = High Frequency crystal.  
Return Parameters  
Status  
1
Standard BT error code.  
A command complete event is generated after the baud rate has been updated.  
61  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
EM9304  
5.6.16 EM_SetMemoryMode  
Change the state of the selected memory.  
Parameter  
Size (Bytes) Description  
Opcode: 0xFC2B  
Memory Attribute  
1
0x00 = Power off OTP.  
0x01 = Power on OTP.  
0x02 = Disable DRAM1 memory retention.  
0x03 = Enable DRAM1 memory retention.  
0x04 = Disable DRAM2 memory retention.  
0x05 = Enable DRAM2 memory retention.  
0x06 = Power off IRAM1.  
0x07 = Power on IRAM1.  
0x08 – 0xFF reserved  
Return Parameters  
Status  
1
Standard BT error code.  
A command complete event is generated after the specified memory attribute has been set.  
5.6.17 EM_GetMemoryUsage  
Select the high frequency clock source.  
Parameter Size (Bytes) Description  
Opcode: 0xFC2C  
This command contains no parameters.  
None  
0
Return Parameters  
Status  
1
4
4
4
4
Standard BT error code.  
Memory Pool Size  
Retention Memory Used  
Non-retention Memory Used  
Retention Memory Reserved  
Total size of the memory pool in bytes.  
Retention memory used in bytes.  
Non-retention memory used in bytes.  
Size in bytes of memory reserved as retention  
memory.  
Memory reserved as retention memory can be used for non-retention data, but the data will be  
maintained in sleep mode. A command complete event is generated containing the memory  
usage statistics.  
5.6.18 EM_SetSleepOptions  
Enable or disable sleep mode.  
Parameter  
Size (Bytes) Description  
Opcode: 0xFC2D  
0x00 = Disable automatic sleep mode.  
0x01 = Enable automatic sleep mode.  
Sleep Options Settings  
1
0x02 – 0xFF reserved  
Return Parameters  
Status  
1
Standard BT error code.  
A command completion event is generated after setting the sleep option.  
62  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
EM9304  
5.6.19 EM_SvldMeasurement  
Get the power configuration and supply voltage level detector (SVLD) value corresponding to the  
SVLD comparator level. The source of the SVLD value VBAT1 in DCDC Step-Down or DCDC  
Off Configuration, and VCC in DCDC Step-Up or External DCDC Configuration.  
Parameter  
None  
Size (Bytes) Description  
Opcode: 0xFC2E  
0
This command contains no parameters.  
Return Parameters  
Status  
1
1
Standard BT error code.  
Power Mode  
0x00 = DCDC Step-Down Configuration.  
0x01 = DCDC Off Configuration.  
0x02 = DCDC Step-Up Configuration.  
0x03 = External DCDC Configuration.  
0x04 – 0xFF reserved  
SVLD Value  
1
SVLD comparator value.  
A command complete event is generated containing the SVLD value.  
5.6.20 EM_SetEventMask  
Enable or disable vendor specific HCI events. The bit position corresponds to the event number  
to enable when set to 0 and to disable when set to 1.  
Parameter  
Mask  
Size (Bytes) Description  
Opcode: 0xFC2F  
4
1
Event mask.  
Return Parameters  
Status  
Standard BT error code.  
A command complete event is generated after the event mask is updated.  
5.6.21 EM_CpuReset  
Execute a CPU reset.  
Parameter  
Size (Bytes) Description  
Opcode: 0xFC32  
None  
0
This command contains no parameters.  
Return Parameters  
Status  
1
Standard BT error code.  
A command complete event is generated prior to issuing the CPU reset operation.  
5.6.22 EM_CalculateCrc32Ex  
Calculate the 32-bit CRC for the specified continuous address range.  
Parameter Size (Bytes) Description  
Opcode: 0xFC2D  
Start Address  
End Address  
Return Parameters  
Status  
4
4
Starting address.  
Ending address.  
1
4
Standard BT error code.  
Calculated CRC value.  
CRC32  
63  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
 
EM9304  
Addresses values outside of the physical memory address space may result in unexpected  
behaviour of the embedded software. A command complete event is generated after the  
completion of this command.  
5.6.23 EM_PatchQuery  
Get the number of containers or patches present and specific information regarding a specific  
patch. This command can be issued in a loop to obtain information about all containers present  
in the OTP and IRAM.  
Parameter  
Size (Bytes) Description  
Opcode: 0xFC34  
Patch Index  
1
Zero-based index of patch beginning with 0 to the number  
of patches minus 1  
Return Parameters  
Status  
1
2
2
4
4
4
4
2
2
1
Standard BT error code.  
Container Count  
Transfer Count  
System State  
Number of containers present.  
Number of containers transferred from OTP to IRAM.  
Patch system state information (see table below).  
Address where the container is located.  
Size of the container  
Container Address  
Container Size  
Container CRC  
Build Number  
Container CRC  
Container build number.  
User Build Number  
Container Flags  
Container user specified ID number.  
Flags indicating how the patch was applied.  
0x00 – Reserved for future use  
0x01 – Container was applied  
0x02 – Container could not allocate memory  
0x03 – Application of container created a gap in the DRAM  
memory space  
0x04 – 0xFF reserved  
Container Version  
Container Type  
1
1
Format version of the container.  
Type of container:  
0x00 – Reserved for future use  
0x01 – Configuration  
0x02 – Write random data consisting of 32-bit address and  
data pairs where the 32-bit data is written to the  
given address  
0x03 – Write random byte data consisting of 32 bit address  
and 8-bit data pairs where the 8-bit data is written  
to the given address  
0x04 – Block write consisting of a single 32-bit address  
followed by one or more 32-bit values  
0x05 – Code patch  
0x06 – Unstructured 32-bit data defined by the user  
0x07 – Unstructured 8-bit data defined by the user  
0x08 – Block write consisting of a single 32-bit address  
followed by one or more 8-bit values  
0x09 – OTP transfer patch that executes from OTP  
0x0A – IRAM transfer patch the executes from IRAM  
0x0B – 0xFF reserved  
Container ID  
1
Container ID.  
64  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
EM9304  
The following table shows the patching system state information:  
Description  
Value  
OTP scan complete  
0x00000001  
0x00000002  
IRAM scan complete  
Reserved  
0x00000004  
Reserved  
0x00000008  
Container present in OTP  
Configuration container present in OTP  
Code patch container present in OTP  
Container present in IRAM  
Configuration container present in IRAM  
Code patch container present in IRAM  
Reserved  
0x00000010  
0x00000020  
0x00000040  
0x00000080  
0x00000100  
0x00000200  
0x00000400  
Reserved  
0x00000800  
Container signature found during scan  
A CRC failure encountered during scan  
Container present  
0x00001000  
0x00002000  
0x00004000  
A code patch in OTP allocated memory  
A code patch in IRAM allocated memory  
A transfer patch is present  
Reserved  
0x00008000  
0x00010000  
0x00020000  
0x00040000 - 0x80000000  
A command complete event is generated after the specified memory attribute has been set.  
5.7 Vendor Specific Events  
Table 45 lists the vendor specific events that are supported. The vendor specific events subevent codes  
are defined to be compatible with those defined for the EM9301 device.  
Table 45 Vendor Specific Events  
HCI Event  
Event Code  
0xFF  
Subevent Code  
0x01  
EM_ActiveStateEntered  
EM_TestModeEntered  
EM_HalNotification  
0xFF  
0x03  
0xFF  
0x04  
5.7.1 EM_ActiveStateEntered  
Report that the active state was entered. This event is sent after one of the following conditions:  
Any hardware reset including POR after link layer is enabled  
Link layer is enabled after exiting from PTM  
Active state is entered after resuming from sleep following the successful execution of the  
EM_SetPowerModeEx HCI command.  
Active state is entered after the host activates the Wakeup pin  
Parameter  
Size (Bytes) Description  
0x01  
Event Code: 0xFF  
Subevent Code  
1
65  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
EM9304  
5.7.2 EM_TestModeEntry  
Report that PTM was entered.  
Parameter  
Size (Bytes) Description  
0x03  
Event Code: 0xFF  
Subevent Code  
1
5.7.3 EM_HalNotification  
Report the HAL notification. Notifications provide information or warnings such as indicating a  
hardware error is pending.  
Parameter  
Size (Bytes) Description  
Event Code: 0xFF  
Subevent Code  
Notification Event  
1
1
0x04  
0x00 = No event  
0x01 = OTP disabled due to voltage level  
0x02 = RF power reduced due to voltage level  
0x03 = RF power increased due to restored voltage level  
0x04 = RF disabled due to voltage level  
0x05 = Power voltage level critical  
0x06 = PLL lock lost  
0x07 = Memory manager returned a null pointer  
0xFF = Unknown error  
5.8 Hardware Error Event Codes  
The hardware error event is a standard Bluetooth event where error codes are vendor defined. Table 46  
defines these vendor specific hardware error codes.  
Table 46 Hardware Event Codes  
Parameter  
Error Code  
Size (Bytes) Description  
Event Code: 0xFF  
1
0x00 = No error  
0x01 = HCI synchronization lost  
0x02 = Reserved  
0x03 = Reserved  
0x04 = RF system error  
0x05 = CPU reset (watchdog)  
0x06 = CPU reset (bus error)  
0x07 = Crystal oscillator start-up error  
0x08 = CRC error in OTP  
0x80 = Device not programmed  
0xFF = Unknown error  
66  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 
 
 
 
EM9304  
6 Changes  
The following changes have been made since datasheet V4.0:  
WLCSP reference design schematic and layout updated in Figure 8.  
IOUT for Voh_high2 corrected in Table 9.  
The ENABLE pin characteristics added in Section 2.6.4 above.  
Clarification of the RF matching network requirement in the reference designs in Sections 1.8  
and 1.9, and the input impedance specification in Table 18.  
The crystal oscillator frequency trimming and startup current adjustments are now  
recommended in Table 19.  
Table 34 commercial name changed (removed “+”)  
Added Section 4.7 regarding reflow  
Unstructured data byte and transfer patch container types added to Table 40 and Table 41.  
OCF corrections to Table 44.  
Supported baud rates updated in Section 5.6.2.  
EM_HalNotifications updated in Section 5.7.3.  
EM Microelectronic-Marin SA (“EM”) makes no warranties for the use of EM products, other than those expressly contained in EM's applicable  
General Terms of Sale, located at http://www.emmicroelectronic.com. EM assumes no responsibility for any errors which may have crept into  
this document, reserves the right to change devices or specifications detailed herein at any time without notice, and does not make any  
commitment to update the information contained herein.  
No licenses to patents or other intellectual property rights of EM are granted in connection with the sale of EM products, neither expressly nor  
implicitly.  
In respect of the intended use of EM products by customer, customer is solely responsible for observing existing patents and other intellectual  
property rights of third parties and for obtaining, as the case may be, the necessary licenses.  
Important note: The use of EM products as components in medical devices and/or medical applications, including but not limited to,  
safety and life supporting systems, where malfunction of such EM products might result in damage to and/or injury or death of  
persons is expressly prohibited, as EM products are neither destined nor qualified for use as components in such medical devices  
and/or medical applications. The prohibited use of EM products in such medical devices and/or medical applications is exclusively at  
the risk of the customer.  
67  
www.emmicroelectronic.com  
Copyright 2017, EM Microelectronic-Marin SA  
9304-DS, Version 4.1, 30-Oct-17  
 

相关型号:

EM9304V01LF28B+

5.0 LOW-ENERGY COMPANION OR SOC
EMMICRO
EOREX
EOREX
EOREX
EOREX
EOREX
EOREX
EOREX
EOREX
EOREX
EOREX
EOREX