The MAX1464 is a highly integrated, low-power, lownoise multichannel sensor signal processor optimized
for industrial, automotive, and process-control applications such as pressure sensing and compensation,
RTD and thermocouple linearization, weight sensing
and classification, and remote process monitoring with
limit indication.
The MAX1464 accepts sensors with either single-ended
or differential outputs. The MAX1464 accommodates
sensor output sensitivities from 1mV/V to 1V/V. The
MAX1464 provides amplification, calibration, signal linearization, and temperature compensation that enable
an overall performance approaching the inherent
repeatability of the sensor without requiring any external trim components.
Two 16-bit voltage-output DACs and two 12-bit PWMs
can be used to indicate each of the temperature-compensated sensor signals independently, as a sum or
difference signal, or user-defined relationship between
each signal and temperature. Uncommitted op amps
are available to buffer the DAC outputs, drive heavier
external loads, or provide additional gain and filtering.
The MAX1464 incorporates a 16-bit CPU, user-programmable 4kB of FLASH program memory, 128 bytes
of FLASH user information, one 16-bit ADC, two 16-bit
DACs, two 12-bit PWM digital outputs, four rail-to-rail
op amps, one SPI™-compatible interface, two GPIOs,
and one on-chip temperature sensor.
The MAX1464 operates from a single 5.0V (typ) supply
and is packaged for automotive, industrial, and commercial temperature ranges in a 28-pin SSOP package.
Stresses beyond those listed under “Absolute Maximum Ratings” may cause permanent damage to the device. These are stress ratings only, and functional
operation of the device at these or any other conditions beyond those indicated in the operational sections of the specifications is not implied. Exposure to
absolute maximum rating conditions for extended periods may affect device reliability.
VDDto VSS.............................................................-0.3V to +6.0V
V
DDF
to VSS...........................................................-0.3V to +6.0V
V
SSF
to VSS............................................................-0.3V to +0.3V
All Other Pins to V
SS
...................................-0.3V to (VDD+ 0.3V)
Note 1: Current into a pin is defined as positive. Current out of a pin is defined as negative. All voltages are referenced to V
SS
.
Note 2: All modules are off, except internal reference, oscillator, and power-on reset (POR) and CKSEL bit is set to zero.
Note 3: The CPU and ADC are not on at the same time. The ADC and CPU currents are not additive.
Note 4: I
DACn
does not include output buffer currents (I
OPLGn
or I
OPSMn
).
Note 5: For gains above 240, an additional digital gain can be provided by the CPU.
Note 6: The PWM input data is the 12-bit left-justified data in the 16-bit input field.
Note 7: PWM gain error measured as:
Note 8: The internal reference voltage has a nominal value of 5V (4
✕ V
BG
) even when VDDis greater or less than 5VDC.
Note 9: Input-referred offset error is the ADC offset error divided by the PGA gain.
Note 10: When the CKIO is configured in output mode to observe the internal oscillator signal, the total current is above the
specified limits.
Note 11: f
CLK
must be within 5% of 4MHz.
Note 12: Allow a minimum elapsed time of 4.2ms when executing a FLASH erase command, before sending any other command.
Allow a minimum elapsed time of 80µs between FLASH write commands.
Note 13: FLASH programming current is guaranteed by design.
GE
PWMFXhPWMXh
PWM
OUTOUT
=
()−()
×
00100
3584
100%
DIGITAL INPUTS (GPIO1, GPIO2, SCLK, DI, CKSEL, CKIO, CS)
Input High Threshold VoltageV
Input Low Threshold VoltageV
Input HysteresisV
Input Leakage CurrentI
Input CapacitanceC
DIGITAL OUTPUTS (GPIO1, GPIO2, DO, CKIO)
Output-Voltage HighV
Output-Voltage LowV
FLASH MEMORY
Maximum Erase Cycles(Notes 11, 12)10kCycles
Minimum Erase Timet
Minimum Write Timet
FLASH Programming CurrentI
PARAMETERSYMBOLCONDITIONSMINTYPMAXUNITS
IH
IL
IHYS
IN
IN
OH
OL
ERASE
WRITE
DDFP
CKSEL, CS = V
GPIO1, GPIO2, SCLK, DI, CKIO = V
R
= ∞
LOAD
R
= 2kΩ to V
LOAD
R
= ∞
LOAD
R
= 2kΩ to V
LOAD
(Notes 11, 12)4.2ms
(Notes 11, 12)80µs
Writing to the FLASH or erasing the FLASH
(Note 13)
SS
SS
DD
DD
GPIO1, GPIO2, DOVDD - 0.1
CKIO (Note 10)4.9
GPIO1, GPIO2, DOVDD - 0.15
CKIO (Note 10)4.6
GPIO1, GPIO2, DO0.05
CKIO (Note 10)0.1
GPIO1, GPIO2, DO0.2
CKIO (Note 10)0.4
0.8 x
V
DD
0.2 x
0.2V
38-90
38+90
5pF
30mA
V
DD
V
V
µA
V
V
MAX1464
Low-Power, Low-Noise Multichannel
Sensor Signal Processor
Analog ratiometric output configuration (Figure 2) provides an output that is proportional to the power-supply
voltage. Ratiometricity is an important consideration for
automotive, battery-operated instruments, and some
industrial applications.
Detailed Description
The MAX1464 is a highly integrated, low-power, lownoise multichannel sensor signal processor optimized
for industrial, automotive, and process-control applications, such as pressure sensing and compensation,
RTD and thermocouple linearization, weight sensing
and classification, and remote process monitoring with
limit indication.
The MAX1464 incorporates a 16-bit CPU, user-programmable 4kB of FLASH memory, 128 bytes of FLASH user
information, 16-bit ADC, two 16-bit DACs, two 12-bit
PWM digital outputs, four rail-to-rail op amps, SPI interface, two GPIOs, and one on-chip temperature sensor.
Each sensor signal can be amplified, compensated for
temperature, linearized, and the offset and full scale
can be adjusted to the desired value. The MAX1464
can provide outputs as analog voltage (DAC) or digital
(PWM, GPIOs), or simple on/off alarm indication
(GPIOs). The uncommitted op amps can be used to
implement 4–20mA current loops or for additional gain
and filtering. Each DAC output is routed to either a
small or large op amp. Large op amps are capable of
driving heavier external loads. The unused circuit functions can be turned off to save power.
All sensor linearization and on-chip temperature compensation is done by a user-defined algorithm stored in
FLASH memory. The user-defined algorithm is programmed over the serial interface and stored in 4kB of
integrated FLASH memory.
The MAX1464 uses an internal 4MHz oscillator or an
externally supplied 4MHz clock. CPU code execution
and ADC operation is fully synchronized to minimize
the noise interference of a CPU-based sensor processor system. The CPU sequentially executes instructions
stored in FLASH memory.
Sensor Input
The MAX1464 provides two differential signal inputs,
INP1-INM1 and INP2-INM2. These inputs can also be
configured as four single-ended signals. Each input
can have a common-mode range from VDDto VSSand
a 0.99V/V to 244V/V programmable-gain range. The differential input signals are summed with the output of
the coarse offset DAC (CO DAC) for offset correction
prior to being amplified by the programmable-gain
amplifier (PGA). The resulting signal is applied to the
differential input of the ADC for conversion.
The CPU can be programmed to measure one or two
differential inputs plus the internal temperature sensor
defined in user-supplied algorithm. For example, the
differential inputs can be measured many times while
the temperature can be measured less frequently.
The on-chip temperature sensor changes +2mV/°C over
the operating range. The ADC converts the temperature
sensor in a similar manner as the sensor inputs. During
an ADC conversion of the temperature sensor, the ADC
automatically uses four times the internal 1.25V reference
as the ADC full-scale reference (5V). The temperature
data format is 15-bit plus sign in two’s-complement format. Gain offset compensation can be programmed to
utilize the full-scale range of the ADC. Offset compensation by the CO DAC is provided so that the nominal temperature measurement can be centered at the ADC
output value. Use the CPU to provide additional digital
gain and offset correction.
Output Format
There are two output modules in the MAX1464—DOP1
(DAC Op Amp PWM 1) and DOP2 (DAC Op Amp PWM
2). Each of the DOP modules contains a 16-bit DAC, a
12-bit digital PWM converter, a small op amp, and a
large op amp with high-output-drive capability. Each
module can be configured in several different modes to
suit a wide range of output signal requirements. Either
the DAC or the PWM can be selected as the primary
output signal. The DAC output signal must be routed to
one of the two op amps before being made available to
a device pin. See the DAC, Op Amp, PWM Modules(DPOn) section for details. Additional digital outputs are
available on the GPIOs.
Initialization
A user-defined initialization routine is required to configure the oscillator frequency and various analog modules,
e.g., PGA gain, ADC resolution, ADC clock settings, etc.
After the initialization routine, the CPU can start execution
of the main program.
Power-On Reset (POR)
The MAX1464 contains a POR circuit to disable CPU
execution until adequate VDDand V
DDF
voltage are
available for operation. Once the power-on state has
been reached, the MAX1464 is kept under reset condition for 250µs before the CPU starts execution. Below
the POR threshold, all internal CPU registers are set to
their POR default state. Power-on control bits for internal
modules are reset to the OFF condition.
CPU Architecture
The CPU provides a wide range of functionality to be
incorporated in an embedded system. The CPU can
compensate nonlinear and temperature-dependent sensors, check for over/underlimit conditions, output sensor
or temperature data as an analog signal or pulse-widthmodulated digital signal, and execute control strategies.
The CPU can perform a limited amount of signal processing (filtering). A timer is included so that uniform
sampling (equally spaced ADC conversions) of the
input sensors can be performed.
The CPU registers and ports are implemented in volatile,
static memory. There are several registers contained in
various peripheral modules that provide module configuration settings, control functions, and data. These module
registers are accessible through an indirect addressing
scheme as described in detail in the CPU Registers,CPU Ports, and Modules sections. Figure 3 shows the
CPU architecture.
CPU Registers
The MAX1464 incorporates a CPU with 16 internal registers. All the CPU registers have a 16-bit data word width.
Five of the 16 registers have predefined functional operations that are dependent on the instruction being executed. The remaining registers are general purpose.
The CPU registers are embedded in the CPU itself and
are not all directly accessible by the serial interface. The
accumulator register (A), the pointer register (P), and the
instruction (FLASH data) can be read through the serial
interface when the CPU is halted. This enables a single-
Figure 3. CPU Architecture
SCLKDIDO
SERIAL INTERFACE
P0
P1
P2
P1
CPU
P3
P4
P5
P6
P7
P8
PA
PB
PC
PD
PE
PF
CPU PORTS
CS
R0 POINTER (P)
R1 ACCUMULATOR (A)
R2
R3 MULTIPLICAND (N)
R4 MULTIPLIER (M)
R5 INDEX (I)
R6
R7
R8
R9
RA
RB
RC
RD
RE
RF
CPU REGISTERS
INSTRUCTION
ADDRESS
FLASH DATA
FLASH MEMORY
(4kB)
MAX1464
Low-Power, Low-Noise Multichannel
Sensor Signal Processor
step mode of code execution to ease code writing and
debugging. A special program instruction sequence is
required to observe the other CPU registers. Table 1 lists
the CPU registers.
CPU Ports
The MAX1464 incorporates 16 CPU ports that are directly
accessible by the serial interface. All the CPU ports have
a 16-bit data word width. The contents of the ports can
be read and written by transferring data to and from the
accumulator register (A) using the RDX and WRX instructions. No other CPU instructions act on the CPU ports.
Three CPU ports PD, PE, and PF have uniquely defined
operation for reading and writing data to and from the
peripheral modules. All CPU ports are static and volatile.
Table 2 lists the CPU ports.
Modules
The MAX1464 modules are the functional blocks used
to process analog and digital signals to and from the
CPU. Each module is addressed through CPU ports PD,
PE, and PF, as described in the CPU Ports section. All
modules use static, volatile registers for data retention.
There are three types of module registers: configuration,
data, and control. They are used to put a module into a
particular mode of operation. Configuration registers
hold configuration bits that control static settings such
as PGA gain, coarse offset, etc. Data registers hold
input data such as DAC and PWM input words or output
data such as the result of an ADC conversion. Control
registers are used to initiate a process (such as an ADC
conversion or a timer) or to turn modules on and off
(such as op amps, DAC outputs, PWM outputs, etc.)
Table 3 lists the module registers.
ADC Module
The ADC module (Figure 4) contains a 9-bit to 16-bit
sigma-delta converter with multiplexed differential and
single-ended signal inputs, a CO DAC, four reference
voltage inputs, two differential or four single-ended
external inputs, and 15 single-ended internal voltages
for measurement. The ADC output data is 16-bit two’scomplement format. The conversion channel, modes,
and reference sources are all set in ADC configuration
registers. The conversion time is a function of the selected resolution and ADC clock frequency. The CPU can
be programmed to convert any of the inputs and the
internal temperature sensor in any desired sequence.
For example, the differential inputs may be converted
many times and conversions of temperature performed
less frequently. See Table 4.
The ADC reference can be selected as VDDfor conversions ratiometric to the power supply, 2 x V
REF
input for
conversions relative to an external voltage, and VBGx 4,
which is an internally generated bandgap reference
voltage. Note that because V
REF
external = 2.5V and
V
BG
= 1.25V, the ADC’s reference voltage is always
close to 5.0V. The ADC voltage reference is also used
by the CO DAC to maintain a signal conversion that is
completely ratiometric to the selected reference source.
The four analog inputs (INP1, INM1, INP2, INM2) and
several internal circuit nodes can be multiplexed to the
ADC for a single-ended conversion relative to V
SS
. The
selection of which circuit node is multiplexed to the ADC
is controlled by the ADC_Control register. The ADC can
measure each of the op-amp output nodes with gain for
converting user-defined circuits or incorporating system
diagnostic test functions. The DAC outputs can be converted by the ADC with either op amp arranged as
unity-gain buffers on the DAC outputs. The internal
power nodes, VDDand VSS, and the bandgap reference,
V
BG
can be multiplexed to the ADC for conversion as
well. These measurement modes are defined and initiated in the ADC_Control register. See Tables 5 and 7 for
the single-ended configuration.
ADC Registers
The ADC module has 10 registers for configuration,
control, and data output. There are three conversion
channels in the ADC; channel 1, channel 2, and temperature. Channels 1 and 2 are associated with the differential signal input pairs INP1-INM1 and INP2-INM2,
respectively. The temperature channel is associated
with the integrated temperature sensor. Each channel
has two configuration registers (ADC_Config_nA and
ADC_Config_nB where n = 1, 2, or T) for setting conversion resolution, reference input, coarse offsets, etc.
The data output from a conversion of channel 1, 2, or T
is stored in the respective data output register
ADC_Data_n where n = 1, 2, or T. Each of the channels
can be used to convert single-ended inputs as listed in
Table 7. The ADC_Control register controls which channel is to be converted and what single-ended input, if
any, is to be directed to that channel. See Tables 8
through 13.
Conversion Start
To initiate an ADC conversion, a word is written to the
ADC_Control register with either CNVT1, CNVT2, or
CNVTT bit set to a 1 (Table 6). When an ADC conversion is initiated, the CPU is halted and all CPU and
FLASH activities cease. All CNVT1, CNVT2, and CNVTT
bits are cleared after the ADC conversion is completed.
Upon completion of the conversion, the ADC result is
latched into the respective ADC_Data_n register. In
addition, the convert bits in control register 0 are all
reset to zero. The CPU clock is then enabled and program execution continues
Single-ended inputs can be converted by either channel
1 or 2 by initiating a conversion on the appropriate channel with the SE[3:0] bits set to the desired single-ended
input (Table 7). Several of the single-ended signals are
converted with a fixed gain. The reduced gain of 0.7V/V
allows signals at or near the supply rails to be converted
without concern of saturation. Other single-ended signals
can be converted with the full selectable PGA gain range.
Programmable-Gain Amplifier
The gain of the differential inputs and several
single-ended inputs can be set to values between
0.99V/V to 244V/V as shown in Table 14. The PGA bits
are set in ADC_Config_nA where n = 1, 2, or T. The gain
setting must be selected prior to initiating a conversion.
ADC Conversion Time and Resolution
The ADC conversion time is a function of the selected
resolution, ADC clock (f
ADC
), and system clock frequen-
cy (f
CLK
). The resolution can be selected from 9 bits to 16
bits in the ADC_Config_nA (where n = 1, 2, or T) register
by bits RESn[2:0]. The lower resolution settings (9 bit)
convert faster than the higher resolution settings (16 bit).
The ADC clock f
ADC
is derived from the primary system
clock f
CLK
by a prescalar divisor. The divisor can be set
from 4 to 512, producing a range of f
ADC
from 1MHz
down to 7.8125kHz when f
CLK
is operating at 4.0MHz.
Other values of f
CLK
produce other scaled values of
f
ADC
. See Tables 15 and 16.
Systems operating with very low power consumption
benefit from the reduced f
ADC
clock rate. Slower clock
speeds require less operating current. Systems operating from a larger power consumption budget can use
the highest f
ADC
clock rate to improve speed perfor-
mance over power performance.
The ADC conversion times for various resolution and
clock-rate settings are summarized in Table 17. The
conversion time is calculated by the formula:
t
CONVERT
= (no. of f
ADC
clocks per conversion) /
f
ADC
Figure 4. ADC Module
INP1
INM1
INP2
INM2
TEMPERATURE
SENSOR
V
DD
2 x V
REF
4 x V
BG
REF
CO
DAC
M
U
X
V
SS
NO.SINGLE-ENDED
1
V
BG
2
OUTnSM
3
OUTnLG
4
V
DD
V
5
SS
DACnOUT VIA OUTnSM
6
7
DACnOUT VIA OUTnLG
INPn
8
9
INMn
PGA
ADC
VBG
00hADC_Control
01hADC_Data_1
02hADC_Config_1A
03h
ADC_Config_1B
04hADC_Data_2
05hADC_Config_2A
06hADC_Config_2B
07hADC_Data_T
08hADC_Config_TA
09hADC_Config_TB
MAX1464
Low-Power, Low-Noise Multichannel
Sensor Signal Processor
Differential input signals that have an offset can be partially nulled by the input coarse-offset (CO) DAC. An offset voltage is added to the input signal prior to gaining
the signal. This allows a maximum gain to be applied to
the differential input signal without saturating the conversion channel. The CO signal added to the differential signal is a percentage of the full-scale ADC reference
voltage as referred to the ADC inputs. Low PGA gain settings add smaller amounts of coarse offset to the differential input. Large PGA gain settings enable correspondingly larger amounts of coarse offset to be
added to the input signal. The CO DAC also applies to
the temperature channel enabling offset compensation
of the temperature signal. See Table 18.
Bias Current Settings
The analog circuitry within the ADC module operates
from a current bias setting that is programmable. The
programmable levels of operation are fractions of the
full bias current. The operating power consumption of
the ADC can be reduced at the penalty of increased
conversion times that may be desirable in very-lowpower applications. It is recommended operating the
ADC at full bias when possible. The amount of bias as
a fraction of full bias is shown in Table 19. The setting is
controlled by the BIASn[2:0] bits in the ADC_config_nb
registers where n = 1, 2, or T.
Reference Input Voltage Select
The ADC can use one of three different reference voltage inputs depending on the conversion channel and
REFn setting as shown in Table 20. The differential
inputs can be converted ratiometrically to the supply
voltage (V
DD
), converted ratiometrically to an externally
supplied voltage at V
REF
, or converted nonratiometrically using a fixed voltage source derived from the
internal bandgap voltage source. The temperature
channel is always converted using the internal bandgapderived voltage source and therefore is not selectable.
Output Sample Rate
Generally, the sensor and temperature data are converted and calculated by an algorithm in the execution loop.
The output sample rate of the data depends on the conversion time, the CPU algorithm loop time, and the time to
store the result in the DOPn_DATA register. To achieve
uniform sampling, the instruction code must be written to
provide a consistent algorithm loop time, including
branch instruction variations. This total loop time interval
should be repeatable for a uniform output rate.
The MAX1464 has a built-in timer that can be used to
ensure that the sampling interval is uniform. The timeout
value can be set so the CPU computations and the read-
ing of the serial interface, if required, can be completed
before timeout. The GPIO pins can be utilized to interrupt
an external master microcontroller when the ADC conversion is done and/or when the CPU computations are
done so the serial interface can be read quickly.
DAC, Op Amp, PWM Modules (DOPn)
There are two output modules in the MAX1464—DOP1
and DOP2 (Figure 5). Each of the DOP modules contains a 16-bit DAC, a 12-bit digital PWM converter, a
small op amp, and a large op amp with high-outputdrive capability. Switches in the DOP module enable a
range of interconnectivity among the converters, op
amps, and the external pins. Either the DAC or the
PWM can be selected as the primary output signal. The
DAC output signal is routed to one of the op amps and
made available to a device pin. The signal-switching
arrangement also allows the unused op amp to be configured as an uncommitted device with all connections
available to external pins.
The DAC and op amps have a power-control bit in the
power module. When power is disabled, all circuits in
the DAC and the op amp are disabled with inputs and
outputs in a tri-state condition. The proper bits in the
power module must be enabled for operation of the
DAC and op amps.
The DAC input is a 16-bit two’s-complement value. An
input value of 0000h produces an output voltage of one
half the DAC reference voltage. The DAC output voltage
increases for positive two’s-complement numbers, and
decreases for negative two’s-complement numbers.
The PWM input is a 12-bit two’s complement value. It
shares the same input register (DOPn_Data) as the
DAC, using the 12 MSBs of the 16-bit register. An input
value of 000Xh produces a 50% duty cycle waveform at
the output. The PWM output duty cycle increases for
positive two’s-complement numbers, and decreases for
negative two’s-complement numbers.
DOP_n Configuration Options
Each of the DOP modules can be configured in several
different modes to suit a wide range of output signal
requirements. The Functional Diagram shows the various
switch settings of the configuration and control registers.
In situations where configuration settings create a conflict in switch activation, a priority is applied to the switch
logic to prevent the conflict.
The DAC and/or the PWM can be selected as the output signal source. The DAC output signal is routed to
one of the op amps and made available to a device
pin. Selecting the large op amp as the DAC output driver device enables a robust current drive capability for
driving signals into low-impedance loads or across
long lengths of wire. The unity-gain buffer configuration
is automatically selected, and it provides the DAC output signal directly to the device pin OUTnLG. With the
large op amp selected, the small op amp can be used
as an independent device for external circuit applications when the PWM is disabled. Alternatively, the PWM
can also be enabled to drive the OUTnSM device pin,
in which case the small op amp is OFF.
Selecting the small op amp as the DAC output driver
device is useful for routing the output signal to other circuits in an embedded control system with high-impedance load connections. The unity-gain buffer configuration
is automatically selected, and it provides the DAC output
signal directly to the device pin OUTnSM. With the small
op amp selected, the large op amp can be used as an
independent device for external circuit applications when
the PWM is disabled. Alternatively, the PWM can also be
enabled to drive the OUTnLG device pin, in which case
the large op amp is OFF.
The DAC has two reference voltage sources available by
selection, VDDand V
REF
input. When the external refer-
ence is selected (V
REF
), the actual DAC reference is 2 x
V
REF
. See V
REF
to 2.5V for nominal operation. The output
of the DAC is a voltage proportional to the reference voltage selected, where the proportionality scaling (DAC
input) is set in the data input register DOPn_Data.
The DOP module also provides a 12-bit digital PWM
output. At a nominal 4MHz frequency, the frequency of
the PWM is 122Hz (PWM period = 8.192ms). The DAC
and the PWM share the same input register,
DOPn_Data, where the PWM uses the 12 MSBs, in
two’s-complement format. An input of 000Xh (4 LSBs
are ignored) outputs a 50% duty cycle waveform at the
selected output pin (either OUTnSM or OUTnLG). The
PWM bit weight is 2µs, at a nominal frequency of 4MHz.
The minimum duty cycle is obtained when the input is
800Xh (duty cycle is 0 / 4096 = 0), and the maximum
duty cycle at 7FFXh (duty cycle is 4095 / 4096 =
99.98%). A new PWM input word is only effective at the
end of a current PWM cycle, therefore preventing PWM
glitches on the output.
Either the small or the large op amp in the DOP module
can also be selected as an uncommitted op amp in the
MAX1464. The op amps can be configured as a unitygain buffer, where the output is internally connected to the
negative terminal of the op amp, or a stand-alone op amp,
where both AMPnM and AMPnP can be externally connected for various analog functions. In the case of a buffer,
the device pin AMPnM is in high-impedance mode, as the
feedback loop around the op amp is connected internally.
OUTnSM
Figure 5. DOP1 and DOP2 Modules
AMPnM
SW10
V
DD
SW0
SM
SW1
SW2
SW3
REF
DAC
SW4
2 x V
REF
10h OR 13hDOPn_Data
11h OR 14hDOPn_Control
12h OR 15hDOPn_Config
AMPnP
OUTnLG
SW11
SW5
SW6
LG
SW7
30hOpAmp_Config
SW8
PWM
SW9
MAX1464
Low-Power, Low-Noise Multichannel
Sensor Signal Processor
Every function of the DOP module can be selected individually (DAC, PWM, or op amp), or two out of the three functions of the DOP module can be selected at the same time
(PWM and op amp, or DAC and PWM, or DAC and op
amp), as there are only two output pins for the module,
OUTnSM and OUTnLG. The various configuration options
for the DOP are shown in Table 21. The PWRDAC and
PWROP bits are in the power-on control register (address
= 31h), and the remaining bits are in the DOP registers.
See Tables 21 through 27.
Timer Module
The timer module (Figure 6) comprises a 12-bit counter, a
4-bit prescalar, and control and configuration registers.
When the timer is enabled and initiated, the system master
clock, MCLK, is prescaled by the divisor set by PS[3:0] in
the TMR_Config register and the result applied to the 12bit upcounter. When the counter value matches the timeout value TO[11:0] in register TMR_Config, bit TMDN is set
to 1. The CPU can poll the timer done bit TMDN to check
its status.
The timer module provides a feature that enables the CPU
to be put into a low-power halt mode for the duration of the
timer interval. Setting the ENAHALT bit in the TMR_Control
register while starting the timer (setting the timer enable bit
TMEN to 1), or while the timer is already enabled and
counting halts the CPU at the present instruction until the
TMDN bit becomes set by the counter. The CPU commences execution with the next instruction. All CPU registers and ports are fully static and retain all data during the
elapsed time interval.
The time interval between TMEN being set to 1, and
TMDN being set to 1 can be computed as follows:
Time Interval = (2 / f
OSC
) x {(prescale value N)
x (timeout value TO[11:0]) + 1.5}
The maximum time interval given f
OSC
= 4MHz clock is
786ms.
Power Control
The power to various subcircuits in the MAX1464 can be
turned on and off by CPU control and by the serial interface. Unused subcircuits and modules can be turned off
to reduce power consumption. The default state after
power-on is all subcircuits and modules powered off.
This enables low-power embedded systems to turn on
only the needed modules after exiting a low-power CPU
halt timer interval. Modules can be turned on and off as
needed; however, care must be exercised to allow for
module initialization and settling prior to use.
Oscillator Control
The MAX1464 has a fully integrated oscillator with a
nominal 4MHz frequency. An external clock source can
be used when the clock-select pin CKSEL = 0, operating
all internal timing functions. CKIO can also be configured
as an output source of the internal oscillator clock.
GPIO Module
The MAX1464 contains two general-purpose digital
input/output (GPIO) modules, GPIO1 and GPIO2, which
can be written and read by CPU control and by the serial interface. These two I/O pins operate independently
of each other. They can be configured as inputs, outputs, or one input and one output. When configured as
an input, there are two modes of sensing digital inputs;
as a voltage or logic level, or as an edge detector. In
edge-detector mode, either a rising or falling edge can
be selected for detection. A bit is set in the GPIO control register upon detection of the selected edge.
The GPIO pins have nominal 100kΩ pulldown resistors
to V
SS
as in Figure 6. Pulldown resistors provide a low
logic level when the pin is unconnected. The GPIO may
also serve as an input pin and its state is read from the
GPIO control register (Tables 28 and 29). When using
the GPIO pin as a general-purpose output, its output
state is defined by writing to the GPIO control register.
The GPIOn pins can be configured as an alert output
that goes low or high whenever a fault condition happens, e.g., remote sensor line disconnection, overflow
conditions in the CPU program execution, etc.
All input and output control for the GPIO1 and GPIO2
pins are contained in GPIO1_Control (address = 40h)
and GPIO2_Control (address = 41h), respectively.
Figure 7 shows the GPIO1 and GPIO2 modules.
Serial Interface Timing and Operation
The MAX1464 serial interface is a high-speed asynchronous data input and output communication port,
providing access to internal registers for calibration of
embedded control sensor systems. All the FLASH
memory is read and write accessible by the serial inter-
face for programming of instruction code and calibration coefficients. The MAX1464 serial interface can
operate in 4-wire SPI-compatible mode or in a 3-wire
mode (default on power-up). In 3-wire mode, the DI and
DO lines can be connected together, forming a bidirectional data line. The serial interface lines consist of
chip-select (CS), serial clock (SCLK), data in (DI), and
data out (DO).
The MAX1464 serial interface is selected by asserting
CS low. The serial input clock, SCLK, is gated internally
to begin sequencing the DI input data and outputting
the output data onto DO. When CS rises, the data that
was clocked into DI is loaded into an internal register
set (IRS[7:0]). The MAX1464 chip-select line CS cannot
be connected low continuously for normal operation.
The serial interface can be used both during sensor
calibration, as well as during normal operation. Each
byte of data written into the MAX1464 serial port contains a 4-bit addresses nibble (IRSA [3:0]) and a 4-bit
data nibble (IRSD [3:0]). The IRS register holds both
the IRSD and IRSA nibbles as follows:
IRS [7:0] = IRSD [3:0], IRSA [3:0]
Four bytes of IRS information must be written into the
serial interface to transfer 16 bits of data through IRSD
into a MAX1464 internal register. All serial data written
into the MAX1464 is transferred through the IRS register.
The DI is read in with the LSB of the IRSA nibble first
and the MSB of the IRSD nibble last. Figure 8 shows
serial interface data input.
The IRSA bits are decoded to determine which register
the IRSD bits should be latched into. The IRSA bits
can address the DHR, the PFAR, the CR, and the IMR.
All serial data read from the serial interface is sourced
from the 16-bit DHR. Any data to be read by the serial
interface must first be placed into the internal DHR register
before being accessible for reading by the serial interface.
The entire 16-bit content of the DHR register is read out
through the DO pin by applying 16 successive clock
pulses to SCLK while CS remains low. DHR is clocked
out MSB bit first. Figure 9 shows the 4-wire mode data
read from the DHR register
In 4-wire mode, data is transferred into DI during the
clocking of data out of DO. Therefore, the last 8 bits
clocked into the DI pin during this data transfer are
latched into the IRS register and decoded when CS
returns high.
When the MAX1464 serial interface is configured in 3wire mode, the 16-bit DHR data is read out immediately
following the command for 3-wire mode enable. Figure
10 shows the 3-wire enable command (IRS[7:0] = 19h)
clocked into DI with a subsequent 16-bit read of DHR
on DO. DO remains in high impedance (tri-state) until
the 3-wire enable command is received. Then DO goes
into low-impedance drive mode during the next low
cycle of CS. As SCLK is clocked 16 times, the data in
DHR is clocked out at DO. The 3-wire enable command
is the command that sets the MAX1464 ready for output
on DO on the next low cycle of CS. Following the DHR
output on the low cycle of CS, the DO line returns to
high-impedance state until the next 3-wire enable command is received. The MAX1464 can receive an indefinite number of inputs to DI without the need for a 3-wire
enable command to be received.
When the IRSD[3:0] nibble is written to the command
register (CR), i.e., when IRSA[3:0] = 1000, the nibble is
decoded and a command operation is initiated. The
command register decoding is shown in Table 39.
When the IRSD[3:0] nibble is written to the IMR, i.e.,
when IRSA[3:0] = 1000, the nibble is decoded and a
command operation is initiated. The IMR decoding is
shown in Table 40.
Note that after power is applied and the POR function
completes, the serial interface default is the 3-wire mode
for receiving data on DI only. The DO line is a highimpedance output until the MAX1464 receives either the
4-wire or 3-wire mode command in the IMR. In the case
of a 3-wire mode command, DO switches from a highimpedance state to a driving state only for the next cycle
of CS, returning to high impedance afterwards.
All commands, with the exception of programming or
erasing the FLASH memory, are completed within eight
internal master clock cycles of CS returning from low to
high. This is 4µs for a 4MHz oscillator frequency or
external clock input (1 internal master clock = 2 external/internal oscillator periods). FLASH memory programming and erasing require additional time of 80µs
and 4.2ms, respectively.
Figure 7. GPIO1 and GPIO2 Modules
40h OR 41hGPIOn_Control
EDGE OR LEVEL DETECT
GPIOn
100kΩ
TRI-STATE
BUFFER
V
SS
MAX1464
Low-Power, Low-Noise Multichannel
Sensor Signal Processor
There are 4096 bytes of programmable/erasable FLASH
memory for CPU program instructions and coefficients
storage. In addition, there are 128 bytes of FLASH memory accessible only by the serial interface for storage of
user information data.
These two FLASH memory locations are separated as
partitions. The program/coefficient memory is FLASH
partition 0 and the information memory is FLASH partition 1. Each partition is accessible by the serial interface for reading, erasing, and writing data. Program/
coefficient memory partition 0 is accessible by the CPU
as read only, and partition 1 is not accessible by the
CPU. The CPU cannot erase or write data to either of
the FLASH memory partitions.
FLASH partition 0 is selected during the POR cycle.
FLASH partition 1 is selected by sending the halt CPU
command (IRS[7:0] = 78h) and changing the partition
selected by sending the change partition command
(IRS[7:0] = F8h). A following halt command (IRS[7:0] =
78h) resets the selected partition to partition 0.
Modifying the FLASH Contents
The MAX1464 FLASH memory contents must be erased
(contents = FFh) before the desired contents can be written. There is no individual byte-erase command, but
either a total-erase command (IRS[7:0] = E8h) where all
the selected partition is erased (4kB for partition 0 or 128
bytes for partition 1) or a page-erase command (IRS[7:0]
= D8h), where only 64 bytes are erased, and the page is
selected by PFAR[11:6]. There are 64 pages in FLASH
partition 0, and only 2 pages in FLASH partition 1.
The programming of the MAX1464 FLASH memory
must use the following procedure (all the commands
are to be sent through the serial interface, and are
hexadecimal values of IRS[7:0]):
Figure 8. Serial Interface Data Input
Figure 9. 4-Wire Mode Data Read from DHR Register
Figure 10. 3-Wire Mode Data Read from DHR Register
2) If partition 1 is to be modified, enter the following
command:
F8
Otherwise, partition 0 is selected.
3) Turn off all analog modes:
03 02 01 00(write 0000h to DHR[15:0])
D4(write Dh to PFAR[3:0])
08 (write DHR, 1000h to CPU port
pointed by PFAR[3:0], port D)
03 02 31 10(write 0031h to DHR[15:0])
E4(write Eh to PFAR[3:0])
08(write DHR, 0031h to CPU port
pointed by PFAR[3:0], port E)
83 02 01 00(write 8000h to DHR[15:0])
F4(write Fh to PFAR[3:0])
08(write DHR, 8000h to CPU port
pointed by PFAR[3:0], port F)
At this point, all the MAX1464 analog modules are off.
4) For erasing the whole partition, send the following
command:
E8
Otherwise, if only a page erase is required, first write
PFAR[11:6] with the page address, as:
07 X6 X5 04(write 0XX0h to PFAR[15:0])
Note that the 2 lower bits of PFAR[7:4] should be
zero, and only the upper 2 bits of that nibble should
be set to the desired value. Then, after writing the
page address, send the page-erase command:
D8
5) Wait at least 4.2ms before sending any other
command to allow the necessary time for the
erase operation to complete.
6) Write the address of the FLASH byte to be written
to PFAR[15:0]:
07 X6 X5 X4(write 0XXXh to PFAR[15:0])
7) Write the contents of the byte to DHR[7:0]:
X1 X0(write XXh to DHR[7:0], high nibble
at DHR[7:4])
8) Send the command to execute the FLASH write:
18
9) Repeat steps 6, 7, and 8 for all the bytes to be
written. It is not necessary to send the whole
address and data for every byte that is written. Only
the nibbles that are modified in the PFAR and in the
DHR from previous values must be changed. The
time interval between successive write commands
(18h) must be at least 80µs.
10) If partition 1 was selected in step 2, and the user
wants to switch back to partition 0, send the follow
ing command:
78
At this point, partition 0 is selected. The user may
want to go back to step 4 to program partition 0, or
just continue on.
Reading the FLASH Contents
The procedure to read the FLASH contents is no different
from reading any other information from the MAX1464.
The FLASH contents must be copied to the DHR and
read through the serial interface:
1) If the CPU is not halted, halt the CPU:
78
2) If partition 1 is to be read, enter the following
command:
F8
Otherwise, partition 0 is selected.
3) Write the address of the flash byte to be read to
PFAR[15:0]:
07 X6 X5 X4(write 0XXXh to PFAR[15:0])
4) Copy the contents of FLASH addressed by PFAR to
DHR:
38
5) If the interface is configured in 3-wire mode, send
19
to enable DO on the next CS cycle. Then tri-
state the DI driver, and send 16 SCLK pulses on
the following CS cycle, and DO outputs DHR[15:0].
The FLASH data is present at DHR[7:0]. See Figure
10 for details.
If the interface is configured in 4-wire mode, there
is no need to enable the DO line, as it has already
been enabled by a previous IRS command 09h.
Send the 16 SCLK pulses and retrieve the data on
the DO line.
6) Repeat steps 3, 4, and 5 for every byte to be read.
Only the nibbles that are modified in the PFAR register are required to be sent.
MAX1464
Low-Power, Low-Noise Multichannel
Sensor Signal Processor
The program and coefficient memory, FLASH partition 0,
is addressed by the CPU and by the serial interface
sequentially from 0000h (0 dec) to 0FFFh (4095 dec).
Program execution by the CPU always begins at address
0000h and proceeds toward 0FFFh in 1-byte increments.
Although both the CPU and the serial interface can
address a 16-bit field, the FLASH size only uses 12
bits. Therefore, the leading 4 MSBs of the address field
are ignored. It is advisable to have all leading bits of
the 16-bit address in PFAR[15:0] set to zero.
The FLASH memory in partition 0 can be erased in individual 64-byte pages using the page-erase command,
or erased in bulk using the all-erase command. The
information data memory (partition 1) is unaffected by
any operation performed on partition 0.
Information Data Memory
The information data memory, FLASH partition 1, is
addressed by bytes sequentially from 00h (0 dec) to 7Fh
(127 dec). The addressed byte should have all leading
bits of the 16-bit address in PFAR[15:0] set to zero.
The FLASH memory in partition 1 has only two 64-byte
pages that can be erased separately using the pageerase command, or erased together using the all-erase
command. Data in partition 0 is not affected by any
operation performed on partition 1.
MAX1464 CPU Instruction Set
The MAX1464 CPU has 16 instructions used to perform
all calculations for sensor compensation, linearization,
and signal output functions. Each instruction comprises
a 4-bit op code and a 4-bit CPU register address. The
op code describes what operation to perform; the register address describes what register, or registers, to
perform the operation on.
Instruction Format
All instructions are single-byte instructions with the
exception of load data from instruction memory. LDX
fetches the 2 following bytes of instruction memory and
loads them into a register. This is how calibration and
compensation coefficients are stored within the
MAX1464. Any number of coefficients can be stored in
instruction memory. The instruction code format is as
follows:
Instruction Set Details
LDXLoad Register X
Op-code:0000 XXXX
BINARY
0Xh
Operation:
X-register ← [PC+1] : [PC+2]
PC-register ← PC + 3 (point to next instruction)
CPU Cycles required:
3 cycles
Instruction:
Loads the next 2 bytes of program memory into CPU
register X. Register X can be any of the 16 CPU registers. Program counter (PC) is incremented twice during
the fetches of the next 2 bytes and incremented a third
time to point to the next instruction in program memory.
Two’s-complement data format is preserved.
No branching occurs.
No other registers are affected.
CLXClear Register X
Op-code:0001 XXXX
BINARY
1Xh
Operation:
X-register ← 0000h
PC-register ← PC + 1 (point to next instruction)
CPU Cycles required:
1 cycle
Description:
Clear the contents of register X to 0000h.
Register X can be any of the 16 CPU registers.
PC is incremented once to point to the next instruction
in program memory.
Perform a 16-bit logical AND operation, bit for bit, on
the contents of the A-register and the contents of the Xregister. Store the 16-bit result back into the A-register.
The previous contents of the A-register are overwritten
and lost.
Register X can be any of the 16 CPU registers.
PC is incremented once to point to the next instruction
in program memory.
Two’s-complement data format is not preserved.
No branching occurs.
No other registers are affected.
ORXOR Register X with Register A
Op-code:0011 XXXX
BINARY
3Xh
Operation:
A-register ← A-register OR X-register
PC-register ← PC + 1 (point to next instruction)
CPU Cycles required:
1 cycle
Description:
Perform a 16-bit logical OR operation, bit for bit, on the
contents of the A-register and the contents of the X-register. Store the 16-bit result back into the A-register.
The previous contents of the A-register are overwritten
and lost.
Register X can be any of the 16 CPU registers.
PC is incremented once to point to the next instruction
in program memory.
Two’s-complement data format is not preserved.
No branching occurs.
No other registers are affected.
ADXADD Register X to Register A
Op-code:0100 XXXX
BINARY
4Xh
Operation:
A-register ← A-register + X-register
PC-register ← PC + 1 (point to next instruction)
CPU Cycles required:
1 cycle
Description:
Perform a 16-bit arithmetic addition of the A-register
and the contents of the X-register. Store the low 16 bits
of the result back into the A-register. Any overflow bit
resulting from the addition operation is lost. The previ-
ous contents of the A-register are overwritten and lost.
Register X can be any of the 16 CPU registers.
PC is incremented once to point to the next instruction
in program memory.
Two’s-complement data format is preserved.
No branching occurs.
No other registers are affected.
STXStore Register X
Op-code:0101 XXXX
BINARY
5Xh
Operation:
X-register ← A-register
PC-register ← PC + 1 (point to next instruction)
CPU Cycles required:
1 cycle
Description:
Perform a 16-bit move operation from the A-register into
the X-register. The A-register contents are unchanged.
The previous contents of the X-register are overwritten
and lost.
Register X can be any of the 16 CPU registers.
PC is incremented once to point to the next instruction
in program memory.
Two’s-complement data format is preserved.
No branching occurs.
No other registers are affected.
SLXShift Left Register X
Op-code:0110 XXXX
BINARY
6Xh
PC-register ← PC + 1 (point to next instruction)
CPU Cycles required:
1 cycle
Operation when X ≠ 6h:
141513 12 11 10 9 876 543 210
BIT:
Operation when X = 6h:
14
1513 12 11 10 9 876 543 210BIT:
141513 12 11 10 9 876 543 210BIT:
REGISTER X
REGISTER R6
REGISTER M: R4
0
MAX1464
Low-Power, Low-Noise Multichannel
Sensor Signal Processor
Perform a 16-bit shift-left operation on the contents of
X-register. The most significant bit, bit 15, is truncated
and lost. If register X is any CPU register other than
register R6, then a zero is appended into the LSB, bit 0.
If X is CPU register R6, then the data appended into the
LSB bit 0 is copied from the MSB of register R4. The
contents of register R4 are not affected. The operation
does not preserve the two’s-complement sign bit-15.
The operation is equivalent to an arithmetic multiplication by 2 on an unsigned integer value stored in register X. The result is stored back into the X-register. The
previous contents of the X-register are overwritten
and lost.
Register X can be any of the 16 CPU registers.
PC is incremented once to point to the next instruction
in program memory.
Two’s-complement data format is not preserved.
No branching occurs.
No other registers are affected.
SRXShift Right Register X
Op-code: 0111 XXXX
BINARY
7Xh
PC-register ← PC + 1 (point to next instruction)
CPU Cycles required:
1 cycle
Description:
Perform a 15-bit shift-right operation on the contents of
X-register, preserving the contents of the two’s-complement sign bit-15 and propagating the sign bit, bit-15,
into bit-14. The least significant bit, bit 0, is truncated
and lost. The operation is equivalent to an arithmetic
division by 2. The result is stored back into the X-register. The previous contents of the X-register are overwritten and lost.
Register X can be any of the 16 CPU registers.
PC is incremented once to point to the next instruction
in program memory.
Two’s-complement data format is preserved.
No branching occurs.
No other registers are affected.
INXIncrement Register X
Op-code:1000 XXXX
BINARY
8Xh
Operation:
X-register ← X-register + 1
PC-register ← PC + 1 (point to next instruction)
CPU Cycles required:
1 cycle
Description:
Perform a 16-bit increment operation on the contents of
the X-register. Should the increment result in an overflow, the overflow bit is truncated and lost. The result is
stored back into the X-register. The previous contents
of the X-register are overwritten and lost.
Register X can be any of the 16 CPU registers.
PC is incremented once to point to the next instruction
in program memory.
Two’s-complement data format is preserved.
No branching occurs.
No other registers are affected.
DEXDecrement Register X
Op-code:1001 XXXX
BINARY
9Xh
Operation:
X-register ← X-register - 1
PC-register ← PC + 1 (point to next instruction)
CPU Cycles required:
1 cycle
Description:
Perform a 16-bit decrement operation on the contents
of the X-register. Should the decrement result in an
underflow, the underflow bit is truncated and lost. The
result is stored back into the X-register. The previous
contents of the X-register are overwritten and lost.
Register X can be any of the 16 CPU registers.
PC is incremented once to point to the next instruction
in program memory.
PC-register ← PC-register + 1 (point to next
instruction)
CPU Cycles required:
1 cycle
Description:
Perform a 16-bit logical NOT operation on the contents
of the X-register. Each bit is flipped to its complementary value. The result is stored back into the X-register.
The previous contents of X-register are overwritten
and lost.
Register X can be any of the 16 CPU registers.
PC is incremented once to point to the next instruction
in program memory.
Two’s-complement data format is not preserved.
No branching occurs.
No other registers are affected.
BPXBranch If Positive Or Zero
Op-code:1011 XXXX
BINARY
BXh
Operation:
If MSB(Register I) = 0 then:
PC-register ← PC-register + X-register
Else:
PC-register ← PC + 1 (point to next
instruction)
CPU Cycles required:
1 cycle
Description:
Perform a 16-bit check of I-register for a positive (two’s
complement) or zero value and branch the number of
instructions indicated in register-X. The test operation
checks the most significant bit, bit-15, for a 0Band, if
true, adds the contents of the X-register to the program
counter register. This causes an immediate jump to the
new program memory location. The next instruction to
execute is fetched from the program memory byte
pointed to by the new contents of the PC-register.
A 1Bin bit-15 of the I-register is indicative of a negative
number (two’s complement) to which the test for positive-or-zero value fails. This causes the “else” operation
to be performed and the PC-register is incremented by
one pointing to the next sequential instruction in program memory to be executed. The effect bypasses the
branch mechanism and normal, sequential, code execution results.
The next instruction to execute is fetched from the program memory byte pointed to by the new contents of
the PC-register. The previous contents of the PC-register are overwritten and lost.
Two’s-complement data format is preserved.
Branching may occur.
No other registers are affected.
BNXBranch If Not Zero
Op-code:1100 XXXX
BINARY
CXh
Operation:
If I-register ≠ 0000h then:
PC-register ← PC-register + X-register
Else:
PC-register ← PC-register + 1 (point to
next instruction)
CPU Cycles required:
1 cycle
Description:
Perform a 16-bit check of the I-register for a nonzero
condition and, if true, add the contents of the X-register
to the program pointer register. This causes an immediate jump to the new program memory location. The
next instruction to execute is fetched from the program
memory byte pointed to by the new contents of the PCregister.
A 1Bin any bit of the I-register is indicative of a nonzero
number to which the test for a zero value fails. This
causes the “else” operation to be performed and the
PC-register is incremented by one pointing to the next
sequential instruction in program memory to be executed. The effect bypasses the branch mechanism and
normal, sequential, code execution results.
The next instruction to execute is fetched from the program memory byte pointed to by the new contents of
the PC-register. The previous contents of the PC-register are overwritten and lost.
Two’s-complement data format is preserved.
Branching may occur.
No other registers are affected.
RDXRead Port X
Op-code:1101XXXX
BINARY
DXh
Operation:
A-register ← port-X
PC-register ← PC + 1 (point to next instruction)
MAX1464
Low-Power, Low-Noise Multichannel
Sensor Signal Processor
Perform a 16-bit move operation from port-X to the Aregister.
The port-X contents are unchanged.
The previous contents of A-register are overwritten
and lost.
The port-X can be any of the CPU ports.
PC is incremented once to point to the next instruction
in program memory.
Two’s-complement data format is preserved.
No branching occurs.
No other registers are affected.
WRXWrite Port X
Op-code:1110 XXXX
BINARY
EXh
Operation:
Port-X ← A-register
PC-register ← PC + 1 (point to next instruction)
CPU Cycles required:
1 cycle
Description:
Perform a 16-bit move operation from the A-register to
port-X.
The A-register contents are unchanged.
The previous contents of port-X are overwritten
and lost.
The port-X can be any of the CPU ports.
PC is incremented once to point to the next instruction
in program memory.
Two’s-complement data format is preserved.
No branching occurs.
No other registers are affected.
MLTMultiply
Op-code:1111 0011
BINARY
F3h
Operation:
A-register | M-register ← N-register x M-register
PC-register ← PC + 1 (point to next instruction)
CPU Cycles required:
16 cycles
Description:
Perform a 16-bit by 16-bit arithmetic multiplication of
the M-register and the N-register producing a 32-bit
result. The 32-bit result is stored in two 16-bit registers;
the A-register receives the most significant word of the
result and the M-register receives the least significant
word of the result.
The A-register must be cleared to zero (CLX A) before
executing the MLT instruction. The previous contents of
the A-register are overwritten and lost.
The previous contents of the M-register are overwritten
and lost.
The contents of the N-register are not altered.
The register op code must be 3h.
PC is incremented once to point to the next instruction
in program memory.
Pointer Register. This register contains the address of the instruction or data in FLASH
memory to be fetched.
Accumulator Register. This register generally contains the result of any operation
involving two or more registers. It is the accumulator for the multiregister operation
result and can be used effectively to carry data from one computation to the next. The
A register can read and write data to and from any other CPU port or register.
General-Purpose Register. Used to hold intermediate calculation results, calculation
coefficients, loop counter values, event counter values, comparison limit values, etc.
Multiplicand Register. This register has a dedicated function when executing a
multiply (MLT) instruction, but can be used as a general-purpose register otherwise.
The contents of the N register are not modified by the MLT instruction.
Multiplier Register. This register has a dedicated function when executing a multiply
(MLT) instruction, but can be used as a general-purpose register otherwise. The
contents of the M register are modified by the MLT instruction. The data contents prior
to the execution of the MLT instruction are overwritten with the LSBs resulting product,
and hence lost.
Index Register. The branch not zero (BNX) and branch positive (BPX) instructions test
the index register, I, for conditions to determine if branching should occur. If the index
register tests true for the condition to branch, then the contents of register X are added
to the pointer register, therefore executing a branch in the program.
6h–FhR6–RF—
General-Purpose Registers. Used to hold intermediate calculation results, calculation
coefficients, loop counter values, event counter values, comparison limit values, etc.
Table 2. CPU Ports
MAX1464
Low-Power, Low-Noise Multichannel
Sensor Signal Processor
Module Data Port. This port is used to transfer data to and from the various functional modules in the
MAX1464. Data loaded into PD can be transferred to the data, configuration, or control register of any
of the functional modules. The data transfer is initiated using the module control port (PF). The
contents of PD are not changed during module write operations, but are overwritten by module read
operations.
Module Address Port. This port is used to address a module register. A module address is loaded
into PE prior to initiating a data transfer or control function in the module control port. All modules in
the MAX1464 are accessed through this indirect addressing method. The contents of PE are not
changed by the read or write operations to module registers. Only the lower 8 bits are used. The
upper 8 bits are not decoded.
Module Control Port. This port initiates an operation on the module addressed by PE. Data can be
written to, or read from, module registers. Specific bits are assigned in the module control port to
initiate operations on the MAX1464 modules:
Bit 15 (CTRL): 1 = Initiate action defined in bit 14, 0 = no action initiated. Autoreset to zero after
operation is completed.
Bit 14 (RD/WR): 1 = read data, 0 = write data.
Bits 13–0: Not decoded.
*The value bbbb is any nonzero single-ended setting.
BITSNAMEDESCRIPTION
15–12—Unused.
11–8SE[3:0]Single-ended signal source multiplexer. SE[3] = MSB.
7–3—Unused.
1 = Initiate conversion on channel 1 using ADC settings specified in registers ADC_Config_1A and
2CNVT1
1CNVT2
0CNVTT
CNVT1CNVT2CNVTTSE[3:0]
000XXXX—No measurement.
0010000T
ADC_Config_1B. The ADC result is stored in ADC_Data_1. CPU is halted during the conversion
process. This bit is automatically reset to zero when conversion is completed.
1 = Initiate conversion on channel 2 using ADC settings specified in registers ADC_Config_2A and
ADC_Config_2B. The ADC result is stored in ADC_Data_2. CPU is halted during the conversion
process. This bit is automatically reset to zero when conversion is completed.
1 = Initiate conversion on temperature sensor using ADC settings specified in registers
ADC_Config_TA and ADC_Config_TB. The ADC result is stored in ADC_Data_T. CPU is halted during
the conversion process. The bit is automatically reset to zero when conversion is completed.
RESULT
DATA_n
Convert the temperature sensor signal using the settings in
ADC_Config_TA and ADC_CONFIG_TB, storing the result in the
ADC_Data_T register.
DESCRIPTION
Convert the differential signal INP2-INM2 using the settings in
01X00002
1XX00001
001bbbb*—Not used for any setting of SE[3:0] ≠ 0000.
01Xbbbb*2
1XXbbbb*1
ADC_Config_2A and ADC_Config_2B, storing the result in the ADC_Data_2
register.
Convert the differential signal INP1-INM1 using the settings in
ADC_Config_1A and ADC_Config_1B, storing the result in the ADC_Data_1
register.
Convert the single-sided signal indicated by SE[3:0] using the settings in
ADC_Config_2A and ADC_Config_2B, if appropriate, storing the result in
the ADC_Data_2 register.
Convert the single-sided signal indicated by SE[3:0] using the settings in
ADC_Config_1A and ADC_Config_1B, if appropriate, storing the result in
the ADC_Data_1 register.
*The PGA operates at a fixed reduced gain of 0.7V/V to enable conversion of input signals at and near VDDand VSS. This gain set-
ting is not selectable.
**When measuring V
DD
, use the external reference or the 4 x VBGsetting.
Table 8. ADC_Config_1A (Address = 02h)
Table 9. ADC_Config_1B (Address = 03h)
Table 10. ADC_Config_2A (Address = 05h)
SE[3:0]
00010.99VBGV
00100.99 to 244OUTnSMV
00110.99 to 244OUTnLGV
01000.7*VDD**V
01010.7*V
01100.7*
01110.7*
10000.99 to 244INPnV
10010.99 to 244INMnV
PGA
RANGE (V/V)
ADC
+INPUT
SS
DACn_OUT using
OUTnSM
DACn_OUT using
OUTnLG
ADC
-INPUT
SS
SS
SS
SS
V
SS
V
SS
V
SS
SS
SS
DESCRIPTION
Bandgap voltage.
Output of small op-amp n.
Output of large op-amp n.
Power-supply voltage.
Power-supply ground.
DACn output through small op-amp n configured
as unity-gain buffer.
DACn output through large op-amp n configured
as unity-gain buffer.
Single-ended input on INPn.
Single-ended input on INMn.
BITNAMEDESCRIPTION
15–11PGA1[4:0]Programmable-gain amplifier setting to use during conversion of channel 1. PGA1[4] = MSB.
10–8CLK1[2:0]ADC clock setting to use during conversion of channel 1. CLK1[2] = MSB.
7—Unused.
6–4RES1[2:0]ADC resolution setting to use during conversion of channel 1. RES1[2] = MSB.
3CO1[3]Coarse-offset sign bit.
2–0CO1[2:0]Coarse-offset DAC setting to use during conversion of channel 1. CO1[2] = MSB.
BITNAMEDESCRIPTION
15–7—Unused.
6–4BIAS1[2:0]ADC bias setting to use during conversion of channel 1. BIAS1[2] = MSB.
3–2—Unused.
1–0REF1[1:0]Reference select for conversion on channel 1. REF1[1] = MSB.
BITNAMEDESCRIPTION
15–11PGA2[4:0]Programmable-gain amplifier to use during conversion of channel 2. PGA[4] = MSB.
10–8CLK2[2:0]ADC clock setting to use during conversion of channel 2. CLK2[2] = MSB.
7—Unused.
6RES2[2:0]ADC resolution setting to use during conversion of channel 2. RES2[2] = MSB.
3CO2[3]Coarse-offset DAC sign bit.
2–0CO2[2:0]Coarse-offset DAC setting to use during conversion of channel 2. CO2[2] = MSB.
MAX1464
Low-Power, Low-Noise Multichannel
Sensor Signal Processor
Note 14: A pulse or level must remain on GPIOn for four periods of f
OSC
to be latched into IN.
Note 15: The CLRn bit must be cleared to zero to reenable GPIO to value tracking.
Note 16: The CLRn bit must be cleared to zero to reenable GPIO edge detection.
BITNAMEDESCRIPTION
15TMDN
Timer done bit set by the counter; 1 = timeout value reached, 0 = timeout not reached. Read-only
bit.
14TMEN
Timer enable bit; A 1 written to TMEN resets TMDN to zero and starts counter. TMEN is reset to
zero by the counter when timeout value is reached.
13–1—Unused.
0ENAHALTEnable CPU halt; 1 = CPU halted for duration of timer interval, 0 = CPU not halted.
Table 30. TMR_Control (Address = 20h)
BITSNAMEDESCRIPTION
15–6—Unused.
5OUT1OUT1 value is driven onto the GPIO1 pin when the output driver is enabled.
4EN1Enable the output driver; 1 = enabled, 0 = disabled, and OUT tri-stated.
3IN1
When EDGE1 = 0: The value input on GPIO1 is clocked into this bit (Notes 14, 15).
When EDGE1 = 1: An edge detection on GPIO1 causes a 1 to be clocked into this bit.
2CLR1Clear IN1 bit; 1 = clear IN1 to 0, 0 = IN1 retains its status (Note 16).
1INV1
When EDGE1 = 0: Invert the logic value IN1; 1 = invert input, 0 = do not invert. When EDGE1 = 1: Select
edge capture type; 1 = falling edge detect; 0 = rising edge detect.
0EDGE1Select level or edge detection at IN1; 1 = detect edges, 0 = detect and track logic levels.
Table 28. GPIO1_Control (Address = 40h)
BITSNAMEDESCRIPTION
15–6—Unused.
5OUT2OUT2 value is driven onto the GPIO2 pin when the output driver is enabled.
4EN2Enable the output driver; 1 = enabled, 0 = disabled, and OUT tri-stated.
3IN2
2CLR2Clear IN2 bit; 1 = clear IN2 to 0, 0 = IN2 retains its status (Note 16).
1INV2
0EDGE2Select level or edge detection at IN2; 1 = detect edges, 0 = detect and track logic levels.
When EDGE2 = 0: The value input on GPIO2 is clocked into this bit (Notes 14, 15).
When EDGE2 = 1: An edge detection on GPIO2 causes a 1 to be clocked into this bit.
When EDGE2 = 0: Invert the logic value IN2; 1 = invert input, 0 = do not invert. When EDGE2 = 1: Select
edge capture type; 1 = falling edge detect; 0 = rising edge detect.
BITNAMEDESCRIPTION
15–12PS[3:0]
11–0TO[11:0]Timeout value to use during the timing interval. TO[11] = MSB.
Prescaler setting to use during the timing interval. PS[3 ] = MSB.
8PWRA2DPower for ADC: 1 = power enabled, 0 = disabled.
7–6—Unused.
5PWRDAC2Power for DAC2 in DOP2: 1 = power enabled, 0 = disabled.
4PWRDAC1Power for DAC1 in DOP1: 1 = power enabled, 0 = disabled.
3–2—Unused.
1PWROP2
Power for both large and small op amps in DOP2: 1 = power enabled, 0 = disabled, op-amp
outputs are high impedance.*
0PWROP1
Power for both LG and SM op amps in DOP1: 1 = power enabled, 0 = disabled, op-amp outputs
are high impedance.*
Table 33. Power-On Control (Address = 31h)
*Whenever the DACs are enabled, the large and/or small op amps are automatically powered up and configured as buffers, regardless of the state of the PWROPn and BUFn bits.
PS[3:1]PS[0]PRESCALER N
00001
00102
01004
01108
100016
101032
110064
1110128
00013
00116
010112
011124
100148
101196
1101192
1111384
MAX1464
Low-Power, Low-Noise Multichannel
Sensor Signal Processor
Note 17: Reading and writing the CPU ports by the serial interface is allowed while the CPU is executing its program. In the case of
simultaneous access of the ports by both the CPU and the serial interface, the CPU has priority. Although this procedure is
allowed, it is not recommended, as the serial interface may change values previously written by the CPU. If a “snapshot”
of the ports and module register contents is required while the CPU is running, halt the CPU, read the contents of the ports
and/or module registers, and restore the original port/module register values prior to starting the CPU again.
IRSA[3:0]
REGISTER
NIBBLE
DESCRIPTION
0000DHR[3:0]Write IRSD[3:0] to DHR[3:0].
0001DHR[7:4]Write IRSD[3:0] to DHR[7:4].
0010
Write IRSD[3:0] to DHR[11:8].
0011
Write IRSD[3:0] to DHR[15:12].
0100PFAR[3:0]Write IRSD[3:0] to PFAR[3:0].
0101PFAR[7:4]Write IRSD[3:0] to PFAR[7:4].
0110
Write IRSD[3:0] to PFAR[11:8].
0111
Write IRSD[3:0] to PFAR[15:12].
1000CR[3:0]Write IRSD[3:0] to CR[3:0].
1001IMR[3:0]Write IRSD[3:0] to IR[3:0].
1010–1110
—Unused.
Table 38. Internal Register Set Address
(IRSA) Decoding
ADDRESSED
DHR[11:8]
DHR[15:12]
PFAR[11:8]
PFAR[15:12]
CRDESCRIPTIONCPU HALTED
0000Write 16-bit DHR contents into the CPU port specified by PFAR[3:0].No (Note 17)
0001Write 8-bit DHR[7:0] contents into FLASH memory location specified by PFAR[11:0].Yes
0010Read 16-bit CPU port specified by PFAR[3:0] into DHR.No (Note 17)
0011Read 8-bit FLASH location specified by PFAR[11:0] into DHR[7:0].Yes
0100Read 16-bit CPU accumulator register (A) into DHR.Yes
0101
0110Read 16-bit CPU PC to DHR.Yes
0111Halt the CPU.No
1000Start the CPU, i.e., clear the HALT CPU bit from the current PC location.Yes
1001Single step the CPU. Only one CPU clock cycle is executed.Yes
1010Reset the PC to zero.Yes
1011Reset the modules, FLASH controller, and CPU registers D, E, F.Yes
1100No operation.—
1101Erase a 64-byte “page” of FLASH as specified by PFAR[11:6].Yes
1110Erase the entire FLASH partition (4kB, PS0, or 128 bytes, PS1).Yes
1111
Read 8-bit FLASH location specified by the CPU program counter (PC) (CPU instruction or data) to
DHR[7:0].
Change from FLASH partition PS0 to FLASH partition PS1 (128 byte auxiliary). A subsequent halt
CPU command resets the partition selection back to PS0.
Maxim cannot assume responsibility for use of any circuitry other than circuitry entirely embodied in a Maxim product. No circuit patent licenses are
implied. Maxim reserves the right to change the circuitry and specifications without notice at any time.
Maxim Integrated Products, 120 San Gabriel Drive, Sunnyvale, CA 94086 408-737-7600 ____________________ 47
(The package drawing(s) in this data sheet may not reflect the most current specifications. For the latest package outline information,
go to www.maxim-ic.com/packages
.)
SSOP EPS
e
D
12
MAX
0.078
0.008
0.015
0.008
0.212
0.311
0.037
8∞
MILLIMETERS
MAX
MIN
1.731.99
0.21
0.05
0.38
0.25
0.20
0.09
5.38
5.20
0.65 BSC
7.90
7.65
0.63
0.95
0∞
8∞
INCHES
MIN
D
0.239
D
0.239
D
0.278
D
0.317
0.397
D
MAX
0.249
0.249
0.289
0.328
0.407
MILLIMETERS
MAX
MIN
6.07
6.33
6.07
6.33
7.07
7.33
8.07
8.33
10.07
10.33
N
14L
16L
20L
24L
28L
C
INCHES
DIM
MIN
A
0.068
A1
0.002
B
0.010
C
HE
N
A
B
A1
D
E
e
H
L
0.004
SEE VARIATIONS
0.205
0.0256 BSC
0.301
0.025
0∞
L
NOTES:
1. D&E DO NOT INCLUDE MOLD FLASH.
2. MOLD FLASH OR PROTRUSIONS NOT TO EXCEED .15 MM (.006").
3. CONTROLLING DIMENSION: MILLIMETERS.
4. MEETS JEDEC MO150.
5. LEADS TO BE COPLANAR WITHIN 0.10 MM.
PROPRIETARY INFORMATION
TITLE:
PACKAGE OUTLINE, SSOP, 5.3 MM
21-0056
REV.DOCUMENT CONTROL NO.APPROVAL
1
C
1
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.