MAXIM’S PRODUCTS ARE NOT AUTHORIZED FOR USE AS CRITICAL COMPONENTS IN LIFE SUPPORT DEVICES OR SYSTEMS WITHOUT THE EXPRESS
PRIOR WRITTEN APPROVAL OF THE PRESIDENT AND GENERAL COUNSEL OF MAXIM INTEGRATED PRODUCTS, INC.
As used herein
Life support devices or systems are devices which (a) are intended for surgical implant into the body, or (b) support or sustain life and whose failure to perform
when properly used in accordance with instructions for use provided in the labeling can be reasonably expected to result in a significant injury to the user. A critical
component is any component in a life support device or system whose failure to perform can be reasonably expected to cause the failure of the life support device or
system or to affect its safety or effectiveness.
4.4.1.36IOMAN_PADX_CONTROL: Changed "three-state" to "High Impedance" when describing pin driver output states.
Rev.1.3 April 2015Maxim IntegratedPage 2
Page 21
MAX32600 User’s GuideMain Page1.2 Revision Information
VersionSectionChanges
6.4.1.3PMUn_LOOP: Corrected descriptions for counter_0 and counter_1 fields.
8.2.1Graphic and label corrections to Figures 8.1, 8.2, 8.3, and 8.4.
8.2.2.1.4AFE_CTRL2: Corrected field and value descriptions for dacout_en0, dacout_en1, dacout_en2, and dacout_en3.
Rev.1.3 April 2015Maxim IntegratedPage 3
Page 22
MAX32600 User’s GuideIntroduction
2Introduction
The MAX32600 User Guide is targeted to hardware, embedded firmware and application developers. This guide provides information on how to use and configure
and use the MAX32600 memory, peripherals and registers. For ordering information, complete feature sets, package information, and electrical specifications, refer
to the MAX32600 data sheet.
Related Documents
• Cortex®-M3 Technical Reference Manual available from www.arm.com
• MAX32600 data sheet
ARM and Cortex are registered trademarks of ARM limited
2.1Overview
The MAX32600 is a low-power, mixed-signal microcontroller that variety of applications, including integration in wearable medical devices, pulse oximetry measurement, galvanic skin response measurement, and blood glucose metering. It is based on the ARM Cortex-M3 32-bit core targeted for a maximum operating frequency
of 24MHz.
Application code on the MAX32600 runs from an onboard program flash memory (64 KB to 256 KB), with 16 KB to 32 KB SRAM available for general application
use. A 2 KB instruction cache improves execution throughput, and a transparent code scrambling interface is used to protect customer intellectual property residing
in the program flash memory.
Key analog peripherals on the MAX32600 include a 16-bit ADC with an onboard PGA/MUX front end. This ADC is designed to accept inputs from up to sixteen
single-ended pins or eight differential pairs. For analog output functions, there are two 12-bit voltage output DACs, two 8-bit voltage output DACs, four uncommitted
op amps, four SPST switches, and four uncommitted ground switches.
The MAX32600 includes a wide variety of digital communications and interface peripherals. An onboard LCD controller (available on the standard 12mm x 12mm
package) can be used to direct drive up to 40 segments. Other communication peripherals include a USB 2.0 slave interface, three SPI master ports, master and
slave I2C interfaces, and two UART ports.
Rev.1.3 April 2015Maxim IntegratedPage 4
Page 23
MAX32600 User’s GuideIntroduction2.1 Overview
Figure 2.1: Block Diagram
Rev.1.3 April 2015Maxim IntegratedPage 5
Page 24
MAX32600 User’s GuideIntroduction2.2 Core and Architecture
2.2Core and Architecture
ARM®Cortex®-M3 Core
The MAX32600 is based on the ARM Cortex-M3 32-bit RISC CPU, which implements the ARMv7-M architectural profile. The implementation of the Cortex-M3 core
used in the MAX32600 is targeted for a maximum operating frequency of 24MHz and provides the following features.
• 32-bit data path with mixed 16-bit and 32-bit instructions (Thumb-2 instruction set)
• Single cycle multiplication and hardware-based division operations
• Nested vectored interrupt controller (NVIC) with multiple interrupt priority levels and nested interrupt support
• 4GB total memory space, shared by code memory, data memory, and peripheral registers
• Low power, highly energy efficient core reduces power consumption
• Built-in debug functionality and tracing with JTAG port (connects to internal Debug Access Port)
• Power saving sleep mode(s)
2.2.1 Core Parameters
When the Cortex-M3 core is instantiated in a design, values must be selected for configurable parameters in the core. For the MAX32600 design, core parameters
have been selected as shown below.
ParameterValueDescription
NUM_IRQ48Number of Interrupts supported by the Cortex-M3
LVL_WIDTH3Specifies the number of bits of interrupt priority levels supported. At a width of three, there are
eight levels supported. At a width of eight (the maximum allowed), 256 levels are supported.
MPU_PRESENT0The MPU (memory protection unit) is not included on this device.
BB_PRESENT1Bit-banding (memory mapped bit) operations are supported on this device.
AHB_CONST_CTRL1Specifies whether the external AHB-Lite buses maintain control information during wait stated
transfers.
DEBUG_LVL3Full debug with data matching. All debug functionality is present including data matching for
watchpoint generation.
TRACE_LVL0Standard trace. ITM, TPIU, and DWT triggers and counters are present. ETM and HTM port
are not present.
Rev.1.3 April 2015Maxim IntegratedPage 6
Page 25
MAX32600 User’s GuideIntroduction2.2 Core and Architecture
ParameterValueDescription
RESET_ALL_REGS1Registers are set to a known reset state.
JTAG_PRESENT1JTAG Debug Access Port is included on this design.
CLKGATE_PRESENT1Architectural gates are included to minimize dynamic power dissipation.
OBSERVATION0Additional features to observe processor internal state are not included.
WIC_PRESENT0The Wakeup Interrupt Controller (WIC) block is included on this design.
Rev.1.3 April 2015Maxim IntegratedPage 7
Page 26
MAX32600 User’s GuideIntroduction2.2 Core and Architecture
2.2.2 Generic Memory Map
Figure 2.2: Memory Map
Rev.1.3 April 2015Maxim IntegratedPage 8
Page 27
MAX32600 User’s GuideIntroduction2.2 Core and Architecture
2.2.3 AHB Buses
The standard ARM Advanced High Performance Bus (AHB-Lite version) is used for several different system bus masters on the MAX32600. All buses are 32-bits in
width.
• I-Code: Performs instruction fetches from internal code memory regions. On the MAX32600, accesses to internal program flash memory (for instruction
decoding purposes) are cached to improve execution throughput.
• D-Code: Performs data fetches from program flash memory; this includes literal local constant fetches. These data fetches are not cached, unlike instruction
code fetches.
• System: Performs data read/write and bit-band operations on internal SRAM, and data read/write operations on peripherals (including bit-band operations)
and vendor defined expansion devices in the system area.
NoteBit-band operations are translated internally by the ARM core into a read-modify-write sequence. Only the core itself (when performing instruction
execution) can read or write to locations using the bit-banding function. The bit-banding alias areas, although they are shown on the memory map,
do not exist as separate logical mapped areas; they cannot be accessed by other AHB masters (e.g., the DMA master or the JTAG/PTP master),
since they do not exist at this layer.
2.2.4 APB Buses
The External PPB (private peripheral bus) is a 32-bit bus based on the APB (Advanced Peripheral Bus) standard. It is intended for adding components to the private
peripheral bus area which are not intended for general application use, since privileged operating mode is required to access this area. The MAX32600 does not
currently map any non-core components to this bus area.
The majority of the digital and analog peripherals on the MAX32600 are controlled by registers that are memory mapped into the Peripheral region from address
0x4000_0000 to 0x400F_FFFF (in the bit-banding enabled region). These peripherals are connected to the CPU core using a lower-speed APB peripheral bus
(connected to the System AHB-Lite bus through an AHB-to-APB bridge).
Peripherals which require higher speed access for large data transfers have control/buffer regions mapped to the AHB bus from address 0x4010_0000 to 0x401F_−
FFFF. These regions are designed to allow more rapid data transfer directly through the AHB bus, without having to go through the AHB-to-APB bridge. Peripherals
using this type of interface include SPI, I2C, DAC, ADC, AES, Micro MAA, CRC and USB.
2.2.5 Nested Vectored Interrupt Controller (NVIC)
The MAX32600 includes the standard Nested Vectored Interrupt Controller (NVIC) as implemented for the Cortex-M3 ARM core. The NVIC supports high-speed,
deterministic interrupt response, interrupt masking, and multiple interrupt sources. External interrupts support rising or falling edge trigger mode as well as level
triggered mode.
Rev.1.3 April 2015Maxim IntegratedPage 9
Page 28
MAX32600 User’s GuideIntroduction2.3 Power Supplies and Modes
With the core instantiation parameters given above, the NVIC will support up to 48 distinct interrupt sources (including internal and external interrupts), with programmable interrupt priority of eight priority levels (3-bit width).
2.2.6 ARM Debug
The MAX32600 includes the standard JTAG debug engine as implemented for the Cortex-M3 ARM core. The JTAG TAP interface is supported, but the serial wire
interface is not.
Since this is a standard ARM core component, it is instantiated ‘as-is’ along with the rest of the Cortex-M3 core and cannot be modified to support special requirements
for the MAX32600 design. Accordingly, there are two separate JTAG TAP engines on the MAX32600 - the ARM Debug JTAG and the Maxim Test JTAG. The two
JTAG TAP ports share the same pins; the TSEL pin is used to switch access between the two of them.
The JTAG TAP device address for the MAX32600 is 0x4BA00477.
Standard features supported by the ARM JTAG debug engine include the ability to set up to six breakpoints and two watchpoints, access main system memory and
peripheral registers even when the CPU is running, and pause, trace, or reset the CPU. Because the debug engine is coupled to the CPU only for clocking and reset
purposes, if the debug engine pauses the CPU it is important to note that other peripherals and functions on the MAX32600 are not paused and continue to operate
normally.
2.3Power Supplies and Modes
2.3.1 Digital Supply Voltages
The MAX32600 operates from a main digital supply voltage of 1.8V to 3.6V (VDD). For portable electronic systems, this supply is typically provided by a battery.
Generated supplies V
powered/connected. V
and V
DDIO
is externally available to power GPIO and GPIO-multiplexed peripheral I/O. V
DDIO
are switched automatically to draw from V
REG18
when the USB power supply is present, and from VDDwhen USB is not
DDB
is internally regulated to 1.8V and provides power to
REG18
the digital core; it is also an external option to power GPIO. The POR, power-fail reset, and power fail warning functions all operate from the switched digital supply.
LCD outputs operate from their own dedicated boost converter output rail (V
LCD
).
2.3.2 Analog Supply Voltage
The analog functions on the MAX32600 (such as the ADC, DACs, operational amplifiers, and SPST switches) operate from a separate analog supply voltage rail
which may vary from 2.3V to 3.6V (V
is disconnected/unpowered). Four secondary analog power supplies (V
). This supply is switched automatically and is provided from either V
DDA3
DD3ADC
, V
DDA3ADC
, V
DDA3DAC
, V
DDA3REF
(when USB is present) or VDD(when USB
DDB
) are normally derived from V
. This topology
DDA3
enables optional external filtering circuits.
Rev.1.3 April 2015Maxim IntegratedPage 10
Page 29
MAX32600 User’s GuideIntroduction2.3 Power Supplies and Modes
2.3.3 Onboard Core Voltage Regulator
The MAX32600 includes a dedicated onboard digital supply voltage regulator with a 1.8V nominal output voltage (V
a fixed low-voltage digital supply for the internal CPU core. This regulator derives its voltage output from the main digital supply voltage (VDD) or V
). This internal regulator is used to provide
REG18
DDB
when USB is
present.
2.3.4 Onboard VUSB Voltage Regulator and Automatic Power Switching
The MAX32600 includes a second onboard digital supply voltage regulator which is used when a powered USB bus has been connected to the device. This regulator
takes the 5V (typical) supply from V
from the external digital supply voltage to the V
and regulates it down to a nominal 3.3V output. Automatic power switching features allow the device to switch automatically
BUS
-derived 3.3V supply voltage when USB power is available. This ensures that when the device is connected
BUS
to USB, it uses the power supply available from that source, instead of running from the normal digital supply which will typically be a battery supply for portable
applications.
2.3.5 VRTC Power Supply
A dedicated power supply is used to maintain the state and operation of the most critical components and memories, which can remain powered even when the
rest of the device is shut down in the lowest possible power savings modes. The V
used to wake the MAX32600 after a preset time interval) even when everything else has been powered down. The V
supply ensures that the Real Time Clock can continue running (and can be
RTC
supply is also used to maintain certain
RTC
critical battery-backed areas, such as the power sequencer and associated control registers, the tamper-detect-wiped "key of keys", and certain analog trim shadow
registers.
2.3.6 Power Management Modes
Power management modes supported by the device include stop, standby, and active (PMU and run) modes. These four power modes are: LP0: STOP; LP1:
STANDBY; LP2: PMU; and LP3: RUN. The Wakeup Interrupt Controller (WIC) can be used to wake the device from power saving modes.
Individual power down and clock gating controls are provided as well. This allows user application-specific reductions in power consumption by disabling/powering
down functions that are not currently in use.
2.3.7 Power Supply Monitoring
Several programmable supply voltage monitors are provided, which allow a power fail warning interrupt and/or a system reset to be triggered when the supply voltage
drops below a preset level (depending on the type of power supply and firmware settings). Supply voltage monitors are available to measure the following supplies:
V
, V
DDA3
RTC
, V
REG18
, and V
DD3
.
Rev.1.3 April 2015Maxim IntegratedPage 11
Page 30
MAX32600 User’s GuideIntroduction2.4 Clock Inputs
2.4Clock Inputs
Configuration of time delays are necessary to ensure that the MAX32600 always switches to a valid clock; reference the Clocks and Timers section for detailed
information.
2.4.1 External High Frequency Crystal
The MAX32600 includes a high-frequency crystal oscillator circuit designed to operate with an external crystal. Fundamental mode crystals can be used with the
oscillator circuit up to a frequency of 24MHz. External load capacitors are required depending on the crystal specifications.
An external clock source may also be used by the MAX32600 in place of a high-frequency crystal. For this configuration, the external clock source (which must meet
the electrical/timing requirements given in the datasheet) is connected to the part on the HFXIN pin and the HFXOUT pin is left floating.
2.4.2 32kHz Crystal Oscillator
A 32kHz crystal oscillator (with the 32kHz crystal connected between the 32KIN and 32KOUT pins) is used to generate the 32kHz clock that is used by the Real
Time Clock module.
An external clock source may also be used by the MAX32600 in place of a 32kHz crystal. For this configuration, the external clock source (which must meet the
electrical/timing requirements given in the datasheet) is connected to the part on the 32KIN pin.
2.4.3 48MHz USB Clock PLL
The phase locked loop (PLL) clock generation circuit is used to generate a 48MHz clock which is required for proper operation of the USB device interface. If the
USB interface will not be used, then use of the PLL is optional.
The PLL generates a 48MHz clock using a clock multiplier circuit, which has a 2X mode for use with a 24MHz crystal, a 4X mode for use with a 12MHz crystal, and
a 6X mode for use with an 8MHz crystal. The output of the PLL can be used as a system clock source (after dividing it by two) with a 24MHz frequency.
An internal trimmed relaxation oscillator generates a 24MHz ( ± 1%) clock which can be used as a system clock source. If the USB interface will be used, the PLL is
used to generate a 48MHz ( ± 0.25%) clock. The input clock to the PLL can be an external crystal, an external digital clock source, or the internal relaxation oscillator
can be used if a 32kHz crystal is available to frequency trim the relaxation oscillator.
For optimal performance, the ADC requires a more stable clock source (with less jitter) than can be provided by the relaxation oscillator; the high frequency crystal
oscillator must be used as a system clock source when the ADC is in use. However, in lower sample rate applications, the relaxation oscillator can be used as the
ADC clock source.
Rev.1.3 April 2015Maxim IntegratedPage 12
Page 31
MAX32600 User’s GuideIntroduction2.5 Memory
2.4.5 Cryptographic Internal Oscillator
To reduce opportunities for timing-based analysis and fault injection (clock interference) attacks targeting the cryptographic and security functions of the device (such
as the AES cryptographic engine, the uMAA, and other related functions), a dedicated on-chip oscillator is provided on the MAX32600 which can be used to supply
a separate, isolated clock for use by these functions.
Decoupling these functions from the main system clock allows encryption and decryption operations to take a constant amount of time regardless of the current
system clock rate, and also provides a more variable (and not externally observable) clock to reduce the opportunity for an attacker to perform power or timing
analysis attacks against the cryptographic and security functions.
2.5Memory
2.5.1 Internal Flash Program Memory
The MAX32600 includes from 64 KB to 256 KB (depending on the specific device production option) of internal flash program memory. Internally, the flash memory
has a width of 64-bits. Flash memory must thus be programmed one 64-bit location at a time, which requires two programming operations of 32-bits each. The flash
is divided into logical pages; when erasing the flash, it is possible to erase either a single page (page erase) or the entire flash array (mass erase) in one operation.
For read access, the program flash memory is mapped into the standard code space region beginning at address 0x0000_0000. Modifying the flash memory array
(either program or erase operations) is handled by the flash controller peripheral.
The flash controller also provides the ability to directly program a flash location by writing a 32-bit value to the proper memory location using the AHB bus (as opposed
to setting up the operation directly using the appropriate flash controller peripheral registers). Whether the write operation is triggered by an AHB memory write or by
writing a control sequence to the flash controller registers, the same security and operational restrictions apply in either case. The operation proceeds in the same
manner in both cases regardless of the method that was used to trigger it.
The beginning of program flash memory (starting at address 0x0000_0000) is also the default location for the ARM exception/interrupt vector table. Since this table
contains initialization information such as the reset vector address which is required for the system to properly initialize, this table must be loaded into the flash in
order for the MAX32600 to execute any application code.
The MAX32600 supports multiple size options for the flash memory within the maximum possible space of 256 KB. The actual size of the memory is controlled by a
trim option loaded from the flash information block. When a size smaller than the maximum one is being used, the flash controller will respond to attempts to access
out-of-range addresses within the 256 KB range by setting an interrupt flag and returning a fixed "invalid access" data result pattern.
2.5.2 2 KB Instruction Cache
The 2 KB (512 x 32 or 256 x 64) instruction cache is used to cache the content of recently accessed locations in the program flash array to improve execution
throughput. Instruction fetches go to the instruction cache, which either returns the previously cached data (cache hit) or fetches the requested data from the flash
(cache miss) and stores it for future access.
Rev.1.3 April 2015Maxim IntegratedPage 13
Page 32
MAX32600 User’s GuideIntroduction2.5 Memory
Fetches between the instruction cache and the flash memory go through the code descrambler, so that the content stored in the instruction cache has already been
descrambled.
Code access to the internal data SRAM is not cached; instruction fetches from SRAM are always performed directly. Data fetches (D-Code, as opposed to I-Code
fetches for the purposes of decoding instructions) are also not cached and are performed directly. This includes fetches of local constant literals that are used by
certain ARM instruction op codes.
Firmware has the option to flush the instruction cache manually at any point using a control register. When code mapped into a cached instruction space is updated
(for example, if an in-application programming modification is made to an executable area of program flash), the cache should be flushed to ensure that the latest
version of the code will be accessible and that stale cache contents will not be used instead of the new flash programmed values.
2.5.3 Internal Data SRAM
The internal data SRAM on the MAX32600 ranges from 16 KB to 32 KB in size and has a 32-bit internal width. It is mapped into the SRAM bit-banding access
region beginning at address 0x2000_0000, and so it can be read/written either a full 32-bit word at a time, or a single bit at a time using the bit-band alias region
(beginning at 0x2200_0000). The bit-banding function can only be used when the data SRAM is being accessed by the ARM core itself, since the ARM core handles
the remapping from the bit-banding alias area to a read-modify-write sequence (or single read/mask/shift for a bit read function) of the standard memory area.
The data SRAM can be read or written freely by the application, and can be used for either code or data access. The contents of the data SRAM are not batterybacked. The data SRAM is also used to hold the stack.
The MAX32600 supports multiple SRAM memory sizes within the maximum allowed address space of 32 KB. When a smaller size than the maximum is used (such
as 16 KB) attempts to access out-of-range addresses within the 32 KB maximum range will generate an AHB bus error. The effect of this error condition will be
determined by the AHB master accessing the bus; for example, the ARM core will respond to this error condition by generating a MemFault system exception. Other
bus masters (e.g., the DMA AHB bus master or the JTAG/PTP bus master) may respond differently or ignore the AHB error altogether; the exact results of this
condition are determined by the designer of the AHB master interface block.
2.5.4 Peripheral Management Unit (PMU)
The PMU controller on the MAX32600 provides a generalized, flexible mechanism to perform automatic read and/or write sequences to peripherals and areas of
internal SRAM memory. The PMU controller includes multiple channels which can be connected to different peripherals or memory areas and is capable of operation
during sleep mode.
Peripherals which can be read from or written to using PMU channels (accessing AHB mapped memory areas) include:
• The ADC
• Any of the four DAC instances
• Any of the UART instances
• Any of the SPI instances
Rev.1.3 April 2015Maxim IntegratedPage 14
Page 33
MAX32600 User’s GuideIntroduction2.5 Memory
• Any of the USB endpoint buffers (since they are stored in the main SRAM area)
• The CRC engine
The PMU controller can also be used to read from the program flash memory or any peripheral register area which is normally accessible on the System bus. It does
not, however, have access to the USB control register area mapped to the AHB bus.
2.5.5 Flash Information Block
The flash information block on the MAX32600 allows production trim values and other nonvolatile information that will be written during the production process (e.g.,
device configuration and test details / logging data) to be stored in a separate dedicated instance of internal flash.
The flash information block can be mapped to the AHB bus in the code space area, beginning at byte address location 0x0004_0000 (which is immediately following
the maximum possible flash memory address). This address location is constant even if a smaller flash memory size option is being used by the device.
When the flash information block is mapped to this memory region (between 0x0004_0000 and 0x0004_07FF), it can be accessed in the same manner as the
main flash; that is, it can be read from in code space (although accesses to it are not cached under any circumstances, and its contents are not subject to the
scrambling/descrambling function used by the contents of the main program flash memory). It is possible to write to locations in the flash information block using
either direct AHB writes (which will trigger a 32-bit write operation in the flash controller) or by writing the appropriate sequence directly to the flash controller registers.
However, this mapping of the flash information block (and direct read/write access to its contents) is only intended for testing and trimming purposes during the
factory production test sequence. Once production test of the MAX32600 has completed (or at least the last stage where trim operations are performed has been
completed), a lock option setting will be set in the information block to prevent future modifications to the trim and option settings (except for those which are explicitly
allowed to be set later by the user, such as the DSB access key and the auto-lock security option). Setting the info block lockout setting also removes the information
block from the memory map, which means that the only way to view its contents after that point is by reading the copies of the info block settings that have been
copied by the hardware into the trim shadow registers (which are mapped to a different area in the APB peripheral region).
The flash controller automatically loads trim and other configuration values from the appropriate locations in the flash information block following any system reset.
To prevent misconfiguration of trim and other option settings in the case of a random (i.e., unprogrammed), blank, or corrupted information block, an "info block valid"
field is checked by the flash controller before the remaining locations in the information block memory are scanned. If the info block valid field (which is the first
addressed location in the information block array) does not match the predetermined "valid" key value (which is 0x12345678), the information block is presumed to
be invalid, and instead of the trim registers being set to copies of the data contained in the information block, they are loaded with predetermined "default" values
to prevent undesired or erratic system performance. These default values are designed to allow maximum access (with a minimum of security settings applied) for
ease of testing and configuration.
2.5.6 Flash Memory Controller
The flash memory controller on the MAX32600 handles control and timing signals for programming and erase operations on both the main program flash memory
array and the flash information block. The flash information block is normally written during production test only, and is not generally intended to be modified by the
Rev.1.3 April 2015Maxim IntegratedPage 15
Page 34
MAX32600 User’s GuideIntroduction2.6 Analog Peripherals
user application. Two exceptions to this are the Destructive Security Bypass access key value and the Auto-Lock option value, which may be set by the user by
means of a special procedure even after access to the rest of the information block has been locked out.
Functions provided by the flash controller for use in normal operation include:
• Mass erase of main program flash array
• Page erase of one page in the main program flash array
• Write to one location (programmed 32-bits at a time) in the main program flash array
• Special one-time writes by the user to the DSB Access Key and/or the Auto-Lock option values in the information block
2.6Analog Peripherals
2.6.1 16-Bit ADC with PGA
The MAX32600 includes a 16-bit analog-to-digital converter (ADC) with a 16-channel analog input multiplexer, to allow selection of input from one of 16 input lines
(single-ended mode) or two of eight input pairs (differential mode). The differential mode supports fully differential signal inputs.
The front end PGA allows programmable gain settings of 1X, 2X, 4X, and 8X before the input sample is converted.
The ADC reference voltage is selectable between V
output levels - 1.024V, 1.5V, 2.048V, and 2.5V - based on the 1.23V reference bandgap.
2.6.2 ADC/DAC Internal/External Reference and Programmable Output Buffers
Two programmable reference levels (one used by the ADC, one used by the DACs) are included, and each can be individually set to one of four output levels - 1.024V,
1.5V, 2.048V, and 2.5V.
An external reference can also be provided at the REFADJ pin; if this feature is used, the external reference voltage will be used in place of the 1.23V bandgap
output, and the programmable output levels for the ADC and DAC references will shift accordingly.
2.6.3 12-Bit Voltage Output DACs
The MAX32600 includes two 12-bit voltage output DACs (DAC0, DAC1) which output single-ended voltages. The reference used by these DACs is selectable
between the DAC reference level and the ADC reference level.
Each DAC instance includes PMU channel access to allow output values to be loaded to the DAC directly from memory.
Rev.1.3 April 2015Maxim IntegratedPage 16
and the dedicated ADC reference level. The ADC reference level can be set by software to one of four
AVDD
Page 35
MAX32600 User’s GuideIntroduction2.7 Digital Peripherals
2.6.4 8-Bit Voltage Output DACs
The MAX32600 includes two 8-bit voltage output DACs (DAC2, DAC3) which output single-ended voltages. The reference used by these DACs is selectable between
the DAC reference level and the ADC reference level.
Each DAC instance includes PMU channel access to allow output values to be loaded to the DAC directly from memory.
2.6.5 Uncommitted Op Amps with Comparator Mode
The MAX32600 contains four uncommitted operational amplifiers. Any unused op amp should not be enabled. Each op amp may be switched between amplifier and
comparator mode under software control.
Each op amp contains an integrated internal switch that can be used to short the negative/inverting input pin to the output pin of the op amp under software control,
putting the op amp in a voltage follower mode. In this configuration, the op amp can be used as an output buffer for any of the four DAC outputs.
Any of the four DAC outputs may optionally be internally connected to the inverting or noninverting inputs of one or more of the four op amps, under software control.
2.6.6 Uncommitted SPST Analog Switches
The device contains four uncommitted SPST analog switches which can be opened and closed under software or pulse train control. All SPST switches are open by
default following any reset or power-on reset.
The SPST switches support input voltages from ground to V
2.6.7 Temperature Sensor
The device includes an internal temperature sensor which can be read using the ADC. The MAX32600 also supports a mode for an external temperature sensor.
AVDD
.
2.7Digital Peripherals
2.7.1 GPIO Pins w/Interrupt and Wakeup Capability
The device includes up to eight GPIO ports with eight pins per port for a total of 64 GPIO pins. Pins may be multiplexed with digital peripheral functions and/or LCD
segment output lines. GPIO pins may be individually switched between GPIO and secondary/tertiary peripheral functions using the appropriate control registers.
All GPIO pins can be configured individually by firmware to act as external interrupt sources. All GPIO pins also have the option (which is separate from configuring
a GPIO pin to act as an external interrupt source) to be configured to provide wakeup source inputs to the Wakeup Interrupt Controller (WIC) to wake the device from
power-saving modes.
Rev.1.3 April 2015Maxim IntegratedPage 17
Page 36
MAX32600 User’s GuideIntroduction2.7 Digital Peripherals
All GPIO pins support standard I/O operating modes - input/output mode select, strong drive high/low when in output mode, and selection of weak pullup or high
impedance (three-state) when in input mode.
Certain GPIO pin pairs have current sink capability that allows them to drive an open drain output (optical LED drive) based on a DAC output.
2.7.2 32-Bit Timer/Counters
The device includes four 32-bit timer/counter modules with the following features:
• 32-bit up/down count with auto reload mode
• One-shot or continuous operation mode
• Programmable 16-bit prescaler
• PWM output generation mode
• Capture/compare modes
• External input pin for timer input, clock gating or capture, limited to an input frequency of 1/4 of the peripheral clock
• Timer output pin
• Timer interrupt
Each 32-bit timer/counter module also has the option to be split into two separate 16-bit timers (dual 16-bit timer mode) for a possible total eight timers in the system.
Each 16-bit timer in this pair has the following features:
• 16-bit up/down count with auto reload mode
• One-shot or continuous operation mode
• Programmable 16-bit prescaler (setting is shared by both 16-bit timers in the pair)
• Timer interrupt (separate interrupt for each 16-bit timer in the pair)
2.7.3 Watchdog Timers
The MAX32600 includes two independent watchdog timers (WDT) with window support. The watchdog timers run independently from each other and the processor
and have multiple clock source options for ensuring system stability. The watchdog uses a 32-bit timer with prescaler to generate the watchdog reset. When enabled,
the watchdog timers must be fed/reset prior to timeout or within a specified window of time if window mode is enabled. Failure to do so before the watchdog times
out will result in a watchdog reset event.
Rev.1.3 April 2015Maxim IntegratedPage 18
Page 37
MAX32600 User’s GuideIntroduction2.7 Digital Peripherals
The first watchdog instance (WDT0) can be configured to trigger a system reset (reset of digital core) when it generates a watchdog reset. The second watchdog
instance (WDT1) can be configured to generate a system reboot (equivalent to digital POR event) when it generates a watchdog reset.
The two watchdogs may be configured independently to use either the currently selected system clock or an external clock as the watchdog clock source. The
external clock is selected separately (in system manager) and is the same for both watchdog instances.
2.7.4 32-Bit Real Time Clock with Time of Day Alarm
A binary real-time clock (RTC) keeps the time of day in absolute seconds with 1/256-second resolution. The 32-bit second counter can count up to approximately
140 years and be translated to calendar format by application software. A time-of-day alarm and independent sub-second alarm can cause an interrupt or wake the
device from stop mode.
The independent sub-second alarm runs from the same RTC and allows the application to support interrupts with a minimum interval of approximately 3.9ms. This
creates an additional timer that can be used to measure long periods of time without performance degradation.
2.7.5 SPI (three instances)
The integrated SPI controller provides an independent master-mode-only serial communication channel that communicates synchronously with peripheral devices in
a single or multiple slave system. Depending on the other peripherals and GPIO pins that are in use by the application, up to two separate SPI ports are available for
general use, with a third SPI instance reserved for Bluetooth module communication.
The SPI controllers support half- or full-duplex communications with single, dual, or quad data transmission modes, and can be operated in master mode only.In
master mode, the SPI can transfer data at up to 24 MHz depending on the clock source. In addition, the SPI module supports configuration of active SSEL state
(active low or active high) through the slave active select. DMA is supported for both the transmit and receive buffers.
2.7.6 I²C
The microcontroller integrates an internal I2C bus master/slave for communication with a wide variety of other I2C-enabled peripherals. The I2C bus is a two-wire,
bidirectional bus using a ground line and two bus lines: the serial data line (SDA) and the serial clock line (SCL). Both the SDA and SCL lines must be driven as
open-collector/drain outputs. External resistors (RP) are required to pull the lines to a logic-high state.
The device supports both the master and slave protocols. In the master mode, the device has ownership of the I2C bus, drives the clock, and generates the START
and STOP signals. This allows it to send data to a slave or receive data from a slave as required. In slave mode, the device relies on an externally generated clock
to drive SCL and responds to data and commands only when requested by the I2C master device.
There are two instances of the I2C master interface and one instance of the I2C slave interface supported.
Rev.1.3 April 2015Maxim IntegratedPage 19
Page 38
MAX32600 User’s GuideIntroduction2.7 Digital Peripherals
2.7.7 USB 2.0 Device Slave with Integrated Transceiver
The integrated USB controller is compliant with the USB 2.0 specification, providing full-speed operation as a USB peripheral device. Integrating the USB physical
interface (PHY) allows direct connection to the USB cable, reducing board space and overall system cost. An integrated voltage regulator enables smart switching
between the main supply and V
when connected to a USB host controller.
BUS
The USB Controller contains an integrated AHB bus master which it uses to write to and read from the buffers for each supported/active endpoint. These buffers are
located in the standard system SRAM (in user-configurable locations), so they can also be accessed by firmware directly as well as by the USB DMA engine. A total
of seven endpoint buffers are supported with configurable selection of IN or OUT in addition to endpoint 0, which is read-only.
2.7.8 LCD Controller
The MAX32600 incorporates an LCD controller with a boost regulator that interfaces to common low-voltage displays in the standard 12mm x 12mm package. By
incorporating the LCD controller into the microcontroller, the design requires only an LCD glass rather than a considerably more expensive LCD module. Every
character in an LCD glass is composed of one or more segments, each of which is activated by selecting the appropriate segment and common signal.
The microcontroller can multiplex combinations of up to 40 segment outputs (SEG0 to SEG39) and four common signal outputs (COM0 to COM3). Unused segment
outputs can be used as general-purpose port pins. The segments are easily addressed by writing to dedicated display memory. Once the LCD controller settings
and display memory have been initialized, the 21-byte display memory is periodically scanned, and the segment and common signals are generated automatically
at the selected display frequency. No additional processor overhead is required while the LCD controller is running. Unused display memory can be used for
general-purpose storage.
The design is further simplified and cost reduced by the inclusion of software-adjustable internal voltage-dividers to control display contrast, using either V
DDIO
or an
external voltage. If desired, contrast can also be controlled with an external resistor network.
The features of the LCD controller include the following:
• Automatic LCD segment and common-drive signal generation
• Integrated boost regulator ensures LCD operation down to 2V
• Flexible LCD clock source selection
• Adjustable frame frequency
• Internal voltage-divider resistors eliminate requirement for external components
• Internal adjustable resistor allows contrast adjustment without external components
Four display modes are supported by the LCD controller:
• Static (COM0)
Rev.1.3 April 2015Maxim IntegratedPage 20
Page 39
MAX32600 User’s GuideIntroduction2.8 Security Features
• 1/2 duty multiplexed with 1/2 bias voltages (COM [0:1])
• 1/3 duty multiplexed with 1/3 bias voltages (COM [0:2])
• 1/4 duty multiplexed with 1/3 bias voltages (COM [0:3])
NoteSince the voltages available for LCD drive are V
require two of the LCD voltage output pins (V
LCD2
LCD
, V
LCD
and V
2
×
, V
3
) to be shunted together externally.
LCD1
LCD
×
1
, and V
3
ADJ
1
, the
-bias mode (which requires an output level of V
2
LCD
1
×
) will
2
2.8Security Features
2.8.1 Trust Protection Unit (TPU)
The MAX32600 includes several cryptographic and security peripherals which are grouped together to form the Trust Protection Unit, or TPU. The TPU architecture
includes cryptographic peripherals (such as the AES engine or the Micro MAA) as well as security features (such as the dynamic tamper sensor) which help to form
a secure cryptographic boundary for protecting critical user information within the device.
2.8.2 AES Cryptographic Engine
Another component found in the TPU is an Advanced Encryption Standard (AES) cryptographic engine. This cryptographic engine allows 256-bit AES encryption
and decryption operations to be performed in hardware without processor intervention.
The AES control register selects encryption or decryption mode, controls interrupt notification of the processor upon an operation completion, and selects whether
or not the key expansion (generation of first/last round key) is performed before the encryption or decryption operation begins. For multiple-block encryption or
decryption operations using a single key, the key expansion is performed on the first block only, allowing subsequent operations to complete more quickly by reusing
the previously generated round key information.
The working AES key, cryptographic working space, and input and output parameters (plaintext to ciphertext or vice versa) are stored in a dedicated internal AES
memory. This memory is automatically cleared (rapid zeroization) in the event of a tamper response.
2.8.3 Battery-Backed AES Secure Key Storage
The battery-backed (by the V
supply voltage) RTC module contains a dedicated set of registers which can be used to store a master AES key or other critical
RTC
data. This master AES key can be generated by the device using a PRNG random number sequence, and is stored in a dedicated location in the RTC register area
which will be automatically cleared (rapid zeroization) in the event of a tamper response.
This key is intended for use in encrypting other sensitive information that might be stored in other locations on the device (such as the main system SRAM or the
program flash memory) that will not be automatically wiped in the event of a tamper response. However, if this sensitive information has been encrypted before
Rev.1.3 April 2015Maxim IntegratedPage 21
Page 40
MAX32600 User’s GuideIntroduction2.8 Security Features
storage using an AES master key, then once a tamper response occurs and this master key has been deleted, the sensitive information will not be recoverable by an
attacker at that point; even if the ciphertext version of the information can be recovered in some way, the key that was used to encrypt that data no longer exists.
Another potential use of this key would be to encrypt larger keys that might be stored in long-term, nonvolatile storage on the device (such as a public key, private
key, or certificate, which might be stored in the main program flash). By encrypting the larger keys with the AES master key, they may safely be stored in a nonsecure
location such as the main SRAM or program flash memory; if a tamper response occurs, the AES key will be wiped, effectively destroying the other encrypted keys
or data as well since the encrypted information is now useless.
The Secure Key Storage area (which has a capacity of four 32-bit registers or 128 bits total) does not have to be used for an AES key, however; it can be used for
any type of secure data that must be immediately erased in the event of a tamper response.
2.8.4 Modular Arithmetic Accelerator (MAA)
The MAA cryptographic module is considered to be another component of the TPU. It allows firmware to perform 512-bit large number modular arithmetic operations
which can be used in turn to implement cryptographic algorithms such as RSA. The RSA set of cryptographic operations can be used for public/private cryptography
operations.
The MAA operates from a dedicated internal register file memory which is used to store keys, input and output parameters, and for scratch working space. The MAA
does not use the general purpose system SRAM to store data.
2.8.5 CRC Hardware Block with CRC16 and CRC32
A CRC hardware module is included to provide fast calculations and integrity checking of application software and data. The CRC module supports both CRC-16-−
CCITT and CRC-32 polynomial modes. The CRC-16 operation completes in two clock cycles, while the CRC-32 operation requires four cycles.
Additional features of the CRC module include:
• Programmable start seed
• Programmable start address
• Programmable length
• Direct load or PMU-based memory load support
2.8.6 Code Scrambling
All application code and data loaded into the main program flash memory is scrambled in both content and location by hardware before it is stored in the flash. When
data is retrieved from the flash, it is descrambled before arriving at the program cache (for instruction fetches) or the main data bus (for data fetches). Both the
scrambling and descrambling operations are transparent to the end user.
Rev.1.3 April 2015Maxim IntegratedPage 22
Page 41
MAX32600 User’s GuideMemory, Register Mapping, and Access
3Memory, Register Mapping, and Access
3.1Memory, Register Mapping, and Access Overview
The ARM Cortex-M3 architecture defines a standard memory space for unified code and data access. This memory space is addressed in units of single bytes but is
most typically accessed in 32-bit (4-byte) units. It may also be accessed, depending on the implementation, in 8-bit (1-byte) or 16-bit (2-byte) widths. The total range
of the memory space is 32-bits in width (4GB addressable total), from addresses 0x0000_0000 to 0xFFFF_FFFF.
It is important to note, however, that the architectural definition does not require the entire 4GB memory range to be populated with addressable memory instances.
Figure 3.1: Memory Map Diagram
Rev.1.3 April 2015Maxim IntegratedPage 23
Page 42
MAX32600 User’s GuideMemory, Register Mapping, and Access3.2 Standard Memory Regions
3.2Standard Memory Regions
A number of standard memory regions are defined for the ARM Cortex-M3 architecture; the use of many of these is optional for the system integrator. At a minimum,
the MAX32600, a Cortex-M3-based device, must contain some code and data memory for application code and variable/stack use, as well as certain components
which are part of the instantiated core.
3.2.1 Code Space
The code space area of memory is designed to contain the primary memory used for code execution by the device. This memory area is defined from byte address
range 0x0000_0000 to 0x1FFF_FFFF (0.5GB maximum). Two different standard core bus masters are used by the Cortex-M3 core and ARM debugger to access
this memory area. The I-Code AHB bus master is used for instruction decode fetching from code memory, while the D-Code AHB bus master is used for data fetches
from code memory. This is arranged so that data fetches avoid interfering with instruction execution.
On the MAX32600, the code space memory area contains the main program flash memory, which holds the majority of the instruction code that will be executed on
the device. The program flash is mapped from 0x0000_0000 to 0x0003_FFFF. This program memory area must also contain the default system vector table (located
initially at address 0x0000_0000), which contains the reset vector for the device and the initial settings for all system exception handlers and interrupt handlers.
The code space memory on the MAX32600 also contains the mapping for the flash information block, from 0x0004_0000 to 0x0004_07FF. However, this mapping is
generally only present during production test; it is disabled once the information block has been loaded with valid data and the info block lockout option has been set.
This memory is accessible for data reads only and cannot be used for code execution.
3.2.2 SRAM Space
The SRAM area of memory is intended to contain the primary SRAM data memory of the device and is defined from byte address range 0x2000_0000 to 0x3FFF_−
FFFF (0.5GB maximum). This memory can be used for general purpose variable and data storage, code execution, and the ARM Cortex-M3 stack.
This memory area contains the main system SRAM on the MAX32600, which is mapped from 0x2000_0000 to 0x2000_7FFF.
The entirety of the SRAM memory space on the MAX32600 is contained within the dedicated ARM Cortex-M3 SRAM bit-banding region from 0x2000_0000 to
0x200F_FFFF (1MB maximum for bit-banding). This means that the entire SRAM can be accessed using bit-banding operations when executing core instructions.
This allows any single bit of 32-bit SRAM location to be set, cleared, or read individually by reading from or writing to a specified location in the bit-banding alias area.
The alias area for the SRAM bit-banding is located beginning at 0x2200_0000 and is a total of 32MB maximum, which allows the entire 1MB bit banding area to be
accessed. Each location in the bit-banding alias area translates into a single bit access (read or write) in the bit-banding primary area. Reading from the location
performs a single bit read, while writing either a 1 or 0 to the location performs a single bit set or clear.
Rev.1.3 April 2015Maxim IntegratedPage 24
Page 43
MAX32600 User’s GuideMemory, Register Mapping, and Access3.2 Standard Memory Regions
NoteThe ARM Cortex-M3 core translates the access in the bit-banding alias area into the appropriate read cycle (for a single bit read) or a read-modify-
write cycle (for a single bit set or clear) of the bit-banding primary area. This means that bit-banding is a core function (i.e., not a function of the SRAM
memory interface layer or the AHB bus layer), and thus is only applicable to accesses generated by the core itself. Reads/writes to the bit-banding
alias area by other (non-ARM-core) bus masters such as the PMU AHB bus master will not trigger a bit-banding operation and will instead result in
an AHB bus error.
The SRAM area on the MAX32600 can be used to contain executable code. Code stored in the SRAM is accessed directly for execution (using the system bus) and
is not cached or code scrambled.
The SRAM is also where the ARM Cortex-M3 stack must be located, as it is the only general-purpose SRAM memory on the device. A valid stack location inside the
SRAM must be set by the system exception table stored in the main program flash.
The general purpose PMU engine and the function specific AHB bus master included in the USB peripheral block can both access the SRAM to use as general
storage or working space. Specifically in the case of the USB interface, SRAM memory area can be used to store the descriptor table for the endpoint buffers as well
as the endpoint buffers themselves.
3.2.3 Peripheral Space
The peripheral space area of memory is intended for mapping of control registers, internal buffers/working space, and other features needed for the firmware control
of non-core peripherals. It is defined from byte address range 0x4000_0000 to 0x5FFF_FFFF (0.5GB maximum). On the MAX32600, this includes such functions
as the ADC/DAC, TPU (MAA, AES, etc.), UART interfaces, I²C, USB, etc.
As with the SRAM region, there is a dedicated 1MB area at the bottom of this memory region (from 0x4000_0000 to 0x400F_FFFF) that is used for bit-banding
operations by the ARM core. Read/write operations in the peripheral bit-banding alias area (32MB in length, from 0x4200_0000 to 0x43FF_FFFF) are translated by
the core into read/mask/shift or read/modify/write operation sequences to the appropriate location in the bit-banding area.
NoteThe bit-banding operation within peripheral memory space is, like bit-banding function in SRAM space, a core remapping function, and it is only
applicable to operations performed directly by the ARM core. If another memory bus master accesses the peripheral bit-banding region (e.g., the
JTAG/PTP AHB master or the PMU AHB master), the bit-banding operation will not take place, and the bit-banding alias region will appear to be a
non-implemented memory area (causing an AHB bus error).
On the MAX32600, access to the region that contains most peripheral registers (0x4000_0000 to 0x400F_FFFF) goes from the AHB bus through an AHB-to-APB
bridge. This allows the peripheral blocks to operate on the slower, easier to handle APB bus matrix while also ensuring that peripherals with slower response times
do not tie up bandwidth on the AHB bus, which must necessarily have a faster response time since it handles main application instruction and data fetching.
A secondary region within the peripheral memory space is set aside for other peripherals that require more rapid data transfer to implement direct access AHB
slave instances (0x04010_0000 to 0x401F_FFFF). This area is used so that peripherals which have FIFOs or other functions requiring large amounts of data to be
transferred quickly (such as the ADC and DACs) can benefit from the more rapid transfers available on the AHB bus.
Rev.1.3 April 2015Maxim IntegratedPage 25
Page 44
MAX32600 User’s GuideMemory, Register Mapping, and Access3.3 Device Memory Instances
3.2.4 External RAM Space
The external RAM space area of memory is intended for use in mapping off-chip external memory and is defined from byte address range 0x6000_0000 to 0x9FF−
F_FFFF (1GB maximum). The MAX32600 does not support external RAM space.
3.2.5 External Device Space
The external device space area of memory is intended for use in mapping off-chip device control functions onto the AHB bus and is defined from byte address range
0xA000_0000 to 0xDFFF_FFFF (1GB maximum). The MAX32600 does not implement this memory area.
3.2.6 System Area (Private Peripheral Bus)
The system area (private peripheral bus) memory space contains register areas for functions that are only accessible by the ARM core itself (and the ARM debugger,
in certain instances). It is defined from byte address range 0xE000_0000 to 0xE00F_FFFF. This APB bus is restricted to core access; it cannot be accessed by other
AHB memory masters, such as the DMA or the JTAG/PTP bus master.
In addition to being restricted to the core, application code is only allowed to access this area when running in the privileged execution mode (as opposed to the
standard user thread execution mode). This helps ensure that critical system settings controlled in this area are not altered inadvertently or by errant code that should
not have access to this area.
Core functions controlled by registers mapped to this area include the SysTick timer, debug and tracing functions, the NVIC (interrupt handler) controller, and the
Flash Breakpoint controller.
3.2.7 System Area (Vendor Defined)
The system area (vendor defined) memory space is reserved for vendor (system integrator) specific functions that are not handled by another memory area. It is
defined from byte address range 0xE010_0000 to 0xFFFF_FFFF. The MAX32600 does not include this memory region.
3.3Device Memory Instances
This section details physical memory instances on the MAX32600 (including main program flash and SRAM instances) that are accessible as standalone memory
regions using either the AHB or APB bus matrix. Memory areas which are only accessible via FIFO interfaces, or memory areas consisting of only a few registers for
a particular peripheral, are not covered here.
Rev.1.3 April 2015Maxim IntegratedPage 26
Page 45
MAX32600 User’s GuideMemory, Register Mapping, and Access3.3 Device Memory Instances
3.3.1 Main Program Flash Memory
The main program flash memory is 256KB in size and consists of 2KB (or 512 instruction words) logical pages.
3.3.2 Instruction Cache Memory
The instruction cache is 2KB in size (64 rows x 256 bits) and is used to cache instructions from the main flash memory after they have been descrambled. Note that
the cache is used for instruction fetches only; data fetches from the flash will always go directly to the flash contents, bypassing the Instruction Cache Memory.
3.3.3 Information Block Flash Memory
The information block is a separate flash instance with a single 2KB page. It is used to store trim settings (option configuration and analog trim) as well as other
device-specific information designed to be readable by firmware that needs to be preserved across main application flash load/erase cycles.
3.3.4 System SRAM
The system SRAM is 32KB in size and can be used for general purpose data storage, the ARM system stack, USB data transfers (endpoints), and code execution if
desired.
3.3.5 AES Key and Working Space Memory
The AES key memory and working space for AES operations (including input and output parameters) are located in a dedicated register file memory tied to the AES
engine block. This AES memory is mapped into AHB space for rapid firmware access. In the event of a tamper detection, the AES memory will be automatically
erased by hardware.
3.3.6 Modular Arithmetic Accelerator (MAA) Key and Working Space Memory
The MAA also contains a dedicated memory for key storage, input and output parameters for operations, and working space. It is mapped into the AHB memory
space for ease of loading and unloading.
3.3.7 TPU Memory Secure Key Storage Area
The MAX32600 contains a specialized 128-bit memory that is designed to preserve a critical key (such as an AES key) even when the device is in the lowest
power-saving state. As long as the RTC power supply is still available, this key will be retained, even if the AES block and the main SRAM are shut down completely.
In the event of a tamper response, this key will be automatically erased by hardware.
Rev.1.3 April 2015Maxim IntegratedPage 27
Page 46
MAX32600 User’s GuideMemory, Register Mapping, and Access3.4 AHB Bus Matrix and AHB Bus Interfaces
The Secure Key Storage Area consists of four V
-backed 32-bit registers: TPU_TSR_SKS0, TPU_TSR_SKS1, TPU_TSR_SKS2, and TPU_TSR_SKS3.
RTC
3.4AHB Bus Matrix and AHB Bus Interfaces
This section details memory accessibility on the AHB bus matrix and the organization of AHB master and slave instances.
3.4.1 Core AHB Interface - I-Code
This AHB master is used by the ARM core for instruction fetching from the code space. This bus master has access to the main flash program memory and the main
system SRAM.
3.4.2 Core AHB Interface - D-Code
This AHB master is used by the ARM core for data fetches from the code space. This bus master has access to the main flash program memory, the information
block (when it is not locked), and the main system SRAM.
3.4.3 Core AHB Interface - System
This AHB master is used by the ARM core for other data read and write operations involving the system SRAM, the APB mapped peripherals (through the AHB-to-APB
bridge), and AHB mapped peripheral and memory areas.
3.4.4 AHB Master - Peripheral Management Unit (PMU)
The PMU bus master has access to all off-core memory areas (equivalent to the System plus D-Code) with the exception of the USB AHB memory mapped area.
The PMU bus master does not have access to the ARM Private Peripheral Bus area.
3.4.5 AHB Master - USB Endpoint Buffer Manager
The USB AHB bus master is used to manage endpoint buffers in the main system SRAM. It has access to the main system SRAM and flash main memory.
Rev.1.3 April 2015Maxim IntegratedPage 28
Page 47
MAX32600 User’s GuideSystem Configuration and Management
4System Configuration and Management
4.1Power Ecosystem and Operating Modes
4.1.1 Power Ecosystem
The MAX32600 has multiple operating modes with many user configurable options offering significant flexibility in total power consumption. These options are stored
in the data retention power domain registers and are continuously powered across all modes of operation. The registers dictate which analog and digital peripherals
are intended to remain enabled during low power modes. Likewise, there are dedicated system registers that dictate the configuration of features during run modes.
The MAX32600 supports four power modes, LP0: STOP; LP1: STANDBY; LP2: PMU; and LP3: RUN. The Power State Diagram shows a state diagram of these
power modes.
The low power modes, LP0: STOP and LP1: STANDBY, are under the control of the Power Sequencer while LP2: PMU is controlled by the PMU, and the LP3: RUN
mode is controlled by the ARM core.
The V
supply.
When a wakeup event is detected, the MAX32600 exits the low power mode (LP0: STOP or LP1: STANDBY) and always enters LP3: RUN where firmware takes
over control of the system and power states.
power pad (powered by battery or super cap) ensures that this domain is always on during battery change or other loss-of-power events on the main V
RTC
DD
Rev.1.3 April 2015Maxim IntegratedPage 29
Page 48
MAX32600 User’s GuideSystem Configuration and Management4.1 Power Ecosystem and Operating Modes
NotePower mode transition restrictions dictate measurement sequences. Further transitioning information is found in the power mode sections below.
The following is a typical measurement sequence: LP0/LP1 → LP3 → LP2 → LP3 → LP0/LP1
Figure 4.1: Power State Diagram
Rev.1.3 April 2015Maxim IntegratedPage 30
Page 49
MAX32600 User’s GuideSystem Configuration and Management4.1 Power Ecosystem and Operating Modes
4.1.2 Low Power Modes (LP0: STOP and LP1: STANDBY)
NoteLow Power Modes LP0 and LP1 can only transition to/from LP3: RUN; to enter LP2: PMU from one of these modes, the device must first enter LP3:
Run.
4.1.2.1 Low Power Mode 0 (LP0: STOP)
LP0: STOP is the lowest power mode supported by the MAX32600: using as little as 850nA in normal operation and as little as 1.25uA with the RTC active. The
core system registers and SRAM do not retain state and, upon exit from LP0: STOP, the system starts as if from a core reset. The sections of the MAX32600 that
maintain state during LP0: STOP are:
• Power Sequencer
• Real-Time Clock (RTC)
• Data retention registers
• POR/Failsafe
4.1.2.2 Low Power Mode 1 (LP1: STANDBY)
LP1: STANDBY is core data retention mode and supports fast wakeup time (∼15us typical) while maintaining ultra-low power. Typically, the MAX32600 draws only
1.4uA in LP1: STANDBY without the RTC and only 1.8uA with the RTC enabled. All clocks are gated off, the core logic is in a static state, and the ARM is in deep
sleep. SRAM and registers have full data retention. Many options for analog support circuitry are available in this mode and, to achieve the lowest possible power in
LP1: STANDBY, it is recommended to turn off all unused analog circuitry. This includes the core 1.8V LDO because the Data Retention LDO is used to provide data
retention.
To achieve the 15us fast resume from LP1: STANDBY, a power-up sequence has been implemented. Instead of waiting for the 1.8V LDO voltage to become stable,
a gear shift mechanism is used that allows the core to run with a divided clock while the 1.8V LDO ramps and stabilizes; when the LDO is at a safe voltage, the
system shifts gears to the normal operating frequency.
Optional improvements to wakeup time can be achieved at the expense of burning more power. This may be appropriate for short periods of time in low power modes.
In this situation, continuous power consumption of run state is avoided, but extremely fast wake up times from a low power mode may be needed. To accelerate
the resume time, the 1.8V LDO and/or Relaxation Oscillator can be enabled during LP1: STANDBY. Power consumption during LP1: STANDBY will be higher, but
immediate resume times can be achieved under these conditions.
If the Relaxation Oscillator is not enabled during LP1: STANDBY, a 2us timeout is necessary due to waiting for the oscillator to stabilize prior to beginning code
execution.
Rev.1.3 April 2015Maxim IntegratedPage 31
Page 50
MAX32600 User’s GuideSystem Configuration and Management4.1 Power Ecosystem and Operating Modes
4.1.2.3 Entering LP0: STOP or LP1: STANDBY
The following illustrates the procedure to change the MAX32600 operating state to either LP0: STOP or LP1: STANDBY. The examples used set up a GPIO wakeup
on P0.0 that wakes up on an active high. Although P0.0 is used here, any available port.pin can be configured in this manner for a GPIO wakeup event.
NoteThe following steps to enter LP0: STOP and LP1: STANDBY should be used as guidelines; for best results, the user should always reference the
appropriate API.
Entering LP0: STOP
In order to change the MAX32600 operating state to LP0: STOP, the following steps should be followed:
• Configure P0.0 to be WUD Mode by setting PWRMAN_WUD_CTRL.pad_select
• Enable Active High WUD on P0.0 by setting PWRMAN_WUD_CTRL.pad_mode
• Activate WUD by setting bit 0 of PWRMAN_WUD_PULSE0
• Assert GPIO Freeze by setting PWRSEQ_REG1.pwr_gpio_freeze to 1
• Ensure pads are in the lowest power state by clearing the PWRMAN_PWR_RST_CTRL.io_active register
• Clear all flags in PWRSEQ_FLAGS register
• Set Run/Sleep mode of peripherals in PWRSEQ_REG0
• Set LP0 mode in PWRSEQ_REG0
• CM3_PWRMAN bit 2 to 1; Arm Command WFE – ARM command puts MAX32600 in LP0 mode
Entering LP1: STANDBY
In order to change the MAX32600 operating state to LP1: STANDBY, the following steps should be followed:
• Configure the Power Sequencer for quick resume by setting desired clocks in PWRSEQ_REG3.pwr_rosel to 64
• Configure P0.0 to be WUD Mode by setting PWRMAN_WUD_CTRL.pad_select
• Enable Active High WUD on P0.0 by setting PWRMAN_WUD_CTRL.pad_mode
• Activate WUD by setting bit 0 of PWRMAN_WUD_PULSE0
Rev.1.3 April 2015Maxim IntegratedPage 32
Page 51
MAX32600 User’s GuideSystem Configuration and Management4.1 Power Ecosystem and Operating Modes
• Assert GPIO Freeze by setting PWRSEQ_REG1.pwr_gpio_freeze to 1
• Clear all flags in PWRSEQ_FLAGS register
• Set Run/Sleep mode of peripherals in PWRSEQ_REG0
• Set LP1 mode in PWRSEQ_REG0
• CM3_PWRMAN bit 2 to 1; Arm Command WFE – ARM command puts MAX32600 in LP1 mode
NoteCM3_PWRMAN bit 2 is is the ’Deep Sleep’ bit of the ARM Cortex-M3 System Control register. Setting this bit to 1 indicates to the system that the
Cortex-M3 clock can be stopped; the ’Deep Sleep’ port will be asserted when the processor can be stopped. Setting this bit to 0 prevents turning off
the system clock.
4.1.2.4 Wakeup Events from LP0: STOP and LP1: STANDBY
The following events can wake up the MAX32600 from the Low Power states:
• RTC timer interrupt
– Timer has 244us resolution
• GPIO sensed high/low (All GPIO are wakeup capable as programmed by firmware)
• Analog input to a comparator
• USB plugin/remove
• Supply Voltage Monitor (SVM) low voltage condition sensed via periodic or continuous monitoring
Each of these events is configurable and must be enabled by the firmware.
NoteCertain wakeup events can be masked out by writing to the PWRSEQ_MSK_FLAGS register.
After Wakeup Events
After the MAX32600 experiences a wakeup event from LP0: STOP or LP1: STANDBY, proceed with the following actions:
LP0 Wakeup
• Read PWRSEQ_FLAGS register to determine the source of the wakeup event
Rev.1.3 April 2015Maxim IntegratedPage 33
Page 52
MAX32600 User’s GuideSystem Configuration and Management4.1 Power Ecosystem and Operating Modes
• If the wakeup event was a GPIO event, do one of the following to clear the GPIO WUD:
1. If desired action is to clear all GPIO WUD latches:
• Clear all GPIO flags by writing 1 to PWRMAN_WUD_CTRL.clear_all to clear all GPIO WUD setups
• Take all pads out of the low power state by setting the PWRMAN_PWR_RST_CTRL.io_active register to 1
• Deassert GPIO Freeze by setting PWRSEQ_REG1.pwr_gpio_freeze to 0
• Clear all flags in PWRSEQ_FLAGS register
2. If desired action is to clear individual GPIO WUD latches that initiated the wakeup event:
• Set WUD Pad Select for the individual port in the PWRMAN_WUD_CTRL.pad_select register
• Set WUD Pad Signal Mode by writing 2 to PWRMAN_WUD_CTRL.pad_mode
• Set WUD Pulse 0 register, PWRMAN_WUD_PULSE0, to 1. This register self-clears.
• Take all pads out of the low power state by setting the PWRMAN_PWR_RST_CTRL.io_active register to 1
• Deassert GPIO Freeze by setting PWRSEQ_REG1.pwr_gpio_freeze to 0
• Clear all flags in PWRSEQ_FLAGS register
LP1 Wakeup
• Read PWRSEQ_FLAGS register to determine the source of the wakeup event
• If the wakeup event was a GPIO event, it is recommended that GPIO flags are cleared individually. Clearing of all GPIO WUD latches is not recommended
when waking up from LP1.
– Set WUD Pad Select for the individual port in the PWRMAN_WUD_CTRL.pad_select register
– Set WUD Pad Signal Mode by writing 2 to PWRMAN_WUD_CTRL.pad_mode
– Set WUD Pulse 0 register, PWRMAN_WUD_PULSE0, to 1. This register self-clears.
– Take all pads out of the low power state by setting the PWRMAN_PWR_RST_CTRL.io_active register to 1
– Deassert GPIO Freeze by setting PWRSEQ_REG1.pwr_gpio_freeze to 0
– Clear all flags in PWRSEQ_FLAGS register
4.1.3 Low Power Modes (LP2: PMU and LP3: RUN)
The Peripheral Management Unit (PMU) is in control of the system when using LP2: PMU. During LP3: RUN, the ARM core is in control of the system. A System
Management unit controls entering and exiting both modes.
When operating in either mode, firmware is in control of the power used by the system. Firmware controls clock gating, peripheral enables, and the Analog Front End
(AFE).
Rev.1.3 April 2015Maxim IntegratedPage 34
Page 53
MAX32600 User’s GuideSystem Configuration and Management4.1 Power Ecosystem and Operating Modes
4.1.3.1 Low Power Mode 2 (LP2: Peripheral Management Unit)
The Peripheral Management Unit (PMU) is a DMA engine for the MAX32600. It enables the lowest noise floor for analog measurements and reduced operating
power for peripherals. The PMU acts like an internal state machine that can orchestrate events via programmable op codes for:
• Peripheral to Memory
• Memory to Peripheral
• Analog to Memory
• Memory to Analog
– Synchronization of analog measurements
– Control and synchronization of pulse train signals and events
During this state, the ARM Cortex-M3 has relinquished control to the PMU. The ARM Cortex-M3 is in sleep mode, resulting in power reduction and noise minimization.
To further reduce power consumption and noise, only the required clocks and data buses are active during LP2: PMU. Typically, the MAX32600 draws 1.2mA of
current (24MHz clock) with a single channel of the PMU active. Each additional channel draws approximately 100uA of current.
4.1.3.2 Low Power Mode 3 (LP3: RUN)
LP3: RUN mode is under full firmware control using the ARM core. During this state, the ARM Cortex-M3 and the digital core are fully powered and awake. The
clocks to each peripheral are gated dynamically and only clock the circuitry in use. Firmware executes from the internal flash memory based on the instruction cache.
Typical power of 175uA/MHz is achieved in LP3: RUN. This is the default power up state.
Reference First Boot Power Up for detailed information regarding entering LP3: RUN from an initial boot up.
4.1.4 Power State Matrix Control Options
The Power State Diagram depicts the four major power states and how control is handled in the MAX32600.
The figure illustrates:
• Hardware controlled powering of circuit blocks
• Firmware controllable power options
• Firmware controllable clock gating
NoteThe chip hardware will power the minimal amount of circuitry necessary to achieve functionality of each mode. To achieve the lowest optimized
power solution, the user must fully analyze the usage case and choose the appropriate power and clock gating options.
Rev.1.3 April 2015Maxim IntegratedPage 35
Page 54
MAX32600 User’s GuideSystem Configuration and Management4.1 Power Ecosystem and Operating Modes
Figure 4.2: Power and Clock Gating Options
Rev.1.3 April 2015Maxim IntegratedPage 36
Page 55
MAX32600 User’s GuideSystem Configuration and Management4.1 Power Ecosystem and Operating Modes
4.1.5 Power Domains
The MAX32600 has multiple power domains that are controlled by the power management block. This includes the Power Sequencer, Power Manager, Trickle
Charger, 1.8V LDO, 3.3V USB LDO, and Real Time Clock (RTC). The configuration registers for the Power Manager are within the battery backed V
RTC
domain.
The registers are configurable by firmware and dictate what analog and digital peripherals are enabled while in each of the Operating Modes, LP0: STOP; LP1:
STANDBY; LP2: PMU; and LP3: RUN.
Figure 4.3: Power Domains
Rev.1.3 April 2015Maxim IntegratedPage 37
Page 56
MAX32600 User’s GuideSystem Configuration and Management4.1 Power Ecosystem and Operating Modes
Reference Power Pins below for a more detailed description of the power I/O.
4.1.6 Power Manager
The Power Manager monitors and distributes the three main voltage rail inputs (V
V
DDA3DAC
, and V
DDA3REF
) are separate pins that allow the user to provide external isolation from each domain. The V
, VDD, and V
BUS
) on the MAX32600. The analog power domain inputs (V
RTC
analog power output can be shorted to
DDA3
DDA3ADC
any/all of the analog power domain inputs or optionally connected through filtering networks for isolation. In addition to power distribution and management, the
Power Manager monitors power levels using several Supply Voltage Monitors (SVMs) and Power-On Resets (PORs). SVM warning levels are programmable (see
section Supply Voltage Monitoring During LP0: STOP and LP1: STANDBY for details). POR levels are not changeable and are set at the factory per the MAX32600
data sheet.
4.1.7 Power Sequencer
The Power Sequencer controls the MAX32600 during Low Power Modes (LP0: STOP and LP1: STANDBY). When LP0: STOP and LP1: STANDBY are exited, the
Power Sequencer transfers control to the system manager and the part enters either LP2: PMU or LP3: RUN. One of the primary functions of the Power Sequencer
is to ensure power, clocks, and resets are stable prior to transitioning the system to either LP2: PMU or LP3: RUN. During LP0: STOP and LP1: STANDBY, wakeup
interrupts are continuously monitored while consuming very little power. Once an interrupt event occurs, the Power Sequencer automatically enables SVMs as well
as active LP2: PMU and LP3: RUN peripherals, including the internal 1.8V regulator and the 24MHz Relaxation Oscillator.
When the Power Sequencer determines the power, clocks, and resets are valid, the clock gating circuitry is disabled and the MAX32600 is allowed to enter LP2:
PMU or LP3: RUN.
4.1.7.1 Power Mode Transitioning to Low Power Modes
To take full advantage of the low power modes of operation in the MAX32600, application firmware will need to spend as much time as possible in either LP0: STOP
and LP1: STANDBY modes. Prior to entering these modes, it is extremely important to set up the wakeup interrupts and supply voltage monitor configuration. To
enter LP0: STOP, reference section Entering LP0: STOP or LP1: STANDBY above.
,
4.1.7.2 Supply Voltage Monitoring During LP0: STOP and LP1: STANDBY
During LP0: STOP or LP1: STANDBY modes, the Power Sequencer can be set to monitor the Supply Voltage Monitors (SVM) periodically. Periodic monitoring
enables the system to check to ensure power is adequate at a specific interval and reduces overall system power significantly. To enable periodic monitoring, set the
field PWRSEQ_REG3.pwr_svmsel to a desired count value and enable one or more SVMs during LP0: STOP or LP1: STANDBY modes.
SVM Options for LP0 / LP1DescriptionEnable Field
V
DD
3V Main SupplyPWRSEQ_REG0.pwr_svm3en_slp
Rev.1.3 April 2015Maxim IntegratedPage 38
Page 57
MAX32600 User’s GuideSystem Configuration and Management4.1 Power Ecosystem and Operating Modes
SVM Options for LP0 / LP1DescriptionEnable Field
V
REG18
V
RTC
1.8V Regulated OutputPWRSEQ_REG0.pwr_svm1en_slp
3V VRTC SupplyPWRSEQ_REG0.pwr_svmrtcen_slp
4.1.7.3 SVM Periodic Monitoring
For periodic SVM during STOP or STANDBY modes, a clock source for the periodic timer should be enabled. The 8kHz oscillator or the RTC clock can be chosen
as the timer source. For the 8kHz nano ring, set the PWRSEQ_REG0.pwr_nren_slp bit; to use the RTC, set the PWRSEQ_REG0.pwr_rtcen_slp bit.
8kHz Oscillator
The 8kHz Oscillator is a low-power internal oscillator with a nominal frequency of 8kHz that allows periodic supply voltage monitoring during Low Power Modes (LP0:
STOP and LP1: STANDBY).
4.1.7.4 First Boot Power Up
When initial power is applied, the PWRSEQ_FLAGS.pwr_first_boot flag will be set to indicate the MAX32600 is powering up from a first boot condition. The pwr_−
first_boot register must be set to 0 by firmware prior to attempting to enter either Low Power Modes (LP0: STOP and LP1: STANDBY). All power lost on the chip or
asserting RSTN will reset the pwr_first_boot flag.
First Boot Up (entering LP3: RUN)
• Ensure pads are in the lowest power state by clearing the PWRMAN_PWR_RST_CTRL.io_active register
• Clear I/O WUD on all pads by setting and clearing the PWRMAN_PWR_RST_CTRL.wud_clear register
• Take all pads out of low power state by setting PWRMAN_PWR_RST_CTRL.io_active to 1
• Deassert GPIO Freeze by setting PWRSEQ_REG1.pwr_gpio_freeze to 0
• Clear the first boot signal, PWRSEQ_REG0.pwr_first_boot
• Set the quick count bit in the the PWRSEQ_REG3.pwr_rosel_quick to 1
• The MAX32600 is in LP3: RUN
Rev.1.3 April 2015Maxim IntegratedPage 39
Page 58
MAX32600 User’s GuideSystem Configuration and Management4.1 Power Ecosystem and Operating Modes
After boot/resume for LP0: STOP or LP1: STANDBY, firmware should poll the PWRSEQ_FLAGS register to determine the source of the wakeup event. After
determining the source, firmware should clear the specific PWRSEQ_FLAGS register prior to attempting to enter either LP0: STOP or LP1: STANDBY.
Reference Wakeup Events from LP0: STOP and LP1: STANDBY for a more detailed description of this process.
4.1.7.5 Brownout Detector
The Brownout Detector detects a failing power supply and sends a NMI to the ARM processor to shut down the MAX32600 before losing and/or corrupting core
data. The Brownout Detection monitors the power supply for a ∼700mV drop and, if detected, sends the NMI to the ARM. The amount of time the supply must be
below the detection level is configurable on the MAX32600 and can be set by firmware as shown in the following table. This setting indicates the minimum window
of detection that the Brownout Detector will see as a brownout.
NoteThe brownout detect flag, PWRSEQ_FLAGS.pwr_brownout_det, is disabled by default and does not need to be cleared by firmware on power up;
following any reset condition occurring while the brownout detect flag was enabled, it should be checked to determine if a brownout was detected.
4.1.8 Trickle Charger
When a super capacitor is connected to the V
supply (V
). Several charging options are available, including three different charging speeds as well as the optional addition of a series protection diode. Users
USB
can choose from 250 Ohm, 2K Ohm, or 4K Ohm series resistance between the power source voltage and V
rail, the Trickle Charger can be enabled to charge the super capacitor from the main supply (VDD) or from the USB
RTC
-connected super capacitor. In addition, a series
RTC
diode can be enabled between power rails.
4.1.8.1 Trickle Charger Configuration
To enable and configure the trickle charger, series resistance, and protection diode, set the PWRSEQ_REG1.pwr_trikl_chrg field as shown in the table below.
If the Trickle Charger is enabled while USB power is available, the super capacitor will be charged using the USB power source. Otherwise, when enabled, the Trickle
Charger will charge the super capacitor from the main VDDsupply.
NoteWhen using a super capacitor, the MAX32600 cannot go into LP1 until the the super capacitor has been been sufficiently charged. Poll the V
RTC
Warning Level (user configurable) to set the appropriate level.
4.1.9 Low-Dropout Regulators (LDO)
4.1.9.1 1.8V LDO
The 1.8V LDO is the source of the V
rail and powers the digital core when in LP2: PMU and LP3: RUN. It can source power from either the USB supply or the
REG18
main VDDsupply. If the USB supply is available, the 1.8V regulator will automatically switch to USB as its source. The 1.8V regulator supports a 50mA maximum
capacity (40mA maximum external capacity) over an input range of 2.2V to 3.6V and a 30mA maximum capacity (20mA maximum external capacity) over an input
range of 2.0V to 2.2V. Once the LDO input voltage reaches 1.95V and below, the V
output voltage will attempt to equal the input voltage. V
REG18
can be supplied
REG18
to external components, but the maximum external current should not be violated.
Retention Regulator
The Retention Regulator sources power to the V
power rail when the MAX32600 is in LP1: STANDBY. Optionally, the Data Retention Regulator can be enabled
REG18
during LP2: PMU and LP3: RUN modes while the 1.8V LDO is enabled. No external loads should be placed on the Retention Regulator during LP1: STANDBY
while the 1.8V LDO is disabled. The Retention Regulator is only capable of maintaining data, so any external load may cause a power fail event to occur.
4.1.9.2 3.3V USB LDO
The 3.3V USB LDO sources its power from the 5V USB power and outputs 3.3V via V
. By default, the MAX32600 will be powered from the USB supply when it
DDB
is available. To disable this, refer to PWRSEQ_REG4.pwr_usb_ldo_off and PWRSEQ_REG4.pwr_usb_frc_vdd register fields.
Rev.1.3 April 2015Maxim IntegratedPage 41
Page 60
MAX32600 User’s GuideSystem Configuration and Management4.1 Power Ecosystem and Operating Modes
4.1.10 Reset Pins
The MAX32600 contains two active low reset pins, RSTN and SRTSN. RSTN serves as the main chip reset input. Asserting the pin low will reset all registers on the
chip except RTC related circuits and wakeup configuration. This allows a restart of all chip functions (analog and digital) while still maintaining the Real Time Clock.
NoteAsserting RSTN will turn off the 1.8V LDO but external capacitance will keep the V
A continued RSTN assertion will keep the 1.8V LDO off, eventually causing the V
rail and SRAM data intact during a momentary reset pulse.
REG18
rail to collapse and lose all SRAM data.
REG18
SRSTN is a bidirectional reset that will perform a reset to the digital core when asserted low and will subsequently drive a reset pulse to other components in the
system.
To fully reset the entire chip including RTC related circuitry, all three main power inputs (V
BUS
, VDD, V
) must be powered down.
RTC
4.1.11 Power Pins
Pin NameDescription
V
DD
Main chip power input. Connect to 3V nominal power supply or battery. This pin must be connected to VSSthrough
a 4.7uF capacitor.
V
BUS
USB power input. Connect a 5V nominal power supply, typically USB power. This pin must be connected to V
SS
through a 4.7uF capacitor.
V
DDB
V
RTC
Output of USB 5V -> 3.3V LDO. This pin must be connected to VSSthrough a 4.7uF capacitor
Backup rail or “Last Man Standing” rail. Connect to super capacitor or 3V nominal power supply or battery. This
pin must be connected to VSSthrough a 1.0uF capacitor if connected to a 3V nominal power supply or battery.
Connect to VDDif backup rail is not used.
V
DDIO
3V nominal GPIO power. This pin (connected to Ports 6, 7) must be connected to VSSthrough a 4.7uF capacitor (if
the 12mm x 12mm package is used). Up to 50mA may be sourced for external components. Note: On the 12mm
V
DDIO_SW1
x 12mm package, all GPIOs are powered by V
3V / 1.8V nominal GPIO power. Bank of GPIOs (connected to Ports 0, 1 on the 12mm x 12mm package and Port
1 on the 7mm x 7mm package) using V
DDIO
.
VDDIO
(3V nominal) or V
(1.8V nominal) as a power source. This pin
REG18
must be connected to VSSthrough a 1.0uF capacitor.
V
DDIO_SW2
3V / 1.8V nominal GPIO power. Bank of GPIOs (connected to Ports 2, 3, 4, 5 on the 12mm x 12mm package, Port
2 on the 7mm x 7mm package, and JTAG) using V
(3V nominal) or V
DDIO
(1.8V nominal) as a power source.
REG18
This pin must be connected to VSSthrough a 1.0uF capacitor.
V
DDA3
V
DDA3ADC
Analog power source (3V nominal). Option to connect filter network between V
V
DDA3REF
ADC power input (3V nominal). Connect to V
. Short to V
pins if filter network not needed.
DDA3
DDA3
directly or via a filter network.
DDA3
and V
DDA3ADC
/ V
DDA3DAC
/
Rev.1.3 April 2015Maxim IntegratedPage 42
Page 61
MAX32600 User’s GuideSystem Configuration and Management4.1 Power Ecosystem and Operating Modes
Pin NameDescription
V
DDA3DAC
V
DDA3REF
V
REFADC
DAC / op amp power input (3V nominal). Connect to V
Reference power input (3V nominal). Connect to V
DDA3
directly or via a filter network.
DDA3
directly or via a filter network.
ADC reference voltage output. Buffered output can be set to 1.024V, 1.5V, 2.048V, and 2.5V. This pin must be
connected to VSSthrough a 4.7uF capacitor.
V
REFDAC
DAC reference voltage output. Buffered output can be set to 1.024V, 1.5V, 2.048V, and 2.5V. This pin must be
connected to VSSthrough a 4.7uF capacitor.
V
REFADJ
Precision reference input that may be optionally used be in place of internal reference by V
REFADC
and V
REFDAC
buffers. Ground if not used.
V
V
V
SSREF
V
SSADC
V
SSDAC
SS
SSUB
Digital Ground. Tie all grounds together on circuit board.
Substrate Ground.
Reference Ground.
ADC Ground.
DAC Ground.
NoteAll grounds are assumed to be tied together at the circuit board level.
4.1.12 Registers (PWRMAN)
4.1.12.1 Module PWRMAN Registers
32b
AddressRegister
Word LenDescription
0x40090800PWRMAN_PWR_RST_CTRL1Power Reset Control and Status
pwr_svm1en_slp161 (PwrSeq RSTN)R/WEnable VREG18 SVM operation in
Sleep Mode
VREG18 SVM enable during sleep mode (default 1)
PWRSEQ_REG0.pwr_svmrtcen_run
FieldBitsDefaultAccessDescription
pwr_svmrtcen_run170 (PwrSeq RSTN)R/WEnable VRTC SVM operation in
Run Mode
Rev.1.3 April 2015Maxim IntegratedPage 75
Page 94
MAX32600 User’s GuideSystem Configuration and Management4.1 Power Ecosystem and Operating Modes
VRTC SVM enable during run mode (default 0)
PWRSEQ_REG0.pwr_svmrtcen_slp
FieldBitsDefaultAccessDescription
pwr_svmrtcen_slp180 (PwrSeq RSTN)R/WEnable VRTC SVM operation in
Sleep Mode
VRTC SVM enable during sleep mode (default 0)
PWRSEQ_REG0.pwr_svmvdda3en
FieldBitsDefaultAccessDescription
pwr_svmvdda3en190 (PwrSeq RSTN)R/WEnable VDDA3 SVM operation (in
Run Mode only)
VDDA3 SVM enable (can only be enabled during RUN mode). default 0.
4.1.13.1.2 PWRSEQ_REG1
PWRSEQ_REG1.pwr_trikl_chrg
FieldBitsDefaultAccessDescription
pwr_trikl_chrg7:000h (PwrSeq RSTN)R/WTrickle Charge Control for VRTC
External Capacitor
Trickle charger (for VRTC external supercap). To enable the trickle charger, bits [7:4] must equal 1010b (Ah); all other settings for [7:4] result in the function staying
disabled.
• A5h - no diode + 250ohm
• A6h - no diode + 2kohm
Rev.1.3 April 2015Maxim IntegratedPage 76
Page 95
MAX32600 User’s GuideSystem Configuration and Management4.1 Power Ecosystem and Operating Modes
• A7h - no diode + 4kohm
• A9h - diode + 250ohm
• AAh - diode + 2kohm
• ABh - diode + 4kohm
By default, the trickle charger is disabled.
PWRSEQ_REG1.pwr_pd_vdda3
FieldBitsDefaultAccessDescription
pwr_pd_vdda380 (PwrSeq RSTN)R/WPower Down VDDA3 Supply Rail
• 0: VDDA3 supply rail is powered on (default).
• 1: VDDA3 supply rail is powered down.
PWRSEQ_REG1.pwr_temp_sensor_pd
FieldBitsDefaultAccessDescription
pwr_temp_sensor_pd91 (PwrSeq RSTN)R/WPower Down Internal Temper-
ature Sensor
• 0: Internal temp sensor is powered on and can be used.
• 1: Internal temp sensor is powered off (default).
PWRSEQ_REG1.pwr_pd_vddio
FieldBitsDefaultAccessDescription
pwr_pd_vddio100 (PwrSeq RSTN)R/WPower Down VDDIO Supply Rail
Rev.1.3 April 2015Maxim IntegratedPage 77
Page 96
MAX32600 User’s GuideSystem Configuration and Management4.1 Power Ecosystem and Operating Modes
• 0: VDDIO supply rail is powered on (default).
• 1: VDDIO supply rail is powered down.
PWRSEQ_REG1.pwr_man_vddio_sw
FieldBitsDefaultAccessDescription
pwr_man_vddio_sw110 (PwrSeq RSTN)R/WManual Override Enable for V−
DDIO Switch 1/2
• 0: No effect (default).
• 1: Manual overrides are enabled for VDDIO_SW1 and VDDIO_SW2.
PWRSEQ_REG1.pwr_man_vddio_sw2
FieldBitsDefaultAccessDescription
pwr_man_vddio_sw2120 (PwrSeq RSTN)R/WManual Override for VDDIO_−
SW2
This setting will only take effect when the Manual Override Enable for VDDIO Switch 1/2 has been set to 1.
• 0: VDDIO_SW2 is set to VREG18 mode (default).
• 1: VDDIO_SW2 is set to VDDIO mode.
PWRSEQ_REG1.pwr_man_vddio_sw1
FieldBitsDefaultAccessDescription
pwr_man_vddio_sw1130 (PwrSeq RSTN)R/WManual Override for VDDIO_−
SW1
Rev.1.3 April 2015Maxim IntegratedPage 78
Page 97
MAX32600 User’s GuideSystem Configuration and Management4.1 Power Ecosystem and Operating Modes
This setting will only take effect when the Manual Override Enable for VDDIO Switch 1/2 has been set to 1.
• 0: VDDIO_SW1 is set to VREG18 mode (default).
• 1: VDDIO_SW1 is set to VDDIO mode.
PWRSEQ_REG1.pwr_gpio_freeze
FieldBitsDefaultAccessDescription
pwr_gpio_freeze140 (PwrSeq RSTN)R/WFreeze GPIO WUD and Keeper
Latches
• 0: GPIO WUD and keeper latches operate normally (default).