From NewEagleWiki
Jump to navigation Jump to search


The ECM-564x is a nice addition to the MotoHawk engine control lineup. It is a 24V engine controller for on-road applications.

The module is capable of full authority digital engine control (FADEC) consisting of fuel, spark and air delivery to the engine. Additional inputs and outputs are available to control other system functions, as defined by software. This unit provides 112 connector pins with inputs, outputs and communications interfaces that support a wide variety of applications.

The ECM-564x is part of the MotoTron Control Solutions ControlCore family of embedded control systems. The ControlCore operating system, MotoHawk code generation product and MotoHawk’s suite of development tools enable rapid development of complex control systems.

Each controller is available in ‘F’ (flash, the MPC5642) or ‘C’ (calibratable, the MPC5644) versions. Flash modules are typically used for production purposes. Calibratable modules are typically for prototyping/development only; they can be calibrated in real time using MotoTune or ToolKit.

Power Requirements

The ECM-564x controller requires a voltage source of 8-32VDC (12VDC or 24VDC nominal).

Compiler Information

S12 micro (the safety processor) requires Freescale Codewarrior 4.6.

The MPC5XXX micro uses either the GCC eabi SPE 4.6, or GHS 4.2.1 and 4.2.4.

When using the auxiliary micro, it is recommended to use either Standard or Professional versions of the compiler.

Click here for more information on the compiler version.

Control Features

  • 2 Engine speed inputs: camshaft and crankshaft speed (software configurable for variable reluctance (VR) magnetic pickup sensor or Hall effect proximity sensor inputs)
  • Up to 6 frequency inputs (some share analog resources)
  • Up to 33 analog inputs
  • 3 Switch inputs
  • 2 HEGO sensor inputs
  • 2 LSU sensor inputs (also known as UEGO sensors)
  • 2 Knock sensor inputs
  • 3 Transducer power outputs providing +5V (350mA and 100mA) and +12V (100mA)
  • 2 H-bridge driver outputs providing 10A and 5A drive capability and current sense feedback
  • 6 Injector drivers providing software configurable peak and hold current levels (up to 7A/2A)
  • 6 Ignition coil drivers
  • MPRD (Master Power Relay Driver) low-side output
  • TACH low-side output
  • 16 low-side output drivers (1 with current sense feedback)
  • 3 CAN (Controller Area Network) communications ports
  • 4K-byte serial EEPROM for tunable parameter storage
  • Auxiliary micro with 128k of flash, 8k of RAM, 4k of EEPROM

Analog Inputs (AN1-AN34)

There are 34 analog inputs on the ECM-OH. The analog inputs have either a pull-up resistor as shown in Figure 2-12, or a pull-down resistor as shown in Figure 2-13. Five analog inputs have a software pull-up or pull-down selection via calibration. AN21 and AN30 share a common control line for the 1k or 11k selection, designed for EGT sensor diagnostics. All the analog inputs have a single-pole filter with a 1 ms time constant, except for Analog Input 5, which is reserved for a MAP (Manifold Absolute Pressure) sensor and has a 0.24 ms time constant.

The analog inputs are 12-bit ADC.

Crank and CAM Inputs

The CAM and Crank (CNK) inputs are used to detect engine speed and angular position relative to TDC. The ECM-OH has CAM and Crank sensor inputs that can be connected to either a variable reluctance magnetic pick-up sensor (VR-MPU), or to a Hall-effect proximity switch. Each type of input has dedicated connector pins. See the SECM-112 datasheet for additional detail.

Digital Inputs

The SECM-112 has eight discrete inputs. Some may be used as switch inputs, while others support frequency measurements.

Lambda Sensor Unit (UEGO) Inputs

The SECM-112 control has two LSUs (Lambda Sensor Units) also known as UEGO (Universal Exhaust Gas Oxygen) inputs, which interface with Bosch LSU 4.9 wide range oxygen sensors (Lambda sensors). The LSU inputs allow the ECM-OH to continuously regulate the engine air-to-fuel ratio, thus controlling the percentage of exhaust pollutants during the combustion process.

Low-Side Outputs (LSO)

The SECM-112 control has 16 low-side outputs (LSOx and SPK8) that can be used as Boolean outputs for driving relays, or some as PWM outputs. LSO1 and LSO2 are also designed to drive the heater coil on an LSU sensor. Some low-side outputs are provided with freewheeling diodes (internal to the ECM-OH through DRVP or BATT) to suppress the back EMF caused by inductive loads. See the ECM-OH datasheet for low-side output capabilities and characteristics.

Injector Outputs

The SECM-112 control has six injector outputs, each capable of driving either low or high impedance injectors. Each injector output can be used as a Boolean output, a PWM output, or as a synchronous or periodic peak and hold injector output.

Spark Outputs

The SECM-112 has six IGBT ignition coil drivers each capable of delivering up to 10A of peak dwell current.

H-Bridge Outputs

The SECM-112 control has two H-bridge outputs that can be used to drive electric motors, e.g., butterfly throttle valves. H-bridge output 1 is capable of driving up to 10A peak (5A average) in either direction, while H-bridge 2 can drive up to 5A peak (2.5A average). The H-Bridge outputs are provided with freewheeling diodes (internal to the ECM-OH through DRVP) to suppress the back EMF caused by inductive loads.

Shared Resources Between the Main and Auxiliary S12 Cores

The following are shared between the main and auxiliary S12G cores:

  • Analog inputs: AN01-05, AN16, AN17, AN18, AN24, AN31, VCAL, KEYSW
  • Digital inputs: VR1/DG1 (after mux), DG3, DG4, DG5, DG8, Wake-up (on XIRQ) from main core, reset from main core, main core status
  • Comms: CAN1
  • Outputs: H1 enable, H2 enable, MC33810 enable, NCV enable, VR1/DG1 mux disable, VR2/DG2 mux disable, MPRD disable, main core reset, reset main core status, main core interrupt, CAM VR mode select, CAM VR threshold PWM, AN20 PU select, AN24 PU select, AN31 PU select, DG3 PU select
  • The CAM VR mode select, CAM VR threshold PWM, AN20 PU select, AN24 PU select, AN31 PU select, DG3 PU select can be configured by the main core via SPI.



The ECM-OH has three 2.0B CAN ports for distributed I/O, distributed control and Human Machine Interface (HMI) purposes.

Important: Both cores (main and auxiliary) are internally connected within the ECU on CAN-1. If the baud rate of one of the cores is changed on CAN-1, then the baud rate of the other core must be programmed also to match on CAN-1. Each core must also have a unique City ID for MotoTune defined in the CAN Definition Block.

The SECM112 supports XCP, ISO15765 and SAE J1939 protocols for transmitting data over the CAN lines.

  • Transceiver type:
Internal ECM termination
CAN 2.0B
121Ω (on all three ports)
Isolation voltage: None
Baud rates supported: 125, 250, 500 and 1000kbps
Protocols supported: XCP, ISO15765, SAE J1939

For programming the SECM-112, it may help to think of it as two modules connected on CAN-1: The main and the aux S12G. Since the cores are internally connected on CAN-1, the baud rate must be the same for both on CAN-1, and they must have different City IDs. The module ships pre-programmed with an application that sets the baud rate for both cores to 500K, with the City ID of the main as 0xB and the City ID of the aux as 0x81.

The hardboot settings (used to program the module by boot key or boot harness) if it needs to be recovered are:

250k b/s
City ID 0xB
250k b/s
City ID 0x81

To change the baud rate on CAN-1, first program the main core. Cycle power to put auxiliary in hardboot, then program the auxiliary as above.

Watchdog Function

The SECM-112 will have an ETC monitoring microprocessor and the main power supply will have a hardware watchdog that needs to be periodically queried by the main core processor.

Flexible Encoder

The SECM-112 will work with the flex encoder.

MotoHawk Compatibility

The SECM-112 is compatible with MotoHawk 2012b or later only. It does not work with older versions of MotoHawk.


The SECM-112 has different targets for the MAIN Prod and Dev modules as shown below.

  • 1751-6601: Target ECM-5644A-112-048-1204 DEV
  • 1751-6688: Target ECM-5644A-112-048-1206 DEV with 8-cylinder support
  • 1751-6605: Target ECM-5642A-112-049-1200 PROD
  • 1751-6690: Target ECM-5642A-112-049-1201 PROD with 8-cylinder support

Boot Matrix

OH main (Pre-DV) OH S12 (Pre-DV) OH main (DV) OH S12 (DV)
AN16 H
AN17 L L
AN18 L H
AN22 H
AN25 H
AN26 L

The Reaction Module Blockset and the SECM-112

The standard PSP blocks (Injector Sequence, Dual PSP, Multiple PSP) are supported on the SECM-112, but configuration of the reaction module is required for injection on the SECM-112.

Peak-hold timing is configured by the reaction module, and the peak-hold input port on the sequence blocks is ignored.

MC33810 Spark Blockset and the SECM-112

Many of the Woodward MCS ECMs have EST outputs which provide 0-5V TTL level outputs for smart coils. The SECM-112 spark outputs are IGBT coil drivers for driving a coil directly. These outputs use the MC33810 driver, which is configured through the MC33810 Configuration Blocks, located in MotoHawk Module Configuration Blocks.

Calibration Memory

The SECM-112 has 64k of CAL flash available for calibration data. There is a second 64k of calibration flash that can be used to shadow this data so that, in the event of a power loss during calibration, a copy of the calibration data is stored (from the last write). This redundant calibration is enabled with a special blockset.

The SECM-112 has 64k of calibration flash memory, regardless of whether redundant calibration is enabled or not. The second 64k cannot be used to store additional calibrations.

This was a design decision based on the total memory of the DEV module. For the DEV module, calibration data is shadowed from flash into RAM at startup to allow online calibration. The ECM-564x-112 has limited RAM, as compared to some of the other ECUs with external RAM. If additional calibration flash was allocated, the same amount of RAM would need to be reserved and would not be available to the application. For the flash module, the calibration data is read directly from flash and is not shadowed into RAM.

The SECM-112 also has 32k of NV memory storage in serial EEPROM. The NV data (for both DEV or PROD) is shadowed in RAM at startup and is stored in the serial EEPROM at shutdown through execution of the store NV block.

The Main Power Relay Block and the S12G Auxiliary Processor

A common question is whether the MotoHawk MPRD block should be placed in the application for the S12G auxiliary processor or not. And, if so, does it need to be modified. The MPRD block is optional and does not need to be placed in the application.

Also, the MPRD block is intended as a starting point and is intended to be modified to suit specific application shutdown requirements (right click the block and select Look Under Mask).

An application may choose to have the MPRD block, or some shutdown logic, in the model for the S12G in order for the S12G to go to sleep to reduce current draw or to get the Key Off timer. The S12 will go to sleep when the shutdown power block is executed. When woken up by the main core, it will continue executed from where it left off. If using the standard MPRD block with the auxiliary S12G, it is necessary to remove the MPRD discrete output from the block.

Recovering the SECM-112

Occasionally, errors in programming may require that the module be recovered with a boot key or boot sequence. See Boot Key Recovery for more details on how to recover the module.

The hardboot settings for ECM-564x-112 on CAN-1 are:

Baud rate: 250K
City ID: 0x0B
Baud rate: 250K
City ID: 0x81

These are the MotoServer port settings needed when recovering the module.

Important: Remove the ECU from all control connections before attempting to recover the module.

The SECM-112 is different in that it has two microprocessor cores: The main core and the auxiliary S12G. The processors are connected on CAN1, so it is important that the baud rate of both processors on CAN1 be the same. The processors must also communicate with MotoTune on different City IDs.

Recovering the Main Processor

The main processor can be recovered with a boot key on pin DG8. The boot key provides a 555Hz, 0-Vbatt, 50% duty cycle square wave on the STOP pin (pin E) of the 10-pin hub. This signal can then be wired to DG8. Alternatively, the main processor can be recovered with the following sequence on the analog inputs:

AN3: Pull to +5V
AN4: Pull to +5V
AN16: Pull to GND
AN17: Pull to GND
AN18: Pull to +5V.

Recovering the S12G Auxiliary Processor

The S12G cannot be recovered with a boot key. A boot sequence on the analog inputs of the S12G is required to recover it.

AN3: Pull to +5V
AN4: Pull to +5V
AN16: Pull to +5V
AN17: Pull to GND.

Note: If you are recovering the S12G core of the SECM-112, you must first program an application into the main core that sets CAN1 to be 250kbps. Battery must be toggled before powering up the S12G in boot mode. Use the following MotoServer port configurations when connecting with the ECU. These are the default hardboot settings.


250kbps on CAN-1
City ID 0xB (11)
250kbps on CAN-1
City ID 0x81 (129)

The Pre-PV and PV units will ship with a sample application that will connect at 500K on PCM-1 (City-ID 11) or PCM-2 (City-ID 12). Recovering either microprocessor will force it back to its default hardboot baud rate of 250kbps. So, you must reprogram the other microprocessor with an application to change it to 250kbps.





Datasheet Errata

The datasheet says there are 8 injectors, 6 of which are peak-hold. This plan was the initial production intent, but it has changed. All production releases will have only 6 peak-hold injectors.

The module ingress protection is rated for IP67 and IP69K.

Frequently Asked Questions (FAQ)

Why do I get a CamEncoder build warning?

WARNING: CamEncoder has interface Hardware that has not been defined.

There are new blocks in the MotoHawk Module Configuration library to set the VR or DG interface. The settings in the Encoder Definition block are ignored. You must use these blocks in the model.

What causes the build to fail with a ReactPHWOTChan error?

ERROR: A ReactPHWOTChan definition for INJ1 was not found in the application.

If the application is using the Injector blocks, the module's Reaction Channel must be defined and configured using the Reaction Channel Blockset. This blockset is used to configure the peak-hold current levels (see above).

I see values with 100% in the build log. Is this expected?

There are several memory areas displayed in the build statistics that are internally reserved pieces of data. These are displayed at 100% in the build statistics and cannot be changed by the application.

FLASH_RCHW: 4 bytes 100% of 4

FLASH_ENTRY: 4 bytes 100% of 4

FLASH_CRCDEFNPTR: 4 bytes 100% of 4

RAM_BOOTMAILBOX: 16 bytes 100% of 16

Can I ground the unit housing?

The SECM112 housing is intended to be mounted through non-conductive vibration isolators with no connection to engine/chassis ground. The case is acting as an EMI shield and is RC coupled to the PCB ground plane. Grounding the case will not impact the functionality of the unit but may affect the EMC performance and ESD protection.


Calibratable (ECM-5644-112) and production (ECM-5642-112) versions are available.




All Engine Control Modules

Other Modules