<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://mcs.woodward.com/support/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wayne.Hawken</id>
	<title>MotoHawk - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://mcs.woodward.com/support/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wayne.Hawken"/>
	<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=Special:Contributions/Wayne.Hawken"/>
	<updated>2026-08-19T09:27:06Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=S12_Out_of_allocation_space_in_segment_RAM_BLOCK0_SEG&amp;diff=4218</id>
		<title>S12 Out of allocation space in segment RAM BLOCK0 SEG</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=S12_Out_of_allocation_space_in_segment_RAM_BLOCK0_SEG&amp;diff=4218"/>
		<updated>2019-06-25T02:09:46Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MotoHawk Build Errors]]&lt;br /&gt;
An Out of allocation space in segment RAM BLOCK0 SEG error is issued by the linker when there is insufficient memory to allocate the memory requested by a section. For an S12 this often occurs because too much RAM has been allocated by the application.&lt;br /&gt;
&lt;br /&gt;
== So how to fix this? ==&lt;br /&gt;
It could be that the application is simply too big, but if this is not the case then there are a few things to investigate.&lt;br /&gt;
&lt;br /&gt;
=== Check Stack Allocation ===&lt;br /&gt;
Check how much RAM has been allocated to task stacks by the model. Often this is set too high for an S12. Sometimes this is because the model originally targeted a more powerful target such as an MPC5xxx, which uses a PowerPC based core and requires more stack. The S12 family has very little RAM, but only a few registers. Consequently its execution context is very small when compared to a CPU family like the MPC5xxx. An S12 task may only require 256 bytes of stack where as an MPC5xxx may require a few kBytes of stack.&lt;br /&gt;
&lt;br /&gt;
If there are S12 tasks that have been allocated many kBytes of stack then the linker error may be because too much memory has been allocated to task stack. Try another build after first reducing the stack sizes to 512 bytes.&lt;br /&gt;
&lt;br /&gt;
Ultimately the application is responsible for appropriate [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/TargetDefinition.html#stack_and_heap stack sizing], but this initial reduction may allow the model to build.&lt;br /&gt;
&lt;br /&gt;
=== MatLab Optimization - Default parameter behavior ===&lt;br /&gt;
It is possible that MatLab's configuration (CTRL+E) has the Code Generation/Optimization ''Default parameter behavior'' set to &amp;quot;tunable&amp;quot;. This will result in a large block of memory being allocated in RAM to allow tuning. The S12 can not afford this allocation. Set the configuration to &amp;quot;inline&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=S12_Out_of_allocation_space_in_segment_RAM_BLOCK0_SEG&amp;diff=4217</id>
		<title>S12 Out of allocation space in segment RAM BLOCK0 SEG</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=S12_Out_of_allocation_space_in_segment_RAM_BLOCK0_SEG&amp;diff=4217"/>
		<updated>2019-06-25T02:06:40Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: Ways to resolve Out of allocation space in segment RAM BLOCK0 SEG error for an S12 build&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An Out of allocation space in segment RAM BLOCK0 SEG error is issued by the linker when there is insufficient memory to allocate the memory requested by a section. For an S12 this often occurs because too much RAM has been allocated by the application.&lt;br /&gt;
&lt;br /&gt;
== So how to fix this? ==&lt;br /&gt;
It could be that the application is simply too big, but if this is not the case then there are a few things to investigate.&lt;br /&gt;
&lt;br /&gt;
=== Check Stack Allocation ===&lt;br /&gt;
Check how much RAM has been allocated to task stacks by the model. Often this is set too high for an S12. Sometimes this is because the model originally targeted a more powerful target such as an MPC5xxx, which uses a PowerPC based core and requires more stack. The S12 family has very little RAM, but only a few registers. Consequently its execution context is very small when compared to a CPU family like the MPC5xxx. An S12 task may only require 256 bytes of stack where as an MPC5xxx may require a few kBytes of stack.&lt;br /&gt;
&lt;br /&gt;
If there are S12 tasks that have been allocated many kBytes of stack then the linker error may be because too much memory has been allocated to task stack. Try another build after first reducing the stack sizes to 512 bytes.&lt;br /&gt;
&lt;br /&gt;
Ultimately the application is responsible for appropriate [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/TargetDefinition.html#stack_and_heap stack sizing], but this initial reduction may allow the model to build.&lt;br /&gt;
&lt;br /&gt;
=== MatLab Optimization - Default parameter behavior ===&lt;br /&gt;
It is possible that MatLab's configuration (CTRL+E) has the Code Generation/Optimization ''Default parameter behavior'' set to &amp;quot;tunable&amp;quot;. This will result in a large block of memory being allocated in RAM to allow tuning. The S12 can not afford this allocation. Set the configuration to &amp;quot;inline&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=SECM112&amp;diff=4216</id>
		<title>SECM112</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=SECM112&amp;diff=4216"/>
		<updated>2019-06-25T01:42:06Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* FAQ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Module ==&lt;br /&gt;
[[Image:ECM-5644A-112-048-1202-xD.jpg|200px|112 Pin ECM-OH]] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
==Overview==&lt;br /&gt;
The SECM112  is part of the engine management system for on-highway applications, which can include L6 4-stroke CNG intercity transit applications, L6, 4-stroke LNG intercity transit applications, and L4 4-stroke commercial vehicle 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&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The SECM112 features two microprocessors in one rugged production intent housing.  The module contains a main MPC5644 120Mhz processor along with a S12G fixed point processor, which can provide question-answer type challenge to the main processor.  Both micros are connected on CAN1.&lt;br /&gt;
&lt;br /&gt;
The SECM112 is part of the MotoHawk Control Solutions ControlCore® family of embedded control systems. The ControlCore operating system,&lt;br /&gt;
MotoHawk® code generation product, and MotoHawk’s suite of development tools enable rapid development of complex control systems.  Application code for both processors is developed in MotoHawk which allows the application developer to create applications directly in Simulink and build with a one step 'CNTL-B' build.   The two controllers act like separate controllers in terms of programming.  Then, the program can be flashed onto the micro using Woodward's MotoTune, Toolkit, or through industry standard 3rd party tools via xCP, or ISO15765.    &lt;br /&gt;
&lt;br /&gt;
Calibration can  be done with Woodward's MotoTune or Toolkit or with industry standard 3rd Party tools through xCP.&lt;br /&gt;
&lt;br /&gt;
Each controller is available in ‘F’ (Flash) or ‘C’ (Calibratible) versions. Flash modules are typically used for production purposes. Calibratible modules are typically for prototyping/development only; they can be calibrated in real time using MotoTune, ToolKit, or industry standard 3rd party tools via xCP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Power Requirements ==&lt;br /&gt;
All versions of the SECM112 Control require a voltage source of 8 to 32Vdc (12Vdc or 24Vdc nominal).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MotoHawk Requirements ==&lt;br /&gt;
MotoHawk 2012bSP0 or higher is required for SECM112 MY12 hardware.&amp;lt;br/&amp;gt;&lt;br /&gt;
MotoHawk 2018bSP0 or higher is required for SECM112 MY18 hardware.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compilers ==&lt;br /&gt;
'''Main Micro''': Green Hills 4.2.4 or GCC PowerPC eabi SPE 4.6&lt;br /&gt;
&lt;br /&gt;
'''Auxillary''':  NXP (formally Freescale) CodeWarrior 4.6 or 5.2&lt;br /&gt;
&lt;br /&gt;
https://www.nxp.com/support/developer-resources/software-development-tools/codewarrior-development-tools/codewarrior-legacy/codewarrior-development-studios/codewarrior-for-microcontrollers/codewarrior-development-studio-for-hcs12x-microcontrollers-classic-ide-v5.2:CW-HCS12X&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Datasheets ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36364 SECM112 Datasheet (36364)]&lt;br /&gt;
&lt;br /&gt;
== Part Numbers ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=3 style=&amp;quot;height:50px&amp;quot;|MY12 Hardware&lt;br /&gt;
|-&lt;br /&gt;
! Part Num &amp;lt;br/&amp;gt; x=Inactive !! HW Version !! Features&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!-- original SECM112 --&amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;1751-6601 &amp;amp;nbsp;|| [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5644A-112-048-1204.html ECM-5644A-112-048-1204 (DEV)]  || 2 H-bridge, 6 Injectors Development &lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6605 &amp;amp;nbsp;|| [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5642A-112-049-1200.html ECM-5642A-112-049-1200 (PROD)] || 2 H-bridge, 6 Injectors Production&lt;br /&gt;
|-&lt;br /&gt;
! colspan=3 style=&amp;quot;height:50px&amp;quot; |MY18 Hardware&lt;br /&gt;
|-&lt;br /&gt;
! Part Num &amp;lt;br/&amp;gt; x=Inactive !! HW Version !! Features&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6815|| [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5644A-112-048-1809.html ECM-5644A-112-048-1809 (DEV)]  || 2 H-bridge, 6 Injectors Development (replaces 1751-6601)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6812|| [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5642A-112-049-1804.html ECM-5642A-112-049-1804 (PROD)] || 2 H-bridge, 6 Injectors Production (replaces 1751-6605)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6816 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5644A-112-048-1807.html ECM-5644A-112-048-1807 (DEV)] || 3 H-bridge, No Injectors Development &lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6813 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5642A-112-049-1802.html ECM-5642A-112-049-1802 (PROD)] || 3 H-bridge, No Injectors Production&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6817 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5644A-112-048-1812.html ECM-5644A-112-048-1812 (DEV)] || 3 H-bridge, 4 Injectors Development &lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6814 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5642A-112-049-1805.html ECM-5642A-112-049-1805 (PROD)] || 3 H-bridge, 4 Injectors Production&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related Part Numbers ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Part Number !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 8923-1930 || Connector Kit&lt;br /&gt;
|-&lt;br /&gt;
| 8996-2228&amp;lt;br/&amp;gt;8996-2230|| Crimp Tools&lt;br /&gt;
|-&lt;br /&gt;
| 8996-1059&amp;lt;br/&amp;gt;8996-2161|| Removal Tools&lt;br /&gt;
|-&lt;br /&gt;
| 1635-1800 || Boot Key&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1334 || Pig Tail (12 feet )&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1322 || Pig Tail (3 feet)&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1357 || Development Harness&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1335 || Programming Harness&lt;br /&gt;
|-&lt;br /&gt;
| 8923-1404 || Breakout Box&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1321 || Desktop Simulator Harness&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Targets ==&lt;br /&gt;
The SECM-112 has different Targets for the MAIN Prod and Dev modules as shown in the [[SECM112#Part_Numbers| Part Numbers]] section.  The S12G auxillary processor also has it's own target.  &lt;br /&gt;
&lt;br /&gt;
'''Auxillary Processor''':  Target [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-S12G-112-059-1200.html ECM-S12G-112-059-1200]  PROD Only&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Control Features ==&lt;br /&gt;
[[Image:ECMOH1.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Standard features common to both models are:&lt;br /&gt;
*2 engine speed inputs: camshaft and crankshaft speed (software configurable for variable reluctance (VR) magnetic pickup sensor or Hall effect proximity sensor inputs)&lt;br /&gt;
* Up to 6 frequency inputs (some share analog resources)&lt;br /&gt;
* Up to 33 analog inputs&lt;br /&gt;
* 3 switch inputs&lt;br /&gt;
* 2 HEGO sensor inputs&lt;br /&gt;
* 2 LSU sensor inputs (also known as UEGO sensors)&lt;br /&gt;
* 2 knock sensor inputs&lt;br /&gt;
* 3 transducer power outputs providing +5V (350mA &amp;amp; 100mA) and +12V (100mA)&lt;br /&gt;
* Up to 3 H-bridge driver outputs providing 10A and 5A drive capability and current sense feedback&lt;br /&gt;
* Up to 6 Injector drivers providing software configurable peak and hold current levels (up to 7A/2A)&lt;br /&gt;
* 6 ignition coil drivers&lt;br /&gt;
* MPRD (Master Power Relay Driver) low side output&lt;br /&gt;
* TACH low side output&lt;br /&gt;
* 16 low side output drivers (1 with current sense feedback)&lt;br /&gt;
* 3 CAN (Controller Area Network) communications ports&lt;br /&gt;
* 32K-byte serial EEPROM for tunable parameter storage&lt;br /&gt;
* Auxiliary micro with 128k of flash, 8k of RAM, 4k of EEPROM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
==== Analog Inputs (AN1 – AN34)====&lt;br /&gt;
There are 34 analog inputs on the SECM112. The analog inputs have either a pull-up resistor as shown in Figure 2-12, or a pull-down resistor as shown in&lt;br /&gt;
Figure 2-13. Five analog inputs have a software pull-up or pull-down selection via calibration. AN21 &amp;amp; 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.&lt;br /&gt;
&lt;br /&gt;
The Analog Inputs are [[12-bit_ADC|12-Bit ADC]]&lt;br /&gt;
&lt;br /&gt;
===== Fast Analog Channels =====&lt;br /&gt;
ANx_FAST channels are sampled faster than the equivalent ANx. This is needed on SECM112 because of how ADC bandwidth is consumed. SECM112 utilizes most of the available ADC bandwidth to service the reaction channel’s load current sampling. This means that the continuous scan queue sampling that is used by the other channels will take much longer than it normally takes on other modules. SECM112 FAST channel will be sampled every 90us where as normal channels will sample within 1ms (860us) worst case. The 1ms conversion time is problematic for threads of execution that execute at 1ms since the data is sometimes old and sometimes new. &lt;br /&gt;
&lt;br /&gt;
There is no need for such channels on the other ECUs because the ADC bandwidth is not being consumed like it is on the SECM112 and so all the channels are effectively sampled FAST.&lt;br /&gt;
&lt;br /&gt;
==== Crank and CAM Inputs ====&lt;br /&gt;
The Cam and Crank (CNK) inputs are used to detect engine speed and angular position relative to TDC.   The SECM112 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&lt;br /&gt;
input has dedicated connector pins.  See the SECM112 datasheet for additional detail.&lt;br /&gt;
&lt;br /&gt;
==== Digital Inputs ====&lt;br /&gt;
The SECM112 has 8 Discrete Inputs.  Some may be used as switch inputs, others support frequency measurement.&lt;br /&gt;
&lt;br /&gt;
==== Lambda Sensor Unit (UEGO) Inputs ====&lt;br /&gt;
The SECM112 control has two LSUs (Lambda Sensor Units), also known as UEGO (Universal Exhaust Gas Oxygen) inputs, which interface with Bosch LSU4.9 wide range oxygen sensors (Lambda sensors). The lambda-sensor(s) works in conjunction with the on-board Bosch CJ125 ASIC(s) to provide continuous regulation of  for a sensor in the range of  = 0.65... (air). 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.&lt;br /&gt;
&lt;br /&gt;
==== Knock Sensor Inputs ====&lt;br /&gt;
The SECM112 supports two Knock Sensor inputs.&lt;br /&gt;
&lt;br /&gt;
Knock is implemented on the SECM112 in MotoHawk by the Knock by Decimation blockset.   This is a specialized blockset and is included with Standard MotoHawk in 2014a and higher.&lt;br /&gt;
&lt;br /&gt;
=== Outputs ===&lt;br /&gt;
==== Low-side Outputs (LSO)====&lt;br /&gt;
The SECM112 control has 16 low-side outputs (LSOx &amp;amp; SPK8) that can be used as Boolean outputs for driving relays, or some as PWM outputs. LSO1 and LSO2&lt;br /&gt;
are also designed to drive the heater coil on a LSU sensor. Some low-side outputs are provided with freewheeling diodes (internal to the ECM-OH through&lt;br /&gt;
DRVP or BATT) to suppress the back EMF caused by inductive loads. See the ECM-OH datasheet for low-side output capabilities and characteristics.  The LSOs are clamped and can be used to drive relays.&lt;br /&gt;
&lt;br /&gt;
==== Injector Outputs ====&lt;br /&gt;
The SECM112 control has 6 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.&lt;br /&gt;
&lt;br /&gt;
===== Reaction Module Blockset =====&lt;br /&gt;
The peak-hold current level is software configurable through the [[Reaction_Module_Blockset|MotoHawk Reaction Channel Blockset]].&lt;br /&gt;
&lt;br /&gt;
Peak current cannot be run simultaneously on more than 3 injectors on the SECM112 control.&lt;br /&gt;
&lt;br /&gt;
==== Spark Outputs ====&lt;br /&gt;
The SECM112 has 6 IGBT ignition coil drivers each capable of delivering up to 10A of peak dwell current.&lt;br /&gt;
&lt;br /&gt;
The Spark Outputs can be globally disabled via the main core's discrete output DRVR_ENABLE resource. The behavior of these outputs can also be affected by the [[SECM112#Targets | Auxiliary Processor]] via its ability to disable the Master Power Relay (which will also disable the encoder's Crank and Cam inputs).&lt;br /&gt;
&lt;br /&gt;
A special blockset has been created for control and diagnostics of the MC33810 chip which is the driver for the IGBT coil drivers on the SECM112.  See [[MC33810_Blocks|here]] for more detail on the blocks related to the MC33810.&lt;br /&gt;
&lt;br /&gt;
==== H-bridge Outputs ====&lt;br /&gt;
The SECM112 control has two H-bridge outputs that can be used to drive electric motors like butterfly throttle valves.  The H-Bridge outputs are provided with freewheeling diodes (internal to the SECM112 through DRVP) to suppress the back EMF caused by inductive loads.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The '''H1+''' output can be chosen to be driven with half-bridge control.  Half-bridge control (also called push/pull control) means that the circuit actively drives the output high when ON and low when OFF.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The '''HS_H1+''' output can be selected to operate the H1+ output as a standard high side drive.  A high side drive is one where the circuit drives the output high when ON, but then switches to high impedance when OFF.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The H2 H-Bridge can operate both pins independently as high side outputs.  Therefore both '''HS_H2+''' and '''HS_H2-''' can be utilized as high side drives.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The H-bridge Outputs can be disabled by the [[SECM112#Targets | Auxiliary Processor]].&lt;br /&gt;
&lt;br /&gt;
==== MPRD Output ====&lt;br /&gt;
The MPRD Output is a common feature of almost all Woodward ECUs and is used to energize the Master Power Relay under application control.&lt;br /&gt;
&lt;br /&gt;
The MPRD Output can be disabled by the [[SECM112#Targets | Auxiliary Processor]], which also has the side effect of disabling the encoder inputs (Crank and Cam).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Output Fault Detection ==&lt;br /&gt;
Output Fault Detection for the SECM112 is through the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/IOFaultStatus.html IO Fault Status block] and the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/FaultStatusGet.html IO Fault Status Get] block.  This block will report a &amp;quot;0&amp;quot; if the driver is not reporting a fault, a &amp;quot;1&amp;quot; if the driver is detecting a fault, or in some cases a &amp;quot;2&amp;quot; for indeterminate.  The faults that can be detected depend on the capability of the driver.  Outputs driven by the MC33810 driver have additional fault reporting capability that can be exposed through the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810FaultDetail.html MC33810 Fault Detail Block].  This block reports the last fault reported by the MC33810 driver and so the report from this block does not clear when the fault state is removed.  The IO Fault Status block should be used to detect whether a fault condition is detected, and then the detail block can be used to detect which fault was reported.  The fault detection capabilities of the SECM112 outputs are described below:&lt;br /&gt;
&lt;br /&gt;
=== H-Bridges ===&lt;br /&gt;
For the h-bridges, shorted load faults can be reported.  Shorted load reporting for each H-bridge is through overcurrent detection.  See the SECM Hardware Manual for minimum overcurrent threshold values.  Current Monitoring should be used in the application model for further diagnosis, such as for open load detection.&lt;br /&gt;
&lt;br /&gt;
=== Injectors ===&lt;br /&gt;
SECM112’s injector drivers utilize the microprocessor’s Reaction Module for diagnosis. Reaction module diagnosis is based upon observing current and therefore INJ faults can only be detected when the INJ pins are asserted. Observed faults are cached until reported, where they are then cleared. Detection while not asserted is not possible. Therefore the fault status of an INJ output should only be queried once after an actuation event. Querying too often may result in no fault being reported even if the queried INJ output is currently in fault (e.g. open circuit). The [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/PHWOTReactionChannel.html PHWOT Reaction Channel] MotoHawk help provides further detail.&lt;br /&gt;
&lt;br /&gt;
Currently only the IO Fault Status block allows the fault status of an INJ output to be queried.&lt;br /&gt;
&lt;br /&gt;
=== Spark ===&lt;br /&gt;
The Spark outputs are driven by the IGBT drivers of the [http://www.google.com/url?url=http://www.freescale.com/webapp/sps/site/prod_summary.jsp%3Fcode%3DMC33810&amp;amp;rct=j&amp;amp;frm=1&amp;amp;q=&amp;amp;esrc=s&amp;amp;sa=U&amp;amp;ei=Uli1U7zYA5GcyASd_IH4BQ&amp;amp;ved=0CBQQFjAA&amp;amp;usg=AFQjCNGOgPiWwAV_dZ-bz4R4ETEkNGjTXQ MC33810 driver]. &lt;br /&gt;
&lt;br /&gt;
'''The spark output diagnostics assume the SPK outputs are driving an ignition coil as a load.'''  &lt;br /&gt;
&lt;br /&gt;
Comprehensive fault diagnosis when used with ignition coils is described in the [http://www.google.com/url?url=http://www.freescale.com/webapp/sps/site/prod_summary.jsp%3Fcode%3DMC33810&amp;amp;rct=j&amp;amp;frm=1&amp;amp;q=&amp;amp;esrc=s&amp;amp;sa=U&amp;amp;ei=Uli1U7zYA5GcyASd_IH4BQ&amp;amp;ved=0CBQQFjAA&amp;amp;usg=AFQjCNGOgPiWwAV_dZ-bz4R4ETEkNGjTXQ MC33810 Datasheet].   The diagnostic approach is based upon analysis of multiplexed feedback signals that go to the MC33810 which require that the actuators don’t de-assert (i.e. spark) at the same time.  Overlap is possible with PWM and discrete, therefore, diagnosis is less capable or impossible when the SPK outputs are driven by PWM or Discrete output blocks. &lt;br /&gt;
&lt;br /&gt;
'''Note''' that SPK8 is different from the other SPK outputs in that it is a MOSFET.  SPK8 has short while asserted and open while not asserted detection and can be used with the MC33810 Fault Detail block. It is a GPGD type output and thus can use the MC33810 blocks related to GPGD configuration.  Unlike the other spark outputs, SPK8 diagnosis is fully functional when not being driven with an engine position synchronous behavior.&lt;br /&gt;
&lt;br /&gt;
A special blockset has been created for control and diagnostics of the MC33810 chip which is the driver for the IGBT coil drivers on the SECM112.  See [[MC33810_Blocks|here]] for more detail on the blocks related to the MC33810.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LSOs ===&lt;br /&gt;
There are three types of drivers for the LSOs on the SECM112.  Each has slightly different fault reporting capability which is described below.&lt;br /&gt;
* '''LSO1-6''':  reports open circuit or short to ground while de-asserted and short when asserted. LSO6 has current sense as well. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''LSO 7,8,9,11, 12, 13, 14, TACH:'''  These LSOs are driven by MC33810.  Faults of Open while Asserted, Open while De-asserted, and Short to Battery can be reported.  The IO Fault Status block reports the fault state, however there is also an MC33810 Fault Detail block that gives the last fault reported.   The IO Fault Status block should be used to indentify that there is a fault and then the MC33810 Fault Detail block can identify which fault was reported.  The open while asserted fault is detected through current monitoring.   Currents less than 200mA can cause an open while asserted fault to be reported.  Therefore, if the load current is expected to be under 200mA, the Open While Asserted diagnostic should be disabled via the Open Load While Asserted Configuration block.  A special blockset has been created for control and diagnostics of the MC33810 chip which is the driver for the IGBT coil drivers on the SECM112.  See [[MC33810_Blocks|here]] for more detail on the blocks related to the MC33810.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''LSO10''': reports open or short to GND while de-asserted, and short while asserted.  The IO Fault Status block will report a “2” if no fault is detected, or a “1” if a fault state is detected.  It will not report a &amp;quot;0&amp;quot; (OK).   There is a Fault Detail block that will also report which type of fault (Open or Short) has been detected.   Note that the Fault Detail block can still report indeterminate (2) in some cases, but can more clearly identify whether a particular fault is active. For example, while LSO10 is de-asserted the fault detail for LSO10 will report the open fault as being either OK (0) or in fault (1), but will sometimes intermittently report indeterminate(2). The short to battery would continuously report indeterminate (2) while off. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''LSO15''':  reports open or short to GND while de-asserted, and short while asserted.   There is not a block to detect which fault is being set, but the state of the output (On or Off) could be used in the application model.  This will report “2” if no fault is detected, or a “1” if a fault state is detected. &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Internal Temperature Monitor ===&lt;br /&gt;
The SECM112 has an internal temperature monitor that can be accessed via the '''Get Module Data''' block. So, for example, you could implement a Simulink model that logged the maximum observed MicroTemp to NVM. &lt;br /&gt;
&lt;br /&gt;
[[Image:GetModuleData_JunctionTemp.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Shared Resources between the Main and Auxillary S12 cores ==&lt;br /&gt;
The following are shared between the main and s12G cores:&lt;br /&gt;
&lt;br /&gt;
Analog inputs: AN01-05, AN16, AN17, AN18, AN24, AN31, VCAL, KEYSW&lt;br /&gt;
&lt;br /&gt;
Digital inputs: VR1/DG1 (after mux), DG3, DG4, DG5, DG8, Wake-up (on XIRQ) from main core, reset from main core*, main core status&lt;br /&gt;
&lt;br /&gt;
Comms: CAN1&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* There is a shared line for reset of the S12 by the main core, however, this is not available to the application.  There is no block to set it.   It is currently only used during programming to turn the S12 off to prevent CAN bus errors or erroneous resets&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Communications ===&lt;br /&gt;
==== CAN ====&lt;br /&gt;
The SECM112 has three 2.0B CAN ports for distributed I/O, distributed control, and Human Machine Interface (HMI) purposes.&lt;br /&gt;
&lt;br /&gt;
 Important: The SECM112 is programmed at the factory with a sample application that sets CAN-1 of both the Main and Auxillary Cores to 500k baud rate.   &lt;br /&gt;
 '''Both Cores are internally connected within the ECU on CAN-1'''.&lt;br /&gt;
 '''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.'''&lt;br /&gt;
 '''Each Core must also have a Unique City ID for MotoTune defined in the MotoTune Protocol Definition Block'''&lt;br /&gt;
&lt;br /&gt;
For programming the SECM112, 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-ID’s. The module ships pre-programmed with an application ([http://mcs.woodward.com/content/motohawk/examples/ECMOH_sampleapp.zip the S12G application &amp;quot;OH_S12G_sampleapp_047.srz&amp;quot; is included in this ZIP]) that sets the Baud rate for both cores to 500k, with City ID of main – 0xB and the City ID of the aux 0x81.    &lt;br /&gt;
&lt;br /&gt;
The hardboot (settings used to program the module by boot key or boot harness) if it needs to be recovered are: &lt;br /&gt;
Main: 250k b/s  City ID 0xB&lt;br /&gt;
Aux: 250k b/s City ID 0x81&lt;br /&gt;
&lt;br /&gt;
To change the baud rate on CAN-1, first program the main core.  Cycle power to put auxiliary in hardboot, the program the auxiliary as above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5644A-112-048-1204.html MotoHawk Target Cross Reference] ===&lt;br /&gt;
The [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5644A-112-048-1204.html MotoHawk Target Cross Reference] shows which IO on the ECM-OH hardware is supported by which behavior (blocks).  There are charts showing behavior vs pin as well as pin vs behavior.  This is the software help document for the module.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[Reaction_Module_Blockset|The Reaction Module Blockset]] and the SECM112==&lt;br /&gt;
The standard PSP blocks (Injector Sequence, Dual PSP, Multiple PSP..) are supported on the SECM112, but configuration of the Reaction Module '''is Required''' for Injection on the SECM112. &lt;br /&gt;
&lt;br /&gt;
Peak-Hold timing is configured by the Reaction Module, '''and the peak-hold input port on the sequence blocks is ignored.'''&lt;br /&gt;
&lt;br /&gt;
See the article on the [[Reaction_Module_Blockset|Reaction Module Blockset]] for additional details.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MC33810 Spark Blockset and the SECM112 ==&lt;br /&gt;
Many of the Woodward MCS ECMs have EST outputs which provide 0-5V TTL level outputs for smart coils.  The SECM112 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.&lt;br /&gt;
&lt;br /&gt;
See the article on the [[MC33810_Blocks|'''MC33810 Configuration blocks''']] for more detail.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Calibration Memory ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''The SECM112 has 64k of Calibration memory available.'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are porting an application from another ECU (ex. the 128-pin) the SECM-112 may have less calibration memory available.  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.    However, the SECM112 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 descision 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 on-line calibration.   The SECM112 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.&lt;br /&gt;
&lt;br /&gt;
The SECM112 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.  Some calibration values may be able to be moved to NV storage  (ex. Calibration NV).&lt;br /&gt;
&lt;br /&gt;
Recommendations to reduce calibration memory in the application:&lt;br /&gt;
&lt;br /&gt;
1. '''Review and Optimize Datatypes'''. The first thing to look at in reducing calibration memory is 64 bit vs 32 bit.  Double is the Simulink default, but is often larger than required.   Convert calibratons to 32-bit (single) or smaller datatypes.&lt;br /&gt;
  &lt;br /&gt;
2. '''Review and Optimize Tables'''. The next big item is table optimizations.  It is likely that 32-bit floating point is not needed for every table and can be reduced.  Reducing the dimenstions of tables would also reduce the memory usage.&lt;br /&gt;
&lt;br /&gt;
== The Main Power Relay Block and the S12G Auxillary processor ==&lt;br /&gt;
A common question is whether the MotoHawk MPRD block should be placed in the application for the S12G auxillary 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.  &lt;br /&gt;
&lt;br /&gt;
Also, the MPRD block is intended as a starting point and is intended to be modified to suite specific application shutdown requirements (right click the block and select Look Under Mask).&lt;br /&gt;
&lt;br /&gt;
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 auxillary S12G, it is nessessary to remove the MPRD discrete output from the block.   The below link has an example MPRD block modified for the ECM-OH Auxillary processor.&lt;br /&gt;
&lt;br /&gt;
[http://mcs.woodward.com/content/motohawk/examples/ECM_OH_S12G_sampleapp.mdl ECM-OH Example of Modified MPRD for the S12G]&lt;br /&gt;
&lt;br /&gt;
== Recovering the SECM112==&lt;br /&gt;
Occasionally, errors in programming may require that the module be recovered with a boot key or boot sequence. The following section describes recovery procedure for the SECM112.  For general information for all modules, see [[Boot_key_recovery|Boot Key Recovery]].&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Important: Remove the ECU from all control connections before attempting to recover the module.'''&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Default Bootloader MotoServer Settings (Recover/Bootstrap Mode):'''&lt;br /&gt;
&lt;br /&gt;
Main Core: 250kbps on CAN-1, City ID 0x0B (11)&amp;lt;br&amp;gt;&lt;br /&gt;
S12G Core: 250kbps on CAN-1, City ID 0x81 (129)&lt;br /&gt;
&lt;br /&gt;
The SECM112 has two microprocessor cores, the Main Core and the Auxillary S12G. Both processors are connected on CAN1, so it is important that both processors configure their CAN-1 port with the same baud rate, and different MotoTune IDs.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Recovering the Main Processor'''&amp;lt;br&amp;gt;&lt;br /&gt;
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:&amp;lt;br&amp;gt;&lt;br /&gt;
AN3: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN4: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN16: Pull to GND &amp;lt;br&amp;gt;&lt;br /&gt;
AN17: Pull to GND &amp;lt;br&amp;gt;&lt;br /&gt;
AN18: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Recovering the S12G Auxillary Core (requires battery toggle)'''&amp;lt;br&amp;gt;&lt;br /&gt;
The S12G cannot be recovered with a boot key.  A boot sequence on the analog inputs of the S12G is required to recover it.&amp;lt;br&amp;gt;&lt;br /&gt;
AN3: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN4: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN16: Pull to +5V &amp;lt;br&amp;gt; &lt;br /&gt;
AN17: Pull to GND &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Applying the boot signal or sequence'''&lt;br /&gt;
&lt;br /&gt;
The boot key signal or boot sequence is only searched within the first 2-3 seconds of the ECU waking up.   To ensure that the signal/sequence is recognized, the following procedure is recommended:&amp;lt;br&amp;gt;&lt;br /&gt;
1) Apply the boot signal or sequence. &amp;lt;br&amp;gt;&lt;br /&gt;
2) Main Core recovery: Turn Power ON, but key off; S12G Core recovery: battery off.&amp;lt;br&amp;gt;&lt;br /&gt;
3) Initiate MotoTune programming on the MotoServer port (City ID 0x0B 250k baud for Main Core, 0x081 250kbaud for S12G Core). &amp;lt;br&amp;gt;&lt;br /&gt;
4) When 'Searching for ECU' appears in MotoTune, turn the key on (Main Core recovery) or battery on (S12G Core recovery).    It may take several tries.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Avoiding Baud Rate Collision During and After Recovery Process:'''&lt;br /&gt;
&lt;br /&gt;
The Pre-PV and PV units will ship with a Main Core sample application that will connect at 500 kbps on PCM-1 (City-ID 11) or PCM-2 (City-ID 12), and S12G Core sample application that will connect at 500 kbps on SECM-1 (City-ID 129).  The application baud rate on CAN-1 does not match that of the bootloaders’ recovery mode baud rate, and there may be baud rate collision between the Main Core Application and the S12G Bootloader (or between the S12G Application and the Main Core Bootloader).&lt;br /&gt;
&lt;br /&gt;
The Main Core recovery process automatically avoids baud rate collision by holding the S12G Core in reset, so there will be no collision between the Main Core Bootloader and the S12G Core application.&lt;br /&gt;
&lt;br /&gt;
However, if you are recovering the S12G Core, you must manually prevent baud rate collision by first programming the Main Core with an application* that sets CAN-1 at 250kbps.  Note that if after recovery the S12G application configures CAN-1 at other than 250kbs, it will collide with the Main Core application’s 250K CAN-1 setting.  Because of this, it is recommended to enable MotoTune on CAN2 in the Main Core application* to allow the Main Core to be re-programmed via CAN-2 (another option is to perform recover procedure on the Main Core after the S12G Core has been recovered).&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
=== Why Do I get this Build Warning?WARNING: CamEncoder has interface Hardware that has not been defined.===&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== What causes the build to fail with this error? &amp;quot;ERROR: A ReactPHWOTChan definition for INJ1 was not found in the application. &amp;quot; ===&lt;br /&gt;
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).&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== What causes the build to fail with this error? &amp;quot;ERROR: A ReactionModule with a ModuleResource of REACT was not found in the application descriptor&amp;quot; ===&lt;br /&gt;
This is really the same cause as the question above.  The use of the INJ channels (even when not in an injector block) require the Reaction Module to be configured in the application.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== I see values with 100% in the build log.  Is this expected?  ===&lt;br /&gt;
There are several memory areas displayed in the build statistics that are internally reserved peices of data.  These are displayed at 100% in the build statistics and cannot be changed by the application.&amp;lt;br/&amp;gt;&lt;br /&gt;
FLASH_RCHW: 4 bytes 100% of 4 &amp;lt;br/&amp;gt;&lt;br /&gt;
FLASH_ENTRY: 4 bytes 100% of 4 &amp;lt;br/&amp;gt;&lt;br /&gt;
FLASH_CRCDEFNPTR: 4 bytes 100% of 4 &amp;lt;br/&amp;gt;&lt;br /&gt;
RAM_BOOTMAILBOX: 16 bytes 100% of 16 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is the 12 V power supply isolated?  ===&lt;br /&gt;
12VOUT is supplied from DRVP and shares a common ground plane so no there is no galvanic isolation from the other supplies.  The intent of the 12VOUT is to power a MAF sensor that requires this voltage. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is the XDRP2 5 V supply more precise than XDRP1?  ===&lt;br /&gt;
XDRP1 is stated as &amp;quot;5V +/- 2%&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
XDRP2 is stated as &amp;quot;VCC +/- 0.2%&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
The above statements make it appear XDRP2 may be more precise than XDRP1, but this may be misleading.  VCC is the internal 5V supply, which is 5V +/-2%.  The reason XDRP2 is a better option for ratiometric sensors lies in the fact that XDRP2 is also the processor's ADC reference.  See next question on VCAL.&lt;br /&gt;
&lt;br /&gt;
=== What is VCAL?  ===&lt;br /&gt;
VCAL is an internal precision 2.5V reference that can be read by the application using a MotoHawk Analog Input block.  This can be used to measure VCC and subsequently used to compensate for absolute voltage sensors.&lt;br /&gt;
&lt;br /&gt;
=== What is DG8?  ===&lt;br /&gt;
DG8 may be called out in some SECM112 documentation, but this is the same as the STOP input.  MotoHawk specifically uses STOP as the resource for this module pin.&lt;br /&gt;
&lt;br /&gt;
=== Can the Auxiliary Processor force an engine to stop?===&lt;br /&gt;
The [[SECM112#Targets | Auxiliary Processor]] can cause the H-Bridge Outputs to be in the off state via the H1 and H2 disables.  MPRD disable can also occur via the MPRD disable output, which also has the side effect of disabling the encoder inputs (Crank and Cam).  Ultimately, a corrective action can be taken by actively resetting the main processor.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== What is the maximum pulse length that can be delivered for SECM112 when using 'Unsynchronized PSP OneShot Trigger'? === &lt;br /&gt;
The 'Unsynchronized PSP OneShot Trigger' total duration input port is specified with uint32 data type, but the hardware has a maximum achievable duration of 839 ms.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== What is the maximum pulse length that can be delivered for SECM112 when using the 'One Shot Definition' Block? === &lt;br /&gt;
The [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/OneShotOutput.html One Shot Definition] block's duration input port is specified with int32 data type, but the hardware has a maximum achievable duration of 105 seconds.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== What is the maximum length of time that quantities of SECM112 units can remain in storage prior to usage in my product? === &lt;br /&gt;
The units can be stored indefinitely, but the best practice is to apply power them every 18 months or so (no longer than that is recommended).  This is to keep the capacitors in good working condition and to prevent overheating when the hardware is installed and used for production. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Out of allocation space in segment RAM_BLOCK0_SEG when building S12G models ===&lt;br /&gt;
An [[S12 Out of allocation space in segment RAM_BLOCK0_SEG]] error is sometimes seen during the linking step when building an S12G model. Follow the link for some tips.&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=24-pin_Module_Family&amp;diff=4215</id>
		<title>24-pin Module Family</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=24-pin_Module_Family&amp;diff=4215"/>
		<updated>2019-06-25T01:35:00Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* ISDL FAQ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
See [http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36300 Product Guide] for Active Part Numbers and Related Hardware (Connectors, Harnesses, Tools).&lt;br /&gt;
&lt;br /&gt;
[[Image:ECM024.jpg|200px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
==ECM-0S12-024==&lt;br /&gt;
&lt;br /&gt;
'''Hardware Features'''&lt;br /&gt;
:Microprocessor: MC9S12DT128, 24MHz&lt;br /&gt;
:Memory: (MC9S12DT128BMPV) 128 K Flash, 8K RAM&lt;br /&gt;
:Operating Voltage: 8-20VDC&lt;br /&gt;
:Operating Temperature: -40 to 105 C&lt;br /&gt;
:Sealed Connectors Operable to 10ft submerged&lt;br /&gt;
&lt;br /&gt;
'''Inputs'''&lt;br /&gt;
:Up to 11 Analog Inputs&lt;br /&gt;
:1 VR Frequency Input&lt;br /&gt;
&lt;br /&gt;
'''Outputs'''&lt;br /&gt;
:3 TTL Level Ignition System Outputs&lt;br /&gt;
:2 10A Low Side PWMs&lt;br /&gt;
:1 1.0A Tachometer Output&lt;br /&gt;
:1 5A H-Bridge PWM&lt;br /&gt;
&lt;br /&gt;
'''Datalinks'''&lt;br /&gt;
:1 CAN 2.0B Channel&lt;br /&gt;
* Note:  1Mbps is not supported on the S12 modules.&lt;br /&gt;
&lt;br /&gt;
=== Fixed Point Procesor===&lt;br /&gt;
The Processor is a ''Fixed Point'' processor.  Although floating point emulation is possible, it is very resource intensive and should be avoided.  Model should be designed using Fixed Point.&lt;br /&gt;
&lt;br /&gt;
Code Warrior H12 Pro Ed C 4.6 Compiler required&lt;br /&gt;
&lt;br /&gt;
===City IDs===  &lt;br /&gt;
The ECM-0S12-024 default City ID is 0x81 except the 0804 version which has City ID 0x0B.  &lt;br /&gt;
&lt;br /&gt;
===Bootstrap=== &lt;br /&gt;
The ECM-0S12-024 can be forced to remain in the firmware bootloader by applying a bootstrap sequence.  The bootstrap sequence is:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;amp;nbsp;&amp;amp;nbsp;Pin&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; !! State for Boot&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN1M || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN2M || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN3M || &amp;amp;nbsp;&amp;amp;nbsp;High&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN4M || &amp;amp;nbsp;&amp;amp;nbsp;High&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN5M || &amp;amp;nbsp;&amp;amp;nbsp;Low&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN6M || &amp;amp;nbsp;&amp;amp;nbsp;High&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN7M || &amp;amp;nbsp;&amp;amp;nbsp;High&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN8M || &amp;amp;nbsp;&amp;amp;nbsp;Low&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Variations and Replacement Part Numbers===&lt;br /&gt;
[[Image:ECM24_pn.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The ECM-0S12-024-0502 was updated to the ECM-0S12-024-0802, but has the same functionality as described in the -0502 datasheet.&lt;br /&gt;
&lt;br /&gt;
The ECM-0S12-024-0503 has been updated to ECM-0S12-024-0801 [and ECM-0S12-024-0804 (different hardboot loader)], but has the same functionality as described in the -0503 datasheet.&lt;br /&gt;
&lt;br /&gt;
The -0503 (0801/0804) is a variation of the 0502 (-0802) with different pullup/pull down combinations for the analog ins and three EST’s replaced by more analog ins.&lt;br /&gt;
&lt;br /&gt;
==GCM-0S12-024==&lt;br /&gt;
===Hardware Features===&lt;br /&gt;
:Microprocessor: MC9S12DT128, 24MHz&lt;br /&gt;
:Memory: (MC9S12DT128BMPV) 128K Flash, 8K RAM, 2K EEPROM&lt;br /&gt;
:Operating Voltage: 8-16VDC&lt;br /&gt;
:Operating Temperature: -40 to 105 C&lt;br /&gt;
:Sealed Connectors Operable to 10ft submerged&lt;br /&gt;
&lt;br /&gt;
====Inputs====&lt;br /&gt;
:6 Analog Inputs&lt;br /&gt;
:4 Discrete Inputs&lt;br /&gt;
&lt;br /&gt;
====Outputs====&lt;br /&gt;
:4 1.5A Low Side PWMs&lt;br /&gt;
:Multi-function ESTOP (Detect/Assert)&lt;br /&gt;
:Optional 0-12V LSO (Easy Link Interface)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Datalinks 2 CAN 2.0B Channel====&lt;br /&gt;
* Note 1Mbps is not supported on the S12 modules&lt;br /&gt;
&lt;br /&gt;
=== Part Numbers ===&lt;br /&gt;
[[Image: GCM24_pn.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compiler ===&lt;br /&gt;
The Processor is a ''Fixed Point'' processor.&lt;br /&gt;
&lt;br /&gt;
Code Warrior H12 Pro Ed C Compiler required&lt;br /&gt;
&lt;br /&gt;
'''City ID''': GCM-0S12-024 default city ID is 0x91.&lt;br /&gt;
&lt;br /&gt;
===GCM-OS12-24 Target Definition ===&lt;br /&gt;
There is only one Target for the GCM-OS12-024 modules.  This is the GCM-0S12-024-0401.   You can use this target to build for the other GCM-0S12-24-0402 and -0403 modules.   MotoTune will give a warning, but press OK to continue.  The difference between the modules are the pullup/pulldown valuse shown below.&lt;br /&gt;
&lt;br /&gt;
GCM-0S12-024-0401-F00 (MCHI0401)&amp;lt;br&amp;gt;&lt;br /&gt;
AN1 -- 220.k PD&amp;lt;br&amp;gt;&lt;br /&gt;
AN2 -- 220.k PD &amp;lt;br&amp;gt;&lt;br /&gt;
AN3 -- 220.k PD &amp;lt;br&amp;gt;&lt;br /&gt;
AN4 -- 220.k PD &amp;lt;br&amp;gt;&lt;br /&gt;
AN5 -- 220.k PD &amp;lt;br&amp;gt;&lt;br /&gt;
AN6 -- 220.k PD &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GCM-0S12-024-0402-F00 (MSIM0401)&amp;lt;br&amp;gt;&lt;br /&gt;
AN1 -- 51.1k PU &amp;lt;br&amp;gt;&lt;br /&gt;
AN2 -- 1.00k PU &amp;lt;br&amp;gt;&lt;br /&gt;
AN3 -- 180.  PU &amp;lt;br&amp;gt;&lt;br /&gt;
AN4 -- 220.k PD &amp;lt;br&amp;gt;&lt;br /&gt;
AN5 -- 180.  PU &amp;lt;br&amp;gt;&lt;br /&gt;
AN6 -- 1.00k PU &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GCM-0S12-024-0403-F00 (SMUX0401)&amp;lt;br&amp;gt;&lt;br /&gt;
AN1 -- 1.00k PU &amp;lt;br&amp;gt;&lt;br /&gt;
AN2 -- 1.00k PU &amp;lt;br&amp;gt;&lt;br /&gt;
AN3 -- 1.00k PU &amp;lt;br&amp;gt;&lt;br /&gt;
AN4 -- 1.00k PU &amp;lt;br&amp;gt;&lt;br /&gt;
AN5 -- 1.00k PU&lt;br /&gt;
AN6 -- 1.00k PU&lt;br /&gt;
&lt;br /&gt;
===Bootstrap=== &lt;br /&gt;
The GCM-0S12-024 can be forced to remain in the firmware bootloader by applying a bootstrap sequence.  The bootstrap sequence is:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;amp;nbsp;&amp;amp;nbsp;Pin&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; !! State for Boot&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN1M || &amp;amp;nbsp;&amp;amp;nbsp;High&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN2M || &amp;amp;nbsp;&amp;amp;nbsp;High&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN3M || &amp;amp;nbsp;&amp;amp;nbsp;Low&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN4M || &amp;amp;nbsp;&amp;amp;nbsp;High&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN5M || &amp;amp;nbsp;&amp;amp;nbsp;High&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN6M || &amp;amp;nbsp;&amp;amp;nbsp;Low&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN7M || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN8M || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Frequently Asked Questions/Topics==&lt;br /&gt;
=== PWM and Frequency Resolution ===&lt;br /&gt;
&lt;br /&gt;
The 24-pin module has limited PWM and frequency input resolution due to the registers – 16 bit or 8 bit, as compared to 32 bit on other MCS PowerPC modules. The clock rate also limits this resolution. The frequency will be traded off for duty cycle resolution, and frequency range is limited. PWM over a large frequency range is not possible. &lt;br /&gt;
&lt;br /&gt;
The PWM outputs on S12 modules are very sensitive to the minimum and maximum frequency settings in the model since there are limited clock resources that are shared between the PWMs, so set your minimum and maximum to reasonable numbers for your system. The output is optimized by the minimum and maximum frequency range settings in the PWM or frequency input block. They must be set as narrowly as possible, so select maximum frequency checkbox and make sure to put in your upper frequency limit. &lt;br /&gt;
&lt;br /&gt;
Using 16-bit PWM or frequency input resources provides some additional resolution over the 8-bit.&lt;br /&gt;
&lt;br /&gt;
Check the module cross reference page to see which outputs have the capability of using a 16-bit resolution resource.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Is there a pin removal tool for the 24-pin module?'''  No, there isn't a pin removal tool for these modules. If you remove the snap-on end, the pins can be removed by deflecting the white tabs.  You’d just need a flat screwdriver. &lt;br /&gt;
 &lt;br /&gt;
[[Category:Modules|24-pin Module Family]]&lt;br /&gt;
&lt;br /&gt;
'''Can I run the 24-pin modules at 1Mbps?'''   No, the S12 modules do not support CAN at 1Mbps.  The option will be removed from the CAN dropdown in a future release to reflect this limitation.&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=SECM70&amp;diff=4174</id>
		<title>SECM70</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=SECM70&amp;diff=4174"/>
		<updated>2018-07-30T08:39:39Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: Add MY17 specification sheet&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==ECM-5634M-70==&lt;br /&gt;
[[Image:ECM5634M-70.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
===Hardware Features===&lt;br /&gt;
:70-Pin platform&lt;br /&gt;
:Microprocessor: ST SPC563M64, 80 MHz&lt;br /&gt;
:Memory: 1.5 M flash, 94 K RAM, 16 K serial EEPROM&lt;br /&gt;
:Operating Voltage: 8–32 Vdc, 36 V (jump start), 5.5 V (crank)&lt;br /&gt;
:Operating Temperature: –40 to +105 °C&lt;br /&gt;
===Inputs===&lt;br /&gt;
:VR or digital crank position sensor&lt;br /&gt;
:Digital cam position sensor &lt;br /&gt;
:Up to 14 analogs&lt;br /&gt;
:Up to 5 digital (4 switch, 1 speed)&lt;br /&gt;
:up to 2 switch-type oxygen sensors&lt;br /&gt;
:Optional wide-range oxygen sensor&lt;br /&gt;
:Up to 2 knock sensors&lt;br /&gt;
&lt;br /&gt;
===Outputs===&lt;br /&gt;
:6 high-impedance injector drivers (up to 4 low impedance injector drivers)&lt;br /&gt;
:Up to 8 electronic spark-triggers for smart injection coils&lt;br /&gt;
:9 low-side drivers&lt;br /&gt;
:3 lamp drivers&lt;br /&gt;
:1 main power relay driver&lt;br /&gt;
:up to 2 H-bridge drivers&lt;br /&gt;
:Optional 3-phase brushless DC motor driver&lt;br /&gt;
:1 sensor supply (5V)&lt;br /&gt;
===Communications===&lt;br /&gt;
:2 CAN 2.0b channels&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Product Summary ==&lt;br /&gt;
The SECM70 control platform fits a variety of applications, including gasoline and&lt;br /&gt;
natural gas engines for power generation, forklifts, lift trucks, and on-highway&lt;br /&gt;
vehicles. The SECM70 control is programmed to meet the specific needs of the&lt;br /&gt;
prime mover and its driven load.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
At the heart of the SECM70 control is a powerful 32-bit ST SPC563M64&lt;br /&gt;
microprocessor that runs Woodward’s ControlCore operating system. Application&lt;br /&gt;
programming is accomplished via Woodward’s MotoHawk application software&lt;br /&gt;
tool. MotoHawk is a rapid controls system development tool that allows controls&lt;br /&gt;
engineers to quickly create controls software directly within Simulink diagrams,&lt;br /&gt;
which run on any MotoHawk-enabled electronic control modules. Application&lt;br /&gt;
developers work directly in the Simulink environment and with a one-step build&lt;br /&gt;
are able to go from an application model to a file that can be programmed directly&lt;br /&gt;
into Woodward production hardware. MotoHawk provides a high-level&lt;br /&gt;
programming environment for users who have control systems expertise but&lt;br /&gt;
don’t necessarily have specific embedded programming skills. Once the&lt;br /&gt;
application program has been generated and loaded into the SECM70 control via&lt;br /&gt;
the CAN port, the user can view variables and tune the control using an&lt;br /&gt;
appropriate service interface tool such as [[ToolKit_Custom_HMI_Software|Woodward's Toolkit]] or [[MotoTune]].&lt;br /&gt;
Connection to other devices, such as a diagnostic tool, is accomplished by&lt;br /&gt;
means of other CAN ports available on the control. The desired information flow&lt;br /&gt;
is programmed into the control via [[MotoTune]] or [[ToolKit_Custom_HMI_Software|ToolKit]].&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The SECM70 control consists of a single rigid printed circuit board attached to an&lt;br /&gt;
aluminum housing using thermal adhesive, which is then closed and sealed with&lt;br /&gt;
an aluminum cover. Connections to the control are made via a single 70-pin&lt;br /&gt;
automotive-style sealed connector. The control can be mounted directly to the&lt;br /&gt;
engine or frame using vibration isolators which are available pre-installed on the&lt;br /&gt;
control or separately.&lt;br /&gt;
&lt;br /&gt;
== Datasheets ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36363 ECM-5634M-070 Family Engine Control Modules Specification Sheet (36363)]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;b&amp;gt;NEW&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt; [http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=B03452 ECM-5642A-070 Family Engine Control Modules Specification Sheet (B03452)]&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=26776 ECM-5634M-070 MY14 Family Engine Control Modules Product Manual (26776)]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=35037 ECM-5634M-070 MY15 Family Engine Control Modules Product Manual (35037)]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;b&amp;gt;NEW&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt; [http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=B35088 ECM-5642A-070 MY17 Family Engine Control Modules Product Manual (B35088)]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=26784 ECM-5634M-070 Controller Installation Manual (26784)]&lt;br /&gt;
&lt;br /&gt;
== Part Numbers ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Part Num &amp;lt;br/&amp;gt; x=Inactive !! Part w/&amp;lt;br/&amp;gt;MTG HW || HW Version !! Features&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!-- MI 1402 and 1452 --&amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;1751-6680 || &amp;amp;nbsp;8923-2050&amp;amp;nbsp; || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1452.html 1452 (PROD)] || Mobile Industrial&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6649 &amp;lt;b&amp;gt;x&amp;lt;/b&amp;gt; || &amp;amp;nbsp;8923-2051 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1402.html 1402 (DEV)] || Mobile Industrial, on-the-fly calibratible&lt;br /&gt;
&amp;lt;!-- PG 1403 and 1453 --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6681 || &amp;amp;nbsp;8923-2052 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1453.html 1453 (PROD)] || Power Generation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6650 &amp;lt;b&amp;gt;x&amp;lt;/b&amp;gt; || &amp;amp;nbsp;8923-2053 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1403.html 1403 (DEV)] || Power Generation, on-the-fly calibratible&lt;br /&gt;
&amp;lt;!-- SK 1409 and 1459, 1509 and 1559 --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6682 || &amp;amp;nbsp;8923-2002 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1459.html 1459 (PROD)]|| Marine&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6756 || &amp;amp;nbsp;8923-2475 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1459.html 1559 (PROD)]|| Marine (MY15 revision, use the 1459 target)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6784 || &amp;amp;nbsp;8923-2577 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1459.html 1759 (PROD)]|| Marine (MY17 revision, use the 1459 target)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6653 &amp;lt;b&amp;gt;x&amp;lt;/b&amp;gt; || &amp;amp;nbsp;8923-1987 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1409.html 1409 (DEV)] || Marine, on-the-fly calibratible&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6755 || &amp;amp;nbsp;8923-2474 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1409.html 1509 (DEV)] || Marine, on-the-fly calibratible (MY15 revision, use the 1409 target)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6785 || &amp;amp;nbsp;8923-2578 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1409.html 1709 (DEV)] || Marine, on-the-fly calibratible (MY17 revision, use the 1409 target)&lt;br /&gt;
&amp;lt;!-- OH 1411 and 1461 --&amp;gt;&lt;br /&gt;
&amp;lt;!-- The 14xx OH modules were never released to the public, used in-house and replaced by 15xx modules&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6683 || || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1461.html 1461 (PROD)]|| On-Highway (future release)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6675 || || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1411.html 1411 (DEV)] || On-Highway, on-the-fly calibratible (future release)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- MI 1512 and 1562 --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6719 || &amp;amp;nbsp;8923-2253 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1562.html 1562 (PROD)] || Mobile Industrial&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6713 || &amp;amp;nbsp;8923-2258 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1512.html 1512 (DEV)] || Mobile Industrial, on-the-fly calibratible&lt;br /&gt;
&amp;lt;!-- PG 1513 and 1563 --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6720 || &amp;amp;nbsp;8923-2254 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1563.html 1563 (PROD)] || Power Generation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6714 || &amp;amp;nbsp;8923-2259 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1513.html 1513 (DEV)] || Power Generation, on-the-fly calibratible&lt;br /&gt;
&amp;lt;!-- PG 1515 and 1565 --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6722 || &amp;amp;nbsp;8923-2256 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1565.html 1565 (PROD)] || On-Highway&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6716 || &amp;amp;nbsp;8923-2261 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1515.html 1515 (DEV)] || On-Highway, on-the-fly calibratible&lt;br /&gt;
&amp;lt;!-- PG 1515 and 1565 --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6723 || &amp;amp;nbsp;8923-2257 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1566.html 1566 (PROD)] || Hydraulic&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6717 || &amp;amp;nbsp;8923-2262 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1516.html 1516 (DEV)] || Hydraulic, on-the-fly calibratible&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6767 || &amp;amp;nbsp;8923-2583 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5642A-070-070-1752.html 1752 (PROD)] || Mobile Industrial, MPC5642A&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6772 || &amp;amp;nbsp;8923-2584 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5642A-070-070-1702.html 1702 (DEV)] || Mobile Industrial, on-the-fly calibratible using MPC5642A&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6768 || &amp;amp;nbsp;8923-2587 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5642A-070-070-1753.html 1753 (PROD)] || Power Generation, MPC5642A&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6773 || &amp;amp;nbsp;8923-2588 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5642A-070-070-1703.html 1703 (DEV)] || Power Generation, on-the-fly calibratible using MPC5642A&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6769 || &amp;amp;nbsp;8923-2581 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5642A-070-070-1754.html 1754 (PROD)]|| Marine, MPC5642A&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6774 || &amp;amp;nbsp;8923-2582 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5642A-070-070-1704.html 1704 (DEV)]|| Marine, on-the-fly calibratible using MPC5642A&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6770 || &amp;amp;nbsp;8923-2585 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5642A-070-070-1755.html 1755 (PROD)] || On-Highway, MPC5642A&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6776 || &amp;amp;nbsp;8923-2586 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5642A-070-070-1705.html 1705 (DEV)] || On-Highway, on-the-fly calibratible using MPC5642A&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6771 || &amp;amp;nbsp;8923-2579 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5642A-070-070-1756.html 1756 (PROD)] || Hydraulic, MPC5642A&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6777 || &amp;amp;nbsp;8923-2580 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5642A-070-070-1706.html 1706 (DEV)] || Hydraulic, on-the-fly calibratible using MPC5642A&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt;&lt;br /&gt;
* Marine MY15 1751-6756 replaces 1751-6721.  Hardware is identical, but has a newer bootloader.&lt;br /&gt;
* Marine MY15 (DEV) 1751-6755 replaces 1751-6715.  Hardware is identical, but has a newer bootloader.&lt;br /&gt;
&lt;br /&gt;
== Related Part Numbers ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Part Number !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 8923-1761 || Connector Kit&lt;br /&gt;
|-&lt;br /&gt;
| 1635-1772 || Connector Only&lt;br /&gt;
|-&lt;br /&gt;
| 8996-2162&amp;lt;br/&amp;gt;8996-2163&amp;lt;br/&amp;gt;8996-2164 || Crimp Tools&lt;br /&gt;
|-&lt;br /&gt;
| 8996-2167 || Removal Tools&lt;br /&gt;
|-&lt;br /&gt;
| 1635-1800 || Boot Key&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1141 || Pig Tail&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1364 || Development Harness&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1341 || Desktop Simulator Harness&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Model Variant Features ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight: bold;&amp;quot; | Function&lt;br /&gt;
! style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | MI-1402/1452&lt;br /&gt;
! style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | MI-1512/1562&amp;lt;br/&amp;gt;MI-1702/1752&lt;br /&gt;
! style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | PG-1403/1453&lt;br /&gt;
! style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | PG-1513/1563&amp;lt;br/&amp;gt;PG-1703/1753&lt;br /&gt;
! style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | SK-1409/1459&lt;br /&gt;
! style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | SK-1509/1559&lt;br /&gt;
! style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | SK-1704/1754&lt;br /&gt;
! style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | OH-1515/1565&amp;lt;br/&amp;gt;OH-1705/1755&lt;br /&gt;
! style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | LV-1516/1566&amp;lt;br/&amp;gt;LV-1706/1756&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;font-weight: bold;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | 1751-6649/6680&lt;br /&gt;
| style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | 1751-6713/6719&lt;br /&gt;
| style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | 1751-6650/6681&lt;br /&gt;
| style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | 1751-6714/6720&lt;br /&gt;
| style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | 1751-6653/6682&lt;br /&gt;
| style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | 1751-6715/6721&lt;br /&gt;
| style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | 1751-6774/6769&lt;br /&gt;
| style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | 1751-6716/6722&lt;br /&gt;
| style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | 1751-6717/6723&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | PIN #&lt;br /&gt;
|-&lt;br /&gt;
| AN1 (221k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 28&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 28&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 28&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 28&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 28&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 28&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 28 (10k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 28&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 28&lt;br /&gt;
|-&lt;br /&gt;
| AN2 (221k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
|-&lt;br /&gt;
| AN3 (221k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22&lt;br /&gt;
|-&lt;br /&gt;
| AN4 (221k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 42&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 42&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 42&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 42&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 42 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 42 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 42 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 42&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 42&lt;br /&gt;
|-&lt;br /&gt;
| AN5 (4.75k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 43&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 43&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 43&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 43&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 43 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 43 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 43 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 43&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 43 (221k_PD)&lt;br /&gt;
|-&lt;br /&gt;
| AN6 (4.75k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 47&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 47&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 47 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 47 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 47 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 47 (221k_PD)&lt;br /&gt;
|-&lt;br /&gt;
| AN7 (51.1k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 44&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 44&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 44&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 44&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 44 (1ms T )&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 44 (1ms T )&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 44 (1ms T )&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 44&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 47 (221k_PD)&lt;br /&gt;
|-&lt;br /&gt;
| AN8 (4.75k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 45&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 45&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 45&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 45&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 45 (51.1k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 45 (51.1k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 45 (51.1k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 45&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 45 (221k_PD)&lt;br /&gt;
|-&lt;br /&gt;
| AN9 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 39&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 39&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 39&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 39&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 39 (1k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 39 &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 39 &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 39&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 39&lt;br /&gt;
|-&lt;br /&gt;
| AN10 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 40&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 40&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 40&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 40&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 40 (1k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 40 &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 40 &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 40&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 40&lt;br /&gt;
|-&lt;br /&gt;
| AN11 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 41&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 41&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 41&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 41&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 41 (1k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 41&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 41&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 41&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 41&lt;br /&gt;
|-&lt;br /&gt;
| AN12 (4.75k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 59&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 59&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 59&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 59&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 59 (1k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 59 (221k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 59 (221k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 59&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 59 (51.1k_PU)&lt;br /&gt;
|-&lt;br /&gt;
| AN13 (4.75k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 60 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 60 (221k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 60 (221k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 60 (51.1k_PU)&lt;br /&gt;
|-&lt;br /&gt;
| AN14 (10k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 61&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 61&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 61&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 61&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 61&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| AN16 (51.1k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 46&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 46&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 46&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 62 (221k_PD)&lt;br /&gt;
|-&lt;br /&gt;
| AN17 &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| AN18 &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 64&lt;br /&gt;
|-&lt;br /&gt;
| AN19 &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 63&lt;br /&gt;
|-&lt;br /&gt;
| EGO1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 65/66&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 65/66&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 65/66&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 65/66&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 65/66&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 65/66&lt;br /&gt;
|-&lt;br /&gt;
| EGO2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 49/50&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 49/50&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 49/50&lt;br /&gt;
|-&lt;br /&gt;
| UEGO&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 47(SNS), 50(SR), 3(HTR), 49(TG), 33(INRC)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 47(SNS), 50(SR), 3(HTR), 49(TG), &amp;lt;br/&amp;gt;33(INRC) (Improved accuracy)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 47(SNS), 50(SR), 3(HTR), 49(TG), &amp;lt;br/&amp;gt;33(INRC) (Improved accuracy)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| EK1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 63/64&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 63/64&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 63/64&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 63/64&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 63/64&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 63/64&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 63/64&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 63/64&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| EK2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 62/46&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 62/46&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 62/46&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 62/46&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 62/46&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| SWG1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25&lt;br /&gt;
|-&lt;br /&gt;
| SWG2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27&lt;br /&gt;
|-&lt;br /&gt;
| SWG3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29&lt;br /&gt;
|-&lt;br /&gt;
| SWG4 / BOOT&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26&lt;br /&gt;
|-&lt;br /&gt;
| CAM_DG&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30&lt;br /&gt;
|-&lt;br /&gt;
| CNK_DG&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 31&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 31&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 31&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 31&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 31&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 31&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 31&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 31&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 31&lt;br /&gt;
|-&lt;br /&gt;
| SPD&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 33&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 33&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 33&lt;br /&gt;
|-&lt;br /&gt;
| CNK_VR/SPD_VR&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16/17&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16/17&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16/17&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16/17&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16/17&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16/17&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16/17&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16/17&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16/17&lt;br /&gt;
|-&lt;br /&gt;
| LSO1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
|-&lt;br /&gt;
| LSO2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3&lt;br /&gt;
|-&lt;br /&gt;
| LSO3 (CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
|-&lt;br /&gt;
| LSO4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5 (Inductive capable)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5 (Inductive capable)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5 (Inductive capable)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5&lt;br /&gt;
|-&lt;br /&gt;
| LSO5&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9 (Inductive capable)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9 (Inductive capable)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9 (Inductive capable)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9&lt;br /&gt;
|-&lt;br /&gt;
| LSO6 (CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 10 (no CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 10 (no CS) (Inductive capable)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 10 (no CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 10 (no CS) (Inductive capable)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 11 (10 no CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 11 (10 no CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 11 (10 no CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 10 (no CS) (Inductive capable)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 11 (166mA/Volt)&lt;br /&gt;
|-&lt;br /&gt;
| LSO7 (CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 (no CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 (no CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 (no CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 (no CS) &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 (no CS) &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 (166mA/Volt)&lt;br /&gt;
|-&lt;br /&gt;
| LSO8&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20&lt;br /&gt;
|-&lt;br /&gt;
| LSO9&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23&lt;br /&gt;
|-&lt;br /&gt;
| MPRD&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 55&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 55&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 55&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 55&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 55&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 55&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 55&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 55&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 55&lt;br /&gt;
|-&lt;br /&gt;
| LAMP1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 58&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 58 (Improved diag)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 58 &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 58 (Improved diag)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 58 (Improved diag)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 58&lt;br /&gt;
|-&lt;br /&gt;
| LAMP2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 57&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 57 (Improved diag)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 57&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 57 (Improved diag)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 57 (Improved diag)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 57&lt;br /&gt;
|-&lt;br /&gt;
| LAMP3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 56&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 56 (Improved diag)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 56&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 56 (Improved diag)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 56 (Improved diag)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 56&lt;br /&gt;
|-&lt;br /&gt;
| INJ1 (PH)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 34&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 34&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 34&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 34&lt;br /&gt;
|-&lt;br /&gt;
| INJ2 (PH)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 35&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 35&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 35&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 35&lt;br /&gt;
|-&lt;br /&gt;
| INJ3 (PH)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1&lt;br /&gt;
|-&lt;br /&gt;
| INJ4 (PH)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 18&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| INJ4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 12&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 12&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 12&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 12&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 12&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 12&lt;br /&gt;
|-&lt;br /&gt;
| INJ5&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| INJ6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| H1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 51/52&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 51/52&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 51/52&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 51/52&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 51/52&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 51/52&lt;br /&gt;
|-&lt;br /&gt;
| H2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 34/35&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 34/35&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| 3-Phase&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 51/34/52&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 51/34/52&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 51/34/52&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| EST1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
|-&lt;br /&gt;
| EST2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8&lt;br /&gt;
|-&lt;br /&gt;
| EST3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 11&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 11&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 11&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 11&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 11&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| EST4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21&lt;br /&gt;
|-&lt;br /&gt;
| EST5&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 18&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 18&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 18&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 18&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 18&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 18&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 18&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 18&lt;br /&gt;
|-&lt;br /&gt;
| EST6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19&lt;br /&gt;
|-&lt;br /&gt;
| EST7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13&lt;br /&gt;
|-&lt;br /&gt;
| EST8&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14&lt;br /&gt;
|-&lt;br /&gt;
| MotorPhaseVSense_A&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 58&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 58&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 58&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| MotorPhaseVSense_B&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 57&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 57&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 57&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| MotorPhaseVSense_C&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 56&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 56&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 56&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 17xx Modules ===&lt;br /&gt;
* Available since '''MotoHawk 2017b Beta 2''' or newer&lt;br /&gt;
* RAM and FLASH increase on MPC5642A processor&lt;br /&gt;
&lt;br /&gt;
=== 15xx Modules ===&lt;br /&gt;
* Available since '''MotoHawk 2015a SP0''' or newer&lt;br /&gt;
* Improved diagnostic on LAMP pins&lt;br /&gt;
* Increased UEGO resolution and accuracy&lt;br /&gt;
* Increased switching speed on LSO4/5/6/7 and H2&lt;br /&gt;
* Allow LSO4/5/6 to drive inductive loads&lt;br /&gt;
&lt;br /&gt;
== Software Variant Features ==&lt;br /&gt;
=== 14xx Modules ===&lt;br /&gt;
* Hardboot firmware version 2.06&lt;br /&gt;
* Programming not supported on CAN2&lt;br /&gt;
&lt;br /&gt;
=== 15xx Modules ===&lt;br /&gt;
* Modules that support UEGO expose an additional internal ADC resource for FVOUT.  This provides the user an option to use a slightly higher resolution reading.&lt;br /&gt;
* Hardboot firmware version 2.08&lt;br /&gt;
* The factory installed application supports XCP communications and reflashing using CAN_2 at 500k with CRO = 0x188C0CF9 and DTO = 0x188BF90C&lt;br /&gt;
* Reprogramming supported on CAN2&lt;br /&gt;
&lt;br /&gt;
== Compiler ==&lt;br /&gt;
Green Hills version 4.2.4 &amp;lt;br/&amp;gt;&lt;br /&gt;
Green Hills version 2015.1.6 (Since MootHawk 2017b)&amp;lt;br/&amp;gt;&lt;br /&gt;
GCC for PowerPC EABI-SPE version 4.6.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==BootKey==&lt;br /&gt;
A malfunctioning application previously loaded on the SECM70 can be recovered using the [[Boot key recovery|BootKey recovery]].&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The BootKey signal needs to be connected to the '''SWG4''' pin.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
==Bootstrap==&lt;br /&gt;
The SECM70 can be forced to remain in the firmware bootloader by applying a bootstrap sequence.  The bootstrap sequence is:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;amp;nbsp;&amp;amp;nbsp;Pin&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; !! State for Boot&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN1 || &amp;amp;nbsp;&amp;amp;nbsp;High&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN2 || &amp;amp;nbsp;&amp;amp;nbsp;High&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN3 || &amp;amp;nbsp;&amp;amp;nbsp;High&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN4 || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN5 || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN6 || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN7 || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN8 || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN9 || &amp;amp;nbsp;&amp;amp;nbsp;Low&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN10 || &amp;amp;nbsp;&amp;amp;nbsp;Low&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN11 || &amp;amp;nbsp;&amp;amp;nbsp;Low&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Frequently Asked Questions/Topics ==&lt;br /&gt;
&lt;br /&gt;
=== Peak and Hold Constraints ===&lt;br /&gt;
This hardware is able to programatically set the peak and hold currents of capable injector outputs.  However there is an interdependency between the peak and hold and not all values are possible.&lt;br /&gt;
&lt;br /&gt;
[[Image:PeakHoldSECM70.PNG]]&lt;br /&gt;
&lt;br /&gt;
The Peak Hold Set Block also supports outputs that report the Currents that will be applied (once constrained).&lt;br /&gt;
&lt;br /&gt;
=== Is the Marine variant suited for sensorless 3-phase brushless motor? ===&lt;br /&gt;
To introduce this answer, we review that it is possible to run a 3-phase brushless DC motor with and without position sensors.  A position sensor can directly indicate the position of a motor shaft. Sensorless systems are advanced enough to determine the position of the shaft through back-EMF waveforms, although complexity will increase greatly under very small signal to noise ratios (when the motor is just starting and at very slow speeds.)&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Woodward has design protected for sensorless 3-phase brushless DC motor operation in SECM70, but the Marine variant is &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; suited for this application.  &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The Marine variant SECM70 should always be designed to operate a 3-phase brushless motor with hall position sensors connected to module pins 56,57,58 for PhaseC, PhaseB, PhaseA, respectively.  MotoHawk Input Capture blocks can then be used with the resources MotorPhaseVSense_A, MotorPhaseVSense_B, and MotorPhaseVSense_C.  The Input Capture behavior allows the application to be notified of an input pin state change, which correlates to a sample every 60 degrees.  The algorithm to calculate motor position and speed is outside the scope of what MotoHawk is providing in support of this module.&lt;br /&gt;
&lt;br /&gt;
=== Can I diagnose PWM EST outputs? ===&lt;br /&gt;
Due to the nature of the hardware, EST diagnostics are only available when driven as a sequence and not as a PWM.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The ESTs have a caveat that certain groups must not turn off at the same time as there is shared diagnostic HW.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The groupings where you should avoid turning off at the same time are:&amp;lt;br/&amp;gt;&lt;br /&gt;
EST 1,2 &amp;lt;br/&amp;gt;&lt;br /&gt;
EST 3,4 &amp;lt;br/&amp;gt;&lt;br /&gt;
EST 5,6,7,8&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Why is LSO6 current sense not working? ===&lt;br /&gt;
On modules that support current sense for the resource LSO6, '''the load must be connected to pin 11'''.  Pin 10 is also connected to the LSO6 driver but before the current measurement sense resistor and therefore current will not be measured.&lt;br /&gt;
&lt;br /&gt;
=== How is LSO3 different than LSO6/LSO7 on the Marine variant? ===&lt;br /&gt;
LSO3 current sense is only able to measure current when the driver is in the '''On''' state.  This is common to all the module variants.  The Marine variant has additional current sense for LSO6 and LSO7.   The current measurement at pins 11 and 15, respectively, will measure the current when the driver state is '''On''' and '''Off'''.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
=== Is there an available ECU Side connector? ===&lt;br /&gt;
TE Connectivity, formerly known as Tyco Electronics Ltd, provides an inline male side mating connector which will mate to Woodward part number 1635-1772.  The TE Connectivity part number is 1438726-1.  More information can be found on the [http://www.te.com/usa-en/product-1438726-1.html TE Connectivity website].&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:TYCO 1438726.jpg|70 Pin Male Side]] &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
=== What is the maximum pulse length that can be delivered for SECM70 when using 'Unsynchronized PSP OneShot Trigger'? === &lt;br /&gt;
The 'Unsynchronized PSP OneShot Trigger' total duration input port is specified with uint32 data type, but the hardware has a maximum achievable duration of 839 ms.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
=== Why does EST7 and EST8 experience PWM transients when EST5 or EST6 is used for ignition? === &lt;br /&gt;
As mentioned in this [[SECM70#Can_I_diagnose_PWM_EST_outputs.3F|previous FAQ]], the diagnostics for ESTs are grouped.  If any EST in the group of EST5, EST6, EST7 or EST8 are requested to have diagnostics, then the entire group will experience a diagnostic pulse at the end of pulse event.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
In some cases, it may be better to have EST3 through EST8 used for ignition.  Using EST1 and EST2 for PWM behavior are free from the diagnostic grouping experienced by the EST5 to EST8 group employed by hardware.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
=== Can the Crank/CAM digital inputs support a 0 V to battery position sensor? === &lt;br /&gt;
Yes, the maximum voltage these inputs can be in the circuitry is ~32V. It is common to utilize 5 volt TTL style position sensors, but a position sensor which provides a signal from ground to VBatt is acceptable.    &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
=== What is the maximum frequency which can be measured on the CNK input? === &lt;br /&gt;
The datasheet indicates the CNK has an Anti-aliasing filer 1 pole at 20 usec.  1/20 usec = 50 KHz.  The SECM70 has silicon that should allow most frequencies to be read, but very high frequency readings may become granular depending on the input pin type.  Typically inputs up to 12KHz are considered normal and software will read them accurately with good granularity.  Above that the user should test and confirm that the granularity and accuracy is sufficient for their application.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=Module_Datasheets&amp;diff=4173</id>
		<title>Module Datasheets</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=Module_Datasheets&amp;diff=4173"/>
		<updated>2018-07-30T08:36:49Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: Correct SECM70 B03452 product link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cross Reference Charts ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36328 MotoHawk Control Solutions ECM Summary (36328)]&amp;lt;br /&amp;gt;&lt;br /&gt;
* Summary Comparision of ECM Modules&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/CrossReference.html MotoHawk Target CrossReference Chart]&amp;lt;br/&amp;gt;&lt;br /&gt;
* MotoHawk Cross Reference Chart showing modules and the IO Behaviors supported by the MotoHawk software&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[24-pin_Module_Family|24 Pin Modules]] ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36322 ECM-0S12-024-0502-C/F Datasheet (36322)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc for ECM-0S12-024-0502 Module &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36358 ECM-0S12-024-0503 Datasheet (36358 inactive)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc., for the ECM-0S12-024-0503 Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* (replaced by -0801 and 0804)&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36360 ECM-0S12-024-0802-C/F Datasheet (36360)]&amp;lt;br /&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc for ECM-0S12-024-0802 Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36323 GCM-0565-024-0602-F Datasheet (36323)]&amp;lt;br /&amp;gt;&lt;br /&gt;
* Inactive: For Reference Only. Resource Descriptions, Pinouts, etc., for the GCM-0565-024-0602-F Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36324 GCM-0S12-024-0401-F Datasheet (36324)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc., for the GCM-0S12-024-0401-F Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36325 GCM-0S12-024-0402-F Datasheet (36325)]&amp;lt;br /&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc., for the GCM-0S12-024-0402-F Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36326 GCM-0S12-024-0403-F Datasheet (36326)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc., for the GCM-0S12-024-0403-F Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[48-pin_Module_Family|48 Pin Modules]] ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36301 ECM-0555-048 Controller Family Datasheet (36301)]&amp;lt;br/&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc., for the ECM-0555-048 Family of Control Modules&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36317 ECM-0563-048-0701 Datasheet (36317)]&amp;lt;br/&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc., for the ECM-0563-048-0701-C/F Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36318 ECM-0563-048-0704 Datasheet (36318)]&amp;lt;br/&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc., for the ECM-0563-048-0704 Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber ECM-0563-048-0705 Datasheet (36319)]&amp;lt;br/&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc.for the ECM-0563-048-0705 Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36303 GCM-0563-048 Controller Family Datasheet (36303)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc for the GCM-0563-048C/F Control Modules&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36330 HCM-0563-048-0801-C/F Datasheet (36330)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc., for the HCM-0563-048-0801-C/F Modules&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36331 HCM-0563-048-0802-C/F Datasheet (36331)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc.for the HCM-0563-048-0802 -C/F Modules&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36332 HCM-0563-048-0803-C/F Datasheet (36332)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc., for the HCM-0563-048-0803-C/F Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[70-pin_Module_Family|70 Pin Modules]] ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36348 ECM-S12X-070 Family Engine Control Modules Product Information Sheet (36348)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*General Product Information for ECM-S12X-070 Family&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36347 ECM-0S12-070-1001 Datasheet (36347)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc of ECM-S12X-070-1001&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36363 ECM-5634M-070 (SECM70) Family Engine Control Modules Product Specification (36363)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*General Product Information for SECM70 Family&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=B03452 ECM-5642A-070 (SECM70) Family Engine Control Modules Product Specification (B03452)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*General Product Information for SECM70 MY17 Family&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=26776 ECM-5634M-070 (SECM70 MY14) Family Engine Control Modules Product Manual (26776)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc of ECM-5634M-070-14xx (SECM70)&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=35037 ECM-5634M-070 (SECM70 MY15) Family Engine Control Modules Product Manual (35037)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc of ECM-5634M-070-15xx (SECM70 MY15)&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=B35088 ECM-5642A-070 (SECM70 MY17) Family Engine Control Modules Product Manual (B35088)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc of ECM-5642A-070-17xx (SECM70 MY17)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[80-pin_Module_Family|80 Pin Modules]] ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36314 ECM-0555-080-0701 Datasheet (36314)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Inactive: For Reference Only.  Resource Descriptions, Pinouts, etc., for the ECM-0555-080-0701-F Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36315 ECM-0555-080-0702 Datasheet (36315)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc., for the ECM-0555-080-0702-C/F Modules&amp;lt;br /&amp;gt;&lt;br /&gt;
* '''ECM-0555-080-0702 C/F has been replaced by ECM-0555-080-0802.  The -0702 datasheet applies to the -0802'''&amp;lt;br/&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36316&amp;quot; ECM-0555-080-0703 Datasheet (36316)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Inactive: For Reference Only.  Resource Descriptions, Pinouts, etc., for the ECM-0555-080-0703-C/F Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[112-pin_Module_Family|112 Pin Modules]] ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36757 ECM-5554-112-0902 Datasheet (36757)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc for the ECM-5554-112-0902 F/C Modules&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36350 ECM-5554-112-0904 Datasheet (36350)]&amp;lt;br /&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc for the ECM-5554-112-0904C/F Control Modules&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36370 GCM-5554-112-1001-C/F Datasheet (36370)]&amp;lt;br /&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc for the GCM-5554-112-1001-C/F Control Modules (1751-6456 1751-6457)&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=B36364 SECM112 Datasheet (36364)]&amp;lt;br /&amp;gt;&lt;br /&gt;
* General IO description for the SECM112 Control Modules&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''NEW!'''  [http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=35041 PCM112-14 Product Manual (35041)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc of ECM-5644A-112-14xx &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[128-pin_Module_Family|128 Pin Modules]] ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36320 ECM-0565-128-0701-C Datasheet (36320)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc., for the ECM-0565-128-0701-C Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36321 ECM-0565-128-0701-F Datasheet (36321)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc for the ECM-0565-128-0701-F Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36355 ECM-0565-128-0702-C Datasheet (36355)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc., for the ECM-0565-128-0702-C Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36371 ECM-0565-128-0704-C Datasheet (36371)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc., for the ECM-0565-128-0704-C Module&amp;lt;br /&amp;gt;&lt;br /&gt;
* MotoHawk 2010bSP0 or higher is Required for the ECM-0565-128-0704-C Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36368 ECM-0565-128-1001-C/F Datasheet (36368)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc., for the ECM-0565-128-1001-C/F Module&amp;lt;br/&amp;gt;&lt;br /&gt;
* MotoHawk 2010bSP0 or higher is Required for the ECM-0565-128-1001-C/F Module&amp;lt;br/&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Additional Resources ==&lt;br /&gt;
=== [[Boot_key_recovery|Boot Key Recovery]] === &lt;br /&gt;
This article describes how to recover a module that may be unresponsive due to programming errors using a Boot Key or Boot Cable&lt;br /&gt;
&lt;br /&gt;
* [[Boot_key_recovery|Boot Key Recovery Document]]&lt;br /&gt;
&lt;br /&gt;
=== MotoService Software Installation Guide ===&lt;br /&gt;
*[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=9700-1002&amp;quot; MotoService Software Installation Guide (9700-1002)]&amp;lt;br /&amp;gt;&lt;br /&gt;
General Software Installation Guide&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Desktop IO Simulator===&lt;br /&gt;
*[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36369&amp;quot; Desktop IO Simulator_36369]&amp;lt;br /&amp;gt;&lt;br /&gt;
Description and pin out chart for Desktop IO simulator 8909-1043&lt;br /&gt;
*[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=35078&amp;quot; Desktop IO Simulator_35078]&amp;lt;br /&amp;gt;&lt;br /&gt;
Description and pin out chart for Desktop IO simulator for use with LECM 8928-7541&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=Flexible_Encoder&amp;diff=4170</id>
		<title>Flexible Encoder</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=Flexible_Encoder&amp;diff=4170"/>
		<updated>2018-07-05T13:03:38Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Interpolative Triggers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Why Flexible Encoder? =&lt;br /&gt;
&lt;br /&gt;
It can be expensive to add a new hand coded encoder pattern to MotoHawk both in terms of dollar cost and time cost.  The Flexible Encoder allows the user to specify their exact Encoder Specification using an xml file.  Also, classic encoder patterns as defined in the Encoder Definition Block are generic.  For example, the 60-2 crank; single tooth cam was the same for all users.  There was no way to tune the encoder behavior based on system characteristics.   With Flexible Encoder, the overall encoder design is shifted to the customer.  ''Therefore, the encoder can be designed for the customer specific application.''  Teeth location, Keying/Pattern matching, Fault behavior, Impact of Wheel Acceleration, Source Interaction, .. can all be specified specific to the user's application.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   '''The Flexible Encoder offers powerful flexibility over the encoder system design, but also greater responsibility''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Flexibility'''&amp;lt;/big&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
* Tooth Displacement&amp;lt;br/&amp;gt;&lt;br /&gt;
* Key Strength&amp;lt;br/&amp;gt;&lt;br /&gt;
* Number of Keys - can have multiple key points on the wheel&amp;lt;br/&amp;gt;&lt;br /&gt;
* Source Phasing - you now control how the two, three sources interact in terms of phasing&amp;lt;br/&amp;gt;&lt;br /&gt;
* Diagnostic Controls&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Enhanced capability and new features'''&amp;lt;/big&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
* Multiple source solutions &amp;lt;br/&amp;gt;&lt;br /&gt;
* Active encoder switching - switch between multiple encoders&amp;lt;br/&amp;gt;&lt;br /&gt;
* Additional diagnostics&amp;lt;br/&amp;gt;&lt;br /&gt;
* Improved RPM sampling - more flexibility in how that works&amp;lt;br/&amp;gt;&lt;br /&gt;
* New RPM value - Cycle RPM&amp;lt;br/&amp;gt;&lt;br /&gt;
* Interpolative TDC and Angle Event Triggers -  in classic implementations angle based triggers were on physical teeth.  Flexible encoder interpolates.  &lt;br /&gt;
* Implicit Phase Reporting - variable cam .. can measure the phase between one source and another.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Requirements =&lt;br /&gt;
&amp;lt;big&amp;gt;'''MotoHawk Requirements'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''MotoHawk 2012a or higher is required for Flexible Encoder''' &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Module Requirements'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Flexible Encoder is supported on [[PCM09]] (ECM-5554-112-090x), [[SECM70]] (ECM-5634M-070-14xx and ECM-5634M-070-15xx), LECM and [[SECM112]] (ECM-5644A-112-048-120x).&lt;br /&gt;
&lt;br /&gt;
An Enhanced Time Processing Unit (eTPU) is required for Flexible Encoder, so the Flexible Encoder cannot be supported on the 48, 80, or 128 pin module as these do not have eTPU.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Differences Between Flexible Encoder and the Classic MotoHawk Encoder =&lt;br /&gt;
&lt;br /&gt;
The Classic Encoder is a one-size fits all Encoder, implemented through an Encoder Definition Block.  The Application Designer selects their encoder pattern in a drop down menu.  The Flexible Encoder offers requires more application design of the encoder system, but is as the name implies much more flexible and offers additional power over the encoder design as well as additional features.  Some of the differences are outlined below.&lt;br /&gt;
&lt;br /&gt;
1. '''&amp;lt;big&amp;gt;[[Flexible_Encoder#Interpolative_Triggers|Interpolative Triggers:]]&amp;lt;/big&amp;gt;''' &amp;lt;br/&amp;gt;  &lt;br /&gt;
*The Classic Encoder triggers on physical teeth.  &lt;br /&gt;
*The Flexible Encoder provides for an interplation between teeth.&lt;br /&gt;
&lt;br /&gt;
2.  '''&amp;lt;big&amp;gt;[[Flexible_Encoder#Average_and_Cycle_RPM|RPM Calculations: Average and Cycle RPM]]&amp;lt;/big&amp;gt;'''  &amp;lt;br/&amp;gt;  &lt;br /&gt;
* In Classic Encoder, RPM is defined by the Encoder System's TDC and Missing Teeth contributed to average RPM. &lt;br /&gt;
* In Flexible Encoder, the Application Designer controls separately where average RPM is calculated.  RPM Sample Points is a vector setting in the Source Definition Block. &lt;br /&gt;
*Average Cycle RPM is a also new calculation feature of the Flexible Encoder.&lt;br /&gt;
&lt;br /&gt;
3.  &amp;lt;big&amp;gt;'''How Teeth Are Handled''':&amp;lt;/big&amp;gt;  The flexible and classic encoder systems differ in terms of how they handle missing and extra teeth.&lt;br /&gt;
&lt;br /&gt;
:'''''In Flexible Encoder, All Physical Teeth Matter, and ONLY Physical Teeth Matter.  In Classic Encoder, Missing Teeth Contribute to the System.'''''  &lt;br /&gt;
&lt;br /&gt;
::'''All Teeth Matter''' &amp;lt;br/&amp;gt;&lt;br /&gt;
::In a 4+1 pattern the extra tooth matters for the flexible encoder.  So, the tooth's position needs to be defined precisely. It contributes to instantaneous RPM, and provides a High-Res trigger event.   &lt;br /&gt;
::In classic encoder the extra tooth doesn't matter - it is only used to synchronize.&lt;br /&gt;
::&lt;br /&gt;
::'''No Concept of Psuedo Teeth.''' &amp;lt;br/&amp;gt;&lt;br /&gt;
:::In flexible encoder, you won't get High-Res trigger events from the missing teeth. &lt;br /&gt;
:::The classic encoder would provide a High-Res trigger event on missing teeth.&lt;br /&gt;
&lt;br /&gt;
4.  '''&amp;lt;big&amp;gt;[[Flexible_Encoder#Diagnostics|Additional Diagnostics:]]&amp;lt;/big&amp;gt;'''&amp;lt;br/&amp;gt;  &lt;br /&gt;
* Flexible Encoder allows for additional fault reporting, Synchronization Fault, HalfCycle Fault, Loss Fault, Inversion Fault, Phase Fault, Absent Key Fault, Reverse Rotation, Bad Halfcycle Window.    &lt;br /&gt;
&lt;br /&gt;
5.  '''&amp;lt;big&amp;gt;[[Flexible_Encoder#Source_Switching|Source Switching:]]&amp;lt;/big&amp;gt;'''&amp;lt;br/&amp;gt;  &lt;br /&gt;
* Flexible Encoder allows the system to switch from one Absolute Source to another, should the application determine that it is required.  &lt;br /&gt;
&lt;br /&gt;
6. '''&amp;lt;big&amp;gt;Greater design control of Encoder Pattern:&amp;lt;/big&amp;gt;'''&amp;lt;br/&amp;gt;  &lt;br /&gt;
*Flexible Encoder allows the application designer greater control over the Encoder Pattern.  Such things as number of keys (ex. missing teeth, wide teeth), key strength, teeth to ignore,  key tolerance (to allow a key to be detected while allowing for variation due to acceleration), etc can all be designed to meet individual system requirements.&lt;br /&gt;
&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How is a Flexible Encoder System set-up in MotoHawk?=&lt;br /&gt;
&lt;br /&gt;
There are many considerations in designing a Flexible Encoder System.  We will try to condense the setup here to a few number of steps.  Then see the Flexible Encoder Block Help help for additional details.&lt;br /&gt;
&lt;br /&gt;
1. Develop Your Encoder Source Pattern(s) on an xml file and then use the MotoHawk Flexible Encoder Pattern Definition Block to bring the pattern(s) into your model.  The Flexible Encoder Additional Pattern Path block can be used to specify the path to the xml files, for the model.&lt;br /&gt;
&lt;br /&gt;
2. Use the MotoHawk Flexible Encoder Absolute Source Block to define the Absolute Sources in your System. An Absolute source is a source that can be used to provide absolute crank angle position.  You would have one Absolute Source Definition block for each Absolute source in your system.&lt;br /&gt;
&lt;br /&gt;
3. Define any companion sources (not used to provide absolute crank angle position, ex. camshaft pattern) in the system using the Companion Source Definition Block.&lt;br /&gt;
4. Use the MotoHawk Encoder System Definition Block to group a number of Absolute Sources into a System.&lt;br /&gt;
&lt;br /&gt;
5. Use the Flexible Encoder Average Cycle RPM, Cycle RPM Trigger, MotoHawk Average RPM, or MotoHawk Instantaneous RPM blocks to give these calculated values to the control model.&lt;br /&gt;
&lt;br /&gt;
6. Flexible Encoder Get Last Flexible Encoder Source Error can be used to give error information to the control model.&lt;br /&gt;
&lt;br /&gt;
7.  If you need to design a variable cam system, there is a Phase Reporting dropdown option on the Absolute or Companion Source selection.  Then, the Variable CAM is implemented on Flex Encoder, through the use of the Flexible Encoder Source Phase Trigger and Get Last Source Phase blocks.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Interpolative Triggers=&lt;br /&gt;
&lt;br /&gt;
In classic encoder, the TDC would be reported on the next physical tooth.  Resolution is one tooth.&lt;br /&gt;
Flexible Encoder provides for an interpolation between teeth. &lt;br /&gt;
&lt;br /&gt;
In legacy encoder you need to schedule based on where you see the physical teeth.  This can particularly be a problem if there is a low number of teeth.   But, with flexible encoder the trigger is interpolative.  &lt;br /&gt;
&lt;br /&gt;
On flexible encoder, interpolation resolution is .0625 deg crank angle.&lt;br /&gt;
&lt;br /&gt;
See diagram below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:interpolative_triggers1.jpg|750px]]&lt;br /&gt;
&lt;br /&gt;
=Average and Cycle RPM=&lt;br /&gt;
&lt;br /&gt;
==Average RPM==&lt;br /&gt;
* In Classic Encoder, RPM is defined by the Encoder System's TDC and Missing Teeth contributed to average RPM. &lt;br /&gt;
* In Flexible Encoder, the Application Designer controls separately where average RPM is calculated.  RPM Sample Points is a vector setting in the Source Definition Block.&lt;br /&gt;
&lt;br /&gt;
[[Image:RPM_Sample_Points.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Average Cycle RPM ==&lt;br /&gt;
&lt;br /&gt;
Average Cycle RPM is a new calculation offered with the Flexible Encoder.  It can be acceseed with the MotoHawk Flexible Encoder Average Cycle RPM block, and can be used in conjunction with the Flexible Encoder Cycle RPM Trigger Block to read an updated RPM.&lt;br /&gt;
&lt;br /&gt;
In image below, the average RPM is set up to be TDC based.  &lt;br /&gt;
&lt;br /&gt;
* Each time encoder sees the next period defined for Average RPM (dark blue, aqua blue, .. green), a new period sum is calculated.    When the blue one comes in, fill in the blue.  When blue comes in again, blue gets filled in again.&lt;br /&gt;
&lt;br /&gt;
* The Period Sums are added to give Average Cycle RPM.&lt;br /&gt;
&lt;br /&gt;
* A Cycle RPM Trigger executes on each data element&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''If Cycle RPM is Invalid the Average RPM is Reported  (zero speed, some encoder errors such as sync)''&lt;br /&gt;
&lt;br /&gt;
It is a FIFO based RPM&lt;br /&gt;
&lt;br /&gt;
[[image:cycle_rpm.jpg|500px]]&lt;br /&gt;
&lt;br /&gt;
'''How do encoder faults impact Cycle RPM?'''&lt;br /&gt;
&lt;br /&gt;
It depends on the fault.  For a syncronization fault, the Cycle RPM is invalid and the Average RPM will be reported.  Other faults, such as Absent Key Fault that do not invalidate position determination would not cause the Cycle RPM to be invalid.&lt;br /&gt;
&lt;br /&gt;
'''Does Pseudo Encoder support RPM Triggers?'''  No&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Absolute and Companion Sources=&lt;br /&gt;
&lt;br /&gt;
Absolute Source:  An encoder source that may be used by the encoder system to provide crank angle position of the wheel.&lt;br /&gt;
&lt;br /&gt;
Companion Source:   An encoder source that it is not used to provide absolute crank angle position. Companion sources are used to help synchronize an absolute source (e.g. tooth synchronizer pattern) and/or provide halfcycle information (e.g. camshaft pattern). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Absolute Source ==&lt;br /&gt;
&lt;br /&gt;
An Absolute Source is defined in the Flexible Encoder Absolute Source block.  An Absolute Source refers to an encoder source that may be used by the encoder system to provide crank synchronous behaviors (like injection) with a high resolution tooth interpolated absolute crank angle position. The actual resolution of the interpolation is dependent upon the number of teeth of the wheel, but in general it will be 0.0625 degrees crank angle.&lt;br /&gt;
&lt;br /&gt;
[[image:FlexibleEncoderAbsoluteSource.jpg]]&lt;br /&gt;
&lt;br /&gt;
There are many parameters to set in the Absolute Source Definition Block, so see the Block Help for complete list.  Here are a few that may be initially confusing -&lt;br /&gt;
&lt;br /&gt;
=== Loss Companion ===&lt;br /&gt;
This is the name of the Encoder Source that this source uses to detect loss.  This can be another Absolute or Companion Source.  Loss is flagged if this source detects a certain number of teeth (set in Teeth Before Loss) on another source.&lt;br /&gt;
&lt;br /&gt;
===Synchronization Companions===&lt;br /&gt;
&lt;br /&gt;
====What is a Synchronization Companion?====&lt;br /&gt;
Some sources (semi-unique) such as a 36 tooth wheel with 36 equally spaced teeth require a second source to determine absolute crank angle position.    A Unique Pattern (ex. 60-2) does not require a Sync Companion, because the position of the wheel can be absolutely determined when the unique key is seen.&lt;br /&gt;
&lt;br /&gt;
A synchronization companion is a companion source that issues a synchronization event to another source when it observes its key. The receiving source uses this key to transform the next [FlexibleEncoderPatternDefinition.html#type_standardsemiunique semi-unique] key that it observes into a unique key. Absolute position can be inferred once the key has been transformed into a unique key. &lt;br /&gt;
&lt;br /&gt;
Some sources may be a Sync Companion, and also give half cycle information - for example a crank wheel with 36 equally spaced teeth and a single tooth cam wheel.  In this case, the single tooth cam wheel is specifying which of the 36 crank teeth is being seen, and also what half cycle the system is in.  In such a case, the Half Cycle Companion should not be configured for use, as it inherently provides the half cycle information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For Example: Consider the 3x12M2 pattern in the figure below.   Three instances of a missing tooth key are annotated.   Each of these instances are the same, which is why the key is said to be semi-unique, and why absolute position of the wheel can't be inferred without a companion.     The single key of the 4+1 synchronization companion signals the 3x12M2 source when the key is observed, then the next observed semi-unique key to be marked as unique.   A pattern that is to be used for synchronization should have '''only one''' standardunique unique key defined so that the system can easily identify what key provides the synchronization event.&lt;br /&gt;
&lt;br /&gt;
[[Image:FlexiEnc_SyncCompanion_3x12M2.png]]&lt;br /&gt;
&lt;br /&gt;
====Synchronization Window Configuration====&lt;br /&gt;
&lt;br /&gt;
The Synchronizaton Window allows ratification of the synchronizing event. The maximum synchronization window annotation describes the worst case window where a synchronization event could occur for this 3x12M2 pattern. The window is measured back from the missing tooth key and has units of teeth. For the 3x12M2 wheel the maximum synchronization window value is 10. No more than 9 teeth should ever be observed between observing the synchronization event and observing the semi-unique key. However, this particular setup happens to have the key event on the synchronizing source (4+1) occurring within the missing tooth region and so the window could be reduced to 0 for this example. Events that fall outside the specified window are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====TDC Synchronization====&lt;br /&gt;
&lt;br /&gt;
The absolute source encoder pattern for some encoder systems has semi-unique keys that represent engine TDCs.   A 4 tooth encoder (4X) used in a 4-stroke application has one tooth per TDC when in use with an 8 cylinder application. Each tooth is a semi-unique key on such an encoder.    Without a synchronization companion the absolute source could guess what key represents TDC#1 since each key is known to be a TDC.  The system may just assume that the next observed key represents TDC#1 and force synchronization.  The ignition and fuelling system must be capable of allowing the synchronization to be guessed like this and the absolute source must have the same number of keys as there are TDCs else the guess could be wildly incorrect.   That is it the engine system must support distributed ignition (or not control ignition), banked fueling (or not control fueling) and have the same number of TDCs as there are semi-unique keys before this approach could be used.   The TDCSync tick box enables this option.   If the synchronization companion were to be diagnosed as having failed (typically a loss fault), then synchronization would be forced to occur on the first key observed after the failure had been flagged when this attribute is TRUE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Half Cycle Companion ===&lt;br /&gt;
&lt;br /&gt;
A Half Cycle Companion is a Companion Source that tells the Encoder System which half cycle the system is in.  An example would be a 60-2 crank wheel with Half Cycle Companion being a 4+1 wheel on the cam.&lt;br /&gt;
&lt;br /&gt;
==== Half Cycle Source Attributes ====&lt;br /&gt;
&lt;br /&gt;
Half Cycle Source Attributes&lt;br /&gt;
Some encoder sources can be used to provide halfcycle information. Such sources are located on a camshaft and are used to identify which halfcycle a particular engine revolution is associated to (the crank shaft rotates twice as fast as the camshaft). Therefore, from the perspective of an encoder pattern, any pattern could technically be utilized as a halfcycle source. In reality only certain patterns are capable of operating as a halfcycle source, but, so as to avoid having to distingish them, all patterns definitions are assumed to be capable and therefore they all shall support the following attributes:&lt;br /&gt;
&lt;br /&gt;
•[http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/motohawk_flexenc_lib_Blocks/FlexibleEncoderPatternDefinition.html#XML_HalfCycleEncoding HalfCycleEncoding] &lt;br /&gt;
&lt;br /&gt;
•[http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/motohawk_flexenc_lib_Blocks/FlexibleEncoderPatternDefinition.html#XML_ClrHalfCycleTooth ClrHalfCycleTooth]&lt;br /&gt;
 &lt;br /&gt;
•[http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/motohawk_flexenc_lib_Blocks/FlexibleEncoderPatternDefinition.html#XML_SetHalfCycleTooth SetHalfCycleTooth ]&lt;br /&gt;
&lt;br /&gt;
==== HalfCycle Encoding ====&lt;br /&gt;
This attribute specifies how half cycle is encoded. There are three possible schemas, key state, pin state and windowed.   &lt;br /&gt;
&lt;br /&gt;
Technically any pattern can be used as a halfcycle companion and thus needs to know its half cycle encoding scheme.  Therefore, these attributes must be configured for every source.  The attribute is only used when the pattern is used as a half cycle companion.   For example, in a system with 60M2 crank and 4P1 cam, both would use state encoding.&lt;br /&gt;
[[Image:HalfCycleEncoding.PNG]]&lt;br /&gt;
&lt;br /&gt;
=====Halfcycle Window Configuration=====&lt;br /&gt;
&lt;br /&gt;
All sources that utilize a halfcycle companion will need to configure the halfcycle [#halfcyclewindowteeth window]. Incorrect configuration can lead to rogue halfcycle faults.&lt;br /&gt;
&lt;br /&gt;
======Halfcycle Window Configuration for HalfCycleEncoding=window======&lt;br /&gt;
&lt;br /&gt;
[[Image:FlexiEnc_ToothCamWheel.png]]&lt;br /&gt;
&lt;br /&gt;
The example above has an arbitrary crank key defined that identifies tooth #1 on the crank wheel. The cam tooth is an edge key (every observed tooth of an edge key is considered to be a key) and as such needs to be looked for in a window. The pattern's HalfcycleEncoding would have been configured for ''window''. The halfcycle window occurs between crank tooth #13 and crank tooth#1. If at least 5 crank teeth have been observed prior to observing the crank key then the encoder source can infer that the cam tooth would have occurred if it was going to occur. Note that the crankshaft revolves twice for one camshaft revolution and so every second key will occur without the cam tooth occurring. The encoder source thus infers the halfcycle by looking for the presence or absence of the cam tooth within this window. Configure the window to be too small and the encoder will look in the wrong region and incorrectly assume the halfcycle state that is applicable when the cam tooth is not observed. Configure the window too large and the encoder startup performance is compromised because all the window teeth need to be observed before halfcycle determination can occur.&lt;br /&gt;
&lt;br /&gt;
An encoder that needs to use a companion that is employing HalfcycleEncoding=window should only have a single unique key defined. To define more will confuse the implementation because it does not associate the window to a specific key.&lt;br /&gt;
&lt;br /&gt;
======Halfcycle Window Configuration for HalfCycleEncoding=state======&lt;br /&gt;
&lt;br /&gt;
The halfcycle [#halfcyclewindowteeth window] is still important for start-up performance. Here the window defines how many source teeth on the crank (normally) need to be observed before the source can assume that the halfcycle companion will have synchronized. The window is always measured relative to the worst case key location. The figure [FlexibleEncoderPatternDefinition.html#FlexiEnc_XML_HalfCycleEncoding here] illustrates.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Companion Sources ==&lt;br /&gt;
&lt;br /&gt;
Companion Source is also an encoder source except that it is not used to provide absolute crank angle position. Companion sources are used to help synchronize an absolute source (e.g. tooth synchronizer pattern) and/or provide halfcycle information (e.g. camshaft pattern). There is often fewer resources required by a companion only source compared to the resources needed by an Absolute Source and so more module resources can usually support such inputs.&lt;br /&gt;
&lt;br /&gt;
A Companion Source is Defined by the MotoHawk Flexible Encoder Companion Source Definition Block.&lt;br /&gt;
&lt;br /&gt;
[[image:FlexibleEncoderCompanionSource.PNG]]&lt;br /&gt;
&lt;br /&gt;
====Loss Companion====&lt;br /&gt;
A Companion Source will always have a loss companion, because a companion source will never exist in design without at least one absolute source.  Loss is flagged if this source detects a certain number of teeth on the referenced source.&lt;br /&gt;
&lt;br /&gt;
===Key Event Aligns With Companion Source===&lt;br /&gt;
&lt;br /&gt;
The Key Event Aligns with Companion Source tick box is used to signal that a key event occurs in the vicinity of a companion key event. This is most commonly used by a tooth cam or synchronizing source that has an edge that occurs in the vicinity of a crank tooth. When the key event occurs near a tooth there is a risk that system variations will see the key event from the source associated with different teeth on the crank. This will lead to unexpected operation.&lt;br /&gt;
&lt;br /&gt;
Consider a 36 tooth crank shaft encoder that uses a single tooth companion to provide synchronization. If the synchronization tooth occurs in the vicinity of a crank tooth then there is a chance that the synchronizer tooth may occur before or after that crank tooth. This would mean that the key event will be associated with different crank teeth, yet the intention would be to want to always associate this tooth with the same crank tooth. In this situation the [#keyeventalignswithcompanionsource Key Event Aligns with Source] would be set to true. If it occurred more toward the middle of the crank teeth then it would be set to false.&lt;br /&gt;
&lt;br /&gt;
[[Image:FlexiEnc_KeyEventAlignsWithCompanionSource.png]]&lt;br /&gt;
&lt;br /&gt;
Whilst a tooth companion was used as an example, this attribute could also be used for a 6+1 companion that was providing a synchronizing event to a crank encoder that had 36 equidistant teeth.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phase Error Examples===&lt;br /&gt;
&lt;br /&gt;
[[Image:FlexiEnc_PhaseError.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Source Switching=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;In Flexible Encoder the Application can switch from one source to another and that switching is handled automatically.&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;The classic encoder does not allow for source switching&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if the application detects that the crank signal is broken, the application can switch to the cam encoder or another source.  Both sources are defined as absolute sources, and the system is set up to define 'loss companion'. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Switching the Active Source is a Decision of the Application Designer'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The overall System is Defined in the '''Flexible Encoder System Definition Block''', shown below.&lt;br /&gt;
All system sources are listed in this block and &lt;br /&gt;
&lt;br /&gt;
'''Pseudo Encoder is just a different source''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:System_Definition.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Source'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsigned integer signal input port defines what source the model wants to be the active source. The value will correspond to the Crank Position Source instance or be zero if the pseudo encoder is to be requested.&lt;br /&gt;
&lt;br /&gt;
In the System Definition block above, if you put a '1' in the Source input port, you would use Source 1: CnkEncoder.  You could define source 2, source 3 etc.  If you put a '5' into Source input port and there wasn't a Source 5, you would get an error from the Active Source output of the block.&lt;br /&gt;
 &lt;br /&gt;
The Enable input to the Pseudo Encoder shown below is ignored, pseudo encoder must be defined as any other source in the system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:pseudo_enable.jpg|height|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Active Source'''&amp;lt;/big&amp;gt;&lt;br /&gt;
This signed integer outport signal defines what source is currently considered to be the active source. The value will correspond to the Crank Position Source instance that is considered to be the active source, or to zero when the pseudo encoder is in use, or a negative number of no source is active. An encoder system without an active source can't detect crank angle position and thus prevents the support of crank synchronous behaviors.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====When to Switch====&lt;br /&gt;
&lt;br /&gt;
The encoder system will likely want to switch encoder sources when it supports redundancy and the active source is issuing faults. While the application model ultimately controls what [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/motohawk_flexenc_lib_Blocks/FlexibleEncoderSystem.html#TDCAngles Absolute Source] the encoder system will use for its crank synchronous behaviors, when to switch should be considered based upon the desired performance. &lt;br /&gt;
&lt;br /&gt;
For example, observing a [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/motohawk_flexenc_lib_Blocks/GetLastFlexibleEncoderSourceError.html#lossfault Loss Fault] will nearly always result in switching to an alternate source. A [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/motohawk_flexenc_lib_Blocks/GetLastFlexibleEncoderSourceError.html#syncfault Synchronization Fault] may also constitute a need to switch because the signal should never result in synchronization faults if it is operating correctly. However a [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/motohawk_flexenc_lib_Blocks/GetLastFlexibleEncoderSourceError.html#halfcyclefault Halfcycle Fault] or an [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/motohawk_flexenc_lib_Blocks/GetLastFlexibleEncoderSourceError.html#inversionfault Inversion Fault] may not force a switch. A Halfcycle Fault can result because of setup problems and/or because of problems with the companion sensor. The inversion fault implies a setup problem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Consequences of Switching====&lt;br /&gt;
&lt;br /&gt;
The encoder system aims to make a switch between encoder sources as seemless as possible, but it is not instantaneous.&lt;br /&gt;
&lt;br /&gt;
A switch will result in all crank synchronous pulses (like injection and ignition) terminating before the switch is made. The effective encoder relative timings will need to change when the source is switched and consequently the existing timings can't be trusted. Therefore the pulses must be turned off. Furthermore the internal tracking system must achieve a lock with the new encoder source. A lock can only be achieved after two teeth have been observed by the new ''active'' encoder source. Consequently there will be a delay between applying the switch and that new source allowing crank synchronous pulse generation to occur.&lt;br /&gt;
&lt;br /&gt;
[[Image:FlexiEnc_FailOverSwitch.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Time Delay Before Attempting Sync===&lt;br /&gt;
&lt;br /&gt;
[[Image:FlexiEnc_TimeDelayForFirstSync.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Some Source Switching Considerations====&lt;br /&gt;
&lt;br /&gt;
Does the application allow failover switching while running?&lt;br /&gt;
&lt;br /&gt;
Does it allow failover switch only as a pre-curser to cranking?&lt;br /&gt;
&lt;br /&gt;
How does the application handle an 'absent key' fault?&lt;br /&gt;
&lt;br /&gt;
How are sensor faults on the active source used to drive source switching?&lt;br /&gt;
&lt;br /&gt;
Loss Fault on the active absolute source would cause a switch.&lt;br /&gt;
&lt;br /&gt;
Repeated 'synchronization' type faults ''could'' cause a switch&lt;br /&gt;
::''Application must decide... how many faults?  what type of faults?''&lt;br /&gt;
&lt;br /&gt;
There should be no faults on the source that is switched to.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Diagnostics =&lt;br /&gt;
&lt;br /&gt;
Fault Data for the Flexible Encoder is reported to the Application using the Get Last Flexible Encoder Source Error block.  &lt;br /&gt;
&lt;br /&gt;
[[Image:GetLastFlexibleEncoderSourceError.PNG]]&lt;br /&gt;
&lt;br /&gt;
The user references the block to either an Absolute or a Companion Source, and the fault value for that source is given on the Error Outport.   &lt;br /&gt;
&lt;br /&gt;
== Available Faults ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Synchronization Fault (value=1)===&lt;br /&gt;
&lt;br /&gt;
A source suffers a synchronization fault when the ''tracked'' position does not match the ''calculated'' position. ''Tracked'' position is updated each time a source tooth is observed. ''Calculated'' position is updated each time a [FlexibleEncoderPatternDefinition.html#type_standardunique standard unique] key is observed. It is checked once updated and this fault is issued when the two don't match and the source has previously achieved synchronization. The tracked position is not valid until the first ''calculated'' position has been observed and so synchronization faults are not possible until this first key match has occurred. This is important to note because the system may never achieve an initial synchronization if the key setup is wrong.&lt;br /&gt;
&lt;br /&gt;
===Halfcycle Fault (value=7)===&lt;br /&gt;
&lt;br /&gt;
A halfcycle fault is observed when the ''tracked'' position does not match the ''calculated'' position, but a [#syncfault Synchronization Fault] has not been observed. It implies that the system has a problem with the halfcycle determination, which could be due to companion sensor setup.&lt;br /&gt;
&lt;br /&gt;
===Loss Fault (value=2)===&lt;br /&gt;
&lt;br /&gt;
A loss fault occurs when sufficient teeth have been observed on a companion sensor without having observed any teeth on the sensor under test. See [FlexibleEncoderCompanionSource.html#teethbeforeloss Teeth Before Loss] configuration. A loss fault can only be detected when a companion sensor exists because the system requires an alternate source of rotation detection to detect sensor loss.&lt;br /&gt;
&lt;br /&gt;
===Inversion Fault (value=3)===&lt;br /&gt;
&lt;br /&gt;
An inversion fault requires a specialized [FlexibleEncoderPatternDefinition.html#type_signalinverted inverted] key to be specified. It is used to attempt to detect an inverted signal connection.&lt;br /&gt;
&lt;br /&gt;
[[Image:FlexiEnc_SignalInversion.png]]&lt;br /&gt;
&lt;br /&gt;
===Phase Fault (value=4)===&lt;br /&gt;
&lt;br /&gt;
Issued when one source is not within the specified phase of another. A source is said to have suffered a phase error if its zero tooth (as defined by the [FlexibleEncoderPatternDefinition.html#XML_PhysicalTeeth Pattern Definition Physical Teeth] entry of this source's referenced pattern) falls outside the window defined by [FlexibleEncoderCompanionSource.html#startphasewindow Start Phase Window] and [FlexibleEncoderCompanionSource.html#endphasewindow End Phase Window]. See [FlexibleEncoderCompanionSource.html#FlexiEnc_PhaseError example figures] that illustrate this error.&lt;br /&gt;
&lt;br /&gt;
===Absent Key (value=5)===&lt;br /&gt;
&lt;br /&gt;
An absent key fault or missed key fault results when an expected key is not observed. An absent key is detected by noting how many encoder source teeth have been observed since the last standard key was observed. Configured by the [FlexibleEncoderPatternDefinition.html#XML_TeethBeforeAbsentKeyFault pattern] in use by the named source.&lt;br /&gt;
&lt;br /&gt;
===Reverse Rotation (value=6)===&lt;br /&gt;
&lt;br /&gt;
Reserved for future support.&lt;br /&gt;
&lt;br /&gt;
===Bad Halfcycle Window (value=8)===&lt;br /&gt;
&lt;br /&gt;
This errror is only observed when halfcycle [FlexibleEncoderPatternDefinition.html#XML_HalfCycleEncoding window] encoding is in use. Consecutive occurrences of this error suggests that the halfcycle window has not been correctly configured. It occurs when halfcycle events are being observed, yet none of these events are being observed within the window. Consider a tooth cam in a crank/cam system. This error would be flagged if, say, the tooth cam event was occurring 10 teeth before the crank's key, yet the window was only set to 8.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How is a Flexible Encoder System set-up in MotoHawk?=&lt;br /&gt;
&lt;br /&gt;
There are many considerations in designing a Flexible Encoder System.  We will try to condense the setup here to a few number of steps.  Then see the Flexible Encoder Block Help help for additional details.&lt;br /&gt;
&lt;br /&gt;
1. Develop Your Encoder Source Pattern(s) on an xml file and then use the MotoHawk Flexible Encoder Pattern Definition Block to bring the pattern(s) into your model.  The Flexible Encoder Additional Pattern Path block can be used to specify the path to the xml files, for the model.&lt;br /&gt;
&lt;br /&gt;
2. Use the MotoHawk Flexible Encoder Absolute Source Block to define the Absolute Sources in your System. An Absolute source is a source that can be used to provide absolute crank angle position.  You would have one Absolute Source Definition block for each Absolute source in your system.&lt;br /&gt;
&lt;br /&gt;
3. Define any companion sources (not used to provide absolute crank angle position, ex. camshaft pattern) in the system using the Companion Source Definition Block.&lt;br /&gt;
4. Use the MotoHawk Encoder System Definition Block to group a number of Absolute Sources into a System.&lt;br /&gt;
&lt;br /&gt;
5. Use the Flexible Encoder Average Cycle RPM, Cycle RPM Trigger, MotoHawk Average RPM, or MotoHawk Instantaneous RPM blocks to give these calculated values to the control model.&lt;br /&gt;
&lt;br /&gt;
6. Flexible Encoder Get Last Flexible Encoder Source Error can be used to give error information to the control model.&lt;br /&gt;
&lt;br /&gt;
7.  If you need to design a variable cam system, there is a Phase Reporting dropdown option on the Absolute or Companion Source selection.  Then, the Variable CAM is implemented on Flex Encoder, through the use of the Flexible Encoder Source Phase Trigger and Get Last Source Phase blocks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Pattern Construction =&lt;br /&gt;
&lt;br /&gt;
The Flexible Encoder allows an XML encoder pattern definition to be included in a model. This gives the application the flexibility to tailor the definition to take into account various nuances of the pattern's operation, including the strength of the pattern matching used to synchronize that pattern. This block is used to reference an XML definition within the model. Use the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/motohawk_flexenc_lib_Blocks/FlexibleEncoderAdditonalPatternPath.html Encoder Pattern Path] Block to specify the location of custom pattern definitions.&lt;br /&gt;
&lt;br /&gt;
[[Image:FlexibleEncoderPatternDefinition.PNG]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
A Flexible Encoder XML encoder pattern definition must contains the following nodes within an &amp;lt; Encoder &amp;gt; node (unless the node is marked as optional):&lt;br /&gt;
&lt;br /&gt;
* Name - Optional&lt;br /&gt;
* DescriptiveName&lt;br /&gt;
* PhysicalTeeth&lt;br /&gt;
* Keys&lt;br /&gt;
* TeethBeforeAbsentKeyFault&lt;br /&gt;
* DefaultKeyTolerance&lt;br /&gt;
* ClrHalfCycleTooth&lt;br /&gt;
* SetHalfCycleTooth&lt;br /&gt;
* HalfCycleEncoding&lt;br /&gt;
* EquidistantToothDisplacement_deg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Name ===&lt;br /&gt;
&lt;br /&gt;
Name is typically matched to the file name and is optional.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Descriptive Name===&lt;br /&gt;
&lt;br /&gt;
The first step is to give the pattern a descriptive name.  The DescriptiveName identifies this encoder pattern definition to MotoHawk. This name should be unique for all the encoder patterns supported by a model.  You can name the pattern whatever you want, but the way MotoHawk associates the pattern is the Descriptive Name.  In the below example, this is '''custom18M1'''.   &lt;br /&gt;
&lt;br /&gt;
::''Hint:  Put 'custom' in front of the pattern, so you won't have a name clash with any patterns predefined in MotoHawk.''[[image:PatternName.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Physical Teeth ===&lt;br /&gt;
&lt;br /&gt;
Define the Physical Teeth for your pattern. PhysicalTeeth houses the definition of the encoder pattern's tooth arrangement. Each tooth should have a Name and a LogicalDeg node. Optional attributes include StartDeg and EndDeg.  &lt;br /&gt;
::'''Start at 0.  You must define tooth 0, and you must start at tooth zero.''' &lt;br /&gt;
&lt;br /&gt;
::'''Define each tooth''',  relative to tooth zero.&lt;br /&gt;
&lt;br /&gt;
::'''Don't Include Missing Teeth.'''&lt;br /&gt;
&lt;br /&gt;
::'''Start where most equidistant teeth are for best compression'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Name====&lt;br /&gt;
&lt;br /&gt;
Name is the tooth name and by convention is a number that starts at zero and increments with each definition.&lt;br /&gt;
&lt;br /&gt;
====LogicalDeg====&lt;br /&gt;
&lt;br /&gt;
LogicalDeg defines the angle about the wheel relative to tooth zero (which is zero degrees) that the synchronous edge of the pulse train that would result when that tooth was observed. The synchronous edge is set by the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/motohawk_flexenc_lib_Blocks/FlexibleEncoderAbsoluteSource.html#syncpolarity Sync Polarity] a source block and should correspond. Convention dictates that tooth zero should be selected to be the start of a series of similar tooth definitions. In the following example, where an 18 minus 1 pattern is defined, tooth zero is identified as the first tooth after the missing tooth. This ensures that all of the teeth have the same spacing from one another, which helps optimize internal performance.&lt;br /&gt;
&lt;br /&gt;
[[Image:FlexiEnc_ToothCamWheel.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
What follows is a partial definition of the 18 minus 1 crank encoder source depicted in the diagram. Note that the diagram has been drawn in the cam angle domain so that it can be used to explain the relationship between a cam encoder source and a crank encoder source (which rotates twice for a single rotation of the cam). The 18 minus 1 crank encoder pattern does not have two missing teeth. It has just be drawn twice to account for the two rotations that the crank source will undergo for a single revolution of the cam source.&lt;br /&gt;
&lt;br /&gt;
[[image:PatternTeeth.jpg]]&lt;br /&gt;
&lt;br /&gt;
====StartDeg and EndDeg====&lt;br /&gt;
&lt;br /&gt;
StartDeg are EndDeg optional nodes that have no bearing on the definition. These could be used to encode information that would allow the wheel to be drawn by a graphical tool. Only LogicalDeg is important as it is this angle that the encoder definition will associate the tooth to.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Equidistant Tooth Displacement Degrees====&lt;br /&gt;
&lt;br /&gt;
This attribute identifies what the approximate equidistant tooth displacement of the encoder pattern being defined. The 18 minus 1 encoder wheel has an EquidistantToothDisplacement_deg of 20 degrees. This attribute is used to assist pulse scheduling engine when this encoder pattern is in use. Some encoder patterns, like a tooth cam, are not used for pulse scheduling. A pattern like a tooth cam is a companion pattern that may only be used to provide half cycle information. However it still constitutes a pattern and as such this node should still exist, it would just have a value of of 360.   It can be approximate.  Round up.   For 60-tooth wheel, the value is shown below as 6.&lt;br /&gt;
&lt;br /&gt;
[[image:EquidistantToothDispl_A.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Key Construction ==&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;'''Keys Describe how to synchronize a pattern and are identified by the application developer.''' &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A key is a pattern that is used by the flexible encoder system to facilitate pattern synchronization. Pattern synchronization needs to occur before the encoder system can associate each observed tooth to a specific angle on the encoder wheel. The flexible encoder observes the input signal(s) and searches that signal for a key(s). There can sometimes be more than one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Keys are Constructed from RATIOS.'''&lt;br /&gt;
* A ratio is used in the construction of a KeyValue&lt;br /&gt;
* A sequence of Ratios forms a detectable pattern&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A Key is constructed from a sequence of Ratio values. A ratio of tooth displacements is invariant for constant speed of rotation, regardless of the speed of rotation, and thus allow variations in tooth to tooth displacement to be identified. &lt;br /&gt;
&lt;br /&gt;
Consider a tooth that is removed from a wheel of equidistant teeth (commonly referred to as a missing tooth pattern) as shown on the 8 minus 1 wheel below. The missing tooth provides a synchronization marker because it uniquely identifies a point on the wheel.  Tooth Period  is shown as Tw, Tx, Ty, and Tz below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following patterns can be seen:&lt;br /&gt;
&lt;br /&gt;
[[Image:FlexiEnc_KeyBasics.png]]&lt;br /&gt;
&lt;br /&gt;
The ratio of angle displacements just before and after the missing tooth will be 1.0, 2.0 and 0.5.&lt;br /&gt;
* Neighboring teeth are separated by the same displacement and so will have a ratio of 1.0. &lt;br /&gt;
* The ratio between the missing tooth region and the previous equidistant tooth will be 2.0, &lt;br /&gt;
* The first tooth after the missing will have a ratio of 0.5 (because the displacement of this tooth when compared to the previous tooth is half). &lt;br /&gt;
&lt;br /&gt;
The encoder system can calculate displacement ratio by measuring the time taken to traverse the teeth. The time taken to traverse a displacement is proprotional to displacement for constant speed of rotation so tooth displacement ratios can be inferred by taking the ratio of neigbouring tooth periods (the time observed between teeth). Thus the encoder system could search for a ratio of 2.0 and know that the tooth after the missing tooth had just occurred. Alternatively it could search for 1.0 followed by 2.0 as this is also unique.  It could search as well for a 1, followed by a 2, followed by a 0.5.   &lt;br /&gt;
&lt;br /&gt;
DefaultKeyTolerance allows constant speed of rotation to be assumed by installing a window of acceptable ratio values, to provide tolerance for acceleration.&lt;br /&gt;
&lt;br /&gt;
Combining ratios can increase the strength of the key.  &lt;br /&gt;
 &lt;br /&gt;
NNote that whilst the key &amp;quot;2.0&amp;quot; or the key &amp;quot;1.0, 2.0&amp;quot; are both unique, a system could not define both of these keys because a unique key shall not contain the entirety of another key. It would also serve no purpose to detect both keys.&lt;br /&gt;
&lt;br /&gt;
A pattern may support more than one Key and there are also different types of keys.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Key===&lt;br /&gt;
&lt;br /&gt;
A key is constructed from a sequence of &amp;lt;u&amp;gt;KeyValue&amp;lt;/u&amp;gt; that are housed within a &amp;lt;u&amp;gt;KeyValues&amp;lt;/u&amp;gt; node. Each &amp;lt;u&amp;gt;KeyValue&amp;lt;/u&amp;gt; has a Tooth and a Ratio node.&lt;br /&gt;
&lt;br /&gt;
The most common key type are those that are used by the encoder system to calculate the position on the wheel. In other words, the encoder is able to determine the position of the last observed tooth about the wheel when an entire key match has occurred.&lt;br /&gt;
&lt;br /&gt;
''ToothPosition'' is used to define the tooth position a particular key will detect. The diagram below illustrates a 3 tooth key. &lt;br /&gt;
':Note that ''ToothPosition'' has the value of 1, which corresponds to the last Tooth in the key. So this key detects tooth position 1. The encoder system knows that it has just observed tooth #1 whenever it observes this key on this encoder source. &lt;br /&gt;
&lt;br /&gt;
:It knows this because the type is ''standard unique''. Standard keys provide positional information. A standard key that is unique means that this key definition only exists once within the pattern. The construction of this key and the use of ratio is further detailed under the section titled 'ratio'.  ''ToothPosition'' is optional/meaningless if the ''type'' is not a standard key.&lt;br /&gt;
&lt;br /&gt;
[[Image:FlexiEnc_XML_Keys_18M1.png]]&lt;br /&gt;
&lt;br /&gt;
=== Types of Keys ===&lt;br /&gt;
{| class=&amp;quot;TableMHStyle&amp;quot;&lt;br /&gt;
! class=&amp;quot;TableHeaderTDStyle&amp;quot; style=&amp;quot;width: 100px&amp;quot; | type=&lt;br /&gt;
! class=&amp;quot;TableHeaderTDStyle&amp;quot; style=&amp;quot;width: 399px&amp;quot; | Definition&lt;br /&gt;
|- id=&amp;quot;type_standardunique&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 100px&amp;quot; valign=&amp;quot;top&amp;quot; | standard unique&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 399px&amp;quot; valign=&amp;quot;top&amp;quot; | Standard keys provide positional information. A ''standard unique'' key shall only exist once within the pattern and thus will convey absolute position if that key is ever observed.&lt;br /&gt;
|- id=&amp;quot;type_standardsemiunique&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 100px&amp;quot; valign=&amp;quot;top&amp;quot; | standard semi unique&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 399px&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
A ''standard semi unique'' key provides positional information, but is not unique. The 3x20M2 pattern contains a semi-unique key. A semi-unique key requires a synchronizing source to exist that will provide an event that can uniquely identify one of the semi-unique keys. See [FlexibleEncoderAbsoluteSource.html#synccompaniondetail here] for an example. A ''standard semi unique'' key implies that there are multiple keys that are the same (there are 3 instances of the semi-unque key in the 3x20M2 example). However only one instance of the key would be defined and it's ''ToothPosition'' would be configured for the semi-unique key instance that will be marked as unique by a companion synchronizing source.&lt;br /&gt;
|- id=&amp;quot;type_signalinverted&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 100px&amp;quot; valign=&amp;quot;top&amp;quot; | signal inverted&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 399px&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
A ''signal inverted'' key does not provides positional information. Instead it is looking for a pattern that may occur if the sensor of the encoder source is not connected correctly. It would be used as a diagnostic. See [GetLastFlexibleEncoderSourceError.html#FlexiEnc_SignalInversion here]&lt;br /&gt;
|- id=&amp;quot;type_companionsupport&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 100px&amp;quot; valign=&amp;quot;top&amp;quot; | companion support&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 399px&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
A ''companion support'' key does not provides positional information. Instead it is used to convey an occurrence event that another source is looking for. A single tooth synchronizer pattern would utilize a ''companion support'' key to signal a source with semi unique keys when it occurred so that one of those semi-unique keys could be marked as unique (because it is the first to occur after the companion support key).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Standard Unique Keys====&lt;br /&gt;
&lt;br /&gt;
'''Standard''':  Provide Sync &amp;lt;br/&amp;gt;&lt;br /&gt;
'''Unique''' - Stands Alone &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 18M1, 60M2, 36P1 would all be examples of Standard Unique Keys.&lt;br /&gt;
&lt;br /&gt;
Standard Unique is something you would use for something like 18M1, 60M2,4P1.&lt;br /&gt;
&lt;br /&gt;
[[image:KeyType.jpg‎]]&lt;br /&gt;
&lt;br /&gt;
==== Standard Semi-Unique Keys ====&lt;br /&gt;
&lt;br /&gt;
Standard:  Provide Sync&lt;br /&gt;
Semi-Unique - more than one &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
There are three sets of missing teeth pairs.  There is a key at missing tooth regions, but if encoder detects the key it doesn't know where it is.  &lt;br /&gt;
&lt;br /&gt;
SEMI-Unique:  The same key but more than one.  &lt;br /&gt;
&lt;br /&gt;
[[image:SemiUnique1.jpg]]&lt;br /&gt;
[[image:SemiUnique2.jpg|height|500px]]&amp;lt;br\&amp;gt;&lt;br /&gt;
You could also throw the other keys out when you are defining the pattern based on physical teeth, and then only use one key.&lt;br /&gt;
&lt;br /&gt;
'''Edge Key'''&lt;br /&gt;
A &amp;lt;u&amp;gt;Key&amp;lt;/u&amp;gt; that has no values is referred to as an edge key. Every observed tooth of an edge key is considered to be a key.  A tooth cam like the example CamTooth below or a 36 equidistant tooth wheel would utilize such keys.&lt;br /&gt;
&lt;br /&gt;
==== Companion Support ====&lt;br /&gt;
A tooth cam like the example CamTooth below is an example of an edge key, that is being used as as a companion support key.   &lt;br /&gt;
&lt;br /&gt;
[[image:FlexiEnc_XML_CamTooth.png]]&lt;br /&gt;
&lt;br /&gt;
If the pattern was 36 equidistant teeth, it would be providing positional information so would be standard-semi unique, rather than companion support as shown in xml file above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Tooth=====&lt;br /&gt;
&lt;br /&gt;
This is a convenient marker to associate a key value entry to a PhysicalTeeth Name entry. The circled values in the diagram below illustrates the relationship between a physical tooth and the key value.&lt;br /&gt;
&lt;br /&gt;
[[Image:FlexiEnc_XML_Keys_18M1.png]]&lt;br /&gt;
&lt;br /&gt;
This is the Sync Point:&lt;br /&gt;
&lt;br /&gt;
[[Image:SyncPoint.jpg]]&lt;br /&gt;
&lt;br /&gt;
=====Ratio=====&lt;br /&gt;
&lt;br /&gt;
Ratio defines the expected matching relationship at this tooth. The relationship always relates to measurements that occur prior to observing the synchronous edge of the signal (which corresponds to a LogicalDeg entry).&lt;br /&gt;
&lt;br /&gt;
''' Pulsewidth or ToothPeriod?'''&lt;br /&gt;
Either the period between the tooth edges or the width of the teeth can be used for pattern detection.  Thus &amp;lt;u&amp;gt;Keys&amp;lt;/u&amp;gt; may have a type that is either ''toothperiod'' or ''pulsewidth''. &lt;br /&gt;
&lt;br /&gt;
:* Use ''toothperiod'' when the Ratio is constructed from adjacent tooth periods. &lt;br /&gt;
&lt;br /&gt;
:* Use ''pulsewidth'' when the Ratio between the tooth period and the tooth's width is to be used to construct the key. &lt;br /&gt;
&lt;br /&gt;
[[image:OneTwoPtFive.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''ToothPeriod:'''  When ''toothperiod'' matching is in use the ratio is defined as the angular advancement of the tooth previous to the tooth under examination divided by the angular advancement from the previous tooth to the tooth under examination.  &lt;br /&gt;
&lt;br /&gt;
The diagram above highlights this with colors. &lt;br /&gt;
&lt;br /&gt;
Consider If the Ratio determination for Tooth#0. Tooth#0 is under examination and is the first tooth after the missing tooth. It is 40 degrees advanced from the the previous tooth (because there was a missing tooth and each tooth is nominally displaced 20 degrees apart). The tooth previous to the tooth under examination (Tooth#0) is Tooth#16 and it is 20 degrees advanced from the tooth previous to it (Tooth#15). Therefore the Ratio is 2.0.&lt;br /&gt;
&lt;br /&gt;
The 18M1 Wheel shown below is based on Period of each tooth in the sequence.  So, equidistant teeth gives 1, gap gives 2, then next tooth/gap gives 0.5 for Tooth Period.&lt;br /&gt;
&lt;br /&gt;
'''PulseWidth:'''   The width of a tooth can also be used for pattern detection, for example on some digital type patterns that don't have extra teeth or missing teeth, they change the width of a tooth or some teeth. .  If ''pulsewidth'' were being used then the ratio is defined as the width of the tooth divided by the degrees of advance from the previous tooth. Such ratios should always be smaller than 1.0. The diagram below illustrates a pulsewidth based key. Note that there can be more than one key.&lt;br /&gt;
&lt;br /&gt;
[[Image:FlexiEnc_XML_Keys_PulseWidth.png]]&lt;br /&gt;
&lt;br /&gt;
Key Ratio resolves to .0625 degrees, it is a 4 bit fixed point value.  So if you set ratio to 2.7, it would be rounded.  Also, Ratio cannot be larger than 15.&lt;br /&gt;
&lt;br /&gt;
== Teeth Before Absent Key Fault ==&lt;br /&gt;
Standard keys convey position and are thus expected to always be observed. An absent key fault or missed key fault results when an expected key is not observed. An absent key is detected by noting how many encoder source teeth have been observed since the last standard key was observed. The TeethBeforeAbsentKeyFault attribute allows the developer to define this value for their pattern.&lt;br /&gt;
&lt;br /&gt;
An appropriate value for this attribute would be 19 if the 18M1 example pattern was in use. The encoder system expects to observe the missing tooth key once per revolution and there are 17 physical teeth per revolution. However rotation may initially start within the key, which is 3 teeth wide for this particular version of the 18M1 pattern. The key won't match unless the entire key is observed and thus starting within the key will not result in a match. Therefore it's possible to legally observe 17+2 teeth and still not have observed the key.&lt;br /&gt;
&lt;br /&gt;
For the 4 toothed pulsewidth the value would be 3. There is more than one key so a key should always have been observed before a full rotation has occurred.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Default Key Tolerance ==&lt;br /&gt;
 &lt;br /&gt;
Defines the Plus or Minus window that is applied to each ratio value to create an acceptable key range.  The value saturates to zero or to a maximum.   The wheel will be accelerating, even at a constant speed the pistons are firing, so there will be some localized accelerations if you look at Instantaneous RPM.  This gives a tolerance on the Key Ratio to account for accelerations.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Choose a value that will still allow normal teeth to be rejected as keys, while allowing for acceleration.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following missing tooth example illustrates how the tolerance works and why it is needed. The simple missing tooth key looks for a ratio of 2.0. Under acceleration this ratio won't be observed yet the missing tooth has clearly occurred. To reliably detect this key requires a tolerance value of 0.4 to be used. This creates an acceptance window of 1.6 to 2.4, which 1.64 falls within. If the tolerance had been 0.3 then the observed ratio of 1.64 would not have qualified as a legal key match because it falls outside the 2.3 to 1.7 window.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:FlexiEnc_XML_DefaultKeyTolerance.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Remember, resolution is 0.0625.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''When you are developing a pattern on the bench, test at all ranges of your RPM with Margin.'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Half Cycle Source Attibutes ==&lt;br /&gt;
&lt;br /&gt;
Some encoder sources can be used to provide halfcycle information. Such sources are located on a camshaft and are used to identify which halfcycle a particular engine revolution is associated to (the crank shaft rotates twice as fast as the camshaft).  Pattern Half Cycle State attribute exists on all patterns that you define, but may not be applicable to all patterns but you still have to define the values.&lt;br /&gt;
&lt;br /&gt;
All pattern definitions shall must have the following attributes:&lt;br /&gt;
* HalfCycleEncoding&lt;br /&gt;
* ClrHalfCycleTooth&lt;br /&gt;
* SetHalfCycleTooth&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====HalfCycleEncoding====&lt;br /&gt;
&lt;br /&gt;
This attribute specifies how half cycle is encoded. There are three possible schemas, key state, pin state and windowed.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;TableMHStyle&amp;quot;&lt;br /&gt;
! class=&amp;quot;TableHeaderTDStyle&amp;quot; style=&amp;quot;width: 100px&amp;quot; | HalfCycleEncoding&lt;br /&gt;
! class=&amp;quot;TableHeaderTDStyle&amp;quot; style=&amp;quot;width: 399px&amp;quot; | Description&lt;br /&gt;
|- id=&amp;quot;XML_HalfCycleEncoding_state&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 100px&amp;quot; valign=&amp;quot;top&amp;quot; | state&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 399px&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Used when the pattern supports standard unique keys. Such patterns are able to synchronize themselves without assistance from a companion source. Therefore, once synchronized, the source can be queried for its current position and that position used to indicate whether the system is currently in the first or second half of the cycle. This decision is made using the ClrHalfCycleTooth and set SetHalfCycleTooth attributes.&lt;br /&gt;
|- id=&amp;quot;XML_HalfCycleEncoding_pin&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 100px&amp;quot; valign=&amp;quot;top&amp;quot; | pin&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 399px&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Used when the state of the sensor pin implies the halfcycle state. So a halfmoon sensor could use this style of encoding. To be valid the pin state must reflect the correct halfcycle for each standard unique key that is defined on the absolute source. For example, an 18M1 crank shaft encoder could utilize ''pin'' &amp;lt;u&amp;gt;HalfCycleEncoding&amp;lt;/u&amp;gt; if the pin would be high around the missing tooth (where the key would likely be defined) for one rotation. ''pin'' &amp;lt;u&amp;gt;HalfCycleEncoding&amp;lt;/u&amp;gt; is assumed to always be available to the encoder system, which implies that the pin state of the companion will always represent the halfcycle state when a standard unique key is observed on the absolute source that requires the halfcycle information.&lt;br /&gt;
|- id=&amp;quot;XML_HalfCycleEncoding_window&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 100px&amp;quot; valign=&amp;quot;top&amp;quot; | window&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 399px&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Window encoding is used when the pattern does not support any of its own standard unique keys and the pin state of the pattern does not align with the keys of the absolute source that requires the halfcycle information. The 18M1 with tooth cam figure would utilize the window approach because a tooth cam can't support state or pin encoding. The ''window'' defines the region of teeth relative to the standard unique key of the crankshaft source. The 18M1 waveform highlights the halfcycle window. Note that the tooth cam pulse only occurs relative to every second missing tooth (because it rotates at half the speed). '''Importantly''', ''window'' halfcycle encoding has been implemented such that it can only be utilized on companion source that has a single standard unique key. If the source in use has more keys than this then all but one of the keys should be deleted so that it will work with the ''window'' approach.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ClrHalfCycleTooth====&lt;br /&gt;
The half cycle is represented as a Boolean value - either cycle 0 or cycle 1.  The Encoder does not care which half cycle is which, only that they are defined.  Calibration of TDC offset gives half cycle position for the system.&lt;br /&gt;
&lt;br /&gt;
The ClrHalfCycleTooth clears the halfcycle Boolean when this cycle is observed.&lt;br /&gt;
&lt;br /&gt;
'''Half Cycle 0'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====SetHalfCycleTooth====&lt;br /&gt;
This attribute sets the halfcycle Boolean when this tooth is observed. &lt;br /&gt;
&lt;br /&gt;
'''Half Cycle 1'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Example: '''&lt;br /&gt;
In the example below, inside ring when tooth zero is detected then Half Cycle State is Blue (0).  When Tooth Two is seen, then Half Cycle State is Yellow (1).&lt;br /&gt;
&lt;br /&gt;
This can also be defined as on the outer ring, for tooth 1 and 3.&lt;br /&gt;
&lt;br /&gt;
[[image:HalfCycleState2.jpg]]&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Is one definition better?'''&lt;br /&gt;
In this case, yes.  There are two factors here:&lt;br /&gt;
1. Half Cycle State is queried when the crank's missing tooth is detected.&lt;br /&gt;
2. In order to detect sensor loss, teeth on the other sensor must be seen.  &lt;br /&gt;
&lt;br /&gt;
If the cam sensor is lost, the second setup is better because there is more opportunity to detect the missing cam.&lt;br /&gt;
&lt;br /&gt;
= Variable Cam and the Flexible Encoder =&lt;br /&gt;
&lt;br /&gt;
Phase Reporting is first enabled by checking the Phase Reporting dropdown option on the Absolute or Companion Source Block.  &lt;br /&gt;
&lt;br /&gt;
==Phase Reporting Option==&lt;br /&gt;
The Phase Reporting Option is a checkbox in the Absolute or Companion Source Definition Block.  It indicates the phase reporting capability of the source. '''Installing phase reporting consumes resources, even if it is disabled.'''&lt;br /&gt;
 &lt;br /&gt;
* Selecting '''Not Created''' will prevent the source from consuming these resources. &lt;br /&gt;
*  Selecting '''Disabled''' will install the feature (consuming resources), but it won't consume execution bandwidth. &lt;br /&gt;
:''There is no value in selecting Disabled if the source does not support attribute calibration.'' &lt;br /&gt;
*'''Enabled - Limited''' will only generate a phase report trigger on tooth #0. This consumes less execution bandwidth than does the Enabled - Full selection. Limited operation is useful if the phase of a source relative to the absolute source is to be determined, but where the phase relationship is constant. &lt;br /&gt;
*Use '''Enabled-Full''' where a variable phase relationship exists, such as when variable cam timing (VVT) is available. Full generates a phase report trigger on every tooth of the source and thus consumes the most execution bandwidth. &lt;br /&gt;
&lt;br /&gt;
In a VVT application in which the cam moves with respect to the crank, one would want to set the phase reporting of the CAM sources to Enabled-Full as a phase is needed on these sources.  However, the phase reporting does not need to be created on the Crank as this would report the phase relative to itself and so does not add any value.   Enabling phase reporting on the crank would also consume more execution bandwidth (ex. % CPU).&lt;br /&gt;
&lt;br /&gt;
'''Then Variable CAM can be implemented on Flexible Encoder through''':&lt;br /&gt;
&lt;br /&gt;
*	[http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/motohawk_flexenc_lib_Blocks/FlexibleEncoderSourcePhaseTrigger.html Source Phase Trigger]&lt;br /&gt;
*	Setting the “Phase Reporting” attribute on the source to a suitable value&lt;br /&gt;
*	[http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/motohawk_flexenc_lib_Blocks/GetLastFlexibleEncoderSourcePhase.html Get Last Source Phase]&lt;br /&gt;
&lt;br /&gt;
=Flexible Encoder Blockset =&lt;br /&gt;
==[http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/motohawk_flexenc_lib_Blocks/FlexibleEncoderSystem.html Flexible Encoder System Definition]==&lt;br /&gt;
&lt;br /&gt;
== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/motohawk_flexenc_lib_Blocks/FlexibleEncoderPatternDefinition.html Flexible Encoder Pattern Definition] ==&lt;br /&gt;
&lt;br /&gt;
== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/motohawk_flexenc_lib_Blocks/FlexibleEncoderCompanionSource.html Flexible Encoder Companion Source Definition] ==&lt;br /&gt;
&lt;br /&gt;
==[http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/motohawk_flexenc_lib_Blocks/FlexibleEncoderAbsoluteSource.html Flexible Encoder Absolute Source Definition]==&lt;br /&gt;
&lt;br /&gt;
==[http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/motohawk_flexenc_lib_Blocks/GetLastFlexibleEncoderSourcePhaseEstimate.html Get Last Flexible Encoder Source Phase Estimate]==&lt;br /&gt;
&lt;br /&gt;
== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/motohawk_flexenc_lib_Blocks/GetLastFlexibleEncoderSourcePhase.html Get Last Flexible Encoder Source Phase] ==&lt;br /&gt;
&lt;br /&gt;
==[http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/motohawk_flexenc_lib_Blocks/FlexibleEncoderSourcePhaseTrigger.html Flexible Encoder Source Phase Trigger]==&lt;br /&gt;
&lt;br /&gt;
==[http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/motohawk_flexenc_lib_Blocks/FlexibleEncoderAdditonalPatternPath.html Flexible Encoder Additional Pattern Path]==&lt;br /&gt;
&lt;br /&gt;
== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/motohawk_flexenc_lib_Blocks/FlexibleEncoderAverageCycleRPM.html Flexible Encoder Average Cycle RPM] ==&lt;br /&gt;
&lt;br /&gt;
==[http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/motohawk_flexenc_lib_Blocks/FlexibleEncoderCycleRPMTrigger.html Cycle RPM Sample Trigger]==&lt;br /&gt;
&lt;br /&gt;
==[http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/motohawk_flexenc_lib_Blocks/GetLastFlexibleEncoderSourceError.html Get Last Flexible Encoder Source Error]==&lt;br /&gt;
&lt;br /&gt;
== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/motohawk_flexenc_lib_Blocks/FlexibleEncoderSourceErrorTrigger.html Flexible Encoder Source Error Trigger] ==&lt;br /&gt;
&lt;br /&gt;
= FAQ: Frequently Asked Questions=&lt;br /&gt;
&lt;br /&gt;
1.  &amp;lt;big&amp;gt;'''Can Woodward add Flexible Encoder Support for the 128 pin module?'''&amp;lt;/big&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
No, the TPU on the 5xx modules (48, 80, 128-pin) aren’t capable of supporting as complex and flexible as the Flexible Encoder (5xxx modules have an eTPU, or enhanced TPU).&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.  &amp;lt;big&amp;gt;'''How do I define my sensor type (Vr or Hall Effect)?'''&amp;lt;/big&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
There is now a new block, Interface (VR/DG) under Module Configuration Blocks library of MotoHawk.  If you don't put a signal interface block in your model, you will get a build warning.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.  &amp;lt;big&amp;gt;'''Can I use an old version of MotoHawk?'''&amp;lt;/big&amp;gt; &lt;br /&gt;
&lt;br /&gt;
No, 2012a or higher is required for Flexible Encoder.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. &amp;lt;big&amp;gt;'''Does Flexible Encoder support Variable CAM?'''&amp;lt;/big&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Yes, there is a Phase Reporting dropdown option on the Absolute or Companion Source selection.  Then, the Variable CAM is implemented on Flex Encoder, through: Source Phase &lt;br /&gt;
Trigger, Setting the &amp;quot;Phase Reporting&amp;quot; attribute on the source to a suitable value, Get Last Source Phase block.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.  &amp;lt;big&amp;gt;'''For a CAM-only pattern, such as 6-Plus-1, should it still be defined as if it were 360-degrees?'''&amp;lt;/big&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Yes, the xml pattern defines a WHEEL, so it must be 360-degrees.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. &amp;lt;big&amp;gt;'''Are there any example xml files?'''&amp;lt;/big&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
There are some xml patterns included with MotoHawk as examples in the MotoHawk installation.   /Motocoder/Encoders (ex. C:\Program Files (x86)\Woodward\MCS\MotoHawk\2012b_beta4.298\MotoCoder\Encoders).&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7.  &amp;lt;big&amp;gt;'''When defining a CAM pattern, should I start with tooth 0 at angle 0, or should this contemplate the phase difference between the two wheels?'''&amp;lt;/big&amp;gt; &lt;br /&gt;
&lt;br /&gt;
When defining the XML file,  define it for the wheel 360-degree pattern whether it is for a cam or crank wheel with tooth 0 at angle 0.  This just describes the pattern.   Then,  the phase relationship(s) are defined in the Absolute Source block and the Companion Source blocks.   &lt;br /&gt;
&lt;br /&gt;
An example could be the same pattern definition can be used twice yet have different phasing. E.g. single 60M2 wheel with two sensors&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8.  &amp;lt;big&amp;gt;'''Can you confirm that both the 60-Minus-2 and 6-Plus-1 patterns would be considered standard unique and that rather than a Sync Companion, the 6-Plus-1 should be setup as a Half-Cycle Companion?'''&amp;lt;/big&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The two terms are being mixed here. But, yes as long as the two missing teeth are not on direct opposite sides of the 60-2 wheel, the 60-2 and 6+1 patterns would be Standard Unique.  &lt;br /&gt;
&lt;br /&gt;
;Standard Unique:     60-1 or 6+1 pattern would be considered Standard Unique, meaning that when you see the key you would know exactly where on the 360-degree physical  wheel rotation you are.  For 60-2, if the two missing teeth were located together then this would be Standard Unique.  If the two missing teeth were on each side of the wheel, equidistant with 29 equidistant teeth between, this would be Standard Semi-Unique as you don’t know exact position on the physical wheel when a missing tooth is seen,  i.e. which missing tooth is it?     Standard means it can be used for synch,  unique means it stands alone.&lt;br /&gt;
&lt;br /&gt;
For a Semi-Unique source you need another source to determine position on the actual wheel, for synching.  This is the Synch Companion.   &lt;br /&gt;
&lt;br /&gt;
Even if you have a Standard Unique pattern, you would need another (companion) source to determine half cycle information.  A companion source can give half cycle information (ex. CAM).  A different absolute source can be used as a companion also, and this could provide redundancy.   So, a 60-1 and a 24-1 would both be defined as Standard Unique sources, and in one application the 24-1 could be a companion to the 60-1 and provide redundancy in the event that the 60-1 is lost.  In another application the 24-1 could be the absolute source with a different (maybe single tooth) wheel as a companion.  &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9.  &amp;lt;big&amp;gt;'''For a 60-1 on crank, 6+ 1 on cam, so Source1: CrkEncoder  Source2:CamEncoder.  Should they both be set up as an Absolute Source, or should the CAM be a Companion source?'''&amp;lt;/big&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Setting them both up as an Absolute source provides a limp home capability provided the source is added to the System Definition block, so it can be switched to.  Setting up the CAM as a Companion Source instead is less resource intensive (eTPU, RAM, ...) so if your system was really constrained, then you might discard limphome to free up resources.  If the 6P1 were a variable cam phaser, then specifying it as an Absolute source would not serve a purpose.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
10. &amp;lt;big&amp;gt;'''Is there a penatly for using too many keys?'''  &amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Yes, the system would need to look for each key so this would impact execution time, resulting in syncronization errors.  When you are developing a pattern on the bench, test at all ranges of your RPM with Margin&lt;br /&gt;
&lt;br /&gt;
11. &amp;lt;big&amp;gt;'''When defining the teeth in the xml file, do I have to start tooth zero where there are the most equidistant teeth?''' &amp;lt;/big&amp;gt;  The pattern must be stored in the eTPU.  You can define the pattern any way you want to, but starting where there are most equidistant teeth saves eTPU space.&lt;br /&gt;
&lt;br /&gt;
12. &amp;lt;big&amp;gt;'''Should I define a CAM pattern as 360-degrees or 720-degrees?'''  &amp;lt;/big&amp;gt;'''Cam wheels are still defined based on 360-degrees.  It is a wheel, so always 360-degrees.'''&lt;br /&gt;
&lt;br /&gt;
13.  &amp;lt;big&amp;gt;'''What happens if, due to an issue with the encoder wheel, an extra tooth is detected or a tooth is missed?''' &amp;lt;/big&amp;gt; Once initially synchronized, pulses are scheduled on the assumption that the teeth correspond to the defined pattern.  The failure to detect a tooth would make al pulses scheduled between that missed tooth and the key to be late.  Similarly, detection of an extra tooth would result in pulses that would occur earlier than expected.  The average and instantaneous RPM calculations at the point of the erroneous missing or extra tooth would be incorrect.   The system would recover once the real key is seen.  The encoder state would not change; it would continue to report synchronized.  However, a synchronization error would be flagged when the key is detected, since the tracked position would not equate to the calculated position defined by the key.&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=MotoHawk_Blocks:Module_Configuration_Blocks:Peak/Hold_with_Off_Time_(PHWOT)_Controller&amp;diff=4169</id>
		<title>MotoHawk Blocks:Module Configuration Blocks:Peak/Hold with Off Time (PHWOT) Controller</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=MotoHawk_Blocks:Module_Configuration_Blocks:Peak/Hold_with_Off_Time_(PHWOT)_Controller&amp;diff=4169"/>
		<updated>2018-07-03T09:20:27Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Peak/Hold Controller */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Peak/Hold Controller=&lt;br /&gt;
&lt;br /&gt;
This MotoHawk™ block defines a Peak/Hold Reaction Channel controller. Reaction Channel controllers are used to control circuits that utilizes the microcontroller's [http://mcs.woodward.com/content/motohawk/Documentation/Current/HTML/MotoHawk_lib_Blocks/ReactionModule.html Reaction Module] so that they can perform load current modulation. When the modulation should occur is controlled by an independent block like a [http://mcs.woodward.com/content/motohawk/Documentation/Current/HTML/MotoHawk_lib_Blocks/PWMOutput.html PWM]. A single Reaction Module block plus a [http://mcs.woodward.com/content/motohawk/Documentation/Current/HTML/MotoHawk_lib_Blocks/ReactionModuleOffTime.html Reaction Module Off Time] block will also need to exist in the model in order to fully define the controller. A [http://mcs.woodward.com/content/motohawk/Documentation/Current/HTML/MotoHawk_lib_Blocks/ReactionPHChannelDefinition.html Reaction PH Channel] definition block would also need to exist to expose the defined controller on an output. This controller can also be used to drive loads that don't require load current modulation (a high impedance load for example).&lt;br /&gt;
&lt;br /&gt;
==Block ID==&lt;br /&gt;
&lt;br /&gt;
React PH Controller&lt;br /&gt;
&lt;br /&gt;
==Library==&lt;br /&gt;
&lt;br /&gt;
MotoHawk_lib/ModuleConfiguration&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
[[Image:PHWOTReactionChannel.PNG]]&lt;br /&gt;
&lt;br /&gt;
* Signal Descriptions&lt;br /&gt;
* Block Mask Parameter Descriptions&lt;br /&gt;
* Circuit Operation&lt;br /&gt;
* Fault Behavior&lt;br /&gt;
&lt;br /&gt;
===Circuit Principles===&lt;br /&gt;
&lt;br /&gt;
The Peak/Hold with Off Time (PHWOT) reaction channel controller is intended for use with a circuit topology like the ones illustrated below.&lt;br /&gt;
&lt;br /&gt;
[[Image:PHWOTReactionChannel_Circuit.png]]&lt;br /&gt;
&lt;br /&gt;
The switched mode driver has a high side switch that is turned ON whilst the actuator is ON and the low side switch runs a high frequency PWM that will modulate the load current. The circuit is only able to sample load current while the low side switch is ON. Thus the OFF time needs to be an open loop parameter that switches the low side switch OFF for a set amount of time each time the low side current attains the specified current threshold. The PHWOT behavior supports a peak and a hold phase. Nominally the [#peakthreshold current] threshold during peak is higher than what is used during the hold phase.&lt;br /&gt;
&lt;br /&gt;
A high impedance load could be driven with either circuit. Typically the [#peakthreshold peak current] and the [#holdthreshold hold current] thresholds are set to values that won't be attained by the load and as such no modulation will occur.&lt;br /&gt;
&lt;br /&gt;
===Peak/Hold Operation===&lt;br /&gt;
&lt;br /&gt;
====Operation====&lt;br /&gt;
&lt;br /&gt;
This circuit behavior supports a peak phase and a hold phase. When [#usetimedpeakhold timed peak/hold is in use] the time spent in peak is controlled by the referenced [TimedPeakHold.html Timed Peak/Hold] block. Note that the time spent in peak refers to the time spent controlling to the peak threshold once the peak threshold has been attained. If discrete peak/hold is in use then the appropriate mode is defined by the state currently specified by the [DiscretePeakHold.html Discrete Peak/Hold] block.&lt;br /&gt;
&lt;br /&gt;
====Preventing Timer Allocation Errors====&lt;br /&gt;
&lt;br /&gt;
[ReactionChannelStatus.html#timerallocationerror Timer Allocation Errors] can result when using the PHWOT Reaction Channel controller with [#usetimedpeakhold timed peak/hold]. These errors are not driver faults, but setup errors that are reported via the [ReactionChannelStatus.html Reaction Channel Status] block.&lt;br /&gt;
&lt;br /&gt;
The reaction module supports a pool of internal timers that are shared by all of the reaction channels and is of a finite size. For example MPC564x cores support only 3 timers in this pool. A PHWOT Reaction Channel that is implementing Timed Peak needs to be able to acquire one of these timers. A [ReactionChannelStatus.html#timerallocationerror Timer Allocation Error] will result if too many PHWOT Reaction Channels implementing Timed Peak assert at the same time since they each will require their own timer, which the underlying silicon can't provide. Other Reaction Channel behaviors may also draw upon these timers and would need to be considered too.&lt;br /&gt;
&lt;br /&gt;
The PHWOT Reaction Channel allows Timed Peak blocks to be shared by referencing the same block with the [#timedpeakholdname Timed Peak Name] attribute of the mask. This is possible provided not too many of the channels have their peak phase overlap. Thus something like an injection behavior, which distributes when the various injectors assert, can successfully operate using a shared peak time because peak is only active on some of the channels at any instant in time.&lt;br /&gt;
&lt;br /&gt;
Where overlap is difficult to prevent, such as where many PWMs are in use, the use of the [DiscretePeakHold.html Discrete Peak/Hold] block should be considered as an alternative to Timed Peak.&lt;br /&gt;
&lt;br /&gt;
===Fault Behavior===&lt;br /&gt;
&lt;br /&gt;
====Diagnosis Principles====&lt;br /&gt;
&lt;br /&gt;
This reaction channel behavior analyzes the duration of the switching events to detect whether the channel has experienced a fault condition. Specifically the reaction silicon observes whether switching events occur within the window defined by [ReactionModule.html#reactionmodule_minswitchtime Min Switch Time] and [ReactionModule.html#reactionmodule_maxswitchtime Max Switch Time].&lt;br /&gt;
&lt;br /&gt;
An open circuit condition is detected if the driver remains on for longer than [ReactionModule.html#reactionmodule_maxswitchtime Max Switch Time]. '''This operation implies that a high impedance load will always flag that it is in fault''' if used with this behavior because it does not normally experience switching. A future version of MotoHawk™ will enhance the fault operation by detecting whether the load current ever attained the [#detectthreshold detection threshold]. High impedance loads could then be used with this behavior, but until then they will report faults.&lt;br /&gt;
&lt;br /&gt;
A short circuit condition would be detected if the driver ever switched off before [ReactionModule.html#reactionmodule_minswitchtime Min Switching Time] had been observed with the drive on. However this behavior could naturally experience this situation during the transition from peak to hold. In this situation the driver will be turned on and then quickly turned off again since the load current would still be decaying from the peak threshold to the hold threshold. Consequently this behavior ignores when this condition is observed. Instead the system is reliant upon the hardware circuit to shutdown the drive when an overcurrent is experienced. This makes the driver look like an open circuit (because it is not switching, but is being commanded). '''It is still important that a non-zero value is assigned to [ReactionModule.html#reactionmodule_minswitchtime Min Switching Time]''', even though the short circuit is masked. Setting the value to zero will disable the window detection, which then prevents the open circuit detection from occurring.&lt;br /&gt;
&lt;br /&gt;
A short circuit condition is also observed if the load current ever exceeds the [ReactionModule.html#reactionmodule_maxcurrent Max Current] setting.&lt;br /&gt;
&lt;br /&gt;
Short and Open circuit faults are combined into a fault status that can be recovered using the [IOFaultStatus.html IO Fault Status] block.&lt;br /&gt;
&lt;br /&gt;
====Other Detection Considerations====&lt;br /&gt;
&lt;br /&gt;
As has been [#diagnosisprinciples discussed] above, fault diagnosis is based upon observing the behavior of the drive when it is on. An observed condition is latched for subsequent recovery by an [IOFaultStatus.html IO Fault Status] block query. The latched condition is cleared once queried so that the circuit can detect a subsequent fault event. However, because the status is cleared, querying the fault status again before the circuit has had a chance to observe another event will result in a fault status of ''indeterminate'' being reported, even if the load was still in fault. Thus the rate of the fault query in combination with how the drive is being controlled will influence what is reported.&lt;br /&gt;
&lt;br /&gt;
Consider an open load condition on a PHWOT channel that was being driven by a 100Hz PWM at a 40% dutycycle. An [IOFaultStatus.html IO Fault Status] block query that occurred every 5ms would report ''indeterminate'' on every second query because the load is only turned on every 10ms and a fault event can only be observed and updated once the drive has been on. The query could be slowed to every 10ms or even every 100ms and would then be reliable.&lt;br /&gt;
&lt;br /&gt;
Thus the selected control behavior will influence what the [IOFaultStatus.html IO Fault Status] block will report, as will the rate of query. These should be considered when defining the diagnostic strategy of a PHWOT reaction channel behavior.&lt;br /&gt;
&lt;br /&gt;
====Timed Detection Strategy====&lt;br /&gt;
&lt;br /&gt;
[[Image:PHWOTReactionChannel_InstantFaultStatus.png]]&lt;br /&gt;
&lt;br /&gt;
Often a slow rate of [IOFaultStatus.html IO Fault Status] block query is sufficient to allow for reliable fault detection. However, if quicker fault notification is required, then the use of a timed latching mechanism is recommended. Here observing a fault is recognized quickly, but the return to an OK status is slowed by requiring the absence of a fault condition to exist for some amount of time before it is recognized.&lt;br /&gt;
&lt;br /&gt;
[[Image:PHWOTReactionChannel_TimedFaultClear.png]]&lt;br /&gt;
&lt;br /&gt;
==Signals==&lt;br /&gt;
&lt;br /&gt;
===Peak Threshold (mA)===&lt;br /&gt;
&lt;br /&gt;
Defines the current threshold to use during the peak phase of operation. The peak phase timer does not start until this threshold is reached when the [#usetimedpeakhold Timed Peak] mode is in use. This is a little different to some other styles of peak/hold drivers supported by MotoHawk™, which are more open loop and start the timer when the driver is initially asserted.&lt;br /&gt;
&lt;br /&gt;
The driver won't enter the hold mode until the peak current has been achieved. Furthermore, failure to attain the peak current may result in an open circuit condition being latched by the driver.&lt;br /&gt;
&lt;br /&gt;
===Hold Threshold (mA)===&lt;br /&gt;
&lt;br /&gt;
Defines the current threshold to use during the hold phase of operation.&lt;br /&gt;
&lt;br /&gt;
===Detect Threshold (mA)===&lt;br /&gt;
&lt;br /&gt;
Defines the current threshold that the load current must achieve when actuated for the load to be considered present. An open circuit condition is detected if this current threshold is not achieved. It is also used for short circuit detection per the [#diagnosisprinciples diagnosis principles] discussion earlier.&lt;br /&gt;
&lt;br /&gt;
==Block Parameters==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;TableMHStyle&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableHeaderTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; | Parameter Field&lt;br /&gt;
| class=&amp;quot;TableHeaderTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; | Values&lt;br /&gt;
| class=&amp;quot;TableHeaderTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; | Comments/Description&lt;br /&gt;
|- id=&amp;quot;name&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Name&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | Alpha-numeric text, single-quote enclosed&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
This name will be used by associated blocks like the [ReactionChannelStatus.html Reaction Channel Status] block to reference this channel definition. No special characters, such as spaces, dashes and commas (underscore allowed)&lt;br /&gt;
|- id=&amp;quot;text_resource&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Resource&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | Drop-down list&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | Module resource for this block (target module dependent).&lt;br /&gt;
|- id=&amp;quot;peakphaseofftimername&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Peak Phase Off Timer Name&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | Alpha-numeric text, single-quote enclosed&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
The name of the [ReactionModuleOffTime.html Reaction Module Off Timer] that supplies the off time attribute to utilize during peak phase operation. This timer can be shared with others and can even be the same as the Hold Phase Timer.&lt;br /&gt;
|- id=&amp;quot;holdphaseofftimername&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Hold Phase Off Timer Name&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | Alpha-numeric text, single-quote enclosed&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
The name of the [ReactionModuleOffTime.html Reaction Module Off Timer] that supplies the off time attribute to utilize during hold phase operation. This timer can be shared with others and can even be the same as the Peak Phase Timer.&lt;br /&gt;
|- id=&amp;quot;usetimedpeakhold&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Use Timed Peak/Hold&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | Check Box&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Select if a [TimedPeakHold.html Timed Peak/Hold] block shall be used to specify how long the driver should remain in the peak phase before switching to the hold phase. A high impedance load that does not require load current modulation should not check this box.&lt;br /&gt;
|- id=&amp;quot;timedpeakholdname&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Timed Peak Hold Name&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | Alpha-numeric text, single-quote enclosed&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
The name of the [TimedPeakHold.html Timed Peak/Hold] block that will define the peak time. This timer can be (and often needs to be) shared by multiple reaction channel behaviors.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=Reaction_Module_Blockset&amp;diff=4168</id>
		<title>Reaction Module Blockset</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=Reaction_Module_Blockset&amp;diff=4168"/>
		<updated>2018-07-03T09:09:19Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Reaction Module Setup for Injection Timing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
=='''Reaction Module Setup for Injection Timing'''==&lt;br /&gt;
&lt;br /&gt;
Low impedance injector drivers circuits are based upon switching a MOSFET on and off at frequency to regulate load current. The high frequency switching allows the MOSFET to operate in its more thermally efficient saturated region. The circuits typically monitor load current and switch off when that current exceeds a certain threshold referred to as the “switch-off” current. For the 128-pin ECM for example, the switching is done in the hardware through a chopper circuit. This achieves a fixed peak hold current level.&lt;br /&gt;
&lt;br /&gt;
By comparison, the switching for the SECM112 is accomplished in software using the Reaction Module silicon that is available on the Freescale MPC564x. This gives greater flexibility to the application in setting the current limits at which the circuit will switch off (limits for max peak and max hold current) as well as the fixed amount of time for which the output will be switched off. The Reaction module must be defined, and the Reaction Channels configured for the required timing components and current thresholds to achieve the average current levels required in the application.&lt;br /&gt;
&lt;br /&gt;
The standard PSP blocks (Injector Sequence, Dual PSP, Multiple PSP..) are supported on the SECM112, but configuration of the Reaction Module is Required for Injection on the SECM112. Peak-Hold timing is configured by the Reaction Module, and the peak-hold input port on the sequence blocks is ignored.&lt;br /&gt;
&lt;br /&gt;
The Reaction Module Configuration blocks are located in the Module Configuration library of MotoHawk.&lt;br /&gt;
&lt;br /&gt;
This article will give an overview of the Reaction Channel Blocks. Refer to the Block Help for each block for detailed descriptions of the block usage, limitations, and design considerations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/ReactionModule.html Reaction Module Definition block]===&lt;br /&gt;
&lt;br /&gt;
This block MUST be placed in the model if injection is required. It defines the global configurations of Freescale Semiconductor’s Reaction Module. If this block is not placed in the model, the following build error will result.&lt;br /&gt;
&lt;br /&gt;
ERROR: A ReactionModule with a ModuleResource of REACT was not found in the application descriptor.&lt;br /&gt;
&lt;br /&gt;
[[Image:ReactionModule.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/PHReactionController.html '''Peak/Hold Controller block'''] and the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/ReactionModuleOffTime.html '''Reaction Module off Time Definition block'''] ===&lt;br /&gt;
&lt;br /&gt;
Reaction Channels perform the load current modulation to achieve the desired average current and peak/hold times.&lt;br /&gt;
Once the Reaction Module is Defined, the Reaction Channel Behaviors must Be configured.&lt;br /&gt;
The Peak/Hold Controller block selects the control style to be utilized, which is dependent upon the hardware. Possible styles include&lt;br /&gt;
Peak/Hold with Off Time (PHWOT) and Peak/Hold with Dual Threshold (PHWDT). The controller will allow the Peak Threshold and Hold Threshold values to be&lt;br /&gt;
used with the modulation to be defined. When the PHWOT control style is in use then the Reaction Module off Time Definition block is needed to&lt;br /&gt;
defines the fixed amount of time the channel will turn off, once the threshold value is reached.&lt;br /&gt;
&lt;br /&gt;
As an example, one MotoHawk Reaction Channel Contoller Peak Hold with Off Time block is configured, and the Peak&lt;br /&gt;
Threshold and Hold Threshold are input into the block. Detect Threshold is for fault detection. Also, two Reaction&lt;br /&gt;
Module Off Time Definition blocks are used in this example. One is controlling the off time for the peak section of the injector output, and the other is controlling the off time for the hold portion. This could be configured differently to fit the specific application needs.&lt;br /&gt;
&lt;br /&gt;
[[Image: PHWOT1.PNG]]&lt;br /&gt;
&lt;br /&gt;
In the waveform below, the injector turns on. Initially it is in the peak portion of the signal. When the Peak Threshold is reached, the output is shut off for the Peak Off Time defined by the Timer block. Similarly, in the Hold portion of the signal, when the Hold Threshold is reached, the hold output shuts off for the Hold Off Time.&lt;br /&gt;
&lt;br /&gt;
[[Image:PHWOT_Waveforms.PNG]]&lt;br /&gt;
&lt;br /&gt;
=== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/ReactionPHChannelDefinition.html '''Peak/Hold Channel Definition Block'''] ===&lt;br /&gt;
&lt;br /&gt;
The Reaction Channels are associated to Injector Outputs with the Peak/Hold Channel Definition Block. A controller can be used by more than one channel and so the same controller definition could be used to define how all the injectors on a module operate.&lt;br /&gt;
Below, as one example, one Reaction Channel Controller resource is defined, and it is associated to 6 injectors.&lt;br /&gt;
&lt;br /&gt;
[[Image:PHWOT_Defn_Example_6.PNG]]&lt;br /&gt;
&lt;br /&gt;
=== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/TimedPeakHold.html '''Timed Peak Hold'''] ===&lt;br /&gt;
The Reaction Channel Controller Peak Hold with Off Time block also has a checkbox for enabling timed peak hold. When this box is checked, the Timed Peak Hold block is used to define the peak time. Peak time set in the Injection blocks (ex. sequence block) is ignored.&lt;br /&gt;
&lt;br /&gt;
[[Image:TimedPeakHold.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/ReactionChannelStatus.html '''Reaction Module Status'''] ===&lt;br /&gt;
&lt;br /&gt;
The Reaction Module Status block can be used to determine the status of the Reaction Module.&lt;br /&gt;
The status is described by an enumeration of possible status events. &lt;br /&gt;
* 0 = OK &lt;br /&gt;
 &lt;br /&gt;
* 1 = Channel Failed to Create &lt;br /&gt;
 &lt;br /&gt;
* 2 = Timer Allocation Error occurred since status was last queried &lt;br /&gt;
 &lt;br /&gt;
* 3 = Resource Allocation Error occurred since status was last queried&lt;br /&gt;
 &lt;br /&gt;
* 4 = Parent Reaction Module Not Created &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Channel Failed to Create'''&amp;lt;/big&amp;gt; &lt;br /&gt;
A software issue has prevented the Reaction Channel from creating. The Reaction Channel behavior won't operate. The output will be disabled.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
An example subsystem showing the Reaction Module blockset is attached.  You must be logged into the MCS website to download the example.&lt;br /&gt;
&lt;br /&gt;
[http://mcs.woodward.com/content/motohawk/examples/reaction_module_example.slx Reaction Module Example]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Timer Allocation Error'''&amp;lt;/big&amp;gt; &lt;br /&gt;
The reaction module supports a pool of internal timers that are shared by all of the reaction channels and is of a finite size. A timer may be required during a reaction channel's modulation sequence. For example the PHWOT Reaction Channel behavior utilizes one of these shared timers to implement its peak phase. This error is issued if a channel required a timer, but there was not one available. The reaction channel setup and/or control will need to be modified to prevent this error from occurring. It is brought about by limitations in the Reaction Module silicon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Resource Allocation Error'''&amp;lt;/big&amp;gt; There were internal software issues that are preventing the reaction channel operating as expected. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Parent Reaction Module Not Created'''&amp;lt;/big&amp;gt; &lt;br /&gt;
This channel is dependent upon the Reaction Module creating successfully, which did not occur. The output will be disabled.&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=Reaction_Module_Blockset&amp;diff=4167</id>
		<title>Reaction Module Blockset</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=Reaction_Module_Blockset&amp;diff=4167"/>
		<updated>2018-07-03T09:06:29Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Peak/Hold Channel Definition Block */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
=='''Reaction Module Setup for Injection Timing'''==&lt;br /&gt;
&lt;br /&gt;
Low impedance injector drivers circuits are based upon switching a MOSFET on and off at frequency to regulate load current. The high frequency switching allows the MOSFET to operate in its more thermally efficient saturated region. The circuits typically monitor load current and switch off when that current exceeds a certain threshold referred to as the “switch-off” current. For the 128-pin ECM for example, the switching is done in the hardware through a chopper circuit. This achieves a fixed peak hold current level.&lt;br /&gt;
&lt;br /&gt;
By comparison, the switching for the ECM-OH is accomplished in software through the Reaction Module on the Freescale MPC5644. This gives greater flexibility to the application in setting the current limits at which the circuit will switch off (limits for max peak and max hold current) as well as the fixed amount of time for which the output will be switched off. The Reaction module must be defined, and the Reaction Channels configured for the required timing components and current thresholds to achieve the average current levels required in the application.&lt;br /&gt;
&lt;br /&gt;
The standard PSP blocks (Injector Sequence, Dual PSP, Multiple PSP..) are supported on the ECM-OH, but configuration of the Reaction Module is Required for Injection on the ECM-OH. Peak-Hold timing is configured by the Reaction Module, and the peak-hold input port on the sequence blocks is ignored.&lt;br /&gt;
&lt;br /&gt;
The Reaction Module Configuration blocks are located in the Module Configuration library of MotoHawk.&lt;br /&gt;
&lt;br /&gt;
This article will give an overview of the Reaction Channel Blocks. Refer to the Block Help for each block for detailed descriptions of the block usage, limitations, and design considerations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/ReactionModule.html Reaction Module Definition block]===&lt;br /&gt;
&lt;br /&gt;
This block MUST be placed in the model if injection is required. It defines the global configurations of Freescale Semiconductor’s Reaction Module. If this block is not placed in the model, the following build error will result.&lt;br /&gt;
&lt;br /&gt;
ERROR: A ReactionModule with a ModuleResource of REACT was not found in the application descriptor.&lt;br /&gt;
&lt;br /&gt;
[[Image:ReactionModule.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/PHReactionController.html '''Peak/Hold Controller block'''] and the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/ReactionModuleOffTime.html '''Reaction Module off Time Definition block'''] ===&lt;br /&gt;
&lt;br /&gt;
Reaction Channels perform the load current modulation to achieve the desired average current and peak/hold times.&lt;br /&gt;
Once the Reaction Module is Defined, the Reaction Channel Behaviors must Be configured.&lt;br /&gt;
The Peak/Hold Controller block selects the control style to be utilized, which is dependent upon the hardware. Possible styles include&lt;br /&gt;
Peak/Hold with Off Time (PHWOT) and Peak/Hold with Dual Threshold (PHWDT). The controller will allow the Peak Threshold and Hold Threshold values to be&lt;br /&gt;
used with the modulation to be defined. When the PHWOT control style is in use then the Reaction Module off Time Definition block is needed to&lt;br /&gt;
defines the fixed amount of time the channel will turn off, once the threshold value is reached.&lt;br /&gt;
&lt;br /&gt;
As an example, one MotoHawk Reaction Channel Contoller Peak Hold with Off Time block is configured, and the Peak&lt;br /&gt;
Threshold and Hold Threshold are input into the block. Detect Threshold is for fault detection. Also, two Reaction&lt;br /&gt;
Module Off Time Definition blocks are used in this example. One is controlling the off time for the peak section of the injector output, and the other is controlling the off time for the hold portion. This could be configured differently to fit the specific application needs.&lt;br /&gt;
&lt;br /&gt;
[[Image: PHWOT1.PNG]]&lt;br /&gt;
&lt;br /&gt;
In the waveform below, the injector turns on. Initially it is in the peak portion of the signal. When the Peak Threshold is reached, the output is shut off for the Peak Off Time defined by the Timer block. Similarly, in the Hold portion of the signal, when the Hold Threshold is reached, the hold output shuts off for the Hold Off Time.&lt;br /&gt;
&lt;br /&gt;
[[Image:PHWOT_Waveforms.PNG]]&lt;br /&gt;
&lt;br /&gt;
=== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/ReactionPHChannelDefinition.html '''Peak/Hold Channel Definition Block'''] ===&lt;br /&gt;
&lt;br /&gt;
The Reaction Channels are associated to Injector Outputs with the Peak/Hold Channel Definition Block. A controller can be used by more than one channel and so the same controller definition could be used to define how all the injectors on a module operate.&lt;br /&gt;
Below, as one example, one Reaction Channel Controller resource is defined, and it is associated to 6 injectors.&lt;br /&gt;
&lt;br /&gt;
[[Image:PHWOT_Defn_Example_6.PNG]]&lt;br /&gt;
&lt;br /&gt;
=== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/TimedPeakHold.html '''Timed Peak Hold'''] ===&lt;br /&gt;
The Reaction Channel Controller Peak Hold with Off Time block also has a checkbox for enabling timed peak hold. When this box is checked, the Timed Peak Hold block is used to define the peak time. Peak time set in the Injection blocks (ex. sequence block) is ignored.&lt;br /&gt;
&lt;br /&gt;
[[Image:TimedPeakHold.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/ReactionChannelStatus.html '''Reaction Module Status'''] ===&lt;br /&gt;
&lt;br /&gt;
The Reaction Module Status block can be used to determine the status of the Reaction Module.&lt;br /&gt;
The status is described by an enumeration of possible status events. &lt;br /&gt;
* 0 = OK &lt;br /&gt;
 &lt;br /&gt;
* 1 = Channel Failed to Create &lt;br /&gt;
 &lt;br /&gt;
* 2 = Timer Allocation Error occurred since status was last queried &lt;br /&gt;
 &lt;br /&gt;
* 3 = Resource Allocation Error occurred since status was last queried&lt;br /&gt;
 &lt;br /&gt;
* 4 = Parent Reaction Module Not Created &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Channel Failed to Create'''&amp;lt;/big&amp;gt; &lt;br /&gt;
A software issue has prevented the Reaction Channel from creating. The Reaction Channel behavior won't operate. The output will be disabled. &lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
An example subsystem showing the Reaction Module blockset is attached.  You must be logged into the MCS website to download the example.&lt;br /&gt;
&lt;br /&gt;
[http://mcs.woodward.com/content/motohawk/examples/reaction_module_example.slx Reaction Module Example]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Timer Allocation Error'''&amp;lt;/big&amp;gt; &lt;br /&gt;
The reaction module supports a pool of internal timers that are shared by all of the reaction channels and is of a finite size. A timer may be required during a reaction channel's modulation sequence. For example the PHWOT Reaction Channel behavior utilizes one of these shared timers to implement its peak phase. This error is issued if a channel required a timer, but there was not one available. The reaction channel setup and/or control will need to be modified to prevent this error from occurring. It is brought about by limitations in the Reaction Module silicon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Resource Allocation Error'''&amp;lt;/big&amp;gt; There were internal software issues that are preventing the reaction channel operating as expected. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Parent Reaction Module Not Created'''&amp;lt;/big&amp;gt; &lt;br /&gt;
This channel is dependent upon the Reaction Module creating successfully, which did not occur. The output will be disabled.&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=Reaction_Module_Blockset&amp;diff=4166</id>
		<title>Reaction Module Blockset</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=Reaction_Module_Blockset&amp;diff=4166"/>
		<updated>2018-07-03T09:04:33Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Peak/Hold Controller and the Reaction Module off TimeDefinition block */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
=='''Reaction Module Setup for Injection Timing'''==&lt;br /&gt;
&lt;br /&gt;
Low impedance injector drivers circuits are based upon switching a MOSFET on and off at frequency to regulate load current. The high frequency switching allows the MOSFET to operate in its more thermally efficient saturated region. The circuits typically monitor load current and switch off when that current exceeds a certain threshold referred to as the “switch-off” current. For the 128-pin ECM for example, the switching is done in the hardware through a chopper circuit. This achieves a fixed peak hold current level.&lt;br /&gt;
&lt;br /&gt;
By comparison, the switching for the ECM-OH is accomplished in software through the Reaction Module on the Freescale MPC5644. This gives greater flexibility to the application in setting the current limits at which the circuit will switch off (limits for max peak and max hold current) as well as the fixed amount of time for which the output will be switched off. The Reaction module must be defined, and the Reaction Channels configured for the required timing components and current thresholds to achieve the average current levels required in the application.&lt;br /&gt;
&lt;br /&gt;
The standard PSP blocks (Injector Sequence, Dual PSP, Multiple PSP..) are supported on the ECM-OH, but configuration of the Reaction Module is Required for Injection on the ECM-OH. Peak-Hold timing is configured by the Reaction Module, and the peak-hold input port on the sequence blocks is ignored.&lt;br /&gt;
&lt;br /&gt;
The Reaction Module Configuration blocks are located in the Module Configuration library of MotoHawk.&lt;br /&gt;
&lt;br /&gt;
This article will give an overview of the Reaction Channel Blocks. Refer to the Block Help for each block for detailed descriptions of the block usage, limitations, and design considerations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/ReactionModule.html Reaction Module Definition block]===&lt;br /&gt;
&lt;br /&gt;
This block MUST be placed in the model if injection is required. It defines the global configurations of Freescale Semiconductor’s Reaction Module. If this block is not placed in the model, the following build error will result.&lt;br /&gt;
&lt;br /&gt;
ERROR: A ReactionModule with a ModuleResource of REACT was not found in the application descriptor.&lt;br /&gt;
&lt;br /&gt;
[[Image:ReactionModule.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/PHReactionController.html '''Peak/Hold Controller block'''] and the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/ReactionModuleOffTime.html '''Reaction Module off Time Definition block'''] ===&lt;br /&gt;
&lt;br /&gt;
Reaction Channels perform the load current modulation to achieve the desired average current and peak/hold times.&lt;br /&gt;
Once the Reaction Module is Defined, the Reaction Channel Behaviors must Be configured.&lt;br /&gt;
The Peak/Hold Controller block selects the control style to be utilized, which is dependent upon the hardware. Possible styles include&lt;br /&gt;
Peak/Hold with Off Time (PHWOT) and Peak/Hold with Dual Threshold (PHWDT). The controller will allow the Peak Threshold and Hold Threshold values to be&lt;br /&gt;
used with the modulation to be defined. When the PHWOT control style is in use then the Reaction Module off Time Definition block is needed to&lt;br /&gt;
defines the fixed amount of time the channel will turn off, once the threshold value is reached.&lt;br /&gt;
&lt;br /&gt;
As an example, one MotoHawk Reaction Channel Contoller Peak Hold with Off Time block is configured, and the Peak&lt;br /&gt;
Threshold and Hold Threshold are input into the block. Detect Threshold is for fault detection. Also, two Reaction&lt;br /&gt;
Module Off Time Definition blocks are used in this example. One is controlling the off time for the peak section of the injector output, and the other is controlling the off time for the hold portion. This could be configured differently to fit the specific application needs.&lt;br /&gt;
&lt;br /&gt;
[[Image: PHWOT1.PNG]]&lt;br /&gt;
&lt;br /&gt;
In the waveform below, the injector turns on. Initially it is in the peak portion of the signal. When the Peak Threshold is reached, the output is shut off for the Peak Off Time defined by the Timer block. Similarly, in the Hold portion of the signal, when the Hold Threshold is reached, the hold output shuts off for the Hold Off Time.&lt;br /&gt;
&lt;br /&gt;
[[Image:PHWOT_Waveforms.PNG]]&lt;br /&gt;
&lt;br /&gt;
=== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/ReactionPHWOTChannelDefinition.html '''Peak/Hold with Off Time (PHWOT) Channel Definition Block'''] ===&lt;br /&gt;
&lt;br /&gt;
The Reaction Channels are associated to Injector Outputs with the Peak/Hold with Off Time (PHWOT) Channel Definition Block. A controller can be used by more than one channel and so the same controller definition could be used to define how all the injectors on a module operate.&lt;br /&gt;
Below, as one example, one Reaction Channel Controller resource is defined, and it is associated to 6 injectors.&lt;br /&gt;
&lt;br /&gt;
[[Image:PHWOT_Defn_Example_6.PNG]]&lt;br /&gt;
&lt;br /&gt;
=== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/TimedPeakHold.html '''Timed Peak Hold'''] ===&lt;br /&gt;
The Reaction Channel Controller Peak Hold with Off Time block also has a checkbox for enabling timed peak hold. When this box is checked, the Timed Peak Hold block is used to define the peak time. Peak time set in the Injection blocks (ex. sequence block) is ignored.&lt;br /&gt;
&lt;br /&gt;
[[Image:TimedPeakHold.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/ReactionChannelStatus.html '''Reaction Module Status'''] ===&lt;br /&gt;
&lt;br /&gt;
The Reaction Module Status block can be used to determine the status of the Reaction Module.&lt;br /&gt;
The status is described by an enumeration of possible status events. &lt;br /&gt;
* 0 = OK &lt;br /&gt;
 &lt;br /&gt;
* 1 = Channel Failed to Create &lt;br /&gt;
 &lt;br /&gt;
* 2 = Timer Allocation Error occurred since status was last queried &lt;br /&gt;
 &lt;br /&gt;
* 3 = Resource Allocation Error occurred since status was last queried&lt;br /&gt;
 &lt;br /&gt;
* 4 = Parent Reaction Module Not Created &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Channel Failed to Create'''&amp;lt;/big&amp;gt; &lt;br /&gt;
A software issue has prevented the Reaction Channel from creating. The Reaction Channel behavior won't operate. The output will be disabled. &lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
An example subsystem showing the Reaction Module blockset is attached.  You must be logged into the MCS website to download the example.&lt;br /&gt;
&lt;br /&gt;
[http://mcs.woodward.com/content/motohawk/examples/reaction_module_example.slx Reaction Module Example]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Timer Allocation Error'''&amp;lt;/big&amp;gt; &lt;br /&gt;
The reaction module supports a pool of internal timers that are shared by all of the reaction channels and is of a finite size. A timer may be required during a reaction channel's modulation sequence. For example the PHWOT Reaction Channel behavior utilizes one of these shared timers to implement its peak phase. This error is issued if a channel required a timer, but there was not one available. The reaction channel setup and/or control will need to be modified to prevent this error from occurring. It is brought about by limitations in the Reaction Module silicon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Resource Allocation Error'''&amp;lt;/big&amp;gt; There were internal software issues that are preventing the reaction channel operating as expected. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Parent Reaction Module Not Created'''&amp;lt;/big&amp;gt; &lt;br /&gt;
This channel is dependent upon the Reaction Module creating successfully, which did not occur. The output will be disabled.&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=Compilers&amp;diff=4161</id>
		<title>Compilers</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=Compilers&amp;diff=4161"/>
		<updated>2018-06-14T07:40:49Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Using CodeWarrior */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Supported Compilers ==&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
!Module / Family &lt;br /&gt;
!Green Hills Compiler 3.6&lt;br /&gt;
!Green Hills Compiler 4.2.1&lt;br /&gt;
!Green Hills Compiler 4.2.4&lt;br /&gt;
!GCC 4.4.0SP1&lt;br /&gt;
!GCC 4.6.0&lt;br /&gt;
!CodeWarrior 4.6&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|GCM-0S12-024 &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X &lt;br /&gt;
|-&lt;br /&gt;
|ECM-S12X-70&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X &lt;br /&gt;
|-&lt;br /&gt;
|ECM-0S12-024&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X &lt;br /&gt;
|-&lt;br /&gt;
|ECM-5554-112&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECM-564x-112&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECM-5634M-70&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HCM-0563-48&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GCM-0563-48 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECM-0563-48&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GCM-0565-024 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
||ECU-0565-128 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECU-0555-80 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECU-0555-48 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECM-3R&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GCC Compilers ==&lt;br /&gt;
&lt;br /&gt;
GCC is a free open source GNU compiler that can be used with the MCS floating point PowerPC ECUs.&lt;br /&gt;
&lt;br /&gt;
GCC Cannot be used with the S12/S12X modules.  CodeWarrior is required.&lt;br /&gt;
&lt;br /&gt;
'''MotoHawk Version Requirements:'''&lt;br /&gt;
Support for the GCC compilers was added in MotoHawk 2009b SP0.  MotoHawk versions lower than 2009b SP0 must use the Greenhills compiler.&lt;br /&gt;
Motohawk 2009b through 2011a supports GCC 4.4.0 SP1&lt;br /&gt;
Beginning in 2011b, support for GCC 4.4.0 SP1 was replaced by GCC 4.6.0&lt;br /&gt;
&lt;br /&gt;
The GCC compilers can be downloaded from the Woodward Software Products [http://www.woodward.com/software.aspx here]. Enter GCC as the search item. This should then reveal the available GCC downloads.&lt;br /&gt;
&lt;br /&gt;
'''eabi vs eabi SPE'''&lt;br /&gt;
''There are two GCC compilers.''&lt;br /&gt;
* GCC PowerPC eabi is for use with the MPC 5xx processors, such as the GCM/HCM/ECM-0563-48, ECM-555-080, ECM-555-48, and ECM-0565-128 modules.&lt;br /&gt;
* GCC PowerPC eabi '''SPE''' is for use with the MPC 5xxx processors, such as the ECM-5554-112 module.&lt;br /&gt;
&lt;br /&gt;
== Green Hills Compiler ==&lt;br /&gt;
&lt;br /&gt;
The Green Hills Compiler (GHS) is a part of the installed program requirements for using MotoHawk. GHC is used with MATLAB and MotoHawk for the purpose of helping compile the programs to be used with targeted MotoHawk ECMs. GHS is useful for compiling programs for the ECMs featuring the Freescale 5xx and 55xx processors.&lt;br /&gt;
&lt;br /&gt;
== Green Hills Compiler Installation ==&lt;br /&gt;
To install the GHC application from a CD: &lt;br /&gt;
&lt;br /&gt;
#Insert CD in drive. Click Start-&amp;gt;Run and double-click Setup.exe. &amp;lt;BR&amp;gt;Follow on-screen instructions. (try to leave the default install directory) &amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
#If you do not already have a license launch the License Request Generator:&amp;lt;BR&amp;gt;In Windows, select '''Start-&amp;gt;All Programs-&amp;gt;Multi2000, PowerPC v3.6-&amp;gt;Licensing-&amp;gt;License Request Generator'''&amp;lt;BR&amp;gt;You may want to request an evaluation license initially. This will help get you started faster.&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
#If you have a license run the License installer:&amp;lt;BR&amp;gt;In Windows, select '''Start-&amp;gt;All Programs-&amp;gt;Multi2000, PowerPC v3.6-&amp;gt;Licensing-&amp;gt;Install Licenses'''&amp;lt;BR&amp;gt;&lt;br /&gt;
#Select your .key file and then install all the licenses. &amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using GHS ==&lt;br /&gt;
&lt;br /&gt;
Before using GHC with MotoHawk, there are a few items to consider: &lt;br /&gt;
* If targeted, the 5xx-based processors default to using GHS 3.6, although they work with later versions(4.2.1). &lt;br /&gt;
* The 55xx-based  processors default to using GHS 4.2.1 and will work with later versions, but will not work with GHS 3.6. &lt;br /&gt;
* '''If you are using GHS version 4.2.1''', you will need to specify the License Manager. To do this, you would create and set an environment variable GHS_LMWHICH and set its value to &amp;quot;elan.&amp;quot;&amp;lt;BR&amp;gt;* If you are not going to use the default compiler version you will need to set an environment variable. Set GHS_DIR to the directory which has the compiler you want to use; the default for 4.2.1 is &amp;quot;C:\GHS\ppc421&amp;quot;  (other versions follow this naming convention).&lt;br /&gt;
* There is also a Tool Chain block in MotoHawk that will allow you to select which compiler to use, if necessary. Find it using Simulink Library Browser; it is located in the MotoHawk-&amp;gt;Build library.&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
'''Note:'''  To set an environment variable:&amp;lt;BR&amp;gt;In Windows, select '''Start-&amp;gt;(right-click)My Computer-&amp;gt;Properties-&amp;gt;Advanced tab-&amp;gt;Environment Variables''', then click on New, and fill in the Variable name and value, then click OK.&lt;br /&gt;
&lt;br /&gt;
== Common GHS Issues ==&lt;br /&gt;
*Matlab returns an error ===Green Hills Compiler License Not Available===&amp;lt;BR&amp;gt;&lt;br /&gt;
#Check that GHS purple dongle is plugged in&lt;br /&gt;
#Check that GHS_DIR is pointing to the correct compiler directory&lt;br /&gt;
#Check that the license is installed correctly&lt;br /&gt;
&lt;br /&gt;
*At install of the license a warning box pops up saying Server Code Mismatch:&amp;lt;BR&amp;gt;&lt;br /&gt;
:The license you specified were created for a different server code. Your server code has either changed since you requested your license, or you are trying to install them on the wrong machine. Please consult the documentation or contact the Green Hills license administrator for assistance.&lt;br /&gt;
# Verify that the USB or parallel port is working correctly.&lt;br /&gt;
# Log in as Administrator&lt;br /&gt;
# Unplug the key(s).&lt;br /&gt;
# Remove the old Sentinel Protection Server/Driver/Combo and reinstall the Sentinel Protection Installer.  Go to Start &amp;gt; Settings &amp;gt; Control Panel &amp;gt; Add or Remove Programs (Vista is Programs and Features).  Select both the Sentinel Protection Installer and Sentinel System Driver, and then click Remove.&lt;br /&gt;
# Shut Down and Restart the computer system&lt;br /&gt;
# Download and install the new Sentinel Protection Installer at http://www.safenet-inc.com/support/tech/latestdriver.asp.  NOTE: If you are using Standalone applications, you can do the custom install and you can uncheck Server from the installation.  The Sentinel Keys Server only needs to be installed on a SHK key server computer.  The Sentinel Protection Server only needs to be installed on a SuperPro and/or UltraPro key server computer.&lt;br /&gt;
# Plug in the key(s).&lt;br /&gt;
# Download the Medic utility http://www.safenet-inc.com/support/files/SuperproMedic.exe or http://www.safenet-inc.com/support/files/sam1.2.exe and run it to make sure the key(s) is being detected correctly.  Medic does not detect the 64-bit operating system version correctly.  If Medic detects the key, then the computer, operating system, port, key and driver are working correctly.&lt;br /&gt;
&lt;br /&gt;
== CodeWarrior Installation ==&lt;br /&gt;
To install the CodeWarrior application from a CD: &lt;br /&gt;
&lt;br /&gt;
#Insert CD in drive. Click Start-&amp;gt;Run and double-click Setup.exe. &amp;lt;BR&amp;gt;Follow on-screen instructions. (try to leave the default install directory) &amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
== Using CodeWarrior ==&lt;br /&gt;
&lt;br /&gt;
Before using CodeWarrior with MotoHawk, there are a few items to consider: &lt;br /&gt;
* The S12 processors default to using CodeWarrior 4.6, which is a legacy compiler. The [http://www.nxp.com/products/software-and-tools/software-development-tools/codewarrior-development-tools/downloads/codewarrior-legacy-downloads:CW_LEGACY?fsrch=1&amp;amp;sr=6&amp;amp;pageNum=1 NXP legacy downloads] page may provide an avenue to obtain CodeWarrior 4.6. An NXP Service Request could also be used to request this version.&lt;br /&gt;
* S12 targets in MotoHawk 2017b onward also support CodeWarrior 5.2, which is an active product. [https://www.nxp.com/support/developer-resources/software-development-tools/codewarrior-development-tools/codewarrior-legacy/codewarrior-development-studios/codewarrior-for-microcontrollers/codewarrior-development-studio-for-hcs12x-microcontrollers-classic-ide-v5.2:CW-HCS12X CodeWarrior 5.2 NXP link]&lt;br /&gt;
* If you are not going to use the default compiler version you will need to set an environment variable. Set CW_DIR to the directory which has the compiler you want to use; the default for 4.7 is &amp;quot;C:\Program Files\Freescale\CodeWarrior for HCS12 V4.7&amp;quot;  (other versions follow this naming convention).&lt;br /&gt;
* There is also a Tool Chain block in MotoHawk that will allow you to select which compiler to use, if necessary. Find it using Simulink Library Browser; it is located in the MotoHawk-&amp;gt;Build library.&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
'''Note:'''  To set an environment variable:&amp;lt;BR&amp;gt;In Windows, select '''Start-&amp;gt;(right-click)My Computer-&amp;gt;Properties-&amp;gt;Advanced tab-&amp;gt;Environment Variables''', then click on New, and fill in the Variable name and value, then click OK.&lt;br /&gt;
&lt;br /&gt;
If you are using CodeWarrior on a 64-bit machine, select 'Custom' install and de-select to install Debugging.&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=MotoHawk&amp;diff=4160</id>
		<title>MotoHawk</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=MotoHawk&amp;diff=4160"/>
		<updated>2018-06-14T07:32:42Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Compilers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:MotoHawk_304x74.png|center|MotoHawk Logo]]&lt;br /&gt;
==Woodward MotoHawk® Software==&lt;br /&gt;
&lt;br /&gt;
Your Rapid Controls Development Software&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
MotoHawk® is a rapid controls system development tool that allows controls engineers to quickly create controls software within Simulink® diagrams, which run on any MotoHawk-enabled electronic control modules. Successfully used in thousands of production applications, MotoHawk supports control feature development, vehicle calibration, and fleet testing. It allows a variety of applications using both single controller and distributed by-wire implementations.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:mh333.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''The MotoHawk Advantage''' &lt;br /&gt;
&lt;br /&gt;
MotoHawk is a powerful development and prototyping system for Simulink/Stateflow users. Control models prototyped with MotoHawk move seamlessly from development into production.&lt;br /&gt;
&lt;br /&gt;
== Benefits of Model Based Design ==&lt;br /&gt;
&lt;br /&gt;
* Simpler, faster development cycle that is flexible to unanticipated changes.&lt;br /&gt;
* Model Re-Use - sections of application logic can be stored in controlled libraries for re-use (on different hardware also)&lt;br /&gt;
* Hardware can be used generically for multitude of applications&lt;br /&gt;
* Testing can be done using the real produciton control hardware - prototype to produciton with the same hardware&lt;br /&gt;
* Readable documentation of system design automatically created from models&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;'''Go from concept to production with less time and less cost.'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Features &lt;br /&gt;
&lt;br /&gt;
• Auto-code generation of Simulink/Stateflow models using Embedded Coder/Stateflow Coder &amp;lt;br&amp;gt;&lt;br /&gt;
• Rugged controllers for prototyping and production &amp;lt;br&amp;gt;&lt;br /&gt;
• ControlCore-enabled software &amp;lt;br&amp;gt;&lt;br /&gt;
• Off-the-shelf engine control libraries &amp;lt;br&amp;gt;&lt;br /&gt;
• Calibration using MotoTune® or open-protocol tools (CCP/XCP)&amp;lt;br&amp;gt;&lt;br /&gt;
• Responsive engineering and support services for a wide range of applications &amp;lt;br&amp;gt;&lt;br /&gt;
• Electronic control modules available for development, fleet and production &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Benefits &lt;br /&gt;
&lt;br /&gt;
• Simpler, faster development &amp;lt;br&amp;gt;&lt;br /&gt;
• Better testing using real production ECM hardware &amp;lt;br&amp;gt;&lt;br /&gt;
• Quickly develop and enhance software features in Simulink &amp;lt;br&amp;gt;&lt;br /&gt;
• Analyze and control real-time OS from Simulink/Stateflow &amp;lt;br&amp;gt;&lt;br /&gt;
• Direct access to the production controller’s I/O from Simulink &amp;lt;br&amp;gt;&lt;br /&gt;
• Readable documentation of system design automatically created from models &amp;lt;br&amp;gt;&lt;br /&gt;
• Lower cost for fleet testing; outfit an entire test fleet with rapid prototyping capability &amp;lt;br&amp;gt;&lt;br /&gt;
• Custom block-set allows for integration of both handwritten and auto-code &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Simulink® is a trademark of The MathWorks, Inc.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &lt;br /&gt;
MotoHawk is a critical component in a [http://en.wikipedia.org/wiki/Model-based_design model-based] software design process.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Application developers work directly in the Simulink environment with a one step (CNTL-B) build that goes from application model to flash on Woodward Production Hardware.&lt;br /&gt;
&lt;br /&gt;
[[image:MH_Simulink.png|center]]&lt;br /&gt;
&lt;br /&gt;
== MotoHawk's Role in Model Based Design ==&lt;br /&gt;
MotoHawk is a Toolbox to Simulink and is the glue that connects the Model Based Developer with the Woodward MotoHawk Control Core enabled Hardware.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:puzzle.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
== Where to Download MotoHawk ==&lt;br /&gt;
MotoHawk can be downloaded from the [http://www.woodward.com/software.aspx Software Page of Woodward.com].  Just type MotoHawk in the search box.&lt;br /&gt;
&lt;br /&gt;
== How is MotoHawk Licensed? ==&lt;br /&gt;
MotoHawk is licensed by a silver USB dongle that is placed in the USB port of the computer.  All new MotoHawk purchases come with a dongle licensed for 2008a - Current Service Pack Release + 1.&lt;br /&gt;
&lt;br /&gt;
This means that if the current SP release at the time of purchase is 2012b SP0, then the dongle would ship licensed for      2008a-2013a.   (next release after 2012b is 2013a).&lt;br /&gt;
&lt;br /&gt;
MotoHawk maintanance can be purchased later to then add additional MotoHawk licensed versions to the dongle. &lt;br /&gt;
&lt;br /&gt;
See [[MotoHawk_and_MotoTools_Licensing|MotoHawk and MotoTools Licensing]] for more information.&lt;br /&gt;
&lt;br /&gt;
==MotoHawk Blockset Help==&lt;br /&gt;
&lt;br /&gt;
Want to Preview the MotoHawk Library, without installing MotoHawk?   &lt;br /&gt;
&lt;br /&gt;
You can find descriptions for each block in the MotoHawk library below, or by searching by block name.&lt;br /&gt;
See: [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/motohawk_blocks.html MotoHawk Blockset Help]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== What is Required to Use MotoHawk? ==&lt;br /&gt;
=== Mathworks Software ===&lt;br /&gt;
MotoHawk requires the following software be installed -&lt;br /&gt;
&lt;br /&gt;
1. Matlab &amp;lt;br&amp;gt;&lt;br /&gt;
2. Simulink &amp;lt;br&amp;gt;&lt;br /&gt;
3. Matlab Coder &amp;lt;br&amp;gt;&lt;br /&gt;
4. Embedded Coder &amp;lt;br&amp;gt;&lt;br /&gt;
5. Simulink Coder &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Stateflow, Stateflow Coder, or Fixed Point Toolboxes are optional.&lt;br /&gt;
&lt;br /&gt;
The Mathworks Tools are purchased separately from the Mathworks and are not included with MotoHawk&lt;br /&gt;
&lt;br /&gt;
=== MotoTune Software ===&lt;br /&gt;
[[MotoTune]] is used to Program the ECU, and for Calibration.  Industry Standard tools that use CCP or XCP may also be used for calibration.&amp;lt;br/&amp;gt;&lt;br /&gt;
Another Woodward software package used for monitoring of parameters is the [[ToolKit_Custom_HMI_Software|Toolkit HMI Software]].  ToolKit can program a subset of the modules.&lt;br /&gt;
&lt;br /&gt;
=== Compilers ===&lt;br /&gt;
&lt;br /&gt;
MotoHawk 5xx and 55xx can use an open source GCC compiler or Greenhills compiler.  &lt;br /&gt;
&lt;br /&gt;
The S12 modules use Codewarrior by Freescale.&lt;br /&gt;
&lt;br /&gt;
[[Compilers|See Here for More Information on Supported Compilers]]&lt;br /&gt;
&lt;br /&gt;
The GCC Compilers can be downloaded from the [http://www.woodward.com/software.aspx Software Page of Woodward.com].  Type GCC in the searchbox and leave other parameters as the default.&lt;br /&gt;
&lt;br /&gt;
Greenhills may be purchased from Woodward as a node-locked or dongle license, or directly from Greenhills.  Greenhills licenses purchased from Woodward do not contain maintanance from Greenhills.&lt;br /&gt;
&lt;br /&gt;
Codewarrior compilers must be purchased from NXP.&lt;br /&gt;
&lt;br /&gt;
=== Additional Blocksets give added Functionality ===&lt;br /&gt;
&lt;br /&gt;
In addition to the extensive MotoHawk library, users can optionally purchase specialized blocksets to add additional power to the application design.   Additional blocksets include:&lt;br /&gt;
&lt;br /&gt;
* [[ISO_15765|ISO15765/UDS]] Woodward part number 1796-3084.&lt;br /&gt;
* [http://mcs.woodward.com/content/motohawk/Documentation/SAEJ1939/SAEJ1939_Blocks.html J1939] Woodward part number 5418-6688 (distributed with MotoHawk from version 2016b beta 4 onward) &lt;br /&gt;
* MotoHawk MODBUS Library, Woodward part number 5418-7010 (coming soon)&lt;br /&gt;
* MotoHawk CANOpen Library, Woodward part number 5418-7011 (coming soon)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  MotoHawk Development Kits ==&lt;br /&gt;
A MotoHawk Development kit is available for users who are getting started.  This contains the the MotoHawk &amp;amp; MotoTune software and licenses, plus all of the cables/harnesses required to get started with MotoHawk.  &lt;br /&gt;
&lt;br /&gt;
* Purchase MotoHawk kit  (8928-1172)&lt;br /&gt;
* Purchase a [[Modules|MotoHawk Enabled Control Module]]&lt;br /&gt;
* Purchase a Development Harness for the ECU  (see link above for part numbers)&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
* [[Boot_key_recovery|Boot Key]] or Boot Cable  &lt;br /&gt;
* ECU Connector kit &lt;br /&gt;
&lt;br /&gt;
The Mathworks software must be purchased from the Mathworks separately.&lt;br /&gt;
&lt;br /&gt;
[[Image:MotoHawk_Kit.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== MATLAB version support ==== &lt;br /&gt;
MotoHawk versions support a subset of MATLAB versions.  In older versions (2008b and earlier), MATLAB versions 6.5.1 to 2009a were supported.  Beginning with MotoHawk 2009a, the subset is smaller.  See table below for MotoHawk / MATLAB version support:&lt;br /&gt;
&lt;br /&gt;
====MotoHawk Compatibility Matrix====&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 75%&amp;quot;&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 15%&amp;quot;|MATLAB Version !! colspan=&amp;quot;19&amp;quot;| MotoHawk Version&lt;br /&gt;
|-&lt;br /&gt;
! 2009a !! 2009b !! 2010a !! 2010b !! 2011a !! 2011b !! 2012a !! 2012b !! 2013a !! 2013b !! 2014a !! 2014b !! 2015a !! 2015b !! 2016a !! 2016b !! 2017a !! 2017b !! 2018a&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''7.4    (R2007a)'''     || {{Y}} || {{N}} || {{N}} || {{N}}    || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}}  || {{N}}&lt;br /&gt;
|-&lt;br /&gt;
| '''7.5    (R2007b)'''     || {{Y}} || {{Y}} || {{Y}} || {{N}}    || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}}  || {{N}}&lt;br /&gt;
|-&lt;br /&gt;
| '''7.6    (R2008a)'''     || {{Y}} || {{Y}} || {{Y}} || {{N}}    || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}}  || {{N}}&lt;br /&gt;
|-&lt;br /&gt;
| '''7.7    (R2008b)'''     || {{Y}} || {{Y}} || {{Y}} || {{Y}}    || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}}  || {{N}}&lt;br /&gt;
|-&lt;br /&gt;
| '''7.8    (R2009a)'''     || {{Y}} || {{Y}} || {{Y}} || {{Y}}    || {{Y}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}}  || {{N}}&lt;br /&gt;
|-&lt;br /&gt;
| '''7.9    (R2009b)'''     || {{Y}} || {{Y}} || {{Y}} || {{Y}}    || {{Y}} || {{Y}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}}  || {{N}}&lt;br /&gt;
|-&lt;br /&gt;
| '''7.9.1  (R2009bSP1)'''  || {{N}} || {{N}} || {{N}} || {{N}}    || {{Y}} || {{Y}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}}  || {{N}}&lt;br /&gt;
|-&lt;br /&gt;
| '''7.10   (R2010a)'''     || {{N}} || {{N}} || {{Y}} || {{Y}}    || {{Y}} || {{Y}} || {{Y}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}}  || {{N}}&lt;br /&gt;
|-&lt;br /&gt;
| '''7.11   (R2010b)'''     || {{N}} || {{N}} || {{N}} || {{Y}}(*) || {{Y}} || {{Y}} || {{Y}} || {{Y}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}}  || {{N}}&lt;br /&gt;
|-&lt;br /&gt;
| '''7.11.1 (R2010bSP1)'''  || {{N}} || {{N}} || {{N}} || {{Y}}(*) || {{Y}} || {{Y}} || {{Y}} || {{Y}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}}  || {{N}}&lt;br /&gt;
|-&lt;br /&gt;
| '''7.11.2 (R2010bSP2)'''  || {{N}} || {{N}} || {{N}} || {{N}}    || {{N}} || {{N}} || {{Y}} || {{Y}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}}  || {{N}}&lt;br /&gt;
|-&lt;br /&gt;
| '''7.12   (R2011a)'''     || {{N}} || {{N}} || {{N}} || {{N}}    || {{Y}} || {{Y}} || {{Y}} || {{Y}} || {{Y}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}}  || {{N}}&lt;br /&gt;
|-&lt;br /&gt;
| '''7.13   (R2011b)'''     || {{N}} || {{N}} || {{N}} || {{N}}    || {{N}} || {{Y}} || {{Y}} || {{Y}} || {{Y}} || {{Y}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}}  || {{N}}&lt;br /&gt;
|-&lt;br /&gt;
| '''7.14   (R2012a)'''     || {{N}} || {{N}} || {{N}} || {{N}}    || {{N}} || {{N}} || {{Y}} || {{Y}} || {{Y}}|| {{Y}} || {{Y}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}}  || {{N}}&lt;br /&gt;
|-&lt;br /&gt;
| '''8.0    (R2012b)'''     || {{N}} || {{N}} || {{N}} || {{N}}    || {{N}} || {{N}} || {{N}} || {{Y}} || {{Y}} || {{Y}} || {{Y}} || {{Y}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}}  || {{N}}&lt;br /&gt;
|-&lt;br /&gt;
| '''8.1    (R2013a)'''     || {{N}} || {{N}} || {{N}} || {{N}}    || {{N}} || {{N}} || {{N}} || {{N}} || {{Y}} || {{Y}} || {{Y}} || {{Y}} || {{Y}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}}  || {{N}}&lt;br /&gt;
|-&lt;br /&gt;
| '''8.2    (R2013b)'''     || {{N}} || {{N}} || {{N}} || {{N}}    || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{Y}} || {{Y}} || {{Y}} || {{Y}} || {{Y}} || {{N}} || {{N}} || {{N}} || {{N}}  || {{N}}&lt;br /&gt;
|-&lt;br /&gt;
| '''8.3    (R2014a)'''     || {{N}} || {{N}} || {{N}} || {{N}}    || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{Y}} || {{Y}} || {{Y}} || {{Y}} || {{Y}} || {{N}} || {{N}} || {{N}}  || {{N}}&lt;br /&gt;
|-&lt;br /&gt;
| '''8.4    (R2014b)'''     || {{N}} || {{N}} || {{N}} || {{N}}    || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{Y}} || {{Y}} || {{Y}} || {{Y}} || {{Y}} || {{N}} || {{N}}  || {{N}}&lt;br /&gt;
|-&lt;br /&gt;
| '''8.5.1    (R2015a)'''     || {{N}} || {{N}} || {{N}} || {{N}}    || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{Y}} || {{Y}} || {{Y}} || {{Y}} || {{Y}} || {{N}}  || {{N}}&lt;br /&gt;
|-&lt;br /&gt;
| '''8.5    (R2015aSP1)'''  || {{N}} || {{N}} || {{N}} || {{N}}    || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{Y}}(*) || {{Y}} || {{Y}} || {{Y}} || {{Y}} || {{N}}  || {{N}}&lt;br /&gt;
|-&lt;br /&gt;
| '''8.6    (R2015b)'''     || {{N}} || {{N}} || {{N}} || {{N}}    || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{Y}} || {{Y}} || {{Y}} || {{Y}} || {{Y}}  || {{N}}&lt;br /&gt;
|-&lt;br /&gt;
| '''9.0    (R2016a)'''     || {{N}} || {{N}} || {{N}} || {{N}}    || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{Y}} || {{Y}} || {{Y}} || {{Y}}  || {{Y}}&lt;br /&gt;
|-&lt;br /&gt;
| '''9.1    (R2016b)'''     || {{N}} || {{N}} || {{N}} || {{N}}    || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{Y}} || {{Y}} || {{Y}}  || {{Y}}&lt;br /&gt;
|-&lt;br /&gt;
| '''9.2    (R2017a)'''     || {{N}} || {{N}} || {{N}} || {{N}}    || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{Y}} || {{Y}}  || {{Y}}&lt;br /&gt;
|-&lt;br /&gt;
| '''9.3    (R2017b)'''     || {{N}} || {{N}} || {{N}} || {{N}}    || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{Y}}  || {{Y}}&lt;br /&gt;
|-&lt;br /&gt;
| '''9.4    (R2018a)'''     || {{N}} || {{N}} || {{N}} || {{N}}    || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}} || {{N}}  || {{Y}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* (*) in SP1 only&lt;br /&gt;
* (A) in current beta&lt;br /&gt;
* (B) planned in future beta or service pack&lt;br /&gt;
&lt;br /&gt;
=== Toolchain independent ===&lt;br /&gt;
Beginning with MotoHawk 2009b,  alpha level support for [[MotoHawk:Reference:Using_GCC_With_MotoHawk|GCC]] is included in MotoHawk.  GCC is considered Alpha level in 2009b and 2010a, and Beta forward.&lt;br /&gt;
&lt;br /&gt;
For more information, see [[MotoHawk:Reference:Using_GCC_With_MotoHawk|Using GCC with MotoHawk]].&lt;br /&gt;
&lt;br /&gt;
== Design Principles ==&lt;br /&gt;
&lt;br /&gt;
As a developer of MotoHawk, these are the fundamental rules that must be obeyed.  It is a mission statement of sorts that drives the high quality, flexibility and consistency of MotoHawk.  It also illustrates the direction of our technology as we strive to improve our tool.&lt;br /&gt;
&lt;br /&gt;
==== All input/output ports are integer types ==== &lt;br /&gt;
With many different module types and interfaces, it is possible to have modules that do not support floating point.  Therefore all edges to the OS must have integer types.&lt;br /&gt;
&lt;br /&gt;
==== All blocks are as complicated as they need to be ==== &lt;br /&gt;
Due the variation in applications developed by MotoHawk, developers want to use different behaviors in vastly different ways.  Therefore, blocks that overcomplicate a basic behavior are not desired.&lt;br /&gt;
&lt;br /&gt;
==== Optimized Build Process ====&lt;br /&gt;
Woodward's build process uses Mathworks Embedded Coder, a full featured production intent coder.   The MotoHawk build process also features MotoCoder Technology - which optimizes the build for memory use  (less Flash and less RAM used per build) using Optimized Driver Inclusion.   If an output is not used, it is not included in the build.  MotoCoder technology also allows ports to new hardware to occur very rapidly via software re-use, and behavior added for one module is often easily applied to another module.&lt;br /&gt;
&lt;br /&gt;
== 64-Bit ==&lt;br /&gt;
MotoHawk Versions Prior to 2010a Do Not Support 64-Bit Windows, Windows 7, or 64-Bit Matlab.&lt;br /&gt;
&lt;br /&gt;
Support for 64-bit Windows 7 was added in MotoHawk 2010a.  Only 32-Bit MATLAB is supported by MotoHawk 2010a.  64-Bit Matlab is NOT supported in MH2010a.&lt;br /&gt;
&lt;br /&gt;
64-Bit MATLAB is supported in MotoHawk 2010b and Higher.&lt;br /&gt;
&lt;br /&gt;
== 32-bit Windows == &lt;br /&gt;
&lt;br /&gt;
Matlab 2016a and later no longer support any 32-bit Windows operating systems.  MotoHawk 2018a is scheduled to be released without any 32-bit Windows support.&lt;br /&gt;
&lt;br /&gt;
== Windows 7 ==&lt;br /&gt;
MotoHawk support for Windows 7 was added in MotoHawk 2010a.  &lt;br /&gt;
&lt;br /&gt;
== Windows 8 ==  &lt;br /&gt;
Windows 8 is supported starting with  MotoHawk 2013b SP0.&lt;br /&gt;
&lt;br /&gt;
'''Known Issue''' &lt;br /&gt;
    The MotoHawk installer will have an issue supporting multiple versions of MotoHawk on machines which do not previously&lt;br /&gt;
    have .NET 2.0 installed.  If multiple versions of MotoHawk are intended, it is recommended to ensure [http://www.microsoft.com/en-us/download/details.aspx?id=3005 .NET 3.0 SP1] &lt;br /&gt;
    (includes .NET 2.0) is installed before installing the first MotoHawk version.&lt;br /&gt;
&lt;br /&gt;
== Windows 10 ==  &lt;br /&gt;
MotoHawk is compatible with Windows 10 starting with MotoHawk 2015b.&lt;br /&gt;
&lt;br /&gt;
'''Known Issue''' &lt;br /&gt;
    The MotoHawk installer will have an issue supporting multiple versions of MotoHawk on machines which do not previously&lt;br /&gt;
    have .NET 2.0 installed.  If multiple versions of MotoHawk are intended, it is recommended to ensure [http://www.microsoft.com/en-us/download/details.aspx?id=3005 .NET 3.0 SP1] &lt;br /&gt;
    (includes .NET 2.0) is installed before installing the first MotoHawk version.&lt;br /&gt;
&lt;br /&gt;
== Build Errors ==&lt;br /&gt;
The following category page contains known MotoHawk build errors and workaround/fixes.&lt;br /&gt;
&lt;br /&gt;
[[:Category:MotoHawk_Build_Errors|Build Errors]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wiki Articles ==&lt;br /&gt;
Here's a list of all the Wiki articles about [http://mcs.woodward.com/support/wiki/index.php?title=Special%3AAllpages&amp;amp;from=MotoHawk&amp;amp;namespace=0 MotoHawk]. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=SECM112&amp;diff=4159</id>
		<title>SECM112</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=SECM112&amp;diff=4159"/>
		<updated>2018-06-14T07:28:23Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Compilers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Module ==&lt;br /&gt;
[[Image:ECM-5644A-112-048-1202-xD.jpg|100px|112 Pin ECM-OH]] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
==Overview==&lt;br /&gt;
The SECM112  is part of the engine management system for on-highway applications, which can include L6 4-stroke CNG intercity transit applications, L6, 4-stroke LNG intercity transit applications, and L4 4-stroke commercial vehicle 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&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The SECM112 features two microprocessors in one rugged production intent housing.  The module contains a main MPC5644 120Mhz processor along with a S12G fixed point processor, which can provide question-answer type challenge to the main processor.  Both micros are connected on CAN1.&lt;br /&gt;
&lt;br /&gt;
The SECM112 is part of the MotoHawk Control Solutions ControlCore® family of embedded control systems. The ControlCore operating system,&lt;br /&gt;
MotoHawk® code generation product, and MotoHawk’s suite of development tools enable rapid development of complex control systems.  Application code for both processors is developed in MotoHawk which allows the application developer to create applications directly in Simulink and build with a one step 'CNTL-B' build.   The two controllers act like separate controllers in terms of programming.  Then, the program can be flashed onto the micro using Woodward's MotoTune, Toolkit, or through industry standard 3rd party tools via xCP, or ISO15765.    &lt;br /&gt;
&lt;br /&gt;
Calibration can  be done with Woodward's MotoTune or Toolkit or with industry standard 3rd Party tools through xCP.&lt;br /&gt;
&lt;br /&gt;
Each controller is available in ‘F’ (Flash) or ‘C’ (Calibratible) versions. Flash modules are typically used for production purposes. Calibratible modules are typically for prototyping/development only; they can be calibrated in real time using MotoTune, ToolKit, or industry standard 3rd party tools via xCP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Power Requirements ==&lt;br /&gt;
All versions of the SECM112 Control require a voltage source of 8 to 32Vdc (12Vdc or 24Vdc nominal).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MotoHawk Requirements ==&lt;br /&gt;
MotoHawk 2012bSP0 or higher is required for SECM112.&lt;br /&gt;
&lt;br /&gt;
This means Matlab 2010b or higher is required, as MotoHawk supports Matlab 2 years backward.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compilers ==&lt;br /&gt;
'''Main Micro''': Green Hills 4.2.4 or GCC PowerPC eabi SPE 4.6&lt;br /&gt;
&lt;br /&gt;
'''Auxillary''':  NXP (formally Freescale) CodeWarrior 4.6 or 5.2&lt;br /&gt;
&lt;br /&gt;
https://www.nxp.com/support/developer-resources/software-development-tools/codewarrior-development-tools/codewarrior-legacy/codewarrior-development-studios/codewarrior-for-microcontrollers/codewarrior-development-studio-for-hcs12x-microcontrollers-classic-ide-v5.2:CW-HCS12X&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Targets ==&lt;br /&gt;
The SECM-112 has different Targets for the MAIN Prod and Dev modules as shown below.  The S12G auxillary processor also has it's own target.  &lt;br /&gt;
&lt;br /&gt;
'''Main Processor''' &lt;br /&gt;
&lt;br /&gt;
1751-6601:  Target ECM-5644A-112-048-1204  DEV &amp;lt;br/&amp;gt;&lt;br /&gt;
1751-6688:  Target ECM-5644A-112-048-1206  DEV with 8 cylinder support&lt;br /&gt;
&lt;br /&gt;
1751-6605: Target ECM-5642A-112-049-1200 PROD &amp;lt;br/&amp;gt;&lt;br /&gt;
1751-6690: Target ECM-5642A-112-049-1201 PROD with 8 cylinder support&lt;br /&gt;
&lt;br /&gt;
'''Auxillary Processor''':  Target ECM-S12G-112-059-1200   PROD Only&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Datasheets ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36364 SECM112 Datasheet (36364)]&lt;br /&gt;
&lt;br /&gt;
== Related Part Numbers ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Part Number !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 8923-1930 || Connector Kit&lt;br /&gt;
|-&lt;br /&gt;
| 8996-2228&amp;lt;br/&amp;gt;8996-2230|| Crimp Tools&lt;br /&gt;
|-&lt;br /&gt;
| 8996-1059&amp;lt;br/&amp;gt;8996-2161|| Removal Tools&lt;br /&gt;
|-&lt;br /&gt;
| 1635-1800 || Boot Key&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1334 || Pig Tail (12 feet )&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1322 || Pig Tail (3 feet)&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1357 || Development Harness&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1335 || Programming Harness&lt;br /&gt;
|-&lt;br /&gt;
| 8923-1404 || Breakout Box&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1321 || Desktop Simulator Harness&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Control Features ==&lt;br /&gt;
[[Image:ECMOH1.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Standard features common to both models are:&lt;br /&gt;
*2 engine speed inputs: camshaft and crankshaft speed (software configurable for variable reluctance (VR) magnetic pickup sensor or Hall effect proximity sensor inputs)&lt;br /&gt;
* Up to 6 frequency inputs (some share analog resources)&lt;br /&gt;
* Up to 33 analog inputs&lt;br /&gt;
* 3 switch inputs&lt;br /&gt;
* 2 HEGO sensor inputs&lt;br /&gt;
* 2 LSU sensor inputs (also known as UEGO sensors)&lt;br /&gt;
* 2 knock sensor inputs&lt;br /&gt;
* 3 transducer power outputs providing +5V (350mA &amp;amp; 100mA) and +12V (100mA)&lt;br /&gt;
* 2 H-bridge driver outputs providing 10A and 5A drive capability and current sense feedback&lt;br /&gt;
* 6 Injector drivers providing software configurable peak and hold current levels (up to 7A/2A)&lt;br /&gt;
* 6 ignition coil drivers&lt;br /&gt;
* MPRD (Master Power Relay Driver) low side output&lt;br /&gt;
* TACH low side output&lt;br /&gt;
* 16 low side output drivers (1 with current sense feedback)&lt;br /&gt;
* 3 CAN (Controller Area Network) communications ports&lt;br /&gt;
* 4K-byte serial EEPROM for tunable parameter storage&lt;br /&gt;
* Auxiliary micro with 128k of flash, 8k of RAM, 4k of EEPROM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
==== Analog Inputs (AN1 – AN34)====&lt;br /&gt;
There are 34 analog inputs on the SECM112. The analog inputs have either a pull-up resistor as shown in Figure 2-12, or a pull-down resistor as shown in&lt;br /&gt;
Figure 2-13. Five analog inputs have a software pull-up or pull-down selection via calibration. AN21 &amp;amp; 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.&lt;br /&gt;
&lt;br /&gt;
The Analog Inputs are [[12-bit_ADC|12-Bit ADC]]&lt;br /&gt;
&lt;br /&gt;
===== Fast Analog Channels =====&lt;br /&gt;
ANx_FAST channels are sampled faster than the equivalent ANx. This is needed on SECM112 because of how ADC bandwidth is consumed. SECM112 utilizes most of the available ADC bandwidth to service the reaction channel’s load current sampling. This means that the continuous scan queue sampling that is used by the other channels will take much longer than it normally takes on other modules. SECM112 FAST channel will be sampled every 90us where as normal channels will sample within 1ms (860us) worst case. The 1ms conversion time is problematic for threads of execution that execute at 1ms since the data is sometimes old and sometimes new. &lt;br /&gt;
&lt;br /&gt;
There is no need for such channels on the other ECUs because the ADC bandwidth is not being consumed like it is on the SECM112 and so all the channels are effectively sampled FAST.&lt;br /&gt;
&lt;br /&gt;
==== Crank and CAM Inputs ====&lt;br /&gt;
The Cam and Crank (CNK) inputs are used to detect engine speed and angular position relative to TDC.   The SECM112 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&lt;br /&gt;
input has dedicated connector pins.  See the SECM112 datasheet for additional detail.&lt;br /&gt;
&lt;br /&gt;
==== Digital Inputs ====&lt;br /&gt;
The SECM112 has 8 Discrete Inputs.  Some may be used as switch inputs, others support frequency measurement.&lt;br /&gt;
&lt;br /&gt;
==== Lambda Sensor Unit (UEGO) Inputs ====&lt;br /&gt;
The SECM112 control has two LSUs (Lambda Sensor Units), also known as UEGO (Universal Exhaust Gas Oxygen) inputs, which interface with Bosch LSU4.9 wide range oxygen sensors (Lambda sensors). The lambda-sensor(s) works in conjunction with the on-board Bosch CJ125 ASIC(s) to provide continuous regulation of  for a sensor in the range of  = 0.65... (air). 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.&lt;br /&gt;
&lt;br /&gt;
==== Knock Sensor Inputs ====&lt;br /&gt;
The SECM112 supports two Knock Sensor inputs.&lt;br /&gt;
&lt;br /&gt;
Knock is implemented on the SECM112 in MotoHawk by the Knock by Decimation blockset.   This is a specialized blockset and is included with Standard MotoHawk in 2014a and higher.&lt;br /&gt;
&lt;br /&gt;
=== Outputs ===&lt;br /&gt;
==== Low-side Outputs (LSO)====&lt;br /&gt;
The SECM112 control has 16 low-side outputs (LSOx &amp;amp; SPK8) that can be used as Boolean outputs for driving relays, or some as PWM outputs. LSO1 and LSO2&lt;br /&gt;
are also designed to drive the heater coil on a LSU sensor. Some low-side outputs are provided with freewheeling diodes (internal to the ECM-OH through&lt;br /&gt;
DRVP or BATT) to suppress the back EMF caused by inductive loads. See the ECM-OH datasheet for low-side output capabilities and characteristics.  The LSOs are clamped and can be used to drive relays.&lt;br /&gt;
&lt;br /&gt;
==== Injector Outputs ====&lt;br /&gt;
The SECM112 control has 6 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.&lt;br /&gt;
&lt;br /&gt;
===== Reaction Module Blockset =====&lt;br /&gt;
The peak-hold current level is software configurable through the [[Reaction_Module_Blockset|MotoHawk Reaction Channel Blockset]].&lt;br /&gt;
&lt;br /&gt;
Peak current cannot be run simultaneously on more than 3 injectors on the SECM112 control.&lt;br /&gt;
&lt;br /&gt;
==== Spark Outputs ====&lt;br /&gt;
The SECM112 has 6 IGBT ignition coil drivers each capable of delivering up to 10A of peak dwell current.&lt;br /&gt;
&lt;br /&gt;
The Spark Outputs can be globally disabled via the main core's discrete output DRVR_ENABLE resource. The behavior of these outputs can also be affected by the [[SECM112#Targets | Auxiliary Processor]] via its ability to disable the Master Power Relay (which will also disable the encoder's Crank and Cam inputs).&lt;br /&gt;
&lt;br /&gt;
A special blockset has been created for control and diagnostics of the MC33810 chip which is the driver for the IGBT coil drivers on the SECM112.  See [[MC33810_Blocks|here]] for more detail on the blocks related to the MC33810.&lt;br /&gt;
&lt;br /&gt;
==== H-bridge Outputs ====&lt;br /&gt;
The SECM112 control has two H-bridge outputs that can be used to drive electric motors like butterfly throttle valves.  The H-Bridge outputs are provided with freewheeling diodes (internal to the SECM112 through DRVP) to suppress the back EMF caused by inductive loads.&lt;br /&gt;
&lt;br /&gt;
The H-bridge Outputs can be disabled by the [[SECM112#Targets | Auxiliary Processor]].&lt;br /&gt;
&lt;br /&gt;
==== MPRD Output ====&lt;br /&gt;
The MPRD Output is a common feature of almost all Woodward ECUs and is used to energize the Master Power Relay under application control.&lt;br /&gt;
&lt;br /&gt;
The MPRD Output can be disabled by the [[SECM112#Targets | Auxiliary Processor]], which also has the side effect of disabling the encoder inputs (Crank and Cam).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Output Fault Detection ==&lt;br /&gt;
Output Fault Detection for the SECM112 is through the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/IOFaultStatus.html IO Fault Status block] and the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/FaultStatusGet.html IO Fault Status Get] block.  This block will report a &amp;quot;0&amp;quot; if the driver is not reporting a fault, a &amp;quot;1&amp;quot; if the driver is detecting a fault, or in some cases a &amp;quot;2&amp;quot; for indeterminate.  The faults that can be detected depend on the capability of the driver.  Outputs driven by the MC33810 driver have additional fault reporting capability that can be exposed through the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810FaultDetail.html MC33810 Fault Detail Block].  This block reports the last fault reported by the MC33810 driver and so the report from this block does not clear when the fault state is removed.  The IO Fault Status block should be used to detect whether a fault condition is detected, and then the detail block can be used to detect which fault was reported.  The fault detection capabilities of the SECM112 outputs are described below:&lt;br /&gt;
&lt;br /&gt;
=== H-Bridges ===&lt;br /&gt;
For the h-bridges, shorted load faults can be reported.  Shorted load reporting for each H-bridge is through overcurrent detection.  See the SECM Hardware Manual for minimum overcurrent threshold values.  Current Monitoring should be used in the application model for further diagnosis, such as for open load detection.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Injectors ===&lt;br /&gt;
SECM112’s injector drivers utilize the microprocessor’s Reaction Module for diagnosis. Reaction module diagnosis is based upon observing current and therefore INJ faults can only be detected when the INJ pins are asserted. Observed faults are cached until reported, where they are then cleared. Detection while not asserted is not possible. Therefore the fault status of an INJ output should only be queried once after an actuation event. Querying too often may result in no fault being reported even if the queried INJ output is currently in fault (e.g. open circuit). The [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/PHWOTReactionChannel.html PHWOT Reaction Channel] MotoHawk help provides further detail.&lt;br /&gt;
&lt;br /&gt;
Currently only the IO Fault Status block allows the fault status of an INJ output to be queried.&lt;br /&gt;
&lt;br /&gt;
=== Spark ===&lt;br /&gt;
The Spark outputs are driven by the IGBT drivers of the [http://www.google.com/url?url=http://www.freescale.com/webapp/sps/site/prod_summary.jsp%3Fcode%3DMC33810&amp;amp;rct=j&amp;amp;frm=1&amp;amp;q=&amp;amp;esrc=s&amp;amp;sa=U&amp;amp;ei=Uli1U7zYA5GcyASd_IH4BQ&amp;amp;ved=0CBQQFjAA&amp;amp;usg=AFQjCNGOgPiWwAV_dZ-bz4R4ETEkNGjTXQ MC33810 driver]. &lt;br /&gt;
&lt;br /&gt;
'''The spark output diagnostics assume the SPK outputs are driving an ignition coil as a load.'''  &lt;br /&gt;
&lt;br /&gt;
Comprehensive fault diagnosis when used with ignition coils is described in the [http://www.google.com/url?url=http://www.freescale.com/webapp/sps/site/prod_summary.jsp%3Fcode%3DMC33810&amp;amp;rct=j&amp;amp;frm=1&amp;amp;q=&amp;amp;esrc=s&amp;amp;sa=U&amp;amp;ei=Uli1U7zYA5GcyASd_IH4BQ&amp;amp;ved=0CBQQFjAA&amp;amp;usg=AFQjCNGOgPiWwAV_dZ-bz4R4ETEkNGjTXQ MC33810 Datasheet].   The diagnostic approach is based upon analysis of multiplexed feedback signals that go to the MC33810 which require that the actuators don’t de-assert (i.e. spark) at the same time.  Overlap is possible with PWM and discrete, therefore, diagnosis is less capable or impossible when the SPK outputs are driven by PWM or Discrete output blocks. &lt;br /&gt;
&lt;br /&gt;
'''Note''' that SPK8 is different from the other SPK outputs in that it is a MOSFET.  SPK8 has short while asserted and open while not asserted detection and can be used with the MC33810 Fault Detail block. It is a GPGD type output and thus can use the MC33810 blocks related to GPGD configuration.  Unlike the other spark outputs, SPK8 diagnosis is fully functional when not being driven with an engine position synchronous behavior.&lt;br /&gt;
&lt;br /&gt;
A special blockset has been created for control and diagnostics of the MC33810 chip which is the driver for the IGBT coil drivers on the SECM112.  See [[MC33810_Blocks|here]] for more detail on the blocks related to the MC33810.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LSOs ===&lt;br /&gt;
There are three types of drivers for the LSOs on the SECM112.  Each has slightly different fault reporting capability which is described below.&lt;br /&gt;
* '''LSO1-6''':  reports open circuit or short to ground while de-asserted and short when asserted. LSO6 has current sense as well. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''LSO 7,8,9,11, 12, 13, 14, TACH:'''  These LSOs are driven by MC33810.  Faults of Open while Asserted, Open while De-asserted, and Short to Battery can be reported.  The IO Fault Status block reports the fault state, however there is also an MC33810 Fault Detail block that gives the last fault reported.   The IO Fault Status block should be used to indentify that there is a fault and then the MC33810 Fault Detail block can identify which fault was reported.  The open while asserted fault is detected through current monitoring.   Currents less than 200mA can cause an open while asserted fault to be reported.  Therefore, if the load current is expected to be under 200mA, the Open While Asserted diagnostic should be disabled via the Open Load While Asserted Configuration block.  A special blockset has been created for control and diagnostics of the MC33810 chip which is the driver for the IGBT coil drivers on the SECM112.  See [[MC33810_Blocks|here]] for more detail on the blocks related to the MC33810.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''LSO10''': reports open or short to GND while de-asserted, and short while asserted.  The IO Fault Status block will report a “2” if no fault is detected, or a “1” if a fault state is detected.  It will not report a &amp;quot;0&amp;quot; (OK).   There is a Fault Detail block that will also report which type of fault (Open or Short) has been detected.   Note that the Fault Detail block can still report indeterminate (2) in some cases, but can more clearly identify whether a particular fault is active. For example, while LSO10 is de-asserted the fault detail for LSO10 will report the open fault as being either OK (0) or in fault (1), but will sometimes intermittently report indeterminate(2). The short to battery would continuously report indeterminate (2) while off. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''LSO15''':  reports open or short to GND while de-asserted, and short while asserted.   There is not a block to detect which fault is being set, but the state of the output (On or Off) could be used in the application model.  This will report “2” if no fault is detected, or a “1” if a fault state is detected. &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Internal Temperature Monitor ===&lt;br /&gt;
The SECM112 has an internal temperature monitor that can be accessed via the '''Get Module Data''' block. So, for example, you could implement a Simulink model that logged the maximum observed MicroTemp to NVM. &lt;br /&gt;
&lt;br /&gt;
[[Image:GetModuleData_JunctionTemp.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Shared Resources between the Main and Auxillary S12 cores ==&lt;br /&gt;
The following are shared between the main and s12G cores:&lt;br /&gt;
&lt;br /&gt;
Analog inputs: AN01-05, AN16, AN17, AN18, AN24, AN31, VCAL, KEYSW&lt;br /&gt;
&lt;br /&gt;
Digital inputs: VR1/DG1 (after mux), DG3, DG4, DG5, DG8, Wake-up (on XIRQ) from main core, reset from main core*, main core status&lt;br /&gt;
&lt;br /&gt;
Comms: CAN1&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* There is a shared line for reset of the S12 by the main core, however, this is not available to the application.  There is no block to set it.   It is currently only used during programming to turn the S12 off to prevent CAN bus errors or erroneous resets&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Communications ===&lt;br /&gt;
==== CAN ====&lt;br /&gt;
The SECM112 has three 2.0B CAN ports for distributed I/O, distributed control, and Human Machine Interface (HMI) purposes.&lt;br /&gt;
&lt;br /&gt;
 Important: The SECM112 is programmed at the factory with a sample application that sets CAN-1 of both the Main and Auxillary Cores to 500k baud rate.   &lt;br /&gt;
 '''Both Cores are internally connected within the ECU on CAN-1'''.&lt;br /&gt;
 '''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.'''&lt;br /&gt;
 '''Each Core must also have a Unique City ID for MotoTune defined in the CAN Definition Block'''&lt;br /&gt;
&lt;br /&gt;
For programming the SECM112, 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-ID’s. The module ships pre-programmed with an application ([http://mcs.woodward.com/content/motohawk/examples/ECMOH_sampleapp.zip the S12G application &amp;quot;OH_S12G_sampleapp_047.srz&amp;quot; is included in this ZIP]) that sets the Baud rate for both cores to 500k, with City ID of main – 0xB and the City ID of the aux 0x81.    &lt;br /&gt;
&lt;br /&gt;
The hardboot (settings used to program the module by boot key or boot harness) if it needs to be recovered are: &lt;br /&gt;
Main: 250k b/s  City ID 0xB&lt;br /&gt;
Aux: 250k b/s City ID 0x81&lt;br /&gt;
&lt;br /&gt;
To change the baud rate on CAN-1, first program the main core.  Cycle power to put auxiliary in hardboot, the program the auxiliary as above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5644A-112-048-1204.html MotoHawk Target Cross Reference] ===&lt;br /&gt;
The [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5644A-112-048-1204.html MotoHawk Target Cross Reference] shows which IO on the ECM-OH hardware is supported by which behavior (blocks).  There are charts showing behavior vs pin as well as pin vs behavior.  This is the software help document for the module.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[Reaction_Module_Blockset|The Reaction Module Blockset]] and the SECM112==&lt;br /&gt;
The standard PSP blocks (Injector Sequence, Dual PSP, Multiple PSP..) are supported on the SECM112, but configuration of the Reaction Module '''is Required''' for Injection on the SECM112. &lt;br /&gt;
&lt;br /&gt;
Peak-Hold timing is configured by the Reaction Module, '''and the peak-hold input port on the sequence blocks is ignored.'''&lt;br /&gt;
&lt;br /&gt;
See the article on the [[Reaction_Module_Blockset|Reaction Module Blockset]] for additional details.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MC33810 Spark Blockset and the SECM112 ==&lt;br /&gt;
Many of the Woodward MCS ECMs have EST outputs which provide 0-5V TTL level outputs for smart coils.  The SECM112 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.&lt;br /&gt;
&lt;br /&gt;
See the article on the [[MC33810_Blocks|'''MC33810 Configuration blocks''']] for more detail.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Calibration Memory ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''The SECM112 has 64k of Calibration memory available.'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are porting an application from another ECU (ex. the 128-pin) the SECM-112 may have less calibration memory available.  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.    However, the SECM112 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 descision 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 on-line calibration.   The SECM112 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.&lt;br /&gt;
&lt;br /&gt;
The SECM112 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.  Some calibration values may be able to be moved to NV storage  (ex. Calibration NV).&lt;br /&gt;
&lt;br /&gt;
Recommendations to reduce calibration memory in the application:&lt;br /&gt;
&lt;br /&gt;
1. '''Review and Optimize Datatypes'''. The first thing to look at in reducing calibration memory is 64 bit vs 32 bit.  Double is the Simulink default, but is often larger than required.   Convert calibratons to 32-bit (single) or smaller datatypes.&lt;br /&gt;
  &lt;br /&gt;
2. '''Review and Optimize Tables'''. The next big item is table optimizations.  It is likely that 32-bit floating point is not needed for every table and can be reduced.  Reducing the dimenstions of tables would also reduce the memory usage.&lt;br /&gt;
&lt;br /&gt;
== The Main Power Relay Block and the S12G Auxillary processor ==&lt;br /&gt;
A common question is whether the MotoHawk MPRD block should be placed in the application for the S12G auxillary 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.  &lt;br /&gt;
&lt;br /&gt;
Also, the MPRD block is intended as a starting point and is intended to be modified to suite specific application shutdown requirements (right click the block and select Look Under Mask).&lt;br /&gt;
&lt;br /&gt;
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 auxillary S12G, it is nessessary to remove the MPRD discrete output from the block.   The below link has an example MPRD block modified for the ECM-OH Auxillary processor.&lt;br /&gt;
&lt;br /&gt;
[http://mcs.woodward.com/content/motohawk/examples/ECM_OH_S12G_sampleapp.mdl ECM-OH Example of Modified MPRD for the S12G]&lt;br /&gt;
&lt;br /&gt;
== Recovering the SECM112==&lt;br /&gt;
Occasionally, errors in programming may require that the module be recovered with a boot key or boot sequence. The following section describes recovery procedure for the SECM112.  For more information, see [[Boot_key_recovery|Boot Key Recovery]].&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Important: Remove the ECU from all control connections before attempting to recover the module.'''&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Default Bootloader MotoServer Settings (Recover/Bootstrap Mode):'''&lt;br /&gt;
&lt;br /&gt;
Main Core: 250kbps on CAN-1, City ID 0x0B (11)&amp;lt;br&amp;gt;&lt;br /&gt;
S12G Core: 250kbps on CAN-1, City ID 0x81 (129)&lt;br /&gt;
&lt;br /&gt;
The SECM112 has two microprocessor cores, the Main Core and the Auxillary S12G. Both processors are connected on CAN1, so it is important that both processors configure their CAN-1 port with the same baud rate, and different MotoTune IDs.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Recovering the Main Processor'''&amp;lt;br&amp;gt;&lt;br /&gt;
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:&amp;lt;br&amp;gt;&lt;br /&gt;
AN3: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN4: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN16: Pull to GND &amp;lt;br&amp;gt;&lt;br /&gt;
AN17: Pull to GND &amp;lt;br&amp;gt;&lt;br /&gt;
AN18: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Recovering the S12G Auxillary Core (requires battery toggle)'''&amp;lt;br&amp;gt;&lt;br /&gt;
The S12G cannot be recovered with a boot key.  A boot sequence on the analog inputs of the S12G is required to recover it.&amp;lt;br&amp;gt;&lt;br /&gt;
AN3: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN4: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN16: Pull to +5V &amp;lt;br&amp;gt; &lt;br /&gt;
AN17: Pull to GND &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Applying the boot signal or sequence'''&lt;br /&gt;
&lt;br /&gt;
The boot key signal or boot sequence is only searched within the first 2-3 seconds of the ECU waking up.   To ensure that the signal/sequence is recognized, the following procedure is recommended:&amp;lt;br&amp;gt;&lt;br /&gt;
1) Apply the boot signal or sequence. &amp;lt;br&amp;gt;&lt;br /&gt;
2) Main Core recovery: Turn Power ON, but key off; S12G Core recovery: battery off.&amp;lt;br&amp;gt;&lt;br /&gt;
3) Initiate MotoTune programming on the MotoServer port (City ID 0x0B 250k baud for Main Core, 0x081 250kbaud for S12G Core). &amp;lt;br&amp;gt;&lt;br /&gt;
4) When 'Searching for ECU' appears in MotoTune, turn the key on (Main Core recovery) or battery on (S12G Core recovery).    It may take several tries.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Avoiding Baud Rate Collision During and After Recovery Process:'''&lt;br /&gt;
&lt;br /&gt;
The Pre-PV and PV units will ship with a Main Core sample application that will connect at 500 kbps on PCM-1 (City-ID 11) or PCM-2 (City-ID 12), and S12G Core sample application that will connect at 500 kbps on SECM-1 (City-ID 129).  The application baud rate on CAN-1 does not match that of the bootloaders’ recovery mode baud rate, and there may be baud rate collision between the Main Core Application and the S12G Bootloader (or between the S12G Application and the Main Core Bootloader).&lt;br /&gt;
&lt;br /&gt;
The Main Core recovery process automatically avoids baud rate collision by holding the S12G Core in reset, so there will be no collision between the Main Core Bootloader and the S12G Core application.&lt;br /&gt;
&lt;br /&gt;
However, if you are recovering the S12G Core, you must manually prevent baud rate collision by first programming the Main Core with an application* that sets CAN-1 at 250kbps.  Note that if after recovery the S12G application configures CAN-1 at other than 250kbs, it will collide with the Main Core application’s 250K CAN-1 setting.  Because of this, it is recommended to enable MotoTune on CAN2 in the Main Core application* to allow the Main Core to be re-programmed via CAN-2 (another option is to perform recover procedure on the Main Core after the S12G Core has been recovered).&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
=== Why Do I get this Build Warning?WARNING: CamEncoder has interface Hardware that has not been defined.===&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== What causes the build to fail with this error? &amp;quot;ERROR: A ReactPHWOTChan definition for INJ1 was not found in the application. &amp;quot; ===&lt;br /&gt;
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).&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== What causes the build to fail with this error? &amp;quot;ERROR: A ReactionModule with a ModuleResource of REACT was not found in the application descriptor&amp;quot; ===&lt;br /&gt;
This is really the same cause as the question above.  The use of the INJ channels (even when not in an injector block) require the Reaction Module to be configured in the application.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== I see values with 100% in the build log.  Is this expected?  ===&lt;br /&gt;
There are several memory areas displayed in the build statistics that are internally reserved peices of data.  These are displayed at 100% in the build statistics and cannot be changed by the application.&amp;lt;br/&amp;gt;&lt;br /&gt;
FLASH_RCHW: 4 bytes 100% of 4 &amp;lt;br/&amp;gt;&lt;br /&gt;
FLASH_ENTRY: 4 bytes 100% of 4 &amp;lt;br/&amp;gt;&lt;br /&gt;
FLASH_CRCDEFNPTR: 4 bytes 100% of 4 &amp;lt;br/&amp;gt;&lt;br /&gt;
RAM_BOOTMAILBOX: 16 bytes 100% of 16 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is the 12 V power supply isolated?  ===&lt;br /&gt;
12VOUT is supplied from DRVP and shares a common ground plane so no there is no galvanic isolation from the other supplies.  The intent of the 12VOUT is to power a MAF sensor that requires this voltage. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is the XDRP2 5 V supply more precise than XDRP1?  ===&lt;br /&gt;
XDRP1 is stated as &amp;quot;5V +/- 2%&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
XDRP2 is stated as &amp;quot;VCC +/- 0.2%&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
The above statements make it appear XDRP2 may be more precise than XDRP1, but this may be misleading.  VCC is the internal 5V supply, which is 5V +/-2%.  The reason XDRP2 is a better option for ratiometric sensors lies in the fact that XDRP2 is also the processor's ADC reference.  See next question on VCAL.&lt;br /&gt;
&lt;br /&gt;
=== What is VCAL?  ===&lt;br /&gt;
VCAL is an internal precision 2.5V reference that can be read by the application using a MotoHawk Analog Input block.  This can be used to measure VCC and subsequently used to compensate for absolute voltage sensors.&lt;br /&gt;
&lt;br /&gt;
=== What is DG8?  ===&lt;br /&gt;
DG8 may be called out in some SECM112 documentation, but this is the same as the STOP input.  MotoHawk specifically uses STOP as the resource for this module pin.&lt;br /&gt;
&lt;br /&gt;
=== Can the Auxiliary Processor force an engine to stop?===&lt;br /&gt;
The [[SECM112#Targets | Auxiliary Processor]] can cause the H-Bridge Outputs to be in the off state via the H1 and H2 disables.  MPRD disable can also occur via the MPRD disable output, which also has the side effect of disabling the encoder inputs (Crank and Cam).  Ultimately, a corrective action can be taken by actively resetting the main processor.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== What is the maximum pulse length that can be delivered for SECM112 when using 'Unsynchronized PSP OneShot Trigger'? === &lt;br /&gt;
The 'Unsynchronized PSP OneShot Trigger' total duration input port is specified with uint32 data type, but the hardware has a maximum achievable duration of 839 ms.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== What is the maximum length of time that quantities of SECM112 units can remain in storage prior to usage in my product? === &lt;br /&gt;
The units can be stored indefinitely, but the best practice is to apply power them every 18 months or so (no longer than that is recommended).  This is to keep the capacitors in good working condition and to prevent overheating when the hardware is installed and used for production. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=MotoHawk:Blocks:PWM_Output&amp;diff=4107</id>
		<title>MotoHawk:Blocks:PWM Output</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=MotoHawk:Blocks:PWM_Output&amp;diff=4107"/>
		<updated>2017-05-24T07:53:14Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Block Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=PWM Output=&lt;br /&gt;
&lt;br /&gt;
This MotoHawk&amp;amp;trade; block is configurable for controlling pulse-width modulation (PWM) output.&lt;br /&gt;
&lt;br /&gt;
==Block ID==&lt;br /&gt;
&lt;br /&gt;
motohawk_pwm&lt;br /&gt;
&lt;br /&gt;
==Library==&lt;br /&gt;
&lt;br /&gt;
MotoHawk_lib/Analog I/O Blocks&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
[[Image:PWM_Output.PNG‎]]&lt;br /&gt;
&lt;br /&gt;
This MotoHawk™ block allows the attributes of pulse-width modulated (PWM) output to be modified. Frequency and dutycycle are the two key attributes. Dutycycle defines the percentage of the period (which is specified by the frequency) that the resource will be turned on (assert). Thus a low side driver output resource will sink current into the driver switch for the percentage of the period specified by the dutycycle. On the other hand, a highside driver output resource would source current for the percentage of the period defined by the dutycycle.&lt;br /&gt;
&lt;br /&gt;
The MotoHawk™ [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/PWMOutput.html PWM Output] help topic provides more detail on this block.&lt;br /&gt;
&lt;br /&gt;
Also see the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/SynchronizedPWMChild.html Synchronized PWM] MotoHawk™ help topic.&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=MotoHawk:Blocks:PWM_Output&amp;diff=4106</id>
		<title>MotoHawk:Blocks:PWM Output</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=MotoHawk:Blocks:PWM_Output&amp;diff=4106"/>
		<updated>2017-05-24T07:52:47Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=PWM Output=&lt;br /&gt;
&lt;br /&gt;
This MotoHawk&amp;amp;trade; block is configurable for controlling pulse-width modulation (PWM) output.&lt;br /&gt;
&lt;br /&gt;
==Block ID==&lt;br /&gt;
&lt;br /&gt;
motohawk_pwm&lt;br /&gt;
&lt;br /&gt;
==Library==&lt;br /&gt;
&lt;br /&gt;
MotoHawk_lib/Analog I/O Blocks&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
[[Image:PWM_Output.PNG‎]]&lt;br /&gt;
&lt;br /&gt;
This MotoHawk™ block allows the attributes of pulse-width modulated (PWM) output to be modified. Frequency and dutycycle are the two key attributes. Dutycycle defines the percentage of the period (which is specified by the frequency) that the resource will be turned on (assert). Thus a low side driver output resource will sink current into the driver switch for the percentage of the period specified by the dutycycle. On the other hand, a highside driver output resource would source current for the percentage of the period defined by the dutycycle.&lt;br /&gt;
&lt;br /&gt;
The MotoHawk™ [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/PWMOutput.html PWM Output] help topic provides more detail on this block.&lt;br /&gt;
&lt;br /&gt;
Also see the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/SynchronizedPWMChild.html Synchronized PWM] MotoHawk™ help topic.&lt;br /&gt;
&lt;br /&gt;
==Block Parameters==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;TableMHStyle&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableHeaderTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; | Parameter Field&lt;br /&gt;
| class=&amp;quot;TableHeaderTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; | Values&lt;br /&gt;
| class=&amp;quot;TableHeaderTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; | Comments/Description&lt;br /&gt;
|-&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Resource&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | Drop-down list&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | Select from available resource, per target ECU, such as H-bridge, etc.&lt;br /&gt;
|-&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Minimum Frequency (.01 Hz)&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | Numeric&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | Data type is uint32. The Frequency input is uint32, ranging from 119 to 19988175. Each unit represents 0.01Hz. Allows the system to select appropriate clock dividers resulting in the best possible duty cycle and frequency granularity.&lt;br /&gt;
|-&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Input Enable&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | Check box  (enable)&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | When &amp;quot;Input Enable&amp;quot; is checked, the output may be dynamically controlled. When disabled, the output transistors are completely turned off, which will stop all current, but also disable any diagnostics.&lt;br /&gt;
|-&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Input Brake&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | Check box  (enable)&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | Select to stop PWM output. Not supported by all ECUs.&lt;br /&gt;
|-&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Output Current&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | Check box  (enable)&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | When &amp;quot;Output Current&amp;quot; is checked, the drive current in milliamps is provided.&lt;br /&gt;
|-&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Output Fault Status&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | Check box  (enable)&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
When &amp;quot;Output Fault Status&amp;quot; is checked, a value indicating fault status is provided. This value is one of:&lt;br /&gt;
&lt;br /&gt;
0 - OK &amp;lt;br /&amp;gt; 1 - Fault &amp;lt;br /&amp;gt; 2 - Indeterminate&lt;br /&gt;
|-&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Use as parent for synchronized PWM&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | Check box  (enable)&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | When &amp;quot;Use as parent for synchronized PWM&amp;quot; is checked, a Synchronized PWM Child block may be used to reference this block.&lt;br /&gt;
|-&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Allow I/O pin to be calibrated from MotoTune&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | Check box  (enable)&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | Name, Access Levels and MotoTune Group Strings fields available&lt;br /&gt;
|-&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Name&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | Alpha-numeric text, single-quote enclosed&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | Name as displayed in MotoTune, for block. No special characters, such as spaces, dashes, commas (underscore allowed)&lt;br /&gt;
|-&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Read Access Level&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | 1-4&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | Sets security level 1 lowest, 4 highest, for user access to read value&lt;br /&gt;
|-&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Write Access Level&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | 1-4&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | Sets security level 1 lowest, 4 highest, for user access to write value&lt;br /&gt;
|-&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | MotoTune Group String&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | Alpha-numeric text, single-quote enclosed&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | Determines Folder name and hierarchy as displayed in MotoTune. Use &amp;quot;|&amp;quot; character between folder names to delineate subfolder structure&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=MotoHawk:Blocks:Synchronized_PWM_Child&amp;diff=4105</id>
		<title>MotoHawk:Blocks:Synchronized PWM Child</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=MotoHawk:Blocks:Synchronized_PWM_Child&amp;diff=4105"/>
		<updated>2017-05-24T07:42:24Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Block Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Synchronized PWM Child=&lt;br /&gt;
&lt;br /&gt;
This MotoHawk™ block references a PWM parent block, and drives the output with a square wave with a specified phase offset relative to the parent.&lt;br /&gt;
&lt;br /&gt;
==Block ID==&lt;br /&gt;
&lt;br /&gt;
motohawk_pwm_child&lt;br /&gt;
&lt;br /&gt;
==Library==&lt;br /&gt;
&lt;br /&gt;
MotoHawk_lib/Analog I/O Blocks&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
[[Image:Synchronized_PWM_Child.PNG]]&lt;br /&gt;
&lt;br /&gt;
A synchronized PWM child has an independent duty cycle, but has a defined phase relationship with a parent.&lt;br /&gt;
&lt;br /&gt;
The MotoHawk block help topic [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/SynchronizedPWMChild.html Synchronized PWM Child] provides up to date help content for this block.&lt;br /&gt;
&lt;br /&gt;
==Limitations==&lt;br /&gt;
The level of child PWM support is defined by the capability of the hardware. Modules that can't support this capability will not populate resources in the drop down menu. Modules that have capability will have selectable resources. However in some cases the selected child can only be used with a subset of the PWM Outputs that the module has at its disposal. Generally only PWM resources that can operate as a child can be selected to operate as a parent to a child PWM. There can also be further limitations. Build or runtime errors will result (depending on the module type) if a legal child PWM attempts to use an incompatible parent PWM.&lt;br /&gt;
&lt;br /&gt;
The number of children that a parent PWM Output can support may also be limited.&lt;br /&gt;
&lt;br /&gt;
The [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2016bSP0/HTML/MotoHawk_lib_Blocks/SynchronizedPWMChild.html Synchronized PWM] help topic provides additional information.&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=MotoHawk:Blocks:Synchronized_PWM_Child&amp;diff=4104</id>
		<title>MotoHawk:Blocks:Synchronized PWM Child</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=MotoHawk:Blocks:Synchronized_PWM_Child&amp;diff=4104"/>
		<updated>2017-05-24T07:42:03Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Limitations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Synchronized PWM Child=&lt;br /&gt;
&lt;br /&gt;
This MotoHawk™ block references a PWM parent block, and drives the output with a square wave with a specified phase offset relative to the parent.&lt;br /&gt;
&lt;br /&gt;
==Block ID==&lt;br /&gt;
&lt;br /&gt;
motohawk_pwm_child&lt;br /&gt;
&lt;br /&gt;
==Library==&lt;br /&gt;
&lt;br /&gt;
MotoHawk_lib/Analog I/O Blocks&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
[[Image:Synchronized_PWM_Child.PNG]]&lt;br /&gt;
&lt;br /&gt;
A synchronized PWM child has an independent duty cycle, but has a defined phase relationship with a parent.&lt;br /&gt;
&lt;br /&gt;
The MotoHawk block help topic [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/SynchronizedPWMChild.html Synchronized PWM Child] provides up to date help content for this block.&lt;br /&gt;
&lt;br /&gt;
==Limitations==&lt;br /&gt;
The level of child PWM support is defined by the capability of the hardware. Modules that can't support this capability will not populate resources in the drop down menu. Modules that have capability will have selectable resources. However in some cases the selected child can only be used with a subset of the PWM Outputs that the module has at its disposal. Generally only PWM resources that can operate as a child can be selected to operate as a parent to a child PWM. There can also be further limitations. Build or runtime errors will result (depending on the module type) if a legal child PWM attempts to use an incompatible parent PWM.&lt;br /&gt;
&lt;br /&gt;
The number of children that a parent PWM Output can support may also be limited.&lt;br /&gt;
&lt;br /&gt;
The [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2016bSP0/HTML/MotoHawk_lib_Blocks/SynchronizedPWMChild.html Synchronized PWM] help topic provides additional information.&lt;br /&gt;
&lt;br /&gt;
==Block Parameters==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;TableMHStyle&amp;quot;&lt;br /&gt;
! class=&amp;quot;TableHeaderTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; | Parameter Field&lt;br /&gt;
! class=&amp;quot;TableHeaderTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; | Values&lt;br /&gt;
! class=&amp;quot;TableHeaderTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; | Comments/Description&lt;br /&gt;
|- id=&amp;quot;text_resource&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px; height: 38px&amp;quot; valign=&amp;quot;top&amp;quot; | Resource&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px; height: 38px&amp;quot; valign=&amp;quot;top&amp;quot; | Drop-down list&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px; height: 38px&amp;quot; valign=&amp;quot;top&amp;quot; | Select from available resource, per target ECU, such as H-bridge, etc.&lt;br /&gt;
|- id=&amp;quot;ref_type&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Parent Reference Type&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | Select Method for choosing resource of Parent&lt;br /&gt;
|-&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; rowspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | By Resource&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | Enable Drop-down list&lt;br /&gt;
|-&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | By VarDec Name&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | Open Parent Name field&lt;br /&gt;
|- id=&amp;quot;text_resource_parent&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Parent Resource&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | Drop-down list&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | Select Parent Resource from available resource, per target ECU, such as H-bridge, etc.&lt;br /&gt;
|- id=&amp;quot;parent_nam&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Parent Name&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | Alpha-numeric text, single-quote enclosed&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | Indicate exact Name of Parent Resource. No special characters, such as spaces, dashes, commas (underscore allowed).&lt;br /&gt;
|- id=&amp;quot;output_current&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Output Current&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | Check box  (enable)&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | When &amp;quot;Output Current&amp;quot; is checked, the drive current in milliamps is provided.&lt;br /&gt;
|- id=&amp;quot;output_fault_status&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px; height: 112px&amp;quot; valign=&amp;quot;top&amp;quot; | Output Fault Status&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px; height: 112px&amp;quot; valign=&amp;quot;top&amp;quot; | Check box  (enable)&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px; height: 112px&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
When &amp;quot;Output Fault Status&amp;quot; is checked, a value indicating fault status is provided. This value is one of: &amp;lt;br /&amp;gt; 0 - OK &amp;lt;br /&amp;gt; 1 - Fault &amp;lt;br /&amp;gt; 2 - Indeterminate&lt;br /&gt;
|- id=&amp;quot;use_vardec&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Allow I/O pin to be calibrated from MotoTune&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | Check box  (enable)&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | Name, Access Levels and MotoTune Group Strings fields available&lt;br /&gt;
|- id=&amp;quot;nam&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Name&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | Alpha-numeric text, single-quote enclosed&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | Name as displayed in MotoTune, for block. No special characters, such as spaces, dashes, commas (underscore allowed)&lt;br /&gt;
|- id=&amp;quot;read_level&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Read Access Level&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | 1-4&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | Sets security level 1 lowest, 4 highest, for user access to read value&lt;br /&gt;
|- id=&amp;quot;write_level&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Write Access Level&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | 1-4&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | Sets security level 1 lowest, 4 highest, for user access to write value&lt;br /&gt;
|- id=&amp;quot;group&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | MotoTune Group String&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | Alpha-numeric text, single-quote enclosed&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | Determines Folder name and hierarchy as displayed in MotoTune. Use &amp;quot;|&amp;quot; character between folder names to delineate subfolder structure&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=MotoHawk:Blocks:Synchronized_PWM_Child&amp;diff=4103</id>
		<title>MotoHawk:Blocks:Synchronized PWM Child</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=MotoHawk:Blocks:Synchronized_PWM_Child&amp;diff=4103"/>
		<updated>2017-05-24T07:38:52Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Synchronized PWM Child=&lt;br /&gt;
&lt;br /&gt;
This MotoHawk™ block references a PWM parent block, and drives the output with a square wave with a specified phase offset relative to the parent.&lt;br /&gt;
&lt;br /&gt;
==Block ID==&lt;br /&gt;
&lt;br /&gt;
motohawk_pwm_child&lt;br /&gt;
&lt;br /&gt;
==Library==&lt;br /&gt;
&lt;br /&gt;
MotoHawk_lib/Analog I/O Blocks&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
[[Image:Synchronized_PWM_Child.PNG]]&lt;br /&gt;
&lt;br /&gt;
A synchronized PWM child has an independent duty cycle, but has a defined phase relationship with a parent.&lt;br /&gt;
&lt;br /&gt;
The MotoHawk block help topic [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/SynchronizedPWMChild.html Synchronized PWM Child] provides up to date help content for this block.&lt;br /&gt;
&lt;br /&gt;
==Limitations==&lt;br /&gt;
&lt;br /&gt;
This block currently only works for 5xx processor targets, each parent can only have two or fewer child PWMs, and the parent and child resources must reside on the same [../MotoHawk_topics/TPU.html TPU bank]. &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; If the resource is not behaving as exspected there are a few common errors. To check the common errors look at the resource creation status in the display(System|Debug|Resources|PWM|&amp;quot;ResourceName&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
===Common Errors===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;TableMHStyle&amp;quot; &lt;br /&gt;
! class=&amp;quot;TableHeaderTDStyle&amp;quot; style=&amp;quot;width: 100px&amp;quot; | Error Enum &lt;br /&gt;
! class=&amp;quot;TableHeaderTDStyle&amp;quot; style=&amp;quot;width: 300px&amp;quot; | Common Causes &lt;br /&gt;
|- id=&amp;quot;tpu_config&amp;quot; &lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; valign=&amp;quot;top&amp;quot; | TPU Config &lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; valign=&amp;quot;top&amp;quot; | Check parent PWM is enabled as parent PWM.&amp;lt;br /&amp;gt; Check parent and child are on same [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/TPU.html TPU bank]. &lt;br /&gt;
|- id=&amp;quot;tpu_primative_usage&amp;quot; &lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; valign=&amp;quot;top&amp;quot; | TPU Primative Usage &lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; valign=&amp;quot;top&amp;quot; | Use 2 or fewer child PWM per parent PWM. &lt;br /&gt;
|- id=&amp;quot;tpu_primative_count&amp;quot; &lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; valign=&amp;quot;top&amp;quot; | TPU Primative Count &lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; valign=&amp;quot;top&amp;quot; | Use 2 or fewer child PWM per parent PWM. &lt;br /&gt;
|- id=&amp;quot;hardware_not_support&amp;quot; &lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; valign=&amp;quot;top&amp;quot; | Hardware not Supported &lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; valign=&amp;quot;top&amp;quot; | Check that resource is on a [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/TPU.html TPU bank]. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Block Parameters==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;TableMHStyle&amp;quot;&lt;br /&gt;
! class=&amp;quot;TableHeaderTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; | Parameter Field&lt;br /&gt;
! class=&amp;quot;TableHeaderTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; | Values&lt;br /&gt;
! class=&amp;quot;TableHeaderTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; | Comments/Description&lt;br /&gt;
|- id=&amp;quot;text_resource&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px; height: 38px&amp;quot; valign=&amp;quot;top&amp;quot; | Resource&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px; height: 38px&amp;quot; valign=&amp;quot;top&amp;quot; | Drop-down list&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px; height: 38px&amp;quot; valign=&amp;quot;top&amp;quot; | Select from available resource, per target ECU, such as H-bridge, etc.&lt;br /&gt;
|- id=&amp;quot;ref_type&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Parent Reference Type&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | Select Method for choosing resource of Parent&lt;br /&gt;
|-&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; rowspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | By Resource&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | Enable Drop-down list&lt;br /&gt;
|-&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | By VarDec Name&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | Open Parent Name field&lt;br /&gt;
|- id=&amp;quot;text_resource_parent&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Parent Resource&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | Drop-down list&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | Select Parent Resource from available resource, per target ECU, such as H-bridge, etc.&lt;br /&gt;
|- id=&amp;quot;parent_nam&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Parent Name&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | Alpha-numeric text, single-quote enclosed&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | Indicate exact Name of Parent Resource. No special characters, such as spaces, dashes, commas (underscore allowed).&lt;br /&gt;
|- id=&amp;quot;output_current&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Output Current&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | Check box  (enable)&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | When &amp;quot;Output Current&amp;quot; is checked, the drive current in milliamps is provided.&lt;br /&gt;
|- id=&amp;quot;output_fault_status&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px; height: 112px&amp;quot; valign=&amp;quot;top&amp;quot; | Output Fault Status&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px; height: 112px&amp;quot; valign=&amp;quot;top&amp;quot; | Check box  (enable)&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px; height: 112px&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
When &amp;quot;Output Fault Status&amp;quot; is checked, a value indicating fault status is provided. This value is one of: &amp;lt;br /&amp;gt; 0 - OK &amp;lt;br /&amp;gt; 1 - Fault &amp;lt;br /&amp;gt; 2 - Indeterminate&lt;br /&gt;
|- id=&amp;quot;use_vardec&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Allow I/O pin to be calibrated from MotoTune&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | Check box  (enable)&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | Name, Access Levels and MotoTune Group Strings fields available&lt;br /&gt;
|- id=&amp;quot;nam&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Name&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | Alpha-numeric text, single-quote enclosed&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | Name as displayed in MotoTune, for block. No special characters, such as spaces, dashes, commas (underscore allowed)&lt;br /&gt;
|- id=&amp;quot;read_level&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Read Access Level&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | 1-4&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | Sets security level 1 lowest, 4 highest, for user access to read value&lt;br /&gt;
|- id=&amp;quot;write_level&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | Write Access Level&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | 1-4&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | Sets security level 1 lowest, 4 highest, for user access to write value&lt;br /&gt;
|- id=&amp;quot;group&amp;quot;&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 172px&amp;quot; valign=&amp;quot;top&amp;quot; | MotoTune Group String&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 158px&amp;quot; valign=&amp;quot;top&amp;quot; | Alpha-numeric text, single-quote enclosed&lt;br /&gt;
| class=&amp;quot;TableTDStyle&amp;quot; style=&amp;quot;width: 299px&amp;quot; valign=&amp;quot;top&amp;quot; | Determines Folder name and hierarchy as displayed in MotoTune. Use &amp;quot;|&amp;quot; character between folder names to delineate subfolder structure&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=Compilers&amp;diff=4095</id>
		<title>Compilers</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=Compilers&amp;diff=4095"/>
		<updated>2017-04-06T08:14:46Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Using CodeWarrior */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Supported Compilers ==&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
!Module / Family &lt;br /&gt;
!Green Hills Compiler 3.6&lt;br /&gt;
!Green Hills Compiler 4.2.1&lt;br /&gt;
!Green Hills Compiler 4.2.4&lt;br /&gt;
!GCC 4.4.0SP1&lt;br /&gt;
!GCC 4.6.0&lt;br /&gt;
!CodeWarrior 4.6&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|GCM-0S12-024 &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X &lt;br /&gt;
|-&lt;br /&gt;
|ECM-S12X-70&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X &lt;br /&gt;
|-&lt;br /&gt;
|ECM-0S12-024&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X &lt;br /&gt;
|-&lt;br /&gt;
|ECM-5554-112&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECM-564x-112&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECM-5634M-70&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HCM-0563-48&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GCM-0563-48 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECM-0563-48&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GCM-0565-024 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
||ECU-0565-128 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECU-0555-80 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECU-0555-48 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECM-3R&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GCC Compilers ==&lt;br /&gt;
&lt;br /&gt;
GCC is a free open source GNU compiler that can be used with the MCS floating point PowerPC ECUs.&lt;br /&gt;
&lt;br /&gt;
GCC Cannot be used with the S12/S12X modules.  CodeWarrior is required.&lt;br /&gt;
&lt;br /&gt;
'''MotoHawk Version Requirements:'''&lt;br /&gt;
Support for the GCC compilers was added in MotoHawk 2009b SP0.  MotoHawk versions lower than 2009b SP0 must use the Greenhills compiler.&lt;br /&gt;
Motohawk 2009b through 2011a supports GCC 4.4.0 SP1&lt;br /&gt;
Beginning in 2011b, support for GCC 4.4.0 SP1 was replaced by GCC 4.6.0&lt;br /&gt;
&lt;br /&gt;
The GCC compilers can be downloaded from the Woodward Software Products [http://www.woodward.com/software.aspx here]. Enter GCC as the search item. This should then reveal the available GCC downloads.&lt;br /&gt;
&lt;br /&gt;
'''eabi vs eabi SPE'''&lt;br /&gt;
''There are two GCC compilers.''&lt;br /&gt;
* GCC PowerPC eabi is for use with the MPC 5xx processors, such as the GCM/HCM/ECM-0563-48, ECM-555-080, ECM-555-48, and ECM-0565-128 modules.&lt;br /&gt;
* GCC PowerPC eabi '''SPE''' is for use with the MPC 5xxx processors, such as the ECM-5554-112 module.&lt;br /&gt;
&lt;br /&gt;
== Green Hills Compiler ==&lt;br /&gt;
&lt;br /&gt;
The Green Hills Compiler (GHS) is a part of the installed program requirements for using MotoHawk. GHC is used with MATLAB and MotoHawk for the purpose of helping compile the programs to be used with targeted MotoHawk ECMs. GHS is useful for compiling programs for the ECMs featuring the Freescale 5xx and 55xx processors.&lt;br /&gt;
&lt;br /&gt;
== Green Hills Compiler Installation ==&lt;br /&gt;
To install the GHC application from a CD: &lt;br /&gt;
&lt;br /&gt;
#Insert CD in drive. Click Start-&amp;gt;Run and double-click Setup.exe. &amp;lt;BR&amp;gt;Follow on-screen instructions. (try to leave the default install directory) &amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
#If you do not already have a license launch the License Request Generator:&amp;lt;BR&amp;gt;In Windows, select '''Start-&amp;gt;All Programs-&amp;gt;Multi2000, PowerPC v3.6-&amp;gt;Licensing-&amp;gt;License Request Generator'''&amp;lt;BR&amp;gt;You may want to request an evaluation license initially. This will help get you started faster.&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
#If you have a license run the License installer:&amp;lt;BR&amp;gt;In Windows, select '''Start-&amp;gt;All Programs-&amp;gt;Multi2000, PowerPC v3.6-&amp;gt;Licensing-&amp;gt;Install Licenses'''&amp;lt;BR&amp;gt;&lt;br /&gt;
#Select your .key file and then install all the licenses. &amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using GHS ==&lt;br /&gt;
&lt;br /&gt;
Before using GHC with MotoHawk, there are a few items to consider: &lt;br /&gt;
* If targeted, the 5xx-based processors default to using GHS 3.6, although they work with later versions(4.2.1). &lt;br /&gt;
* The 55xx-based  processors default to using GHS 4.2.1 and will work with later versions, but will not work with GHS 3.6. &lt;br /&gt;
* '''If you are using GHS version 4.2.1''', you will need to specify the License Manager. To do this, you would create and set an environment variable GHS_LMWHICH and set its value to &amp;quot;elan.&amp;quot;&amp;lt;BR&amp;gt;* If you are not going to use the default compiler version you will need to set an environment variable. Set GHS_DIR to the directory which has the compiler you want to use; the default for 4.2.1 is &amp;quot;C:\GHS\ppc421&amp;quot;  (other versions follow this naming convention).&lt;br /&gt;
* There is also a Tool Chain block in MotoHawk that will allow you to select which compiler to use, if necessary. Find it using Simulink Library Browser; it is located in the MotoHawk-&amp;gt;Build library.&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
'''Note:'''  To set an environment variable:&amp;lt;BR&amp;gt;In Windows, select '''Start-&amp;gt;(right-click)My Computer-&amp;gt;Properties-&amp;gt;Advanced tab-&amp;gt;Environment Variables''', then click on New, and fill in the Variable name and value, then click OK.&lt;br /&gt;
&lt;br /&gt;
== Common GHS Issues ==&lt;br /&gt;
*Matlab returns an error ===Green Hills Compiler License Not Available===&amp;lt;BR&amp;gt;&lt;br /&gt;
#Check that GHS purple dongle is plugged in&lt;br /&gt;
#Check that GHS_DIR is pointing to the correct compiler directory&lt;br /&gt;
#Check that the license is installed correctly&lt;br /&gt;
&lt;br /&gt;
*At install of the license a warning box pops up saying Server Code Mismatch:&amp;lt;BR&amp;gt;&lt;br /&gt;
:The license you specified were created for a different server code. Your server code has either changed since you requested your license, or you are trying to install them on the wrong machine. Please consult the documentation or contact the Green Hills license administrator for assistance.&lt;br /&gt;
# Verify that the USB or parallel port is working correctly.&lt;br /&gt;
# Log in as Administrator&lt;br /&gt;
# Unplug the key(s).&lt;br /&gt;
# Remove the old Sentinel Protection Server/Driver/Combo and reinstall the Sentinel Protection Installer.  Go to Start &amp;gt; Settings &amp;gt; Control Panel &amp;gt; Add or Remove Programs (Vista is Programs and Features).  Select both the Sentinel Protection Installer and Sentinel System Driver, and then click Remove.&lt;br /&gt;
# Shut Down and Restart the computer system&lt;br /&gt;
# Download and install the new Sentinel Protection Installer at http://www.safenet-inc.com/support/tech/latestdriver.asp.  NOTE: If you are using Standalone applications, you can do the custom install and you can uncheck Server from the installation.  The Sentinel Keys Server only needs to be installed on a SHK key server computer.  The Sentinel Protection Server only needs to be installed on a SuperPro and/or UltraPro key server computer.&lt;br /&gt;
# Plug in the key(s).&lt;br /&gt;
# Download the Medic utility http://www.safenet-inc.com/support/files/SuperproMedic.exe or http://www.safenet-inc.com/support/files/sam1.2.exe and run it to make sure the key(s) is being detected correctly.  Medic does not detect the 64-bit operating system version correctly.  If Medic detects the key, then the computer, operating system, port, key and driver are working correctly.&lt;br /&gt;
&lt;br /&gt;
== CodeWarrior Installation ==&lt;br /&gt;
To install the CodeWarrior application from a CD: &lt;br /&gt;
&lt;br /&gt;
#Insert CD in drive. Click Start-&amp;gt;Run and double-click Setup.exe. &amp;lt;BR&amp;gt;Follow on-screen instructions. (try to leave the default install directory) &amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
== Using CodeWarrior ==&lt;br /&gt;
&lt;br /&gt;
Before using CodeWarrior with MotoHawk, there are a few items to consider: &lt;br /&gt;
* The S12 processors default to using CodeWarrior 4.6 and will not work with later versions. The [http://www.nxp.com/products/software-and-tools/software-development-tools/codewarrior-development-tools/downloads/codewarrior-legacy-downloads:CW_LEGACY?fsrch=1&amp;amp;sr=6&amp;amp;pageNum=1 NXP legacy downloads] page may provide an avenue to obtain CodeWarrior 4.6. An NXP Service Request could also be used to request this version.&lt;br /&gt;
* If you are not going to use the default compiler version you will need to set an environment variable. Set CW_DIR to the directory which has the compiler you want to use; the default for 4.7 is &amp;quot;C:\Program Files\Freescale\CodeWarrior for HCS12 V4.7&amp;quot;  (other versions follow this naming convention).&lt;br /&gt;
* There is also a Tool Chain block in MotoHawk that will allow you to select which compiler to use, if necessary. Find it using Simulink Library Browser; it is located in the MotoHawk-&amp;gt;Build library.&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
'''Note:'''  To set an environment variable:&amp;lt;BR&amp;gt;In Windows, select '''Start-&amp;gt;(right-click)My Computer-&amp;gt;Properties-&amp;gt;Advanced tab-&amp;gt;Environment Variables''', then click on New, and fill in the Variable name and value, then click OK.&lt;br /&gt;
&lt;br /&gt;
If you are using CodeWarrior on a 64-bit machine, select 'Custom' install and de-select to install Debugging.&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=SECM112&amp;diff=4079</id>
		<title>SECM112</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=SECM112&amp;diff=4079"/>
		<updated>2017-01-27T00:42:24Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* CAN */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Module ==&lt;br /&gt;
[[Image:ECM-5644A-112-048-1202-xD.jpg|100px|112 Pin ECM-OH]] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
==Overview==&lt;br /&gt;
The SECM112  is part of the engine management system for on-highway applications, which can include L6 4-stroke CNG intercity transit applications, L6, 4-stroke LNG intercity transit applications, and L4 4-stroke commercial vehicle 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&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The SECM112 features two microprocessors in one rugged production intent housing.  The module contains a main MPC5644 120Mhz processor along with a S12G fixed point processor, which can provide question-answer type challenge to the main processor.  Both micros are connected on CAN1.&lt;br /&gt;
&lt;br /&gt;
The SECM112 is part of the MotoHawk Control Solutions ControlCore® family of embedded control systems. The ControlCore operating system,&lt;br /&gt;
MotoHawk® code generation product, and MotoHawk’s suite of development tools enable rapid development of complex control systems.  Application code for both processors is developed in MotoHawk which allows the application developer to create applications directly in Simulink and build with a one step 'CNTL-B' build.   The two controllers act like separate controllers in terms of programming.  Then, the program can be flashed onto the micro using Woodward's MotoTune, Toolkit, or through industry standard 3rd party tools via xCP, or ISO15765.    &lt;br /&gt;
&lt;br /&gt;
Calibration can  be done with Woodward's MotoTune or Toolkit or with industry standard 3rd Party tools through xCP.&lt;br /&gt;
&lt;br /&gt;
Each controller is available in ‘F’ (Flash) or ‘C’ (Calibratible) versions. Flash modules are typically used for production purposes. Calibratible modules are typically for prototyping/development only; they can be calibrated in real time using MotoTune, ToolKit, or industry standard 3rd party tools via xCP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Power Requirements ==&lt;br /&gt;
All versions of the SECM112 Control require a voltage source of 8 to 32Vdc (12Vdc or 24Vdc nominal).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MotoHawk Requirements ==&lt;br /&gt;
MotoHawk 2012bSP0 or higher is required for SECM112.&lt;br /&gt;
&lt;br /&gt;
This means Matlab 2010b or higher is required, as MotoHawk supports Matlab 2 years backward.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compilers ==&lt;br /&gt;
'''Main Micro''': Green Hills 4.2.4   or GCC PowerPC eabi SPE 4.6&lt;br /&gt;
&lt;br /&gt;
'''Auxillary''':  Freescale CodeWarrior 4.6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Targets ==&lt;br /&gt;
The SECM-112 has different Targets for the MAIN Prod and Dev modules as shown below.  The S12G auxillary processor also has it's own target.  &lt;br /&gt;
&lt;br /&gt;
'''Main Processor''' &lt;br /&gt;
&lt;br /&gt;
1751-6601:  Target ECM-5644A-112-048-1204  DEV &amp;lt;br/&amp;gt;&lt;br /&gt;
1751-6688:  Target ECM-5644A-112-048-1206  DEV with 8 cylinder support&lt;br /&gt;
&lt;br /&gt;
1751-6605: Target ECM-56542A-112-049-1200 PROD &amp;lt;br/&amp;gt;&lt;br /&gt;
1751-6690: Target ECM-56542A-112-049-1201 PROD with 8 cylinder support&lt;br /&gt;
&lt;br /&gt;
'''Auxillary Processor''':  Target ECM-S12G-112-059-1200   PROD Only&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Datasheets ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36364 SECM112 Datasheet (36364)]&lt;br /&gt;
&lt;br /&gt;
== Related Part Numbers ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Part Number !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 8923-1930 || Connector Kit&lt;br /&gt;
|-&lt;br /&gt;
| 8996-2228&amp;lt;br/&amp;gt;8996-2230|| Crimp Tools&lt;br /&gt;
|-&lt;br /&gt;
| 8996-1059&amp;lt;br/&amp;gt;8996-2161|| Removal Tools&lt;br /&gt;
|-&lt;br /&gt;
| 1635-1800 || Boot Key&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1334 || Pig Tail (12 feet )&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1322 || Pig Tail (3 feet)&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1357 || Development Harness&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1335 || Programming Harness&lt;br /&gt;
|-&lt;br /&gt;
| 8923-1404 || Breakout Box&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1321 || Desktop Simulator Harness&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Control Features ==&lt;br /&gt;
[[Image:ECMOH1.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Standard features common to both models are:&lt;br /&gt;
*2 engine speed inputs: camshaft and crankshaft speed (software configurable for variable reluctance (VR) magnetic pickup sensor or Hall effect proximity sensor inputs)&lt;br /&gt;
* Up to 6 frequency inputs (some share analog resources)&lt;br /&gt;
* Up to 33 analog inputs&lt;br /&gt;
* 3 switch inputs&lt;br /&gt;
* 2 HEGO sensor inputs&lt;br /&gt;
* 2 LSU sensor inputs (also known as UEGO sensors)&lt;br /&gt;
* 2 knock sensor inputs&lt;br /&gt;
* 3 transducer power outputs providing +5V (350mA &amp;amp; 100mA) and +12V (100mA)&lt;br /&gt;
* 2 H-bridge driver outputs providing 10A and 5A drive capability and current sense feedback&lt;br /&gt;
* 6 Injector drivers providing software configurable peak and hold current levels (up to 7A/2A)&lt;br /&gt;
* 6 ignition coil drivers&lt;br /&gt;
* MPRD (Master Power Relay Driver) low side output&lt;br /&gt;
* TACH low side output&lt;br /&gt;
* 16 low side output drivers (1 with current sense feedback)&lt;br /&gt;
* 3 CAN (Controller Area Network) communications ports&lt;br /&gt;
* 4K-byte serial EEPROM for tunable parameter storage&lt;br /&gt;
* Auxiliary micro with 128k of flash, 8k of RAM, 4k of EEPROM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
==== Analog Inputs (AN1 – AN34)====&lt;br /&gt;
There are 34 analog inputs on the SECM112. The analog inputs have either a pull-up resistor as shown in Figure 2-12, or a pull-down resistor as shown in&lt;br /&gt;
Figure 2-13. Five analog inputs have a software pull-up or pull-down selection via calibration. AN21 &amp;amp; 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.&lt;br /&gt;
&lt;br /&gt;
The Analog Inputs are [[12-bit_ADC|12-Bit ADC]]&lt;br /&gt;
&lt;br /&gt;
===== Fast Analog Channels =====&lt;br /&gt;
ANx_FAST channels are sampled faster than the equivalent ANx. This is needed on SECM112 because of how ADC bandwidth is consumed. SECM112 utilizes most of the available ADC bandwidth to service the reaction channel’s load current sampling. This means that the continuous scan queue sampling that is used by the other channels will take much longer than it normally takes on other modules. SECM112 FAST channel will be sampled every 90us where as normal channels will sample within 1ms (860us) worst case. The 1ms conversion time is problematic for threads of execution that execute at 1ms since the data is sometimes old and sometimes new. &lt;br /&gt;
&lt;br /&gt;
There is no need for such channels on the other ECUs because the ADC bandwidth is not being consumed like it is on the SECM112 and so all the channels are effectively sampled FAST.&lt;br /&gt;
&lt;br /&gt;
==== Crank and CAM Inputs ====&lt;br /&gt;
The Cam and Crank (CNK) inputs are used to detect engine speed and angular position relative to TDC.   The SECM112 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&lt;br /&gt;
input has dedicated connector pins.  See the SECM112 datasheet for additional detail.&lt;br /&gt;
&lt;br /&gt;
==== Digital Inputs ====&lt;br /&gt;
The SECM112 has 8 Discrete Inputs.  Some may be used as switch inputs, others support frequency measurement.&lt;br /&gt;
&lt;br /&gt;
==== Lambda Sensor Unit (UEGO) Inputs ====&lt;br /&gt;
The SECM112 control has two LSUs (Lambda Sensor Units), also known as UEGO (Universal Exhaust Gas Oxygen) inputs, which interface with Bosch LSU4.9 wide range oxygen sensors (Lambda sensors). The lambda-sensor(s) works in conjunction with the on-board Bosch CJ125 ASIC(s) to provide continuous regulation of  for a sensor in the range of  = 0.65... (air). 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.&lt;br /&gt;
&lt;br /&gt;
==== Knock Sensor Inputs ====&lt;br /&gt;
The SECM112 supports two Knock Sensor inputs.&lt;br /&gt;
&lt;br /&gt;
Knock is implemented on the SECM112 in MotoHawk by the Knock by Decimation blockset.   This is a specialized blockset and is included with Standard MotoHawk in 2014a and higher.&lt;br /&gt;
&lt;br /&gt;
=== Outputs ===&lt;br /&gt;
==== Low-side Outputs (LSO)====&lt;br /&gt;
The SECM112 control has 16 low-side outputs (LSOx &amp;amp; SPK8) that can be used as Boolean outputs for driving relays, or some as PWM outputs. LSO1 and LSO2&lt;br /&gt;
are also designed to drive the heater coil on a LSU sensor. Some low-side outputs are provided with freewheeling diodes (internal to the ECM-OH through&lt;br /&gt;
DRVP or BATT) to suppress the back EMF caused by inductive loads. See the ECM-OH datasheet for low-side output capabilities and characteristics.  The LSOs are clamped and can be used to drive relays.&lt;br /&gt;
&lt;br /&gt;
==== Injector Outputs ====&lt;br /&gt;
The SECM112 control has 6 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.&lt;br /&gt;
&lt;br /&gt;
===== Reaction Module Blockset =====&lt;br /&gt;
The peak-hold current level is software configurable through the [[Reaction_Module_Blockset|MotoHawk Reaction Channel Blockset]].&lt;br /&gt;
&lt;br /&gt;
Peak current cannot be run simultaneously on more than 3 injectors on the SECM112 control.&lt;br /&gt;
&lt;br /&gt;
==== Spark Outputs ====&lt;br /&gt;
The SECM112 has 6 IGBT ignition coil drivers each capable of delivering up to 10A of peak dwell current.&lt;br /&gt;
&lt;br /&gt;
The Spark Outputs can be globally disabled via the main core's discrete output DRVR_ENABLE resource. The behavior of these outputs can also be affected by the [[SECM112#Targets | Auxiliary Processor]] via its ability to disable the Master Power Relay (which will also disable the encoder's Crank and Cam inputs).&lt;br /&gt;
&lt;br /&gt;
A special blockset has been created for control and diagnostics of the MC33810 chip which is the driver for the IGBT coil drivers on the SECM112.  See [[MC33810_Blocks|here]] for more detail on the blocks related to the MC33810.&lt;br /&gt;
&lt;br /&gt;
==== H-bridge Outputs ====&lt;br /&gt;
The SECM112 control has two H-bridge outputs that can be used to drive electric motors like butterfly throttle valves.  The H-Bridge outputs are provided with freewheeling diodes (internal to the SECM112 through DRVP) to suppress the back EMF caused by inductive loads.&lt;br /&gt;
&lt;br /&gt;
The H-bridge Outputs can be disabled by the [[SECM112#Targets | Auxiliary Processor]].&lt;br /&gt;
&lt;br /&gt;
==== MPRD Output ====&lt;br /&gt;
The MPRD Output is a common feature of almost all Woodward ECUs and is used to energize the Master Power Relay under application control.&lt;br /&gt;
&lt;br /&gt;
The MPRD Output can be disabled by the [[SECM112#Targets | Auxiliary Processor]], which also has the side effect of disabling the encoder inputs (Crank and Cam).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Output Fault Detection ==&lt;br /&gt;
Output Fault Detection for the SECM112 is through the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/IOFaultStatus.html IO Fault Status block] and the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/FaultStatusGet.html IO Fault Status Get] block.  This block will report a &amp;quot;0&amp;quot; if the driver is not reporting a fault, a &amp;quot;1&amp;quot; if the driver is detecting a fault, or in some cases a &amp;quot;2&amp;quot; for indeterminate.  The faults that can be detected depend on the capability of the driver.  Outputs driven by the MC33810 driver have additional fault reporting capability that can be exposed through the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810FaultDetail.html MC33810 Fault Detail Block].  This block reports the last fault reported by the MC33810 driver and so the report from this block does not clear when the fault state is removed.  The IO Fault Status block should be used to detect whether a fault condition is detected, and then the detail block can be used to detect which fault was reported.  The fault detection capabilities of the SECM112 outputs are described below:&lt;br /&gt;
&lt;br /&gt;
=== H-Bridges ===&lt;br /&gt;
For the h-bridges, shorted load faults can be reported.  Shorted load reporting for each H-bridge is through overcurrent detection.  See the SECM Hardware Manual for minimum overcurrent threshold values.  Current Monitoring should be used in the application model for further diagnosis, such as for open load detection.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Injectors ===&lt;br /&gt;
SECM112’s injector drivers utilize the microprocessor’s Reaction Module for diagnosis. Reaction module diagnosis is based upon observing current and therefore INJ faults can only be detected when the INJ pins are asserted. Observed faults are cached until reported, where they are then cleared. Detection while not asserted is not possible. Therefore the fault status of an INJ output should only be queried once after an actuation event. Querying too often may result in no fault being reported even if the queried INJ output is currently in fault (e.g. open circuit). The [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/PHWOTReactionChannel.html PHWOT Reaction Channel] MotoHawk help provides further detail.&lt;br /&gt;
&lt;br /&gt;
Currently only the IO Fault Status block allows the fault status of an INJ output to be queried.&lt;br /&gt;
&lt;br /&gt;
=== Spark ===&lt;br /&gt;
The Spark outputs are driven by the IGBT drivers of the [http://www.google.com/url?url=http://www.freescale.com/webapp/sps/site/prod_summary.jsp%3Fcode%3DMC33810&amp;amp;rct=j&amp;amp;frm=1&amp;amp;q=&amp;amp;esrc=s&amp;amp;sa=U&amp;amp;ei=Uli1U7zYA5GcyASd_IH4BQ&amp;amp;ved=0CBQQFjAA&amp;amp;usg=AFQjCNGOgPiWwAV_dZ-bz4R4ETEkNGjTXQ MC33810 driver]. &lt;br /&gt;
&lt;br /&gt;
'''The spark output diagnostics assume the SPK outputs are driving an ignition coil as a load.'''  &lt;br /&gt;
&lt;br /&gt;
Comprehensive fault diagnosis when used with ignition coils is described in the [http://www.google.com/url?url=http://www.freescale.com/webapp/sps/site/prod_summary.jsp%3Fcode%3DMC33810&amp;amp;rct=j&amp;amp;frm=1&amp;amp;q=&amp;amp;esrc=s&amp;amp;sa=U&amp;amp;ei=Uli1U7zYA5GcyASd_IH4BQ&amp;amp;ved=0CBQQFjAA&amp;amp;usg=AFQjCNGOgPiWwAV_dZ-bz4R4ETEkNGjTXQ MC33810 Datasheet].   The diagnostic approach is based upon analysis of multiplexed feedback signals that go to the MC33810 which require that the actuators don’t de-assert (i.e. spark) at the same time.  Overlap is possible with PWM and discrete, therefore, diagnosis is less capable or impossible when the SPK outputs are driven by PWM or Discrete output blocks. &lt;br /&gt;
&lt;br /&gt;
'''Note''' that SPK8 is different from the other SPK outputs in that it is a MOSFET.  SPK8 has short while asserted and open while not asserted detection and can be used with the MC33810 Fault Detail block. It is a GPGD type output and thus can use the MC33810 blocks related to GPGD configuration.  Unlike the other spark outputs, SPK8 diagnosis is fully functional when not being driven with an engine position synchronous behavior.&lt;br /&gt;
&lt;br /&gt;
A special blockset has been created for control and diagnostics of the MC33810 chip which is the driver for the IGBT coil drivers on the SECM112.  See [[MC33810_Blocks|here]] for more detail on the blocks related to the MC33810.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LSOs ===&lt;br /&gt;
There are three types of drivers for the LSOs on the SECM112.  Each has slightly different fault reporting capability which is described below.&lt;br /&gt;
* '''LSO1-6''':  reports open circuit or short to ground while de-asserted and short when asserted. LSO6 has current sense as well. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''LSO 7,8,9,11, 12, 13, 14, TACH:'''  These LSOs are driven by MC33810.  Faults of Open while Asserted, Open while De-asserted, and Short to Battery can be reported.  The IO Fault Status block reports the fault state, however there is also an MC33810 Fault Detail block that gives the last fault reported.   The IO Fault Status block should be used to indentify that there is a fault and then the MC33810 Fault Detail block can identify which fault was reported.  The open while asserted fault is detected through current monitoring.   Currents less than 200mA can cause an open while asserted fault to be reported.  Therefore, if the load current is expected to be under 200mA, the Open While Asserted diagnostic should be disabled via the Open Load While Asserted Configuration block.  A special blockset has been created for control and diagnostics of the MC33810 chip which is the driver for the IGBT coil drivers on the SECM112.  See [[MC33810_Blocks|here]] for more detail on the blocks related to the MC33810.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''LSO10''': reports open or short to GND while de-asserted, and short while asserted.  The IO Fault Status block will report a “2” if no fault is detected, or a “1” if a fault state is detected.  It will not report a &amp;quot;0&amp;quot; (OK).   There is a Fault Detail block that will also report which type of fault (Open or Short) has been detected.   Note that the Fault Detail block can still report indeterminate (2) in some cases, but can more clearly identify whether a particular fault is active. For example, while LSO10 is de-asserted the fault detail for LSO10 will report the open fault as being either OK (0) or in fault (1), but will sometimes intermittently report indeterminate(2). The short to battery would continuously report indeterminate (2) while off. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''LSO15''':  reports open or short to GND while de-asserted, and short while asserted.   There is not a block to detect which fault is being set, but the state of the output (On or Off) could be used in the application model.  This will report “2” if no fault is detected, or a “1” if a fault state is detected. &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Internal Temperature Monitor ===&lt;br /&gt;
The SECM112 has an internal temperature monitor that can be accessed via the '''Get Module Data''' block. So, for example, you could implement a Simulink model that logged the maximum observed MicroTemp to NVM. &lt;br /&gt;
&lt;br /&gt;
[[Image:GetModuleData_JunctionTemp.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Shared Resources between the Main and Auxillary S12 cores ==&lt;br /&gt;
The following are shared between the main and s12G cores:&lt;br /&gt;
&lt;br /&gt;
Analog inputs: AN01-05, AN16, AN17, AN18, AN24, AN31, VCAL, KEYSW&lt;br /&gt;
&lt;br /&gt;
Digital inputs: VR1/DG1 (after mux), DG3, DG4, DG5, DG8, Wake-up (on XIRQ) from main core, reset from main core*, main core status&lt;br /&gt;
&lt;br /&gt;
Comms: CAN1&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* There is a shared line for reset of the S12 by the main core, however, this is not available to the application.  There is no block to set it.   It is currently only used during programming to turn the S12 off to prevent CAN bus errors or erroneous resets&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Communications ===&lt;br /&gt;
==== CAN ====&lt;br /&gt;
The SECM112 has three 2.0B CAN ports for distributed I/O, distributed control, and Human Machine Interface (HMI) purposes.&lt;br /&gt;
&lt;br /&gt;
 Important: The SECM112 is programmed at the factory with a sample application that sets CAN-1 of both the Main and Auxillary Cores to 500k baud rate.   &lt;br /&gt;
 '''Both Cores are internally connected within the ECU on CAN-1'''.&lt;br /&gt;
 '''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.'''&lt;br /&gt;
 '''Each Core must also have a Unique City ID for MotoTune defined in the CAN Definition Block'''&lt;br /&gt;
&lt;br /&gt;
For programming the SECM112, 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-ID’s. The module ships pre-programmed with an application ([http://mcs.woodward.com/content/motohawk/examples/ECMOH_sampleapp.zip the S12G application &amp;quot;OH_S12G_sampleapp_047.srz&amp;quot; is included in this ZIP]) that sets the Baud rate for both cores to 500k, with City ID of main – 0xB and the City ID of the aux 0x81.    &lt;br /&gt;
&lt;br /&gt;
The hardboot (settings used to program the module by boot key or boot harness) if it needs to be recovered are: &lt;br /&gt;
Main: 250k b/s  City ID 0xB&lt;br /&gt;
Aux: 250k b/s City ID 0x81&lt;br /&gt;
&lt;br /&gt;
To change the baud rate on CAN-1, first program the main core.  Cycle power to put auxiliary in hardboot, the program the auxiliary as above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5644A-112-048-1204.html MotoHawk Target Cross Reference] ===&lt;br /&gt;
The [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5644A-112-048-1204.html MotoHawk Target Cross Reference] shows which IO on the ECM-OH hardware is supported by which behavior (blocks).  There are charts showing behavior vs pin as well as pin vs behavior.  This is the software help document for the module.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[Reaction_Module_Blockset|The Reaction Module Blockset]] and the SECM112==&lt;br /&gt;
The standard PSP blocks (Injector Sequence, Dual PSP, Multiple PSP..) are supported on the SECM112, but configuration of the Reaction Module '''is Required''' for Injection on the SECM112. &lt;br /&gt;
&lt;br /&gt;
Peak-Hold timing is configured by the Reaction Module, '''and the peak-hold input port on the sequence blocks is ignored.'''&lt;br /&gt;
&lt;br /&gt;
See the article on the [[Reaction_Module_Blockset|Reaction Module Blockset]] for additional details.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MC33810 Spark Blockset and the SECM112 ==&lt;br /&gt;
Many of the Woodward MCS ECMs have EST outputs which provide 0-5V TTL level outputs for smart coils.  The SECM112 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.&lt;br /&gt;
&lt;br /&gt;
See the article on the [[MC33810_Blocks|'''MC33810 Configuration blocks''']] for more detail.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Calibration Memory ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''The SECM112 has 64k of Calibration memory available.'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are porting an application from another ECU (ex. the 128-pin) the SECM-112 may have less calibration memory available.  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.    However, the SECM112 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 descision 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 on-line calibration.   The SECM112 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.&lt;br /&gt;
&lt;br /&gt;
The SECM112 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.  Some calibration values may be able to be moved to NV storage  (ex. Calibration NV).&lt;br /&gt;
&lt;br /&gt;
Recommendations to reduce calibration memory in the application:&lt;br /&gt;
&lt;br /&gt;
1. '''Review and Optimize Datatypes'''. The first thing to look at in reducing calibration memory is 64 bit vs 32 bit.  Double is the Simulink default, but is often larger than required.   Convert calibratons to 32-bit (single) or smaller datatypes.&lt;br /&gt;
  &lt;br /&gt;
2. '''Review and Optimize Tables'''. The next big item is table optimizations.  It is likely that 32-bit floating point is not needed for every table and can be reduced.  Reducing the dimenstions of tables would also reduce the memory usage.&lt;br /&gt;
&lt;br /&gt;
== The Main Power Relay Block and the S12G Auxillary processor ==&lt;br /&gt;
A common question is whether the MotoHawk MPRD block should be placed in the application for the S12G auxillary 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.  &lt;br /&gt;
&lt;br /&gt;
Also, the MPRD block is intended as a starting point and is intended to be modified to suite specific application shutdown requirements (right click the block and select Look Under Mask).&lt;br /&gt;
&lt;br /&gt;
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 auxillary S12G, it is nessessary to remove the MPRD discrete output from the block.   The below link has an example MPRD block modified for the ECM-OH Auxillary processor.&lt;br /&gt;
&lt;br /&gt;
[http://mcs.woodward.com/content/motohawk/examples/ECM_OH_S12G_sampleapp.mdl ECM-OH Example of Modified MPRD for the S12G]&lt;br /&gt;
&lt;br /&gt;
== Recovering the SECM112==&lt;br /&gt;
Occasionally, errors in programming may require that the module be recovered with a boot key or boot sequence. The following section describes recovery procedure for the SECM112.  For more information, see [[Boot_key_recovery|Boot Key Recovery]].&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Important: Remove the ECU from all control connections before attempting to recover the module.'''&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Default Bootloader MotoServer Settings (Recover/Bootstrap Mode):'''&lt;br /&gt;
&lt;br /&gt;
Main Core: 250kbps on CAN-1, City ID 0x0B (11)&amp;lt;br&amp;gt;&lt;br /&gt;
S12G Core: 250kbps on CAN-1, City ID 0x81 (129)&lt;br /&gt;
&lt;br /&gt;
The SECM112 has two microprocessor cores, the Main Core and the Auxillary S12G. Both processors are connected on CAN1, so it is important that both processors configure their CAN-1 port with the same baud rate, and different MotoTune IDs.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Recovering the Main Processor'''&amp;lt;br&amp;gt;&lt;br /&gt;
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:&amp;lt;br&amp;gt;&lt;br /&gt;
AN3: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN4: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN16: Pull to GND &amp;lt;br&amp;gt;&lt;br /&gt;
AN17: Pull to GND &amp;lt;br&amp;gt;&lt;br /&gt;
AN18: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Recovering the S12G Auxillary Core (requires battery toggle)'''&amp;lt;br&amp;gt;&lt;br /&gt;
The S12G cannot be recovered with a boot key.  A boot sequence on the analog inputs of the S12G is required to recover it.&amp;lt;br&amp;gt;&lt;br /&gt;
AN3: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN4: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN16: Pull to +5V &amp;lt;br&amp;gt; &lt;br /&gt;
AN17: Pull to GND &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Applying the boot signal or sequence'''&lt;br /&gt;
&lt;br /&gt;
The boot key signal or boot sequence is only searched within the first 2-3 seconds of the ECU waking up.   To ensure that the signal/sequence is recognized, the following procedure is recommended:&amp;lt;br&amp;gt;&lt;br /&gt;
1) Apply the boot signal or sequence. &amp;lt;br&amp;gt;&lt;br /&gt;
2) Main Core recovery: Turn Power ON, but key off; S12G Core recovery: battery off.&amp;lt;br&amp;gt;&lt;br /&gt;
3) Initiate MotoTune programming on the MotoServer port (City ID 0x0B 250k baud for Main Core, 0x081 250kbaud for S12G Core). &amp;lt;br&amp;gt;&lt;br /&gt;
4) When 'Searching for ECU' appears in MotoTune, turn the key on (Main Core recovery) or battery on (S12G Core recovery).    It may take several tries.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Avoiding Baud Rate Collision During and After Recovery Process:'''&lt;br /&gt;
&lt;br /&gt;
The Pre-PV and PV units will ship with a Main Core sample application that will connect at 500 kbps on PCM-1 (City-ID 11) or PCM-2 (City-ID 12), and S12G Core sample application that will connect at 500 kbps on SECM-1 (City-ID 129).  The application baud rate on CAN-1 does not match that of the bootloaders’ recovery mode baud rate, and there may be baud rate collision between the Main Core Application and the S12G Bootloader (or between the S12G Application and the Main Core Bootloader).&lt;br /&gt;
&lt;br /&gt;
The Main Core recovery process automatically avoids baud rate collision by holding the S12G Core in reset, so there will be no collision between the Main Core Bootloader and the S12G Core application.&lt;br /&gt;
&lt;br /&gt;
However, if you are recovering the S12G Core, you must manually prevent baud rate collision by first programming the Main Core with an application* that sets CAN-1 at 250kbps.  Note that if after recovery the S12G application configures CAN-1 at other than 250kbs, it will collide with the Main Core application’s 250K CAN-1 setting.  Because of this, it is recommended to enable MotoTune on CAN2 in the Main Core application* to allow the Main Core to be re-programmed via CAN-2 (another option is to perform recover procedure on the Main Core after the S12G Core has been recovered).&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
=== Why Do I get this Build Warning?WARNING: CamEncoder has interface Hardware that has not been defined.===&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== What causes the build to fail with this error? &amp;quot;ERROR: A ReactPHWOTChan definition for INJ1 was not found in the application. &amp;quot; ===&lt;br /&gt;
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).&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== What causes the build to fail with this error? &amp;quot;ERROR: A ReactionModule with a ModuleResource of REACT was not found in the application descriptor&amp;quot; ===&lt;br /&gt;
This is really the same cause as the question above.  The use of the INJ channels (even when not in an injector block) require the Reaction Module to be configured in the application.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== I see values with 100% in the build log.  Is this expected?  ===&lt;br /&gt;
There are several memory areas displayed in the build statistics that are internally reserved peices of data.  These are displayed at 100% in the build statistics and cannot be changed by the application.&amp;lt;br/&amp;gt;&lt;br /&gt;
FLASH_RCHW: 4 bytes 100% of 4 &amp;lt;br/&amp;gt;&lt;br /&gt;
FLASH_ENTRY: 4 bytes 100% of 4 &amp;lt;br/&amp;gt;&lt;br /&gt;
FLASH_CRCDEFNPTR: 4 bytes 100% of 4 &amp;lt;br/&amp;gt;&lt;br /&gt;
RAM_BOOTMAILBOX: 16 bytes 100% of 16 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is the 12 V power supply isolated?  ===&lt;br /&gt;
12VOUT is supplied from DRVP and shares a common ground plane so no there is no galvanic isolation from the other supplies.  The intent of the 12VOUT is to power a MAF sensor that requires this voltage. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is the XDRP2 5 V supply more precise than XDRP1?  ===&lt;br /&gt;
XDRP1 is stated as &amp;quot;5V +/- 2%&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
XDRP2 is stated as &amp;quot;VCC +/- 0.2%&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
The above statements make it appear XDRP2 may be more precise than XDRP1, but this may be misleading.  VCC is the internal 5V supply, which is 5V +/-2%.  The reason XDRP2 is a better option for ratiometric sensors lies in the fact that XDRP2 is also the processor's ADC reference.  See next question on VCAL.&lt;br /&gt;
&lt;br /&gt;
=== What is VCAL?  ===&lt;br /&gt;
VCAL is an internal precision 2.5V reference that can be read by the application using a MotoHawk Analog Input block.  This can be used to measure VCC and subsequently used to compensate for absolute voltage sensors.&lt;br /&gt;
&lt;br /&gt;
=== What is DG8?  ===&lt;br /&gt;
DG8 may be called out in some SECM112 documentation, but this is the same as the STOP input.  MotoHawk specifically uses STOP as the resource for this module pin.&lt;br /&gt;
&lt;br /&gt;
=== Can the Auxiliary Processor force an engine to stop?===&lt;br /&gt;
The [[SECM112#Targets | Auxiliary Processor]] can cause the H-Bridge Outputs to be in the off state via the H1 and H2 disables.  MPRD disable can also occur via the MPRD disable output, which also has the side effect of disabling the encoder inputs (Crank and Cam).  Ultimately, a corrective action can be taken by actively resetting the main processor.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=Module_Datasheets&amp;diff=4039</id>
		<title>Module Datasheets</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=Module_Datasheets&amp;diff=4039"/>
		<updated>2016-03-30T01:32:54Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* 70 Pin Modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cross Reference Charts ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36328 MotoHawk Control Solutions ECM Summary (36328)]&amp;lt;br /&amp;gt;&lt;br /&gt;
* Summary Comparision of ECM Modules&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/CrossReference.html MotoHawk Target CrossReference Chart]&amp;lt;br/&amp;gt;&lt;br /&gt;
* MotoHawk Cross Reference Chart showing modules and the IO Behaviors supported by the MotoHawk software&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[24-pin_Module_Family|24 Pin Modules]] ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36322 ECM-0S12-024-0502-C/F Datasheet (36322)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc for ECM-0S12-024-0502 Module &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36358 ECM-0S12-024-0503 Datasheet (36358 inactive)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc., for the ECM-0S12-024-0503 Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* (replaced by -0801 and 0804)&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36360 ECM-0S12-024-0802-C/F Datasheet (36360)]&amp;lt;br /&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc for ECM-0S12-024-0802 Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36323 GCM-0565-024-0602-F Datasheet (36323)]&amp;lt;br /&amp;gt;&lt;br /&gt;
* Inactive: For Reference Only. Resource Descriptions, Pinouts, etc., for the GCM-0565-024-0602-F Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36324 GCM-0S12-024-0401-F Datasheet (36324)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc., for the GCM-0S12-024-0401-F Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36325 GCM-0S12-024-0402-F Datasheet (36325)]&amp;lt;br /&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc., for the GCM-0S12-024-0402-F Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36326 GCM-0S12-024-0403-F Datasheet (36326)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc., for the GCM-0S12-024-0403-F Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[48-pin_Module_Family|48 Pin Modules]] ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36301 ECM-0555-048 Controller Family Datasheet (36301)]&amp;lt;br/&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc., for the ECM-0555-048 Family of Control Modules&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36317 ECM-0563-048-0701 Datasheet (36317)]&amp;lt;br/&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc., for the ECM-0563-048-0701-C/F Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36318 ECM-0563-048-0704 Datasheet (36318)]&amp;lt;br/&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc., for the ECM-0563-048-0704 Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber ECM-0563-048-0705 Datasheet (36319)]&amp;lt;br/&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc.for the ECM-0563-048-0705 Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36303 GCM-0563-048 Controller Family Datasheet (36303)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc for the GCM-0563-048C/F Control Modules&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36330 HCM-0563-048-0801-C/F Datasheet (36330)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc., for the HCM-0563-048-0801-C/F Modules&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36331 HCM-0563-048-0802-C/F Datasheet (36331)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc.for the HCM-0563-048-0802 -C/F Modules&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36332 HCM-0563-048-0803-C/F Datasheet (36332)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc., for the HCM-0563-048-0803-C/F Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[70-pin_Module_Family|70 Pin Modules]] ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36348 ECM-S12X-070 Family Engine Control Modules Product Information Sheet (36348)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*General Product Information for ECM-S12X-070 Family&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36347 ECM-0S12-070-1001 Datasheet (36347)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc of ECM-S12X-070-1001&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''NEW!'''  [http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36363 ECM-5634M-070 (SECM70) Family Engine Control Modules Product Specification (36363)]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''NEW!'''  [http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=26776 ECM-5634M-070 (SECM70) Family Engine Control Modules Product Manual (26776)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc of ECM-5634M-070-14xx (SECM70)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[80-pin_Module_Family|80 Pin Modules]] ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36314 ECM-0555-080-0701 Datasheet (36314)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Inactive: For Reference Only.  Resource Descriptions, Pinouts, etc., for the ECM-0555-080-0701-F Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36315 ECM-0555-080-0702 Datasheet (36315)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc., for the ECM-0555-080-0702-C/F Modules&amp;lt;br /&amp;gt;&lt;br /&gt;
* '''ECM-0555-080-0702 C/F has been replaced by ECM-0555-080-0802.  The -0702 datasheet applies to the -0802'''&amp;lt;br/&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36316&amp;quot; ECM-0555-080-0703 Datasheet (36316)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Inactive: For Reference Only.  Resource Descriptions, Pinouts, etc., for the ECM-0555-080-0703-C/F Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[112-pin_Module_Family|112 Pin Modules]] ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36757 ECM-5554-112-0902 Datasheet (36757)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc for the ECM-5554-112-0902 F/C Modules&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36350 ECM-5554-112-0904 Datasheet (36350)]&amp;lt;br /&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc for the ECM-5554-112-0904C/F Control Modules&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36370 GCM-5554-112-1001-C/F Datasheet (36370)]&amp;lt;br /&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc for the GCM-5554-112-1001-C/F Control Modules (1751-6456 1751-6457)&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36364 SECM112 Datasheet (36364)]&amp;lt;br /&amp;gt;&lt;br /&gt;
* General IO description for the SECM112 Control Modules&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[128-pin_Module_Family|128 Pin Modules]] ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36320 ECM-0565-128-0701-C Datasheet (36320)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc., for the ECM-0565-128-0701-C Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36321 ECM-0565-128-0701-F Datasheet (36321)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc for the ECM-0565-128-0701-F Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36355 ECM-0565-128-0702-C Datasheet (36355)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc., for the ECM-0565-128-0702-C Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36371 ECM-0565-128-0704-C Datasheet (36371)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc., for the ECM-0565-128-0704-C Module&amp;lt;br /&amp;gt;&lt;br /&gt;
* MotoHawk 2010bSP0 or higher is Required for the ECM-0565-128-0704-C Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36368 ECM-0565-128-1001-C/F Datasheet (36368)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc., for the ECM-0565-128-1001-C/F Module&amp;lt;br/&amp;gt;&lt;br /&gt;
* MotoHawk 2010bSP0 or higher is Required for the ECM-0565-128-1001-C/F Module&amp;lt;br/&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Additional Resources ==&lt;br /&gt;
=== [[Boot_key_recovery|Boot Key Recovery]] === &lt;br /&gt;
This article describes how to recover a module that may be unresponsive due to programming errors using a Boot Key or Boot Cable&lt;br /&gt;
&lt;br /&gt;
* [[Boot_key_recovery|Boot Key Recovery Document]]&lt;br /&gt;
&lt;br /&gt;
=== MotoService Software Installation Guide ===&lt;br /&gt;
*[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=9700-1002&amp;quot; MotoService Software Installation Guide (9700-1002)]&amp;lt;br /&amp;gt;&lt;br /&gt;
General Software Installation Guide&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Desktop IO Simulator===&lt;br /&gt;
*[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36369&amp;quot; Desktop IO Simulator_36369]&amp;lt;br /&amp;gt;&lt;br /&gt;
Description and pin out chart for Desktop IO simulator 8909-1043&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=Reaction_Module_Blockset&amp;diff=4037</id>
		<title>Reaction Module Blockset</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=Reaction_Module_Blockset&amp;diff=4037"/>
		<updated>2016-03-23T01:11:31Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Peak/Hold with Off Time (PHWOT) Controller and the Reaction Module off TimeDefinition block */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
=='''Reaction Module Setup for Injection Timing'''==&lt;br /&gt;
&lt;br /&gt;
Low impedance injector drivers circuits are based upon switching a MOSFET on and off at frequency to regulate load current. The high frequency switching allows the MOSFET to operate in its more thermally efficient saturated region. The circuits typically monitor load current and switch off when that current exceeds a certain threshold referred to as the “switch-off” current. For the 128-pin ECM for example, the switching is done in the hardware through a chopper circuit. This achieves a fixed peak hold current level.&lt;br /&gt;
&lt;br /&gt;
By comparison, the switching for the ECM-OH is accomplished in software through the Reaction Module on the Freescale MPC5644. This gives greater flexibility to the application in setting the current limits at which the circuit will switch off (limits for max peak and max hold current) as well as the fixed amount of time for which the output will be switched off. The Reaction module must be defined, and the Reaction Channels configured for the required timing components and current thresholds to achieve the average current levels required in the application.&lt;br /&gt;
&lt;br /&gt;
The standard PSP blocks (Injector Sequence, Dual PSP, Multiple PSP..) are supported on the ECM-OH, but configuration of the Reaction Module is Required for Injection on the ECM-OH. Peak-Hold timing is configured by the Reaction Module, and the peak-hold input port on the sequence blocks is ignored.&lt;br /&gt;
&lt;br /&gt;
The Reaction Module Configuration blocks are located in the Module Configuration library of MotoHawk.&lt;br /&gt;
&lt;br /&gt;
This article will give an overview of the Reaction Channel Blocks. Refer to the Block Help for each block for detailed descriptions of the block usage, limitations, and design considerations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/ReactionModule.html Reaction Module Definition block]===&lt;br /&gt;
&lt;br /&gt;
This block MUST be placed in the model if injection is required. It defines the global configurations of Freescale Semiconductor’s Reaction Module. If this block is not placed in the model, the following build error will result.&lt;br /&gt;
&lt;br /&gt;
ERROR: A ReactionModule with a ModuleResource of REACT was not found in the application descriptor.&lt;br /&gt;
&lt;br /&gt;
[[Image:ReactionModule.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/PHWOTReactionChannel.html '''Peak/Hold with Off Time (PHWOT) Controller'''] and the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/ReactionModuleOffTime.html '''Reaction Module off TimeDefinition block'''] ===&lt;br /&gt;
&lt;br /&gt;
Reaction Channels perform the load current modulation to achieve the desired average current and peak/hold times.&lt;br /&gt;
Once the Reaction Module is Defined, the Reaction Channel Behaviors must Be configured.&lt;br /&gt;
The Peak/Hold with Off Time (PHWOT) Controller block Defines the Peak Threshold and Hold Threshold values used for&lt;br /&gt;
modulation. The Reaction Module off Time Definition block defines the fixed amount of time the channel will turn off,&lt;br /&gt;
once the threshold value is reached.&lt;br /&gt;
&lt;br /&gt;
As an example, one MotoHawk Reaction Channel Contoller Peak Hold with Off Time block is configured, and the Peak&lt;br /&gt;
Threshold and Hold Threshold are input into the block. Detect Threshold is for fault detection. Also, two Reaction&lt;br /&gt;
Module Off Time Definition blocks are used in this example. One is controlling the off time for the peak section of the injector output, and the other is controlling the off time for the hold portion. This could be configured differently to fit the specific application needs.&lt;br /&gt;
&lt;br /&gt;
[[Image: PHWOT1.PNG]]&lt;br /&gt;
&lt;br /&gt;
In the waveform below, the injector turns on. Initially it is in the peak portion of the signal. When the Peak Threshold is reached, the output is shut off for the Peak Off Time defined by the Timer block. Similarly, in the Hold portion of the signal, when the Hold Threshold is reached, the hold output shuts off for the Hold Off Time.&lt;br /&gt;
&lt;br /&gt;
[[Image:PHWOT_Waveforms.PNG]]&lt;br /&gt;
&lt;br /&gt;
=== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/ReactionPHWOTChannelDefinition.html '''Peak/Hold with Off Time (PHWOT) Channel Definition Block'''] ===&lt;br /&gt;
&lt;br /&gt;
The Reaction Channels are associated to Injector Outputs with the Peak/Hold with Off Time (PHWOT) Channel Definition Block. A controller can be used by more than one channel and so the same controller definition could be used to define how all the injectors on a module operate.&lt;br /&gt;
Below, as one example, one Reaction Channel Controller resource is defined, and it is associated to 6 injectors.&lt;br /&gt;
&lt;br /&gt;
[[Image:PHWOT_Defn_Example_6.PNG]]&lt;br /&gt;
&lt;br /&gt;
=== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/TimedPeakHold.html '''Timed Peak Hold'''] ===&lt;br /&gt;
The Reaction Channel Controller Peak Hold with Off Time block also has a checkbox for enabling timed peak hold. When this box is checked, the Timed Peak Hold block is used to define the peak time. Peak time set in the Injection blocks (ex. sequence block) is ignored.&lt;br /&gt;
&lt;br /&gt;
[[Image:TimedPeakHold.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/ReactionChannelStatus.html '''Reaction Module Status'''] ===&lt;br /&gt;
&lt;br /&gt;
The Reaction Module Status block can be used to determine the status of the Reaction Module.&lt;br /&gt;
The status is described by an enumeration of possible status events. &lt;br /&gt;
* 0 = OK &lt;br /&gt;
 &lt;br /&gt;
* 1 = Channel Failed to Create &lt;br /&gt;
 &lt;br /&gt;
* 2 = Timer Allocation Error occurred since status was last queried &lt;br /&gt;
 &lt;br /&gt;
* 3 = Resource Allocation Error occurred since status was last queried&lt;br /&gt;
 &lt;br /&gt;
* 4 = Parent Reaction Module Not Created &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Channel Failed to Create'''&amp;lt;/big&amp;gt; &lt;br /&gt;
A software issue has prevented the Reaction Channel from creating. The Reaction Channel behavior won't operate. The output will be disabled. &lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
An example subsystem showing the Reaction Module blockset is attached.  You must be logged into the MCS website to download the example.&lt;br /&gt;
&lt;br /&gt;
[http://mcs.woodward.com/content/motohawk/examples/reaction_module_example.slx Reaction Module Example]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Timer Allocation Error'''&amp;lt;/big&amp;gt; &lt;br /&gt;
The reaction module supports a pool of internal timers that are shared by all of the reaction channels and is of a finite size. A timer may be required during a reaction channel's modulation sequence. For example the PHWOT Reaction Channel behavior utilizes one of these shared timers to implement its peak phase. This error is issued if a channel required a timer, but there was not one available. The reaction channel setup and/or control will need to be modified to prevent this error from occurring. It is brought about by limitations in the Reaction Module silicon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Resource Allocation Error'''&amp;lt;/big&amp;gt; There were internal software issues that are preventing the reaction channel operating as expected. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Parent Reaction Module Not Created'''&amp;lt;/big&amp;gt; &lt;br /&gt;
This channel is dependent upon the Reaction Module creating successfully, which did not occur. The output will be disabled.&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=MC33810_Blocks&amp;diff=4034</id>
		<title>MC33810 Blocks</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=MC33810_Blocks&amp;diff=4034"/>
		<updated>2016-03-22T12:59:52Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some modules use the MC33810 as the driver for their LSO and/or Spark Outputs.  MotoHawk contains a blockset of MC33810 configuration and diagnostic blocks that can be used to enable the additional current control and diagnostic capabilities of the MC33810 chip. &lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
The MC33810 is used on:&amp;lt;br&amp;gt;&lt;br /&gt;
* [[70-pin_Module_Family#ECM-S12X-70|ECM-S12X-70]] &amp;lt;br&amp;gt;&lt;br /&gt;
* [[ECM-OH|ECM-564x-112]] (SECM112)&lt;br /&gt;
&lt;br /&gt;
== Diagnostics ==&lt;br /&gt;
The MC33810 has three types of outputs.   There are four low side gate drivers and four pre-gate drivers that can function either as ignition IGBT or general purpose MOSFET gate pre-drivers.    The fault reporting will depend on which outputs of the MC33810 are being used and whether the pregate drivers are configured for IGBT or MOSFET.&lt;br /&gt;
&lt;br /&gt;
'''Note:'''  When configured for an IGBT (typically on the ECU spark outputs) the driver diagnostics assume that the load will be an ignition coil.  Diagnostics for other loads using the IGBT spark outputs may be impacted. &lt;br /&gt;
&lt;br /&gt;
=== Output Types ===&lt;br /&gt;
'''OUT Type''':  General low side gate drivers &amp;lt;br&amp;gt;&lt;br /&gt;
'''GPGD Type''':  Pregate driver configured for a MOSFET &amp;lt;br&amp;gt;&lt;br /&gt;
'''IGBT Type''':  Pregate driver configured for an IGBT&lt;br /&gt;
&lt;br /&gt;
=== Possible Faults Reported by MotoHawk from the MC33810 ===&lt;br /&gt;
&lt;br /&gt;
The fault detail is reported by the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810FaultDetail.html MotoHawk MC33810 Fault Detail] block.  This block can report the LAST reported fault of the following faults.  The faults that can be reported depend on the type of MC33810 output as well as the MotoHawk block used for the output.  &lt;br /&gt;
&lt;br /&gt;
[[image:MC33810FaultDetail.png]]&lt;br /&gt;
&lt;br /&gt;
The [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/IOFaultStatus.html IO Fault Status block] must be used with the IO Fault Detail block because the MC33810 fault detail block reports the last reported fault.  It will continue to report a fault after the fault condition has cleared, and is intended only to give additional detail to the application.&lt;br /&gt;
&lt;br /&gt;
(0) No faults observed &amp;lt;br&amp;gt;&lt;br /&gt;
(1) Open detected while asserted. Channel is OUT type &amp;lt;br&amp;gt;&lt;br /&gt;
(2) Open detected while not-asserted. Channel is OUT type&amp;lt;br&amp;gt;&lt;br /&gt;
(3) Short to battery. Channel is OUT type&amp;lt;br&amp;gt;&lt;br /&gt;
(4) Temperature limit shutdown. Channel is OUT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(5) Open detected. Channel is GPGD type.&amp;lt;br&amp;gt;&lt;br /&gt;
(6) Short detected. Channel is GPGD type.&amp;lt;br&amp;gt;&lt;br /&gt;
(7) Open secondary detected. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(8) Max dwell shutdown. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(9) MAXI current observed. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(10) Open primary (Nominal current not attained). Channel is IGBT type.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IGBT PreGate Drivers ==&lt;br /&gt;
&lt;br /&gt;
'''When these pregate driver (FB0,1,2,or 3) outputs of the MC33810 are configured as IGBT pregate drives, the output expects that they will be used to drive an ignition coil.'''   These would be typical on ECU spark outputs that use the MC33810.  &lt;br /&gt;
&lt;br /&gt;
When configured for IGBT type, the following faults can be detected:&amp;lt;br&amp;gt;&lt;br /&gt;
(0) No faults observed&amp;lt;br&amp;gt;&lt;br /&gt;
(7) Open secondary detected. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(8) Max dwell shutdown. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(9) MAXI current observed. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(10) Open primary (Nominal current not attained). Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MC33810 Spark Control Definition ==&lt;br /&gt;
The MC33810 Spark Control Definition block must first be placed in the model to define the global configurations of the MC33810 IC that relate to IGBT control.  There will be one block for each MC33810 driver chip.  &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810_Spark_Control_Definition.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The fault diagnostics of these outputs are then enabled through the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810SparkFaultDefinition.html MC33810 Spark Fault Definition] block.   The Spark Resource (pin) is selected. &lt;br /&gt;
&lt;br /&gt;
==== NOMI and MAXI Thresholds ====&lt;br /&gt;
The IGBT pregate drivers use the nominal current value (or NOMI, where I=current) for detection of an open circuit on the ignition coil primary side.  The current is also compared to a maximum current value, or MAXI.  The MC33810 compares the expected values for NOMI and MAXI across a current sense resistor.  If the NOMI level is not reached, an open primary fault (10) is set.  Similarly if MAXI is exceeded, MAXI fault is set (9).  The NOMI and MAXI values are software configurable to the ranges of 3A to 10.75A for NOMI and 6A to 21A for MAXI using the Motohawk MC33810 Spark DAC Set block, found in Module Configuration blocks.  &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810_DAC_Settings.PNG]]&lt;br /&gt;
&lt;br /&gt;
IGBT type channels use  MAXI and NOMI  (maximum and nominal current) levels for fault detection.   The MAXI and NOMI channels are shared for up to four spark outputs.   &amp;lt;font color = red&amp;gt; The diagnostics may not be reliable if the spark signals overlap.&amp;lt;/font color&amp;gt;  This normally is not an issue with the intended use for spark.  However, diagnotics would be impacted if driving a different load with a discrete output, for example, as the channels could overlap.&lt;br /&gt;
&lt;br /&gt;
NOMI and MAXI current is only used when the outputs are configured as IGBT pre-gate drivers. These do not apply if pregate driver is configured for a MOSFET (as in an LSO).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=red&amp;gt; NOMI fault detection requires a shutdown event and is not supported if the output is driven by a PWM or Discrete Output block.   Open circuit faults on IGBT spark outputs using discrete or PWM block and MC33810 IGBT type outputs will not be reported. &amp;lt;/font color&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Time to Nominal Current ====&lt;br /&gt;
The time to reach the nominal current level can be monitored by the application for control or diagnostics.   The [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/TimetoNominalCurrentDefinition.html Time to Nominal Current Definition] block creates a resource that allows the last observed time to nominal load current diagnostic to be read. This block can be used directly to recover the time or the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/TimetoNominalCurrent.html Time to Nominal Current] access block used, which references this block.&lt;br /&gt;
&lt;br /&gt;
[[Image: TimetoNOMIDefn.jpg]]&lt;br /&gt;
&lt;br /&gt;
==== Open Secondary Fault ====&lt;br /&gt;
In the event that the secondary is open, all of the stored energy in the ignition coil is dissipated by the IGBT.  Faults for open secondary can thus be reported by comparing the current on the primary to what is expected given that the secondary is discharging as expected.   Again, fault reporting assumes the IGBT output is driving an ignition coil, and incorrect fault reporting can occur when the device is driving something different  (ex. a solenoid or pump).&lt;br /&gt;
&lt;br /&gt;
==== Dwell Time ====&lt;br /&gt;
Dwell time is the duration of time that an ignition coil is allowed to change. The MC33810 starts a timer from when the gate is turned ON.  If the dwell time is longer than the Max Dwell setting,  a Max Dwell fault can be set. The Max Dwell fault (8) indicates that the channel was shutdown because of an over dwell situation.&lt;br /&gt;
&lt;br /&gt;
=== Monitoring Spark Duration ===&lt;br /&gt;
The spark duration can be monitored using the MotoHawk MC33810 [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationDefinition.html Spark Duration Definition] and [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationTrigger.html Spark Duration Trigger] blocks.&lt;br /&gt;
&lt;br /&gt;
The MC33810 Spark Duration Definition block must be used to select a resource for spark duration measurement.  Alternatively the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationGet.html Get MC33810 Spark Duration block] can be used. Only a single definition block may exist for each resource, but multiple Get MC33810 Spark Duration blocks may exist.  The Spark Duration outport recovers the last observed spark duration for the associated resource in microseconds. A negative value (-1) implies that the MC33810 did not measure a spark duration. Blocks like the MC33810 Spark Control Definition and the MC33810 Spark Fliter Set may need to be configured for the hardware so that it can reliably measure spark duration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Behavior Limitations'''&lt;br /&gt;
The MC33810 hardware measures the spark duration and exports it to the microcontroller via a single, shared SPKDUR signal. Multiple spark duration definition blocks that target different resources may share the same SPKDUR signal. MotoHawk™ demultiplexes this signal when it is processed, but assumes that the behavior of excitation signal that generates the spark will be generated via PSP. Therefore this behavior will only work with PSP like behaviors including Dual PSP, Multiple PSP and the Spark Sequence blocks.&lt;br /&gt;
&lt;br /&gt;
The SPKDUR signal that the microcontroller interprets to obtain spark duration may also be made available in a raw form via the Input Capture block. Spark duration will be reported if this block is configured to trigger on the rising edge. The Input Capture block may not coexist with the MC33810 Spark Duration block. Use the Input Capture block to construct an application specific spark duration capture mechanism when behaviors besides PSP are to be used.&lt;br /&gt;
&lt;br /&gt;
There is also a [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationTrigger.html MC33810 Spark Duration Trigger block] that allows the model to be notified when a spark duration event for the referenced resource is observed. &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810SparkDurationTrigger.png]]&lt;br /&gt;
&lt;br /&gt;
Note that the spark duration trigger will occur after the excitation (dwelling) event concludes (spark is initiated by the conclusion of the excitation event). Thus it quite likely that a trigger block like the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/PSPEndTrigger.html PSP End Trigger] will execute before the spark associated with that excitation event has completed. In such a situation the reported spark duration will still be for the previous excitation rather than the excitation that just occurred.&lt;br /&gt;
&lt;br /&gt;
== MOSFET (GPGD) Predriver Type ==&lt;br /&gt;
The MC33810 pregate driver can also be configured for MOSFET type.  This is determined by the type of output pin used in the model and cannot be changed by the application.  &lt;br /&gt;
&lt;br /&gt;
When configured as a GPGD type, the following faults can be reported:&lt;br /&gt;
&lt;br /&gt;
(0) No faults observed&lt;br /&gt;
&lt;br /&gt;
(5) Open detected. Channel is GPGD type.&lt;br /&gt;
&lt;br /&gt;
(6) Short detected. Channel is GPGD type.&lt;br /&gt;
&lt;br /&gt;
Again, the fault state is reported through the IO Fault Status block, and additional detail on the LAST fault observed can be obtained through the MC33810 Fault Detail Block.  Open load can be detected when the output is off, and short to battery faults detected when the output is on.&lt;br /&gt;
&lt;br /&gt;
The fault reporting of a GPGD type output is configured by using the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810GPGDFaultConfig.html Motohawk MC33810 GPGD Fault Configuration Block].  This block allows the fault configuration of a GPGD style MC33810 output to be applied.&lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810GPGDFaultConfig.png]]&lt;br /&gt;
&lt;br /&gt;
Retry defines whether an output that has been shutdown because of a detected short circuit will attempt to assert again without first having be turned off by the application.&lt;br /&gt;
&lt;br /&gt;
Short Voltage defines the drain source voltage that triggers a short circuit. Values between 0.5V and 3V are supported by the device.&lt;br /&gt;
&lt;br /&gt;
Short time defines how long the drain source voltage must be above the threshold before a fault is triggered. Values between 30us and 960us are supported by the device.&lt;br /&gt;
&lt;br /&gt;
The default 2.5V MC33810 setting is applied for unconnected or &amp;quot;grounded&amp;quot; inputs.&lt;br /&gt;
&lt;br /&gt;
== General Gate Driver Outputs ==&lt;br /&gt;
The following faults can be reported for the general gate driver outputs (OUT channels).  &lt;br /&gt;
&lt;br /&gt;
(0) No faults observed &amp;lt;br&amp;gt;&lt;br /&gt;
(1) Open detected while asserted. &amp;lt;br&amp;gt;&lt;br /&gt;
(2) Open detected while not-asserted. &amp;lt;br&amp;gt;&lt;br /&gt;
(3) Short to battery. &amp;lt;br&amp;gt;&lt;br /&gt;
(4) Temperature limit shutdown. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The general gate drivers have the capability to detect an open circuit condition even while the drive is asserted. However, there are often requirements on the load that must be met before the diagnostic will operate reliably. The [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/OpenLoadWhileAssertedConfiguration.html Open Load While Asserted Configuration] block allows the application to define whether this diagnostic should be used.&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=MC33810_Blocks&amp;diff=4033</id>
		<title>MC33810 Blocks</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=MC33810_Blocks&amp;diff=4033"/>
		<updated>2016-03-22T12:56:47Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* General Gate Driver Outputs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some modules use the MC33810 as the driver for their LSO and/or Spark Outputs.  MotoHawk contains a blockset of MC33810 configuration and diagnostic blocks that can be used to enable the additional current control and diagnostic capabilities of the MC33810 chip. &lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
The MC33810 is used on:&amp;lt;br&amp;gt;&lt;br /&gt;
* [[70-pin_Module_Family#ECM-S12X-70|ECM-S12X-70]] &amp;lt;br&amp;gt;&lt;br /&gt;
* [[ECM-OH|ECM-564x-112]] (ECM-OH)&lt;br /&gt;
&lt;br /&gt;
== Diagnostics ==&lt;br /&gt;
The MC33810 has three types of outputs.   There are four low side gate drivers and four pre-gate drivers that can function either as ignition IGBT or general purpose MOSFET gate pre-drivers.    The fault reporting will depend on which outputs of the MC33810 are being used and whether the pregate drivers are configured for IGBT or MOSFET.&lt;br /&gt;
&lt;br /&gt;
'''Note:'''  When configured for an IGBT (typically on the ECU spark outputs) the driver diagnostics assume that the load will be an ignition coil.  Diagnostics for other loads using the IGBT spark outputs may be impacted. &lt;br /&gt;
&lt;br /&gt;
=== Output Types ===&lt;br /&gt;
'''OUT Type''':  General low side gate drivers &amp;lt;br&amp;gt;&lt;br /&gt;
'''GPGD Type''':  Pregate driver configured for a MOSFET &amp;lt;br&amp;gt;&lt;br /&gt;
'''IGBT Type''':  Pregate driver configured for an IGBT&lt;br /&gt;
&lt;br /&gt;
=== Possible Faults Reported by MotoHawk from the MC33810 ===&lt;br /&gt;
&lt;br /&gt;
The fault detail is reported by the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810FaultDetail.html MotoHawk MC33810 Fault Detail] block.  This block can report the LAST reported fault of the following faults.  The faults that can be reported depend on the type of MC33810 output as well as the MotoHawk block used for the output.  &lt;br /&gt;
&lt;br /&gt;
[[image:MC33810FaultDetail.png]]&lt;br /&gt;
&lt;br /&gt;
The [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/IOFaultStatus.html IO Fault Status block] must be used with the IO Fault Detail block because the MC33810 fault detail block reports the last reported fault.  It will continue to report a fault after the fault condition has cleared, and is intended only to give additional detail to the application.&lt;br /&gt;
&lt;br /&gt;
(0) No faults observed &amp;lt;br&amp;gt;&lt;br /&gt;
(1) Open detected while asserted. Channel is OUT type &amp;lt;br&amp;gt;&lt;br /&gt;
(2) Open detected while not-asserted. Channel is OUT type&amp;lt;br&amp;gt;&lt;br /&gt;
(3) Short to battery. Channel is OUT type&amp;lt;br&amp;gt;&lt;br /&gt;
(4) Temperature limit shutdown. Channel is OUT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(5) Open detected. Channel is GPGD type.&amp;lt;br&amp;gt;&lt;br /&gt;
(6) Short detected. Channel is GPGD type.&amp;lt;br&amp;gt;&lt;br /&gt;
(7) Open secondary detected. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(8) Max dwell shutdown. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(9) MAXI current observed. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(10) Open primary (Nominal current not attained). Channel is IGBT type.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IGBT PreGate Drivers ==&lt;br /&gt;
&lt;br /&gt;
'''When these pregate driver (FB0,1,2,or 3) outputs of the MC33810 are configured as IGBT pregate drives, the output expects that they will be used to drive an ignition coil.'''   These would be typical on ECU spark outputs that use the MC33810.  &lt;br /&gt;
&lt;br /&gt;
When configured for IGBT type, the following faults can be detected:&amp;lt;br&amp;gt;&lt;br /&gt;
(0) No faults observed&amp;lt;br&amp;gt;&lt;br /&gt;
(7) Open secondary detected. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(8) Max dwell shutdown. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(9) MAXI current observed. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(10) Open primary (Nominal current not attained). Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MC33810 Spark Control Definition ==&lt;br /&gt;
The MC33810 Spark Control Definition block must first be placed in the model to define the global configurations of the MC33810 IC that relate to IGBT control.  There will be one block for each MC33810 driver chip.  &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810_Spark_Control_Definition.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The fault diagnostics of these outputs are then enabled through the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810SparkFaultDefinition.html MC33810 Spark Fault Definition] block.   The Spark Resource (pin) is selected. &lt;br /&gt;
&lt;br /&gt;
==== NOMI and MAXI Thresholds ====&lt;br /&gt;
The IGBT pregate drivers use the nominal current value (or NOMI, where I=current) for detection of an open circuit on the ignition coil primary side.  The current is also compared to a maximum current value, or MAXI.  The MC33810 compares the expected values for NOMI and MAXI across a current sense resistor.  If the NOMI level is not reached, an open primary fault (10) is set.  Similarly if MAXI is exceeded, MAXI fault is set (9).  The NOMI and MAXI values are software configurable to the ranges of 3A to 10.75A for NOMI and 6A to 21A for MAXI using the Motohawk MC33810 Spark DAC Set block, found in Module Configuration blocks.  &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810_DAC_Settings.PNG]]&lt;br /&gt;
&lt;br /&gt;
IGBT type channels use  MAXI and NOMI  (maximum and nominal current) levels for fault detection.   The MAXI and NOMI channels are shared for up to four spark outputs.   &amp;lt;font color = red&amp;gt; The diagnostics may not be reliable if the spark signals overlap.&amp;lt;/font color&amp;gt;  This normally is not an issue with the intended use for spark.  However, diagnotics would be impacted if driving a different load with a discrete output, for example, as the channels could overlap.&lt;br /&gt;
&lt;br /&gt;
NOMI and MAXI current is only used when the outputs are configured as IGBT pre-gate drivers. These do not apply if pregate driver is configured for a MOSFET (as in an LSO).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=red&amp;gt; NOMI fault detection requires a shutdown event and is not supported if the output is driven by a PWM or Discrete Output block.   Open circuit faults on IGBT spark outputs using discrete or PWM block and MC33810 IGBT type outputs will not be reported. &amp;lt;/font color&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Time to Nominal Current ====&lt;br /&gt;
The time to reach the nominal current level can be monitored by the application for control or diagnostics.   The [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/TimetoNominalCurrentDefinition.html Time to Nominal Current Definition] block creates a resource that allows the last observed time to nominal load current diagnostic to be read. This block can be used directly to recover the time or the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/TimetoNominalCurrent.html Time to Nominal Current] access block used, which references this block.&lt;br /&gt;
&lt;br /&gt;
[[Image: TimetoNOMIDefn.jpg]]&lt;br /&gt;
&lt;br /&gt;
==== Open Secondary Fault ====&lt;br /&gt;
In the event that the secondary is open, all of the stored energy in the ignition coil is dissipated by the IGBT.  Faults for open secondary can thus be reported by comparing the current on the primary to what is expected given that the secondary is discharging as expected.   Again, fault reporting assumes the IGBT output is driving an ignition coil, and incorrect fault reporting can occur when the device is driving something different  (ex. a solenoid or pump).&lt;br /&gt;
&lt;br /&gt;
==== Dwell Time ====&lt;br /&gt;
Dwell time is the duration of time that an ignition coil is allowed to change. The MC33810 starts a timer from when the gate is turned ON.  If the dwell time is longer than the Max Dwell setting,  a Max Dwell fault can be set. The Max Dwell fault (8) indicates that the channel was shutdown because of an over dwell situation.&lt;br /&gt;
&lt;br /&gt;
=== Monitoring Spark Duration ===&lt;br /&gt;
The spark duration can be monitored using the MotoHawk MC33810 [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationDefinition.html Spark Duration Definition] and [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationTrigger.html Spark Duration Trigger] blocks.&lt;br /&gt;
&lt;br /&gt;
The MC33810 Spark Duration Definition block must be used to select a resource for spark duration measurement.  Alternatively the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationGet.html Get MC33810 Spark Duration block] can be used. Only a single definition block may exist for each resource, but multiple Get MC33810 Spark Duration blocks may exist.  The Spark Duration outport recovers the last observed spark duration for the associated resource in microseconds. A negative value (-1) implies that the MC33810 did not measure a spark duration. Blocks like the MC33810 Spark Control Definition and the MC33810 Spark Fliter Set may need to be configured for the hardware so that it can reliably measure spark duration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Behavior Limitations'''&lt;br /&gt;
The MC33810 hardware measures the spark duration and exports it to the microcontroller via a single, shared SPKDUR signal. Multiple spark duration definition blocks that target different resources may share the same SPKDUR signal. MotoHawk™ demultiplexes this signal when it is processed, but assumes that the behavior of excitation signal that generates the spark will be generated via PSP. Therefore this behavior will only work with PSP like behaviors including Dual PSP, Multiple PSP and the Spark Sequence blocks.&lt;br /&gt;
&lt;br /&gt;
The SPKDUR signal that the microcontroller interprets to obtain spark duration may also be made available in a raw form via the Input Capture block. Spark duration will be reported if this block is configured to trigger on the rising edge. The Input Capture block may not coexist with the MC33810 Spark Duration block. Use the Input Capture block to construct an application specific spark duration capture mechanism when behaviors besides PSP are to be used.&lt;br /&gt;
&lt;br /&gt;
There is also a [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationTrigger.html MC33810 Spark Duration Trigger block] that allows the model to be notified when a spark duration event for the referenced resource is observed. &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810SparkDurationTrigger.png]]&lt;br /&gt;
&lt;br /&gt;
Note that the spark duration trigger will occur after the excitation (dwelling) event concludes (spark is initiated by the conclusion of the excitation event). Thus it quite likely that a trigger block like the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/PSPEndTrigger.html PSP End Trigger] will execute before the spark associated with that excitation event has completed. In such a situation the reported spark duration will still be for the previous excitation rather than the excitation that just occurred.&lt;br /&gt;
&lt;br /&gt;
== MOSFET (GPGD) Predriver Type ==&lt;br /&gt;
The MC33810 pregate driver can also be configured for MOSFET type.  This is determined by the type of output pin used in the model and cannot be changed by the application.  &lt;br /&gt;
&lt;br /&gt;
When configured as a GPGD type, the following faults can be reported:&lt;br /&gt;
&lt;br /&gt;
(0) No faults observed&lt;br /&gt;
&lt;br /&gt;
(5) Open detected. Channel is GPGD type.&lt;br /&gt;
&lt;br /&gt;
(6) Short detected. Channel is GPGD type.&lt;br /&gt;
&lt;br /&gt;
Again, the fault state is reported through the IO Fault Status block, and additional detail on the LAST fault observed can be obtained through the MC33810 Fault Detail Block.  Open load can be detected when the output is off, and short to battery faults detected when the output is on.&lt;br /&gt;
&lt;br /&gt;
The fault reporting of a GPGD type output is configured by using the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810GPGDFaultConfig.html Motohawk MC33810 GPGD Fault Configuration Block].  This block allows the fault configuration of a GPGD style MC33810 output to be applied.&lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810GPGDFaultConfig.png]]&lt;br /&gt;
&lt;br /&gt;
Retry defines whether an output that has been shutdown because of a detected short circuit will attempt to assert again without first having be turned off by the application.&lt;br /&gt;
&lt;br /&gt;
Short Voltage defines the drain source voltage that triggers a short circuit. Values between 0.5V and 3V are supported by the device.&lt;br /&gt;
&lt;br /&gt;
Short time defines how long the drain source voltage must be above the threshold before a fault is triggered. Values between 30us and 960us are supported by the device.&lt;br /&gt;
&lt;br /&gt;
The default 2.5V MC33810 setting is applied for unconnected or &amp;quot;grounded&amp;quot; inputs.&lt;br /&gt;
&lt;br /&gt;
== General Gate Driver Outputs ==&lt;br /&gt;
The following faults can be reported for the general gate driver outputs (OUT channels).  &lt;br /&gt;
&lt;br /&gt;
(0) No faults observed &amp;lt;br&amp;gt;&lt;br /&gt;
(1) Open detected while asserted. &amp;lt;br&amp;gt;&lt;br /&gt;
(2) Open detected while not-asserted. &amp;lt;br&amp;gt;&lt;br /&gt;
(3) Short to battery. &amp;lt;br&amp;gt;&lt;br /&gt;
(4) Temperature limit shutdown. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The general gate drivers have the capability to detect an open circuit condition even while the drive is asserted. However, there are often requirements on the load that must be met before the diagnostic will operate reliably. The [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/OpenLoadWhileAssertedConfiguration.html Open Load While Asserted Configuration] block allows the application to define whether this diagnostic should be used.&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=MC33810_Blocks&amp;diff=4032</id>
		<title>MC33810 Blocks</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=MC33810_Blocks&amp;diff=4032"/>
		<updated>2016-03-22T12:56:30Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* MOSFET (GPGD) Predriver Type */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some modules use the MC33810 as the driver for their LSO and/or Spark Outputs.  MotoHawk contains a blockset of MC33810 configuration and diagnostic blocks that can be used to enable the additional current control and diagnostic capabilities of the MC33810 chip. &lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
The MC33810 is used on:&amp;lt;br&amp;gt;&lt;br /&gt;
* [[70-pin_Module_Family#ECM-S12X-70|ECM-S12X-70]] &amp;lt;br&amp;gt;&lt;br /&gt;
* [[ECM-OH|ECM-564x-112]] (ECM-OH)&lt;br /&gt;
&lt;br /&gt;
== Diagnostics ==&lt;br /&gt;
The MC33810 has three types of outputs.   There are four low side gate drivers and four pre-gate drivers that can function either as ignition IGBT or general purpose MOSFET gate pre-drivers.    The fault reporting will depend on which outputs of the MC33810 are being used and whether the pregate drivers are configured for IGBT or MOSFET.&lt;br /&gt;
&lt;br /&gt;
'''Note:'''  When configured for an IGBT (typically on the ECU spark outputs) the driver diagnostics assume that the load will be an ignition coil.  Diagnostics for other loads using the IGBT spark outputs may be impacted. &lt;br /&gt;
&lt;br /&gt;
=== Output Types ===&lt;br /&gt;
'''OUT Type''':  General low side gate drivers &amp;lt;br&amp;gt;&lt;br /&gt;
'''GPGD Type''':  Pregate driver configured for a MOSFET &amp;lt;br&amp;gt;&lt;br /&gt;
'''IGBT Type''':  Pregate driver configured for an IGBT&lt;br /&gt;
&lt;br /&gt;
=== Possible Faults Reported by MotoHawk from the MC33810 ===&lt;br /&gt;
&lt;br /&gt;
The fault detail is reported by the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810FaultDetail.html MotoHawk MC33810 Fault Detail] block.  This block can report the LAST reported fault of the following faults.  The faults that can be reported depend on the type of MC33810 output as well as the MotoHawk block used for the output.  &lt;br /&gt;
&lt;br /&gt;
[[image:MC33810FaultDetail.png]]&lt;br /&gt;
&lt;br /&gt;
The [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/IOFaultStatus.html IO Fault Status block] must be used with the IO Fault Detail block because the MC33810 fault detail block reports the last reported fault.  It will continue to report a fault after the fault condition has cleared, and is intended only to give additional detail to the application.&lt;br /&gt;
&lt;br /&gt;
(0) No faults observed &amp;lt;br&amp;gt;&lt;br /&gt;
(1) Open detected while asserted. Channel is OUT type &amp;lt;br&amp;gt;&lt;br /&gt;
(2) Open detected while not-asserted. Channel is OUT type&amp;lt;br&amp;gt;&lt;br /&gt;
(3) Short to battery. Channel is OUT type&amp;lt;br&amp;gt;&lt;br /&gt;
(4) Temperature limit shutdown. Channel is OUT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(5) Open detected. Channel is GPGD type.&amp;lt;br&amp;gt;&lt;br /&gt;
(6) Short detected. Channel is GPGD type.&amp;lt;br&amp;gt;&lt;br /&gt;
(7) Open secondary detected. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(8) Max dwell shutdown. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(9) MAXI current observed. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(10) Open primary (Nominal current not attained). Channel is IGBT type.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IGBT PreGate Drivers ==&lt;br /&gt;
&lt;br /&gt;
'''When these pregate driver (FB0,1,2,or 3) outputs of the MC33810 are configured as IGBT pregate drives, the output expects that they will be used to drive an ignition coil.'''   These would be typical on ECU spark outputs that use the MC33810.  &lt;br /&gt;
&lt;br /&gt;
When configured for IGBT type, the following faults can be detected:&amp;lt;br&amp;gt;&lt;br /&gt;
(0) No faults observed&amp;lt;br&amp;gt;&lt;br /&gt;
(7) Open secondary detected. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(8) Max dwell shutdown. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(9) MAXI current observed. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(10) Open primary (Nominal current not attained). Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MC33810 Spark Control Definition ==&lt;br /&gt;
The MC33810 Spark Control Definition block must first be placed in the model to define the global configurations of the MC33810 IC that relate to IGBT control.  There will be one block for each MC33810 driver chip.  &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810_Spark_Control_Definition.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The fault diagnostics of these outputs are then enabled through the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810SparkFaultDefinition.html MC33810 Spark Fault Definition] block.   The Spark Resource (pin) is selected. &lt;br /&gt;
&lt;br /&gt;
==== NOMI and MAXI Thresholds ====&lt;br /&gt;
The IGBT pregate drivers use the nominal current value (or NOMI, where I=current) for detection of an open circuit on the ignition coil primary side.  The current is also compared to a maximum current value, or MAXI.  The MC33810 compares the expected values for NOMI and MAXI across a current sense resistor.  If the NOMI level is not reached, an open primary fault (10) is set.  Similarly if MAXI is exceeded, MAXI fault is set (9).  The NOMI and MAXI values are software configurable to the ranges of 3A to 10.75A for NOMI and 6A to 21A for MAXI using the Motohawk MC33810 Spark DAC Set block, found in Module Configuration blocks.  &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810_DAC_Settings.PNG]]&lt;br /&gt;
&lt;br /&gt;
IGBT type channels use  MAXI and NOMI  (maximum and nominal current) levels for fault detection.   The MAXI and NOMI channels are shared for up to four spark outputs.   &amp;lt;font color = red&amp;gt; The diagnostics may not be reliable if the spark signals overlap.&amp;lt;/font color&amp;gt;  This normally is not an issue with the intended use for spark.  However, diagnotics would be impacted if driving a different load with a discrete output, for example, as the channels could overlap.&lt;br /&gt;
&lt;br /&gt;
NOMI and MAXI current is only used when the outputs are configured as IGBT pre-gate drivers. These do not apply if pregate driver is configured for a MOSFET (as in an LSO).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=red&amp;gt; NOMI fault detection requires a shutdown event and is not supported if the output is driven by a PWM or Discrete Output block.   Open circuit faults on IGBT spark outputs using discrete or PWM block and MC33810 IGBT type outputs will not be reported. &amp;lt;/font color&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Time to Nominal Current ====&lt;br /&gt;
The time to reach the nominal current level can be monitored by the application for control or diagnostics.   The [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/TimetoNominalCurrentDefinition.html Time to Nominal Current Definition] block creates a resource that allows the last observed time to nominal load current diagnostic to be read. This block can be used directly to recover the time or the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/TimetoNominalCurrent.html Time to Nominal Current] access block used, which references this block.&lt;br /&gt;
&lt;br /&gt;
[[Image: TimetoNOMIDefn.jpg]]&lt;br /&gt;
&lt;br /&gt;
==== Open Secondary Fault ====&lt;br /&gt;
In the event that the secondary is open, all of the stored energy in the ignition coil is dissipated by the IGBT.  Faults for open secondary can thus be reported by comparing the current on the primary to what is expected given that the secondary is discharging as expected.   Again, fault reporting assumes the IGBT output is driving an ignition coil, and incorrect fault reporting can occur when the device is driving something different  (ex. a solenoid or pump).&lt;br /&gt;
&lt;br /&gt;
==== Dwell Time ====&lt;br /&gt;
Dwell time is the duration of time that an ignition coil is allowed to change. The MC33810 starts a timer from when the gate is turned ON.  If the dwell time is longer than the Max Dwell setting,  a Max Dwell fault can be set. The Max Dwell fault (8) indicates that the channel was shutdown because of an over dwell situation.&lt;br /&gt;
&lt;br /&gt;
=== Monitoring Spark Duration ===&lt;br /&gt;
The spark duration can be monitored using the MotoHawk MC33810 [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationDefinition.html Spark Duration Definition] and [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationTrigger.html Spark Duration Trigger] blocks.&lt;br /&gt;
&lt;br /&gt;
The MC33810 Spark Duration Definition block must be used to select a resource for spark duration measurement.  Alternatively the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationGet.html Get MC33810 Spark Duration block] can be used. Only a single definition block may exist for each resource, but multiple Get MC33810 Spark Duration blocks may exist.  The Spark Duration outport recovers the last observed spark duration for the associated resource in microseconds. A negative value (-1) implies that the MC33810 did not measure a spark duration. Blocks like the MC33810 Spark Control Definition and the MC33810 Spark Fliter Set may need to be configured for the hardware so that it can reliably measure spark duration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Behavior Limitations'''&lt;br /&gt;
The MC33810 hardware measures the spark duration and exports it to the microcontroller via a single, shared SPKDUR signal. Multiple spark duration definition blocks that target different resources may share the same SPKDUR signal. MotoHawk™ demultiplexes this signal when it is processed, but assumes that the behavior of excitation signal that generates the spark will be generated via PSP. Therefore this behavior will only work with PSP like behaviors including Dual PSP, Multiple PSP and the Spark Sequence blocks.&lt;br /&gt;
&lt;br /&gt;
The SPKDUR signal that the microcontroller interprets to obtain spark duration may also be made available in a raw form via the Input Capture block. Spark duration will be reported if this block is configured to trigger on the rising edge. The Input Capture block may not coexist with the MC33810 Spark Duration block. Use the Input Capture block to construct an application specific spark duration capture mechanism when behaviors besides PSP are to be used.&lt;br /&gt;
&lt;br /&gt;
There is also a [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationTrigger.html MC33810 Spark Duration Trigger block] that allows the model to be notified when a spark duration event for the referenced resource is observed. &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810SparkDurationTrigger.png]]&lt;br /&gt;
&lt;br /&gt;
Note that the spark duration trigger will occur after the excitation (dwelling) event concludes (spark is initiated by the conclusion of the excitation event). Thus it quite likely that a trigger block like the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/PSPEndTrigger.html PSP End Trigger] will execute before the spark associated with that excitation event has completed. In such a situation the reported spark duration will still be for the previous excitation rather than the excitation that just occurred.&lt;br /&gt;
&lt;br /&gt;
== MOSFET (GPGD) Predriver Type ==&lt;br /&gt;
The MC33810 pregate driver can also be configured for MOSFET type.  This is determined by the type of output pin used in the model and cannot be changed by the application.  &lt;br /&gt;
&lt;br /&gt;
When configured as a GPGD type, the following faults can be reported:&lt;br /&gt;
&lt;br /&gt;
(0) No faults observed&lt;br /&gt;
&lt;br /&gt;
(5) Open detected. Channel is GPGD type.&lt;br /&gt;
&lt;br /&gt;
(6) Short detected. Channel is GPGD type.&lt;br /&gt;
&lt;br /&gt;
Again, the fault state is reported through the IO Fault Status block, and additional detail on the LAST fault observed can be obtained through the MC33810 Fault Detail Block.  Open load can be detected when the output is off, and short to battery faults detected when the output is on.&lt;br /&gt;
&lt;br /&gt;
The fault reporting of a GPGD type output is configured by using the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810GPGDFaultConfig.html Motohawk MC33810 GPGD Fault Configuration Block].  This block allows the fault configuration of a GPGD style MC33810 output to be applied.&lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810GPGDFaultConfig.png]]&lt;br /&gt;
&lt;br /&gt;
Retry defines whether an output that has been shutdown because of a detected short circuit will attempt to assert again without first having be turned off by the application.&lt;br /&gt;
&lt;br /&gt;
Short Voltage defines the drain source voltage that triggers a short circuit. Values between 0.5V and 3V are supported by the device.&lt;br /&gt;
&lt;br /&gt;
Short time defines how long the drain source voltage must be above the threshold before a fault is triggered. Values between 30us and 960us are supported by the device.&lt;br /&gt;
&lt;br /&gt;
The default 2.5V MC33810 setting is applied for unconnected or &amp;quot;grounded&amp;quot; inputs.&lt;br /&gt;
&lt;br /&gt;
== General Gate Driver Outputs ==&lt;br /&gt;
The following faults can be reported for the general gate driver outputs (OUT channels).  &lt;br /&gt;
&lt;br /&gt;
(0) No faults observed &amp;lt;br&amp;gt;&lt;br /&gt;
(1) Open detected while asserted. &amp;lt;br&amp;gt;&lt;br /&gt;
(2) Open detected while not-asserted. &amp;lt;br&amp;gt;&lt;br /&gt;
(3) Short to battery. &amp;lt;br&amp;gt;&lt;br /&gt;
(4) Temperature limit shutdown. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The general gate drivers have the capability to detect an open circuit condition even while the drive is asserted. However, there are often requirements on the load that must be met before the diagnostic will operate reliably. The [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/OpenLoadWhileAssertedConfiguration.html Open Load While Asserted Configuration] block allows the application to define whether this diagnostic should be used.&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=MC33810_Blocks&amp;diff=4031</id>
		<title>MC33810 Blocks</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=MC33810_Blocks&amp;diff=4031"/>
		<updated>2016-03-22T12:55:21Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* MC33810 Spark Control Definition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some modules use the MC33810 as the driver for their LSO and/or Spark Outputs.  MotoHawk contains a blockset of MC33810 configuration and diagnostic blocks that can be used to enable the additional current control and diagnostic capabilities of the MC33810 chip. &lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
The MC33810 is used on:&amp;lt;br&amp;gt;&lt;br /&gt;
* [[70-pin_Module_Family#ECM-S12X-70|ECM-S12X-70]] &amp;lt;br&amp;gt;&lt;br /&gt;
* [[ECM-OH|ECM-564x-112]] (ECM-OH)&lt;br /&gt;
&lt;br /&gt;
== Diagnostics ==&lt;br /&gt;
The MC33810 has three types of outputs.   There are four low side gate drivers and four pre-gate drivers that can function either as ignition IGBT or general purpose MOSFET gate pre-drivers.    The fault reporting will depend on which outputs of the MC33810 are being used and whether the pregate drivers are configured for IGBT or MOSFET.&lt;br /&gt;
&lt;br /&gt;
'''Note:'''  When configured for an IGBT (typically on the ECU spark outputs) the driver diagnostics assume that the load will be an ignition coil.  Diagnostics for other loads using the IGBT spark outputs may be impacted. &lt;br /&gt;
&lt;br /&gt;
=== Output Types ===&lt;br /&gt;
'''OUT Type''':  General low side gate drivers &amp;lt;br&amp;gt;&lt;br /&gt;
'''GPGD Type''':  Pregate driver configured for a MOSFET &amp;lt;br&amp;gt;&lt;br /&gt;
'''IGBT Type''':  Pregate driver configured for an IGBT&lt;br /&gt;
&lt;br /&gt;
=== Possible Faults Reported by MotoHawk from the MC33810 ===&lt;br /&gt;
&lt;br /&gt;
The fault detail is reported by the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810FaultDetail.html MotoHawk MC33810 Fault Detail] block.  This block can report the LAST reported fault of the following faults.  The faults that can be reported depend on the type of MC33810 output as well as the MotoHawk block used for the output.  &lt;br /&gt;
&lt;br /&gt;
[[image:MC33810FaultDetail.png]]&lt;br /&gt;
&lt;br /&gt;
The [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/IOFaultStatus.html IO Fault Status block] must be used with the IO Fault Detail block because the MC33810 fault detail block reports the last reported fault.  It will continue to report a fault after the fault condition has cleared, and is intended only to give additional detail to the application.&lt;br /&gt;
&lt;br /&gt;
(0) No faults observed &amp;lt;br&amp;gt;&lt;br /&gt;
(1) Open detected while asserted. Channel is OUT type &amp;lt;br&amp;gt;&lt;br /&gt;
(2) Open detected while not-asserted. Channel is OUT type&amp;lt;br&amp;gt;&lt;br /&gt;
(3) Short to battery. Channel is OUT type&amp;lt;br&amp;gt;&lt;br /&gt;
(4) Temperature limit shutdown. Channel is OUT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(5) Open detected. Channel is GPGD type.&amp;lt;br&amp;gt;&lt;br /&gt;
(6) Short detected. Channel is GPGD type.&amp;lt;br&amp;gt;&lt;br /&gt;
(7) Open secondary detected. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(8) Max dwell shutdown. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(9) MAXI current observed. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(10) Open primary (Nominal current not attained). Channel is IGBT type.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IGBT PreGate Drivers ==&lt;br /&gt;
&lt;br /&gt;
'''When these pregate driver (FB0,1,2,or 3) outputs of the MC33810 are configured as IGBT pregate drives, the output expects that they will be used to drive an ignition coil.'''   These would be typical on ECU spark outputs that use the MC33810.  &lt;br /&gt;
&lt;br /&gt;
When configured for IGBT type, the following faults can be detected:&amp;lt;br&amp;gt;&lt;br /&gt;
(0) No faults observed&amp;lt;br&amp;gt;&lt;br /&gt;
(7) Open secondary detected. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(8) Max dwell shutdown. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(9) MAXI current observed. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(10) Open primary (Nominal current not attained). Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MC33810 Spark Control Definition ==&lt;br /&gt;
The MC33810 Spark Control Definition block must first be placed in the model to define the global configurations of the MC33810 IC that relate to IGBT control.  There will be one block for each MC33810 driver chip.  &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810_Spark_Control_Definition.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The fault diagnostics of these outputs are then enabled through the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810SparkFaultDefinition.html MC33810 Spark Fault Definition] block.   The Spark Resource (pin) is selected. &lt;br /&gt;
&lt;br /&gt;
==== NOMI and MAXI Thresholds ====&lt;br /&gt;
The IGBT pregate drivers use the nominal current value (or NOMI, where I=current) for detection of an open circuit on the ignition coil primary side.  The current is also compared to a maximum current value, or MAXI.  The MC33810 compares the expected values for NOMI and MAXI across a current sense resistor.  If the NOMI level is not reached, an open primary fault (10) is set.  Similarly if MAXI is exceeded, MAXI fault is set (9).  The NOMI and MAXI values are software configurable to the ranges of 3A to 10.75A for NOMI and 6A to 21A for MAXI using the Motohawk MC33810 Spark DAC Set block, found in Module Configuration blocks.  &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810_DAC_Settings.PNG]]&lt;br /&gt;
&lt;br /&gt;
IGBT type channels use  MAXI and NOMI  (maximum and nominal current) levels for fault detection.   The MAXI and NOMI channels are shared for up to four spark outputs.   &amp;lt;font color = red&amp;gt; The diagnostics may not be reliable if the spark signals overlap.&amp;lt;/font color&amp;gt;  This normally is not an issue with the intended use for spark.  However, diagnotics would be impacted if driving a different load with a discrete output, for example, as the channels could overlap.&lt;br /&gt;
&lt;br /&gt;
NOMI and MAXI current is only used when the outputs are configured as IGBT pre-gate drivers. These do not apply if pregate driver is configured for a MOSFET (as in an LSO).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=red&amp;gt; NOMI fault detection requires a shutdown event and is not supported if the output is driven by a PWM or Discrete Output block.   Open circuit faults on IGBT spark outputs using discrete or PWM block and MC33810 IGBT type outputs will not be reported. &amp;lt;/font color&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Time to Nominal Current ====&lt;br /&gt;
The time to reach the nominal current level can be monitored by the application for control or diagnostics.   The [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/TimetoNominalCurrentDefinition.html Time to Nominal Current Definition] block creates a resource that allows the last observed time to nominal load current diagnostic to be read. This block can be used directly to recover the time or the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/TimetoNominalCurrent.html Time to Nominal Current] access block used, which references this block.&lt;br /&gt;
&lt;br /&gt;
[[Image: TimetoNOMIDefn.jpg]]&lt;br /&gt;
&lt;br /&gt;
==== Open Secondary Fault ====&lt;br /&gt;
In the event that the secondary is open, all of the stored energy in the ignition coil is dissipated by the IGBT.  Faults for open secondary can thus be reported by comparing the current on the primary to what is expected given that the secondary is discharging as expected.   Again, fault reporting assumes the IGBT output is driving an ignition coil, and incorrect fault reporting can occur when the device is driving something different  (ex. a solenoid or pump).&lt;br /&gt;
&lt;br /&gt;
==== Dwell Time ====&lt;br /&gt;
Dwell time is the duration of time that an ignition coil is allowed to change. The MC33810 starts a timer from when the gate is turned ON.  If the dwell time is longer than the Max Dwell setting,  a Max Dwell fault can be set. The Max Dwell fault (8) indicates that the channel was shutdown because of an over dwell situation.&lt;br /&gt;
&lt;br /&gt;
=== Monitoring Spark Duration ===&lt;br /&gt;
The spark duration can be monitored using the MotoHawk MC33810 [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationDefinition.html Spark Duration Definition] and [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationTrigger.html Spark Duration Trigger] blocks.&lt;br /&gt;
&lt;br /&gt;
The MC33810 Spark Duration Definition block must be used to select a resource for spark duration measurement.  Alternatively the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationGet.html Get MC33810 Spark Duration block] can be used. Only a single definition block may exist for each resource, but multiple Get MC33810 Spark Duration blocks may exist.  The Spark Duration outport recovers the last observed spark duration for the associated resource in microseconds. A negative value (-1) implies that the MC33810 did not measure a spark duration. Blocks like the MC33810 Spark Control Definition and the MC33810 Spark Fliter Set may need to be configured for the hardware so that it can reliably measure spark duration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Behavior Limitations'''&lt;br /&gt;
The MC33810 hardware measures the spark duration and exports it to the microcontroller via a single, shared SPKDUR signal. Multiple spark duration definition blocks that target different resources may share the same SPKDUR signal. MotoHawk™ demultiplexes this signal when it is processed, but assumes that the behavior of excitation signal that generates the spark will be generated via PSP. Therefore this behavior will only work with PSP like behaviors including Dual PSP, Multiple PSP and the Spark Sequence blocks.&lt;br /&gt;
&lt;br /&gt;
The SPKDUR signal that the microcontroller interprets to obtain spark duration may also be made available in a raw form via the Input Capture block. Spark duration will be reported if this block is configured to trigger on the rising edge. The Input Capture block may not coexist with the MC33810 Spark Duration block. Use the Input Capture block to construct an application specific spark duration capture mechanism when behaviors besides PSP are to be used.&lt;br /&gt;
&lt;br /&gt;
There is also a [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationTrigger.html MC33810 Spark Duration Trigger block] that allows the model to be notified when a spark duration event for the referenced resource is observed. &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810SparkDurationTrigger.png]]&lt;br /&gt;
&lt;br /&gt;
Note that the spark duration trigger will occur after the excitation (dwelling) event concludes (spark is initiated by the conclusion of the excitation event). Thus it quite likely that a trigger block like the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/PSPEndTrigger.html PSP End Trigger] will execute before the spark associated with that excitation event has completed. In such a situation the reported spark duration will still be for the previous excitation rather than the excitation that just occurred.&lt;br /&gt;
&lt;br /&gt;
== MOSFET (GPGD) Predriver Type ==&lt;br /&gt;
The MC33810 pregate driver can also be configured for MOSFET type.  This is determined by the type of output pin used in the model and cannot be changed by the application.  &lt;br /&gt;
&lt;br /&gt;
When configured as a GPGD type, the following faults can be reported:&lt;br /&gt;
&lt;br /&gt;
(0) No faults observed&lt;br /&gt;
&lt;br /&gt;
(5) Open detected. Channel is GPGD type.&lt;br /&gt;
&lt;br /&gt;
(6) Short detected. Channel is GPGD type.&lt;br /&gt;
&lt;br /&gt;
Again, the fault state is reported through the IO Fault Status block, and additional detail on the LAST fault observed can be obtained through the MC33810 Fault Detail Block.  Open load can be detected when the output is off, and short to battery faults detected when the output is on.&lt;br /&gt;
&lt;br /&gt;
The fault reporting of a GPGD type output is configured by using the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810GPGDFaultConfig.html Motohawk MC33810 GPGD Fault Configuration Block].  This block allows the fault configuration of a GPGD style MC33810 output to be applied.&lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810GPGDFaultConfig.png]]&lt;br /&gt;
&lt;br /&gt;
Retry defines whether an output that has been shutdown because of a detected short circuit will attempt to assert again without first having be turned off by the application.&lt;br /&gt;
&lt;br /&gt;
Short Voltage defines the drain source voltage that triggers a short circuit. Values between 0.5V and 3V are supported by the device.&lt;br /&gt;
&lt;br /&gt;
Short time defines how long the drain source voltage must be above the threshold before a fault is triggered. Values between 30us and 960us are supported by the device.&lt;br /&gt;
&lt;br /&gt;
The default 2.5V MC33810 setting is applied for unconnected or &amp;quot;grounded&amp;quot; inputs.&lt;br /&gt;
&lt;br /&gt;
== General Gate Driver Outputs ==&lt;br /&gt;
The following faults can be reported for the general gate driver outputs (OUT channels).  &lt;br /&gt;
&lt;br /&gt;
(0) No faults observed &amp;lt;br&amp;gt;&lt;br /&gt;
(1) Open detected while asserted. &amp;lt;br&amp;gt;&lt;br /&gt;
(2) Open detected while not-asserted. &amp;lt;br&amp;gt;&lt;br /&gt;
(3) Short to battery. &amp;lt;br&amp;gt;&lt;br /&gt;
(4) Temperature limit shutdown. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The general gate drivers have the capability to detect an open circuit condition even while the drive is asserted. However, there are often requirements on the load that must be met before the diagnostic will operate reliably. The [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/OpenLoadWhileAssertedConfiguration.html Open Load While Asserted Configuration] block allows the application to define whether this diagnostic should be used.&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=MC33810_Blocks&amp;diff=4030</id>
		<title>MC33810 Blocks</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=MC33810_Blocks&amp;diff=4030"/>
		<updated>2016-03-22T12:53:43Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Possible Faults Reported by MotoHawk from the MC33810 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some modules use the MC33810 as the driver for their LSO and/or Spark Outputs.  MotoHawk contains a blockset of MC33810 configuration and diagnostic blocks that can be used to enable the additional current control and diagnostic capabilities of the MC33810 chip. &lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
The MC33810 is used on:&amp;lt;br&amp;gt;&lt;br /&gt;
* [[70-pin_Module_Family#ECM-S12X-70|ECM-S12X-70]] &amp;lt;br&amp;gt;&lt;br /&gt;
* [[ECM-OH|ECM-564x-112]] (ECM-OH)&lt;br /&gt;
&lt;br /&gt;
== Diagnostics ==&lt;br /&gt;
The MC33810 has three types of outputs.   There are four low side gate drivers and four pre-gate drivers that can function either as ignition IGBT or general purpose MOSFET gate pre-drivers.    The fault reporting will depend on which outputs of the MC33810 are being used and whether the pregate drivers are configured for IGBT or MOSFET.&lt;br /&gt;
&lt;br /&gt;
'''Note:'''  When configured for an IGBT (typically on the ECU spark outputs) the driver diagnostics assume that the load will be an ignition coil.  Diagnostics for other loads using the IGBT spark outputs may be impacted. &lt;br /&gt;
&lt;br /&gt;
=== Output Types ===&lt;br /&gt;
'''OUT Type''':  General low side gate drivers &amp;lt;br&amp;gt;&lt;br /&gt;
'''GPGD Type''':  Pregate driver configured for a MOSFET &amp;lt;br&amp;gt;&lt;br /&gt;
'''IGBT Type''':  Pregate driver configured for an IGBT&lt;br /&gt;
&lt;br /&gt;
=== Possible Faults Reported by MotoHawk from the MC33810 ===&lt;br /&gt;
&lt;br /&gt;
The fault detail is reported by the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810FaultDetail.html MotoHawk MC33810 Fault Detail] block.  This block can report the LAST reported fault of the following faults.  The faults that can be reported depend on the type of MC33810 output as well as the MotoHawk block used for the output.  &lt;br /&gt;
&lt;br /&gt;
[[image:MC33810FaultDetail.png]]&lt;br /&gt;
&lt;br /&gt;
The [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/IOFaultStatus.html IO Fault Status block] must be used with the IO Fault Detail block because the MC33810 fault detail block reports the last reported fault.  It will continue to report a fault after the fault condition has cleared, and is intended only to give additional detail to the application.&lt;br /&gt;
&lt;br /&gt;
(0) No faults observed &amp;lt;br&amp;gt;&lt;br /&gt;
(1) Open detected while asserted. Channel is OUT type &amp;lt;br&amp;gt;&lt;br /&gt;
(2) Open detected while not-asserted. Channel is OUT type&amp;lt;br&amp;gt;&lt;br /&gt;
(3) Short to battery. Channel is OUT type&amp;lt;br&amp;gt;&lt;br /&gt;
(4) Temperature limit shutdown. Channel is OUT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(5) Open detected. Channel is GPGD type.&amp;lt;br&amp;gt;&lt;br /&gt;
(6) Short detected. Channel is GPGD type.&amp;lt;br&amp;gt;&lt;br /&gt;
(7) Open secondary detected. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(8) Max dwell shutdown. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(9) MAXI current observed. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(10) Open primary (Nominal current not attained). Channel is IGBT type.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IGBT PreGate Drivers ==&lt;br /&gt;
&lt;br /&gt;
'''When these pregate driver (FB0,1,2,or 3) outputs of the MC33810 are configured as IGBT pregate drives, the output expects that they will be used to drive an ignition coil.'''   These would be typical on ECU spark outputs that use the MC33810.  &lt;br /&gt;
&lt;br /&gt;
When configured for IGBT type, the following faults can be detected:&amp;lt;br&amp;gt;&lt;br /&gt;
(0) No faults observed&amp;lt;br&amp;gt;&lt;br /&gt;
(7) Open secondary detected. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(8) Max dwell shutdown. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(9) MAXI current observed. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(10) Open primary (Nominal current not attained). Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MC33810 Spark Control Definition ==&lt;br /&gt;
The MC33810 Spark Control Definition block must first be placed in the model to define the global configurations of the MC33810 IC that relate to IGBT control.  There will be one block for each MC33810 driver chip.  &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810_Spark_Control_Definition.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The fault diagnostics of these outputs are then enabled through the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkFaultDefinition.html MC33810 Spark Fault Definition] block.   The Spark Resource (pin) is selected. &lt;br /&gt;
&lt;br /&gt;
==== NOMI and MAXI Thresholds ====&lt;br /&gt;
The IGBT pregate drivers use the nominal current value (or NOMI, where I=current) for detection of an open circuit on the ignition coil primary side.  The current is also compared to a maximum current value, or MAXI.  The MC33810 compares the expected values for NOMI and MAXI across a current sense resistor.  If the NOMI level is not reached, an open primary fault (10) is set.  Similarly if MAXI is exceeded, MAXI fault is set (9).  The NOMI and MAXI values are software configurable to the ranges of 3A to 10.75A for NOMI and 6A to 21A for MAXI using the Motohawk MC33810 Spark DAC Set block, found in Module Configuration blocks.  &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810_DAC_Settings.PNG]]&lt;br /&gt;
&lt;br /&gt;
IGBT type channels use  MAXI and NOMI  (maximum and nominal current) levels for fault detection.   The MAXI and NOMI channels are shared for up to four spark outputs.   &amp;lt;font color = red&amp;gt; The diagnostics may not be reliable if the spark signals overlap.&amp;lt;/font color&amp;gt;  This normally is not an issue with the intended use for spark.  However, diagnotics would be impacted if driving a different load with a discrete output, for example, as the channels could overlap.&lt;br /&gt;
&lt;br /&gt;
NOMI and MAXI current is only used when the outputs are configured as IGBT pre-gate drivers. These do not apply if pregate driver is configured for a MOSFET (as in an LSO).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=red&amp;gt; NOMI fault detection requires a shutdown event and is not supported if the output is driven by a PWM or Discrete Output block.   Open circuit faults on IGBT spark outputs using discrete or PWM block and MC33810 IGBT type outputs will not be reported. &amp;lt;/font color&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Time to Nominal Current ====&lt;br /&gt;
The time to reach the nominal current level can be monitored by the application for control or diagnostics.   The [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/TimetoNominalCurrentDefinition.html Time to Nominal Current Definition] block creates a resource that allows the last observed time to nominal load current diagnostic to be read. This block can be used directly to recover the time or the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/TimetoNominalCurrent.html Time to Nominal Current] access block used, which references this block.&lt;br /&gt;
&lt;br /&gt;
[[Image: TimetoNOMIDefn.jpg]]&lt;br /&gt;
&lt;br /&gt;
==== Open Secondary Fault ====&lt;br /&gt;
In the event that the secondary is open, all of the stored energy in the ignition coil is dissipated by the IGBT.  Faults for open secondary can thus be reported by comparing the current on the primary to what is expected given that the secondary is discharging as expected.   Again, fault reporting assumes the IGBT output is driving an ignition coil, and incorrect fault reporting can occur when the device is driving something different  (ex. a solenoid or pump).&lt;br /&gt;
&lt;br /&gt;
==== Dwell Time ====&lt;br /&gt;
Dwell time is the duration of time that an ignition coil is allowed to change.   The MC33810 starts a timer from when the gate is turned ON.  If the dwell time is longer than the Max Dwell setting,  a Max Dwell fault can be set.  The Max Dwell fault (8) indicates that the channel was shutdown because of an over dwell situation.&lt;br /&gt;
&lt;br /&gt;
=== Monitoring Spark Duration ===&lt;br /&gt;
The spark duration can be monitored using the MotoHawk MC33810 [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationDefinition.html Spark Duration Definition] and [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationTrigger.html Spark Duration Trigger] blocks.&lt;br /&gt;
&lt;br /&gt;
The MC33810 Spark Duration Definition block must be used to select a resource for spark duration measurement.  Alternatively the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationGet.html Get MC33810 Spark Duration block] can be used. Only a single definition block may exist for each resource, but multiple Get MC33810 Spark Duration blocks may exist.  The Spark Duration outport recovers the last observed spark duration for the associated resource in microseconds. A negative value (-1) implies that the MC33810 did not measure a spark duration. Blocks like the MC33810 Spark Control Definition and the MC33810 Spark Fliter Set may need to be configured for the hardware so that it can reliably measure spark duration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Behavior Limitations'''&lt;br /&gt;
The MC33810 hardware measures the spark duration and exports it to the microcontroller via a single, shared SPKDUR signal. Multiple spark duration definition blocks that target different resources may share the same SPKDUR signal. MotoHawk™ demultiplexes this signal when it is processed, but assumes that the behavior of excitation signal that generates the spark will be generated via PSP. Therefore this behavior will only work with PSP like behaviors including Dual PSP, Multiple PSP and the Spark Sequence blocks.&lt;br /&gt;
&lt;br /&gt;
The SPKDUR signal that the microcontroller interprets to obtain spark duration may also be made available in a raw form via the Input Capture block. Spark duration will be reported if this block is configured to trigger on the rising edge. The Input Capture block may not coexist with the MC33810 Spark Duration block. Use the Input Capture block to construct an application specific spark duration capture mechanism when behaviors besides PSP are to be used.&lt;br /&gt;
&lt;br /&gt;
There is also a [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationTrigger.html MC33810 Spark Duration Trigger block] that allows the model to be notified when a spark duration event for the referenced resource is observed. &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810SparkDurationTrigger.png]]&lt;br /&gt;
&lt;br /&gt;
Note that the spark duration trigger will occur after the excitation (dwelling) event concludes (spark is initiated by the conclusion of the excitation event). Thus it quite likely that a trigger block like the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/PSPEndTrigger.html PSP End Trigger] will execute before the spark associated with that excitation event has completed. In such a situation the reported spark duration will still be for the previous excitation rather than the excitation that just occurred.&lt;br /&gt;
&lt;br /&gt;
== MOSFET (GPGD) Predriver Type ==&lt;br /&gt;
The MC33810 pregate driver can also be configured for MOSFET type.  This is determined by the type of output pin used in the model and cannot be changed by the application.  &lt;br /&gt;
&lt;br /&gt;
When configured as a GPGD type, the following faults can be reported:&lt;br /&gt;
&lt;br /&gt;
(0) No faults observed&lt;br /&gt;
&lt;br /&gt;
(5) Open detected. Channel is GPGD type.&lt;br /&gt;
&lt;br /&gt;
(6) Short detected. Channel is GPGD type.&lt;br /&gt;
&lt;br /&gt;
Again, the fault state is reported through the IO Fault Status block, and additional detail on the LAST fault observed can be obtained through the MC33810 Fault Detail Block.  Open load can be detected when the output is off, and short to battery faults detected when the output is on.&lt;br /&gt;
&lt;br /&gt;
The fault reporting of a GPGD type output is configured by using the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810GPGDFaultConfig.html Motohawk MC33810 GPGD Fault Configuration Block].  This block allows the fault configuration of a GPGD style MC33810 output to be applied.&lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810GPGDFaultConfig.png]]&lt;br /&gt;
&lt;br /&gt;
Retry defines whether an output that has been shutdown because of a detected short circuit will attempt to assert again without first having be turned off by the application.&lt;br /&gt;
&lt;br /&gt;
Short Voltage defines the drain source voltage that triggers a short circuit. Values between 0.5V and 3V are supported by the device.&lt;br /&gt;
&lt;br /&gt;
Short time defines how long the drain source voltage must be above the threshold before a fault is triggered. Values between 30us and 960us are supported by the device.&lt;br /&gt;
&lt;br /&gt;
The default 2.5V MC33810 setting is applied for unconnected or &amp;quot;grounded&amp;quot; inputs.&lt;br /&gt;
&lt;br /&gt;
== General Gate Driver Outputs ==&lt;br /&gt;
The following faults can be reported for the general gate driver outputs (OUT channels).  &lt;br /&gt;
&lt;br /&gt;
(0) No faults observed &amp;lt;br&amp;gt;&lt;br /&gt;
(1) Open detected while asserted. &amp;lt;br&amp;gt;&lt;br /&gt;
(2) Open detected while not-asserted. &amp;lt;br&amp;gt;&lt;br /&gt;
(3) Short to battery. &amp;lt;br&amp;gt;&lt;br /&gt;
(4) Temperature limit shutdown. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The general gate drivers have the capability to detect an open circuit condition even while the drive is asserted. However, there are often requirements on the load that must be met before the diagnostic will operate reliably. The [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/OpenLoadWhileAssertedConfiguration.html Open Load While Asserted Configuration] block allows the application to define whether this diagnostic should be used.&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=SECM112&amp;diff=4029</id>
		<title>SECM112</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=SECM112&amp;diff=4029"/>
		<updated>2016-03-22T12:52:37Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Output Fault Detection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Module ==&lt;br /&gt;
[[Image:ECM-5644A-112-048-1202-xD.jpg|100px|112 Pin ECM-OH]] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
==Overview==&lt;br /&gt;
The SECM112  is part of the engine management system for on-highway applications, which can include L6 4-stroke CNG intercity transit applications, L6, 4-stroke LNG intercity transit applications, and L4 4-stroke commercial vehicle 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&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The SECM112 features two microprocessors in one rugged production intent housing.  The module contains a main MPC5644 120Mhz processor along with a S12G fixed point processor, which can provide question-answer type challenge to the main processor.  Both micros are connected on CAN1.&lt;br /&gt;
&lt;br /&gt;
The SECM112 is part of the MotoHawk Control Solutions ControlCore® family of embedded control systems. The ControlCore operating system,&lt;br /&gt;
MotoHawk® code generation product, and MotoHawk’s suite of development tools enable rapid development of complex control systems.  Application code for both processors is developed in MotoHawk which allows the application developer to create applications directly in Simulink and build with a one step 'CNTL-B' build.   The two controllers act like separate controllers in terms of programming.  Then, the program can be flashed onto the micro using Woodward's MotoTune, Toolkit, or through industry standard 3rd party tools via xCP, or ISO15765.    &lt;br /&gt;
&lt;br /&gt;
Calibration can  be done with Woodward's MotoTune or Toolkit or with industry standard 3rd Party tools through xCP.&lt;br /&gt;
&lt;br /&gt;
Each controller is available in ‘F’ (Flash) or ‘C’ (Calibratible) versions. Flash modules are typically used for production purposes. Calibratible modules are typically for prototyping/development only; they can be calibrated in real time using MotoTune, ToolKit, or industry standard 3rd party tools via xCP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Power Requirements ==&lt;br /&gt;
All versions of the SECM112 Control require a voltage source of 8 to 32Vdc (12Vdc or 24Vdc nominal).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MotoHawk Requirements ==&lt;br /&gt;
MotoHawk 2012bSP0 or higher is required for SECM112.&lt;br /&gt;
&lt;br /&gt;
This means Matlab 2010b or higher is required, as MotoHawk supports Matlab 2 years backward.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compilers ==&lt;br /&gt;
'''Main Micro''': Green Hills 4.2.4   or GCC PowerPC eabi SPE 4.6&lt;br /&gt;
&lt;br /&gt;
'''Auxillary''':  Freescale CodeWarrior 4.6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Targets ==&lt;br /&gt;
The SECM-112 has different Targets for the MAIN Prod and Dev modules as shown below.  The S12G auxillary processor also has it's own target.  &lt;br /&gt;
&lt;br /&gt;
'''Main Processor''' &lt;br /&gt;
&lt;br /&gt;
1751-6601:  Target ECM-5644A-112-048-1204  DEV &amp;lt;br/&amp;gt;&lt;br /&gt;
1751-6688:  Target ECM-5644A-112-048-1206  DEV with 8 cylinder support&lt;br /&gt;
&lt;br /&gt;
1751-6605: Target ECM-56542A-112-049-1200 PROD &amp;lt;br/&amp;gt;&lt;br /&gt;
1751-6690: Target ECM-56542A-112-049-1201 PROD with 8 cylinder support&lt;br /&gt;
&lt;br /&gt;
'''Auxillary Processor''':  Target ECM-S12G-112-059-1200   PROD Only&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Datasheets ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36364 SECM112 Datasheet (36364)]&lt;br /&gt;
&lt;br /&gt;
== Related Part Numbers ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Part Number !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 8923-1930 || Connector Kit&lt;br /&gt;
|-&lt;br /&gt;
| 8996-2228&amp;lt;br/&amp;gt;8996-2230|| Crimp Tools&lt;br /&gt;
|-&lt;br /&gt;
| 8996-1059&amp;lt;br/&amp;gt;8996-2161|| Removal Tools&lt;br /&gt;
|-&lt;br /&gt;
| 1635-1800 || Boot Key&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1334 || Pig Tail (12 feet )&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1322 || Pig Tail (3 feet)&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1357 || Development Harness&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1335 || Programming Harness&lt;br /&gt;
|-&lt;br /&gt;
| 8923-1404 || Breakout Box&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1321 || Desktop Simulator Harness&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Control Features ==&lt;br /&gt;
[[Image:ECMOH1.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Standard features common to both models are:&lt;br /&gt;
*2 engine speed inputs: camshaft and crankshaft speed (software configurable for variable reluctance (VR) magnetic pickup sensor or Hall effect proximity sensor inputs)&lt;br /&gt;
* Up to 6 frequency inputs (some share analog resources)&lt;br /&gt;
* Up to 33 analog inputs&lt;br /&gt;
* 3 switch inputs&lt;br /&gt;
* 2 HEGO sensor inputs&lt;br /&gt;
* 2 LSU sensor inputs (also known as UEGO sensors)&lt;br /&gt;
* 2 knock sensor inputs&lt;br /&gt;
* 3 transducer power outputs providing +5V (350mA &amp;amp; 100mA) and +12V (100mA)&lt;br /&gt;
* 2 H-bridge driver outputs providing 10A and 5A drive capability and current sense feedback&lt;br /&gt;
* 6 Injector drivers providing software configurable peak and hold current levels (up to 7A/2A)&lt;br /&gt;
* 6 ignition coil drivers&lt;br /&gt;
* MPRD (Master Power Relay Driver) low side output&lt;br /&gt;
* TACH low side output&lt;br /&gt;
* 16 low side output drivers (1 with current sense feedback)&lt;br /&gt;
* 3 CAN (Controller Area Network) communications ports&lt;br /&gt;
* 4K-byte serial EEPROM for tunable parameter storage&lt;br /&gt;
* Auxiliary micro with 128k of flash, 8k of RAM, 4k of EEPROM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
==== Analog Inputs (AN1 – AN34)====&lt;br /&gt;
There are 34 analog inputs on the SECM112. The analog inputs have either a pull-up resistor as shown in Figure 2-12, or a pull-down resistor as shown in&lt;br /&gt;
Figure 2-13. Five analog inputs have a software pull-up or pull-down selection via calibration. AN21 &amp;amp; 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.&lt;br /&gt;
&lt;br /&gt;
The Analog Inputs are [[12-bit_ADC|12-Bit ADC]]&lt;br /&gt;
&lt;br /&gt;
===== Fast Analog Channels =====&lt;br /&gt;
ANx_FAST channels are sampled faster than the equivalent ANx. This is needed on SECM112 because of how ADC bandwidth is consumed. SECM112 utilizes most of the available ADC bandwidth to service the reaction channel’s load current sampling. This means that the continuous scan queue sampling that is used by the other channels will take much longer than it normally takes on other modules. SECM112 FAST channel will be sampled every 90us where as normal channels will sample within 1ms (860us) worst case. The 1ms conversion time is problematic for threads of execution that execute at 1ms since the data is sometimes old and sometimes new. &lt;br /&gt;
&lt;br /&gt;
There is no need for such channels on the other ECUs because the ADC bandwidth is not being consumed like it is on the SECM112 and so all the channels are effectively sampled FAST.&lt;br /&gt;
&lt;br /&gt;
==== Crank and CAM Inputs ====&lt;br /&gt;
The Cam and Crank (CNK) inputs are used to detect engine speed and angular position relative to TDC.   The SECM112 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&lt;br /&gt;
input has dedicated connector pins.  See the SECM112 datasheet for additional detail.&lt;br /&gt;
&lt;br /&gt;
==== Digital Inputs ====&lt;br /&gt;
The SECM112 has 8 Discrete Inputs.  Some may be used as switch inputs, others support frequency measurement.&lt;br /&gt;
&lt;br /&gt;
==== Lambda Sensor Unit (UEGO) Inputs ====&lt;br /&gt;
The SECM112 control has two LSUs (Lambda Sensor Units), also known as UEGO (Universal Exhaust Gas Oxygen) inputs, which interface with Bosch LSU4.9 wide range oxygen sensors (Lambda sensors). The lambda-sensor(s) works in conjunction with the on-board Bosch CJ125 ASIC(s) to provide continuous regulation of  for a sensor in the range of  = 0.65... (air). 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.&lt;br /&gt;
&lt;br /&gt;
==== Knock Sensor Inputs ====&lt;br /&gt;
The SECM112 supports two Knock Sensor inputs.&lt;br /&gt;
&lt;br /&gt;
Knock is implemented on the SECM112 in MotoHawk by the Knock by Decimation blockset.   This is a specialized blockset and is included with Standard MotoHawk in 2014a and higher.&lt;br /&gt;
&lt;br /&gt;
=== Outputs ===&lt;br /&gt;
==== Low-side Outputs (LSO)====&lt;br /&gt;
The SECM112 control has 16 low-side outputs (LSOx &amp;amp; SPK8) that can be used as Boolean outputs for driving relays, or some as PWM outputs. LSO1 and LSO2&lt;br /&gt;
are also designed to drive the heater coil on a LSU sensor. Some low-side outputs are provided with freewheeling diodes (internal to the ECM-OH through&lt;br /&gt;
DRVP or BATT) to suppress the back EMF caused by inductive loads. See the ECM-OH datasheet for low-side output capabilities and characteristics.  The LSOs are clamped and can be used to drive relays.&lt;br /&gt;
&lt;br /&gt;
==== Injector Outputs ====&lt;br /&gt;
The SECM112 control has 6 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.&lt;br /&gt;
&lt;br /&gt;
===== Reaction Module Blockset =====&lt;br /&gt;
The peak-hold current level is software configurable through the [[Reaction_Module_Blockset|MotoHawk Reaction Channel Blockset]].&lt;br /&gt;
&lt;br /&gt;
Peak current cannot be run simultaneously on more than 3 injectors on the SECM112 control.&lt;br /&gt;
&lt;br /&gt;
==== Spark Outputs ====&lt;br /&gt;
The SECM112 has 6 IGBT ignition coil drivers each capable of delivering up to 10A of peak dwell current.&lt;br /&gt;
&lt;br /&gt;
The Spark Outputs can be globally disabled via the main core's discrete output DRVR_ENABLE resource. The behavior of these outputs can also be affected by the [[SECM112#Targets | Auxiliary Processor]] via its ability to disable the Master Power Relay (which will also disable the encoder's Crank and Cam inputs).&lt;br /&gt;
&lt;br /&gt;
A special blockset has been created for control and diagnostics of the MC33810 chip which is the driver for the IGBT coil drivers on the SECM112.  See [[MC33810_Blocks|here]] for more detail on the blocks related to the MC33810.&lt;br /&gt;
&lt;br /&gt;
==== H-bridge Outputs ====&lt;br /&gt;
The SECM112 control has two H-bridge outputs that can be used to drive electric motors like butterfly throttle valves.  The H-Bridge outputs are provided with freewheeling diodes (internal to the SECM112 through DRVP) to suppress the back EMF caused by inductive loads.&lt;br /&gt;
&lt;br /&gt;
The H-bridge Outputs can be disabled by the [[SECM112#Targets | Auxiliary Processor]].&lt;br /&gt;
&lt;br /&gt;
==== MPRD Output ====&lt;br /&gt;
The MPRD Output is a common feature of almost all Woodward ECUs and is used to energize the Master Power Relay under application control.&lt;br /&gt;
&lt;br /&gt;
The MPRD Output can be disabled by the [[SECM112#Targets | Auxiliary Processor]], which also has the side effect of disabling the encoder inputs (Crank and Cam).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Output Fault Detection ==&lt;br /&gt;
Output Fault Detection for the SECM112 is through the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/IOFaultStatus.html IO Fault Status block] and the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/FaultStatusGet.html IO Fault Status Get] block.  This block will report a &amp;quot;0&amp;quot; if the driver is not reporting a fault, a &amp;quot;1&amp;quot; if the driver is detecting a fault, or in some cases a &amp;quot;2&amp;quot; for indeterminate.  The faults that can be detected depend on the capability of the driver.  Outputs driven by the MC33810 driver have additional fault reporting capability that can be exposed through the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/MC33810FaultDetail.html MC33810 Fault Detail Block].  This block reports the last fault reported by the MC33810 driver and so the report from this block does not clear when the fault state is removed.  The IO Fault Status block should be used to detect whether a fault condition is detected, and then the detail block can be used to detect which fault was reported.  The fault detection capabilities of the SECM112 outputs are described below:&lt;br /&gt;
&lt;br /&gt;
=== H-Bridges ===&lt;br /&gt;
For the h-bridges, shorted load faults can be reported.  Shorted load reporting for each H-bridge is through overcurrent detection.  See the SECM Hardware Manual for minimum overcurrent threshold values.  Current Monitoring should be used in the application model for further diagnosis, such as for open load detection.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Injectors ===&lt;br /&gt;
SECM112’s injector drivers utilize the microprocessor’s Reaction Module for diagnosis. Reaction module diagnosis is based upon observing current and therefore INJ faults can only be detected when the INJ pins are asserted. Observed faults are cached until reported, where they are then cleared. Detection while not asserted is not possible. Therefore the fault status of an INJ output should only be queried once after an actuation event. Querying too often may result in no fault being reported even if the queried INJ output is currently in fault (e.g. open circuit). The [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/PHWOTReactionChannel.html PHWOT Reaction Channel] MotoHawk help provides further detail.&lt;br /&gt;
&lt;br /&gt;
Currently only the IO Fault Status block allows the fault status of an INJ output to be queried.&lt;br /&gt;
&lt;br /&gt;
=== Spark ===&lt;br /&gt;
The Spark outputs are driven by the IGBT drivers of the [http://www.google.com/url?url=http://www.freescale.com/webapp/sps/site/prod_summary.jsp%3Fcode%3DMC33810&amp;amp;rct=j&amp;amp;frm=1&amp;amp;q=&amp;amp;esrc=s&amp;amp;sa=U&amp;amp;ei=Uli1U7zYA5GcyASd_IH4BQ&amp;amp;ved=0CBQQFjAA&amp;amp;usg=AFQjCNGOgPiWwAV_dZ-bz4R4ETEkNGjTXQ MC33810 driver]. &lt;br /&gt;
&lt;br /&gt;
'''The spark output diagnostics assume the SPK outputs are driving an ignition coil as a load.'''  &lt;br /&gt;
&lt;br /&gt;
Comprehensive fault diagnosis when used with ignition coils is described in the [http://www.google.com/url?url=http://www.freescale.com/webapp/sps/site/prod_summary.jsp%3Fcode%3DMC33810&amp;amp;rct=j&amp;amp;frm=1&amp;amp;q=&amp;amp;esrc=s&amp;amp;sa=U&amp;amp;ei=Uli1U7zYA5GcyASd_IH4BQ&amp;amp;ved=0CBQQFjAA&amp;amp;usg=AFQjCNGOgPiWwAV_dZ-bz4R4ETEkNGjTXQ MC33810 Datasheet].   The diagnostic approach is based upon analysis of multiplexed feedback signals that go to the MC33810 which require that the actuators don’t de-assert (i.e. spark) at the same time.  Overlap is possible with PWM and discrete, therefore, diagnosis is less capable or impossible when the SPK outputs are driven by PWM or Discrete output blocks. &lt;br /&gt;
&lt;br /&gt;
'''Note''' that SPK8 is different from the other SPK outputs in that it is a MOSFET.  SPK8 has short while asserted and open while not asserted detection and can be used with the MC33810 Fault Detail block. It is a GPGD type output and thus can use the MC33810 blocks related to GPGD configuration.  Unlike the other spark outputs, SPK8 diagnosis is fully functional when not being driven with an engine position synchronous behavior.&lt;br /&gt;
&lt;br /&gt;
A special blockset has been created for control and diagnostics of the MC33810 chip which is the driver for the IGBT coil drivers on the SECM112.  See [[MC33810_Blocks|here]] for more detail on the blocks related to the MC33810.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LSOs ===&lt;br /&gt;
There are three types of drivers for the LSOs on the SECM112.  Each has slightly different fault reporting capability which is described below.&lt;br /&gt;
* '''LSO1-6''':  reports open circuit or short to ground while de-asserted and short when asserted. LSO6 has current sense as well. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''LSO 7,8,9,11, 12, 13, 14, TACH:'''  These LSOs are driven by MC33810.  Faults of Open while Asserted, Open while De-asserted, and Short to Battery can be reported.  The IO Fault Status block reports the fault state, however there is also an MC33810 Fault Detail block that gives the last fault reported.   The IO Fault Status block should be used to indentify that there is a fault and then the MC33810 Fault Detail block can identify which fault was reported.  The open while asserted fault is detected through current monitoring.   Currents less than 200mA can cause an open while asserted fault to be reported.  Therefore, if the load current is expected to be under 200mA, the Open While Asserted diagnostic should be disabled via the Open Load While Asserted Configuration block.  A special blockset has been created for control and diagnostics of the MC33810 chip which is the driver for the IGBT coil drivers on the SECM112.  See [[MC33810_Blocks|here]] for more detail on the blocks related to the MC33810.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''LSO10''': reports open or short to GND while de-asserted, and short while asserted.  The IO Fault Status block will report a “2” if no fault is detected, or a “1” if a fault state is detected.  It will not report a &amp;quot;0&amp;quot; (OK).   There is a Fault Detail block that will also report which type of fault (Open or Short) has been detected.   Note that the Fault Detail block can still report indeterminate (2) in some cases, but can more clearly identify whether a particular fault is active. For example, while LSO10 is de-asserted the fault detail for LSO10 will report the open fault as being either OK (0) or in fault (1), but will sometimes intermittently report indeterminate(2). The short to battery would continuously report indeterminate (2) while off. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''LSO15''':  reports open or short to GND while de-asserted, and short while asserted.   There is not a block to detect which fault is being set, but the state of the output (On or Off) could be used in the application model.  This will report “2” if no fault is detected, or a “1” if a fault state is detected. &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Internal Temperature Monitor ===&lt;br /&gt;
The SECM112 has an internal temperature monitor that can be accessed via the '''Get Module Data''' block. So, for example, you could implement a Simulink model that logged the maximum observed MicroTemp to NVM. &lt;br /&gt;
&lt;br /&gt;
[[Image:GetModuleData_JunctionTemp.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Shared Resources between the Main and Auxillary S12 cores ==&lt;br /&gt;
The following are shared between the main and s12G cores:&lt;br /&gt;
&lt;br /&gt;
Analog inputs: AN01-05, AN16, AN17, AN18, AN24, AN31, VCAL, KEYSW&lt;br /&gt;
&lt;br /&gt;
Digital inputs: VR1/DG1 (after mux), DG3, DG4, DG5, DG8, Wake-up (on XIRQ) from main core, reset from main core*, main core status&lt;br /&gt;
&lt;br /&gt;
Comms: CAN1&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* There is a shared line for reset of the S12 by the main core, however, this is not available to the application.  There is no block to set it.   It is currently only used during programming to turn the S12 off to prevent CAN bus errors or erroneous resets&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Communications ===&lt;br /&gt;
==== CAN ====&lt;br /&gt;
The SECM112 has three 2.0B CAN ports for distributed I/O, distributed control, and Human Machine Interface (HMI) purposes.&lt;br /&gt;
&lt;br /&gt;
 Important: The SECM112 is programmed at the factory with a sample application that sets CAN-1 of both the Main and Auxillary Cores to 500k baud rate.   &lt;br /&gt;
 '''Both Cores are internally connecxted within the ECU on CAN-1'''.&lt;br /&gt;
 '''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.'''&lt;br /&gt;
 '''Each Core must also have a Unique City ID for MotoTune defined in the CAN Definition Block'''&lt;br /&gt;
&lt;br /&gt;
For programming the SECM112, 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-ID’s.   The module ships pre-programmed with an application that sets the &lt;br /&gt;
Baud rate for both cores to 500k, with City ID of main – 0xB and the City ID of the aux 0x81.    &lt;br /&gt;
&lt;br /&gt;
The hardboot (settings used to program the module by boot key or boot harness) if it needs to be recovered are: &lt;br /&gt;
Main: 250k b/s  City ID 0xB&lt;br /&gt;
Aux: 250k b/s City ID 0x81&lt;br /&gt;
&lt;br /&gt;
To change the baud rate on CAN-1, first program the main core.  Cycle power to put auxiliary in hardboot, the program the auxiliary as above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5644A-112-048-1204-xD.html MotoHawk Target Cross Reference] ===&lt;br /&gt;
The [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5644A-112-048-1204-xD.html MotoHawk Target Cross Reference] shows which IO on the ECM-OH hardware is supported by which behavior (blocks).  There are charts showing behavior vs pin as well as pin vs behavior.  This is the software help document for the module.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[Reaction_Module_Blockset|The Reaction Module Blockset]] and the SECM112==&lt;br /&gt;
The standard PSP blocks (Injector Sequence, Dual PSP, Multiple PSP..) are supported on the SECM112, but configuration of the Reaction Module '''is Required''' for Injection on the SECM112. &lt;br /&gt;
&lt;br /&gt;
Peak-Hold timing is configured by the Reaction Module, '''and the peak-hold input port on the sequence blocks is ignored.'''&lt;br /&gt;
&lt;br /&gt;
See the article on the [[Reaction_Module_Blockset|Reaction Module Blockset]] for additional details.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MC33810 Spark Blockset and the SECM112 ==&lt;br /&gt;
Many of the Woodward MCS ECMs have EST outputs which provide 0-5V TTL level outputs for smart coils.  The SECM112 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.&lt;br /&gt;
&lt;br /&gt;
See the article on the [[MC33810_Blocks|'''MC33810 Configuration blocks''']] for more detail.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Calibration Memory ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''The SECM112 has 64k of Calibration memory available.'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are porting an application from another ECU (ex. the 128-pin) the SECM-112 may have less calibration memory available.  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.    However, the SECM112 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 descision 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 on-line calibration.   The SECM112 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.&lt;br /&gt;
&lt;br /&gt;
The SECM112 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.  Some calibration values may be able to be moved to NV storage  (ex. Calibration NV).&lt;br /&gt;
&lt;br /&gt;
Recommendations to reduce calibration memory in the application:&lt;br /&gt;
&lt;br /&gt;
1. '''Review and Optimize Datatypes'''. The first thing to look at in reducing calibration memory is 64 bit vs 32 bit.  Double is the Simulink default, but is often larger than required.   Convert calibratons to 32-bit (single) or smaller datatypes.&lt;br /&gt;
  &lt;br /&gt;
2. '''Review and Optimize Tables'''. The next big item is table optimizations.  It is likely that 32-bit floating point is not needed for every table and can be reduced.  Reducing the dimenstions of tables would also reduce the memory usage.&lt;br /&gt;
&lt;br /&gt;
== The Main Power Relay Block and the S12G Auxillary processor ==&lt;br /&gt;
A common question is whether the MotoHawk MPRD block should be placed in the application for the S12G auxillary 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.  &lt;br /&gt;
&lt;br /&gt;
Also, the MPRD block is intended as a starting point and is intended to be modified to suite specific application shutdown requirements (right click the block and select Look Under Mask).&lt;br /&gt;
&lt;br /&gt;
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 auxillary S12G, it is nessessary to remove the MPRD discrete output from the block.   The below link has an example MPRD block modified for the ECM-OH Auxillary processor.&lt;br /&gt;
&lt;br /&gt;
[http://mcs.woodward.com/user/download.php?filename=562 ECM-OH Example of Modified MPRD for the S12G]&lt;br /&gt;
&lt;br /&gt;
== Recovering the SECM112==&lt;br /&gt;
Occasionally, errors in programming may require that the module be recovered with a boot key or boot sequence. The following section describes recovery procedure for the SECM112.  For more information, see [[Boot_key_recovery|Boot Key Recovery]].&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Important: Remove the ECU from all control connections before attempting to recover the module.'''&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Default Bootloader MotoServer Settings (Recover/Bootstrap Mode):'''&lt;br /&gt;
&lt;br /&gt;
Main Core: 250kbps on CAN-1, City ID 0x0B (11)&amp;lt;br&amp;gt;&lt;br /&gt;
S12G Core: 250kbps on CAN-1, City ID 0x81 (129)&lt;br /&gt;
&lt;br /&gt;
The SECM112 has two microprocessor cores, the Main Core and the Auxillary S12G. Both processors are connected on CAN1, so it is important that both processors configure their CAN-1 port with the same baud rate, and different MotoTune IDs.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Recovering the Main Processor'''&amp;lt;br&amp;gt;&lt;br /&gt;
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:&amp;lt;br&amp;gt;&lt;br /&gt;
AN3: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN4: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN16: Pull to GND &amp;lt;br&amp;gt;&lt;br /&gt;
AN17: Pull to GND &amp;lt;br&amp;gt;&lt;br /&gt;
AN18: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Recovering the S12G Auxillary Core (requires battery toggle)'''&amp;lt;br&amp;gt;&lt;br /&gt;
The S12G cannot be recovered with a boot key.  A boot sequence on the analog inputs of the S12G is required to recover it.&amp;lt;br&amp;gt;&lt;br /&gt;
AN3: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN4: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN16: Pull to +5V &amp;lt;br&amp;gt; &lt;br /&gt;
AN17: Pull to GND &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Applying the boot signal or sequence'''&lt;br /&gt;
&lt;br /&gt;
The boot key signal or boot sequence is only searched within the first 2-3 seconds of the ECU waking up.   To ensure that the signal/sequence is recognized, the following procedure is recommended:&amp;lt;br&amp;gt;&lt;br /&gt;
1) Apply the boot signal or sequence. &amp;lt;br&amp;gt;&lt;br /&gt;
2) Main Core recovery: Turn Power ON, but key off; S12G Core recovery: battery off.&amp;lt;br&amp;gt;&lt;br /&gt;
3) Initiate MotoTune programming on the MotoServer port (City ID 0x0B 250k baud for Main Core, 0x081 250kbaud for S12G Core). &amp;lt;br&amp;gt;&lt;br /&gt;
4) When 'Searching for ECU' appears in MotoTune, turn the key on (Main Core recovery) or battery on (S12G Core recovery).    It may take several tries.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Avoiding Baud Rate Collision During and After Recovery Process:'''&lt;br /&gt;
&lt;br /&gt;
The Pre-PV and PV units will ship with a Main Core sample application that will connect at 500 kbps on PCM-1 (City-ID 11) or PCM-2 (City-ID 12), and S12G Core sample application that will connect at 500 kbps on SECM-1 (City-ID 129).  The application baud rate on CAN-1 does not match that of the bootloaders’ recovery mode baud rate, and there may be baud rate collision between the Main Core Application and the S12G Bootloader (or between the S12G Application and the Main Core Bootloader).&lt;br /&gt;
&lt;br /&gt;
The Main Core recovery process automatically avoids baud rate collision by holding the S12G Core in reset, so there will be no collision between the Main Core Bootloader and the S12G Core application.&lt;br /&gt;
&lt;br /&gt;
However, if you are recovering the S12G Core, you must manually prevent baud rate collision by first programming the Main Core with an application* that sets CAN-1 at 250kbps.  Note that if after recovery the S12G application configures CAN-1 at other than 250kbs, it will collide with the Main Core application’s 250K CAN-1 setting.  Because of this, it is recommended to enable MotoTune on CAN2 in the Main Core application* to allow the Main Core to be re-programmed via CAN-2 (another option is to perform recover procedure on the Main Core after the S12G Core has been recovered).&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
=== Why Do I get this Build Warning?WARNING: CamEncoder has interface Hardware that has not been defined.===&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== What causes the build to fail with this error? &amp;quot;ERROR: A ReactPHWOTChan definition for INJ1 was not found in the application. &amp;quot; ===&lt;br /&gt;
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).&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== What causes the build to fail with this error? &amp;quot;ERROR: A ReactionModule with a ModuleResource of REACT was not found in the application descriptor&amp;quot; ===&lt;br /&gt;
This is really the same cause as the question above.  The use of the INJ channels (even when not in an injector block) require the Reaction Module to be configured in the application.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== I see values with 100% in the build log.  Is this expected?  ===&lt;br /&gt;
There are several memory areas displayed in the build statistics that are internally reserved peices of data.  These are displayed at 100% in the build statistics and cannot be changed by the application.&amp;lt;br/&amp;gt;&lt;br /&gt;
FLASH_RCHW: 4 bytes 100% of 4 &amp;lt;br/&amp;gt;&lt;br /&gt;
FLASH_ENTRY: 4 bytes 100% of 4 &amp;lt;br/&amp;gt;&lt;br /&gt;
FLASH_CRCDEFNPTR: 4 bytes 100% of 4 &amp;lt;br/&amp;gt;&lt;br /&gt;
RAM_BOOTMAILBOX: 16 bytes 100% of 16 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is the 12 V power supply isolated?  ===&lt;br /&gt;
12VOUT is supplied from DRVP and shares a common ground plane so no there is no galvanic isolation from the other supplies.  The intent of the 12VOUT is to power a MAF sensor that requires this voltage. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is the XDRP2 5 V supply more precise than XDRP1?  ===&lt;br /&gt;
XDRP1 is stated as &amp;quot;5V +/- 2%&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
XDRP2 is stated as &amp;quot;VCC +/- 0.2%&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
The above statements make it appear XDRP2 may be more precise than XDRP1, but this may be misleading.  VCC is the internal 5V supply, which is 5V +/-2%.  The reason XDRP2 is a better option for ratiometric sensors lies in the fact that XDRP2 is also the processor's ADC reference.  See next question on VCAL.&lt;br /&gt;
&lt;br /&gt;
=== What is VCAL?  ===&lt;br /&gt;
VCAL is an internal precision 2.5V reference that can be read by the application using a MotoHawk Analog Input block.  This can be used to measure VCC and subsequently used to compensate for absolute voltage sensors.&lt;br /&gt;
&lt;br /&gt;
=== What is DG8?  ===&lt;br /&gt;
DG8 may be called out in some SECM112 documentation, but this is the same as the STOP input.  MotoHawk specifically uses STOP as the resource for this module pin.&lt;br /&gt;
&lt;br /&gt;
=== Can the Auxiliary Processor force an engine to stop?===&lt;br /&gt;
The [[SECM112#Targets | Auxiliary Processor]] can cause the H-Bridge Outputs to be in the off state via the H1 and H2 disables.  MPRD disable can also occur via the MPRD disable output, which also has the side effect of disabling the encoder inputs (Crank and Cam).  Ultimately, a corrective action can be taken by actively resetting the main processor.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=SECM112&amp;diff=4028</id>
		<title>SECM112</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=SECM112&amp;diff=4028"/>
		<updated>2016-03-22T12:51:38Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Injectors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Module ==&lt;br /&gt;
[[Image:ECM-5644A-112-048-1202-xD.jpg|100px|112 Pin ECM-OH]] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
==Overview==&lt;br /&gt;
The SECM112  is part of the engine management system for on-highway applications, which can include L6 4-stroke CNG intercity transit applications, L6, 4-stroke LNG intercity transit applications, and L4 4-stroke commercial vehicle 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&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The SECM112 features two microprocessors in one rugged production intent housing.  The module contains a main MPC5644 120Mhz processor along with a S12G fixed point processor, which can provide question-answer type challenge to the main processor.  Both micros are connected on CAN1.&lt;br /&gt;
&lt;br /&gt;
The SECM112 is part of the MotoHawk Control Solutions ControlCore® family of embedded control systems. The ControlCore operating system,&lt;br /&gt;
MotoHawk® code generation product, and MotoHawk’s suite of development tools enable rapid development of complex control systems.  Application code for both processors is developed in MotoHawk which allows the application developer to create applications directly in Simulink and build with a one step 'CNTL-B' build.   The two controllers act like separate controllers in terms of programming.  Then, the program can be flashed onto the micro using Woodward's MotoTune, Toolkit, or through industry standard 3rd party tools via xCP, or ISO15765.    &lt;br /&gt;
&lt;br /&gt;
Calibration can  be done with Woodward's MotoTune or Toolkit or with industry standard 3rd Party tools through xCP.&lt;br /&gt;
&lt;br /&gt;
Each controller is available in ‘F’ (Flash) or ‘C’ (Calibratible) versions. Flash modules are typically used for production purposes. Calibratible modules are typically for prototyping/development only; they can be calibrated in real time using MotoTune, ToolKit, or industry standard 3rd party tools via xCP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Power Requirements ==&lt;br /&gt;
All versions of the SECM112 Control require a voltage source of 8 to 32Vdc (12Vdc or 24Vdc nominal).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MotoHawk Requirements ==&lt;br /&gt;
MotoHawk 2012bSP0 or higher is required for SECM112.&lt;br /&gt;
&lt;br /&gt;
This means Matlab 2010b or higher is required, as MotoHawk supports Matlab 2 years backward.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compilers ==&lt;br /&gt;
'''Main Micro''': Green Hills 4.2.4   or GCC PowerPC eabi SPE 4.6&lt;br /&gt;
&lt;br /&gt;
'''Auxillary''':  Freescale CodeWarrior 4.6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Targets ==&lt;br /&gt;
The SECM-112 has different Targets for the MAIN Prod and Dev modules as shown below.  The S12G auxillary processor also has it's own target.  &lt;br /&gt;
&lt;br /&gt;
'''Main Processor''' &lt;br /&gt;
&lt;br /&gt;
1751-6601:  Target ECM-5644A-112-048-1204  DEV &amp;lt;br/&amp;gt;&lt;br /&gt;
1751-6688:  Target ECM-5644A-112-048-1206  DEV with 8 cylinder support&lt;br /&gt;
&lt;br /&gt;
1751-6605: Target ECM-56542A-112-049-1200 PROD &amp;lt;br/&amp;gt;&lt;br /&gt;
1751-6690: Target ECM-56542A-112-049-1201 PROD with 8 cylinder support&lt;br /&gt;
&lt;br /&gt;
'''Auxillary Processor''':  Target ECM-S12G-112-059-1200   PROD Only&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Datasheets ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36364 SECM112 Datasheet (36364)]&lt;br /&gt;
&lt;br /&gt;
== Related Part Numbers ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Part Number !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 8923-1930 || Connector Kit&lt;br /&gt;
|-&lt;br /&gt;
| 8996-2228&amp;lt;br/&amp;gt;8996-2230|| Crimp Tools&lt;br /&gt;
|-&lt;br /&gt;
| 8996-1059&amp;lt;br/&amp;gt;8996-2161|| Removal Tools&lt;br /&gt;
|-&lt;br /&gt;
| 1635-1800 || Boot Key&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1334 || Pig Tail (12 feet )&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1322 || Pig Tail (3 feet)&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1357 || Development Harness&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1335 || Programming Harness&lt;br /&gt;
|-&lt;br /&gt;
| 8923-1404 || Breakout Box&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1321 || Desktop Simulator Harness&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Control Features ==&lt;br /&gt;
[[Image:ECMOH1.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Standard features common to both models are:&lt;br /&gt;
*2 engine speed inputs: camshaft and crankshaft speed (software configurable for variable reluctance (VR) magnetic pickup sensor or Hall effect proximity sensor inputs)&lt;br /&gt;
* Up to 6 frequency inputs (some share analog resources)&lt;br /&gt;
* Up to 33 analog inputs&lt;br /&gt;
* 3 switch inputs&lt;br /&gt;
* 2 HEGO sensor inputs&lt;br /&gt;
* 2 LSU sensor inputs (also known as UEGO sensors)&lt;br /&gt;
* 2 knock sensor inputs&lt;br /&gt;
* 3 transducer power outputs providing +5V (350mA &amp;amp; 100mA) and +12V (100mA)&lt;br /&gt;
* 2 H-bridge driver outputs providing 10A and 5A drive capability and current sense feedback&lt;br /&gt;
* 6 Injector drivers providing software configurable peak and hold current levels (up to 7A/2A)&lt;br /&gt;
* 6 ignition coil drivers&lt;br /&gt;
* MPRD (Master Power Relay Driver) low side output&lt;br /&gt;
* TACH low side output&lt;br /&gt;
* 16 low side output drivers (1 with current sense feedback)&lt;br /&gt;
* 3 CAN (Controller Area Network) communications ports&lt;br /&gt;
* 4K-byte serial EEPROM for tunable parameter storage&lt;br /&gt;
* Auxiliary micro with 128k of flash, 8k of RAM, 4k of EEPROM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
==== Analog Inputs (AN1 – AN34)====&lt;br /&gt;
There are 34 analog inputs on the SECM112. The analog inputs have either a pull-up resistor as shown in Figure 2-12, or a pull-down resistor as shown in&lt;br /&gt;
Figure 2-13. Five analog inputs have a software pull-up or pull-down selection via calibration. AN21 &amp;amp; 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.&lt;br /&gt;
&lt;br /&gt;
The Analog Inputs are [[12-bit_ADC|12-Bit ADC]]&lt;br /&gt;
&lt;br /&gt;
===== Fast Analog Channels =====&lt;br /&gt;
ANx_FAST channels are sampled faster than the equivalent ANx. This is needed on SECM112 because of how ADC bandwidth is consumed. SECM112 utilizes most of the available ADC bandwidth to service the reaction channel’s load current sampling. This means that the continuous scan queue sampling that is used by the other channels will take much longer than it normally takes on other modules. SECM112 FAST channel will be sampled every 90us where as normal channels will sample within 1ms (860us) worst case. The 1ms conversion time is problematic for threads of execution that execute at 1ms since the data is sometimes old and sometimes new. &lt;br /&gt;
&lt;br /&gt;
There is no need for such channels on the other ECUs because the ADC bandwidth is not being consumed like it is on the SECM112 and so all the channels are effectively sampled FAST.&lt;br /&gt;
&lt;br /&gt;
==== Crank and CAM Inputs ====&lt;br /&gt;
The Cam and Crank (CNK) inputs are used to detect engine speed and angular position relative to TDC.   The SECM112 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&lt;br /&gt;
input has dedicated connector pins.  See the SECM112 datasheet for additional detail.&lt;br /&gt;
&lt;br /&gt;
==== Digital Inputs ====&lt;br /&gt;
The SECM112 has 8 Discrete Inputs.  Some may be used as switch inputs, others support frequency measurement.&lt;br /&gt;
&lt;br /&gt;
==== Lambda Sensor Unit (UEGO) Inputs ====&lt;br /&gt;
The SECM112 control has two LSUs (Lambda Sensor Units), also known as UEGO (Universal Exhaust Gas Oxygen) inputs, which interface with Bosch LSU4.9 wide range oxygen sensors (Lambda sensors). The lambda-sensor(s) works in conjunction with the on-board Bosch CJ125 ASIC(s) to provide continuous regulation of  for a sensor in the range of  = 0.65... (air). 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.&lt;br /&gt;
&lt;br /&gt;
==== Knock Sensor Inputs ====&lt;br /&gt;
The SECM112 supports two Knock Sensor inputs.&lt;br /&gt;
&lt;br /&gt;
Knock is implemented on the SECM112 in MotoHawk by the Knock by Decimation blockset.   This is a specialized blockset and is included with Standard MotoHawk in 2014a and higher.&lt;br /&gt;
&lt;br /&gt;
=== Outputs ===&lt;br /&gt;
==== Low-side Outputs (LSO)====&lt;br /&gt;
The SECM112 control has 16 low-side outputs (LSOx &amp;amp; SPK8) that can be used as Boolean outputs for driving relays, or some as PWM outputs. LSO1 and LSO2&lt;br /&gt;
are also designed to drive the heater coil on a LSU sensor. Some low-side outputs are provided with freewheeling diodes (internal to the ECM-OH through&lt;br /&gt;
DRVP or BATT) to suppress the back EMF caused by inductive loads. See the ECM-OH datasheet for low-side output capabilities and characteristics.  The LSOs are clamped and can be used to drive relays.&lt;br /&gt;
&lt;br /&gt;
==== Injector Outputs ====&lt;br /&gt;
The SECM112 control has 6 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.&lt;br /&gt;
&lt;br /&gt;
===== Reaction Module Blockset =====&lt;br /&gt;
The peak-hold current level is software configurable through the [[Reaction_Module_Blockset|MotoHawk Reaction Channel Blockset]].&lt;br /&gt;
&lt;br /&gt;
Peak current cannot be run simultaneously on more than 3 injectors on the SECM112 control.&lt;br /&gt;
&lt;br /&gt;
==== Spark Outputs ====&lt;br /&gt;
The SECM112 has 6 IGBT ignition coil drivers each capable of delivering up to 10A of peak dwell current.&lt;br /&gt;
&lt;br /&gt;
The Spark Outputs can be globally disabled via the main core's discrete output DRVR_ENABLE resource. The behavior of these outputs can also be affected by the [[SECM112#Targets | Auxiliary Processor]] via its ability to disable the Master Power Relay (which will also disable the encoder's Crank and Cam inputs).&lt;br /&gt;
&lt;br /&gt;
A special blockset has been created for control and diagnostics of the MC33810 chip which is the driver for the IGBT coil drivers on the SECM112.  See [[MC33810_Blocks|here]] for more detail on the blocks related to the MC33810.&lt;br /&gt;
&lt;br /&gt;
==== H-bridge Outputs ====&lt;br /&gt;
The SECM112 control has two H-bridge outputs that can be used to drive electric motors like butterfly throttle valves.  The H-Bridge outputs are provided with freewheeling diodes (internal to the SECM112 through DRVP) to suppress the back EMF caused by inductive loads.&lt;br /&gt;
&lt;br /&gt;
The H-bridge Outputs can be disabled by the [[SECM112#Targets | Auxiliary Processor]].&lt;br /&gt;
&lt;br /&gt;
==== MPRD Output ====&lt;br /&gt;
The MPRD Output is a common feature of almost all Woodward ECUs and is used to energize the Master Power Relay under application control.&lt;br /&gt;
&lt;br /&gt;
The MPRD Output can be disabled by the [[SECM112#Targets | Auxiliary Processor]], which also has the side effect of disabling the encoder inputs (Crank and Cam).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Output Fault Detection ==&lt;br /&gt;
Output Fault Detection for the SECM112 is through the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/IOFaultStatus.html IO Fault Status block] and the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/FaultStatusGet.html IO Fault Status Get] block.  This block will report a &amp;quot;0&amp;quot; if the driver is not reporting a fault, a &amp;quot;1&amp;quot; if the driver is detecting a fault, or in some cases a &amp;quot;2&amp;quot; for indeterminate.  The faults that can be detected depend on the capability of the driver.  Outputs driven by the MC33810 driver have additional fault reporting capability that can be exposed through the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810FaultDetail.html MC33810 Fault Detail Block].  This block reports the last fault reported by the MC33810 driver and so the report from this block does not clear when the fault state is removed.  The IO Fault Status block should be used to detect whether a fault condition is detected, and then the detail block can be used to detect which fault was reported.  The fault detection capabilities of the SECM112 outputs are described below:&lt;br /&gt;
&lt;br /&gt;
=== H-Bridges ===&lt;br /&gt;
For the h-bridges, shorted load faults can be reported.  Shorted load reporting for each H-bridge is through overcurrent detection.  See the SECM Hardware Manual for minimum overcurrent threshold values.  Current Monitoring should be used in the application model for further diagnosis, such as for open load detection.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Injectors ===&lt;br /&gt;
SECM112’s injector drivers utilize the microprocessor’s Reaction Module for diagnosis. Reaction module diagnosis is based upon observing current and therefore INJ faults can only be detected when the INJ pins are asserted. Observed faults are cached until reported, where they are then cleared. Detection while not asserted is not possible. Therefore the fault status of an INJ output should only be queried once after an actuation event. Querying too often may result in no fault being reported even if the queried INJ output is currently in fault (e.g. open circuit). The [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/PHWOTReactionChannel.html PHWOT Reaction Channel] MotoHawk help provides further detail.&lt;br /&gt;
&lt;br /&gt;
Currently only the IO Fault Status block allows the fault status of an INJ output to be queried.&lt;br /&gt;
&lt;br /&gt;
=== Spark ===&lt;br /&gt;
The Spark outputs are driven by the IGBT drivers of the [http://www.google.com/url?url=http://www.freescale.com/webapp/sps/site/prod_summary.jsp%3Fcode%3DMC33810&amp;amp;rct=j&amp;amp;frm=1&amp;amp;q=&amp;amp;esrc=s&amp;amp;sa=U&amp;amp;ei=Uli1U7zYA5GcyASd_IH4BQ&amp;amp;ved=0CBQQFjAA&amp;amp;usg=AFQjCNGOgPiWwAV_dZ-bz4R4ETEkNGjTXQ MC33810 driver]. &lt;br /&gt;
&lt;br /&gt;
'''The spark output diagnostics assume the SPK outputs are driving an ignition coil as a load.'''  &lt;br /&gt;
&lt;br /&gt;
Comprehensive fault diagnosis when used with ignition coils is described in the [http://www.google.com/url?url=http://www.freescale.com/webapp/sps/site/prod_summary.jsp%3Fcode%3DMC33810&amp;amp;rct=j&amp;amp;frm=1&amp;amp;q=&amp;amp;esrc=s&amp;amp;sa=U&amp;amp;ei=Uli1U7zYA5GcyASd_IH4BQ&amp;amp;ved=0CBQQFjAA&amp;amp;usg=AFQjCNGOgPiWwAV_dZ-bz4R4ETEkNGjTXQ MC33810 Datasheet].   The diagnostic approach is based upon analysis of multiplexed feedback signals that go to the MC33810 which require that the actuators don’t de-assert (i.e. spark) at the same time.  Overlap is possible with PWM and discrete, therefore, diagnosis is less capable or impossible when the SPK outputs are driven by PWM or Discrete output blocks. &lt;br /&gt;
&lt;br /&gt;
'''Note''' that SPK8 is different from the other SPK outputs in that it is a MOSFET.  SPK8 has short while asserted and open while not asserted detection and can be used with the MC33810 Fault Detail block. It is a GPGD type output and thus can use the MC33810 blocks related to GPGD configuration.  Unlike the other spark outputs, SPK8 diagnosis is fully functional when not being driven with an engine position synchronous behavior.&lt;br /&gt;
&lt;br /&gt;
A special blockset has been created for control and diagnostics of the MC33810 chip which is the driver for the IGBT coil drivers on the SECM112.  See [[MC33810_Blocks|here]] for more detail on the blocks related to the MC33810.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LSOs ===&lt;br /&gt;
There are three types of drivers for the LSOs on the SECM112.  Each has slightly different fault reporting capability which is described below.&lt;br /&gt;
* '''LSO1-6''':  reports open circuit or short to ground while de-asserted and short when asserted. LSO6 has current sense as well. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''LSO 7,8,9,11, 12, 13, 14, TACH:'''  These LSOs are driven by MC33810.  Faults of Open while Asserted, Open while De-asserted, and Short to Battery can be reported.  The IO Fault Status block reports the fault state, however there is also an MC33810 Fault Detail block that gives the last fault reported.   The IO Fault Status block should be used to indentify that there is a fault and then the MC33810 Fault Detail block can identify which fault was reported.  The open while asserted fault is detected through current monitoring.   Currents less than 200mA can cause an open while asserted fault to be reported.  Therefore, if the load current is expected to be under 200mA, the Open While Asserted diagnostic should be disabled via the Open Load While Asserted Configuration block.  A special blockset has been created for control and diagnostics of the MC33810 chip which is the driver for the IGBT coil drivers on the SECM112.  See [[MC33810_Blocks|here]] for more detail on the blocks related to the MC33810.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''LSO10''': reports open or short to GND while de-asserted, and short while asserted.  The IO Fault Status block will report a “2” if no fault is detected, or a “1” if a fault state is detected.  It will not report a &amp;quot;0&amp;quot; (OK).   There is a Fault Detail block that will also report which type of fault (Open or Short) has been detected.   Note that the Fault Detail block can still report indeterminate (2) in some cases, but can more clearly identify whether a particular fault is active. For example, while LSO10 is de-asserted the fault detail for LSO10 will report the open fault as being either OK (0) or in fault (1), but will sometimes intermittently report indeterminate(2). The short to battery would continuously report indeterminate (2) while off. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''LSO15''':  reports open or short to GND while de-asserted, and short while asserted.   There is not a block to detect which fault is being set, but the state of the output (On or Off) could be used in the application model.  This will report “2” if no fault is detected, or a “1” if a fault state is detected. &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Internal Temperature Monitor ===&lt;br /&gt;
The SECM112 has an internal temperature monitor that can be accessed via the '''Get Module Data''' block. So, for example, you could implement a Simulink model that logged the maximum observed MicroTemp to NVM. &lt;br /&gt;
&lt;br /&gt;
[[Image:GetModuleData_JunctionTemp.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Shared Resources between the Main and Auxillary S12 cores ==&lt;br /&gt;
The following are shared between the main and s12G cores:&lt;br /&gt;
&lt;br /&gt;
Analog inputs: AN01-05, AN16, AN17, AN18, AN24, AN31, VCAL, KEYSW&lt;br /&gt;
&lt;br /&gt;
Digital inputs: VR1/DG1 (after mux), DG3, DG4, DG5, DG8, Wake-up (on XIRQ) from main core, reset from main core*, main core status&lt;br /&gt;
&lt;br /&gt;
Comms: CAN1&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* There is a shared line for reset of the S12 by the main core, however, this is not available to the application.  There is no block to set it.   It is currently only used during programming to turn the S12 off to prevent CAN bus errors or erroneous resets&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Communications ===&lt;br /&gt;
==== CAN ====&lt;br /&gt;
The SECM112 has three 2.0B CAN ports for distributed I/O, distributed control, and Human Machine Interface (HMI) purposes.&lt;br /&gt;
&lt;br /&gt;
 Important: The SECM112 is programmed at the factory with a sample application that sets CAN-1 of both the Main and Auxillary Cores to 500k baud rate.   &lt;br /&gt;
 '''Both Cores are internally connecxted within the ECU on CAN-1'''.&lt;br /&gt;
 '''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.'''&lt;br /&gt;
 '''Each Core must also have a Unique City ID for MotoTune defined in the CAN Definition Block'''&lt;br /&gt;
&lt;br /&gt;
For programming the SECM112, 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-ID’s.   The module ships pre-programmed with an application that sets the &lt;br /&gt;
Baud rate for both cores to 500k, with City ID of main – 0xB and the City ID of the aux 0x81.    &lt;br /&gt;
&lt;br /&gt;
The hardboot (settings used to program the module by boot key or boot harness) if it needs to be recovered are: &lt;br /&gt;
Main: 250k b/s  City ID 0xB&lt;br /&gt;
Aux: 250k b/s City ID 0x81&lt;br /&gt;
&lt;br /&gt;
To change the baud rate on CAN-1, first program the main core.  Cycle power to put auxiliary in hardboot, the program the auxiliary as above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5644A-112-048-1204-xD.html MotoHawk Target Cross Reference] ===&lt;br /&gt;
The [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5644A-112-048-1204-xD.html MotoHawk Target Cross Reference] shows which IO on the ECM-OH hardware is supported by which behavior (blocks).  There are charts showing behavior vs pin as well as pin vs behavior.  This is the software help document for the module.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[Reaction_Module_Blockset|The Reaction Module Blockset]] and the SECM112==&lt;br /&gt;
The standard PSP blocks (Injector Sequence, Dual PSP, Multiple PSP..) are supported on the SECM112, but configuration of the Reaction Module '''is Required''' for Injection on the SECM112. &lt;br /&gt;
&lt;br /&gt;
Peak-Hold timing is configured by the Reaction Module, '''and the peak-hold input port on the sequence blocks is ignored.'''&lt;br /&gt;
&lt;br /&gt;
See the article on the [[Reaction_Module_Blockset|Reaction Module Blockset]] for additional details.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MC33810 Spark Blockset and the SECM112 ==&lt;br /&gt;
Many of the Woodward MCS ECMs have EST outputs which provide 0-5V TTL level outputs for smart coils.  The SECM112 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.&lt;br /&gt;
&lt;br /&gt;
See the article on the [[MC33810_Blocks|'''MC33810 Configuration blocks''']] for more detail.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Calibration Memory ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''The SECM112 has 64k of Calibration memory available.'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are porting an application from another ECU (ex. the 128-pin) the SECM-112 may have less calibration memory available.  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.    However, the SECM112 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 descision 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 on-line calibration.   The SECM112 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.&lt;br /&gt;
&lt;br /&gt;
The SECM112 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.  Some calibration values may be able to be moved to NV storage  (ex. Calibration NV).&lt;br /&gt;
&lt;br /&gt;
Recommendations to reduce calibration memory in the application:&lt;br /&gt;
&lt;br /&gt;
1. '''Review and Optimize Datatypes'''. The first thing to look at in reducing calibration memory is 64 bit vs 32 bit.  Double is the Simulink default, but is often larger than required.   Convert calibratons to 32-bit (single) or smaller datatypes.&lt;br /&gt;
  &lt;br /&gt;
2. '''Review and Optimize Tables'''. The next big item is table optimizations.  It is likely that 32-bit floating point is not needed for every table and can be reduced.  Reducing the dimenstions of tables would also reduce the memory usage.&lt;br /&gt;
&lt;br /&gt;
== The Main Power Relay Block and the S12G Auxillary processor ==&lt;br /&gt;
A common question is whether the MotoHawk MPRD block should be placed in the application for the S12G auxillary 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.  &lt;br /&gt;
&lt;br /&gt;
Also, the MPRD block is intended as a starting point and is intended to be modified to suite specific application shutdown requirements (right click the block and select Look Under Mask).&lt;br /&gt;
&lt;br /&gt;
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 auxillary S12G, it is nessessary to remove the MPRD discrete output from the block.   The below link has an example MPRD block modified for the ECM-OH Auxillary processor.&lt;br /&gt;
&lt;br /&gt;
[http://mcs.woodward.com/user/download.php?filename=562 ECM-OH Example of Modified MPRD for the S12G]&lt;br /&gt;
&lt;br /&gt;
== Recovering the SECM112==&lt;br /&gt;
Occasionally, errors in programming may require that the module be recovered with a boot key or boot sequence. The following section describes recovery procedure for the SECM112.  For more information, see [[Boot_key_recovery|Boot Key Recovery]].&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Important: Remove the ECU from all control connections before attempting to recover the module.'''&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Default Bootloader MotoServer Settings (Recover/Bootstrap Mode):'''&lt;br /&gt;
&lt;br /&gt;
Main Core: 250kbps on CAN-1, City ID 0x0B (11)&amp;lt;br&amp;gt;&lt;br /&gt;
S12G Core: 250kbps on CAN-1, City ID 0x81 (129)&lt;br /&gt;
&lt;br /&gt;
The SECM112 has two microprocessor cores, the Main Core and the Auxillary S12G. Both processors are connected on CAN1, so it is important that both processors configure their CAN-1 port with the same baud rate, and different MotoTune IDs.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Recovering the Main Processor'''&amp;lt;br&amp;gt;&lt;br /&gt;
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:&amp;lt;br&amp;gt;&lt;br /&gt;
AN3: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN4: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN16: Pull to GND &amp;lt;br&amp;gt;&lt;br /&gt;
AN17: Pull to GND &amp;lt;br&amp;gt;&lt;br /&gt;
AN18: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Recovering the S12G Auxillary Core (requires battery toggle)'''&amp;lt;br&amp;gt;&lt;br /&gt;
The S12G cannot be recovered with a boot key.  A boot sequence on the analog inputs of the S12G is required to recover it.&amp;lt;br&amp;gt;&lt;br /&gt;
AN3: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN4: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN16: Pull to +5V &amp;lt;br&amp;gt; &lt;br /&gt;
AN17: Pull to GND &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Applying the boot signal or sequence'''&lt;br /&gt;
&lt;br /&gt;
The boot key signal or boot sequence is only searched within the first 2-3 seconds of the ECU waking up.   To ensure that the signal/sequence is recognized, the following procedure is recommended:&amp;lt;br&amp;gt;&lt;br /&gt;
1) Apply the boot signal or sequence. &amp;lt;br&amp;gt;&lt;br /&gt;
2) Main Core recovery: Turn Power ON, but key off; S12G Core recovery: battery off.&amp;lt;br&amp;gt;&lt;br /&gt;
3) Initiate MotoTune programming on the MotoServer port (City ID 0x0B 250k baud for Main Core, 0x081 250kbaud for S12G Core). &amp;lt;br&amp;gt;&lt;br /&gt;
4) When 'Searching for ECU' appears in MotoTune, turn the key on (Main Core recovery) or battery on (S12G Core recovery).    It may take several tries.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Avoiding Baud Rate Collision During and After Recovery Process:'''&lt;br /&gt;
&lt;br /&gt;
The Pre-PV and PV units will ship with a Main Core sample application that will connect at 500 kbps on PCM-1 (City-ID 11) or PCM-2 (City-ID 12), and S12G Core sample application that will connect at 500 kbps on SECM-1 (City-ID 129).  The application baud rate on CAN-1 does not match that of the bootloaders’ recovery mode baud rate, and there may be baud rate collision between the Main Core Application and the S12G Bootloader (or between the S12G Application and the Main Core Bootloader).&lt;br /&gt;
&lt;br /&gt;
The Main Core recovery process automatically avoids baud rate collision by holding the S12G Core in reset, so there will be no collision between the Main Core Bootloader and the S12G Core application.&lt;br /&gt;
&lt;br /&gt;
However, if you are recovering the S12G Core, you must manually prevent baud rate collision by first programming the Main Core with an application* that sets CAN-1 at 250kbps.  Note that if after recovery the S12G application configures CAN-1 at other than 250kbs, it will collide with the Main Core application’s 250K CAN-1 setting.  Because of this, it is recommended to enable MotoTune on CAN2 in the Main Core application* to allow the Main Core to be re-programmed via CAN-2 (another option is to perform recover procedure on the Main Core after the S12G Core has been recovered).&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
=== Why Do I get this Build Warning?WARNING: CamEncoder has interface Hardware that has not been defined.===&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== What causes the build to fail with this error? &amp;quot;ERROR: A ReactPHWOTChan definition for INJ1 was not found in the application. &amp;quot; ===&lt;br /&gt;
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).&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== What causes the build to fail with this error? &amp;quot;ERROR: A ReactionModule with a ModuleResource of REACT was not found in the application descriptor&amp;quot; ===&lt;br /&gt;
This is really the same cause as the question above.  The use of the INJ channels (even when not in an injector block) require the Reaction Module to be configured in the application.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== I see values with 100% in the build log.  Is this expected?  ===&lt;br /&gt;
There are several memory areas displayed in the build statistics that are internally reserved peices of data.  These are displayed at 100% in the build statistics and cannot be changed by the application.&amp;lt;br/&amp;gt;&lt;br /&gt;
FLASH_RCHW: 4 bytes 100% of 4 &amp;lt;br/&amp;gt;&lt;br /&gt;
FLASH_ENTRY: 4 bytes 100% of 4 &amp;lt;br/&amp;gt;&lt;br /&gt;
FLASH_CRCDEFNPTR: 4 bytes 100% of 4 &amp;lt;br/&amp;gt;&lt;br /&gt;
RAM_BOOTMAILBOX: 16 bytes 100% of 16 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is the 12 V power supply isolated?  ===&lt;br /&gt;
12VOUT is supplied from DRVP and shares a common ground plane so no there is no galvanic isolation from the other supplies.  The intent of the 12VOUT is to power a MAF sensor that requires this voltage. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is the XDRP2 5 V supply more precise than XDRP1?  ===&lt;br /&gt;
XDRP1 is stated as &amp;quot;5V +/- 2%&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
XDRP2 is stated as &amp;quot;VCC +/- 0.2%&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
The above statements make it appear XDRP2 may be more precise than XDRP1, but this may be misleading.  VCC is the internal 5V supply, which is 5V +/-2%.  The reason XDRP2 is a better option for ratiometric sensors lies in the fact that XDRP2 is also the processor's ADC reference.  See next question on VCAL.&lt;br /&gt;
&lt;br /&gt;
=== What is VCAL?  ===&lt;br /&gt;
VCAL is an internal precision 2.5V reference that can be read by the application using a MotoHawk Analog Input block.  This can be used to measure VCC and subsequently used to compensate for absolute voltage sensors.&lt;br /&gt;
&lt;br /&gt;
=== What is DG8?  ===&lt;br /&gt;
DG8 may be called out in some SECM112 documentation, but this is the same as the STOP input.  MotoHawk specifically uses STOP as the resource for this module pin.&lt;br /&gt;
&lt;br /&gt;
=== Can the Auxiliary Processor force an engine to stop?===&lt;br /&gt;
The [[SECM112#Targets | Auxiliary Processor]] can cause the H-Bridge Outputs to be in the off state via the H1 and H2 disables.  MPRD disable can also occur via the MPRD disable output, which also has the side effect of disabling the encoder inputs (Crank and Cam).  Ultimately, a corrective action can be taken by actively resetting the main processor.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=SECM112&amp;diff=4027</id>
		<title>SECM112</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=SECM112&amp;diff=4027"/>
		<updated>2016-03-22T02:08:52Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Output Fault Detection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Module ==&lt;br /&gt;
[[Image:ECM-5644A-112-048-1202-xD.jpg|100px|112 Pin ECM-OH]] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
==Overview==&lt;br /&gt;
The SECM112  is part of the engine management system for on-highway applications, which can include L6 4-stroke CNG intercity transit applications, L6, 4-stroke LNG intercity transit applications, and L4 4-stroke commercial vehicle 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&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The SECM112 features two microprocessors in one rugged production intent housing.  The module contains a main MPC5644 120Mhz processor along with a S12G fixed point processor, which can provide question-answer type challenge to the main processor.  Both micros are connected on CAN1.&lt;br /&gt;
&lt;br /&gt;
The SECM112 is part of the MotoHawk Control Solutions ControlCore® family of embedded control systems. The ControlCore operating system,&lt;br /&gt;
MotoHawk® code generation product, and MotoHawk’s suite of development tools enable rapid development of complex control systems.  Application code for both processors is developed in MotoHawk which allows the application developer to create applications directly in Simulink and build with a one step 'CNTL-B' build.   The two controllers act like separate controllers in terms of programming.  Then, the program can be flashed onto the micro using Woodward's MotoTune, Toolkit, or through industry standard 3rd party tools via xCP, or ISO15765.    &lt;br /&gt;
&lt;br /&gt;
Calibration can  be done with Woodward's MotoTune or Toolkit or with industry standard 3rd Party tools through xCP.&lt;br /&gt;
&lt;br /&gt;
Each controller is available in ‘F’ (Flash) or ‘C’ (Calibratible) versions. Flash modules are typically used for production purposes. Calibratible modules are typically for prototyping/development only; they can be calibrated in real time using MotoTune, ToolKit, or industry standard 3rd party tools via xCP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Power Requirements ==&lt;br /&gt;
All versions of the SECM112 Control require a voltage source of 8 to 32Vdc (12Vdc or 24Vdc nominal).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MotoHawk Requirements ==&lt;br /&gt;
MotoHawk 2012bSP0 or higher is required for SECM112.&lt;br /&gt;
&lt;br /&gt;
This means Matlab 2010b or higher is required, as MotoHawk supports Matlab 2 years backward.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compilers ==&lt;br /&gt;
'''Main Micro''': Green Hills 4.2.4   or GCC PowerPC eabi SPE 4.6&lt;br /&gt;
&lt;br /&gt;
'''Auxillary''':  Freescale CodeWarrior 4.6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Targets ==&lt;br /&gt;
The SECM-112 has different Targets for the MAIN Prod and Dev modules as shown below.  The S12G auxillary processor also has it's own target.  &lt;br /&gt;
&lt;br /&gt;
'''Main Processor''' &lt;br /&gt;
&lt;br /&gt;
1751-6601:  Target ECM-5644A-112-048-1204  DEV &amp;lt;br/&amp;gt;&lt;br /&gt;
1751-6688:  Target ECM-5644A-112-048-1206  DEV with 8 cylinder support&lt;br /&gt;
&lt;br /&gt;
1751-6605: Target ECM-56542A-112-049-1200 PROD &amp;lt;br/&amp;gt;&lt;br /&gt;
1751-6690: Target ECM-56542A-112-049-1201 PROD with 8 cylinder support&lt;br /&gt;
&lt;br /&gt;
'''Auxillary Processor''':  Target ECM-S12G-112-059-1200   PROD Only&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Datasheets ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36364 SECM112 Datasheet (36364)]&lt;br /&gt;
&lt;br /&gt;
== Related Part Numbers ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Part Number !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 8923-1930 || Connector Kit&lt;br /&gt;
|-&lt;br /&gt;
| 8996-2228&amp;lt;br/&amp;gt;8996-2230|| Crimp Tools&lt;br /&gt;
|-&lt;br /&gt;
| 8996-1059&amp;lt;br/&amp;gt;8996-2161|| Removal Tools&lt;br /&gt;
|-&lt;br /&gt;
| 1635-1800 || Boot Key&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1334 || Pig Tail (12 feet )&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1322 || Pig Tail (3 feet)&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1357 || Development Harness&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1335 || Programming Harness&lt;br /&gt;
|-&lt;br /&gt;
| 8923-1404 || Breakout Box&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1321 || Desktop Simulator Harness&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Control Features ==&lt;br /&gt;
[[Image:ECMOH1.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Standard features common to both models are:&lt;br /&gt;
*2 engine speed inputs: camshaft and crankshaft speed (software configurable for variable reluctance (VR) magnetic pickup sensor or Hall effect proximity sensor inputs)&lt;br /&gt;
* Up to 6 frequency inputs (some share analog resources)&lt;br /&gt;
* Up to 33 analog inputs&lt;br /&gt;
* 3 switch inputs&lt;br /&gt;
* 2 HEGO sensor inputs&lt;br /&gt;
* 2 LSU sensor inputs (also known as UEGO sensors)&lt;br /&gt;
* 2 knock sensor inputs&lt;br /&gt;
* 3 transducer power outputs providing +5V (350mA &amp;amp; 100mA) and +12V (100mA)&lt;br /&gt;
* 2 H-bridge driver outputs providing 10A and 5A drive capability and current sense feedback&lt;br /&gt;
* 6 Injector drivers providing software configurable peak and hold current levels (up to 7A/2A)&lt;br /&gt;
* 6 ignition coil drivers&lt;br /&gt;
* MPRD (Master Power Relay Driver) low side output&lt;br /&gt;
* TACH low side output&lt;br /&gt;
* 16 low side output drivers (1 with current sense feedback)&lt;br /&gt;
* 3 CAN (Controller Area Network) communications ports&lt;br /&gt;
* 4K-byte serial EEPROM for tunable parameter storage&lt;br /&gt;
* Auxiliary micro with 128k of flash, 8k of RAM, 4k of EEPROM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
==== Analog Inputs (AN1 – AN34)====&lt;br /&gt;
There are 34 analog inputs on the SECM112. The analog inputs have either a pull-up resistor as shown in Figure 2-12, or a pull-down resistor as shown in&lt;br /&gt;
Figure 2-13. Five analog inputs have a software pull-up or pull-down selection via calibration. AN21 &amp;amp; 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.&lt;br /&gt;
&lt;br /&gt;
The Analog Inputs are [[12-bit_ADC|12-Bit ADC]]&lt;br /&gt;
&lt;br /&gt;
===== Fast Analog Channels =====&lt;br /&gt;
ANx_FAST channels are sampled faster than the equivalent ANx. This is needed on SECM112 because of how ADC bandwidth is consumed. SECM112 utilizes most of the available ADC bandwidth to service the reaction channel’s load current sampling. This means that the continuous scan queue sampling that is used by the other channels will take much longer than it normally takes on other modules. SECM112 FAST channel will be sampled every 90us where as normal channels will sample within 1ms (860us) worst case. The 1ms conversion time is problematic for threads of execution that execute at 1ms since the data is sometimes old and sometimes new. &lt;br /&gt;
&lt;br /&gt;
There is no need for such channels on the other ECUs because the ADC bandwidth is not being consumed like it is on the SECM112 and so all the channels are effectively sampled FAST.&lt;br /&gt;
&lt;br /&gt;
==== Crank and CAM Inputs ====&lt;br /&gt;
The Cam and Crank (CNK) inputs are used to detect engine speed and angular position relative to TDC.   The SECM112 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&lt;br /&gt;
input has dedicated connector pins.  See the SECM112 datasheet for additional detail.&lt;br /&gt;
&lt;br /&gt;
==== Digital Inputs ====&lt;br /&gt;
The SECM112 has 8 Discrete Inputs.  Some may be used as switch inputs, others support frequency measurement.&lt;br /&gt;
&lt;br /&gt;
==== Lambda Sensor Unit (UEGO) Inputs ====&lt;br /&gt;
The SECM112 control has two LSUs (Lambda Sensor Units), also known as UEGO (Universal Exhaust Gas Oxygen) inputs, which interface with Bosch LSU4.9 wide range oxygen sensors (Lambda sensors). The lambda-sensor(s) works in conjunction with the on-board Bosch CJ125 ASIC(s) to provide continuous regulation of  for a sensor in the range of  = 0.65... (air). 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.&lt;br /&gt;
&lt;br /&gt;
==== Knock Sensor Inputs ====&lt;br /&gt;
The SECM112 supports two Knock Sensor inputs.&lt;br /&gt;
&lt;br /&gt;
Knock is implemented on the SECM112 in MotoHawk by the Knock by Decimation blockset.   This is a specialized blockset and is included with Standard MotoHawk in 2014a and higher.&lt;br /&gt;
&lt;br /&gt;
=== Outputs ===&lt;br /&gt;
==== Low-side Outputs (LSO)====&lt;br /&gt;
The SECM112 control has 16 low-side outputs (LSOx &amp;amp; SPK8) that can be used as Boolean outputs for driving relays, or some as PWM outputs. LSO1 and LSO2&lt;br /&gt;
are also designed to drive the heater coil on a LSU sensor. Some low-side outputs are provided with freewheeling diodes (internal to the ECM-OH through&lt;br /&gt;
DRVP or BATT) to suppress the back EMF caused by inductive loads. See the ECM-OH datasheet for low-side output capabilities and characteristics.  The LSOs are clamped and can be used to drive relays.&lt;br /&gt;
&lt;br /&gt;
==== Injector Outputs ====&lt;br /&gt;
The SECM112 control has 6 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.&lt;br /&gt;
&lt;br /&gt;
===== Reaction Module Blockset =====&lt;br /&gt;
The peak-hold current level is software configurable through the [[Reaction_Module_Blockset|MotoHawk Reaction Channel Blockset]].&lt;br /&gt;
&lt;br /&gt;
Peak current cannot be run simultaneously on more than 3 injectors on the SECM112 control.&lt;br /&gt;
&lt;br /&gt;
==== Spark Outputs ====&lt;br /&gt;
The SECM112 has 6 IGBT ignition coil drivers each capable of delivering up to 10A of peak dwell current.&lt;br /&gt;
&lt;br /&gt;
The Spark Outputs can be globally disabled via the main core's discrete output DRVR_ENABLE resource. The behavior of these outputs can also be affected by the [[SECM112#Targets | Auxiliary Processor]] via its ability to disable the Master Power Relay (which will also disable the encoder's Crank and Cam inputs).&lt;br /&gt;
&lt;br /&gt;
A special blockset has been created for control and diagnostics of the MC33810 chip which is the driver for the IGBT coil drivers on the SECM112.  See [[MC33810_Blocks|here]] for more detail on the blocks related to the MC33810.&lt;br /&gt;
&lt;br /&gt;
==== H-bridge Outputs ====&lt;br /&gt;
The SECM112 control has two H-bridge outputs that can be used to drive electric motors like butterfly throttle valves.  The H-Bridge outputs are provided with freewheeling diodes (internal to the SECM112 through DRVP) to suppress the back EMF caused by inductive loads.&lt;br /&gt;
&lt;br /&gt;
The H-bridge Outputs can be disabled by the [[SECM112#Targets | Auxiliary Processor]].&lt;br /&gt;
&lt;br /&gt;
==== MPRD Output ====&lt;br /&gt;
The MPRD Output is a common feature of almost all Woodward ECUs and is used to energize the Master Power Relay under application control.&lt;br /&gt;
&lt;br /&gt;
The MPRD Output can be disabled by the [[SECM112#Targets | Auxiliary Processor]], which also has the side effect of disabling the encoder inputs (Crank and Cam).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Output Fault Detection ==&lt;br /&gt;
Output Fault Detection for the SECM112 is through the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/IOFaultStatus.html IO Fault Status block] and the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/FaultStatusGet.html IO Fault Status Get] block.  This block will report a &amp;quot;0&amp;quot; if the driver is not reporting a fault, a &amp;quot;1&amp;quot; if the driver is detecting a fault, or in some cases a &amp;quot;2&amp;quot; for indeterminate.  The faults that can be detected depend on the capability of the driver.  Outputs driven by the MC33810 driver have additional fault reporting capability that can be exposed through the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810FaultDetail.html MC33810 Fault Detail Block].  This block reports the last fault reported by the MC33810 driver and so the report from this block does not clear when the fault state is removed.  The IO Fault Status block should be used to detect whether a fault condition is detected, and then the detail block can be used to detect which fault was reported.  The fault detection capabilities of the SECM112 outputs are described below:&lt;br /&gt;
&lt;br /&gt;
=== H-Bridges ===&lt;br /&gt;
For the h-bridges, shorted load faults can be reported.  Shorted load reporting for each H-bridge is through overcurrent detection.  See the SECM Hardware Manual for minimum overcurrent threshold values.  Current Monitoring should be used in the application model for further diagnosis, such as for open load detection.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Injectors ===&lt;br /&gt;
SECM112’s injector drivers utilize the microprocessor’s Reaction Module for diagnosis. Reaction module diagnosis is based upon observing current and therefore INJ faults can only be detected when the INJ pins are asserted. Observed faults are cached until reported, where they are then cleared. Detection while not asserted is not possible. Therefore the fault status of an INJ output should only be queried once after an actuation event. Querying too often may result in no fault being reported even if the queried INJ output is currently in fault (e.g. open circuit). The [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/PHWOTReactionChannel.html PHWOT Reaction Channel] MotoHawk help provides further detail.&lt;br /&gt;
&lt;br /&gt;
Currently only the IO Fault Status block allows the fault status of an INJ output to be queried.&lt;br /&gt;
&lt;br /&gt;
=== Spark ===&lt;br /&gt;
The Spark outputs are driven by the IGBT drivers of the [http://www.google.com/url?url=http://www.freescale.com/webapp/sps/site/prod_summary.jsp%3Fcode%3DMC33810&amp;amp;rct=j&amp;amp;frm=1&amp;amp;q=&amp;amp;esrc=s&amp;amp;sa=U&amp;amp;ei=Uli1U7zYA5GcyASd_IH4BQ&amp;amp;ved=0CBQQFjAA&amp;amp;usg=AFQjCNGOgPiWwAV_dZ-bz4R4ETEkNGjTXQ MC33810 driver]. &lt;br /&gt;
&lt;br /&gt;
'''The spark output diagnostics assume the SPK outputs are driving an ignition coil as a load.'''  &lt;br /&gt;
&lt;br /&gt;
Comprehensive fault diagnosis when used with ignition coils is described in the [http://www.google.com/url?url=http://www.freescale.com/webapp/sps/site/prod_summary.jsp%3Fcode%3DMC33810&amp;amp;rct=j&amp;amp;frm=1&amp;amp;q=&amp;amp;esrc=s&amp;amp;sa=U&amp;amp;ei=Uli1U7zYA5GcyASd_IH4BQ&amp;amp;ved=0CBQQFjAA&amp;amp;usg=AFQjCNGOgPiWwAV_dZ-bz4R4ETEkNGjTXQ MC33810 Datasheet].   The diagnostic approach is based upon analysis of multiplexed feedback signals that go to the MC33810 which require that the actuators don’t de-assert (i.e. spark) at the same time.  Overlap is possible with PWM and discrete, therefore, diagnosis is less capable or impossible when the SPK outputs are driven by PWM or Discrete output blocks. &lt;br /&gt;
&lt;br /&gt;
'''Note''' that SPK8 is different from the other SPK outputs in that it is a MOSFET.  SPK8 has short while asserted and open while not asserted detection and can be used with the MC33810 Fault Detail block. It is a GPGD type output and thus can use the MC33810 blocks related to GPGD configuration.  Unlike the other spark outputs, SPK8 diagnosis is fully functional when not being driven with an engine position synchronous behavior.&lt;br /&gt;
&lt;br /&gt;
A special blockset has been created for control and diagnostics of the MC33810 chip which is the driver for the IGBT coil drivers on the SECM112.  See [[MC33810_Blocks|here]] for more detail on the blocks related to the MC33810.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LSOs ===&lt;br /&gt;
There are three types of drivers for the LSOs on the SECM112.  Each has slightly different fault reporting capability which is described below.&lt;br /&gt;
* '''LSO1-6''':  reports open circuit or short to ground while de-asserted and short when asserted. LSO6 has current sense as well. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''LSO 7,8,9,11, 12, 13, 14, TACH:'''  These LSOs are driven by MC33810.  Faults of Open while Asserted, Open while De-asserted, and Short to Battery can be reported.  The IO Fault Status block reports the fault state, however there is also an MC33810 Fault Detail block that gives the last fault reported.   The IO Fault Status block should be used to indentify that there is a fault and then the MC33810 Fault Detail block can identify which fault was reported.  The open while asserted fault is detected through current monitoring.   Currents less than 200mA can cause an open while asserted fault to be reported.  Therefore, if the load current is expected to be under 200mA, the Open While Asserted diagnostic should be disabled via the Open Load While Asserted Configuration block.  A special blockset has been created for control and diagnostics of the MC33810 chip which is the driver for the IGBT coil drivers on the SECM112.  See [[MC33810_Blocks|here]] for more detail on the blocks related to the MC33810.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''LSO10''': reports open or short to GND while de-asserted, and short while asserted.  The IO Fault Status block will report a “2” if no fault is detected, or a “1” if a fault state is detected.  It will not report a &amp;quot;0&amp;quot; (OK).   There is a Fault Detail block that will also report which type of fault (Open or Short) has been detected.   Note that the Fault Detail block can still report indeterminate (2) in some cases, but can more clearly identify whether a particular fault is active. For example, while LSO10 is de-asserted the fault detail for LSO10 will report the open fault as being either OK (0) or in fault (1), but will sometimes intermittently report indeterminate(2). The short to battery would continuously report indeterminate (2) while off. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''LSO15''':  reports open or short to GND while de-asserted, and short while asserted.   There is not a block to detect which fault is being set, but the state of the output (On or Off) could be used in the application model.  This will report “2” if no fault is detected, or a “1” if a fault state is detected. &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Internal Temperature Monitor ===&lt;br /&gt;
The SECM112 has an internal temperature monitor that can be accessed via the '''Get Module Data''' block. So, for example, you could implement a Simulink model that logged the maximum observed MicroTemp to NVM. &lt;br /&gt;
&lt;br /&gt;
[[Image:GetModuleData_JunctionTemp.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Shared Resources between the Main and Auxillary S12 cores ==&lt;br /&gt;
The following are shared between the main and s12G cores:&lt;br /&gt;
&lt;br /&gt;
Analog inputs: AN01-05, AN16, AN17, AN18, AN24, AN31, VCAL, KEYSW&lt;br /&gt;
&lt;br /&gt;
Digital inputs: VR1/DG1 (after mux), DG3, DG4, DG5, DG8, Wake-up (on XIRQ) from main core, reset from main core*, main core status&lt;br /&gt;
&lt;br /&gt;
Comms: CAN1&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* There is a shared line for reset of the S12 by the main core, however, this is not available to the application.  There is no block to set it.   It is currently only used during programming to turn the S12 off to prevent CAN bus errors or erroneous resets&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Communications ===&lt;br /&gt;
==== CAN ====&lt;br /&gt;
The SECM112 has three 2.0B CAN ports for distributed I/O, distributed control, and Human Machine Interface (HMI) purposes.&lt;br /&gt;
&lt;br /&gt;
 Important: The SECM112 is programmed at the factory with a sample application that sets CAN-1 of both the Main and Auxillary Cores to 500k baud rate.   &lt;br /&gt;
 '''Both Cores are internally connecxted within the ECU on CAN-1'''.&lt;br /&gt;
 '''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.'''&lt;br /&gt;
 '''Each Core must also have a Unique City ID for MotoTune defined in the CAN Definition Block'''&lt;br /&gt;
&lt;br /&gt;
For programming the SECM112, 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-ID’s.   The module ships pre-programmed with an application that sets the &lt;br /&gt;
Baud rate for both cores to 500k, with City ID of main – 0xB and the City ID of the aux 0x81.    &lt;br /&gt;
&lt;br /&gt;
The hardboot (settings used to program the module by boot key or boot harness) if it needs to be recovered are: &lt;br /&gt;
Main: 250k b/s  City ID 0xB&lt;br /&gt;
Aux: 250k b/s City ID 0x81&lt;br /&gt;
&lt;br /&gt;
To change the baud rate on CAN-1, first program the main core.  Cycle power to put auxiliary in hardboot, the program the auxiliary as above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5644A-112-048-1204-xD.html MotoHawk Target Cross Reference] ===&lt;br /&gt;
The [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5644A-112-048-1204-xD.html MotoHawk Target Cross Reference] shows which IO on the ECM-OH hardware is supported by which behavior (blocks).  There are charts showing behavior vs pin as well as pin vs behavior.  This is the software help document for the module.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[Reaction_Module_Blockset|The Reaction Module Blockset]] and the SECM112==&lt;br /&gt;
The standard PSP blocks (Injector Sequence, Dual PSP, Multiple PSP..) are supported on the SECM112, but configuration of the Reaction Module '''is Required''' for Injection on the SECM112. &lt;br /&gt;
&lt;br /&gt;
Peak-Hold timing is configured by the Reaction Module, '''and the peak-hold input port on the sequence blocks is ignored.'''&lt;br /&gt;
&lt;br /&gt;
See the article on the [[Reaction_Module_Blockset|Reaction Module Blockset]] for additional details.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MC33810 Spark Blockset and the SECM112 ==&lt;br /&gt;
Many of the Woodward MCS ECMs have EST outputs which provide 0-5V TTL level outputs for smart coils.  The SECM112 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.&lt;br /&gt;
&lt;br /&gt;
See the article on the [[MC33810_Blocks|'''MC33810 Configuration blocks''']] for more detail.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Calibration Memory ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''The SECM112 has 64k of Calibration memory available.'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are porting an application from another ECU (ex. the 128-pin) the SECM-112 may have less calibration memory available.  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.    However, the SECM112 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 descision 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 on-line calibration.   The SECM112 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.&lt;br /&gt;
&lt;br /&gt;
The SECM112 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.  Some calibration values may be able to be moved to NV storage  (ex. Calibration NV).&lt;br /&gt;
&lt;br /&gt;
Recommendations to reduce calibration memory in the application:&lt;br /&gt;
&lt;br /&gt;
1. '''Review and Optimize Datatypes'''. The first thing to look at in reducing calibration memory is 64 bit vs 32 bit.  Double is the Simulink default, but is often larger than required.   Convert calibratons to 32-bit (single) or smaller datatypes.&lt;br /&gt;
  &lt;br /&gt;
2. '''Review and Optimize Tables'''. The next big item is table optimizations.  It is likely that 32-bit floating point is not needed for every table and can be reduced.  Reducing the dimenstions of tables would also reduce the memory usage.&lt;br /&gt;
&lt;br /&gt;
== The Main Power Relay Block and the S12G Auxillary processor ==&lt;br /&gt;
A common question is whether the MotoHawk MPRD block should be placed in the application for the S12G auxillary 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.  &lt;br /&gt;
&lt;br /&gt;
Also, the MPRD block is intended as a starting point and is intended to be modified to suite specific application shutdown requirements (right click the block and select Look Under Mask).&lt;br /&gt;
&lt;br /&gt;
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 auxillary S12G, it is nessessary to remove the MPRD discrete output from the block.   The below link has an example MPRD block modified for the ECM-OH Auxillary processor.&lt;br /&gt;
&lt;br /&gt;
[http://mcs.woodward.com/user/download.php?filename=562 ECM-OH Example of Modified MPRD for the S12G]&lt;br /&gt;
&lt;br /&gt;
== Recovering the SECM112==&lt;br /&gt;
Occasionally, errors in programming may require that the module be recovered with a boot key or boot sequence. The following section describes recovery procedure for the SECM112.  For more information, see [[Boot_key_recovery|Boot Key Recovery]].&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Important: Remove the ECU from all control connections before attempting to recover the module.'''&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Default Bootloader MotoServer Settings (Recover/Bootstrap Mode):'''&lt;br /&gt;
&lt;br /&gt;
Main Core: 250kbps on CAN-1, City ID 0x0B (11)&amp;lt;br&amp;gt;&lt;br /&gt;
S12G Core: 250kbps on CAN-1, City ID 0x81 (129)&lt;br /&gt;
&lt;br /&gt;
The SECM112 has two microprocessor cores, the Main Core and the Auxillary S12G. Both processors are connected on CAN1, so it is important that both processors configure their CAN-1 port with the same baud rate, and different MotoTune IDs.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Recovering the Main Processor'''&amp;lt;br&amp;gt;&lt;br /&gt;
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:&amp;lt;br&amp;gt;&lt;br /&gt;
AN3: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN4: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN16: Pull to GND &amp;lt;br&amp;gt;&lt;br /&gt;
AN17: Pull to GND &amp;lt;br&amp;gt;&lt;br /&gt;
AN18: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Recovering the S12G Auxillary Core (requires battery toggle)'''&amp;lt;br&amp;gt;&lt;br /&gt;
The S12G cannot be recovered with a boot key.  A boot sequence on the analog inputs of the S12G is required to recover it.&amp;lt;br&amp;gt;&lt;br /&gt;
AN3: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN4: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN16: Pull to +5V &amp;lt;br&amp;gt; &lt;br /&gt;
AN17: Pull to GND &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Applying the boot signal or sequence'''&lt;br /&gt;
&lt;br /&gt;
The boot key signal or boot sequence is only searched within the first 2-3 seconds of the ECU waking up.   To ensure that the signal/sequence is recognized, the following procedure is recommended:&amp;lt;br&amp;gt;&lt;br /&gt;
1) Apply the boot signal or sequence. &amp;lt;br&amp;gt;&lt;br /&gt;
2) Main Core recovery: Turn Power ON, but key off; S12G Core recovery: battery off.&amp;lt;br&amp;gt;&lt;br /&gt;
3) Initiate MotoTune programming on the MotoServer port (City ID 0x0B 250k baud for Main Core, 0x081 250kbaud for S12G Core). &amp;lt;br&amp;gt;&lt;br /&gt;
4) When 'Searching for ECU' appears in MotoTune, turn the key on (Main Core recovery) or battery on (S12G Core recovery).    It may take several tries.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Avoiding Baud Rate Collision During and After Recovery Process:'''&lt;br /&gt;
&lt;br /&gt;
The Pre-PV and PV units will ship with a Main Core sample application that will connect at 500 kbps on PCM-1 (City-ID 11) or PCM-2 (City-ID 12), and S12G Core sample application that will connect at 500 kbps on SECM-1 (City-ID 129).  The application baud rate on CAN-1 does not match that of the bootloaders’ recovery mode baud rate, and there may be baud rate collision between the Main Core Application and the S12G Bootloader (or between the S12G Application and the Main Core Bootloader).&lt;br /&gt;
&lt;br /&gt;
The Main Core recovery process automatically avoids baud rate collision by holding the S12G Core in reset, so there will be no collision between the Main Core Bootloader and the S12G Core application.&lt;br /&gt;
&lt;br /&gt;
However, if you are recovering the S12G Core, you must manually prevent baud rate collision by first programming the Main Core with an application* that sets CAN-1 at 250kbps.  Note that if after recovery the S12G application configures CAN-1 at other than 250kbs, it will collide with the Main Core application’s 250K CAN-1 setting.  Because of this, it is recommended to enable MotoTune on CAN2 in the Main Core application* to allow the Main Core to be re-programmed via CAN-2 (another option is to perform recover procedure on the Main Core after the S12G Core has been recovered).&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
=== Why Do I get this Build Warning?WARNING: CamEncoder has interface Hardware that has not been defined.===&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== What causes the build to fail with this error? &amp;quot;ERROR: A ReactPHWOTChan definition for INJ1 was not found in the application. &amp;quot; ===&lt;br /&gt;
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).&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== What causes the build to fail with this error? &amp;quot;ERROR: A ReactionModule with a ModuleResource of REACT was not found in the application descriptor&amp;quot; ===&lt;br /&gt;
This is really the same cause as the question above.  The use of the INJ channels (even when not in an injector block) require the Reaction Module to be configured in the application.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== I see values with 100% in the build log.  Is this expected?  ===&lt;br /&gt;
There are several memory areas displayed in the build statistics that are internally reserved peices of data.  These are displayed at 100% in the build statistics and cannot be changed by the application.&amp;lt;br/&amp;gt;&lt;br /&gt;
FLASH_RCHW: 4 bytes 100% of 4 &amp;lt;br/&amp;gt;&lt;br /&gt;
FLASH_ENTRY: 4 bytes 100% of 4 &amp;lt;br/&amp;gt;&lt;br /&gt;
FLASH_CRCDEFNPTR: 4 bytes 100% of 4 &amp;lt;br/&amp;gt;&lt;br /&gt;
RAM_BOOTMAILBOX: 16 bytes 100% of 16 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is the 12 V power supply isolated?  ===&lt;br /&gt;
12VOUT is supplied from DRVP and shares a common ground plane so no there is no galvanic isolation from the other supplies.  The intent of the 12VOUT is to power a MAF sensor that requires this voltage. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is the XDRP2 5 V supply more precise than XDRP1?  ===&lt;br /&gt;
XDRP1 is stated as &amp;quot;5V +/- 2%&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
XDRP2 is stated as &amp;quot;VCC +/- 0.2%&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
The above statements make it appear XDRP2 may be more precise than XDRP1, but this may be misleading.  VCC is the internal 5V supply, which is 5V +/-2%.  The reason XDRP2 is a better option for ratiometric sensors lies in the fact that XDRP2 is also the processor's ADC reference.  See next question on VCAL.&lt;br /&gt;
&lt;br /&gt;
=== What is VCAL?  ===&lt;br /&gt;
VCAL is an internal precision 2.5V reference that can be read by the application using a MotoHawk Analog Input block.  This can be used to measure VCC and subsequently used to compensate for absolute voltage sensors.&lt;br /&gt;
&lt;br /&gt;
=== What is DG8?  ===&lt;br /&gt;
DG8 may be called out in some SECM112 documentation, but this is the same as the STOP input.  MotoHawk specifically uses STOP as the resource for this module pin.&lt;br /&gt;
&lt;br /&gt;
=== Can the Auxiliary Processor force an engine to stop?===&lt;br /&gt;
The [[SECM112#Targets | Auxiliary Processor]] can cause the H-Bridge Outputs to be in the off state via the H1 and H2 disables.  MPRD disable can also occur via the MPRD disable output, which also has the side effect of disabling the encoder inputs (Crank and Cam).  Ultimately, a corrective action can be taken by actively resetting the main processor.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=MC33810_Blocks&amp;diff=4026</id>
		<title>MC33810 Blocks</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=MC33810_Blocks&amp;diff=4026"/>
		<updated>2016-03-22T01:37:34Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Possible Faults Reported by MotoHawk from the MC33810 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some modules use the MC33810 as the driver for their LSO and/or Spark Outputs.  MotoHawk contains a blockset of MC33810 configuration and diagnostic blocks that can be used to enable the additional current control and diagnostic capabilities of the MC33810 chip. &lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
The MC33810 is used on:&amp;lt;br&amp;gt;&lt;br /&gt;
* [[70-pin_Module_Family#ECM-S12X-70|ECM-S12X-70]] &amp;lt;br&amp;gt;&lt;br /&gt;
* [[ECM-OH|ECM-564x-112]] (ECM-OH)&lt;br /&gt;
&lt;br /&gt;
== Diagnostics ==&lt;br /&gt;
The MC33810 has three types of outputs.   There are four low side gate drivers and four pre-gate drivers that can function either as ignition IGBT or general purpose MOSFET gate pre-drivers.    The fault reporting will depend on which outputs of the MC33810 are being used and whether the pregate drivers are configured for IGBT or MOSFET.&lt;br /&gt;
&lt;br /&gt;
'''Note:'''  When configured for an IGBT (typically on the ECU spark outputs) the driver diagnostics assume that the load will be an ignition coil.  Diagnostics for other loads using the IGBT spark outputs may be impacted. &lt;br /&gt;
&lt;br /&gt;
=== Output Types ===&lt;br /&gt;
'''OUT Type''':  General low side gate drivers &amp;lt;br&amp;gt;&lt;br /&gt;
'''GPGD Type''':  Pregate driver configured for a MOSFET &amp;lt;br&amp;gt;&lt;br /&gt;
'''IGBT Type''':  Pregate driver configured for an IGBT&lt;br /&gt;
&lt;br /&gt;
=== Possible Faults Reported by MotoHawk from the MC33810 ===&lt;br /&gt;
&lt;br /&gt;
The fault detail is reported by the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810FaultDetail.html MotoHawk MC33810 Fault Detail] block.  This block can report the LAST reported fault of the following faults.  The faults that can be reported depend on the type of MC33810 output as well as the MotoHawk block used for the output.  &lt;br /&gt;
&lt;br /&gt;
[[image:MC33810FaultDetail.png]]&lt;br /&gt;
&lt;br /&gt;
The [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/IOFaultStatus.html IO Fault Status block] must be used with the IO Fault Detail block because the MC33810 fault detail block reports the last reported fault.  It will continue to report a fault after the fault condition has cleared, and is intended only to give additional detail to the application.&lt;br /&gt;
&lt;br /&gt;
(0) No faults observed &amp;lt;br&amp;gt;&lt;br /&gt;
(1) Open detected while asserted. Channel is OUT type &amp;lt;br&amp;gt;&lt;br /&gt;
(2) Open detected while not-asserted. Channel is OUT type&amp;lt;br&amp;gt;&lt;br /&gt;
(3) Short to battery. Channel is OUT type&amp;lt;br&amp;gt;&lt;br /&gt;
(4) Temperature limit shutdown. Channel is OUT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(5) Open detected. Channel is GPGD type.&amp;lt;br&amp;gt;&lt;br /&gt;
(6) Short detected. Channel is GPGD type.&amp;lt;br&amp;gt;&lt;br /&gt;
(7) Open secondary detected. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(8) Max dwell shutdown. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(9) MAXI current observed. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(10) Open primary (Nominal current not attained). Channel is IGBT type.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IGBT PreGate Drivers ==&lt;br /&gt;
&lt;br /&gt;
'''When these pregate driver (FB0,1,2,or 3) outputs of the MC33810 are configured as IGBT pregate drives, the output expects that they will be used to drive an ignition coil.'''   These would be typical on ECU spark outputs that use the MC33810.  &lt;br /&gt;
&lt;br /&gt;
When configured for IGBT type, the following faults can be detected:&amp;lt;br&amp;gt;&lt;br /&gt;
(0) No faults observed&amp;lt;br&amp;gt;&lt;br /&gt;
(7) Open secondary detected. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(8) Max dwell shutdown. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(9) MAXI current observed. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(10) Open primary (Nominal current not attained). Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MC33810 Spark Control Definition ==&lt;br /&gt;
The MC33810 Spark Control Definition block must first be placed in the model to define the global configurations of the MC33810 IC that relate to IGBT control.  There will be one block for each MC33810 driver chip.  &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810_Spark_Control_Definition.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The fault diagnostics of these outputs are then enabled through the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkFaultDefinition.html MC33810 Spark Fault Definition] block.   The Spark Resource (pin) is selected. &lt;br /&gt;
&lt;br /&gt;
==== NOMI and MAXI Thresholds ====&lt;br /&gt;
The IGBT pregate drivers use the nominal current value (or NOMI, where I=current) for detection of an open circuit on the ignition coil primary side.  The current is also compared to a maximum current value, or MAXI.  The MC33810 compares the expected values for NOMI and MAXI across a current sense resistor.  If the NOMI level is not reached, an open primary fault (10) is set.  Similarly if MAXI is exceeded, MAXI fault is set (9).  The NOMI and MAXI values are software configurable to the ranges of 3A to 10.75A for NOMI and 6A to 21A for MAXI using the Motohawk MC33810 Spark DAC Set block, found in Module Configuration blocks.  &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810_DAC_Settings.PNG]]&lt;br /&gt;
&lt;br /&gt;
IGBT type channels use  MAXI and NOMI  (maximum and nominal current) levels for fault detection.   The MAXI and NOMI channels are shared for up to four spark outputs.   &amp;lt;font color = red&amp;gt; The diagnostics may not be reliable if the spark signals overlap.&amp;lt;/font color&amp;gt;  This normally is not an issue with the intended use for spark.  However, diagnotics would be impacted if driving a different load with a discrete output, for example, as the channels could overlap.&lt;br /&gt;
&lt;br /&gt;
NOMI and MAXI current is only used when the outputs are configured as IGBT pre-gate drivers. These do not apply if pregate driver is configured for a MOSFET (as in an LSO).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=red&amp;gt; NOMI fault detection requires a shutdown event and is not supported if the output is driven by a PWM or Discrete Output block.   Open circuit faults on IGBT spark outputs using discrete or PWM block and MC33810 IGBT type outputs will not be reported. &amp;lt;/font color&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Time to Nominal Current ====&lt;br /&gt;
The time to reach the nominal current level can be monitored by the application for control or diagnostics.   The [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/TimetoNominalCurrentDefinition.html Time to Nominal Current Definition] block creates a resource that allows the last observed time to nominal load current diagnostic to be read. This block can be used directly to recover the time or the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/TimetoNominalCurrent.html Time to Nominal Current] access block used, which references this block.&lt;br /&gt;
&lt;br /&gt;
[[Image: TimetoNOMIDefn.jpg]]&lt;br /&gt;
&lt;br /&gt;
==== Open Secondary Fault ====&lt;br /&gt;
In the event that the secondary is open, all of the stored energy in the ignition coil is dissipated by the IGBT.  Faults for open secondary can thus be reported by comparing the current on the primary to what is expected given that the secondary is discharging as expected.   Again, fault reporting assumes the IGBT output is driving an ignition coil, and incorrect fault reporting can occur when the device is driving something different  (ex. a solenoid or pump).&lt;br /&gt;
&lt;br /&gt;
==== Dwell Time ====&lt;br /&gt;
Dwell time is the duration of time that an ignition coil is allowed to change.   The MC33810 starts a timer from when the gate is turned ON.  If the dwell time is longer than the Max Dwell setting,  a Max Dwell fault can be set.  The Max Dwell fault (8) indicates that the channel was shutdown because of an over dwell situation.&lt;br /&gt;
&lt;br /&gt;
=== Monitoring Spark Duration ===&lt;br /&gt;
The spark duration can be monitored using the MotoHawk MC33810 [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationDefinition.html Spark Duration Definition] and [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationTrigger.html Spark Duration Trigger] blocks.&lt;br /&gt;
&lt;br /&gt;
The MC33810 Spark Duration Definition block must be used to select a resource for spark duration measurement.  Alternatively the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationGet.html Get MC33810 Spark Duration block] can be used. Only a single definition block may exist for each resource, but multiple Get MC33810 Spark Duration blocks may exist.  The Spark Duration outport recovers the last observed spark duration for the associated resource in microseconds. A negative value (-1) implies that the MC33810 did not measure a spark duration. Blocks like the MC33810 Spark Control Definition and the MC33810 Spark Fliter Set may need to be configured for the hardware so that it can reliably measure spark duration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Behavior Limitations'''&lt;br /&gt;
The MC33810 hardware measures the spark duration and exports it to the microcontroller via a single, shared SPKDUR signal. Multiple spark duration definition blocks that target different resources may share the same SPKDUR signal. MotoHawk™ demultiplexes this signal when it is processed, but assumes that the behavior of excitation signal that generates the spark will be generated via PSP. Therefore this behavior will only work with PSP like behaviors including Dual PSP, Multiple PSP and the Spark Sequence blocks.&lt;br /&gt;
&lt;br /&gt;
The SPKDUR signal that the microcontroller interprets to obtain spark duration may also be made available in a raw form via the Input Capture block. Spark duration will be reported if this block is configured to trigger on the rising edge. The Input Capture block may not coexist with the MC33810 Spark Duration block. Use the Input Capture block to construct an application specific spark duration capture mechanism when behaviors besides PSP are to be used.&lt;br /&gt;
&lt;br /&gt;
There is also a [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationTrigger.html MC33810 Spark Duration Trigger block] that allows the model to be notified when a spark duration event for the referenced resource is observed. &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810SparkDurationTrigger.png]]&lt;br /&gt;
&lt;br /&gt;
Note that the spark duration trigger will occur after the excitation (dwelling) event concludes (spark is initiated by the conclusion of the excitation event). Thus it quite likely that a trigger block like the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/PSPEndTrigger.html PSP End Trigger] will execute before the spark associated with that excitation event has completed. In such a situation the reported spark duration will still be for the previous excitation rather than the excitation that just occurred.&lt;br /&gt;
&lt;br /&gt;
== MOSFET (GPGD) Predriver Type ==&lt;br /&gt;
The MC33810 pregate driver can also be configured for MOSFET type.  This is determined by the type of output pin used in the model and cannot be changed by the application.  &lt;br /&gt;
&lt;br /&gt;
When configured as a GPGD type, the following faults can be reported:&lt;br /&gt;
&lt;br /&gt;
(0) No faults observed&lt;br /&gt;
&lt;br /&gt;
(5) Open detected. Channel is GPGD type.&lt;br /&gt;
&lt;br /&gt;
(6) Short detected. Channel is GPGD type.&lt;br /&gt;
&lt;br /&gt;
Again, the fault state is reported through the IO Fault Status block, and additional detail on the LAST fault observed can be obtained through the MC33810 Fault Detail Block.  Open load can be detected when the output is off, and short to battery faults detected when the output is on.&lt;br /&gt;
&lt;br /&gt;
The fault reporting of a GPGD type output is configured by using the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810GPGDFaultConfig.html Motohawk MC33810 GPGD Fault Configuration Block].  This block allows the fault configuration of a GPGD style MC33810 output to be applied.&lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810GPGDFaultConfig.png]]&lt;br /&gt;
&lt;br /&gt;
Retry defines whether an output that has been shutdown because of a detected short circuit will attempt to assert again without first having be turned off by the application.&lt;br /&gt;
&lt;br /&gt;
Short Voltage defines the drain source voltage that triggers a short circuit. Values between 0.5V and 3V are supported by the device.&lt;br /&gt;
&lt;br /&gt;
Short time defines how long the drain source voltage must be above the threshold before a fault is triggered. Values between 30us and 960us are supported by the device.&lt;br /&gt;
&lt;br /&gt;
The default 2.5V MC33810 setting is applied for unconnected or &amp;quot;grounded&amp;quot; inputs.&lt;br /&gt;
&lt;br /&gt;
== General Gate Driver Outputs ==&lt;br /&gt;
The following faults can be reported for the general gate driver outputs (OUT channels).  &lt;br /&gt;
&lt;br /&gt;
(0) No faults observed &amp;lt;br&amp;gt;&lt;br /&gt;
(1) Open detected while asserted. &amp;lt;br&amp;gt;&lt;br /&gt;
(2) Open detected while not-asserted. &amp;lt;br&amp;gt;&lt;br /&gt;
(3) Short to battery. &amp;lt;br&amp;gt;&lt;br /&gt;
(4) Temperature limit shutdown. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The general gate drivers have the capability to detect an open circuit condition even while the drive is asserted. However, there are often requirements on the load that must be met before the diagnostic will operate reliably. The [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/OpenLoadWhileAssertedConfiguration.html Open Load While Asserted Configuration] block allows the application to define whether this diagnostic should be used.&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=MC33810_Blocks&amp;diff=4025</id>
		<title>MC33810 Blocks</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=MC33810_Blocks&amp;diff=4025"/>
		<updated>2016-03-22T01:36:46Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* MC33810 Spark Control Definition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some modules use the MC33810 as the driver for their LSO and/or Spark Outputs.  MotoHawk contains a blockset of MC33810 configuration and diagnostic blocks that can be used to enable the additional current control and diagnostic capabilities of the MC33810 chip. &lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
The MC33810 is used on:&amp;lt;br&amp;gt;&lt;br /&gt;
* [[70-pin_Module_Family#ECM-S12X-70|ECM-S12X-70]] &amp;lt;br&amp;gt;&lt;br /&gt;
* [[ECM-OH|ECM-564x-112]] (ECM-OH)&lt;br /&gt;
&lt;br /&gt;
== Diagnostics ==&lt;br /&gt;
The MC33810 has three types of outputs.   There are four low side gate drivers and four pre-gate drivers that can function either as ignition IGBT or general purpose MOSFET gate pre-drivers.    The fault reporting will depend on which outputs of the MC33810 are being used and whether the pregate drivers are configured for IGBT or MOSFET.&lt;br /&gt;
&lt;br /&gt;
'''Note:'''  When configured for an IGBT (typically on the ECU spark outputs) the driver diagnostics assume that the load will be an ignition coil.  Diagnostics for other loads using the IGBT spark outputs may be impacted. &lt;br /&gt;
&lt;br /&gt;
=== Output Types ===&lt;br /&gt;
'''OUT Type''':  General low side gate drivers &amp;lt;br&amp;gt;&lt;br /&gt;
'''GPGD Type''':  Pregate driver configured for a MOSFET &amp;lt;br&amp;gt;&lt;br /&gt;
'''IGBT Type''':  Pregate driver configured for an IGBT&lt;br /&gt;
&lt;br /&gt;
=== Possible Faults Reported by MotoHawk from the MC33810 ===&lt;br /&gt;
&lt;br /&gt;
The fault detail is reported by the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2013aBeta4/HTML/MotoHawk_lib_Blocks/MC33810FaultDetail.html MotoHawk MC33810 Fault Detail] block.  This block can report the LAST reported fault of the following faults.  The faults that can be reported depend on the type of MC33810 output as well as the MotoHawk block used for the output.  &lt;br /&gt;
&lt;br /&gt;
[[image:MC33810FaultDetail.png]]&lt;br /&gt;
&lt;br /&gt;
The [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2013aBeta4/HTML/MotoHawk_lib_Blocks/IOFaultStatus.html IO Fault Status block] must be used with the IO Fault Detail block because the MC33810 fault detail block reports the last reported fault.  It will continue to report a fault after the fault condition has cleared, and is intended only to give additional detail to the application.&lt;br /&gt;
&lt;br /&gt;
(0) No faults observed &amp;lt;br&amp;gt;&lt;br /&gt;
(1) Open detected while asserted. Channel is OUT type &amp;lt;br&amp;gt;&lt;br /&gt;
(2) Open detected while not-asserted. Channel is OUT type&amp;lt;br&amp;gt;&lt;br /&gt;
(3) Short to battery. Channel is OUT type&amp;lt;br&amp;gt;&lt;br /&gt;
(4) Temperature limit shutdown. Channel is OUT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(5) Open detected. Channel is GPGD type.&amp;lt;br&amp;gt;&lt;br /&gt;
(6) Short detected. Channel is GPGD type.&amp;lt;br&amp;gt;&lt;br /&gt;
(7) Open secondary detected. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(8) Max dwell shutdown. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(9) MAXI current observed. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(10) Open primary (Nominal current not attained). Channel is IGBT type.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IGBT PreGate Drivers ==&lt;br /&gt;
&lt;br /&gt;
'''When these pregate driver (FB0,1,2,or 3) outputs of the MC33810 are configured as IGBT pregate drives, the output expects that they will be used to drive an ignition coil.'''   These would be typical on ECU spark outputs that use the MC33810.  &lt;br /&gt;
&lt;br /&gt;
When configured for IGBT type, the following faults can be detected:&amp;lt;br&amp;gt;&lt;br /&gt;
(0) No faults observed&amp;lt;br&amp;gt;&lt;br /&gt;
(7) Open secondary detected. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(8) Max dwell shutdown. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(9) MAXI current observed. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(10) Open primary (Nominal current not attained). Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MC33810 Spark Control Definition ==&lt;br /&gt;
The MC33810 Spark Control Definition block must first be placed in the model to define the global configurations of the MC33810 IC that relate to IGBT control.  There will be one block for each MC33810 driver chip.  &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810_Spark_Control_Definition.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The fault diagnostics of these outputs are then enabled through the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkFaultDefinition.html MC33810 Spark Fault Definition] block.   The Spark Resource (pin) is selected. &lt;br /&gt;
&lt;br /&gt;
==== NOMI and MAXI Thresholds ====&lt;br /&gt;
The IGBT pregate drivers use the nominal current value (or NOMI, where I=current) for detection of an open circuit on the ignition coil primary side.  The current is also compared to a maximum current value, or MAXI.  The MC33810 compares the expected values for NOMI and MAXI across a current sense resistor.  If the NOMI level is not reached, an open primary fault (10) is set.  Similarly if MAXI is exceeded, MAXI fault is set (9).  The NOMI and MAXI values are software configurable to the ranges of 3A to 10.75A for NOMI and 6A to 21A for MAXI using the Motohawk MC33810 Spark DAC Set block, found in Module Configuration blocks.  &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810_DAC_Settings.PNG]]&lt;br /&gt;
&lt;br /&gt;
IGBT type channels use  MAXI and NOMI  (maximum and nominal current) levels for fault detection.   The MAXI and NOMI channels are shared for up to four spark outputs.   &amp;lt;font color = red&amp;gt; The diagnostics may not be reliable if the spark signals overlap.&amp;lt;/font color&amp;gt;  This normally is not an issue with the intended use for spark.  However, diagnotics would be impacted if driving a different load with a discrete output, for example, as the channels could overlap.&lt;br /&gt;
&lt;br /&gt;
NOMI and MAXI current is only used when the outputs are configured as IGBT pre-gate drivers. These do not apply if pregate driver is configured for a MOSFET (as in an LSO).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=red&amp;gt; NOMI fault detection requires a shutdown event and is not supported if the output is driven by a PWM or Discrete Output block.   Open circuit faults on IGBT spark outputs using discrete or PWM block and MC33810 IGBT type outputs will not be reported. &amp;lt;/font color&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Time to Nominal Current ====&lt;br /&gt;
The time to reach the nominal current level can be monitored by the application for control or diagnostics.   The [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/TimetoNominalCurrentDefinition.html Time to Nominal Current Definition] block creates a resource that allows the last observed time to nominal load current diagnostic to be read. This block can be used directly to recover the time or the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/TimetoNominalCurrent.html Time to Nominal Current] access block used, which references this block.&lt;br /&gt;
&lt;br /&gt;
[[Image: TimetoNOMIDefn.jpg]]&lt;br /&gt;
&lt;br /&gt;
==== Open Secondary Fault ====&lt;br /&gt;
In the event that the secondary is open, all of the stored energy in the ignition coil is dissipated by the IGBT.  Faults for open secondary can thus be reported by comparing the current on the primary to what is expected given that the secondary is discharging as expected.   Again, fault reporting assumes the IGBT output is driving an ignition coil, and incorrect fault reporting can occur when the device is driving something different  (ex. a solenoid or pump).&lt;br /&gt;
&lt;br /&gt;
==== Dwell Time ====&lt;br /&gt;
Dwell time is the duration of time that an ignition coil is allowed to change.   The MC33810 starts a timer from when the gate is turned ON.  If the dwell time is longer than the Max Dwell setting,  a Max Dwell fault can be set.  The Max Dwell fault (8) indicates that the channel was shutdown because of an over dwell situation.&lt;br /&gt;
&lt;br /&gt;
=== Monitoring Spark Duration ===&lt;br /&gt;
The spark duration can be monitored using the MotoHawk MC33810 [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationDefinition.html Spark Duration Definition] and [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationTrigger.html Spark Duration Trigger] blocks.&lt;br /&gt;
&lt;br /&gt;
The MC33810 Spark Duration Definition block must be used to select a resource for spark duration measurement.  Alternatively the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationGet.html Get MC33810 Spark Duration block] can be used. Only a single definition block may exist for each resource, but multiple Get MC33810 Spark Duration blocks may exist.  The Spark Duration outport recovers the last observed spark duration for the associated resource in microseconds. A negative value (-1) implies that the MC33810 did not measure a spark duration. Blocks like the MC33810 Spark Control Definition and the MC33810 Spark Fliter Set may need to be configured for the hardware so that it can reliably measure spark duration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Behavior Limitations'''&lt;br /&gt;
The MC33810 hardware measures the spark duration and exports it to the microcontroller via a single, shared SPKDUR signal. Multiple spark duration definition blocks that target different resources may share the same SPKDUR signal. MotoHawk™ demultiplexes this signal when it is processed, but assumes that the behavior of excitation signal that generates the spark will be generated via PSP. Therefore this behavior will only work with PSP like behaviors including Dual PSP, Multiple PSP and the Spark Sequence blocks.&lt;br /&gt;
&lt;br /&gt;
The SPKDUR signal that the microcontroller interprets to obtain spark duration may also be made available in a raw form via the Input Capture block. Spark duration will be reported if this block is configured to trigger on the rising edge. The Input Capture block may not coexist with the MC33810 Spark Duration block. Use the Input Capture block to construct an application specific spark duration capture mechanism when behaviors besides PSP are to be used.&lt;br /&gt;
&lt;br /&gt;
There is also a [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationTrigger.html MC33810 Spark Duration Trigger block] that allows the model to be notified when a spark duration event for the referenced resource is observed. &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810SparkDurationTrigger.png]]&lt;br /&gt;
&lt;br /&gt;
Note that the spark duration trigger will occur after the excitation (dwelling) event concludes (spark is initiated by the conclusion of the excitation event). Thus it quite likely that a trigger block like the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/PSPEndTrigger.html PSP End Trigger] will execute before the spark associated with that excitation event has completed. In such a situation the reported spark duration will still be for the previous excitation rather than the excitation that just occurred.&lt;br /&gt;
&lt;br /&gt;
== MOSFET (GPGD) Predriver Type ==&lt;br /&gt;
The MC33810 pregate driver can also be configured for MOSFET type.  This is determined by the type of output pin used in the model and cannot be changed by the application.  &lt;br /&gt;
&lt;br /&gt;
When configured as a GPGD type, the following faults can be reported:&lt;br /&gt;
&lt;br /&gt;
(0) No faults observed&lt;br /&gt;
&lt;br /&gt;
(5) Open detected. Channel is GPGD type.&lt;br /&gt;
&lt;br /&gt;
(6) Short detected. Channel is GPGD type.&lt;br /&gt;
&lt;br /&gt;
Again, the fault state is reported through the IO Fault Status block, and additional detail on the LAST fault observed can be obtained through the MC33810 Fault Detail Block.  Open load can be detected when the output is off, and short to battery faults detected when the output is on.&lt;br /&gt;
&lt;br /&gt;
The fault reporting of a GPGD type output is configured by using the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810GPGDFaultConfig.html Motohawk MC33810 GPGD Fault Configuration Block].  This block allows the fault configuration of a GPGD style MC33810 output to be applied.&lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810GPGDFaultConfig.png]]&lt;br /&gt;
&lt;br /&gt;
Retry defines whether an output that has been shutdown because of a detected short circuit will attempt to assert again without first having be turned off by the application.&lt;br /&gt;
&lt;br /&gt;
Short Voltage defines the drain source voltage that triggers a short circuit. Values between 0.5V and 3V are supported by the device.&lt;br /&gt;
&lt;br /&gt;
Short time defines how long the drain source voltage must be above the threshold before a fault is triggered. Values between 30us and 960us are supported by the device.&lt;br /&gt;
&lt;br /&gt;
The default 2.5V MC33810 setting is applied for unconnected or &amp;quot;grounded&amp;quot; inputs.&lt;br /&gt;
&lt;br /&gt;
== General Gate Driver Outputs ==&lt;br /&gt;
The following faults can be reported for the general gate driver outputs (OUT channels).  &lt;br /&gt;
&lt;br /&gt;
(0) No faults observed &amp;lt;br&amp;gt;&lt;br /&gt;
(1) Open detected while asserted. &amp;lt;br&amp;gt;&lt;br /&gt;
(2) Open detected while not-asserted. &amp;lt;br&amp;gt;&lt;br /&gt;
(3) Short to battery. &amp;lt;br&amp;gt;&lt;br /&gt;
(4) Temperature limit shutdown. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The general gate drivers have the capability to detect an open circuit condition even while the drive is asserted. However, there are often requirements on the load that must be met before the diagnostic will operate reliably. The [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/OpenLoadWhileAssertedConfiguration.html Open Load While Asserted Configuration] block allows the application to define whether this diagnostic should be used.&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=MC33810_Blocks&amp;diff=4024</id>
		<title>MC33810 Blocks</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=MC33810_Blocks&amp;diff=4024"/>
		<updated>2016-03-22T01:35:58Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Time to Nominal Current */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some modules use the MC33810 as the driver for their LSO and/or Spark Outputs.  MotoHawk contains a blockset of MC33810 configuration and diagnostic blocks that can be used to enable the additional current control and diagnostic capabilities of the MC33810 chip. &lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
The MC33810 is used on:&amp;lt;br&amp;gt;&lt;br /&gt;
* [[70-pin_Module_Family#ECM-S12X-70|ECM-S12X-70]] &amp;lt;br&amp;gt;&lt;br /&gt;
* [[ECM-OH|ECM-564x-112]] (ECM-OH)&lt;br /&gt;
&lt;br /&gt;
== Diagnostics ==&lt;br /&gt;
The MC33810 has three types of outputs.   There are four low side gate drivers and four pre-gate drivers that can function either as ignition IGBT or general purpose MOSFET gate pre-drivers.    The fault reporting will depend on which outputs of the MC33810 are being used and whether the pregate drivers are configured for IGBT or MOSFET.&lt;br /&gt;
&lt;br /&gt;
'''Note:'''  When configured for an IGBT (typically on the ECU spark outputs) the driver diagnostics assume that the load will be an ignition coil.  Diagnostics for other loads using the IGBT spark outputs may be impacted. &lt;br /&gt;
&lt;br /&gt;
=== Output Types ===&lt;br /&gt;
'''OUT Type''':  General low side gate drivers &amp;lt;br&amp;gt;&lt;br /&gt;
'''GPGD Type''':  Pregate driver configured for a MOSFET &amp;lt;br&amp;gt;&lt;br /&gt;
'''IGBT Type''':  Pregate driver configured for an IGBT&lt;br /&gt;
&lt;br /&gt;
=== Possible Faults Reported by MotoHawk from the MC33810 ===&lt;br /&gt;
&lt;br /&gt;
The fault detail is reported by the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2013aBeta4/HTML/MotoHawk_lib_Blocks/MC33810FaultDetail.html MotoHawk MC33810 Fault Detail] block.  This block can report the LAST reported fault of the following faults.  The faults that can be reported depend on the type of MC33810 output as well as the MotoHawk block used for the output.  &lt;br /&gt;
&lt;br /&gt;
[[image:MC33810FaultDetail.png]]&lt;br /&gt;
&lt;br /&gt;
The [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2013aBeta4/HTML/MotoHawk_lib_Blocks/IOFaultStatus.html IO Fault Status block] must be used with the IO Fault Detail block because the MC33810 fault detail block reports the last reported fault.  It will continue to report a fault after the fault condition has cleared, and is intended only to give additional detail to the application.&lt;br /&gt;
&lt;br /&gt;
(0) No faults observed &amp;lt;br&amp;gt;&lt;br /&gt;
(1) Open detected while asserted. Channel is OUT type &amp;lt;br&amp;gt;&lt;br /&gt;
(2) Open detected while not-asserted. Channel is OUT type&amp;lt;br&amp;gt;&lt;br /&gt;
(3) Short to battery. Channel is OUT type&amp;lt;br&amp;gt;&lt;br /&gt;
(4) Temperature limit shutdown. Channel is OUT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(5) Open detected. Channel is GPGD type.&amp;lt;br&amp;gt;&lt;br /&gt;
(6) Short detected. Channel is GPGD type.&amp;lt;br&amp;gt;&lt;br /&gt;
(7) Open secondary detected. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(8) Max dwell shutdown. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(9) MAXI current observed. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(10) Open primary (Nominal current not attained). Channel is IGBT type.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IGBT PreGate Drivers ==&lt;br /&gt;
&lt;br /&gt;
'''When these pregate driver (FB0,1,2,or 3) outputs of the MC33810 are configured as IGBT pregate drives, the output expects that they will be used to drive an ignition coil.'''   These would be typical on ECU spark outputs that use the MC33810.  &lt;br /&gt;
&lt;br /&gt;
When configured for IGBT type, the following faults can be detected:&amp;lt;br&amp;gt;&lt;br /&gt;
(0) No faults observed&amp;lt;br&amp;gt;&lt;br /&gt;
(7) Open secondary detected. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(8) Max dwell shutdown. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(9) MAXI current observed. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(10) Open primary (Nominal current not attained). Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MC33810 Spark Control Definition ==&lt;br /&gt;
The MC33810 Spark Control Definition block must first be placed in the model to define the global configurations of the MC33810 IC that relate to IGBT control.  There will be one block for each MC33810 driver chip.  &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810_Spark_Control_Definition.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The fault diagnostics of these outputs are then enabled through the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2013aBeta4/HTML/motohawk_blocks.html MC33810 Spark Fault Definition] block.   The Spark Resource (pin) is selected. &lt;br /&gt;
&lt;br /&gt;
==== NOMI and MAXI Thresholds ====&lt;br /&gt;
The IGBT pregate drivers use the nominal current value (or NOMI, where I=current) for detection of an open circuit on the ignition coil primary side.  The current is also compared to a maximum current value, or MAXI.  The MC33810 compares the expected values for NOMI and MAXI across a current sense resistor.  If the NOMI level is not reached, an open primary fault (10) is set.  Similarly if MAXI is exceeded, MAXI fault is set (9).  The NOMI and MAXI values are software configurable to the ranges of 3A to 10.75A for NOMI and 6A to 21A for MAXI using the Motohawk MC33810 Spark DAC Set block, found in Module Configuration blocks.  &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810_DAC_Settings.PNG]]&lt;br /&gt;
&lt;br /&gt;
IGBT type channels use  MAXI and NOMI  (maximum and nominal current) levels for fault detection.   The MAXI and NOMI channels are shared for up to four spark outputs.   &amp;lt;font color = red&amp;gt; The diagnostics may not be reliable if the spark signals overlap.&amp;lt;/font color&amp;gt;  This normally is not an issue with the intended use for spark.  However, diagnotics would be impacted if driving a different load with a discrete output, for example, as the channels could overlap.&lt;br /&gt;
&lt;br /&gt;
NOMI and MAXI current is only used when the outputs are configured as IGBT pre-gate drivers. These do not apply if pregate driver is configured for a MOSFET (as in an LSO).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=red&amp;gt; NOMI fault detection requires a shutdown event and is not supported if the output is driven by a PWM or Discrete Output block.   Open circuit faults on IGBT spark outputs using discrete or PWM block and MC33810 IGBT type outputs will not be reported. &amp;lt;/font color&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Time to Nominal Current ====&lt;br /&gt;
The time to reach the nominal current level can be monitored by the application for control or diagnostics.   The [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/TimetoNominalCurrentDefinition.html Time to Nominal Current Definition] block creates a resource that allows the last observed time to nominal load current diagnostic to be read. This block can be used directly to recover the time or the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/TimetoNominalCurrent.html Time to Nominal Current] access block used, which references this block.&lt;br /&gt;
&lt;br /&gt;
[[Image: TimetoNOMIDefn.jpg]]&lt;br /&gt;
&lt;br /&gt;
==== Open Secondary Fault ====&lt;br /&gt;
In the event that the secondary is open, all of the stored energy in the ignition coil is dissipated by the IGBT.  Faults for open secondary can thus be reported by comparing the current on the primary to what is expected given that the secondary is discharging as expected.   Again, fault reporting assumes the IGBT output is driving an ignition coil, and incorrect fault reporting can occur when the device is driving something different  (ex. a solenoid or pump).&lt;br /&gt;
&lt;br /&gt;
==== Dwell Time ====&lt;br /&gt;
Dwell time is the duration of time that an ignition coil is allowed to change.   The MC33810 starts a timer from when the gate is turned ON.  If the dwell time is longer than the Max Dwell setting,  a Max Dwell fault can be set.  The Max Dwell fault (8) indicates that the channel was shutdown because of an over dwell situation.&lt;br /&gt;
&lt;br /&gt;
=== Monitoring Spark Duration ===&lt;br /&gt;
The spark duration can be monitored using the MotoHawk MC33810 [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationDefinition.html Spark Duration Definition] and [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationTrigger.html Spark Duration Trigger] blocks.&lt;br /&gt;
&lt;br /&gt;
The MC33810 Spark Duration Definition block must be used to select a resource for spark duration measurement.  Alternatively the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationGet.html Get MC33810 Spark Duration block] can be used. Only a single definition block may exist for each resource, but multiple Get MC33810 Spark Duration blocks may exist.  The Spark Duration outport recovers the last observed spark duration for the associated resource in microseconds. A negative value (-1) implies that the MC33810 did not measure a spark duration. Blocks like the MC33810 Spark Control Definition and the MC33810 Spark Fliter Set may need to be configured for the hardware so that it can reliably measure spark duration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Behavior Limitations'''&lt;br /&gt;
The MC33810 hardware measures the spark duration and exports it to the microcontroller via a single, shared SPKDUR signal. Multiple spark duration definition blocks that target different resources may share the same SPKDUR signal. MotoHawk™ demultiplexes this signal when it is processed, but assumes that the behavior of excitation signal that generates the spark will be generated via PSP. Therefore this behavior will only work with PSP like behaviors including Dual PSP, Multiple PSP and the Spark Sequence blocks.&lt;br /&gt;
&lt;br /&gt;
The SPKDUR signal that the microcontroller interprets to obtain spark duration may also be made available in a raw form via the Input Capture block. Spark duration will be reported if this block is configured to trigger on the rising edge. The Input Capture block may not coexist with the MC33810 Spark Duration block. Use the Input Capture block to construct an application specific spark duration capture mechanism when behaviors besides PSP are to be used.&lt;br /&gt;
&lt;br /&gt;
There is also a [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationTrigger.html MC33810 Spark Duration Trigger block] that allows the model to be notified when a spark duration event for the referenced resource is observed. &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810SparkDurationTrigger.png]]&lt;br /&gt;
&lt;br /&gt;
Note that the spark duration trigger will occur after the excitation (dwelling) event concludes (spark is initiated by the conclusion of the excitation event). Thus it quite likely that a trigger block like the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/PSPEndTrigger.html PSP End Trigger] will execute before the spark associated with that excitation event has completed. In such a situation the reported spark duration will still be for the previous excitation rather than the excitation that just occurred.&lt;br /&gt;
&lt;br /&gt;
== MOSFET (GPGD) Predriver Type ==&lt;br /&gt;
The MC33810 pregate driver can also be configured for MOSFET type.  This is determined by the type of output pin used in the model and cannot be changed by the application.  &lt;br /&gt;
&lt;br /&gt;
When configured as a GPGD type, the following faults can be reported:&lt;br /&gt;
&lt;br /&gt;
(0) No faults observed&lt;br /&gt;
&lt;br /&gt;
(5) Open detected. Channel is GPGD type.&lt;br /&gt;
&lt;br /&gt;
(6) Short detected. Channel is GPGD type.&lt;br /&gt;
&lt;br /&gt;
Again, the fault state is reported through the IO Fault Status block, and additional detail on the LAST fault observed can be obtained through the MC33810 Fault Detail Block.  Open load can be detected when the output is off, and short to battery faults detected when the output is on.&lt;br /&gt;
&lt;br /&gt;
The fault reporting of a GPGD type output is configured by using the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810GPGDFaultConfig.html Motohawk MC33810 GPGD Fault Configuration Block].  This block allows the fault configuration of a GPGD style MC33810 output to be applied.&lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810GPGDFaultConfig.png]]&lt;br /&gt;
&lt;br /&gt;
Retry defines whether an output that has been shutdown because of a detected short circuit will attempt to assert again without first having be turned off by the application.&lt;br /&gt;
&lt;br /&gt;
Short Voltage defines the drain source voltage that triggers a short circuit. Values between 0.5V and 3V are supported by the device.&lt;br /&gt;
&lt;br /&gt;
Short time defines how long the drain source voltage must be above the threshold before a fault is triggered. Values between 30us and 960us are supported by the device.&lt;br /&gt;
&lt;br /&gt;
The default 2.5V MC33810 setting is applied for unconnected or &amp;quot;grounded&amp;quot; inputs.&lt;br /&gt;
&lt;br /&gt;
== General Gate Driver Outputs ==&lt;br /&gt;
The following faults can be reported for the general gate driver outputs (OUT channels).  &lt;br /&gt;
&lt;br /&gt;
(0) No faults observed &amp;lt;br&amp;gt;&lt;br /&gt;
(1) Open detected while asserted. &amp;lt;br&amp;gt;&lt;br /&gt;
(2) Open detected while not-asserted. &amp;lt;br&amp;gt;&lt;br /&gt;
(3) Short to battery. &amp;lt;br&amp;gt;&lt;br /&gt;
(4) Temperature limit shutdown. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The general gate drivers have the capability to detect an open circuit condition even while the drive is asserted. However, there are often requirements on the load that must be met before the diagnostic will operate reliably. The [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/OpenLoadWhileAssertedConfiguration.html Open Load While Asserted Configuration] block allows the application to define whether this diagnostic should be used.&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=MC33810_Blocks&amp;diff=4023</id>
		<title>MC33810 Blocks</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=MC33810_Blocks&amp;diff=4023"/>
		<updated>2016-03-22T01:35:18Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Monitoring Spark Duration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some modules use the MC33810 as the driver for their LSO and/or Spark Outputs.  MotoHawk contains a blockset of MC33810 configuration and diagnostic blocks that can be used to enable the additional current control and diagnostic capabilities of the MC33810 chip. &lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
The MC33810 is used on:&amp;lt;br&amp;gt;&lt;br /&gt;
* [[70-pin_Module_Family#ECM-S12X-70|ECM-S12X-70]] &amp;lt;br&amp;gt;&lt;br /&gt;
* [[ECM-OH|ECM-564x-112]] (ECM-OH)&lt;br /&gt;
&lt;br /&gt;
== Diagnostics ==&lt;br /&gt;
The MC33810 has three types of outputs.   There are four low side gate drivers and four pre-gate drivers that can function either as ignition IGBT or general purpose MOSFET gate pre-drivers.    The fault reporting will depend on which outputs of the MC33810 are being used and whether the pregate drivers are configured for IGBT or MOSFET.&lt;br /&gt;
&lt;br /&gt;
'''Note:'''  When configured for an IGBT (typically on the ECU spark outputs) the driver diagnostics assume that the load will be an ignition coil.  Diagnostics for other loads using the IGBT spark outputs may be impacted. &lt;br /&gt;
&lt;br /&gt;
=== Output Types ===&lt;br /&gt;
'''OUT Type''':  General low side gate drivers &amp;lt;br&amp;gt;&lt;br /&gt;
'''GPGD Type''':  Pregate driver configured for a MOSFET &amp;lt;br&amp;gt;&lt;br /&gt;
'''IGBT Type''':  Pregate driver configured for an IGBT&lt;br /&gt;
&lt;br /&gt;
=== Possible Faults Reported by MotoHawk from the MC33810 ===&lt;br /&gt;
&lt;br /&gt;
The fault detail is reported by the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2013aBeta4/HTML/MotoHawk_lib_Blocks/MC33810FaultDetail.html MotoHawk MC33810 Fault Detail] block.  This block can report the LAST reported fault of the following faults.  The faults that can be reported depend on the type of MC33810 output as well as the MotoHawk block used for the output.  &lt;br /&gt;
&lt;br /&gt;
[[image:MC33810FaultDetail.png]]&lt;br /&gt;
&lt;br /&gt;
The [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2013aBeta4/HTML/MotoHawk_lib_Blocks/IOFaultStatus.html IO Fault Status block] must be used with the IO Fault Detail block because the MC33810 fault detail block reports the last reported fault.  It will continue to report a fault after the fault condition has cleared, and is intended only to give additional detail to the application.&lt;br /&gt;
&lt;br /&gt;
(0) No faults observed &amp;lt;br&amp;gt;&lt;br /&gt;
(1) Open detected while asserted. Channel is OUT type &amp;lt;br&amp;gt;&lt;br /&gt;
(2) Open detected while not-asserted. Channel is OUT type&amp;lt;br&amp;gt;&lt;br /&gt;
(3) Short to battery. Channel is OUT type&amp;lt;br&amp;gt;&lt;br /&gt;
(4) Temperature limit shutdown. Channel is OUT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(5) Open detected. Channel is GPGD type.&amp;lt;br&amp;gt;&lt;br /&gt;
(6) Short detected. Channel is GPGD type.&amp;lt;br&amp;gt;&lt;br /&gt;
(7) Open secondary detected. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(8) Max dwell shutdown. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(9) MAXI current observed. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(10) Open primary (Nominal current not attained). Channel is IGBT type.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IGBT PreGate Drivers ==&lt;br /&gt;
&lt;br /&gt;
'''When these pregate driver (FB0,1,2,or 3) outputs of the MC33810 are configured as IGBT pregate drives, the output expects that they will be used to drive an ignition coil.'''   These would be typical on ECU spark outputs that use the MC33810.  &lt;br /&gt;
&lt;br /&gt;
When configured for IGBT type, the following faults can be detected:&amp;lt;br&amp;gt;&lt;br /&gt;
(0) No faults observed&amp;lt;br&amp;gt;&lt;br /&gt;
(7) Open secondary detected. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(8) Max dwell shutdown. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(9) MAXI current observed. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(10) Open primary (Nominal current not attained). Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MC33810 Spark Control Definition ==&lt;br /&gt;
The MC33810 Spark Control Definition block must first be placed in the model to define the global configurations of the MC33810 IC that relate to IGBT control.  There will be one block for each MC33810 driver chip.  &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810_Spark_Control_Definition.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The fault diagnostics of these outputs are then enabled through the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2013aBeta4/HTML/motohawk_blocks.html MC33810 Spark Fault Definition] block.   The Spark Resource (pin) is selected. &lt;br /&gt;
&lt;br /&gt;
==== NOMI and MAXI Thresholds ====&lt;br /&gt;
The IGBT pregate drivers use the nominal current value (or NOMI, where I=current) for detection of an open circuit on the ignition coil primary side.  The current is also compared to a maximum current value, or MAXI.  The MC33810 compares the expected values for NOMI and MAXI across a current sense resistor.  If the NOMI level is not reached, an open primary fault (10) is set.  Similarly if MAXI is exceeded, MAXI fault is set (9).  The NOMI and MAXI values are software configurable to the ranges of 3A to 10.75A for NOMI and 6A to 21A for MAXI using the Motohawk MC33810 Spark DAC Set block, found in Module Configuration blocks.  &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810_DAC_Settings.PNG]]&lt;br /&gt;
&lt;br /&gt;
IGBT type channels use  MAXI and NOMI  (maximum and nominal current) levels for fault detection.   The MAXI and NOMI channels are shared for up to four spark outputs.   &amp;lt;font color = red&amp;gt; The diagnostics may not be reliable if the spark signals overlap.&amp;lt;/font color&amp;gt;  This normally is not an issue with the intended use for spark.  However, diagnotics would be impacted if driving a different load with a discrete output, for example, as the channels could overlap.&lt;br /&gt;
&lt;br /&gt;
NOMI and MAXI current is only used when the outputs are configured as IGBT pre-gate drivers. These do not apply if pregate driver is configured for a MOSFET (as in an LSO).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=red&amp;gt; NOMI fault detection requires a shutdown event and is not supported if the output is driven by a PWM or Discrete Output block.   Open circuit faults on IGBT spark outputs using discrete or PWM block and MC33810 IGBT type outputs will not be reported. &amp;lt;/font color&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Time to Nominal Current ====&lt;br /&gt;
The time to reach the nominal current level can be monitored by the application for control or diagnostics.   The [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2012bSP0/HTML/MotoHawk_lib_Blocks/TimetoNominalCurrentDefinition.html Time to Nominal Current Definition] block creates a resource that allows the last observed time to nominal load current diagnostic to be read. This block can be used directly to recover the time or the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2012bSP0/HTML/MotoHawk_lib_Blocks/TimetoNominalCurrent.html Time to Nominal Current] access block used, which references this block.&lt;br /&gt;
&lt;br /&gt;
[[Image: TimetoNOMIDefn.jpg]]&lt;br /&gt;
&lt;br /&gt;
==== Open Secondary Fault ====&lt;br /&gt;
In the event that the secondary is open, all of the stored energy in the ignition coil is dissipated by the IGBT.  Faults for open secondary can thus be reported by comparing the current on the primary to what is expected given that the secondary is discharging as expected.   Again, fault reporting assumes the IGBT output is driving an ignition coil, and incorrect fault reporting can occur when the device is driving something different  (ex. a solenoid or pump).&lt;br /&gt;
&lt;br /&gt;
==== Dwell Time ====&lt;br /&gt;
Dwell time is the duration of time that an ignition coil is allowed to change.   The MC33810 starts a timer from when the gate is turned ON.  If the dwell time is longer than the Max Dwell setting,  a Max Dwell fault can be set.  The Max Dwell fault (8) indicates that the channel was shutdown because of an over dwell situation.&lt;br /&gt;
&lt;br /&gt;
=== Monitoring Spark Duration ===&lt;br /&gt;
The spark duration can be monitored using the MotoHawk MC33810 [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationDefinition.html Spark Duration Definition] and [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationTrigger.html Spark Duration Trigger] blocks.&lt;br /&gt;
&lt;br /&gt;
The MC33810 Spark Duration Definition block must be used to select a resource for spark duration measurement.  Alternatively the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationGet.html Get MC33810 Spark Duration block] can be used. Only a single definition block may exist for each resource, but multiple Get MC33810 Spark Duration blocks may exist.  The Spark Duration outport recovers the last observed spark duration for the associated resource in microseconds. A negative value (-1) implies that the MC33810 did not measure a spark duration. Blocks like the MC33810 Spark Control Definition and the MC33810 Spark Fliter Set may need to be configured for the hardware so that it can reliably measure spark duration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Behavior Limitations'''&lt;br /&gt;
The MC33810 hardware measures the spark duration and exports it to the microcontroller via a single, shared SPKDUR signal. Multiple spark duration definition blocks that target different resources may share the same SPKDUR signal. MotoHawk™ demultiplexes this signal when it is processed, but assumes that the behavior of excitation signal that generates the spark will be generated via PSP. Therefore this behavior will only work with PSP like behaviors including Dual PSP, Multiple PSP and the Spark Sequence blocks.&lt;br /&gt;
&lt;br /&gt;
The SPKDUR signal that the microcontroller interprets to obtain spark duration may also be made available in a raw form via the Input Capture block. Spark duration will be reported if this block is configured to trigger on the rising edge. The Input Capture block may not coexist with the MC33810 Spark Duration block. Use the Input Capture block to construct an application specific spark duration capture mechanism when behaviors besides PSP are to be used.&lt;br /&gt;
&lt;br /&gt;
There is also a [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationTrigger.html MC33810 Spark Duration Trigger block] that allows the model to be notified when a spark duration event for the referenced resource is observed. &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810SparkDurationTrigger.png]]&lt;br /&gt;
&lt;br /&gt;
Note that the spark duration trigger will occur after the excitation (dwelling) event concludes (spark is initiated by the conclusion of the excitation event). Thus it quite likely that a trigger block like the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/PSPEndTrigger.html PSP End Trigger] will execute before the spark associated with that excitation event has completed. In such a situation the reported spark duration will still be for the previous excitation rather than the excitation that just occurred.&lt;br /&gt;
&lt;br /&gt;
== MOSFET (GPGD) Predriver Type ==&lt;br /&gt;
The MC33810 pregate driver can also be configured for MOSFET type.  This is determined by the type of output pin used in the model and cannot be changed by the application.  &lt;br /&gt;
&lt;br /&gt;
When configured as a GPGD type, the following faults can be reported:&lt;br /&gt;
&lt;br /&gt;
(0) No faults observed&lt;br /&gt;
&lt;br /&gt;
(5) Open detected. Channel is GPGD type.&lt;br /&gt;
&lt;br /&gt;
(6) Short detected. Channel is GPGD type.&lt;br /&gt;
&lt;br /&gt;
Again, the fault state is reported through the IO Fault Status block, and additional detail on the LAST fault observed can be obtained through the MC33810 Fault Detail Block.  Open load can be detected when the output is off, and short to battery faults detected when the output is on.&lt;br /&gt;
&lt;br /&gt;
The fault reporting of a GPGD type output is configured by using the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810GPGDFaultConfig.html Motohawk MC33810 GPGD Fault Configuration Block].  This block allows the fault configuration of a GPGD style MC33810 output to be applied.&lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810GPGDFaultConfig.png]]&lt;br /&gt;
&lt;br /&gt;
Retry defines whether an output that has been shutdown because of a detected short circuit will attempt to assert again without first having be turned off by the application.&lt;br /&gt;
&lt;br /&gt;
Short Voltage defines the drain source voltage that triggers a short circuit. Values between 0.5V and 3V are supported by the device.&lt;br /&gt;
&lt;br /&gt;
Short time defines how long the drain source voltage must be above the threshold before a fault is triggered. Values between 30us and 960us are supported by the device.&lt;br /&gt;
&lt;br /&gt;
The default 2.5V MC33810 setting is applied for unconnected or &amp;quot;grounded&amp;quot; inputs.&lt;br /&gt;
&lt;br /&gt;
== General Gate Driver Outputs ==&lt;br /&gt;
The following faults can be reported for the general gate driver outputs (OUT channels).  &lt;br /&gt;
&lt;br /&gt;
(0) No faults observed &amp;lt;br&amp;gt;&lt;br /&gt;
(1) Open detected while asserted. &amp;lt;br&amp;gt;&lt;br /&gt;
(2) Open detected while not-asserted. &amp;lt;br&amp;gt;&lt;br /&gt;
(3) Short to battery. &amp;lt;br&amp;gt;&lt;br /&gt;
(4) Temperature limit shutdown. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The general gate drivers have the capability to detect an open circuit condition even while the drive is asserted. However, there are often requirements on the load that must be met before the diagnostic will operate reliably. The [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/OpenLoadWhileAssertedConfiguration.html Open Load While Asserted Configuration] block allows the application to define whether this diagnostic should be used.&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=MC33810_Blocks&amp;diff=4022</id>
		<title>MC33810 Blocks</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=MC33810_Blocks&amp;diff=4022"/>
		<updated>2016-03-22T01:34:07Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* General Gate Driver Outputs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some modules use the MC33810 as the driver for their LSO and/or Spark Outputs.  MotoHawk contains a blockset of MC33810 configuration and diagnostic blocks that can be used to enable the additional current control and diagnostic capabilities of the MC33810 chip. &lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
The MC33810 is used on:&amp;lt;br&amp;gt;&lt;br /&gt;
* [[70-pin_Module_Family#ECM-S12X-70|ECM-S12X-70]] &amp;lt;br&amp;gt;&lt;br /&gt;
* [[ECM-OH|ECM-564x-112]] (ECM-OH)&lt;br /&gt;
&lt;br /&gt;
== Diagnostics ==&lt;br /&gt;
The MC33810 has three types of outputs.   There are four low side gate drivers and four pre-gate drivers that can function either as ignition IGBT or general purpose MOSFET gate pre-drivers.    The fault reporting will depend on which outputs of the MC33810 are being used and whether the pregate drivers are configured for IGBT or MOSFET.&lt;br /&gt;
&lt;br /&gt;
'''Note:'''  When configured for an IGBT (typically on the ECU spark outputs) the driver diagnostics assume that the load will be an ignition coil.  Diagnostics for other loads using the IGBT spark outputs may be impacted. &lt;br /&gt;
&lt;br /&gt;
=== Output Types ===&lt;br /&gt;
'''OUT Type''':  General low side gate drivers &amp;lt;br&amp;gt;&lt;br /&gt;
'''GPGD Type''':  Pregate driver configured for a MOSFET &amp;lt;br&amp;gt;&lt;br /&gt;
'''IGBT Type''':  Pregate driver configured for an IGBT&lt;br /&gt;
&lt;br /&gt;
=== Possible Faults Reported by MotoHawk from the MC33810 ===&lt;br /&gt;
&lt;br /&gt;
The fault detail is reported by the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2013aBeta4/HTML/MotoHawk_lib_Blocks/MC33810FaultDetail.html MotoHawk MC33810 Fault Detail] block.  This block can report the LAST reported fault of the following faults.  The faults that can be reported depend on the type of MC33810 output as well as the MotoHawk block used for the output.  &lt;br /&gt;
&lt;br /&gt;
[[image:MC33810FaultDetail.png]]&lt;br /&gt;
&lt;br /&gt;
The [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2013aBeta4/HTML/MotoHawk_lib_Blocks/IOFaultStatus.html IO Fault Status block] must be used with the IO Fault Detail block because the MC33810 fault detail block reports the last reported fault.  It will continue to report a fault after the fault condition has cleared, and is intended only to give additional detail to the application.&lt;br /&gt;
&lt;br /&gt;
(0) No faults observed &amp;lt;br&amp;gt;&lt;br /&gt;
(1) Open detected while asserted. Channel is OUT type &amp;lt;br&amp;gt;&lt;br /&gt;
(2) Open detected while not-asserted. Channel is OUT type&amp;lt;br&amp;gt;&lt;br /&gt;
(3) Short to battery. Channel is OUT type&amp;lt;br&amp;gt;&lt;br /&gt;
(4) Temperature limit shutdown. Channel is OUT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(5) Open detected. Channel is GPGD type.&amp;lt;br&amp;gt;&lt;br /&gt;
(6) Short detected. Channel is GPGD type.&amp;lt;br&amp;gt;&lt;br /&gt;
(7) Open secondary detected. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(8) Max dwell shutdown. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(9) MAXI current observed. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(10) Open primary (Nominal current not attained). Channel is IGBT type.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IGBT PreGate Drivers ==&lt;br /&gt;
&lt;br /&gt;
'''When these pregate driver (FB0,1,2,or 3) outputs of the MC33810 are configured as IGBT pregate drives, the output expects that they will be used to drive an ignition coil.'''   These would be typical on ECU spark outputs that use the MC33810.  &lt;br /&gt;
&lt;br /&gt;
When configured for IGBT type, the following faults can be detected:&amp;lt;br&amp;gt;&lt;br /&gt;
(0) No faults observed&amp;lt;br&amp;gt;&lt;br /&gt;
(7) Open secondary detected. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(8) Max dwell shutdown. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(9) MAXI current observed. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(10) Open primary (Nominal current not attained). Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MC33810 Spark Control Definition ==&lt;br /&gt;
The MC33810 Spark Control Definition block must first be placed in the model to define the global configurations of the MC33810 IC that relate to IGBT control.  There will be one block for each MC33810 driver chip.  &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810_Spark_Control_Definition.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The fault diagnostics of these outputs are then enabled through the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2013aBeta4/HTML/motohawk_blocks.html MC33810 Spark Fault Definition] block.   The Spark Resource (pin) is selected. &lt;br /&gt;
&lt;br /&gt;
==== NOMI and MAXI Thresholds ====&lt;br /&gt;
The IGBT pregate drivers use the nominal current value (or NOMI, where I=current) for detection of an open circuit on the ignition coil primary side.  The current is also compared to a maximum current value, or MAXI.  The MC33810 compares the expected values for NOMI and MAXI across a current sense resistor.  If the NOMI level is not reached, an open primary fault (10) is set.  Similarly if MAXI is exceeded, MAXI fault is set (9).  The NOMI and MAXI values are software configurable to the ranges of 3A to 10.75A for NOMI and 6A to 21A for MAXI using the Motohawk MC33810 Spark DAC Set block, found in Module Configuration blocks.  &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810_DAC_Settings.PNG]]&lt;br /&gt;
&lt;br /&gt;
IGBT type channels use  MAXI and NOMI  (maximum and nominal current) levels for fault detection.   The MAXI and NOMI channels are shared for up to four spark outputs.   &amp;lt;font color = red&amp;gt; The diagnostics may not be reliable if the spark signals overlap.&amp;lt;/font color&amp;gt;  This normally is not an issue with the intended use for spark.  However, diagnotics would be impacted if driving a different load with a discrete output, for example, as the channels could overlap.&lt;br /&gt;
&lt;br /&gt;
NOMI and MAXI current is only used when the outputs are configured as IGBT pre-gate drivers. These do not apply if pregate driver is configured for a MOSFET (as in an LSO).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=red&amp;gt; NOMI fault detection requires a shutdown event and is not supported if the output is driven by a PWM or Discrete Output block.   Open circuit faults on IGBT spark outputs using discrete or PWM block and MC33810 IGBT type outputs will not be reported. &amp;lt;/font color&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Time to Nominal Current ====&lt;br /&gt;
The time to reach the nominal current level can be monitored by the application for control or diagnostics.   The [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2012bSP0/HTML/MotoHawk_lib_Blocks/TimetoNominalCurrentDefinition.html Time to Nominal Current Definition] block creates a resource that allows the last observed time to nominal load current diagnostic to be read. This block can be used directly to recover the time or the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2012bSP0/HTML/MotoHawk_lib_Blocks/TimetoNominalCurrent.html Time to Nominal Current] access block used, which references this block.&lt;br /&gt;
&lt;br /&gt;
[[Image: TimetoNOMIDefn.jpg]]&lt;br /&gt;
&lt;br /&gt;
==== Open Secondary Fault ====&lt;br /&gt;
In the event that the secondary is open, all of the stored energy in the ignition coil is dissipated by the IGBT.  Faults for open secondary can thus be reported by comparing the current on the primary to what is expected given that the secondary is discharging as expected.   Again, fault reporting assumes the IGBT output is driving an ignition coil, and incorrect fault reporting can occur when the device is driving something different  (ex. a solenoid or pump).&lt;br /&gt;
&lt;br /&gt;
==== Dwell Time ====&lt;br /&gt;
Dwell time is the duration of time that an ignition coil is allowed to change.   The MC33810 starts a timer from when the gate is turned ON.  If the dwell time is longer than the Max Dwell setting,  a Max Dwell fault can be set.  The Max Dwell fault (8) indicates that the channel was shutdown because of an over dwell situation.&lt;br /&gt;
&lt;br /&gt;
=== Monitoring Spark Duration ===&lt;br /&gt;
The spark duration can be monitored using the MotoHawk MC33810 [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2012bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationDefinition.html Spark Duration Definition] and [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2012bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationTrigger.html Spark Duration Trigger] blocks.&lt;br /&gt;
&lt;br /&gt;
The MC33810 Spark Duration Definition block must be used to select a resource for spark duration measurement.  Alternatively the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2012bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationGet.html Get MC33810 Spark Duration block] can be used. Only a single definition block may exist for each resource, but multiple Get MC33810 Spark Duration blocks may exist.  The Spark Duration outport recovers the last observed spark duration for the associated resource in microseconds. A negative value (-1) implies that the MC33810 did not measure a spark duration. Blocks like the MC33810 Spark Control Definition and the MC33810 Spark Fliter Set may need to be configured for the hardware so that it can reliably measure spark duration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Behavior Limitations'''&lt;br /&gt;
The MC33810 hardware measures the spark duration and exports it to the microcontroller via a single, shared SPKDUR signal. Multiple spark duration definition blocks that target different resources may share the same SPKDUR signal. MotoHawk™ demultiplexes this signal when it is processed, but assumes that the behavior of excitation signal that generates the spark will be generated via PSP. Therefore this behavior will only work with PSP like behaviors including Dual PSP, Multiple PSP and the Spark Sequence blocks.&lt;br /&gt;
&lt;br /&gt;
The SPKDUR signal that the microcontroller interprets to obtain spark duration may also be made available in a raw form via the Input Capture block. Spark duration will be reported if this block is configured to trigger on the rising edge. The Input Capture block may not coexist with the MC33810 Spark Duration block. Use the Input Capture block to construct an application specific spark duration capture mechanism when behaviors besides PSP are to be used.&lt;br /&gt;
&lt;br /&gt;
There is also a [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2012bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationTrigger.html MC33810 Spark Duration Trigger block] that allows the model to be notified when a spark duration event for the referenced resource is observed. &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810SparkDurationTrigger.png]]&lt;br /&gt;
&lt;br /&gt;
Note that the spark duration trigger will occur after the excitation (dwelling) event concludes (spark is initiated by the conclusion of the excitation event). Thus it quite likely that a trigger block like the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2012bSP0/HTML/MotoHawk_lib_Blocks/PSPEndTrigger.html PSP End Trigger] will execute before the spark associated with that excitation event has completed. In such a situation the reported spark duration will still be for the previous excitation rather than the excitation that just occurred.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MOSFET (GPGD) Predriver Type ==&lt;br /&gt;
The MC33810 pregate driver can also be configured for MOSFET type.  This is determined by the type of output pin used in the model and cannot be changed by the application.  &lt;br /&gt;
&lt;br /&gt;
When configured as a GPGD type, the following faults can be reported:&lt;br /&gt;
&lt;br /&gt;
(0) No faults observed&lt;br /&gt;
&lt;br /&gt;
(5) Open detected. Channel is GPGD type.&lt;br /&gt;
&lt;br /&gt;
(6) Short detected. Channel is GPGD type.&lt;br /&gt;
&lt;br /&gt;
Again, the fault state is reported through the IO Fault Status block, and additional detail on the LAST fault observed can be obtained through the MC33810 Fault Detail Block.  Open load can be detected when the output is off, and short to battery faults detected when the output is on.&lt;br /&gt;
&lt;br /&gt;
The fault reporting of a GPGD type output is configured by using the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810GPGDFaultConfig.html Motohawk MC33810 GPGD Fault Configuration Block].  This block allows the fault configuration of a GPGD style MC33810 output to be applied.&lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810GPGDFaultConfig.png]]&lt;br /&gt;
&lt;br /&gt;
Retry defines whether an output that has been shutdown because of a detected short circuit will attempt to assert again without first having be turned off by the application.&lt;br /&gt;
&lt;br /&gt;
Short Voltage defines the drain source voltage that triggers a short circuit. Values between 0.5V and 3V are supported by the device.&lt;br /&gt;
&lt;br /&gt;
Short time defines how long the drain source voltage must be above the threshold before a fault is triggered. Values between 30us and 960us are supported by the device.&lt;br /&gt;
&lt;br /&gt;
The default 2.5V MC33810 setting is applied for unconnected or &amp;quot;grounded&amp;quot; inputs.&lt;br /&gt;
&lt;br /&gt;
== General Gate Driver Outputs ==&lt;br /&gt;
The following faults can be reported for the general gate driver outputs (OUT channels).  &lt;br /&gt;
&lt;br /&gt;
(0) No faults observed &amp;lt;br&amp;gt;&lt;br /&gt;
(1) Open detected while asserted. &amp;lt;br&amp;gt;&lt;br /&gt;
(2) Open detected while not-asserted. &amp;lt;br&amp;gt;&lt;br /&gt;
(3) Short to battery. &amp;lt;br&amp;gt;&lt;br /&gt;
(4) Temperature limit shutdown. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The general gate drivers have the capability to detect an open circuit condition even while the drive is asserted. However, there are often requirements on the load that must be met before the diagnostic will operate reliably. The [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/OpenLoadWhileAssertedConfiguration.html Open Load While Asserted Configuration] block allows the application to define whether this diagnostic should be used.&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=MC33810_Blocks&amp;diff=4021</id>
		<title>MC33810 Blocks</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=MC33810_Blocks&amp;diff=4021"/>
		<updated>2016-03-22T01:32:43Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* MOSFET (GPGD) Predriver Type */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some modules use the MC33810 as the driver for their LSO and/or Spark Outputs.  MotoHawk contains a blockset of MC33810 configuration and diagnostic blocks that can be used to enable the additional current control and diagnostic capabilities of the MC33810 chip. &lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
The MC33810 is used on:&amp;lt;br&amp;gt;&lt;br /&gt;
* [[70-pin_Module_Family#ECM-S12X-70|ECM-S12X-70]] &amp;lt;br&amp;gt;&lt;br /&gt;
* [[ECM-OH|ECM-564x-112]] (ECM-OH)&lt;br /&gt;
&lt;br /&gt;
== Diagnostics ==&lt;br /&gt;
The MC33810 has three types of outputs.   There are four low side gate drivers and four pre-gate drivers that can function either as ignition IGBT or general purpose MOSFET gate pre-drivers.    The fault reporting will depend on which outputs of the MC33810 are being used and whether the pregate drivers are configured for IGBT or MOSFET.&lt;br /&gt;
&lt;br /&gt;
'''Note:'''  When configured for an IGBT (typically on the ECU spark outputs) the driver diagnostics assume that the load will be an ignition coil.  Diagnostics for other loads using the IGBT spark outputs may be impacted. &lt;br /&gt;
&lt;br /&gt;
=== Output Types ===&lt;br /&gt;
'''OUT Type''':  General low side gate drivers &amp;lt;br&amp;gt;&lt;br /&gt;
'''GPGD Type''':  Pregate driver configured for a MOSFET &amp;lt;br&amp;gt;&lt;br /&gt;
'''IGBT Type''':  Pregate driver configured for an IGBT&lt;br /&gt;
&lt;br /&gt;
=== Possible Faults Reported by MotoHawk from the MC33810 ===&lt;br /&gt;
&lt;br /&gt;
The fault detail is reported by the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2013aBeta4/HTML/MotoHawk_lib_Blocks/MC33810FaultDetail.html MotoHawk MC33810 Fault Detail] block.  This block can report the LAST reported fault of the following faults.  The faults that can be reported depend on the type of MC33810 output as well as the MotoHawk block used for the output.  &lt;br /&gt;
&lt;br /&gt;
[[image:MC33810FaultDetail.png]]&lt;br /&gt;
&lt;br /&gt;
The [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2013aBeta4/HTML/MotoHawk_lib_Blocks/IOFaultStatus.html IO Fault Status block] must be used with the IO Fault Detail block because the MC33810 fault detail block reports the last reported fault.  It will continue to report a fault after the fault condition has cleared, and is intended only to give additional detail to the application.&lt;br /&gt;
&lt;br /&gt;
(0) No faults observed &amp;lt;br&amp;gt;&lt;br /&gt;
(1) Open detected while asserted. Channel is OUT type &amp;lt;br&amp;gt;&lt;br /&gt;
(2) Open detected while not-asserted. Channel is OUT type&amp;lt;br&amp;gt;&lt;br /&gt;
(3) Short to battery. Channel is OUT type&amp;lt;br&amp;gt;&lt;br /&gt;
(4) Temperature limit shutdown. Channel is OUT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(5) Open detected. Channel is GPGD type.&amp;lt;br&amp;gt;&lt;br /&gt;
(6) Short detected. Channel is GPGD type.&amp;lt;br&amp;gt;&lt;br /&gt;
(7) Open secondary detected. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(8) Max dwell shutdown. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(9) MAXI current observed. Channel is IGBT type.&amp;lt;br&amp;gt;&lt;br /&gt;
(10) Open primary (Nominal current not attained). Channel is IGBT type.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IGBT PreGate Drivers ==&lt;br /&gt;
&lt;br /&gt;
'''When these pregate driver (FB0,1,2,or 3) outputs of the MC33810 are configured as IGBT pregate drives, the output expects that they will be used to drive an ignition coil.'''   These would be typical on ECU spark outputs that use the MC33810.  &lt;br /&gt;
&lt;br /&gt;
When configured for IGBT type, the following faults can be detected:&amp;lt;br&amp;gt;&lt;br /&gt;
(0) No faults observed&amp;lt;br&amp;gt;&lt;br /&gt;
(7) Open secondary detected. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(8) Max dwell shutdown. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(9) MAXI current observed. Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
(10) Open primary (Nominal current not attained). Channel is IGBT type. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MC33810 Spark Control Definition ==&lt;br /&gt;
The MC33810 Spark Control Definition block must first be placed in the model to define the global configurations of the MC33810 IC that relate to IGBT control.  There will be one block for each MC33810 driver chip.  &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810_Spark_Control_Definition.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The fault diagnostics of these outputs are then enabled through the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2013aBeta4/HTML/motohawk_blocks.html MC33810 Spark Fault Definition] block.   The Spark Resource (pin) is selected. &lt;br /&gt;
&lt;br /&gt;
==== NOMI and MAXI Thresholds ====&lt;br /&gt;
The IGBT pregate drivers use the nominal current value (or NOMI, where I=current) for detection of an open circuit on the ignition coil primary side.  The current is also compared to a maximum current value, or MAXI.  The MC33810 compares the expected values for NOMI and MAXI across a current sense resistor.  If the NOMI level is not reached, an open primary fault (10) is set.  Similarly if MAXI is exceeded, MAXI fault is set (9).  The NOMI and MAXI values are software configurable to the ranges of 3A to 10.75A for NOMI and 6A to 21A for MAXI using the Motohawk MC33810 Spark DAC Set block, found in Module Configuration blocks.  &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810_DAC_Settings.PNG]]&lt;br /&gt;
&lt;br /&gt;
IGBT type channels use  MAXI and NOMI  (maximum and nominal current) levels for fault detection.   The MAXI and NOMI channels are shared for up to four spark outputs.   &amp;lt;font color = red&amp;gt; The diagnostics may not be reliable if the spark signals overlap.&amp;lt;/font color&amp;gt;  This normally is not an issue with the intended use for spark.  However, diagnotics would be impacted if driving a different load with a discrete output, for example, as the channels could overlap.&lt;br /&gt;
&lt;br /&gt;
NOMI and MAXI current is only used when the outputs are configured as IGBT pre-gate drivers. These do not apply if pregate driver is configured for a MOSFET (as in an LSO).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=red&amp;gt; NOMI fault detection requires a shutdown event and is not supported if the output is driven by a PWM or Discrete Output block.   Open circuit faults on IGBT spark outputs using discrete or PWM block and MC33810 IGBT type outputs will not be reported. &amp;lt;/font color&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Time to Nominal Current ====&lt;br /&gt;
The time to reach the nominal current level can be monitored by the application for control or diagnostics.   The [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2012bSP0/HTML/MotoHawk_lib_Blocks/TimetoNominalCurrentDefinition.html Time to Nominal Current Definition] block creates a resource that allows the last observed time to nominal load current diagnostic to be read. This block can be used directly to recover the time or the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2012bSP0/HTML/MotoHawk_lib_Blocks/TimetoNominalCurrent.html Time to Nominal Current] access block used, which references this block.&lt;br /&gt;
&lt;br /&gt;
[[Image: TimetoNOMIDefn.jpg]]&lt;br /&gt;
&lt;br /&gt;
==== Open Secondary Fault ====&lt;br /&gt;
In the event that the secondary is open, all of the stored energy in the ignition coil is dissipated by the IGBT.  Faults for open secondary can thus be reported by comparing the current on the primary to what is expected given that the secondary is discharging as expected.   Again, fault reporting assumes the IGBT output is driving an ignition coil, and incorrect fault reporting can occur when the device is driving something different  (ex. a solenoid or pump).&lt;br /&gt;
&lt;br /&gt;
==== Dwell Time ====&lt;br /&gt;
Dwell time is the duration of time that an ignition coil is allowed to change.   The MC33810 starts a timer from when the gate is turned ON.  If the dwell time is longer than the Max Dwell setting,  a Max Dwell fault can be set.  The Max Dwell fault (8) indicates that the channel was shutdown because of an over dwell situation.&lt;br /&gt;
&lt;br /&gt;
=== Monitoring Spark Duration ===&lt;br /&gt;
The spark duration can be monitored using the MotoHawk MC33810 [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2012bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationDefinition.html Spark Duration Definition] and [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2012bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationTrigger.html Spark Duration Trigger] blocks.&lt;br /&gt;
&lt;br /&gt;
The MC33810 Spark Duration Definition block must be used to select a resource for spark duration measurement.  Alternatively the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2012bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationGet.html Get MC33810 Spark Duration block] can be used. Only a single definition block may exist for each resource, but multiple Get MC33810 Spark Duration blocks may exist.  The Spark Duration outport recovers the last observed spark duration for the associated resource in microseconds. A negative value (-1) implies that the MC33810 did not measure a spark duration. Blocks like the MC33810 Spark Control Definition and the MC33810 Spark Fliter Set may need to be configured for the hardware so that it can reliably measure spark duration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Behavior Limitations'''&lt;br /&gt;
The MC33810 hardware measures the spark duration and exports it to the microcontroller via a single, shared SPKDUR signal. Multiple spark duration definition blocks that target different resources may share the same SPKDUR signal. MotoHawk™ demultiplexes this signal when it is processed, but assumes that the behavior of excitation signal that generates the spark will be generated via PSP. Therefore this behavior will only work with PSP like behaviors including Dual PSP, Multiple PSP and the Spark Sequence blocks.&lt;br /&gt;
&lt;br /&gt;
The SPKDUR signal that the microcontroller interprets to obtain spark duration may also be made available in a raw form via the Input Capture block. Spark duration will be reported if this block is configured to trigger on the rising edge. The Input Capture block may not coexist with the MC33810 Spark Duration block. Use the Input Capture block to construct an application specific spark duration capture mechanism when behaviors besides PSP are to be used.&lt;br /&gt;
&lt;br /&gt;
There is also a [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2012bSP0/HTML/MotoHawk_lib_Blocks/MC33810SparkDurationTrigger.html MC33810 Spark Duration Trigger block] that allows the model to be notified when a spark duration event for the referenced resource is observed. &lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810SparkDurationTrigger.png]]&lt;br /&gt;
&lt;br /&gt;
Note that the spark duration trigger will occur after the excitation (dwelling) event concludes (spark is initiated by the conclusion of the excitation event). Thus it quite likely that a trigger block like the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2012bSP0/HTML/MotoHawk_lib_Blocks/PSPEndTrigger.html PSP End Trigger] will execute before the spark associated with that excitation event has completed. In such a situation the reported spark duration will still be for the previous excitation rather than the excitation that just occurred.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MOSFET (GPGD) Predriver Type ==&lt;br /&gt;
The MC33810 pregate driver can also be configured for MOSFET type.  This is determined by the type of output pin used in the model and cannot be changed by the application.  &lt;br /&gt;
&lt;br /&gt;
When configured as a GPGD type, the following faults can be reported:&lt;br /&gt;
&lt;br /&gt;
(0) No faults observed&lt;br /&gt;
&lt;br /&gt;
(5) Open detected. Channel is GPGD type.&lt;br /&gt;
&lt;br /&gt;
(6) Short detected. Channel is GPGD type.&lt;br /&gt;
&lt;br /&gt;
Again, the fault state is reported through the IO Fault Status block, and additional detail on the LAST fault observed can be obtained through the MC33810 Fault Detail Block.  Open load can be detected when the output is off, and short to battery faults detected when the output is on.&lt;br /&gt;
&lt;br /&gt;
The fault reporting of a GPGD type output is configured by using the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2015bSP0/HTML/MotoHawk_lib_Blocks/MC33810GPGDFaultConfig.html Motohawk MC33810 GPGD Fault Configuration Block].  This block allows the fault configuration of a GPGD style MC33810 output to be applied.&lt;br /&gt;
&lt;br /&gt;
[[Image: MC33810GPGDFaultConfig.png]]&lt;br /&gt;
&lt;br /&gt;
Retry defines whether an output that has been shutdown because of a detected short circuit will attempt to assert again without first having be turned off by the application.&lt;br /&gt;
&lt;br /&gt;
Short Voltage defines the drain source voltage that triggers a short circuit. Values between 0.5V and 3V are supported by the device.&lt;br /&gt;
&lt;br /&gt;
Short time defines how long the drain source voltage must be above the threshold before a fault is triggered. Values between 30us and 960us are supported by the device.&lt;br /&gt;
&lt;br /&gt;
The default 2.5V MC33810 setting is applied for unconnected or &amp;quot;grounded&amp;quot; inputs.&lt;br /&gt;
&lt;br /&gt;
== General Gate Driver Outputs ==&lt;br /&gt;
The following faults can be reported for the general gate driver outputs (OUT channels).  &lt;br /&gt;
&lt;br /&gt;
(0) No faults observed &amp;lt;br&amp;gt;&lt;br /&gt;
(1) Open detected while asserted. &amp;lt;br&amp;gt;&lt;br /&gt;
(2) Open detected while not-asserted. &amp;lt;br&amp;gt;&lt;br /&gt;
(3) Short to battery. &amp;lt;br&amp;gt;&lt;br /&gt;
(4) Temperature limit shutdown. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The general gate drivers have the capability to detect an open circuit condition even while the drive is asserted. However, there are often requirements on the load that must be met before the diagnostic will operate reliably. The [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2012bSP0/HTML/MotoHawk_lib_Blocks/OpenLoadWhileAssertedConfiguration.html Open Load While Asserted Configuration] block allows the application to define whether this diagnostic should be used.&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=Suitable_task_was_not_found_to_service&amp;diff=4013</id>
		<title>Suitable task was not found to service</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=Suitable_task_was_not_found_to_service&amp;diff=4013"/>
		<updated>2016-01-20T01:47:21Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: Explain how to resolve a Suitable task was not found to service error&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MotoCoder may generate a build error with the form:&lt;br /&gt;
ERROR: A suitable task was not found to service ''''HistogramLogBuffered'''' because no periodic application triggers execute at a rate of at least as fast as '''1000000us'''&lt;br /&gt;
&lt;br /&gt;
The bold text in quotes describes the device driver that is trying to be serviced and the time describes a periodic rate that the device driver wants to be able to execute at. The device driver requires periodic execution, but to execute periodically requires that the execution occur within a particular task. What task should the device driver use? MotoCoder attempts to discover what the most appropriate task is by scanning the periodic execution that is already occurring within a model and selecting the task with the lowest priority that already has a periodic trigger that is at least as fast as what the device driver requires. The error occurs because MotoCoder was unable to find a trigger that had an effective rate of execution that is at least as fast as what the device driver required in the MotoHawk model.&lt;br /&gt;
&lt;br /&gt;
To rectify add a trigger block connected to an empty subsystem that effectively does nothing. MotoCoder will find this trigger and use the task associated with this trigger to execute the device driver code.&lt;br /&gt;
&lt;br /&gt;
[[Category:MotoHawk Build Errors|Suitable task was not found to service]]&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=Compilers&amp;diff=3994</id>
		<title>Compilers</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=Compilers&amp;diff=3994"/>
		<updated>2015-10-23T08:30:50Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* GCC Compilers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Supported Compilers ==&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
!Module / Family &lt;br /&gt;
!Green Hills Compiler 3.6&lt;br /&gt;
!Green Hills Compiler 4.2.1&lt;br /&gt;
!Green Hills Compiler 4.2.4&lt;br /&gt;
!GCC 4.4.0SP1&lt;br /&gt;
!GCC 4.6.0&lt;br /&gt;
!CodeWarrior 4.6&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|GCM-0S12-024 &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X &lt;br /&gt;
|-&lt;br /&gt;
|ECM-S12X-70&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X &lt;br /&gt;
|-&lt;br /&gt;
|ECM-0S12-024&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X &lt;br /&gt;
|-&lt;br /&gt;
|ECM-5554-112&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECM-564x-112&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECM-5634M-70&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HCM-0563-48&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GCM-0563-48 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECM-0563-48&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GCM-0565-024 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
||ECU-0565-128 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECU-0555-80 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECU-0555-48 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECM-3R&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GCC Compilers ==&lt;br /&gt;
&lt;br /&gt;
GCC is a free open source GNU compiler that can be used with the MCS floating point PowerPC ECUs.&lt;br /&gt;
&lt;br /&gt;
GCC Cannot be used with the S12/S12X modules.  CodeWarrior is required.&lt;br /&gt;
&lt;br /&gt;
'''MotoHawk Version Requirements:'''&lt;br /&gt;
Support for the GCC compilers was added in MotoHawk 2009b SP0.  MotoHawk versions lower than 2009b SP0 must use the Greenhills compiler.&lt;br /&gt;
Motohawk 2009b through 2011a supports GCC 4.4.0 SP1&lt;br /&gt;
Beginning in 2011b, support for GCC 4.4.0 SP1 was replaced by GCC 4.6.0&lt;br /&gt;
&lt;br /&gt;
The GCC compilers can be downloaded from the Woodward Software Products [http://www.woodward.com/software.aspx here]. Enter GCC as the search item. This should then reveal the available GCC downloads.&lt;br /&gt;
&lt;br /&gt;
'''eabi vs eabi SPE'''&lt;br /&gt;
''There are two GCC compilers.''&lt;br /&gt;
* GCC PowerPC eabi is for use with the MPC 5xx processors, such as the GCM/HCM/ECM-0563-48, ECM-555-080, ECM-555-48, and ECM-0565-128 modules.&lt;br /&gt;
* GCC PowerPC eabi '''SPE''' is for use with the MPC 5xxx processors, such as the ECM-5554-112 module.&lt;br /&gt;
&lt;br /&gt;
== Green Hills Compiler ==&lt;br /&gt;
&lt;br /&gt;
The Green Hills Compiler (GHS) is a part of the installed program requirements for using MotoHawk. GHC is used with MATLAB and MotoHawk for the purpose of helping compile the programs to be used with targeted MotoHawk ECMs. GHS is useful for compiling programs for the ECMs featuring the Freescale 5xx and 55xx processors.&lt;br /&gt;
&lt;br /&gt;
== Green Hills Compiler Installation ==&lt;br /&gt;
To install the GHC application from a CD: &lt;br /&gt;
&lt;br /&gt;
#Insert CD in drive. Click Start-&amp;gt;Run and double-click Setup.exe. &amp;lt;BR&amp;gt;Follow on-screen instructions. (try to leave the default install directory) &amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
#If you do not already have a license launch the License Request Generator:&amp;lt;BR&amp;gt;In Windows, select '''Start-&amp;gt;All Programs-&amp;gt;Multi2000, PowerPC v3.6-&amp;gt;Licensing-&amp;gt;License Request Generator'''&amp;lt;BR&amp;gt;You may want to request an evaluation license initially. This will help get you started faster.&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
#If you have a license run the License installer:&amp;lt;BR&amp;gt;In Windows, select '''Start-&amp;gt;All Programs-&amp;gt;Multi2000, PowerPC v3.6-&amp;gt;Licensing-&amp;gt;Install Licenses'''&amp;lt;BR&amp;gt;&lt;br /&gt;
#Select your .key file and then install all the licenses. &amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using GHS ==&lt;br /&gt;
&lt;br /&gt;
Before using GHC with MotoHawk, there are a few items to consider: &lt;br /&gt;
* If targeted, the 5xx-based processors default to using GHS 3.6, although they work with later versions(4.2.1). &lt;br /&gt;
* The 55xx-based  processors default to using GHS 4.2.1 and will work with later versions, but will not work with GHS 3.6. &lt;br /&gt;
* '''If you are using GHS version 4.2.1''', you will need to specify the License Manager. To do this, you would create and set an environment variable GHS_LMWHICH and set its value to &amp;quot;elan.&amp;quot;&amp;lt;BR&amp;gt;* If you are not going to use the default compiler version you will need to set an environment variable. Set GHS_DIR to the directory which has the compiler you want to use; the default for 4.2.1 is &amp;quot;C:\GHS\ppc421&amp;quot;  (other versions follow this naming convention).&lt;br /&gt;
* There is also a Tool Chain block in MotoHawk that will allow you to select which compiler to use, if necessary. Find it using Simulink Library Browser; it is located in the MotoHawk-&amp;gt;Build library.&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
'''Note:'''  To set an environment variable:&amp;lt;BR&amp;gt;In Windows, select '''Start-&amp;gt;(right-click)My Computer-&amp;gt;Properties-&amp;gt;Advanced tab-&amp;gt;Environment Variables''', then click on New, and fill in the Variable name and value, then click OK.&lt;br /&gt;
&lt;br /&gt;
== Common GHS Issues ==&lt;br /&gt;
*Matlab returns an error ===Green Hills Compiler License Not Available===&amp;lt;BR&amp;gt;&lt;br /&gt;
#Check that GHS purple dongle is plugged in&lt;br /&gt;
#Check that GHS_DIR is pointing to the correct compiler directory&lt;br /&gt;
#Check that the license is installed correctly&lt;br /&gt;
&lt;br /&gt;
*At install of the license a warning box pops up saying Server Code Mismatch:&amp;lt;BR&amp;gt;&lt;br /&gt;
:The license you specified were created for a different server code. Your server code has either changed since you requested your license, or you are trying to install them on the wrong machine. Please consult the documentation or contact the Green Hills license administrator for assistance.&lt;br /&gt;
# Verify that the USB or parallel port is working correctly.&lt;br /&gt;
# Log in as Administrator&lt;br /&gt;
# Unplug the key(s).&lt;br /&gt;
# Remove the old Sentinel Protection Server/Driver/Combo and reinstall the Sentinel Protection Installer.  Go to Start &amp;gt; Settings &amp;gt; Control Panel &amp;gt; Add or Remove Programs (Vista is Programs and Features).  Select both the Sentinel Protection Installer and Sentinel System Driver, and then click Remove.&lt;br /&gt;
# Shut Down and Restart the computer system&lt;br /&gt;
# Download and install the new Sentinel Protection Installer at http://www.safenet-inc.com/support/tech/latestdriver.asp.  NOTE: If you are using Standalone applications, you can do the custom install and you can uncheck Server from the installation.  The Sentinel Keys Server only needs to be installed on a SHK key server computer.  The Sentinel Protection Server only needs to be installed on a SuperPro and/or UltraPro key server computer.&lt;br /&gt;
# Plug in the key(s).&lt;br /&gt;
# Download the Medic utility http://www.safenet-inc.com/support/files/SuperproMedic.exe or http://www.safenet-inc.com/support/files/sam1.2.exe and run it to make sure the key(s) is being detected correctly.  Medic does not detect the 64-bit operating system version correctly.  If Medic detects the key, then the computer, operating system, port, key and driver are working correctly.&lt;br /&gt;
&lt;br /&gt;
== CodeWarrior Installation ==&lt;br /&gt;
To install the CodeWarrior application from a CD: &lt;br /&gt;
&lt;br /&gt;
#Insert CD in drive. Click Start-&amp;gt;Run and double-click Setup.exe. &amp;lt;BR&amp;gt;Follow on-screen instructions. (try to leave the default install directory) &amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
== Using CodeWarrior ==&lt;br /&gt;
&lt;br /&gt;
Before using CodeWarrior with MotoHawk, there are a few items to consider: &lt;br /&gt;
* The S12 processors default to using CodeWarrior 4.6 and will not work with later versions. The [http://www.freescale.com/webapp/sps/site/overview.jsp?code=CW_LEGACY&amp;amp;fsrch=1&amp;amp;sr=1&amp;amp;pageNum=1 Freescale legacy downloads] page may provide an avenue to obtain CodeWarrior 4.6. A Freescale Service Request could also be used to request this version.&lt;br /&gt;
* If you are not going to use the default compiler version you will need to set an environment variable. Set CW_DIR to the directory which has the compiler you want to use; the default for 4.7 is &amp;quot;C:\Program Files\Freescale\CodeWarrior for HCS12 V4.7&amp;quot;  (other versions follow this naming convention).&lt;br /&gt;
* There is also a Tool Chain block in MotoHawk that will allow you to select which compiler to use, if necessary. Find it using Simulink Library Browser; it is located in the MotoHawk-&amp;gt;Build library.&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
'''Note:'''  To set an environment variable:&amp;lt;BR&amp;gt;In Windows, select '''Start-&amp;gt;(right-click)My Computer-&amp;gt;Properties-&amp;gt;Advanced tab-&amp;gt;Environment Variables''', then click on New, and fill in the Variable name and value, then click OK.&lt;br /&gt;
&lt;br /&gt;
If you are using CodeWarrior on a 64-bit machine, select 'Custom' install and de-select to install Debugging.&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=Compilers&amp;diff=3993</id>
		<title>Compilers</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=Compilers&amp;diff=3993"/>
		<updated>2015-10-23T08:29:46Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Supported Compilers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Supported Compilers ==&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
!Module / Family &lt;br /&gt;
!Green Hills Compiler 3.6&lt;br /&gt;
!Green Hills Compiler 4.2.1&lt;br /&gt;
!Green Hills Compiler 4.2.4&lt;br /&gt;
!GCC 4.4.0SP1&lt;br /&gt;
!GCC 4.6.0&lt;br /&gt;
!CodeWarrior 4.6&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|GCM-0S12-024 &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X &lt;br /&gt;
|-&lt;br /&gt;
|ECM-S12X-70&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X &lt;br /&gt;
|-&lt;br /&gt;
|ECM-0S12-024&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X &lt;br /&gt;
|-&lt;br /&gt;
|ECM-5554-112&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECM-564x-112&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECM-5634M-70&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HCM-0563-48&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GCM-0563-48 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECM-0563-48&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GCM-0565-024 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
||ECU-0565-128 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECU-0555-80 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECU-0555-48 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECM-3R&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GCC Compilers ==&lt;br /&gt;
&lt;br /&gt;
GCC is a free open source GNU compiler that can be used with the MCS floating point PowerPC ECUs.  It is recommended that Greenhills be used for any production or production intent program.&lt;br /&gt;
&lt;br /&gt;
GCC Cannot be used with the S12/S12X modules.  CodeWarrior is required.&lt;br /&gt;
&lt;br /&gt;
'''MotoHawk Version Requirements:'''&lt;br /&gt;
Support for the GCC compilers was added in MotoHawk 2009b SP0.  MotoHawk versions lower than 2009b SP0 must use the Greenhills compiler.&lt;br /&gt;
Motohawk 2009b through 2011a supports GCC 4.4.0 SP1&lt;br /&gt;
Beginning in 2011b, support for GCC 4.4.0 SP1 was replaced by GCC 4.6.0&lt;br /&gt;
&lt;br /&gt;
The GCC compilers can be downloaded from the Woodward Software Products [http://www.woodward.com/software.aspx here]. Enter GCC as the search item. This should then reveal the available GCC downloads.&lt;br /&gt;
&lt;br /&gt;
'''eabi vs eabi SPE'''&lt;br /&gt;
''There are two GCC compilers.''&lt;br /&gt;
* GCC PowerPC eabi is for use with the MPC 5xx processors, such as the GCM/HCM/ECM-0563-48, ECM-555-080, ECM-555-48, and ECM-0565-128 modules.&lt;br /&gt;
* GCC PowerPC eabi '''SPE''' is for use with the MPC 5xxx processors, such as the ECM-5554-112 module.&lt;br /&gt;
&lt;br /&gt;
== Green Hills Compiler ==&lt;br /&gt;
&lt;br /&gt;
The Green Hills Compiler (GHS) is a part of the installed program requirements for using MotoHawk. GHC is used with MATLAB and MotoHawk for the purpose of helping compile the programs to be used with targeted MotoHawk ECMs. GHS is useful for compiling programs for the ECMs featuring the Freescale 5xx and 55xx processors.&lt;br /&gt;
&lt;br /&gt;
== Green Hills Compiler Installation ==&lt;br /&gt;
To install the GHC application from a CD: &lt;br /&gt;
&lt;br /&gt;
#Insert CD in drive. Click Start-&amp;gt;Run and double-click Setup.exe. &amp;lt;BR&amp;gt;Follow on-screen instructions. (try to leave the default install directory) &amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
#If you do not already have a license launch the License Request Generator:&amp;lt;BR&amp;gt;In Windows, select '''Start-&amp;gt;All Programs-&amp;gt;Multi2000, PowerPC v3.6-&amp;gt;Licensing-&amp;gt;License Request Generator'''&amp;lt;BR&amp;gt;You may want to request an evaluation license initially. This will help get you started faster.&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
#If you have a license run the License installer:&amp;lt;BR&amp;gt;In Windows, select '''Start-&amp;gt;All Programs-&amp;gt;Multi2000, PowerPC v3.6-&amp;gt;Licensing-&amp;gt;Install Licenses'''&amp;lt;BR&amp;gt;&lt;br /&gt;
#Select your .key file and then install all the licenses. &amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using GHS ==&lt;br /&gt;
&lt;br /&gt;
Before using GHC with MotoHawk, there are a few items to consider: &lt;br /&gt;
* If targeted, the 5xx-based processors default to using GHS 3.6, although they work with later versions(4.2.1). &lt;br /&gt;
* The 55xx-based  processors default to using GHS 4.2.1 and will work with later versions, but will not work with GHS 3.6. &lt;br /&gt;
* '''If you are using GHS version 4.2.1''', you will need to specify the License Manager. To do this, you would create and set an environment variable GHS_LMWHICH and set its value to &amp;quot;elan.&amp;quot;&amp;lt;BR&amp;gt;* If you are not going to use the default compiler version you will need to set an environment variable. Set GHS_DIR to the directory which has the compiler you want to use; the default for 4.2.1 is &amp;quot;C:\GHS\ppc421&amp;quot;  (other versions follow this naming convention).&lt;br /&gt;
* There is also a Tool Chain block in MotoHawk that will allow you to select which compiler to use, if necessary. Find it using Simulink Library Browser; it is located in the MotoHawk-&amp;gt;Build library.&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
'''Note:'''  To set an environment variable:&amp;lt;BR&amp;gt;In Windows, select '''Start-&amp;gt;(right-click)My Computer-&amp;gt;Properties-&amp;gt;Advanced tab-&amp;gt;Environment Variables''', then click on New, and fill in the Variable name and value, then click OK.&lt;br /&gt;
&lt;br /&gt;
== Common GHS Issues ==&lt;br /&gt;
*Matlab returns an error ===Green Hills Compiler License Not Available===&amp;lt;BR&amp;gt;&lt;br /&gt;
#Check that GHS purple dongle is plugged in&lt;br /&gt;
#Check that GHS_DIR is pointing to the correct compiler directory&lt;br /&gt;
#Check that the license is installed correctly&lt;br /&gt;
&lt;br /&gt;
*At install of the license a warning box pops up saying Server Code Mismatch:&amp;lt;BR&amp;gt;&lt;br /&gt;
:The license you specified were created for a different server code. Your server code has either changed since you requested your license, or you are trying to install them on the wrong machine. Please consult the documentation or contact the Green Hills license administrator for assistance.&lt;br /&gt;
# Verify that the USB or parallel port is working correctly.&lt;br /&gt;
# Log in as Administrator&lt;br /&gt;
# Unplug the key(s).&lt;br /&gt;
# Remove the old Sentinel Protection Server/Driver/Combo and reinstall the Sentinel Protection Installer.  Go to Start &amp;gt; Settings &amp;gt; Control Panel &amp;gt; Add or Remove Programs (Vista is Programs and Features).  Select both the Sentinel Protection Installer and Sentinel System Driver, and then click Remove.&lt;br /&gt;
# Shut Down and Restart the computer system&lt;br /&gt;
# Download and install the new Sentinel Protection Installer at http://www.safenet-inc.com/support/tech/latestdriver.asp.  NOTE: If you are using Standalone applications, you can do the custom install and you can uncheck Server from the installation.  The Sentinel Keys Server only needs to be installed on a SHK key server computer.  The Sentinel Protection Server only needs to be installed on a SuperPro and/or UltraPro key server computer.&lt;br /&gt;
# Plug in the key(s).&lt;br /&gt;
# Download the Medic utility http://www.safenet-inc.com/support/files/SuperproMedic.exe or http://www.safenet-inc.com/support/files/sam1.2.exe and run it to make sure the key(s) is being detected correctly.  Medic does not detect the 64-bit operating system version correctly.  If Medic detects the key, then the computer, operating system, port, key and driver are working correctly.&lt;br /&gt;
&lt;br /&gt;
== CodeWarrior Installation ==&lt;br /&gt;
To install the CodeWarrior application from a CD: &lt;br /&gt;
&lt;br /&gt;
#Insert CD in drive. Click Start-&amp;gt;Run and double-click Setup.exe. &amp;lt;BR&amp;gt;Follow on-screen instructions. (try to leave the default install directory) &amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
== Using CodeWarrior ==&lt;br /&gt;
&lt;br /&gt;
Before using CodeWarrior with MotoHawk, there are a few items to consider: &lt;br /&gt;
* The S12 processors default to using CodeWarrior 4.6 and will not work with later versions. The [http://www.freescale.com/webapp/sps/site/overview.jsp?code=CW_LEGACY&amp;amp;fsrch=1&amp;amp;sr=1&amp;amp;pageNum=1 Freescale legacy downloads] page may provide an avenue to obtain CodeWarrior 4.6. A Freescale Service Request could also be used to request this version.&lt;br /&gt;
* If you are not going to use the default compiler version you will need to set an environment variable. Set CW_DIR to the directory which has the compiler you want to use; the default for 4.7 is &amp;quot;C:\Program Files\Freescale\CodeWarrior for HCS12 V4.7&amp;quot;  (other versions follow this naming convention).&lt;br /&gt;
* There is also a Tool Chain block in MotoHawk that will allow you to select which compiler to use, if necessary. Find it using Simulink Library Browser; it is located in the MotoHawk-&amp;gt;Build library.&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
'''Note:'''  To set an environment variable:&amp;lt;BR&amp;gt;In Windows, select '''Start-&amp;gt;(right-click)My Computer-&amp;gt;Properties-&amp;gt;Advanced tab-&amp;gt;Environment Variables''', then click on New, and fill in the Variable name and value, then click OK.&lt;br /&gt;
&lt;br /&gt;
If you are using CodeWarrior on a 64-bit machine, select 'Custom' install and de-select to install Debugging.&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=Compilers&amp;diff=3992</id>
		<title>Compilers</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=Compilers&amp;diff=3992"/>
		<updated>2015-10-23T08:25:39Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* GCC Compilers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Supported Compilers ==&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
!Module / Family &lt;br /&gt;
!Green Hills Compiler 3.6&lt;br /&gt;
!Green Hills Compiler 4.2.1&lt;br /&gt;
!Green Hills Compiler 4.2.4&lt;br /&gt;
!GCC 4.4.0SP1&lt;br /&gt;
!GCC 4.6.0&lt;br /&gt;
!CodeWarrior 4.6&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|GCM-0S12-024 &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X &lt;br /&gt;
|-&lt;br /&gt;
|ECM-S12X-70&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X &lt;br /&gt;
|-&lt;br /&gt;
|ECM-0S12-024&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X &lt;br /&gt;
|-&lt;br /&gt;
|ECM-5554-112&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HCM-0563-48&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GCM-0563-48 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECM-0563-48&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GCM-0565-024 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
||ECU-0565-128 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECU-0555-80 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECU-0555-48 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECM-3R&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GCC Compilers ==&lt;br /&gt;
&lt;br /&gt;
GCC is a free open source GNU compiler that can be used with the MCS floating point PowerPC ECUs.  It is recommended that Greenhills be used for any production or production intent program.&lt;br /&gt;
&lt;br /&gt;
GCC Cannot be used with the S12/S12X modules.  CodeWarrior is required.&lt;br /&gt;
&lt;br /&gt;
'''MotoHawk Version Requirements:'''&lt;br /&gt;
Support for the GCC compilers was added in MotoHawk 2009b SP0.  MotoHawk versions lower than 2009b SP0 must use the Greenhills compiler.&lt;br /&gt;
Motohawk 2009b through 2011a supports GCC 4.4.0 SP1&lt;br /&gt;
Beginning in 2011b, support for GCC 4.4.0 SP1 was replaced by GCC 4.6.0&lt;br /&gt;
&lt;br /&gt;
The GCC compilers can be downloaded from the Woodward Software Products [http://www.woodward.com/software.aspx here]. Enter GCC as the search item. This should then reveal the available GCC downloads.&lt;br /&gt;
&lt;br /&gt;
'''eabi vs eabi SPE'''&lt;br /&gt;
''There are two GCC compilers.''&lt;br /&gt;
* GCC PowerPC eabi is for use with the MPC 5xx processors, such as the GCM/HCM/ECM-0563-48, ECM-555-080, ECM-555-48, and ECM-0565-128 modules.&lt;br /&gt;
* GCC PowerPC eabi '''SPE''' is for use with the MPC 5xxx processors, such as the ECM-5554-112 module.&lt;br /&gt;
&lt;br /&gt;
== Green Hills Compiler ==&lt;br /&gt;
&lt;br /&gt;
The Green Hills Compiler (GHS) is a part of the installed program requirements for using MotoHawk. GHC is used with MATLAB and MotoHawk for the purpose of helping compile the programs to be used with targeted MotoHawk ECMs. GHS is useful for compiling programs for the ECMs featuring the Freescale 5xx and 55xx processors.&lt;br /&gt;
&lt;br /&gt;
== Green Hills Compiler Installation ==&lt;br /&gt;
To install the GHC application from a CD: &lt;br /&gt;
&lt;br /&gt;
#Insert CD in drive. Click Start-&amp;gt;Run and double-click Setup.exe. &amp;lt;BR&amp;gt;Follow on-screen instructions. (try to leave the default install directory) &amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
#If you do not already have a license launch the License Request Generator:&amp;lt;BR&amp;gt;In Windows, select '''Start-&amp;gt;All Programs-&amp;gt;Multi2000, PowerPC v3.6-&amp;gt;Licensing-&amp;gt;License Request Generator'''&amp;lt;BR&amp;gt;You may want to request an evaluation license initially. This will help get you started faster.&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
#If you have a license run the License installer:&amp;lt;BR&amp;gt;In Windows, select '''Start-&amp;gt;All Programs-&amp;gt;Multi2000, PowerPC v3.6-&amp;gt;Licensing-&amp;gt;Install Licenses'''&amp;lt;BR&amp;gt;&lt;br /&gt;
#Select your .key file and then install all the licenses. &amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using GHS ==&lt;br /&gt;
&lt;br /&gt;
Before using GHC with MotoHawk, there are a few items to consider: &lt;br /&gt;
* If targeted, the 5xx-based processors default to using GHS 3.6, although they work with later versions(4.2.1). &lt;br /&gt;
* The 55xx-based  processors default to using GHS 4.2.1 and will work with later versions, but will not work with GHS 3.6. &lt;br /&gt;
* '''If you are using GHS version 4.2.1''', you will need to specify the License Manager. To do this, you would create and set an environment variable GHS_LMWHICH and set its value to &amp;quot;elan.&amp;quot;&amp;lt;BR&amp;gt;* If you are not going to use the default compiler version you will need to set an environment variable. Set GHS_DIR to the directory which has the compiler you want to use; the default for 4.2.1 is &amp;quot;C:\GHS\ppc421&amp;quot;  (other versions follow this naming convention).&lt;br /&gt;
* There is also a Tool Chain block in MotoHawk that will allow you to select which compiler to use, if necessary. Find it using Simulink Library Browser; it is located in the MotoHawk-&amp;gt;Build library.&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
'''Note:'''  To set an environment variable:&amp;lt;BR&amp;gt;In Windows, select '''Start-&amp;gt;(right-click)My Computer-&amp;gt;Properties-&amp;gt;Advanced tab-&amp;gt;Environment Variables''', then click on New, and fill in the Variable name and value, then click OK.&lt;br /&gt;
&lt;br /&gt;
== Common GHS Issues ==&lt;br /&gt;
*Matlab returns an error ===Green Hills Compiler License Not Available===&amp;lt;BR&amp;gt;&lt;br /&gt;
#Check that GHS purple dongle is plugged in&lt;br /&gt;
#Check that GHS_DIR is pointing to the correct compiler directory&lt;br /&gt;
#Check that the license is installed correctly&lt;br /&gt;
&lt;br /&gt;
*At install of the license a warning box pops up saying Server Code Mismatch:&amp;lt;BR&amp;gt;&lt;br /&gt;
:The license you specified were created for a different server code. Your server code has either changed since you requested your license, or you are trying to install them on the wrong machine. Please consult the documentation or contact the Green Hills license administrator for assistance.&lt;br /&gt;
# Verify that the USB or parallel port is working correctly.&lt;br /&gt;
# Log in as Administrator&lt;br /&gt;
# Unplug the key(s).&lt;br /&gt;
# Remove the old Sentinel Protection Server/Driver/Combo and reinstall the Sentinel Protection Installer.  Go to Start &amp;gt; Settings &amp;gt; Control Panel &amp;gt; Add or Remove Programs (Vista is Programs and Features).  Select both the Sentinel Protection Installer and Sentinel System Driver, and then click Remove.&lt;br /&gt;
# Shut Down and Restart the computer system&lt;br /&gt;
# Download and install the new Sentinel Protection Installer at http://www.safenet-inc.com/support/tech/latestdriver.asp.  NOTE: If you are using Standalone applications, you can do the custom install and you can uncheck Server from the installation.  The Sentinel Keys Server only needs to be installed on a SHK key server computer.  The Sentinel Protection Server only needs to be installed on a SuperPro and/or UltraPro key server computer.&lt;br /&gt;
# Plug in the key(s).&lt;br /&gt;
# Download the Medic utility http://www.safenet-inc.com/support/files/SuperproMedic.exe or http://www.safenet-inc.com/support/files/sam1.2.exe and run it to make sure the key(s) is being detected correctly.  Medic does not detect the 64-bit operating system version correctly.  If Medic detects the key, then the computer, operating system, port, key and driver are working correctly.&lt;br /&gt;
&lt;br /&gt;
== CodeWarrior Installation ==&lt;br /&gt;
To install the CodeWarrior application from a CD: &lt;br /&gt;
&lt;br /&gt;
#Insert CD in drive. Click Start-&amp;gt;Run and double-click Setup.exe. &amp;lt;BR&amp;gt;Follow on-screen instructions. (try to leave the default install directory) &amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
== Using CodeWarrior ==&lt;br /&gt;
&lt;br /&gt;
Before using CodeWarrior with MotoHawk, there are a few items to consider: &lt;br /&gt;
* The S12 processors default to using CodeWarrior 4.6 and will not work with later versions. The [http://www.freescale.com/webapp/sps/site/overview.jsp?code=CW_LEGACY&amp;amp;fsrch=1&amp;amp;sr=1&amp;amp;pageNum=1 Freescale legacy downloads] page may provide an avenue to obtain CodeWarrior 4.6. A Freescale Service Request could also be used to request this version.&lt;br /&gt;
* If you are not going to use the default compiler version you will need to set an environment variable. Set CW_DIR to the directory which has the compiler you want to use; the default for 4.7 is &amp;quot;C:\Program Files\Freescale\CodeWarrior for HCS12 V4.7&amp;quot;  (other versions follow this naming convention).&lt;br /&gt;
* There is also a Tool Chain block in MotoHawk that will allow you to select which compiler to use, if necessary. Find it using Simulink Library Browser; it is located in the MotoHawk-&amp;gt;Build library.&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
'''Note:'''  To set an environment variable:&amp;lt;BR&amp;gt;In Windows, select '''Start-&amp;gt;(right-click)My Computer-&amp;gt;Properties-&amp;gt;Advanced tab-&amp;gt;Environment Variables''', then click on New, and fill in the Variable name and value, then click OK.&lt;br /&gt;
&lt;br /&gt;
If you are using CodeWarrior on a 64-bit machine, select 'Custom' install and de-select to install Debugging.&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=Module_Datasheets&amp;diff=3966</id>
		<title>Module Datasheets</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=Module_Datasheets&amp;diff=3966"/>
		<updated>2015-08-20T04:14:03Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* 112 Pin Modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cross Reference Charts ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36328 MotoHawk Control Solutions ECM Summary (36328)]&amp;lt;br /&amp;gt;&lt;br /&gt;
* Summary Comparision of ECM Modules&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/CrossReference.html MotoHawk Target CrossReference Chart]&amp;lt;br/&amp;gt;&lt;br /&gt;
* MotoHawk Cross Reference Chart showing modules and the IO Behaviors supported by the MotoHawk software&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[24-pin_Module_Family|24 Pin Modules]] ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36322 ECM-0S12-024-0502-C/F Datasheet (36322)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc for ECM-0S12-024-0502 Module &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36358 ECM-0S12-024-0503 Datasheet (36358 inactive)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc., for the ECM-0S12-024-0503 Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* (replaced by -0801 and 0804)&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36360 ECM-0S12-024-0802-C/F Datasheet (36360)]&amp;lt;br /&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc for ECM-0S12-024-0802 Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36323 GCM-0565-024-0602-F Datasheet (36323)]&amp;lt;br /&amp;gt;&lt;br /&gt;
* Inactive: For Reference Only. Resource Descriptions, Pinouts, etc., for the GCM-0565-024-0602-F Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36324 GCM-0S12-024-0401-F Datasheet (36324)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc., for the GCM-0S12-024-0401-F Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36325 GCM-0S12-024-0402-F Datasheet (36325)]&amp;lt;br /&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc., for the GCM-0S12-024-0402-F Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36326 GCM-0S12-024-0403-F Datasheet (36326)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc., for the GCM-0S12-024-0403-F Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[48-pin_Module_Family|48 Pin Modules]] ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36301 ECM-0555-048 Controller Family Datasheet (36301)]&amp;lt;br/&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc., for the ECM-0555-048 Family of Control Modules&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36317 ECM-0563-048-0701 Datasheet (36317)]&amp;lt;br/&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc., for the ECM-0563-048-0701-C/F Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36318 ECM-0563-048-0704 Datasheet (36318)]&amp;lt;br/&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc., for the ECM-0563-048-0704 Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber ECM-0563-048-0705 Datasheet (36319)]&amp;lt;br/&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc.for the ECM-0563-048-0705 Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36303 GCM-0563-048 Controller Family Datasheet (36303)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc for the GCM-0563-048C/F Control Modules&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36330 HCM-0563-048-0801-C/F Datasheet (36330)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc., for the HCM-0563-048-0801-C/F Modules&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36331 HCM-0563-048-0802-C/F Datasheet (36331)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc.for the HCM-0563-048-0802 -C/F Modules&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36332 HCM-0563-048-0803-C/F Datasheet (36332)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc., for the HCM-0563-048-0803-C/F Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[70-pin_Module_Family|70 Pin Modules]] ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36348 ECM-S12X-070 Family Engine Control Modules Product Information Sheet (36348)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*General Product Information for ECM-S12X-070 Family&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36347 ECM-0S12-070-1001 Datasheet (36347)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc of ECM-S12X-070-1001&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''NEW!'''  [http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=26776 ECM-5634M-070 Family Engine Control Modules Product Manual (26776)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc of ECM-5634M-070-14xx&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[80-pin_Module_Family|80 Pin Modules]] ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36314 ECM-0555-080-0701 Datasheet (36314)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Inactive: For Reference Only.  Resource Descriptions, Pinouts, etc., for the ECM-0555-080-0701-F Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36315 ECM-0555-080-0702 Datasheet (36315)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc., for the ECM-0555-080-0702-C/F Modules&amp;lt;br /&amp;gt;&lt;br /&gt;
* '''ECM-0555-080-0702 C/F has been replaced by ECM-0555-080-0802.  The -0702 datasheet applies to the -0802'''&amp;lt;br/&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36316&amp;quot; ECM-0555-080-0703 Datasheet (36316)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Inactive: For Reference Only.  Resource Descriptions, Pinouts, etc., for the ECM-0555-080-0703-C/F Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[112-pin_Module_Family|112 Pin Modules]] ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36757 ECM-5554-112-0902 Datasheet (36757)]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Resource Descriptions, Pinouts, etc for the ECM-5554-112-0902 F/C Modules&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36350 ECM-5554-112-0904 Datasheet (36350)]&amp;lt;br /&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc for the ECM-5554-112-0904C/F Control Modules&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36370 GCM-5554-112-1001-C/F Datasheet (36370)]&amp;lt;br /&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc for the GCM-5554-112-1001-C/F Control Modules (1751-6456 1751-6457)&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36364 SECM112 Datasheet (36364)]&amp;lt;br /&amp;gt;&lt;br /&gt;
* General IO description for the SECM112 Control Modules&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[128-pin_Module_Family|128 Pin Modules]] ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36320 ECM-0565-128-0701-C Datasheet (36320)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc., for the ECM-0565-128-0701-C Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36321 ECM-0565-128-0701-F Datasheet (36321)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc for the ECM-0565-128-0701-F Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36355 ECM-0565-128-0702-C Datasheet (36355)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc., for the ECM-0565-128-0702-C Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36371 ECM-0565-128-0704-C Datasheet (36371)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc., for the ECM-0565-128-0704-C Module&amp;lt;br /&amp;gt;&lt;br /&gt;
* MotoHawk 2010bSP0 or higher is Required for the ECM-0565-128-0704-C Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36368 ECM-0565-128-1001-C/F Datasheet (36368)]&amp;lt;br/&amp;gt;&lt;br /&gt;
* Resource Descriptions, Pinouts, etc., for the ECM-0565-128-1001-C/F Module&amp;lt;br/&amp;gt;&lt;br /&gt;
* MotoHawk 2010bSP0 or higher is Required for the ECM-0565-128-1001-C/F Module&amp;lt;br/&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Additional Resources ==&lt;br /&gt;
=== [[Boot_key_recovery|Boot Key Recovery]] === &lt;br /&gt;
This article describes how to recover a module that may be unresponsive due to programming errors using a Boot Key or Boot Cable&lt;br /&gt;
&lt;br /&gt;
* [[Boot_key_recovery|Boot Key Recovery Document]]&lt;br /&gt;
&lt;br /&gt;
=== MotoService Software Installation Guide ===&lt;br /&gt;
*[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=9700-1002&amp;quot; MotoService Software Installation Guide (9700-1002)]&amp;lt;br /&amp;gt;&lt;br /&gt;
General Software Installation Guide&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Desktop IO Simulator===&lt;br /&gt;
*[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36369&amp;quot; Desktop IO Simulator_36369]&amp;lt;br /&amp;gt;&lt;br /&gt;
Description and pin out chart for Desktop IO simulator 8909-1043&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=SECM70&amp;diff=3965</id>
		<title>SECM70</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=SECM70&amp;diff=3965"/>
		<updated>2015-08-17T01:25:08Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Inputs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==ECM-5634M-70==&lt;br /&gt;
[[Image:ECM5634M-70.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
===Hardware Features===&lt;br /&gt;
:70-Pin platform&lt;br /&gt;
:Microprocessor: ST SPC563M64, 80 MHz&lt;br /&gt;
:Memory: 1.5 M flash, 94 K RAM, 16 K serial EEPROM&lt;br /&gt;
:Operating Voltage: 8–32 Vdc, 36 V (jump start), 5.5 V (crank)&lt;br /&gt;
:Operating Temperature: –40 to +105 °C&lt;br /&gt;
===Inputs===&lt;br /&gt;
:VR or digital crank position sensor&lt;br /&gt;
:Digital cam position sensor &lt;br /&gt;
:Up to 14 analogs&lt;br /&gt;
:Up to 5 digital (4 switch, 1 speed)&lt;br /&gt;
:up to 2 switch-type oxygen sensors&lt;br /&gt;
:Optional wide-range oxygen sensor&lt;br /&gt;
:Up to 2 knock sensors&lt;br /&gt;
&lt;br /&gt;
===Outputs===&lt;br /&gt;
:6 high-impedance injector drivers (up to 4 low impedance injector drivers)&lt;br /&gt;
:Up to 8 electronic spark-triggers for smart injection coils&lt;br /&gt;
:9 low-side drivers&lt;br /&gt;
:3 lamp drivers&lt;br /&gt;
:1 main power relay driver&lt;br /&gt;
:up to 2 H-bridge drivers&lt;br /&gt;
:Optional 3-phase brushless DC motor driver&lt;br /&gt;
:1 sensor supply (5V)&lt;br /&gt;
===Communications===&lt;br /&gt;
:2 CAN 2.0b channels&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Product Summary ==&lt;br /&gt;
The SECM70 control platform fits a variety of applications, including gasoline and&lt;br /&gt;
natural gas engines for power generation, forklifts, lift trucks, and on-highway&lt;br /&gt;
vehicles. The SECM70 control is programmed to meet the specific needs of the&lt;br /&gt;
prime mover and its driven load.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
At the heart of the SECM70 control is a powerful 32-bit ST SPC563M64&lt;br /&gt;
microprocessor that runs Woodward’s ControlCore operating system. Application&lt;br /&gt;
programming is accomplished via Woodward’s MotoHawk application software&lt;br /&gt;
tool. MotoHawk is a rapid controls system development tool that allows controls&lt;br /&gt;
engineers to quickly create controls software directly within Simulink diagrams,&lt;br /&gt;
which run on any MotoHawk-enabled electronic control modules. Application&lt;br /&gt;
developers work directly in the Simulink environment and with a one-step build&lt;br /&gt;
are able to go from an application model to a file that can be programmed directly&lt;br /&gt;
into Woodward production hardware. MotoHawk provides a high-level&lt;br /&gt;
programming environment for users who have control systems expertise but&lt;br /&gt;
don’t necessarily have specific embedded programming skills. Once the&lt;br /&gt;
application program has been generated and loaded into the SECM70 control via&lt;br /&gt;
the CAN port, the user can view variables and tune the control using an&lt;br /&gt;
appropriate service interface tool such as [[ToolKit_Custom_HMI_Software|Woodward's Toolkit]] or [[MotoTune]].&lt;br /&gt;
Connection to other devices, such as a diagnostic tool, is accomplished by&lt;br /&gt;
means of other CAN ports available on the control. The desired information flow&lt;br /&gt;
is programmed into the control via [[MotoTune]] or [[ToolKit_Custom_HMI_Software|ToolKit]].&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The SECM70 control consists of a single rigid printed circuit board attached to an&lt;br /&gt;
aluminum housing using thermal adhesive, which is then closed and sealed with&lt;br /&gt;
an aluminum cover. Connections to the control are made via a single 70-pin&lt;br /&gt;
automotive-style sealed connector. The control can be mounted directly to the&lt;br /&gt;
engine or frame using vibration isolators which are available pre-installed on the&lt;br /&gt;
control or separately.&lt;br /&gt;
&lt;br /&gt;
== Datasheets ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36363 ECM-5634M-070 Family Engine Control Modules Specification Sheet (36363)]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=26776 ECM-5634M-070 Family Engine Control Modules Product Manual (26776)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Part Numbers ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Part Num !! Part w/&amp;lt;br/&amp;gt;MTG HW || HW Version !! Features&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!-- MI 1402 and 1452 --&amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;1751-6680&amp;amp;nbsp; || &amp;amp;nbsp;8923-2050&amp;amp;nbsp; || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1452.html 1452 (PROD)] || Mobile Industrial&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6649 || &amp;amp;nbsp;8923-2051 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1402.html 1402 (DEV)] || Mobile Industrial, on-the-fly calibratible&lt;br /&gt;
&amp;lt;!-- PG 1403 and 1453 --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6681 || &amp;amp;nbsp;8923-2052 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1453.html 1453 (PROD)] || Power Generation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6650 || &amp;amp;nbsp;8923-2053 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1403.html 1403 (DEV)] || Power Generation, on-the-fly calibratible&lt;br /&gt;
&amp;lt;!-- SK 1409 and 1459, 1509 and 1559 --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6682 || &amp;amp;nbsp;8923-2002 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1459.html 1459 (PROD)]|| Marine&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6721 || &amp;amp;nbsp;xxxx-xxxx || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1459.html 1559 (PROD)]|| Marine (MY15 revision, use the 1459 target)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6653 || &amp;amp;nbsp;8923-1987 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1409.html 1409 (DEV)] || Marine, on-the-fly calibratible&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6715 || &amp;amp;nbsp;xxxx-xxxx || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1409.html 1509 (DEV)] || Marine, on-the-fly calibratible (MY15 revision, use the 1409 target)&lt;br /&gt;
&amp;lt;!-- OH 1411 and 1461 --&amp;gt;&lt;br /&gt;
&amp;lt;!-- The 14xx OH modules were never released to the public, used in-house and replaced by 15xx modules&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;''1751-6683'' || || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1461.html 1461 (PROD)]|| ''On-Highway (future release)''&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;''1751-6675'' || || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1411.html 1411 (DEV)] || ''On-Highway, on-the-fly calibratible (future release)''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- MI 1512 and 1562 --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6719 || &amp;amp;nbsp;xxxx-xxxx || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1512.html 1562 (PROD)] || Mobile Industrial&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6713 || &amp;amp;nbsp;xxxx-xxxx || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1562.html 1512 (DEV)] || Mobile Industrial, on-the-fly calibratible&lt;br /&gt;
&amp;lt;!-- PG 1513 and 1563 --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6720 || &amp;amp;nbsp;xxxx-xxxx || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1563.html 1563 (PROD)] || Power Generation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6714 || &amp;amp;nbsp;xxxx-xxxx || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1513.html 1513 (DEV)] || Power Generation, on-the-fly calibratible&lt;br /&gt;
&amp;lt;!-- PG 1515 and 1565 --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6722 || &amp;amp;nbsp;xxxx-xxxx || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1565.html 1565 (PROD)] || On-Highway&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6716 || &amp;amp;nbsp;xxxx-xxxx || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1515.html 1515 (DEV)] || On-Highway, on-the-fly calibratible&lt;br /&gt;
&amp;lt;!-- PG 1515 and 1565 --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6723 || &amp;amp;nbsp;xxxx-xxxx || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1566.html 1566 (PROD)] || Hydraulic&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6717 || &amp;amp;nbsp;xxxx-xxxx || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1516.html 1516 (DEV)] || Hydraulic, on-the-fly calibratible&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related Part Numbers ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Part Number !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 8923-1761 || Connector Kit&lt;br /&gt;
|-&lt;br /&gt;
| 8996-2162&amp;lt;br/&amp;gt;8996-2163&amp;lt;br/&amp;gt;8996-2164 || Crimp Tools&lt;br /&gt;
|-&lt;br /&gt;
| 8996-2167 || Removal Tools&lt;br /&gt;
|-&lt;br /&gt;
| 1635-1800 || Boot Key&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1141 || Pig Tail&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1364 || Development Harness&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1341 || Desktop Simulator Harness&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Model Variant Features ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight: bold;&amp;quot; | Function&lt;br /&gt;
! style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | MI-1402/1452&lt;br /&gt;
! style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | MI-1512/1562&lt;br /&gt;
! style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | PG-1403/1453&lt;br /&gt;
! style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | PG-1513/1563&lt;br /&gt;
! style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | SK-1409/1459&lt;br /&gt;
! style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | SK-1509/1559&lt;br /&gt;
! style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | OH-1515/1565&lt;br /&gt;
! style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | LV-1516/1566&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;font-weight: bold;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | 1751-6649/6680&lt;br /&gt;
| style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | 1751-6713/6719&lt;br /&gt;
| style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | 1751-6650/6681&lt;br /&gt;
| style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | 1751-6714/6720&lt;br /&gt;
| style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | 1571-6653/6682&lt;br /&gt;
| style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | 1571-6715/6721&lt;br /&gt;
| style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | 1751-6716/6722&lt;br /&gt;
| style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | 1751-6717/6723&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | PIN #&lt;br /&gt;
|-&lt;br /&gt;
| AN1 (221k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 28&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 28&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 28&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 28&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 28&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 28&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 28&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 28&lt;br /&gt;
|-&lt;br /&gt;
| AN2 (221k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
|-&lt;br /&gt;
| AN3 (221k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22&lt;br /&gt;
|-&lt;br /&gt;
| AN4 (221k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 42&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 42&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 42&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 42&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 42 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 42 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 42&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 42&lt;br /&gt;
|-&lt;br /&gt;
| AN5 (4.75k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 43&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 43&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 43&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 43&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 43 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 43 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 43&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 43 (221k_PD)&lt;br /&gt;
|-&lt;br /&gt;
| AN6 (4.75k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 47&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 47&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 47 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 47 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 47 (221k_PD)&lt;br /&gt;
|-&lt;br /&gt;
| AN7 (51.1k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 44&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 44&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 44&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 44&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 44 (1ms T )&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 44 (1ms T )&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 44&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 47 (221k_PD)&lt;br /&gt;
|-&lt;br /&gt;
| AN8 (4.75k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 45&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 45&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 45&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 45&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 45 (51.1k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 45 (51.1k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 45&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 45 (221k_PD)&lt;br /&gt;
|-&lt;br /&gt;
| AN9 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 39&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 39&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 39&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 39&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 39 (1k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 39 (1k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 39&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 39&lt;br /&gt;
|-&lt;br /&gt;
| AN10 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 40&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 40&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 40&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 40&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 40 (1k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 40 (1k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 40&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 40&lt;br /&gt;
|-&lt;br /&gt;
| AN11 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 41&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 41&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 41&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 41&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 41 (1k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 41 (1k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 41&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 41&lt;br /&gt;
|-&lt;br /&gt;
| AN12 (4.75k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 59&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 59&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 59&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 59&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 59 (1k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 59 (1k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 59&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 59 (51.1k_PU)&lt;br /&gt;
|-&lt;br /&gt;
| AN13 (4.75k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 60 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 60 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 60 (51.1k_PU)&lt;br /&gt;
|-&lt;br /&gt;
| AN14 (10k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 61&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 61&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 61&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 61&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 61&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| AN16 (51.1k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 46&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 46&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 62 (221k_PD)&lt;br /&gt;
|-&lt;br /&gt;
| AN17 &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 46&lt;br /&gt;
|-&lt;br /&gt;
| AN18 &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 63&lt;br /&gt;
|-&lt;br /&gt;
| AN19 &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 64&lt;br /&gt;
|-&lt;br /&gt;
| EGO1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 65/66&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 65/66&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 65/66&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 65/66&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 65/66&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 65/66&lt;br /&gt;
|-&lt;br /&gt;
| EGO2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 49/50&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 49/50&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 49/50&lt;br /&gt;
|-&lt;br /&gt;
| UEGO&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 47(SNS), 50(SR), 3(HTR), 49(TG), 33(INRC)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 47(SNS), 50(SR), 3(HTR), 49(TG), 33(INRC) (Improved accuracy)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 47(SNS), 50(SR), 3(HTR), 49(TG), 33(INRC) (Improved accuracy)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| EK1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 63/64&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 63/64&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 63/64&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 63/64&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 63/64&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 63/64&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 63/64&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| EK2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 62/46&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 62/46&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 62/46&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 62/46&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 62/46&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| SWG1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25&lt;br /&gt;
|-&lt;br /&gt;
| SWG2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27&lt;br /&gt;
|-&lt;br /&gt;
| SWG3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29&lt;br /&gt;
|-&lt;br /&gt;
| SWG4 / BOOT&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26&lt;br /&gt;
|-&lt;br /&gt;
| CAM_DG&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30&lt;br /&gt;
|-&lt;br /&gt;
| CNK_DG&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 31&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 31&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 31&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 31&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 31&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 31&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 31&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 31&lt;br /&gt;
|-&lt;br /&gt;
| SPD&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 33&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 33&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 33&lt;br /&gt;
|-&lt;br /&gt;
| CNK_VR/SPD_VR&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16/17&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16/17&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16/17&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16/17&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16/17&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16/17&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16/17&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16/17&lt;br /&gt;
|-&lt;br /&gt;
| LSO1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
|-&lt;br /&gt;
| LSO2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3&lt;br /&gt;
|-&lt;br /&gt;
| LSO3 (CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
|-&lt;br /&gt;
| LSO4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5 (Inductive capable)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5 (Inductive capable)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5 (Inductive capable)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5&lt;br /&gt;
|-&lt;br /&gt;
| LSO5&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9 (Inductive capable)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9 (Inductive capable)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9 (Inductive capable)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9&lt;br /&gt;
|-&lt;br /&gt;
| LSO6 (CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 10 (no CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 10 (no CS) (Inductive capable)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 10 (no CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 10 (no CS) (Inductive capable)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 11 (10 no CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 11 (10 no CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 10 (no CS) (Inductive capable)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 11 (166mA/Volt)&lt;br /&gt;
|-&lt;br /&gt;
| LSO7 (CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 (no CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 (no CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 (no CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 (no CS) &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 (no CS) &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 (166mA/Volt)&lt;br /&gt;
|-&lt;br /&gt;
| LSO8&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20&lt;br /&gt;
|-&lt;br /&gt;
| LSO9&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23&lt;br /&gt;
|-&lt;br /&gt;
| MPRD&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 55&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 55&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 55&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 55&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 55&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 55&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 55&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 55&lt;br /&gt;
|-&lt;br /&gt;
| LAMP1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 58&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 58 (Improved diag)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 58 &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 58 (Improved diag)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 58 (Improved diag)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 58&lt;br /&gt;
|-&lt;br /&gt;
| LAMP2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 57&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 57 (Improved diag)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 57&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 57 (Improved diag)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 57 (Improved diag)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 57&lt;br /&gt;
|-&lt;br /&gt;
| LAMP3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 56&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 56 (Improved diag)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 56&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 56 (Improved diag)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 56 (Improved diag)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 56&lt;br /&gt;
|-&lt;br /&gt;
| INJ1 (PH)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 34&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 34&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 34&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 34&lt;br /&gt;
|-&lt;br /&gt;
| INJ2 (PH)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 35&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 35&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 35&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 35&lt;br /&gt;
|-&lt;br /&gt;
| INJ3 (PH)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1&lt;br /&gt;
|-&lt;br /&gt;
| INJ4 (PH)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 18&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| INJ4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 12&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 12&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 12&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 12&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 12&lt;br /&gt;
|-&lt;br /&gt;
| INJ5&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| INJ6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| H1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 51/52&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 51/52&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 51/52&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 51/52&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 51/52&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 51/52&lt;br /&gt;
|-&lt;br /&gt;
| H2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 34/35&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 34/35&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| 3-Phase&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 51/34/52&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 51/34/52&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| EST1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
|-&lt;br /&gt;
| EST2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8&lt;br /&gt;
|-&lt;br /&gt;
| EST3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 11&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 11&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 11&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 11&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 11&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| EST4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21&lt;br /&gt;
|-&lt;br /&gt;
| EST5&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 18&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 18&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 18&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 18&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 18&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 18&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 18&lt;br /&gt;
|-&lt;br /&gt;
| EST6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19&lt;br /&gt;
|-&lt;br /&gt;
| EST7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13&lt;br /&gt;
|-&lt;br /&gt;
| EST8&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14&lt;br /&gt;
|-&lt;br /&gt;
| MotorPhaseVSense_A&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 58&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 58&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| MotorPhaseVSense_B&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 57&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 57&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| MotorPhaseVSense_C&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 56&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 56&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 15xx Modules ===&lt;br /&gt;
* Improved diagnostic on LAMP pins&lt;br /&gt;
* Increased UEGO resolution and accuracy&lt;br /&gt;
* Increased switching speed on LSO4/5/6/7 and H2&lt;br /&gt;
* Allow LSO4/5/6 to drive inductive loads&lt;br /&gt;
&lt;br /&gt;
== Software Variant Features ==&lt;br /&gt;
=== 14xx Modules ===&lt;br /&gt;
* Hardboot firmware version 2.06&lt;br /&gt;
* Programming not supported on CAN2&lt;br /&gt;
&lt;br /&gt;
=== 15xx Modules ===&lt;br /&gt;
* Modules that support UEGO expose an additional internal ADC resource for FVOUT.  This provides the user an option to use a slightly higher resolution reading.&lt;br /&gt;
* Hardboot firmware version 2.07&lt;br /&gt;
* The factory installed application supports XCP communications and reflashing using CAN_2 at 500k&lt;br /&gt;
* Reprogramming supported on CAN2&lt;br /&gt;
&lt;br /&gt;
== Compiler ==&lt;br /&gt;
Green Hills version 4.2.4 &amp;lt;br/&amp;gt;&lt;br /&gt;
GCC for PowerPC EABI-SPE version 4.6.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==BootKey==&lt;br /&gt;
A malfunctioning application previously loaded on the SECM70 can be recovered using the [[Boot key recovery|BootKey recovery]].&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The BootKey signal needs to be connected to the '''SWG4''' pin.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
==Bootstrap==&lt;br /&gt;
The SECM70 can be forced to remain in the firmware bootloader by applying a bootstrap sequence.  The bootstrap sequence is:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;amp;nbsp;&amp;amp;nbsp;Pin&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; !! State for Boot&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN1 || &amp;amp;nbsp;&amp;amp;nbsp;High&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN2 || &amp;amp;nbsp;&amp;amp;nbsp;High&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN3 || &amp;amp;nbsp;&amp;amp;nbsp;High&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN4 || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN5 || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN6 || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN7 || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN8 || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN9 || &amp;amp;nbsp;&amp;amp;nbsp;Low&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN10 || &amp;amp;nbsp;&amp;amp;nbsp;Low&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN11 || &amp;amp;nbsp;&amp;amp;nbsp;Low&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Frequently Asked Questions/Topics ==&lt;br /&gt;
&lt;br /&gt;
=== Is the Marine variant suited for sensorless 3-phase brushless motor? ===&lt;br /&gt;
To introduce this answer, we review that it is possible to run a 3-phase brushless DC motor with and without position sensors.  A position sensor can directly indicate the position of a motor shaft. Sensorless systems are advanced enough to determine the position of the shaft through back-EMF waveforms, although complexity will increase greatly under very small signal to noise ratios (when the motor is just starting and at very slow speeds.)&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Woodward has design protected for sensorless 3-phase brushless DC motor operation in SECM70, but the Marine variant is &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; suited for this application.  &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The Marine variant SECM70 should always be designed to operate a 3-phase brushless motor with hall position sensors connected to module pins 56,57,58 for PhaseC, PhaseB, PhaseA, respectively.  MotoHawk Input Capture blocks can then be used with the resources MotorPhaseVSense_A, MotorPhaseVSense_B, and MotorPhaseVSense_C.  The Input Capture behavior allows the application to be notified of an input pin state change, which correlates to a sample every 60 degrees.  The algorithm to calculate motor position and speed is outside the scope of what MotoHawk is providing in support of this module.&lt;br /&gt;
&lt;br /&gt;
=== Can I diagnose PWM EST outputs? ===&lt;br /&gt;
Due to the nature of the hardware, EST diagnostics are only available when driven as a sequence and not as a PWM.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The ESTs have a caveat that certain groups must not turn off at the same time as there is shared diagnostic HW.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The groupings where you should avoid turning off at the same time are:&amp;lt;br/&amp;gt;&lt;br /&gt;
EST 1,2 &amp;lt;br/&amp;gt;&lt;br /&gt;
EST 3,4 &amp;lt;br/&amp;gt;&lt;br /&gt;
EST 5,6,7,8&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How is LSO3 different than LSO6/LSO7 on the Marine variant? ===&lt;br /&gt;
LSO3 current sense is only able to measure current when the driver is in the '''On''' state.  This is common to all the module variants.  The Marine variant has additional current sense for LSO6 and LSO7.   The current measurement at pins 11 and 15, respectively, will measure the current when the driver state is '''On''' and '''Off'''.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How would you use the H1GATE_ENABLE output? ===&lt;br /&gt;
The H1GATE_ENABLE can be used to reset the ASIC responsible for driving H1 the SECM70.  If H1GATE_ENABLE is not referenced in the application, then by default it will always be set in an enabled state.  If a reset of the ASIC is necessary, it is suggested to set H1GATE_ENABLE to false (logic 0) for one RTI period and then return H1GATE_ENABLE to true (logic 1).&lt;br /&gt;
&lt;br /&gt;
=== Why do I see a high current on H1 when in Fault or H1GATE_ENABLE is disabled? ===&lt;br /&gt;
Current measurement is obtained by sampling analog outputs from the ASIC.  These outputs are centered at 2.5V such that +ve and -ve currents can be reported.  However when in fault or disabled, the analog output channel goes to 0V and therefore is reported to have Max current. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=128-pin_Module_Family&amp;diff=3957</id>
		<title>128-pin Module Family</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=128-pin_Module_Family&amp;diff=3957"/>
		<updated>2015-07-17T02:18:39Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
Designed for large scale engine and powertrain (ECM) control, our 128 pin module delivers optimal flexibility for complex control strategies.  This ECM is part of the Woodward’s family of electronic control modules with over 1 million units&lt;br /&gt;
successfully deployed in the field.  Built on the proven MPC565 processor, the onboard floating point unit and high clock frequency allow software to be developed in shorter times. Dual CAN 2.0B datalinks ensure interoperability with other vehicle systems. Typical applications include general rapid prototyping, peak/hold fuel injection, and 12 cylinder sequential engines.&lt;br /&gt;
&lt;br /&gt;
Link to [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECU565-128.html MotoHawk help for PCM128]&lt;br /&gt;
&lt;br /&gt;
[[Image:ECM128.jpg|200px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Important:  The ECM-565-128-0704 and the ECM-565-128-1001 are NEW 128 pin modules.  There are hardware changes &lt;br /&gt;
 and further, &amp;lt;font color = red&amp;gt;'''these new modules require a NEWER MotoHawk'''&amp;lt;/font color = red&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See [http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36300 Product Guide] for Active Part Numbers and Related Hardware (Connectors, Harnesses, Bootkey..).&lt;br /&gt;
&lt;br /&gt;
 '''Datasheets'''&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36320 ECM-0565-128-0701-C Datasheet (36320)]&lt;br /&gt;
* Resource Descriptions, Pinouts, etc., for the ECM-0565-128-0701-C Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36321 ECM-0565-128-0701-F Datasheet (36321)]&lt;br /&gt;
* Resource Descriptions, Pinouts, etc for the ECM-0565-128-0701-F Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36355 ECM-0565-128-0702-C Datasheet (36355)]&lt;br /&gt;
* Resource Descriptions, Pinouts, etc., for the ECM-0565-128-0702-C Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36371 ECM-0565-128-0704-C Datasheet (36371)]&lt;br /&gt;
* Resource Descriptions, Pinouts, etc., for the ECM-0565-128-0704-C Module&amp;lt;br /&amp;gt;&lt;br /&gt;
* MotoHawk 2010bSP0 or higher is Required for the ECM-0565-128-0704-C Module&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36368 ECM-0565-128-1001-C/F Datasheet (36368)]&lt;br /&gt;
* Resource Descriptions, Pinouts, etc., for the ECM-0565-128-1001-C/F Module&amp;lt;br/&amp;gt;&lt;br /&gt;
* MotoHawk 2010bSP0 or higher is Required for the ECM-0565-128-1001-C/F Module&amp;lt;br/&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 '''Hardware Features'''&lt;br /&gt;
:Microprocessor: MPC565, 56MHz&lt;br /&gt;
:Memory: 1M Flash, 548K RAM, 8K Serial EEPROM,&lt;br /&gt;
:64Kx8 Parallel EEPROM&lt;br /&gt;
:Operating Voltage: 9-32VDC&lt;br /&gt;
:Operating Temperature: -40° to 105° C&lt;br /&gt;
:Sealed connectors operable to 10ft submerged&lt;br /&gt;
&lt;br /&gt;
'''Inputs'''&lt;br /&gt;
:30 Analog Inputs&lt;br /&gt;
:4 Low Frequency Discrete Inputs&lt;br /&gt;
:4 VR Frequency Inputs&lt;br /&gt;
:2 Wide Range O2 Sensor Inputs&lt;br /&gt;
:Dual Lambda Sensor Interface&lt;br /&gt;
:2 Dual Sensor Wide Band Knock Detectors&lt;br /&gt;
&lt;br /&gt;
'''Outputs'''&lt;br /&gt;
:6 3A /1A Peak/Hold Injector Drivers&lt;br /&gt;
:6 7A/3A or 3A/1A Peak/Hold Inj. Drivers&lt;br /&gt;
:16 TTL Level Ignition System Outputs&lt;br /&gt;
:10 3A Low Side PWMs&lt;br /&gt;
:1 1.5A Tachometer Output&lt;br /&gt;
:2 5A H-Bridge PWMs&lt;br /&gt;
:1 10A H-Bridge PWM&lt;br /&gt;
:1 Relay Driver (Main Power)&lt;br /&gt;
&lt;br /&gt;
'''Datalinks'''&lt;br /&gt;
:2 CAN 2.0B Channels&lt;br /&gt;
:1 ISO 9141 Channel   '''Note''':  ISO9141 Hardware is not supported in MotoHawk Software.&lt;br /&gt;
:(KWP2000/HWP2000, 10.4kbps)&lt;br /&gt;
:1 RS485 Channel&lt;br /&gt;
&lt;br /&gt;
== Part Numbers ==&lt;br /&gt;
[[Image:pn_128.png]]&lt;br /&gt;
&lt;br /&gt;
== Additional Information==&lt;br /&gt;
There are two main types of PCM128&lt;br /&gt;
=== Hi-Vol ===&lt;br /&gt;
* 1024K Flash&lt;br /&gt;
* NO Parallel EEprom (PROD style)&lt;br /&gt;
* 32K Serial EE&lt;br /&gt;
* 36K RAM&lt;br /&gt;
=== Lo-Vol ===&lt;br /&gt;
* 1024K Flash&lt;br /&gt;
* Parallel EEProm (DEV Style)&lt;br /&gt;
* 32K Serial EE&lt;br /&gt;
* 1024K RAM&lt;br /&gt;
&lt;br /&gt;
=== MY10 Modules ===&lt;br /&gt;
Due to the EGO IC going EOL, it was required to release new hardware variants of the 128-pin ECUs.   These are the ECM-0565-128-1001C/F and the ECM-0565-128-0704C modules.   See the module datasheet for specific module details.&lt;br /&gt;
&lt;br /&gt;
MotoHawk 2010bSP0 or higher is required for these ECUs.&lt;br /&gt;
&lt;br /&gt;
The -0704 version is the same as the -0702C version, except with the EGO 1&amp;amp;2 inputs replaced by AN31-34.   There is not a corresponding 'F' (PROD) -0704 module because the Flash (PROD) modules did not have the EGO IC.&lt;br /&gt;
&lt;br /&gt;
Changes:&lt;br /&gt;
ECM-0565-128-1001 (C/F)&lt;br /&gt;
*H2 and H3 h-bridges are depopulated&lt;br /&gt;
*LSU 4.2 on second UEGO input replaced by LSU 4.9&lt;br /&gt;
*AN18 pullup changed to 10k&lt;br /&gt;
*EGO1&amp;amp;2 depopulated&lt;br /&gt;
*AN31-34 populated &lt;br /&gt;
*AN34 changed to 60.4k&lt;br /&gt;
*EST9-12 converted to low-side Lamp/LED drivers&lt;br /&gt;
&lt;br /&gt;
ECM-0565-128-0704C&lt;br /&gt;
*EGO1&amp;amp;2 depopulated&lt;br /&gt;
*AN31-34 populated  (AN31,32 are 1M pull-down,  AN33,34 are 1k pull-up)&lt;br /&gt;
&lt;br /&gt;
=== MY15 Modules ===&lt;br /&gt;
Due to the H1 h-bridge IC going EOL, it was required to release new hardware variants of the 128-pin ECUs.  H1 will no longer be functional (H2 and H3 were removed in MY10) because the H1 h-bridge IC is depopulated.&lt;br /&gt;
&lt;br /&gt;
== Fault Reporting ==&lt;br /&gt;
===LSOs or H-briges ===&lt;br /&gt;
These outputs use a Fault reporting of 0 (ok), 1 (fault) or 2 (indeterminate) that is enabed as a checkbox in the PWM or Discrete Ouptut MotoHawk block.  This checkbox creates a fault output port on the block that can be read by the application. &amp;lt;br&amp;gt;&lt;br /&gt;
* '''A fault status of ‘0’''' means that the module has read the error status and can determine that a short or open fault is not occurring.  &lt;br /&gt;
 &lt;br /&gt;
* '''A status of ‘1’''' indicates that the driver has detected a short (to battery or ground) or open fault.   &lt;br /&gt;
 &lt;br /&gt;
* '''A fault status of ‘2’''' indeterminate means that either it is not possible to determine in the current state whether there is a fault or whether the output is ok, or that the OS has not had an opportunity to detect a fault.   A fault status of ‘2’ will also be reported in the case that the fault detection is not supported on the chosen pin (ex. on the injector pins). &lt;br /&gt;
&lt;br /&gt;
The driver can report faults of open circuit, short to ground, and short to battery, but not simultaneously.    For example when the load is ON an open circuit cannot be detected – an open can only be detected when the discrete output is off.  Similarly, short to battery cannot be detected when the LSO is off.   The ‘2’ means indeterminate and means that either the OS has not had opportunity to detect a fault or cannot determine if a fault condition exists.  For example, when the discrete output is off and there is not an open circuit,  the OS cannot be certain there is not a battery shorted condition and will report a ‘2’.  The fault output will be ‘1’ when a fault condition is detected, and a ‘2’ otherwise.  The output will not report a ‘0: OK’.&lt;br /&gt;
&lt;br /&gt;
For the LSO's the pre-FET driver is the TPIC IC.   This device is polled periodically for fault information.  However, the TPIC does not latch the fault infomormation.  So, the fault needs to be present when polled before it will be seen.   The fault  reporting is the same whether the output is driven by a discrete or PWM block.  However, the state of the output also affects the fault detection.  Open faults can be detected when the output is OFF and short faults can be only detected when the output is ON.   Therefore, if the output is switched with a PWM the switching may cause a difference in fault behavior as compared to a discrete ON/OFF where the output is potentially in one state for a longer period of time.    &lt;br /&gt;
&lt;br /&gt;
===Injector and ESTs===&lt;br /&gt;
The diagnostics for the injector pins are only supported (in hardware and software) when the outputs are being driven by PSP output blocks (Injector or spark blocks such as Injector Sequence or Multiple PSP).  &lt;br /&gt;
&lt;br /&gt;
The fault status from the discrete output block or PWM block when the selected pin is an INJ or EST output will always read a ‘2’.  Fault detection of the Injector and ESTs when not driven by PSP output is not supported.&lt;br /&gt;
&lt;br /&gt;
== INCA and the 128-pin module ==&lt;br /&gt;
Using INCA to download or upload large calibration tables (maps) can be very resource intensive on the 128-pin ECU.  The CPU idle can drop below 10% and cause the application monitor to halt the application, or if the application monitor is not enabled the CPU can be starved for task execution and reset.   This is a known issue and is due to the fact that the calibration is written directly to the EEPROM and EEPROM writes are slow.  &lt;br /&gt;
&lt;br /&gt;
There was an improvement implemented in MotoHawk 2013a where the watchdog is service during slow memory writes to help prevent the reset described above.   If you are experiencing resets while uploading/downloading large calibration sets we recommend using MotoHawk 2013aSP0 or higher.&lt;br /&gt;
&lt;br /&gt;
Additional Suggestions are also below: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. Use MotoHawk 2013aSP0 or greater.  There were also improvements to the CCP handling implemented in 2010a which may benefit this issue.   &amp;lt;br&amp;gt;&lt;br /&gt;
2. Check the 'Send Command Processor Busy&amp;quot; option in the CCP handler block.  This can alert the calibration tool that the ECU is busy writing to EEPROM and to wait.&amp;lt;br&amp;gt;&lt;br /&gt;
3. Make sure the CCP block is Idle triggered.  There are two CCP blocks - one has external triggers.  Use the block with the external triggers and trigger it from Idle. &amp;lt;br&amp;gt;&lt;br /&gt;
4.  Set the Optimized Up/Download option in INCA to Yes. &amp;lt;br&amp;gt;&lt;br /&gt;
5. Try increasing the foreground task and idle task stack in the target definition block. &amp;lt;br&amp;gt;&lt;br /&gt;
6.  There is also a Starvation Timer block that allows the application designer to set the amount of task starvation time allowed before the watchdog resets the processor.  The application developer would want to set this for what makes sense for the application (ex. in the event of an infinate loop), but extending this time may allow additional time for calibration with INCA. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Knock ==&lt;br /&gt;
The DEV (Low Volume) versions of the ECM-565-128 feature two knock channel inputs, via the Prosak knock chip.  The modulator clock frequency for the Prosak on the 128 pin ECU is 4.67 MHz.&lt;br /&gt;
&lt;br /&gt;
= FAQ =&lt;br /&gt;
== What's special about EST13 to EST16? ==&lt;br /&gt;
* These pins have stronger LowSide Drivers and can sync higher current&lt;br /&gt;
* The hardware can be configured as PUSH_PULL or LOW_SIDE drive&lt;br /&gt;
* Current MotoHawk sets the DriverMode to LOW_SIDE for DIO, OneShot and to PUSH_PULL for PWM.&lt;br /&gt;
* The Hi-Vol PCM128 does not have pull-up transistors, so technically cannot be configured as PUSH_PULL but the polarity remains active high.&lt;br /&gt;
* When instantiating from ControlCore as a LOW_SIDE it makes them active low instead of active high.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Tips'''&amp;lt;/big&amp;gt;&lt;br /&gt;
* Think of EST1-12 and EST13-16 as two separate banks&lt;br /&gt;
* Avoid mixing Behaviours within a bank where possible, as it can potentially restrict DriverModes and Diagnostic Capability.&lt;br /&gt;
&lt;br /&gt;
== Can I use any of the Analogs with voltages higher than 5V ==&lt;br /&gt;
The ADC would saturate at 5V, so your reading at 5V and higher would be full counts.  It is not recommended to use voltages higher than 5V with any of the analogs with pull up resistors.   The analongs with weak pull downs  (PD of 220k or 51.1k) can be used with 24V.&lt;br /&gt;
&lt;br /&gt;
== What EMC Rating does the PCM-128 have? ==&lt;br /&gt;
We have CE mark on the LV models only and E mark on the HV models only.   Both models were also tested to the SAE J1113 standards.&lt;br /&gt;
&lt;br /&gt;
== Why am I getting a ERROR_DRIVER_CONFLICT? ==&lt;br /&gt;
See [[Reference:ERROR_DRIVER_CONFLICT|ERROR_DRIVER_CONFLICT]]&lt;br /&gt;
&lt;br /&gt;
== Where have DG5, 6,7,8 Gone? ==&lt;br /&gt;
You will get &amp;quot;Hardware Not Supported&amp;quot; if you use a Low-Vol.&lt;br /&gt;
These resources are consumed as part of the KNOCK2 device.&lt;br /&gt;
&lt;br /&gt;
== Where is my KNOCK2? ==&lt;br /&gt;
The Hi-Vol only has KNOCK1&lt;br /&gt;
&lt;br /&gt;
== Does 128-pin module have the option of software selectable pullup resistors ==&lt;br /&gt;
No, the pullups are not configurable.  Selecting the 'Strong' vs 'Weak' pullup in the Encoder Defintition block does not change any value.  &lt;br /&gt;
&lt;br /&gt;
An external 2.2k pullup resistor may be needed with open-collector type crank and cam sensors.&lt;br /&gt;
&lt;br /&gt;
== Why do I have an CECUServer:WriteECU- MWWriteECU error when calibrating a display value in MotoTune ==&lt;br /&gt;
This error will occur if a model built for a 128-pin ECU is programmed into a MY10 ECU, and the version of MotoHawk is too old to support the new model hardware.   MotoHawk 2010bSP0 or higher is required for ECM-565-128-1001C/F or ECM-565-128-0704C.&lt;br /&gt;
&lt;br /&gt;
== What do the fault outputs of '0', '1', or '2' mean on the Digital Output or PWM block? ==&lt;br /&gt;
* A fault status of ‘0’ means that the module has read the error status and can determine that a short or open fault is not occurring.  &lt;br /&gt;
 &lt;br /&gt;
* A status of ‘1’ indicates that the driver has detected a short (to battery or ground) or open fault.   &lt;br /&gt;
 &lt;br /&gt;
* A fault status of ‘2’ indeterminate means that either it is not possible to determine in the current state whether there is a fault or whether the output is ok, or that the OS has not had an opportunity to detect a fault.   A fault status of ‘2’ will also be reported in the case that the fault detection is not supported on the chosen pin (ex. on the injector pins). &lt;br /&gt;
&lt;br /&gt;
I will use the LSO’s as an example.      The LSOs use a PreFET driver IC called a TPIC to provide the diagnostic information.  Faults of open circuit, short to ground, and short to battery can be detected, but not simultaneously.    For example when the load is ON an open circuit cannot be detected – an open can only be detected when the discrete output is off.  Similarly, short to battery cannot be detected when the LSO is off.   The ‘2’ means indeterminate and means that either the OS has not had opportunity to detect a fault or cannot determine if a fault condition exists.  For example, when the discrete output is off and there is not an open circuit,  the OS cannot be certain there is not a battery shorted condition and will report a ‘2’.  The fault output will be ‘1’ when a fault condition is detected, and a ‘2’ otherwise.  The output will not report a ‘0: OK’.      &lt;br /&gt;
&lt;br /&gt;
=== How are diagnostics for injector pins supported?  The fault output port always reports a '2' Indeterminate ===&lt;br /&gt;
The diagnostics for the injector pins are only supported (in hardware and software) when the outputs are being driven by PSP output blocks (Injector blocks).  The fault status from the discrete output block when the selected pin is an INJ Output will always read a ‘2’ in this case.&lt;br /&gt;
&lt;br /&gt;
== Is the Flexible Encoder Supported on the 128-pin module? ==&lt;br /&gt;
No, the Flexible Encoder requires enhanced TPU or eTPU.  The flexible encoder cannot be supported on the 128-pin's TPU - the hardware is not capable of this.&lt;br /&gt;
&lt;br /&gt;
[[Category:Modules|128-pin Module]]&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=SECM70&amp;diff=3951</id>
		<title>SECM70</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=SECM70&amp;diff=3951"/>
		<updated>2015-07-15T08:48:14Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Part Numbers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==ECM-5634M-70==&lt;br /&gt;
[[Image:ECM5634M-70.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
===Hardware Features===&lt;br /&gt;
:70-Pin platform&lt;br /&gt;
:Microprocessor: ST SPC563M64, 80 MHz&lt;br /&gt;
:Memory: 1.5 M flash, 94 K RAM, 16 K serial EEPROM&lt;br /&gt;
:Operating Voltage: 8–32 Vdc, 36 V (jump start), 5.5 V (crank)&lt;br /&gt;
:Operating Temperature: –40 to +105 °C&lt;br /&gt;
===Inputs===&lt;br /&gt;
:VR or digital crank position sensor&lt;br /&gt;
:Digital cam position sensor &lt;br /&gt;
:Up to 14 ananlogs&lt;br /&gt;
:Up to 5 digital (4 switch, 1 speed)&lt;br /&gt;
:up to 2 switch-type oxygen sensors&lt;br /&gt;
:Optional wide-range oxygen sensor&lt;br /&gt;
:Up to 2 knock sensors&lt;br /&gt;
===Outputs===&lt;br /&gt;
:6 high-impedance injector drivers (up to 4 low impedance injector drivers)&lt;br /&gt;
:Up to 8 electronic spark-triggers for smart injection coils&lt;br /&gt;
:9 low-side drivers&lt;br /&gt;
:3 lamp drivers&lt;br /&gt;
:1 main power relay driver&lt;br /&gt;
:up to 2 H-bridge drivers&lt;br /&gt;
:Optional 3-phase brushless DC motor driver&lt;br /&gt;
:1 sensor supply (5V)&lt;br /&gt;
===Communications===&lt;br /&gt;
:2 CAN 2.0b channels&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Product Summary ==&lt;br /&gt;
The SECM70 control platform fits a variety of applications, including gasoline and&lt;br /&gt;
natural gas engines for power generation, forklifts, lift trucks, and on-highway&lt;br /&gt;
vehicles. The SECM70 control is programmed to meet the specific needs of the&lt;br /&gt;
prime mover and its driven load.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
At the heart of the SECM70 control is a powerful 32-bit ST SPC563M64&lt;br /&gt;
microprocessor that runs Woodward’s ControlCore operating system. Application&lt;br /&gt;
programming is accomplished via Woodward’s MotoHawk application software&lt;br /&gt;
tool. MotoHawk is a rapid controls system development tool that allows controls&lt;br /&gt;
engineers to quickly create controls software directly within Simulink diagrams,&lt;br /&gt;
which run on any MotoHawk-enabled electronic control modules. Application&lt;br /&gt;
developers work directly in the Simulink environment and with a one-step build&lt;br /&gt;
are able to go from an application model to a file that can be programmed directly&lt;br /&gt;
into Woodward production hardware. MotoHawk provides a high-level&lt;br /&gt;
programming environment for users who have control systems expertise but&lt;br /&gt;
don’t necessarily have specific embedded programming skills. Once the&lt;br /&gt;
application program has been generated and loaded into the SECM70 control via&lt;br /&gt;
the CAN port, the user can view variables and tune the control using an&lt;br /&gt;
appropriate service interface tool such as [[ToolKit_Custom_HMI_Software|Woodward's Toolkit]] or [[MotoTune]].&lt;br /&gt;
Connection to other devices, such as a diagnostic tool, is accomplished by&lt;br /&gt;
means of other CAN ports available on the control. The desired information flow&lt;br /&gt;
is programmed into the control via [[MotoTune]] or [[ToolKit_Custom_HMI_Software|ToolKit]].&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The SECM70 control consists of a single rigid printed circuit board attached to an&lt;br /&gt;
aluminum housing using thermal adhesive, which is then closed and sealed with&lt;br /&gt;
an aluminum cover. Connections to the control are made via a single 70-pin&lt;br /&gt;
automotive-style sealed connector. The control can be mounted directly to the&lt;br /&gt;
engine or frame using vibration isolators which are available pre-installed on the&lt;br /&gt;
control or separately.&lt;br /&gt;
&lt;br /&gt;
== Datasheets ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36363 ECM-5634M-070 Family Engine Control Modules Specification Sheet (36363)]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=26776 ECM-5634M-070 Family Engine Control Modules Product Manual (26776)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Part Numbers ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Part Num !! Part w/&amp;lt;br/&amp;gt;MTG HW || HW Version !! Features&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!-- MI 1402 and 1452 --&amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;1751-6680&amp;amp;nbsp; || &amp;amp;nbsp;8923-2050&amp;amp;nbsp; || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1452.html 1452 (PROD)] || Mobile Industrial&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6649 || &amp;amp;nbsp;8923-2051 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1402.html 1402 (DEV)] || Mobile Industrial, on-the-fly calibratible&lt;br /&gt;
&amp;lt;!-- PG 1403 and 1453 --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6681 || &amp;amp;nbsp;8923-2052 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1453.html 1453 (PROD)] || Power Generation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6650 || &amp;amp;nbsp;8923-2053 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1403.html 1403 (DEV)] || Power Generation, on-the-fly calibratible&lt;br /&gt;
&amp;lt;!-- SK 1409 and 1459, 1509 and 1559 --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6682 || &amp;amp;nbsp;8923-2002 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1459.html 1459 (PROD)]|| Marine&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6721 || &amp;amp;nbsp;xxxx-xxxx || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1459.html 1559 (PROD)]|| Marine (MY15 revision, use the 1459 target)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6653 || &amp;amp;nbsp;8923-1987 || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1409.html 1409 (DEV)] || Marine, on-the-fly calibratible&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6715 || &amp;amp;nbsp;xxxx-xxxx || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1409.html 1509 (DEV)] || Marine, on-the-fly calibratible (MY15 revision, use the 1409 target)&lt;br /&gt;
&amp;lt;!-- OH 1411 and 1461 --&amp;gt;&lt;br /&gt;
&amp;lt;!-- The 14xx OH modules were never released to the public, used in-house and replaced by 15xx modules&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;''1751-6683'' || || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1461.html 1461 (PROD)]|| ''On-Highway (future release)''&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;''1751-6675'' || || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1411.html 1411 (DEV)] || ''On-Highway, on-the-fly calibratible (future release)''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- MI 1512 and 1562 --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6719 || &amp;amp;nbsp;xxxx-xxxx || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1512.html 1562 (PROD)] || Mobile Industrial&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6713 || &amp;amp;nbsp;xxxx-xxxx || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1562.html 1512 (DEV)] || Mobile Industrial, on-the-fly calibratible&lt;br /&gt;
&amp;lt;!-- PG 1513 and 1563 --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6720 || &amp;amp;nbsp;xxxx-xxxx || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1563.html 1563 (PROD)] || Power Generation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6714 || &amp;amp;nbsp;xxxx-xxxx || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1513.html 1513 (DEV)] || Power Generation, on-the-fly calibratible&lt;br /&gt;
&amp;lt;!-- PG 1515 and 1565 --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6722 || &amp;amp;nbsp;xxxx-xxxx || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1565.html 1565 (PROD)] || On-Highway&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6716 || &amp;amp;nbsp;xxxx-xxxx || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1515.html 1515 (DEV)] || On-Highway, on-the-fly calibratible&lt;br /&gt;
&amp;lt;!-- PG 1515 and 1565 --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6723 || &amp;amp;nbsp;xxxx-xxxx || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1566.html 1563 (PROD)] || Hydraulic&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;1751-6717 || &amp;amp;nbsp;xxxx-xxxx || [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5634M-070-061-1516.html 1513 (DEV)] || Hydraulic, on-the-fly calibratible&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related Part Numbers ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Part Number !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 8923-1761 || Connector Kit&lt;br /&gt;
|-&lt;br /&gt;
| 8996-2162&amp;lt;br/&amp;gt;8996-2163&amp;lt;br/&amp;gt;8996-2164 || Crimp Tools&lt;br /&gt;
|-&lt;br /&gt;
| 8996-2167 || Removal Tools&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1141 || Pig Tail&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1364 || Development Harness&lt;br /&gt;
|-&lt;br /&gt;
| 5404-1341 || Desktop Simulator Harness&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Model Variant Features ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight: bold;&amp;quot; | Function&lt;br /&gt;
! style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | MI-1402/1452&lt;br /&gt;
! style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | MI-1512/1562&lt;br /&gt;
! style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | PG-1403/1453&lt;br /&gt;
! style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | PG-1513/1563&lt;br /&gt;
! style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | SK-1409/1459&lt;br /&gt;
! style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | SK-1509/1559&lt;br /&gt;
! style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | OH-1515/1565&lt;br /&gt;
! style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | LV-1516/1566&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;font-weight: bold;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | 1751-6649/6680&lt;br /&gt;
| style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | 1751-6713/6719&lt;br /&gt;
| style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | 1751-6650/6681&lt;br /&gt;
| style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | 1751-6714/6720&lt;br /&gt;
| style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | 1571-6653/6682&lt;br /&gt;
| style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | 1571-6715/6721&lt;br /&gt;
| style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | 1751-6716/6722&lt;br /&gt;
| style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | 1751-6717/6723&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; style=&amp;quot;text-align: center; font-weight: bold;&amp;quot; | PIN #&lt;br /&gt;
|-&lt;br /&gt;
| AN1 (221k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 28&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 28&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 28&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 28&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 28&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 28&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 28&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 28&lt;br /&gt;
|-&lt;br /&gt;
| AN2 (221k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
|-&lt;br /&gt;
| AN3 (221k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22&lt;br /&gt;
|-&lt;br /&gt;
| AN4 (221k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 42&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 42&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 42&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 42&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 42 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 42 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 42&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 42&lt;br /&gt;
|-&lt;br /&gt;
| AN5 (4.75k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 43&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 43&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 43&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 43&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 43 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 43 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 43&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 43 (221k_PD)&lt;br /&gt;
|-&lt;br /&gt;
| AN6 (4.75k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 47&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 47&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 47 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 47 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 47 (221k_PD)&lt;br /&gt;
|-&lt;br /&gt;
| AN7 (51.1k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 44&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 44&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 44&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 44&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 44 (1ms T )&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 44 (1ms T )&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 44&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 47 (221k_PD)&lt;br /&gt;
|-&lt;br /&gt;
| AN8 (4.75k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 45&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 45&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 45&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 45&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 45 (51.1k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 45 (51.1k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 45&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 45 (221k_PD)&lt;br /&gt;
|-&lt;br /&gt;
| AN9 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 39&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 39&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 39&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 39&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 39 (1k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 39 (1k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 39&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 39&lt;br /&gt;
|-&lt;br /&gt;
| AN10 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 40&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 40&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 40&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 40&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 40 (1k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 40 (1k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 40&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 40&lt;br /&gt;
|-&lt;br /&gt;
| AN11 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 41&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 41&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 41&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 41&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 41 (1k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 41 (1k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 41&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 41&lt;br /&gt;
|-&lt;br /&gt;
| AN12 (4.75k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 59&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 59&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 59&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 59&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 59 (1k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 59 (1k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 59&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 59 (51.1k_PU)&lt;br /&gt;
|-&lt;br /&gt;
| AN13 (4.75k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 60 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 60 (2.21k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 60 (51.1k_PU)&lt;br /&gt;
|-&lt;br /&gt;
| AN14 (10k_PU)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 61&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 61&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 61&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 61&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 61&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| AN16 (51.1k_PD)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 46&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 46&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 62 (221k_PD)&lt;br /&gt;
|-&lt;br /&gt;
| AN17 &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 46&lt;br /&gt;
|-&lt;br /&gt;
| AN18 &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 63&lt;br /&gt;
|-&lt;br /&gt;
| AN19 &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 64&lt;br /&gt;
|-&lt;br /&gt;
| EGO1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 65/66&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 65/66&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 65/66&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 65/66&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 65/66&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 65/66&lt;br /&gt;
|-&lt;br /&gt;
| EGO2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 49/50&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 49/50&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 49/50&lt;br /&gt;
|-&lt;br /&gt;
| UEGO&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 47(SNS), 50(SR), 3(HTR), 49(TG), 33(INRC)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 47(SNS), 50(SR), 3(HTR), 49(TG), 33(INRC) (Improved accuracy)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 47(SNS), 50(SR), 3(HTR), 49(TG), 33(INRC) (Improved accuracy)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| EK1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 63/64&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 63/64&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 63/64&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 63/64&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 63/64&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 63/64&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 63/64&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| EK2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 62/46&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 62/46&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 62/46&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 62/46&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 62/46&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| SWG1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25&lt;br /&gt;
|-&lt;br /&gt;
| SWG2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27&lt;br /&gt;
|-&lt;br /&gt;
| SWG3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29&lt;br /&gt;
|-&lt;br /&gt;
| SWG4 / BOOT&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26&lt;br /&gt;
|-&lt;br /&gt;
| CAM_DG&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30&lt;br /&gt;
|-&lt;br /&gt;
| CNK_DG&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 31&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 31&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 31&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 31&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 31&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 31&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 31&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 31&lt;br /&gt;
|-&lt;br /&gt;
| SPD&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 33&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 33&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 33&lt;br /&gt;
|-&lt;br /&gt;
| CNK_VR/SPD_VR&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16/17&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16/17&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16/17&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16/17&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16/17&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16/17&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16/17&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16/17&lt;br /&gt;
|-&lt;br /&gt;
| LSO1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
|-&lt;br /&gt;
| LSO2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3&lt;br /&gt;
|-&lt;br /&gt;
| LSO3 (CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
|-&lt;br /&gt;
| LSO4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5 (Inductive capable)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5 (Inductive capable)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5&lt;br /&gt;
|-&lt;br /&gt;
| LSO5&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9 (Inductive capable)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9 (Inductive capable)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9&lt;br /&gt;
|-&lt;br /&gt;
| LSO6 (CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 10 (no CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 10 (no CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 10 (no CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 10 (no CS) (Inductive capable)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 11 (10 no CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 11 (10 no CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 10 (no CS) (Inductive capable)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 11 (166mA/Volt)&lt;br /&gt;
|-&lt;br /&gt;
| LSO7 (CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 (no CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 (no CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 (no CS)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 (no CS) &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 (no CS) &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 (166mA/Volt)&lt;br /&gt;
|-&lt;br /&gt;
| LSO8&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20&lt;br /&gt;
|-&lt;br /&gt;
| LSO9&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23&lt;br /&gt;
|-&lt;br /&gt;
| MPRD&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 55&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 55&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 55&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 55&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 55&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 55&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 55&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 55&lt;br /&gt;
|-&lt;br /&gt;
| LAMP1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 58&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 58&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 58 &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 58 (Improved diag)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 58 (Improved diag)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 58&lt;br /&gt;
|-&lt;br /&gt;
| LAMP2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 57&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 57&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 57&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 57 (Improved diag)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 57 (Improved diag)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 57&lt;br /&gt;
|-&lt;br /&gt;
| LAMP3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 56&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 56 &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 56&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 56 (Improved diag)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 56 (Improved diag)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 56&lt;br /&gt;
|-&lt;br /&gt;
| INJ1 (PH)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 34&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 34&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 34&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 34&lt;br /&gt;
|-&lt;br /&gt;
| INJ2 (PH)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 35&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 35&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 35&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 35&lt;br /&gt;
|-&lt;br /&gt;
| INJ3 (PH)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1&lt;br /&gt;
|-&lt;br /&gt;
| INJ4 (PH)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 18&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| INJ4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 12&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 12&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 12&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 12&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 12&lt;br /&gt;
|-&lt;br /&gt;
| INJ5&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| INJ6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| H1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 51/52&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 51/52&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 51/52&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 51/52&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 51/52&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 51/52&lt;br /&gt;
|-&lt;br /&gt;
| H2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 34/35&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 34/35&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| 3-Phase&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 51/34/52&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 51/34/52&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| EST1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
|-&lt;br /&gt;
| EST2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8&lt;br /&gt;
|-&lt;br /&gt;
| EST3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 11&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 11&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 11&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 11&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 11&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| EST4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21&lt;br /&gt;
|-&lt;br /&gt;
| EST5&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 18&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 18&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 18&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 18&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 18&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 18&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13&lt;br /&gt;
|-&lt;br /&gt;
| EST6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14&lt;br /&gt;
|-&lt;br /&gt;
| EST7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13&lt;br /&gt;
|-&lt;br /&gt;
| EST8&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14&lt;br /&gt;
|-&lt;br /&gt;
| MotorPhaseVSense_A&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 58&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 58&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| MotorPhaseVSense_B&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 57&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 57&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| MotorPhaseVSense_C&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 56&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 56&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compiler ==&lt;br /&gt;
Green Hills version 4.2.4 &amp;lt;br/&amp;gt;&lt;br /&gt;
GCC for PowerPC EABI-SPE version 4.6.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==BootKey==&lt;br /&gt;
A malfunctioning application previously loaded on the SECM70 can be recovered using the [[Boot key recovery|BootKey recovery]].&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The BootKey signal needs to be connected to the '''SWG4''' pin.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
==Bootstrap==&lt;br /&gt;
The SECM70 can be forced to remain in the firmware bootloader by applying a bootstrap sequence.  The bootstrap sequence is:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;amp;nbsp;&amp;amp;nbsp;Pin&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; !! State for Boot&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN1 || &amp;amp;nbsp;&amp;amp;nbsp;High&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN2 || &amp;amp;nbsp;&amp;amp;nbsp;High&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN3 || &amp;amp;nbsp;&amp;amp;nbsp;High&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN4 || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN5 || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN6 || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN7 || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN8 || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN9 || &amp;amp;nbsp;&amp;amp;nbsp;Low&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN10 || &amp;amp;nbsp;&amp;amp;nbsp;Low&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;AN11 || &amp;amp;nbsp;&amp;amp;nbsp;Low&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Frequently Asked Questions/Topics ==&lt;br /&gt;
&lt;br /&gt;
=== Is the Marine variant suited for sensorless 3-phase brushless motor? ===&lt;br /&gt;
To introduce this answer, we review that it is possible to run a 3-phase brushless DC motor with and without position sensors.  A position sensor can directly indicate the position of a motor shaft. Sensorless systems are advanced enough to determine the position of the shaft through back-EMF waveforms, although complexity will increase greatly under very small signal to noise ratios (when the motor is just starting and at very slow speeds.)&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Woodward has design protected for sensorless 3-phase brushless DC motor operation in SECM70, but the Marine variant is &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; suited for this application.  &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The Marine variant SECM70 should always be designed to operate a 3-phase brushless motor with hall position sensors connected to module pins 56,57,58 for PhaseC, PhaseB, PhaseA, respectively.  MotoHawk Input Capture blocks can then be used with the resources MotorPhaseVSense_A, MotorPhaseVSense_B, and MotorPhaseVSense_C.  The Input Capture behavior allows the application to be notified of an input pin state change, which correlates to a sample every 60 degrees.  The algorithm to calculate motor position and speed is outside the scope of what MotoHawk is providing in support of this module.&lt;br /&gt;
&lt;br /&gt;
=== Can I diagnose PWM EST outputs? ===&lt;br /&gt;
Due to the nature of the hardware, EST diagnostics are only available when driven as a sequence and not as a PWM.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The ESTs have a caveat that certain groups must not turn off at the same time as there is shared diagnostic HW.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The groupings where you should avoid turning off at the same time are:&amp;lt;br/&amp;gt;&lt;br /&gt;
EST 1,2 &amp;lt;br/&amp;gt;&lt;br /&gt;
EST 3,4 &amp;lt;br/&amp;gt;&lt;br /&gt;
EST 5,6,7,8&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How is LSO3 different than LSO6/LSO7 on the Marine variant? ===&lt;br /&gt;
LSO3 current sense is only able to measure current when the driver is in the '''On''' state.  This is common to all the module variants.  The Marine variant has additional current sense for LSO6 and LSO7.   The current measurement at pins 11 and 15, respectively, will measure the current when the driver state is '''On''' and '''Off'''.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How would you use the H1GATE_ENABLE output? ===&lt;br /&gt;
The H1GATE_ENABLE can be used to reset the ASIC responsible for driving H1 the SECM70.  If H1GATE_ENABLE is not referenced in the application, then by default it will always be set in an enabled state.  If a reset of the ASIC is necessary, it is suggested to set H1GATE_ENABLE to false (logic 0) for one RTI period and then return H1GATE_ENABLE to true (logic 1).&lt;br /&gt;
&lt;br /&gt;
=== Why do I see a high current on H1 when in Fault or H1GATE_ENABLE is disabled? ===&lt;br /&gt;
Current measurement is obtained by sampling analog outputs from the ASIC.  These outputs are centered at 2.5V such that +ve and -ve currents can be reported.  However when in fault or disabled, the analog output channel goes to 0V and therefore is reported to have Max current. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=Compilers&amp;diff=3920</id>
		<title>Compilers</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=Compilers&amp;diff=3920"/>
		<updated>2015-05-14T02:57:30Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Using CodeWarrior */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Supported Compilers ==&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
!Module / Family &lt;br /&gt;
!Green Hills Compiler 3.6&lt;br /&gt;
!Green Hills Compiler 4.2.1&lt;br /&gt;
!Green Hills Compiler 4.2.4&lt;br /&gt;
!GCC 4.4.0SP1&lt;br /&gt;
!GCC 4.6.0&lt;br /&gt;
!CodeWarrior 4.6&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|GCM-0S12-024 &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X &lt;br /&gt;
|-&lt;br /&gt;
|ECM-S12X-70&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X &lt;br /&gt;
|-&lt;br /&gt;
|ECM-0S12-024&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X &lt;br /&gt;
|-&lt;br /&gt;
|ECM-5554-112&lt;br /&gt;
|&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HCM-0563-48&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GCM-0563-48 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECM-0563-48&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GCM-0565-024 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
||ECU-0565-128 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECU-0555-80 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECU-0555-48 &lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ECM-3R&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |          X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GCC Compilers ==&lt;br /&gt;
&lt;br /&gt;
GCC is a free open source GNU compiler that can be used with the MCS floating point PowerPC ECUs.  It is recommended that Greenhills be used for any production or production intent program.&lt;br /&gt;
&lt;br /&gt;
GCC Cannot be used with the S12/S12X modules.  CodeWarrior is required.&lt;br /&gt;
&lt;br /&gt;
'''MotoHawk Version Requirements:'''&lt;br /&gt;
Support for the GCC compilers was added in MotoHawk 2009b SP0.  MotoHawk versions lower than 2009b SP0 must use the Greenhills compiler.&lt;br /&gt;
Motohawk 2009b through 2011a supports GCC 4.4.0 SP1&lt;br /&gt;
Beginning in 2011b, support for GCC 4.4.0 SP1 was replaced by GCC 4.6.0&lt;br /&gt;
&lt;br /&gt;
The GCC compilers can be downloaded [http://mcs.woodward.com/user/downloadOptional.php here].  You must be logged into the MCS site, with Beta Access, in order to download GCC.&lt;br /&gt;
&lt;br /&gt;
'''eabi vs eabi SPE'''&lt;br /&gt;
''There are two GCC compilers.''&lt;br /&gt;
* GCC PowerPC eabi is for use with the MPC 5xx processors, such as the GCM/HCM/ECM-0563-48, ECM-555-080, ECM-555-48, and ECM-0565-128 modules.&lt;br /&gt;
* GCC PowerPC eabi '''SPE''' is for use with the MPC 55xx processors, such as the ECM-5554-112 module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Green Hills Compiler ==&lt;br /&gt;
&lt;br /&gt;
The Green Hills Compiler (GHS) is a part of the installed program requirements for using MotoHawk. GHC is used with MATLAB and MotoHawk for the purpose of helping compile the programs to be used with targeted MotoHawk ECMs. GHS is useful for compiling programs for the ECMs featuring the Freescale 5xx and 55xx processors.&lt;br /&gt;
&lt;br /&gt;
== Green Hills Compiler Installation ==&lt;br /&gt;
To install the GHC application from a CD: &lt;br /&gt;
&lt;br /&gt;
#Insert CD in drive. Click Start-&amp;gt;Run and double-click Setup.exe. &amp;lt;BR&amp;gt;Follow on-screen instructions. (try to leave the default install directory) &amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
#If you do not already have a license launch the License Request Generator:&amp;lt;BR&amp;gt;In Windows, select '''Start-&amp;gt;All Programs-&amp;gt;Multi2000, PowerPC v3.6-&amp;gt;Licensing-&amp;gt;License Request Generator'''&amp;lt;BR&amp;gt;You may want to request an evaluation license initially. This will help get you started faster.&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
#If you have a license run the License installer:&amp;lt;BR&amp;gt;In Windows, select '''Start-&amp;gt;All Programs-&amp;gt;Multi2000, PowerPC v3.6-&amp;gt;Licensing-&amp;gt;Install Licenses'''&amp;lt;BR&amp;gt;&lt;br /&gt;
#Select your .key file and then install all the licenses. &amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using GHS ==&lt;br /&gt;
&lt;br /&gt;
Before using GHC with MotoHawk, there are a few items to consider: &lt;br /&gt;
* If targeted, the 5xx-based processors default to using GHS 3.6, although they work with later versions(4.2.1). &lt;br /&gt;
* The 55xx-based  processors default to using GHS 4.2.1 and will work with later versions, but will not work with GHS 3.6. &lt;br /&gt;
* '''If you are using GHS version 4.2.1''', you will need to specify the License Manager. To do this, you would create and set an environment variable GHS_LMWHICH and set its value to &amp;quot;elan.&amp;quot;&amp;lt;BR&amp;gt;* If you are not going to use the default compiler version you will need to set an environment variable. Set GHS_DIR to the directory which has the compiler you want to use; the default for 4.2.1 is &amp;quot;C:\GHS\ppc421&amp;quot;  (other versions follow this naming convention).&lt;br /&gt;
* There is also a Tool Chain block in MotoHawk that will allow you to select which compiler to use, if necessary. Find it using Simulink Library Browser; it is located in the MotoHawk-&amp;gt;Build library.&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
'''Note:'''  To set an environment variable:&amp;lt;BR&amp;gt;In Windows, select '''Start-&amp;gt;(right-click)My Computer-&amp;gt;Properties-&amp;gt;Advanced tab-&amp;gt;Environment Variables''', then click on New, and fill in the Variable name and value, then click OK.&lt;br /&gt;
&lt;br /&gt;
== Common GHS Issues ==&lt;br /&gt;
*Matlab returns an error ===Green Hills Compiler License Not Available===&amp;lt;BR&amp;gt;&lt;br /&gt;
#Check that GHS purple dongle is plugged in&lt;br /&gt;
#Check that GHS_DIR is pointing to the correct compiler directory&lt;br /&gt;
#Check that the license is installed correctly&lt;br /&gt;
&lt;br /&gt;
*At install of the license a warning box pops up saying Server Code Mismatch:&amp;lt;BR&amp;gt;&lt;br /&gt;
:The license you specified were created for a different server code. Your server code has either changed since you requested your license, or you are trying to install them on the wrong machine. Please consult the documentation or contact the Green Hills license administrator for assistance.&lt;br /&gt;
# Verify that the USB or parallel port is working correctly.&lt;br /&gt;
# Log in as Administrator&lt;br /&gt;
# Unplug the key(s).&lt;br /&gt;
# Remove the old Sentinel Protection Server/Driver/Combo and reinstall the Sentinel Protection Installer.  Go to Start &amp;gt; Settings &amp;gt; Control Panel &amp;gt; Add or Remove Programs (Vista is Programs and Features).  Select both the Sentinel Protection Installer and Sentinel System Driver, and then click Remove.&lt;br /&gt;
# Shut Down and Restart the computer system&lt;br /&gt;
# Download and install the new Sentinel Protection Installer at http://www.safenet-inc.com/support/tech/latestdriver.asp.  NOTE: If you are using Standalone applications, you can do the custom install and you can uncheck Server from the installation.  The Sentinel Keys Server only needs to be installed on a SHK key server computer.  The Sentinel Protection Server only needs to be installed on a SuperPro and/or UltraPro key server computer.&lt;br /&gt;
# Plug in the key(s).&lt;br /&gt;
# Download the Medic utility http://www.safenet-inc.com/support/files/SuperproMedic.exe or http://www.safenet-inc.com/support/files/sam1.2.exe and run it to make sure the key(s) is being detected correctly.  Medic does not detect the 64-bit operating system version correctly.  If Medic detects the key, then the computer, operating system, port, key and driver are working correctly.&lt;br /&gt;
&lt;br /&gt;
== CodeWarrior Installation ==&lt;br /&gt;
To install the CodeWarrior application from a CD: &lt;br /&gt;
&lt;br /&gt;
#Insert CD in drive. Click Start-&amp;gt;Run and double-click Setup.exe. &amp;lt;BR&amp;gt;Follow on-screen instructions. (try to leave the default install directory) &amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
== Using CodeWarrior ==&lt;br /&gt;
&lt;br /&gt;
Before using CodeWarrior with MotoHawk, there are a few items to consider: &lt;br /&gt;
* The S12 processors default to using CodeWarrior 4.6 and will not work with later versions. The [http://www.freescale.com/webapp/sps/site/overview.jsp?code=CW_LEGACY&amp;amp;fsrch=1&amp;amp;sr=1&amp;amp;pageNum=1 Freescale legacy downloads] page may provide an avenue to obtain CodeWarrior 4.6. A Freescale Service Request could also be used to request this version.&lt;br /&gt;
* If you are not going to use the default compiler version you will need to set an environment variable. Set CW_DIR to the directory which has the compiler you want to use; the default for 4.7 is &amp;quot;C:\Program Files\Freescale\CodeWarrior for HCS12 V4.7&amp;quot;  (other versions follow this naming convention).&lt;br /&gt;
* There is also a Tool Chain block in MotoHawk that will allow you to select which compiler to use, if necessary. Find it using Simulink Library Browser; it is located in the MotoHawk-&amp;gt;Build library.&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
'''Note:'''  To set an environment variable:&amp;lt;BR&amp;gt;In Windows, select '''Start-&amp;gt;(right-click)My Computer-&amp;gt;Properties-&amp;gt;Advanced tab-&amp;gt;Environment Variables''', then click on New, and fill in the Variable name and value, then click OK.&lt;br /&gt;
&lt;br /&gt;
If you are using CodeWarrior on a 64-bit machine, select 'Custom' install and de-select to install Debugging.&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=SECM112&amp;diff=3918</id>
		<title>SECM112</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=SECM112&amp;diff=3918"/>
		<updated>2015-05-07T01:28:31Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Internal Temperature Monitor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Module ==&lt;br /&gt;
[[Image:ECM-5644A-112-048-1202-xD.jpg|100px|112 Pin ECM-OH]] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
==Overview==&lt;br /&gt;
The SECM112  is part of the engine management system for on-highway applications, which can include L6 4-stroke CNG intercity transit applications, L6, 4-stroke LNG intercity transit applications, and L4 4-stroke commercial vehicle 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&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The SECM112 features two microprocessors in one rugged production intent housing.  The module contains a main MPC5644 120Mhz processor along with a S12G fixed point processor, which can provide question-answer type challenge to the main processor.  Both micros are connected on CAN1.&lt;br /&gt;
&lt;br /&gt;
The SECM112 is part of the MotoHawk Control Solutions ControlCore® family of embedded control systems. The ControlCore operating system,&lt;br /&gt;
MotoHawk® code generation product, and MotoHawk’s suite of development tools enable rapid development of complex control systems.  Application code for both processors is developed in MotoHawk which allows the application developer to create applications directly in Simulink and build with a one step 'CNTL-B' build.   The two controllers act like separate controllers in terms of programming.  Then, the program can be flashed onto the micro using Woodward's MotoTune, Toolkit, or through industry standard 3rd party tools via xCP, or ISO15765.    &lt;br /&gt;
&lt;br /&gt;
Calibration can  be done with Woodward's MotoTune or Toolkit or with industry standard 3rd Party tools through xCP.&lt;br /&gt;
&lt;br /&gt;
Each controller is available in ‘F’ (Flash) or ‘C’ (Calibratible) versions. Flash modules are typically used for production purposes. Calibratible modules are typically for prototyping/development only; they can be calibrated in real time using MotoTune, ToolKit, or industry standard 3rd party tools via xCP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Power Requirements ==&lt;br /&gt;
All versions of the SECM112 Control require a voltage source of 8 to 32Vdc (12Vdc or 24Vdc nominal).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MotoHawk Requirements ==&lt;br /&gt;
MotoHawk 2012bSP0 or higher is required for SECM112.&lt;br /&gt;
&lt;br /&gt;
This means Matlab 2010b or higher is required, as MotoHawk supports Matlab 2 years backward.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compilers ==&lt;br /&gt;
'''Main Micro''': Green Hills 4.2.4   or GCC PowerPC eabi SPE 4.6&lt;br /&gt;
&lt;br /&gt;
'''Auxillary''':  Freescale CodeWarrior 4.6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Targets ==&lt;br /&gt;
The SECM-112 has different Targets for the MAIN Prod and Dev modules as shown below.  The S12G auxillary processor also has it's own target.  &lt;br /&gt;
&lt;br /&gt;
'''Main Processor''' &lt;br /&gt;
&lt;br /&gt;
1751-6601:  Target ECM-5644A-112-048-1204  DEV&lt;br /&gt;
&lt;br /&gt;
1751-6605: Target ECM-56542A-112-049-1200 PROD &lt;br /&gt;
&lt;br /&gt;
'''Auxillary Processor''':  Target ECM-S12G-112-059-1200   PROD Only&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
== Datasheets ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36364 SECM112 Datasheet (36364)]&lt;br /&gt;
&lt;br /&gt;
== Control Features ==&lt;br /&gt;
[[Image:ECMOH1.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Standard features common to both models are:&lt;br /&gt;
*2 engine speed inputs: camshaft and crankshaft speed (software configurable for variable reluctance (VR) magnetic pickup sensor or Hall effect proximity sensor inputs)&lt;br /&gt;
* Up to 6 frequency inputs (some share analog resources)&lt;br /&gt;
* Up to 33 analog inputs&lt;br /&gt;
* 3 switch inputs&lt;br /&gt;
* 2 HEGO sensor inputs&lt;br /&gt;
* 2 LSU sensor inputs (also known as UEGO sensors)&lt;br /&gt;
* 2 knock sensor inputs&lt;br /&gt;
* 3 transducer power outputs providing +5V (350mA &amp;amp; 100mA) and +12V (100mA)&lt;br /&gt;
* 2 H-bridge driver outputs providing 10A and 5A drive capability and current sense feedback&lt;br /&gt;
* 6 Injector drivers providing software configurable peak and hold current levels (up to 7A/2A)&lt;br /&gt;
* 6 ignition coil drivers&lt;br /&gt;
* MPRD (Master Power Relay Driver) low side output&lt;br /&gt;
* TACH low side output&lt;br /&gt;
* 16 low side output drivers (1 with current sense feedback)&lt;br /&gt;
* 3 CAN (Controller Area Network) communications ports&lt;br /&gt;
* 4K-byte serial EEPROM for tunable parameter storage&lt;br /&gt;
* Auxiliary micro with 128k of flash, 8k of RAM, 4k of EEPROM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
==== Analog Inputs (AN1 – AN34)====&lt;br /&gt;
There are 34 analog inputs on the SECM112. The analog inputs have either a pull-up resistor as shown in Figure 2-12, or a pull-down resistor as shown in&lt;br /&gt;
Figure 2-13. Five analog inputs have a software pull-up or pull-down selection via calibration. AN21 &amp;amp; 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.&lt;br /&gt;
&lt;br /&gt;
The Analog Inputs are [[12-bit_ADC|12-Bit ADC]]&lt;br /&gt;
&lt;br /&gt;
===== Fast Analog Channels =====&lt;br /&gt;
ANx_FAST channels are sampled faster than the equivalent ANx. This is needed on SECM112 because of how ADC bandwidth is consumed. SECM112 utilizes most of the available ADC bandwidth to service the reaction channel’s load current sampling. This means that the continuous scan queue sampling that is used by the other channels will take much longer than it normally takes on other modules. SECM112 FAST channel will be sampled every 90us where as normal channels will sample within 1ms (860us) worst case. The 1ms conversion time is problematic for threads of execution that execute at 1ms since the data is sometimes old and sometimes new. &lt;br /&gt;
&lt;br /&gt;
There is no need for such channels on the other ECUs because the ADC bandwidth is not being consumed like it is on the SECM112 and so all the channels are effectively sampled FAST.&lt;br /&gt;
&lt;br /&gt;
==== Crank and CAM Inputs ====&lt;br /&gt;
The Cam and Crank (CNK) inputs are used to detect engine speed and angular position relative to TDC.   The SECM112 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&lt;br /&gt;
input has dedicated connector pins.  See the SECM112 datasheet for additional detail.&lt;br /&gt;
&lt;br /&gt;
==== Digital Inputs ====&lt;br /&gt;
The SECM112 has 8 Discrete Inputs.  Some may be used as switch inputs, others support frequency measurement.&lt;br /&gt;
&lt;br /&gt;
==== Lambda Sensor Unit (UEGO) Inputs ====&lt;br /&gt;
The SECM112 control has two LSUs (Lambda Sensor Units), also known as UEGO (Universal Exhaust Gas Oxygen) inputs, which interface with Bosch LSU4.9 wide range oxygen sensors (Lambda sensors). The lambda-sensor(s) works in conjunction with the on-board Bosch CJ125 ASIC(s) to provide continuous regulation of  for a sensor in the range of  = 0.65... (air). 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.&lt;br /&gt;
&lt;br /&gt;
==== Knock Sensor Inputs ====&lt;br /&gt;
The SECM112 supports two Knock Sensor inputs.&lt;br /&gt;
&lt;br /&gt;
Knock is implemented on the SECM112 in MotoHawk by the Knock by Decimation blockset.   This is a specialized blockset and is included with Standard MotoHawk in 2014a and higher.&lt;br /&gt;
&lt;br /&gt;
=== Outputs ===&lt;br /&gt;
==== Low-side Outputs (LSO)====&lt;br /&gt;
The SECM112 control has 16 low-side outputs (LSOx &amp;amp; SPK8) that can be used as Boolean outputs for driving relays, or some as PWM outputs. LSO1 and LSO2&lt;br /&gt;
are also designed to drive the heater coil on a LSU sensor. Some low-side outputs are provided with freewheeling diodes (internal to the ECM-OH through&lt;br /&gt;
DRVP or BATT) to suppress the back EMF caused by inductive loads. See the ECM-OH datasheet for low-side output capabilities and characteristics.  The LSOs are clamped and can be used to drive relays.&lt;br /&gt;
&lt;br /&gt;
==== Injector Outputs ====&lt;br /&gt;
The SECM112 control has 6 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.&lt;br /&gt;
&lt;br /&gt;
===== Reaction Module Blockset =====&lt;br /&gt;
The peak-hold current level is software configurable through the [[Reaction_Module_Blockset|MotoHawk Reaction Channel Blockset]].&lt;br /&gt;
&lt;br /&gt;
Peak current cannot be run simultaneously on more than 3 injectors on the SECM112 control.&lt;br /&gt;
&lt;br /&gt;
==== Spark Outputs ====&lt;br /&gt;
The SECM112 has 6 IGBT ignition coil drivers each capable of delivering up to 10A of peak dwell current.&lt;br /&gt;
&lt;br /&gt;
The Spark Outputs can be globally disabled via the main core's discrete output DRVR_ENABLE resource. The behavior of these outputs can also be affected by the [[SECM112#Targets | Auxiliary Processor]] via its ability to disable the Master Power Relay (which will also disable the encoder's Crank and Cam inputs).&lt;br /&gt;
&lt;br /&gt;
A special blockset has been created for control and diagnostics of the MC33810 chip which is the driver for the IGBT coil drivers on the SECM112.  See [[MC33810_Blocks|here]] for more detail on the blocks related to the MC33810.&lt;br /&gt;
&lt;br /&gt;
==== H-bridge Outputs ====&lt;br /&gt;
The SECM112 control has two H-bridge outputs that can be used to drive electric motors like butterfly throttle valves.  The H-Bridge outputs are provided with freewheeling diodes (internal to the SECM112 through DRVP) to suppress the back EMF caused by inductive loads.&lt;br /&gt;
&lt;br /&gt;
The H-bridge Outputs can be disabled by the [[SECM112#Targets | Auxiliary Processor]].&lt;br /&gt;
&lt;br /&gt;
==== MPRD Output ====&lt;br /&gt;
The MPRD Output is a common feature of almost all Woodward ECUs and is used to energize the Master Power Relay under application control.&lt;br /&gt;
&lt;br /&gt;
The MPRD Output can be disabled by the [[SECM112#Targets | Auxiliary Processor]], which also has the side effect of disabling the encoder inputs (Crank and Cam).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Output Fault Detection ==&lt;br /&gt;
Output Fault Detection for the SECM112 is through the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/IOFaultStatus.html IO Fault Status block] and the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2013bSP0/HTML/MotoHawk_lib_Blocks/FaultStatusGet.html IO Fault Status Get] block.  This block will report a &amp;quot;0&amp;quot; if the driver is not reporting a fault, a &amp;quot;1&amp;quot; if the driver is detecting a fault, or in some cases a &amp;quot;2&amp;quot; for indeterminate.  The faults that can be detected depend on the capability of the driver.  Outputs driven by the MC33810 driver have additional fault reporting capability that can be exposed through the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2013bSP0/HTML/MotoHawk_lib_Blocks/MC33810FaultDetail.html MC33810 Fault Detail Block].  This block reports the last fault reported by the MC33810 driver and so the report from this block does not clear when the fault state is removed.  The IO Fault Status block should be used to detect whether a fault condition is detected, and then the detail block can be used to detect which fault was reported.  The fault detection capabilities of the SECM112 outputs are described below:&lt;br /&gt;
&lt;br /&gt;
=== H-Bridges ===&lt;br /&gt;
For the h-bridges, shorted load faults can be reported.  Shorted load reporting for each H-bridge is through overcurrent detection.  See the SECM Hardware Manual for minimum overcurrent threshold values.  Current Monitoring should be used in the application model for further diagnosis, such as for open load detection.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Injectors ===&lt;br /&gt;
SECM112’s injector drivers utilize the microprocessor’s Reaction Module for diagnosis. Reaction module diagnosis is based upon observing current and therefore INJ faults can only be detected when the INJ pins are asserted. Observed faults are cached until reported, where they are then cleared. Detection while not asserted is not possible. Therefore the fault status of an INJ output should only be queried once after an actuation event. Querying too often may result in no fault being reported even if the queried INJ output is currently in fault (e.g. open circuit). The [http://mcs.woodward.com/content/motohawk/Documentation/CurretVersion/HTML/MotoHawk_lib_Blocks/PHWOTReactionChannel.html PHWOT Reaction Channel] MotoHawk help provides further detail.&lt;br /&gt;
&lt;br /&gt;
Currently only the IO Fault Status block allows the fault status of an INJ output to be queried.&lt;br /&gt;
&lt;br /&gt;
=== Spark ===&lt;br /&gt;
The Spark outputs are driven by the IGBT drivers of the [http://www.google.com/url?url=http://www.freescale.com/webapp/sps/site/prod_summary.jsp%3Fcode%3DMC33810&amp;amp;rct=j&amp;amp;frm=1&amp;amp;q=&amp;amp;esrc=s&amp;amp;sa=U&amp;amp;ei=Uli1U7zYA5GcyASd_IH4BQ&amp;amp;ved=0CBQQFjAA&amp;amp;usg=AFQjCNGOgPiWwAV_dZ-bz4R4ETEkNGjTXQ MC33810 driver]. &lt;br /&gt;
&lt;br /&gt;
'''The spark output diagnostics assume the SPK outputs are driving an ignition coil as a load.'''  &lt;br /&gt;
&lt;br /&gt;
Comprehensive fault diagnosis when used with ignition coils is described in the [http://www.google.com/url?url=http://www.freescale.com/webapp/sps/site/prod_summary.jsp%3Fcode%3DMC33810&amp;amp;rct=j&amp;amp;frm=1&amp;amp;q=&amp;amp;esrc=s&amp;amp;sa=U&amp;amp;ei=Uli1U7zYA5GcyASd_IH4BQ&amp;amp;ved=0CBQQFjAA&amp;amp;usg=AFQjCNGOgPiWwAV_dZ-bz4R4ETEkNGjTXQ MC33810 Datasheet].   The diagnostic approach is based upon analysis of multiplexed feedback signals that go to the MC33810 which require that the actuators don’t de-assert (i.e. spark) at the same time.  Overlap is possible with PWM and discrete, therefore, diagnosis is less capable or impossible when the SPK outputs are driven by PWM or Discrete output blocks. &lt;br /&gt;
&lt;br /&gt;
'''Note''' that SPK8 is different from the other SPK outputs in that it is a MOSFET.  SPK8 has short while asserted and open while not asserted detection and can be used with the MC33810 Fault Detail block. It is a GPGD type output and thus can use the MC33810 blocks related to GPGD configuration.  Unlike the other spark outputs, SPK8 diagnosis is fully functional when not being driven with an engine position synchronous behavior.&lt;br /&gt;
&lt;br /&gt;
A special blockset has been created for control and diagnostics of the MC33810 chip which is the driver for the IGBT coil drivers on the SECM112.  See [[MC33810_Blocks|here]] for more detail on the blocks related to the MC33810.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LSOs ===&lt;br /&gt;
There are three types of drivers for the LSOs on the SECM112.  Each has slightly different fault reporting capability which is described below.&lt;br /&gt;
* '''LSO1-6''':  reports open circuit or short to ground while de-asserted and short when asserted. LSO6 has current sense as well. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''LSO 7,8,9,11, 12, 13, 14, TACH:'''  These LSOs are driven by MC33810.  Faults of Open while Asserted, Open while De-asserted, and Short to Battery can be reported.  The IO Fault Status block reports the fault state, however there is also an MC33810 Fault Detail block that gives the last fault reported.   The IO Fault Status block should be used to indentify that there is a fault and then the MC33810 Fault Detail block can identify which fault was reported.  The open while asserted fault is detected through current monitoring.   Currents less than 200mA can cause an open while asserted fault to be reported.  Therefore, if the load current is expected to be under 200mA, the Open While Asserted diagnostic should be disabled via the Open Load While Asserted Configuration block.  A special blockset has been created for control and diagnostics of the MC33810 chip which is the driver for the IGBT coil drivers on the SECM112.  See [[MC33810_Blocks|here]] for more detail on the blocks related to the MC33810.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''LSO10''': reports open or short to GND while de-asserted, and short while asserted.  The IO Fault Status block will report a “2” if no fault is detected, or a “1” if a fault state is detected.  It will not report a &amp;quot;0&amp;quot; (OK).   There is a Fault Detail block that will also report which type of fault (Open or Short) has been detected.   Note that the Fault Detail block can still report indeterminate (2) in some cases, but can more clearly identify whether a particular fault is active. For example, while LSO10 is de-asserted the fault detail for LSO10 will report the open fault as being either OK (0) or in fault (1), but will sometimes intermittently report indeterminate(2). The short to battery would continuously report indeterminate (2) while off. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''LSO15''':  reports open or short to GND while de-asserted, and short while asserted.   There is not a block to detect which fault is being set, but the state of the output (On or Off) could be used in the application model.  This will report “2” if no fault is detected, or a “1” if a fault state is detected. &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Internal Temperature Monitor ===&lt;br /&gt;
The SECM112 has an internal temperature monitor that can be accessed via the '''Get Module Data''' block. So, for example, you could implement a Simulink model that logged the maximum observed MicroTemp to NVM. &lt;br /&gt;
&lt;br /&gt;
[[Image:GetModuleData_JunctionTemp.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Shared Resources between the Main and Auxillary S12 cores ==&lt;br /&gt;
The following are shared between the main and s12G cores:&lt;br /&gt;
&lt;br /&gt;
Analog inputs: AN01-05, AN16, AN17, AN18, AN24, AN31, VCAL, KEYSW&lt;br /&gt;
&lt;br /&gt;
Digital inputs: VR1/DG1 (after mux), DG3, DG4, DG5, DG8, Wake-up (on XIRQ) from main core, reset from main core*, main core status&lt;br /&gt;
&lt;br /&gt;
Comms: CAN1&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* There is a shared line for reset of the S12 by the main core, however, this is not available to the application.  There is no block to set it.   It is currently only used during programming to turn the S12 off to prevent CAN bus errors or erroneous resets&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Communications ===&lt;br /&gt;
==== CAN ====&lt;br /&gt;
The SECM112 has three 2.0B CAN ports for distributed I/O, distributed control, and Human Machine Interface (HMI) purposes.&lt;br /&gt;
&lt;br /&gt;
 Important: The SECM112 is programmed at the factory with a sample application that sets CAN-1 of both the Main and Auxillary Cores to 500k baud rate.   &lt;br /&gt;
 '''Both Cores are internally connecxted within the ECU on CAN-1'''.&lt;br /&gt;
 '''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.'''&lt;br /&gt;
 '''Each Core must also have a Unique City ID for MotoTune defined in the CAN Definition Block'''&lt;br /&gt;
&lt;br /&gt;
For programming the SECM112, 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-ID’s.   The module ships pre-programmed with an application that sets the &lt;br /&gt;
Baud rate for both cores to 500k, with City ID of main – 0xB and the City ID of the aux 0x81.    &lt;br /&gt;
&lt;br /&gt;
The hardboot (settings used to program the module by boot key or boot harness) if it needs to be recovered are: &lt;br /&gt;
Main: 250k b/s  City ID 0xB&lt;br /&gt;
Aux: 250k b/s City ID 0x81&lt;br /&gt;
&lt;br /&gt;
To change the baud rate on CAN-1, first program the main core.  Cycle power to put auxiliary in hardboot, the program the auxiliary as above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5644A-112-048-1204-xD.html MotoHawk Target Cross Reference] ===&lt;br /&gt;
The [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5644A-112-048-1204-xD.html MotoHawk Target Cross Reference] shows which IO on the ECM-OH hardware is supported by which behavior (blocks).  There are charts showing behavior vs pin as well as pin vs behavior.  This is the software help document for the module.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[Reaction_Module_Blockset|The Reaction Module Blockset]] and the SECM112==&lt;br /&gt;
The standard PSP blocks (Injector Sequence, Dual PSP, Multiple PSP..) are supported on the SECM112, but configuration of the Reaction Module '''is Required''' for Injection on the SECM112. &lt;br /&gt;
&lt;br /&gt;
Peak-Hold timing is configured by the Reaction Module, '''and the peak-hold input port on the sequence blocks is ignored.'''&lt;br /&gt;
&lt;br /&gt;
See the article on the [[Reaction_Module_Blockset|Reaction Module Blockset]] for additional details.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MC33810 Spark Blockset and the SECM112 ==&lt;br /&gt;
Many of the Woodward MCS ECMs have EST outputs which provide 0-5V TTL level outputs for smart coils.  The SECM112 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.&lt;br /&gt;
&lt;br /&gt;
See the article on the [[MC33810_Blocks|'''MC33810 Configuration blocks''']] for more detail.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Calibration Memory ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''The SECM112 has 64k of Calibration memory available.'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are porting an application from another ECU (ex. the 128-pin) the SECM-112 may have less calibration memory available.  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.    However, the SECM112 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 descision 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 on-line calibration.   The SECM112 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.&lt;br /&gt;
&lt;br /&gt;
The SECM112 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.  Some calibration values may be able to be moved to NV storage  (ex. Calibration NV).&lt;br /&gt;
&lt;br /&gt;
Recommendations to reduce calibration memory in the application:&lt;br /&gt;
&lt;br /&gt;
1. '''Review and Optimize Datatypes'''. The first thing to look at in reducing calibration memory is 64 bit vs 32 bit.  Double is the Simulink default, but is often larger than required.   Convert calibratons to 32-bit (single) or smaller datatypes.&lt;br /&gt;
  &lt;br /&gt;
2. '''Review and Optimize Tables'''. The next big item is table optimizations.  It is likely that 32-bit floating point is not needed for every table and can be reduced.  Reducing the dimenstions of tables would also reduce the memory usage.&lt;br /&gt;
&lt;br /&gt;
== The Main Power Relay Block and the S12G Auxillary processor ==&lt;br /&gt;
A common question is whether the MotoHawk MPRD block should be placed in the application for the S12G auxillary 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.  &lt;br /&gt;
&lt;br /&gt;
Also, the MPRD block is intended as a starting point and is intended to be modified to suite specific application shutdown requirements (right click the block and select Look Under Mask).&lt;br /&gt;
&lt;br /&gt;
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 auxillary S12G, it is nessessary to remove the MPRD discrete output from the block.   The below link has an example MPRD block modified for the ECM-OH Auxillary processor.&lt;br /&gt;
&lt;br /&gt;
[http://mcs.woodward.com/user/download.php?filename=562 ECM-OH Example of Modified MPRD for the S12G]&lt;br /&gt;
&lt;br /&gt;
== Recovering the SECM112==&lt;br /&gt;
Occasionally, errors in programming may require that the module be recovered with a boot key or boot sequence. The following section describes recovery procedure for the SECM112.  For more information, see [[Boot_key_recovery|Boot Key Recovery]].&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Important: Remove the ECU from all control connections before attempting to recover the module.'''&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Default Bootloader MotoServer Settings (Recover/Bootstrap Mode):'''&lt;br /&gt;
&lt;br /&gt;
Main Core: 250kbps on CAN-1, City ID 0x0B (11)&amp;lt;br&amp;gt;&lt;br /&gt;
S12G Core: 250kbps on CAN-1, City ID 0x81 (129)&lt;br /&gt;
&lt;br /&gt;
The SECM112 has two microprocessor cores, the Main Core and the Auxillary S12G. Both processors are connected on CAN1, so it is important that both processors configure their CAN-1 port with the same baud rate, and different MotoTune IDs.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Recovering the Main Processor'''&amp;lt;br&amp;gt;&lt;br /&gt;
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:&amp;lt;br&amp;gt;&lt;br /&gt;
AN3: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN4: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN16: Pull to GND &amp;lt;br&amp;gt;&lt;br /&gt;
AN17: Pull to GND &amp;lt;br&amp;gt;&lt;br /&gt;
AN18: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Recovering the S12G Auxillary Core (requires battery toggle)'''&amp;lt;br&amp;gt;&lt;br /&gt;
The S12G cannot be recovered with a boot key.  A boot sequence on the analog inputs of the S12G is required to recover it.&amp;lt;br&amp;gt;&lt;br /&gt;
AN3: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN4: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN16: Pull to +5V &amp;lt;br&amp;gt; &lt;br /&gt;
AN17: Pull to GND &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Applying the boot signal or sequence'''&lt;br /&gt;
&lt;br /&gt;
The boot key signal or boot sequence is only searched within the first 2-3 seconds of the ECU waking up.   To ensure that the signal/sequence is recognized, the following procedure is recommended:&amp;lt;br&amp;gt;&lt;br /&gt;
1) Apply the boot signal or sequence. &amp;lt;br&amp;gt;&lt;br /&gt;
2) Main Core recovery: Turn Power ON, but key off; S12G Core recovery: battery off.&amp;lt;br&amp;gt;&lt;br /&gt;
3) Initiate MotoTune programming on the MotoServer port (City ID 0x0B 250k baud for Main Core, 0x081 250kbaud for S12G Core). &amp;lt;br&amp;gt;&lt;br /&gt;
4) When 'Searching for ECU' appears in MotoTune, turn the key on (Main Core recovery) or battery on (S12G Core recovery).    It may take several tries.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Avoiding Baud Rate Collision During and After Recovery Process:'''&lt;br /&gt;
&lt;br /&gt;
The Pre-PV and PV units will ship with a Main Core sample application that will connect at 500 kbps on PCM-1 (City-ID 11) or PCM-2 (City-ID 12), and S12G Core sample application that will connect at 500 kbps on SECM-1 (City-ID 129).  The application baud rate on CAN-1 does not match that of the bootloaders’ recovery mode baud rate, and there may be baud rate collision between the Main Core Application and the S12G Bootloader (or between the S12G Application and the Main Core Bootloader).&lt;br /&gt;
&lt;br /&gt;
The Main Core recovery process automatically avoids baud rate collision by holding the S12G Core in reset, so there will be no collision between the Main Core Bootloader and the S12G Core application.&lt;br /&gt;
&lt;br /&gt;
However, if you are recovering the S12G Core, you must manually prevent baud rate collision by first programming the Main Core with an application* that sets CAN-1 at 250kbps.  Note that if after recovery the S12G application configures CAN-1 at other than 250kbs, it will collide with the Main Core application’s 250K CAN-1 setting.  Because of this, it is recommended to enable MotoTune on CAN2 in the Main Core application* to allow the Main Core to be re-programmed via CAN-2 (another option is to perform recover procedure on the Main Core after the S12G Core has been recovered).&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
=== Why Do I get this Build Warning?WARNING: CamEncoder has interface Hardware that has not been defined.===&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== What causes the build to fail with this error? &amp;quot;ERROR: A ReactPHWOTChan definition for INJ1 was not found in the application. &amp;quot; ===&lt;br /&gt;
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).&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== I see values with 100% in the build log.  Is this expected?  ===&lt;br /&gt;
There are several memory areas displayed in the build statistics that are internally reserved peices of data.  These are displayed at 100% in the build statistics and cannot be changed by the application.&amp;lt;br/&amp;gt;&lt;br /&gt;
FLASH_RCHW: 4 bytes 100% of 4 &amp;lt;br/&amp;gt;&lt;br /&gt;
FLASH_ENTRY: 4 bytes 100% of 4 &amp;lt;br/&amp;gt;&lt;br /&gt;
FLASH_CRCDEFNPTR: 4 bytes 100% of 4 &amp;lt;br/&amp;gt;&lt;br /&gt;
RAM_BOOTMAILBOX: 16 bytes 100% of 16 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is the 12 V power supply isolated?  ===&lt;br /&gt;
12VOUT is supplied from DRVP and shares a common ground plane so no there is no galvanic isolation from the other supplies.  The intent of the 12VOUT is to power a MAF sensor that requires this voltage. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Can the Auxiliary Processor force an engine to stop?===&lt;br /&gt;
The [[SECM112#Targets | Auxiliary Processor]] can cause the H-Bridge Outputs and the Spark Outputs to be in the off state via the H1 and H2 enables and the MC33810 enable.  MPRD disable can also occur via the MPRD disable output.  Ultimately, a corrective action can be taken by actively resetting the main processor.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=File:GetModuleData_JunctionTemp.PNG&amp;diff=3917</id>
		<title>File:GetModuleData JunctionTemp.PNG</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=File:GetModuleData_JunctionTemp.PNG&amp;diff=3917"/>
		<updated>2015-05-07T01:25:19Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: Block that illustrates getting junction temperature&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Block that illustrates getting junction temperature&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=SECM112&amp;diff=3916</id>
		<title>SECM112</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=SECM112&amp;diff=3916"/>
		<updated>2015-05-07T01:12:56Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: /* Crank and CAM Inputs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Module ==&lt;br /&gt;
[[Image:ECM-5644A-112-048-1202-xD.jpg|100px|112 Pin ECM-OH]] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
==Overview==&lt;br /&gt;
The SECM112  is part of the engine management system for on-highway applications, which can include L6 4-stroke CNG intercity transit applications, L6, 4-stroke LNG intercity transit applications, and L4 4-stroke commercial vehicle 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&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The SECM112 features two microprocessors in one rugged production intent housing.  The module contains a main MPC5644 120Mhz processor along with a S12G fixed point processor, which can provide question-answer type challenge to the main processor.  Both micros are connected on CAN1.&lt;br /&gt;
&lt;br /&gt;
The SECM112 is part of the MotoHawk Control Solutions ControlCore® family of embedded control systems. The ControlCore operating system,&lt;br /&gt;
MotoHawk® code generation product, and MotoHawk’s suite of development tools enable rapid development of complex control systems.  Application code for both processors is developed in MotoHawk which allows the application developer to create applications directly in Simulink and build with a one step 'CNTL-B' build.   The two controllers act like separate controllers in terms of programming.  Then, the program can be flashed onto the micro using Woodward's MotoTune, Toolkit, or through industry standard 3rd party tools via xCP, or ISO15765.    &lt;br /&gt;
&lt;br /&gt;
Calibration can  be done with Woodward's MotoTune or Toolkit or with industry standard 3rd Party tools through xCP.&lt;br /&gt;
&lt;br /&gt;
Each controller is available in ‘F’ (Flash) or ‘C’ (Calibratible) versions. Flash modules are typically used for production purposes. Calibratible modules are typically for prototyping/development only; they can be calibrated in real time using MotoTune, ToolKit, or industry standard 3rd party tools via xCP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Power Requirements ==&lt;br /&gt;
All versions of the SECM112 Control require a voltage source of 8 to 32Vdc (12Vdc or 24Vdc nominal).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MotoHawk Requirements ==&lt;br /&gt;
MotoHawk 2012bSP0 or higher is required for SECM112.&lt;br /&gt;
&lt;br /&gt;
This means Matlab 2010b or higher is required, as MotoHawk supports Matlab 2 years backward.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compilers ==&lt;br /&gt;
'''Main Micro''': Green Hills 4.2.4   or GCC PowerPC eabi SPE 4.6&lt;br /&gt;
&lt;br /&gt;
'''Auxillary''':  Freescale CodeWarrior 4.6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Targets ==&lt;br /&gt;
The SECM-112 has different Targets for the MAIN Prod and Dev modules as shown below.  The S12G auxillary processor also has it's own target.  &lt;br /&gt;
&lt;br /&gt;
'''Main Processor''' &lt;br /&gt;
&lt;br /&gt;
1751-6601:  Target ECM-5644A-112-048-1204  DEV&lt;br /&gt;
&lt;br /&gt;
1751-6605: Target ECM-56542A-112-049-1200 PROD &lt;br /&gt;
&lt;br /&gt;
'''Auxillary Processor''':  Target ECM-S12G-112-059-1200   PROD Only&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
== Datasheets ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36364 SECM112 Datasheet (36364)]&lt;br /&gt;
&lt;br /&gt;
== Control Features ==&lt;br /&gt;
[[Image:ECMOH1.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Standard features common to both models are:&lt;br /&gt;
*2 engine speed inputs: camshaft and crankshaft speed (software configurable for variable reluctance (VR) magnetic pickup sensor or Hall effect proximity sensor inputs)&lt;br /&gt;
* Up to 6 frequency inputs (some share analog resources)&lt;br /&gt;
* Up to 33 analog inputs&lt;br /&gt;
* 3 switch inputs&lt;br /&gt;
* 2 HEGO sensor inputs&lt;br /&gt;
* 2 LSU sensor inputs (also known as UEGO sensors)&lt;br /&gt;
* 2 knock sensor inputs&lt;br /&gt;
* 3 transducer power outputs providing +5V (350mA &amp;amp; 100mA) and +12V (100mA)&lt;br /&gt;
* 2 H-bridge driver outputs providing 10A and 5A drive capability and current sense feedback&lt;br /&gt;
* 6 Injector drivers providing software configurable peak and hold current levels (up to 7A/2A)&lt;br /&gt;
* 6 ignition coil drivers&lt;br /&gt;
* MPRD (Master Power Relay Driver) low side output&lt;br /&gt;
* TACH low side output&lt;br /&gt;
* 16 low side output drivers (1 with current sense feedback)&lt;br /&gt;
* 3 CAN (Controller Area Network) communications ports&lt;br /&gt;
* 4K-byte serial EEPROM for tunable parameter storage&lt;br /&gt;
* Auxiliary micro with 128k of flash, 8k of RAM, 4k of EEPROM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
==== Analog Inputs (AN1 – AN34)====&lt;br /&gt;
There are 34 analog inputs on the SECM112. The analog inputs have either a pull-up resistor as shown in Figure 2-12, or a pull-down resistor as shown in&lt;br /&gt;
Figure 2-13. Five analog inputs have a software pull-up or pull-down selection via calibration. AN21 &amp;amp; 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.&lt;br /&gt;
&lt;br /&gt;
The Analog Inputs are [[12-bit_ADC|12-Bit ADC]]&lt;br /&gt;
&lt;br /&gt;
===== Fast Analog Channels =====&lt;br /&gt;
ANx_FAST channels are sampled faster than the equivalent ANx. This is needed on SECM112 because of how ADC bandwidth is consumed. SECM112 utilizes most of the available ADC bandwidth to service the reaction channel’s load current sampling. This means that the continuous scan queue sampling that is used by the other channels will take much longer than it normally takes on other modules. SECM112 FAST channel will be sampled every 90us where as normal channels will sample within 1ms (860us) worst case. The 1ms conversion time is problematic for threads of execution that execute at 1ms since the data is sometimes old and sometimes new. &lt;br /&gt;
&lt;br /&gt;
There is no need for such channels on the other ECUs because the ADC bandwidth is not being consumed like it is on the SECM112 and so all the channels are effectively sampled FAST.&lt;br /&gt;
&lt;br /&gt;
==== Crank and CAM Inputs ====&lt;br /&gt;
The Cam and Crank (CNK) inputs are used to detect engine speed and angular position relative to TDC.   The SECM112 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&lt;br /&gt;
input has dedicated connector pins.  See the SECM112 datasheet for additional detail.&lt;br /&gt;
&lt;br /&gt;
==== Digital Inputs ====&lt;br /&gt;
The SECM112 has 8 Discrete Inputs.  Some may be used as switch inputs, others support frequency measurement.&lt;br /&gt;
&lt;br /&gt;
==== Lambda Sensor Unit (UEGO) Inputs ====&lt;br /&gt;
The SECM112 control has two LSUs (Lambda Sensor Units), also known as UEGO (Universal Exhaust Gas Oxygen) inputs, which interface with Bosch LSU4.9 wide range oxygen sensors (Lambda sensors). The lambda-sensor(s) works in conjunction with the on-board Bosch CJ125 ASIC(s) to provide continuous regulation of  for a sensor in the range of  = 0.65... (air). 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.&lt;br /&gt;
&lt;br /&gt;
==== Knock Sensor Inputs ====&lt;br /&gt;
The SECM112 supports two Knock Sensor inputs.&lt;br /&gt;
&lt;br /&gt;
Knock is implemented on the SECM112 in MotoHawk by the Knock by Decimation blockset.   This is a specialized blockset and is included with Standard MotoHawk in 2014a and higher.&lt;br /&gt;
&lt;br /&gt;
=== Outputs ===&lt;br /&gt;
==== Low-side Outputs (LSO)====&lt;br /&gt;
The SECM112 control has 16 low-side outputs (LSOx &amp;amp; SPK8) that can be used as Boolean outputs for driving relays, or some as PWM outputs. LSO1 and LSO2&lt;br /&gt;
are also designed to drive the heater coil on a LSU sensor. Some low-side outputs are provided with freewheeling diodes (internal to the ECM-OH through&lt;br /&gt;
DRVP or BATT) to suppress the back EMF caused by inductive loads. See the ECM-OH datasheet for low-side output capabilities and characteristics.  The LSOs are clamped and can be used to drive relays.&lt;br /&gt;
&lt;br /&gt;
==== Injector Outputs ====&lt;br /&gt;
The SECM112 control has 6 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.&lt;br /&gt;
&lt;br /&gt;
===== Reaction Module Blockset =====&lt;br /&gt;
The peak-hold current level is software configurable through the [[Reaction_Module_Blockset|MotoHawk Reaction Channel Blockset]].&lt;br /&gt;
&lt;br /&gt;
Peak current cannot be run simultaneously on more than 3 injectors on the SECM112 control.&lt;br /&gt;
&lt;br /&gt;
==== Spark Outputs ====&lt;br /&gt;
The SECM112 has 6 IGBT ignition coil drivers each capable of delivering up to 10A of peak dwell current.&lt;br /&gt;
&lt;br /&gt;
The Spark Outputs can be globally disabled via the main core's discrete output DRVR_ENABLE resource. The behavior of these outputs can also be affected by the [[SECM112#Targets | Auxiliary Processor]] via its ability to disable the Master Power Relay (which will also disable the encoder's Crank and Cam inputs).&lt;br /&gt;
&lt;br /&gt;
A special blockset has been created for control and diagnostics of the MC33810 chip which is the driver for the IGBT coil drivers on the SECM112.  See [[MC33810_Blocks|here]] for more detail on the blocks related to the MC33810.&lt;br /&gt;
&lt;br /&gt;
==== H-bridge Outputs ====&lt;br /&gt;
The SECM112 control has two H-bridge outputs that can be used to drive electric motors like butterfly throttle valves.  The H-Bridge outputs are provided with freewheeling diodes (internal to the SECM112 through DRVP) to suppress the back EMF caused by inductive loads.&lt;br /&gt;
&lt;br /&gt;
The H-bridge Outputs can be disabled by the [[SECM112#Targets | Auxiliary Processor]].&lt;br /&gt;
&lt;br /&gt;
==== MPRD Output ====&lt;br /&gt;
The MPRD Output is a common feature of almost all Woodward ECUs and is used to energize the Master Power Relay under application control.&lt;br /&gt;
&lt;br /&gt;
The MPRD Output can be disabled by the [[SECM112#Targets | Auxiliary Processor]], which also has the side effect of disabling the encoder inputs (Crank and Cam).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Output Fault Detection ==&lt;br /&gt;
Output Fault Detection for the SECM112 is through the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/IOFaultStatus.html IO Fault Status block] and the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2013bSP0/HTML/MotoHawk_lib_Blocks/FaultStatusGet.html IO Fault Status Get] block.  This block will report a &amp;quot;0&amp;quot; if the driver is not reporting a fault, a &amp;quot;1&amp;quot; if the driver is detecting a fault, or in some cases a &amp;quot;2&amp;quot; for indeterminate.  The faults that can be detected depend on the capability of the driver.  Outputs driven by the MC33810 driver have additional fault reporting capability that can be exposed through the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2013bSP0/HTML/MotoHawk_lib_Blocks/MC33810FaultDetail.html MC33810 Fault Detail Block].  This block reports the last fault reported by the MC33810 driver and so the report from this block does not clear when the fault state is removed.  The IO Fault Status block should be used to detect whether a fault condition is detected, and then the detail block can be used to detect which fault was reported.  The fault detection capabilities of the SECM112 outputs are described below:&lt;br /&gt;
&lt;br /&gt;
=== H-Bridges ===&lt;br /&gt;
For the h-bridges, shorted load faults can be reported.  Shorted load reporting for each H-bridge is through overcurrent detection.  See the SECM Hardware Manual for minimum overcurrent threshold values.  Current Monitoring should be used in the application model for further diagnosis, such as for open load detection.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Injectors ===&lt;br /&gt;
SECM112’s injector drivers utilize the microprocessor’s Reaction Module for diagnosis. Reaction module diagnosis is based upon observing current and therefore INJ faults can only be detected when the INJ pins are asserted. Observed faults are cached until reported, where they are then cleared. Detection while not asserted is not possible. Therefore the fault status of an INJ output should only be queried once after an actuation event. Querying too often may result in no fault being reported even if the queried INJ output is currently in fault (e.g. open circuit). The [http://mcs.woodward.com/content/motohawk/Documentation/CurretVersion/HTML/MotoHawk_lib_Blocks/PHWOTReactionChannel.html PHWOT Reaction Channel] MotoHawk help provides further detail.&lt;br /&gt;
&lt;br /&gt;
Currently only the IO Fault Status block allows the fault status of an INJ output to be queried.&lt;br /&gt;
&lt;br /&gt;
=== Spark ===&lt;br /&gt;
The Spark outputs are driven by the IGBT drivers of the [http://www.google.com/url?url=http://www.freescale.com/webapp/sps/site/prod_summary.jsp%3Fcode%3DMC33810&amp;amp;rct=j&amp;amp;frm=1&amp;amp;q=&amp;amp;esrc=s&amp;amp;sa=U&amp;amp;ei=Uli1U7zYA5GcyASd_IH4BQ&amp;amp;ved=0CBQQFjAA&amp;amp;usg=AFQjCNGOgPiWwAV_dZ-bz4R4ETEkNGjTXQ MC33810 driver]. &lt;br /&gt;
&lt;br /&gt;
'''The spark output diagnostics assume the SPK outputs are driving an ignition coil as a load.'''  &lt;br /&gt;
&lt;br /&gt;
Comprehensive fault diagnosis when used with ignition coils is described in the [http://www.google.com/url?url=http://www.freescale.com/webapp/sps/site/prod_summary.jsp%3Fcode%3DMC33810&amp;amp;rct=j&amp;amp;frm=1&amp;amp;q=&amp;amp;esrc=s&amp;amp;sa=U&amp;amp;ei=Uli1U7zYA5GcyASd_IH4BQ&amp;amp;ved=0CBQQFjAA&amp;amp;usg=AFQjCNGOgPiWwAV_dZ-bz4R4ETEkNGjTXQ MC33810 Datasheet].   The diagnostic approach is based upon analysis of multiplexed feedback signals that go to the MC33810 which require that the actuators don’t de-assert (i.e. spark) at the same time.  Overlap is possible with PWM and discrete, therefore, diagnosis is less capable or impossible when the SPK outputs are driven by PWM or Discrete output blocks. &lt;br /&gt;
&lt;br /&gt;
'''Note''' that SPK8 is different from the other SPK outputs in that it is a MOSFET.  SPK8 has short while asserted and open while not asserted detection and can be used with the MC33810 Fault Detail block. It is a GPGD type output and thus can use the MC33810 blocks related to GPGD configuration.  Unlike the other spark outputs, SPK8 diagnosis is fully functional when not being driven with an engine position synchronous behavior.&lt;br /&gt;
&lt;br /&gt;
A special blockset has been created for control and diagnostics of the MC33810 chip which is the driver for the IGBT coil drivers on the SECM112.  See [[MC33810_Blocks|here]] for more detail on the blocks related to the MC33810.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LSOs ===&lt;br /&gt;
There are three types of drivers for the LSOs on the SECM112.  Each has slightly different fault reporting capability which is described below.&lt;br /&gt;
* '''LSO1-6''':  reports open circuit or short to ground while de-asserted and short when asserted. LSO6 has current sense as well. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''LSO 7,8,9,11, 12, 13, 14, TACH:'''  These LSOs are driven by MC33810.  Faults of Open while Asserted, Open while De-asserted, and Short to Battery can be reported.  The IO Fault Status block reports the fault state, however there is also an MC33810 Fault Detail block that gives the last fault reported.   The IO Fault Status block should be used to indentify that there is a fault and then the MC33810 Fault Detail block can identify which fault was reported.  The open while asserted fault is detected through current monitoring.   Currents less than 200mA can cause an open while asserted fault to be reported.  Therefore, if the load current is expected to be under 200mA, the Open While Asserted diagnostic should be disabled via the Open Load While Asserted Configuration block.  A special blockset has been created for control and diagnostics of the MC33810 chip which is the driver for the IGBT coil drivers on the SECM112.  See [[MC33810_Blocks|here]] for more detail on the blocks related to the MC33810.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''LSO10''': reports open or short to GND while de-asserted, and short while asserted.  The IO Fault Status block will report a “2” if no fault is detected, or a “1” if a fault state is detected.  It will not report a &amp;quot;0&amp;quot; (OK).   There is a Fault Detail block that will also report which type of fault (Open or Short) has been detected.   Note that the Fault Detail block can still report indeterminate (2) in some cases, but can more clearly identify whether a particular fault is active. For example, while LSO10 is de-asserted the fault detail for LSO10 will report the open fault as being either OK (0) or in fault (1), but will sometimes intermittently report indeterminate(2). The short to battery would continuously report indeterminate (2) while off. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''LSO15''':  reports open or short to GND while de-asserted, and short while asserted.   There is not a block to detect which fault is being set, but the state of the output (On or Off) could be used in the application model.  This will report “2” if no fault is detected, or a “1” if a fault state is detected. &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Internal Temperature Monitor ===&lt;br /&gt;
The SECM112 has an internal temperature monitor. Although there is not a MotoHawk block to access the temperature, the internal temperature can be read in an application through the use of an inline code block.  An example is shown below.    Basically the inline code block copies the value from the “under the hood” variable (blue box) to a MotoHawk variable (Red Box) that can then be used throughout the model like any other variable. The under the hood variable only changes once per second.    So, for example, you could implement a Simulink model that logged the maximum observed MicroTemp to NVM. &lt;br /&gt;
&lt;br /&gt;
[[Image:InlineCode.PNG|400px]]&lt;br /&gt;
&lt;br /&gt;
== Shared Resources between the Main and Auxillary S12 cores ==&lt;br /&gt;
The following are shared between the main and s12G cores:&lt;br /&gt;
&lt;br /&gt;
Analog inputs: AN01-05, AN16, AN17, AN18, AN24, AN31, VCAL, KEYSW&lt;br /&gt;
&lt;br /&gt;
Digital inputs: VR1/DG1 (after mux), DG3, DG4, DG5, DG8, Wake-up (on XIRQ) from main core, reset from main core*, main core status&lt;br /&gt;
&lt;br /&gt;
Comms: CAN1&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* There is a shared line for reset of the S12 by the main core, however, this is not available to the application.  There is no block to set it.   It is currently only used during programming to turn the S12 off to prevent CAN bus errors or erroneous resets&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Communications ===&lt;br /&gt;
==== CAN ====&lt;br /&gt;
The SECM112 has three 2.0B CAN ports for distributed I/O, distributed control, and Human Machine Interface (HMI) purposes.&lt;br /&gt;
&lt;br /&gt;
 Important: The SECM112 is programmed at the factory with a sample application that sets CAN-1 of both the Main and Auxillary Cores to 500k baud rate.   &lt;br /&gt;
 '''Both Cores are internally connecxted within the ECU on CAN-1'''.&lt;br /&gt;
 '''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.'''&lt;br /&gt;
 '''Each Core must also have a Unique City ID for MotoTune defined in the CAN Definition Block'''&lt;br /&gt;
&lt;br /&gt;
For programming the SECM112, 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-ID’s.   The module ships pre-programmed with an application that sets the &lt;br /&gt;
Baud rate for both cores to 500k, with City ID of main – 0xB and the City ID of the aux 0x81.    &lt;br /&gt;
&lt;br /&gt;
The hardboot (settings used to program the module by boot key or boot harness) if it needs to be recovered are: &lt;br /&gt;
Main: 250k b/s  City ID 0xB&lt;br /&gt;
Aux: 250k b/s City ID 0x81&lt;br /&gt;
&lt;br /&gt;
To change the baud rate on CAN-1, first program the main core.  Cycle power to put auxiliary in hardboot, the program the auxiliary as above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5644A-112-048-1204-xD.html MotoHawk Target Cross Reference] ===&lt;br /&gt;
The [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5644A-112-048-1204-xD.html MotoHawk Target Cross Reference] shows which IO on the ECM-OH hardware is supported by which behavior (blocks).  There are charts showing behavior vs pin as well as pin vs behavior.  This is the software help document for the module.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[Reaction_Module_Blockset|The Reaction Module Blockset]] and the SECM112==&lt;br /&gt;
The standard PSP blocks (Injector Sequence, Dual PSP, Multiple PSP..) are supported on the SECM112, but configuration of the Reaction Module '''is Required''' for Injection on the SECM112. &lt;br /&gt;
&lt;br /&gt;
Peak-Hold timing is configured by the Reaction Module, '''and the peak-hold input port on the sequence blocks is ignored.'''&lt;br /&gt;
&lt;br /&gt;
See the article on the [[Reaction_Module_Blockset|Reaction Module Blockset]] for additional details.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MC33810 Spark Blockset and the SECM112 ==&lt;br /&gt;
Many of the Woodward MCS ECMs have EST outputs which provide 0-5V TTL level outputs for smart coils.  The SECM112 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.&lt;br /&gt;
&lt;br /&gt;
See the article on the [[MC33810_Blocks|'''MC33810 Configuration blocks''']] for more detail.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Calibration Memory ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''The SECM112 has 64k of Calibration memory available.'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are porting an application from another ECU (ex. the 128-pin) the SECM-112 may have less calibration memory available.  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.    However, the SECM112 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 descision 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 on-line calibration.   The SECM112 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.&lt;br /&gt;
&lt;br /&gt;
The SECM112 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.  Some calibration values may be able to be moved to NV storage  (ex. Calibration NV).&lt;br /&gt;
&lt;br /&gt;
Recommendations to reduce calibration memory in the application:&lt;br /&gt;
&lt;br /&gt;
1. '''Review and Optimize Datatypes'''. The first thing to look at in reducing calibration memory is 64 bit vs 32 bit.  Double is the Simulink default, but is often larger than required.   Convert calibratons to 32-bit (single) or smaller datatypes.&lt;br /&gt;
  &lt;br /&gt;
2. '''Review and Optimize Tables'''. The next big item is table optimizations.  It is likely that 32-bit floating point is not needed for every table and can be reduced.  Reducing the dimenstions of tables would also reduce the memory usage.&lt;br /&gt;
&lt;br /&gt;
== The Main Power Relay Block and the S12G Auxillary processor ==&lt;br /&gt;
A common question is whether the MotoHawk MPRD block should be placed in the application for the S12G auxillary 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.  &lt;br /&gt;
&lt;br /&gt;
Also, the MPRD block is intended as a starting point and is intended to be modified to suite specific application shutdown requirements (right click the block and select Look Under Mask).&lt;br /&gt;
&lt;br /&gt;
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 auxillary S12G, it is nessessary to remove the MPRD discrete output from the block.   The below link has an example MPRD block modified for the ECM-OH Auxillary processor.&lt;br /&gt;
&lt;br /&gt;
[http://mcs.woodward.com/user/download.php?filename=562 ECM-OH Example of Modified MPRD for the S12G]&lt;br /&gt;
&lt;br /&gt;
== Recovering the SECM112==&lt;br /&gt;
Occasionally, errors in programming may require that the module be recovered with a boot key or boot sequence. The following section describes recovery procedure for the SECM112.  For more information, see [[Boot_key_recovery|Boot Key Recovery]].&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Important: Remove the ECU from all control connections before attempting to recover the module.'''&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Default Bootloader MotoServer Settings (Recover/Bootstrap Mode):'''&lt;br /&gt;
&lt;br /&gt;
Main Core: 250kbps on CAN-1, City ID 0x0B (11)&amp;lt;br&amp;gt;&lt;br /&gt;
S12G Core: 250kbps on CAN-1, City ID 0x81 (129)&lt;br /&gt;
&lt;br /&gt;
The SECM112 has two microprocessor cores, the Main Core and the Auxillary S12G. Both processors are connected on CAN1, so it is important that both processors configure their CAN-1 port with the same baud rate, and different MotoTune IDs.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Recovering the Main Processor'''&amp;lt;br&amp;gt;&lt;br /&gt;
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:&amp;lt;br&amp;gt;&lt;br /&gt;
AN3: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN4: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN16: Pull to GND &amp;lt;br&amp;gt;&lt;br /&gt;
AN17: Pull to GND &amp;lt;br&amp;gt;&lt;br /&gt;
AN18: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Recovering the S12G Auxillary Core (requires battery toggle)'''&amp;lt;br&amp;gt;&lt;br /&gt;
The S12G cannot be recovered with a boot key.  A boot sequence on the analog inputs of the S12G is required to recover it.&amp;lt;br&amp;gt;&lt;br /&gt;
AN3: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN4: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN16: Pull to +5V &amp;lt;br&amp;gt; &lt;br /&gt;
AN17: Pull to GND &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Applying the boot signal or sequence'''&lt;br /&gt;
&lt;br /&gt;
The boot key signal or boot sequence is only searched within the first 2-3 seconds of the ECU waking up.   To ensure that the signal/sequence is recognized, the following procedure is recommended:&amp;lt;br&amp;gt;&lt;br /&gt;
1) Apply the boot signal or sequence. &amp;lt;br&amp;gt;&lt;br /&gt;
2) Main Core recovery: Turn Power ON, but key off; S12G Core recovery: battery off.&amp;lt;br&amp;gt;&lt;br /&gt;
3) Initiate MotoTune programming on the MotoServer port (City ID 0x0B 250k baud for Main Core, 0x081 250kbaud for S12G Core). &amp;lt;br&amp;gt;&lt;br /&gt;
4) When 'Searching for ECU' appears in MotoTune, turn the key on (Main Core recovery) or battery on (S12G Core recovery).    It may take several tries.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Avoiding Baud Rate Collision During and After Recovery Process:'''&lt;br /&gt;
&lt;br /&gt;
The Pre-PV and PV units will ship with a Main Core sample application that will connect at 500 kbps on PCM-1 (City-ID 11) or PCM-2 (City-ID 12), and S12G Core sample application that will connect at 500 kbps on SECM-1 (City-ID 129).  The application baud rate on CAN-1 does not match that of the bootloaders’ recovery mode baud rate, and there may be baud rate collision between the Main Core Application and the S12G Bootloader (or between the S12G Application and the Main Core Bootloader).&lt;br /&gt;
&lt;br /&gt;
The Main Core recovery process automatically avoids baud rate collision by holding the S12G Core in reset, so there will be no collision between the Main Core Bootloader and the S12G Core application.&lt;br /&gt;
&lt;br /&gt;
However, if you are recovering the S12G Core, you must manually prevent baud rate collision by first programming the Main Core with an application* that sets CAN-1 at 250kbps.  Note that if after recovery the S12G application configures CAN-1 at other than 250kbs, it will collide with the Main Core application’s 250K CAN-1 setting.  Because of this, it is recommended to enable MotoTune on CAN2 in the Main Core application* to allow the Main Core to be re-programmed via CAN-2 (another option is to perform recover procedure on the Main Core after the S12G Core has been recovered).&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
=== Why Do I get this Build Warning?WARNING: CamEncoder has interface Hardware that has not been defined.===&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== What causes the build to fail with this error? &amp;quot;ERROR: A ReactPHWOTChan definition for INJ1 was not found in the application. &amp;quot; ===&lt;br /&gt;
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).&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== I see values with 100% in the build log.  Is this expected?  ===&lt;br /&gt;
There are several memory areas displayed in the build statistics that are internally reserved peices of data.  These are displayed at 100% in the build statistics and cannot be changed by the application.&amp;lt;br/&amp;gt;&lt;br /&gt;
FLASH_RCHW: 4 bytes 100% of 4 &amp;lt;br/&amp;gt;&lt;br /&gt;
FLASH_ENTRY: 4 bytes 100% of 4 &amp;lt;br/&amp;gt;&lt;br /&gt;
FLASH_CRCDEFNPTR: 4 bytes 100% of 4 &amp;lt;br/&amp;gt;&lt;br /&gt;
RAM_BOOTMAILBOX: 16 bytes 100% of 16 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is the 12 V power supply isolated?  ===&lt;br /&gt;
12VOUT is supplied from DRVP and shares a common ground plane so no there is no galvanic isolation from the other supplies.  The intent of the 12VOUT is to power a MAF sensor that requires this voltage. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Can the Auxiliary Processor force an engine to stop?===&lt;br /&gt;
The [[SECM112#Targets | Auxiliary Processor]] can cause the H-Bridge Outputs and the Spark Outputs to be in the off state via the H1 and H2 enables and the MC33810 enable.  MPRD disable can also occur via the MPRD disable output.  Ultimately, a corrective action can be taken by actively resetting the main processor.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
	<entry>
		<id>http://mcs.woodward.com/support/wiki/index.php?title=SECM112&amp;diff=3915</id>
		<title>SECM112</title>
		<link rel="alternate" type="text/html" href="http://mcs.woodward.com/support/wiki/index.php?title=SECM112&amp;diff=3915"/>
		<updated>2015-05-07T01:08:49Z</updated>

		<summary type="html">&lt;p&gt;Wayne.Hawken: Consolidate Auxiliary Processor disable control text&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Module ==&lt;br /&gt;
[[Image:ECM-5644A-112-048-1202-xD.jpg|100px|112 Pin ECM-OH]] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
==Overview==&lt;br /&gt;
The SECM112  is part of the engine management system for on-highway applications, which can include L6 4-stroke CNG intercity transit applications, L6, 4-stroke LNG intercity transit applications, and L4 4-stroke commercial vehicle 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&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The SECM112 features two microprocessors in one rugged production intent housing.  The module contains a main MPC5644 120Mhz processor along with a S12G fixed point processor, which can provide question-answer type challenge to the main processor.  Both micros are connected on CAN1.&lt;br /&gt;
&lt;br /&gt;
The SECM112 is part of the MotoHawk Control Solutions ControlCore® family of embedded control systems. The ControlCore operating system,&lt;br /&gt;
MotoHawk® code generation product, and MotoHawk’s suite of development tools enable rapid development of complex control systems.  Application code for both processors is developed in MotoHawk which allows the application developer to create applications directly in Simulink and build with a one step 'CNTL-B' build.   The two controllers act like separate controllers in terms of programming.  Then, the program can be flashed onto the micro using Woodward's MotoTune, Toolkit, or through industry standard 3rd party tools via xCP, or ISO15765.    &lt;br /&gt;
&lt;br /&gt;
Calibration can  be done with Woodward's MotoTune or Toolkit or with industry standard 3rd Party tools through xCP.&lt;br /&gt;
&lt;br /&gt;
Each controller is available in ‘F’ (Flash) or ‘C’ (Calibratible) versions. Flash modules are typically used for production purposes. Calibratible modules are typically for prototyping/development only; they can be calibrated in real time using MotoTune, ToolKit, or industry standard 3rd party tools via xCP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Power Requirements ==&lt;br /&gt;
All versions of the SECM112 Control require a voltage source of 8 to 32Vdc (12Vdc or 24Vdc nominal).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MotoHawk Requirements ==&lt;br /&gt;
MotoHawk 2012bSP0 or higher is required for SECM112.&lt;br /&gt;
&lt;br /&gt;
This means Matlab 2010b or higher is required, as MotoHawk supports Matlab 2 years backward.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compilers ==&lt;br /&gt;
'''Main Micro''': Green Hills 4.2.4   or GCC PowerPC eabi SPE 4.6&lt;br /&gt;
&lt;br /&gt;
'''Auxillary''':  Freescale CodeWarrior 4.6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Targets ==&lt;br /&gt;
The SECM-112 has different Targets for the MAIN Prod and Dev modules as shown below.  The S12G auxillary processor also has it's own target.  &lt;br /&gt;
&lt;br /&gt;
'''Main Processor''' &lt;br /&gt;
&lt;br /&gt;
1751-6601:  Target ECM-5644A-112-048-1204  DEV&lt;br /&gt;
&lt;br /&gt;
1751-6605: Target ECM-56542A-112-049-1200 PROD &lt;br /&gt;
&lt;br /&gt;
'''Auxillary Processor''':  Target ECM-S12G-112-059-1200   PROD Only&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
== Datasheets ==&lt;br /&gt;
[http://www.woodward.com/publicationsdownload.aspx?DocumentNumber=36364 SECM112 Datasheet (36364)]&lt;br /&gt;
&lt;br /&gt;
== Control Features ==&lt;br /&gt;
[[Image:ECMOH1.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Standard features common to both models are:&lt;br /&gt;
*2 engine speed inputs: camshaft and crankshaft speed (software configurable for variable reluctance (VR) magnetic pickup sensor or Hall effect proximity sensor inputs)&lt;br /&gt;
* Up to 6 frequency inputs (some share analog resources)&lt;br /&gt;
* Up to 33 analog inputs&lt;br /&gt;
* 3 switch inputs&lt;br /&gt;
* 2 HEGO sensor inputs&lt;br /&gt;
* 2 LSU sensor inputs (also known as UEGO sensors)&lt;br /&gt;
* 2 knock sensor inputs&lt;br /&gt;
* 3 transducer power outputs providing +5V (350mA &amp;amp; 100mA) and +12V (100mA)&lt;br /&gt;
* 2 H-bridge driver outputs providing 10A and 5A drive capability and current sense feedback&lt;br /&gt;
* 6 Injector drivers providing software configurable peak and hold current levels (up to 7A/2A)&lt;br /&gt;
* 6 ignition coil drivers&lt;br /&gt;
* MPRD (Master Power Relay Driver) low side output&lt;br /&gt;
* TACH low side output&lt;br /&gt;
* 16 low side output drivers (1 with current sense feedback)&lt;br /&gt;
* 3 CAN (Controller Area Network) communications ports&lt;br /&gt;
* 4K-byte serial EEPROM for tunable parameter storage&lt;br /&gt;
* Auxiliary micro with 128k of flash, 8k of RAM, 4k of EEPROM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
==== Analog Inputs (AN1 – AN34)====&lt;br /&gt;
There are 34 analog inputs on the SECM112. The analog inputs have either a pull-up resistor as shown in Figure 2-12, or a pull-down resistor as shown in&lt;br /&gt;
Figure 2-13. Five analog inputs have a software pull-up or pull-down selection via calibration. AN21 &amp;amp; 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.&lt;br /&gt;
&lt;br /&gt;
The Analog Inputs are [[12-bit_ADC|12-Bit ADC]]&lt;br /&gt;
&lt;br /&gt;
===== Fast Analog Channels =====&lt;br /&gt;
ANx_FAST channels are sampled faster than the equivalent ANx. This is needed on SECM112 because of how ADC bandwidth is consumed. SECM112 utilizes most of the available ADC bandwidth to service the reaction channel’s load current sampling. This means that the continuous scan queue sampling that is used by the other channels will take much longer than it normally takes on other modules. SECM112 FAST channel will be sampled every 90us where as normal channels will sample within 1ms (860us) worst case. The 1ms conversion time is problematic for threads of execution that execute at 1ms since the data is sometimes old and sometimes new. &lt;br /&gt;
&lt;br /&gt;
There is no need for such channels on the other ECUs because the ADC bandwidth is not being consumed like it is on the SECM112 and so all the channels are effectively sampled FAST.&lt;br /&gt;
&lt;br /&gt;
==== Crank and CAM Inputs ====&lt;br /&gt;
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&lt;br /&gt;
input has dedicated connector pins.  See the SECM112 datasheet for additional detail.&lt;br /&gt;
&lt;br /&gt;
==== Digital Inputs ====&lt;br /&gt;
The SECM112 has 8 Discrete Inputs.  Some may be used as switch inputs, others support frequency measurement.&lt;br /&gt;
&lt;br /&gt;
==== Lambda Sensor Unit (UEGO) Inputs ====&lt;br /&gt;
The SECM112 control has two LSUs (Lambda Sensor Units), also known as UEGO (Universal Exhaust Gas Oxygen) inputs, which interface with Bosch LSU4.9 wide range oxygen sensors (Lambda sensors). The lambda-sensor(s) works in conjunction with the on-board Bosch CJ125 ASIC(s) to provide continuous regulation of  for a sensor in the range of  = 0.65... (air). 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.&lt;br /&gt;
&lt;br /&gt;
==== Knock Sensor Inputs ====&lt;br /&gt;
The SECM112 supports two Knock Sensor inputs.&lt;br /&gt;
&lt;br /&gt;
Knock is implemented on the SECM112 in MotoHawk by the Knock by Decimation blockset.   This is a specialized blockset and is included with Standard MotoHawk in 2014a and higher.&lt;br /&gt;
&lt;br /&gt;
=== Outputs ===&lt;br /&gt;
==== Low-side Outputs (LSO)====&lt;br /&gt;
The SECM112 control has 16 low-side outputs (LSOx &amp;amp; SPK8) that can be used as Boolean outputs for driving relays, or some as PWM outputs. LSO1 and LSO2&lt;br /&gt;
are also designed to drive the heater coil on a LSU sensor. Some low-side outputs are provided with freewheeling diodes (internal to the ECM-OH through&lt;br /&gt;
DRVP or BATT) to suppress the back EMF caused by inductive loads. See the ECM-OH datasheet for low-side output capabilities and characteristics.  The LSOs are clamped and can be used to drive relays.&lt;br /&gt;
&lt;br /&gt;
==== Injector Outputs ====&lt;br /&gt;
The SECM112 control has 6 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.&lt;br /&gt;
&lt;br /&gt;
===== Reaction Module Blockset =====&lt;br /&gt;
The peak-hold current level is software configurable through the [[Reaction_Module_Blockset|MotoHawk Reaction Channel Blockset]].&lt;br /&gt;
&lt;br /&gt;
Peak current cannot be run simultaneously on more than 3 injectors on the SECM112 control.&lt;br /&gt;
&lt;br /&gt;
==== Spark Outputs ====&lt;br /&gt;
The SECM112 has 6 IGBT ignition coil drivers each capable of delivering up to 10A of peak dwell current.&lt;br /&gt;
&lt;br /&gt;
The Spark Outputs can be globally disabled via the main core's discrete output DRVR_ENABLE resource. The behavior of these outputs can also be affected by the [[SECM112#Targets | Auxiliary Processor]] via its ability to disable the Master Power Relay (which will also disable the encoder's Crank and Cam inputs).&lt;br /&gt;
&lt;br /&gt;
A special blockset has been created for control and diagnostics of the MC33810 chip which is the driver for the IGBT coil drivers on the SECM112.  See [[MC33810_Blocks|here]] for more detail on the blocks related to the MC33810.&lt;br /&gt;
&lt;br /&gt;
==== H-bridge Outputs ====&lt;br /&gt;
The SECM112 control has two H-bridge outputs that can be used to drive electric motors like butterfly throttle valves.  The H-Bridge outputs are provided with freewheeling diodes (internal to the SECM112 through DRVP) to suppress the back EMF caused by inductive loads.&lt;br /&gt;
&lt;br /&gt;
The H-bridge Outputs can be disabled by the [[SECM112#Targets | Auxiliary Processor]].&lt;br /&gt;
&lt;br /&gt;
==== MPRD Output ====&lt;br /&gt;
The MPRD Output is a common feature of almost all Woodward ECUs and is used to energize the Master Power Relay under application control.&lt;br /&gt;
&lt;br /&gt;
The MPRD Output can be disabled by the [[SECM112#Targets | Auxiliary Processor]], which also has the side effect of disabling the encoder inputs (Crank and Cam).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Output Fault Detection ==&lt;br /&gt;
Output Fault Detection for the SECM112 is through the [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_lib_Blocks/IOFaultStatus.html IO Fault Status block] and the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2013bSP0/HTML/MotoHawk_lib_Blocks/FaultStatusGet.html IO Fault Status Get] block.  This block will report a &amp;quot;0&amp;quot; if the driver is not reporting a fault, a &amp;quot;1&amp;quot; if the driver is detecting a fault, or in some cases a &amp;quot;2&amp;quot; for indeterminate.  The faults that can be detected depend on the capability of the driver.  Outputs driven by the MC33810 driver have additional fault reporting capability that can be exposed through the [http://mcs.woodward.com/content/motohawk/Documentation/MotoHawk2013bSP0/HTML/MotoHawk_lib_Blocks/MC33810FaultDetail.html MC33810 Fault Detail Block].  This block reports the last fault reported by the MC33810 driver and so the report from this block does not clear when the fault state is removed.  The IO Fault Status block should be used to detect whether a fault condition is detected, and then the detail block can be used to detect which fault was reported.  The fault detection capabilities of the SECM112 outputs are described below:&lt;br /&gt;
&lt;br /&gt;
=== H-Bridges ===&lt;br /&gt;
For the h-bridges, shorted load faults can be reported.  Shorted load reporting for each H-bridge is through overcurrent detection.  See the SECM Hardware Manual for minimum overcurrent threshold values.  Current Monitoring should be used in the application model for further diagnosis, such as for open load detection.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Injectors ===&lt;br /&gt;
SECM112’s injector drivers utilize the microprocessor’s Reaction Module for diagnosis. Reaction module diagnosis is based upon observing current and therefore INJ faults can only be detected when the INJ pins are asserted. Observed faults are cached until reported, where they are then cleared. Detection while not asserted is not possible. Therefore the fault status of an INJ output should only be queried once after an actuation event. Querying too often may result in no fault being reported even if the queried INJ output is currently in fault (e.g. open circuit). The [http://mcs.woodward.com/content/motohawk/Documentation/CurretVersion/HTML/MotoHawk_lib_Blocks/PHWOTReactionChannel.html PHWOT Reaction Channel] MotoHawk help provides further detail.&lt;br /&gt;
&lt;br /&gt;
Currently only the IO Fault Status block allows the fault status of an INJ output to be queried.&lt;br /&gt;
&lt;br /&gt;
=== Spark ===&lt;br /&gt;
The Spark outputs are driven by the IGBT drivers of the [http://www.google.com/url?url=http://www.freescale.com/webapp/sps/site/prod_summary.jsp%3Fcode%3DMC33810&amp;amp;rct=j&amp;amp;frm=1&amp;amp;q=&amp;amp;esrc=s&amp;amp;sa=U&amp;amp;ei=Uli1U7zYA5GcyASd_IH4BQ&amp;amp;ved=0CBQQFjAA&amp;amp;usg=AFQjCNGOgPiWwAV_dZ-bz4R4ETEkNGjTXQ MC33810 driver]. &lt;br /&gt;
&lt;br /&gt;
'''The spark output diagnostics assume the SPK outputs are driving an ignition coil as a load.'''  &lt;br /&gt;
&lt;br /&gt;
Comprehensive fault diagnosis when used with ignition coils is described in the [http://www.google.com/url?url=http://www.freescale.com/webapp/sps/site/prod_summary.jsp%3Fcode%3DMC33810&amp;amp;rct=j&amp;amp;frm=1&amp;amp;q=&amp;amp;esrc=s&amp;amp;sa=U&amp;amp;ei=Uli1U7zYA5GcyASd_IH4BQ&amp;amp;ved=0CBQQFjAA&amp;amp;usg=AFQjCNGOgPiWwAV_dZ-bz4R4ETEkNGjTXQ MC33810 Datasheet].   The diagnostic approach is based upon analysis of multiplexed feedback signals that go to the MC33810 which require that the actuators don’t de-assert (i.e. spark) at the same time.  Overlap is possible with PWM and discrete, therefore, diagnosis is less capable or impossible when the SPK outputs are driven by PWM or Discrete output blocks. &lt;br /&gt;
&lt;br /&gt;
'''Note''' that SPK8 is different from the other SPK outputs in that it is a MOSFET.  SPK8 has short while asserted and open while not asserted detection and can be used with the MC33810 Fault Detail block. It is a GPGD type output and thus can use the MC33810 blocks related to GPGD configuration.  Unlike the other spark outputs, SPK8 diagnosis is fully functional when not being driven with an engine position synchronous behavior.&lt;br /&gt;
&lt;br /&gt;
A special blockset has been created for control and diagnostics of the MC33810 chip which is the driver for the IGBT coil drivers on the SECM112.  See [[MC33810_Blocks|here]] for more detail on the blocks related to the MC33810.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LSOs ===&lt;br /&gt;
There are three types of drivers for the LSOs on the SECM112.  Each has slightly different fault reporting capability which is described below.&lt;br /&gt;
* '''LSO1-6''':  reports open circuit or short to ground while de-asserted and short when asserted. LSO6 has current sense as well. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''LSO 7,8,9,11, 12, 13, 14, TACH:'''  These LSOs are driven by MC33810.  Faults of Open while Asserted, Open while De-asserted, and Short to Battery can be reported.  The IO Fault Status block reports the fault state, however there is also an MC33810 Fault Detail block that gives the last fault reported.   The IO Fault Status block should be used to indentify that there is a fault and then the MC33810 Fault Detail block can identify which fault was reported.  The open while asserted fault is detected through current monitoring.   Currents less than 200mA can cause an open while asserted fault to be reported.  Therefore, if the load current is expected to be under 200mA, the Open While Asserted diagnostic should be disabled via the Open Load While Asserted Configuration block.  A special blockset has been created for control and diagnostics of the MC33810 chip which is the driver for the IGBT coil drivers on the SECM112.  See [[MC33810_Blocks|here]] for more detail on the blocks related to the MC33810.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''LSO10''': reports open or short to GND while de-asserted, and short while asserted.  The IO Fault Status block will report a “2” if no fault is detected, or a “1” if a fault state is detected.  It will not report a &amp;quot;0&amp;quot; (OK).   There is a Fault Detail block that will also report which type of fault (Open or Short) has been detected.   Note that the Fault Detail block can still report indeterminate (2) in some cases, but can more clearly identify whether a particular fault is active. For example, while LSO10 is de-asserted the fault detail for LSO10 will report the open fault as being either OK (0) or in fault (1), but will sometimes intermittently report indeterminate(2). The short to battery would continuously report indeterminate (2) while off. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''LSO15''':  reports open or short to GND while de-asserted, and short while asserted.   There is not a block to detect which fault is being set, but the state of the output (On or Off) could be used in the application model.  This will report “2” if no fault is detected, or a “1” if a fault state is detected. &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Internal Temperature Monitor ===&lt;br /&gt;
The SECM112 has an internal temperature monitor. Although there is not a MotoHawk block to access the temperature, the internal temperature can be read in an application through the use of an inline code block.  An example is shown below.    Basically the inline code block copies the value from the “under the hood” variable (blue box) to a MotoHawk variable (Red Box) that can then be used throughout the model like any other variable. The under the hood variable only changes once per second.    So, for example, you could implement a Simulink model that logged the maximum observed MicroTemp to NVM. &lt;br /&gt;
&lt;br /&gt;
[[Image:InlineCode.PNG|400px]]&lt;br /&gt;
&lt;br /&gt;
== Shared Resources between the Main and Auxillary S12 cores ==&lt;br /&gt;
The following are shared between the main and s12G cores:&lt;br /&gt;
&lt;br /&gt;
Analog inputs: AN01-05, AN16, AN17, AN18, AN24, AN31, VCAL, KEYSW&lt;br /&gt;
&lt;br /&gt;
Digital inputs: VR1/DG1 (after mux), DG3, DG4, DG5, DG8, Wake-up (on XIRQ) from main core, reset from main core*, main core status&lt;br /&gt;
&lt;br /&gt;
Comms: CAN1&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* There is a shared line for reset of the S12 by the main core, however, this is not available to the application.  There is no block to set it.   It is currently only used during programming to turn the S12 off to prevent CAN bus errors or erroneous resets&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Communications ===&lt;br /&gt;
==== CAN ====&lt;br /&gt;
The SECM112 has three 2.0B CAN ports for distributed I/O, distributed control, and Human Machine Interface (HMI) purposes.&lt;br /&gt;
&lt;br /&gt;
 Important: The SECM112 is programmed at the factory with a sample application that sets CAN-1 of both the Main and Auxillary Cores to 500k baud rate.   &lt;br /&gt;
 '''Both Cores are internally connecxted within the ECU on CAN-1'''.&lt;br /&gt;
 '''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.'''&lt;br /&gt;
 '''Each Core must also have a Unique City ID for MotoTune defined in the CAN Definition Block'''&lt;br /&gt;
&lt;br /&gt;
For programming the SECM112, 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-ID’s.   The module ships pre-programmed with an application that sets the &lt;br /&gt;
Baud rate for both cores to 500k, with City ID of main – 0xB and the City ID of the aux 0x81.    &lt;br /&gt;
&lt;br /&gt;
The hardboot (settings used to program the module by boot key or boot harness) if it needs to be recovered are: &lt;br /&gt;
Main: 250k b/s  City ID 0xB&lt;br /&gt;
Aux: 250k b/s City ID 0x81&lt;br /&gt;
&lt;br /&gt;
To change the baud rate on CAN-1, first program the main core.  Cycle power to put auxiliary in hardboot, the program the auxiliary as above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5644A-112-048-1204-xD.html MotoHawk Target Cross Reference] ===&lt;br /&gt;
The [http://mcs.woodward.com/content/motohawk/Documentation/CurrentVersion/HTML/MotoHawk_topics/_auto/ECM-5644A-112-048-1204-xD.html MotoHawk Target Cross Reference] shows which IO on the ECM-OH hardware is supported by which behavior (blocks).  There are charts showing behavior vs pin as well as pin vs behavior.  This is the software help document for the module.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[Reaction_Module_Blockset|The Reaction Module Blockset]] and the SECM112==&lt;br /&gt;
The standard PSP blocks (Injector Sequence, Dual PSP, Multiple PSP..) are supported on the SECM112, but configuration of the Reaction Module '''is Required''' for Injection on the SECM112. &lt;br /&gt;
&lt;br /&gt;
Peak-Hold timing is configured by the Reaction Module, '''and the peak-hold input port on the sequence blocks is ignored.'''&lt;br /&gt;
&lt;br /&gt;
See the article on the [[Reaction_Module_Blockset|Reaction Module Blockset]] for additional details.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MC33810 Spark Blockset and the SECM112 ==&lt;br /&gt;
Many of the Woodward MCS ECMs have EST outputs which provide 0-5V TTL level outputs for smart coils.  The SECM112 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.&lt;br /&gt;
&lt;br /&gt;
See the article on the [[MC33810_Blocks|'''MC33810 Configuration blocks''']] for more detail.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Calibration Memory ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''The SECM112 has 64k of Calibration memory available.'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are porting an application from another ECU (ex. the 128-pin) the SECM-112 may have less calibration memory available.  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.    However, the SECM112 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 descision 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 on-line calibration.   The SECM112 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.&lt;br /&gt;
&lt;br /&gt;
The SECM112 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.  Some calibration values may be able to be moved to NV storage  (ex. Calibration NV).&lt;br /&gt;
&lt;br /&gt;
Recommendations to reduce calibration memory in the application:&lt;br /&gt;
&lt;br /&gt;
1. '''Review and Optimize Datatypes'''. The first thing to look at in reducing calibration memory is 64 bit vs 32 bit.  Double is the Simulink default, but is often larger than required.   Convert calibratons to 32-bit (single) or smaller datatypes.&lt;br /&gt;
  &lt;br /&gt;
2. '''Review and Optimize Tables'''. The next big item is table optimizations.  It is likely that 32-bit floating point is not needed for every table and can be reduced.  Reducing the dimenstions of tables would also reduce the memory usage.&lt;br /&gt;
&lt;br /&gt;
== The Main Power Relay Block and the S12G Auxillary processor ==&lt;br /&gt;
A common question is whether the MotoHawk MPRD block should be placed in the application for the S12G auxillary 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.  &lt;br /&gt;
&lt;br /&gt;
Also, the MPRD block is intended as a starting point and is intended to be modified to suite specific application shutdown requirements (right click the block and select Look Under Mask).&lt;br /&gt;
&lt;br /&gt;
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 auxillary S12G, it is nessessary to remove the MPRD discrete output from the block.   The below link has an example MPRD block modified for the ECM-OH Auxillary processor.&lt;br /&gt;
&lt;br /&gt;
[http://mcs.woodward.com/user/download.php?filename=562 ECM-OH Example of Modified MPRD for the S12G]&lt;br /&gt;
&lt;br /&gt;
== Recovering the SECM112==&lt;br /&gt;
Occasionally, errors in programming may require that the module be recovered with a boot key or boot sequence. The following section describes recovery procedure for the SECM112.  For more information, see [[Boot_key_recovery|Boot Key Recovery]].&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Important: Remove the ECU from all control connections before attempting to recover the module.'''&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Default Bootloader MotoServer Settings (Recover/Bootstrap Mode):'''&lt;br /&gt;
&lt;br /&gt;
Main Core: 250kbps on CAN-1, City ID 0x0B (11)&amp;lt;br&amp;gt;&lt;br /&gt;
S12G Core: 250kbps on CAN-1, City ID 0x81 (129)&lt;br /&gt;
&lt;br /&gt;
The SECM112 has two microprocessor cores, the Main Core and the Auxillary S12G. Both processors are connected on CAN1, so it is important that both processors configure their CAN-1 port with the same baud rate, and different MotoTune IDs.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Recovering the Main Processor'''&amp;lt;br&amp;gt;&lt;br /&gt;
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:&amp;lt;br&amp;gt;&lt;br /&gt;
AN3: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN4: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN16: Pull to GND &amp;lt;br&amp;gt;&lt;br /&gt;
AN17: Pull to GND &amp;lt;br&amp;gt;&lt;br /&gt;
AN18: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Recovering the S12G Auxillary Core (requires battery toggle)'''&amp;lt;br&amp;gt;&lt;br /&gt;
The S12G cannot be recovered with a boot key.  A boot sequence on the analog inputs of the S12G is required to recover it.&amp;lt;br&amp;gt;&lt;br /&gt;
AN3: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN4: Pull to +5V &amp;lt;br&amp;gt;&lt;br /&gt;
AN16: Pull to +5V &amp;lt;br&amp;gt; &lt;br /&gt;
AN17: Pull to GND &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Applying the boot signal or sequence'''&lt;br /&gt;
&lt;br /&gt;
The boot key signal or boot sequence is only searched within the first 2-3 seconds of the ECU waking up.   To ensure that the signal/sequence is recognized, the following procedure is recommended:&amp;lt;br&amp;gt;&lt;br /&gt;
1) Apply the boot signal or sequence. &amp;lt;br&amp;gt;&lt;br /&gt;
2) Main Core recovery: Turn Power ON, but key off; S12G Core recovery: battery off.&amp;lt;br&amp;gt;&lt;br /&gt;
3) Initiate MotoTune programming on the MotoServer port (City ID 0x0B 250k baud for Main Core, 0x081 250kbaud for S12G Core). &amp;lt;br&amp;gt;&lt;br /&gt;
4) When 'Searching for ECU' appears in MotoTune, turn the key on (Main Core recovery) or battery on (S12G Core recovery).    It may take several tries.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Avoiding Baud Rate Collision During and After Recovery Process:'''&lt;br /&gt;
&lt;br /&gt;
The Pre-PV and PV units will ship with a Main Core sample application that will connect at 500 kbps on PCM-1 (City-ID 11) or PCM-2 (City-ID 12), and S12G Core sample application that will connect at 500 kbps on SECM-1 (City-ID 129).  The application baud rate on CAN-1 does not match that of the bootloaders’ recovery mode baud rate, and there may be baud rate collision between the Main Core Application and the S12G Bootloader (or between the S12G Application and the Main Core Bootloader).&lt;br /&gt;
&lt;br /&gt;
The Main Core recovery process automatically avoids baud rate collision by holding the S12G Core in reset, so there will be no collision between the Main Core Bootloader and the S12G Core application.&lt;br /&gt;
&lt;br /&gt;
However, if you are recovering the S12G Core, you must manually prevent baud rate collision by first programming the Main Core with an application* that sets CAN-1 at 250kbps.  Note that if after recovery the S12G application configures CAN-1 at other than 250kbs, it will collide with the Main Core application’s 250K CAN-1 setting.  Because of this, it is recommended to enable MotoTune on CAN2 in the Main Core application* to allow the Main Core to be re-programmed via CAN-2 (another option is to perform recover procedure on the Main Core after the S12G Core has been recovered).&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
=== Why Do I get this Build Warning?WARNING: CamEncoder has interface Hardware that has not been defined.===&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== What causes the build to fail with this error? &amp;quot;ERROR: A ReactPHWOTChan definition for INJ1 was not found in the application. &amp;quot; ===&lt;br /&gt;
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).&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== I see values with 100% in the build log.  Is this expected?  ===&lt;br /&gt;
There are several memory areas displayed in the build statistics that are internally reserved peices of data.  These are displayed at 100% in the build statistics and cannot be changed by the application.&amp;lt;br/&amp;gt;&lt;br /&gt;
FLASH_RCHW: 4 bytes 100% of 4 &amp;lt;br/&amp;gt;&lt;br /&gt;
FLASH_ENTRY: 4 bytes 100% of 4 &amp;lt;br/&amp;gt;&lt;br /&gt;
FLASH_CRCDEFNPTR: 4 bytes 100% of 4 &amp;lt;br/&amp;gt;&lt;br /&gt;
RAM_BOOTMAILBOX: 16 bytes 100% of 16 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is the 12 V power supply isolated?  ===&lt;br /&gt;
12VOUT is supplied from DRVP and shares a common ground plane so no there is no galvanic isolation from the other supplies.  The intent of the 12VOUT is to power a MAF sensor that requires this voltage. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Can the Auxiliary Processor force an engine to stop?===&lt;br /&gt;
The [[SECM112#Targets | Auxiliary Processor]] can cause the H-Bridge Outputs and the Spark Outputs to be in the off state via the H1 and H2 enables and the MC33810 enable.  MPRD disable can also occur via the MPRD disable output.  Ultimately, a corrective action can be taken by actively resetting the main processor.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wayne.Hawken</name></author>
		
	</entry>
</feed>