AXIOMATIC SAEJ1939 User manual

USER MANUAL UMAX090600
Version V1
24VDC to 14VDC
2A BATTERY CHARGER
with DUAL LED
SAEJ1939
USER MANUAL
P/N: AX090600 (250kbps)
P/N: AX090600-01 (500kbps)
P/N: AX090600-02 (1Mbps)

UMAX090600 Version 1 Preliminary Documentation – May be Subject to Change ii
ACCRONYMS
ACK Positive Acknowledgement (from SAE J1939 standard)
DM Diagnostic Message (from SAE J1939 standard)
DTC Diagnostic Trouble Code (from SAE J1939 standard)
EA Electronic Assistant, AX070502 (A Service Tool for Axiomatic ECUs)
ECU Electronic Control Unit (from SAE J1939 standard)
NAK Negative Acknowledgement (from SAE J1939 standard)
PDU1 A format for messages that are to be sent to a destination address, either specific
or global (from SAE J1939 standard)
PDU2 A format used to send information that has been labeled using the Group
Extension technique and does not contain a destination address.
PGN Parameter Group Number (from SAE J1939 standard)
PropA Message that uses the Proprietary A PGN for peer-to-peer communication
PropB Message that uses a Proprietary B PGN for broadcast communication
SPN Suspect Parameter Number (from SAE J1939 standard)

UMAX090600 Version 1 Preliminary Documentation – May be Subject to Change iii
TABLE OF CONTENTS
1.
OVERVIEW OF CONTROLLER 5
1.1.
DESCRIPTION OF 14V 2ABATTERY CHARGER 5
1.2.
BATTERY CHARGE FUNCTION BLOCK 6
1.2.1. BatteryChargerOperation6
1.2.2. Pre‐chargeStage6
1.2.3. BulkChargeStage7
1.2.4. AbsorptionStage7
1.2.5. MaintainingCharge/FloatStage7
1.2.6. BatteryChargerConfigurableSetpoints7
1.3.
BATTERY PROTECTION & THERMISTOR INPUT 8
1.4.
DUAL LED STATEINDICATOR BLOCK 8
1.5.
LOOKUP TABLE FUNCTION BLOCK 10
1.5.1. X‐Axis,InputDataResponse11
1.5.2. Y‐Axis,LookupTableOutput11
1.5.3. PointToPointResponse12
1.5.4. X‐Axis,TimeResponse12
1.6.
DIAGNOSTIC FUNCTION BLOCK 14
1.7.
DTC REACT FUNCTION BLOCK 17
1.8.
CAN TRANSMITFUNCTION BLOCK 18
1.9.
CAN RECEIVEFUNCTION BLOCK 20
1.10.
AVAILABLE CONTROL/INPUT SOURCES 22
2.
INSTALLATION INSTRUCTIONS
24
2.1.
DIMENSIONS AND PINOUT
24
2.2.
MOUNTING INSTRUCTIONS
25
3.
OVERVIEW OF J1939 FEATURES
27
3.1.
INTRODUCTION TO SUPPORTED MESSAGES
27
3.2.
NAME, ADDRESS ANDSOFTWARE ID
28
3.2.1.J1939Name28
3.2.2. ECUAddress28
3.2.3. SoftwareIdentifier29
3.3.
CAN TRANSMITMESSAGE DEFAULTS
31
3.4.
CAN RECEIVEMESSAGE DEFAULTS
32
4.
ECU SETPOINTS ACCESSED WITH ELECTRONIC ASSISTANT
33
4.1.
J1939 NETWORK SETPOINTS
33
4.2.
LED CONTROL SETPOINTS
34
4.3.
BATTERY CHARGE SETPOINTS
35
4.4.
CONSTANT DATA LIST SETPOINTS 36
4.5.
LOOKUP TABLE SETPOINTS 37
4.6.
CAN TRANSMIT SETPOINTS 37
4.7.
CAN RECEIVE SETPOINTS 38
4.8.
DTC REACT SETPOINTS
39
4.9.
DIAGNOSTIC SETPOINTS
39
5.
REFLASHING OVER CAN WITH EA BOOTLOADER
41
6.
VERSION HISTORY
46

UMAX090600 Version 1 Preliminary Documentation – May be Subject to Change iv
NOTE: When a name is bolded, this refers to the name of a user configurable setpoint
group. If the name is in italic, refers to the name of a user configurable setpoint within a
setpoint group. If the name is in italic and with single quotation marks (‘’), this refers to the
the value of that configurable setpoint.
For example: In the Power Supply setpoint group, Over Voltage Limit set to ‘Proportional
Current’
This product uses the Axiomatic Electronic Assistant to program the setpoints for
application specific requirements. After configuration, the setpoints can be saved in a file
which could then be loaded into other AX090600 controllers over the CAN network.
One point to note is that if the setpoint “Auto update when control changes” is set
to TRUE in the file, the controller will automatically update some setpoints to new
defaults when key setpoints are changed. This is a useful feature during configuration,
but during a setpoint file upload it may be required to re-flash the same file a second
time if this feature is active. The second upload will ensure all setpoints are correctly
updated, since some of them may have been automatically overwritten during the first
re-flashing process, and therefore don’t match the values in the file.
To avoid this potential problem, it is highly recommended by Axiomatic to always set
the Auto update when control changes setpoint to ‘False’ before saving a setpoint
file, so that it all setpoints will be set as expected on the first upload.
REFERENCES
J1939 Recommended Practice for a Serial Control and Communications Vehicle
Network, SAE, April 2011
J1939/21 Data Link Layer, SAE, December 2010
J1939/71 Vehicle Application Layer, SAE, March 2011
J1939/73 Application Layer-Diagnostics, SAE, February 2010
J1939/81 Network Management, SAE, May 2003
TDAX090600 Technical Datasheet, 24VDC to 14VDC 2A Battery Charger
This document assumes the reader is familiar with the SAE J1939 standard.
Terminology from the standard is used but is not described in this document.

UMAX090600 Version 1 Preliminary Documentation – May be Subject to Change 5-48
1.
OVERVIEW OF CONTROLLER
1.1.
Description of 14V 2A Battery Charger
The CAN Battery Charger with LED (CAN-BC-LED) is designed for efficient battery charge control
and performance. Its robust circuit design provides safety measures to protect the battery. The
firmware works in tune with the hardware in order to provide smooth and efficient performance during
charging of the battery. The firmware allows for configurability of certain parameters to allow the
CAN-BC-LED to be used for different batteries.
Its dual LED can be configured to react to different events or faults the controller undergoes. It is
used as a means of providing visual feedback to the user of the controller’s operation.
The CAN-BC-LED has a number of built-in protection features that can halt the charging operation
in adverse conditions. These features are described in detail in section 1.6 Table 3 and they include
hardware shutoffs to protect the circuits from being damaged as well as software shutdown features
that can be enabled in safety critical systems.
In the following sections will outline in more detail the various function blocks supported by the CAN-
BC-LED. All setpoints are user configurable using the Electronic Assistant as outlined in Section 4
of this document.

UMAX090600 Version 1 Preliminary Documentation – May be Subject to Change 6-48
Volta
g
e, Current
Constant Constant
current current Constant
volta
g
eConstant
volta
g
e
Volta
g
e
Current
Time
Precharge
sta
g
e Bulk Charge stage
Absorption
sta
g
eFloat sta
g
e
Maintainin
g
Charging Charge
1.2.
Battery Charge Function Block
The CAN-BC-LED implements a 3-stage charging algorithm profile with a separate Maintaining
Charge stage. The three stages are pre-charge, bulk and absorption. The Maintaining Charge
stage is also referred to as float stage.
1.2.1.
Battery Charger Operation
Figure 1 provides a visual description of the charging process the battery undergoes using the
CAN-BC-LED controller.
Figure 1: Three-stage Charge Profile with Float Stage
The charging process begins from the Pre-charge Stage, then, when the battery voltage reaches a
certain point, the charger switches to the Bulk Charge Stage, and, finally, the charging process is
finalized in the Absorption Stage.
After the battery is fully charged, the charger maintains the battery charge in the Float Stage.
1.2.2.
Pre-charge Stage
This is the stage from which the charging operation begins. The controller is continuously
monitoring the battery voltage. If the battery voltage is low, the controller will shift to this stage and
begin charging the battery slowly at a low constant current level. A low constant current level is
used to prevent damage to the battery when it is deeply discharged. Otherwise, providing a high
constant current level could cause gas emission from the battery electrolyte and potentially
damaging the battery. The pre-charge constant current level will remain engaged until the battery
voltage has increased to a certain threshold that is safe for the battery to begin bulk charge.

UMAX090600 Version 1 Preliminary Documentation – May be Subject to Change 7-48
1.2.3.
Bulk Charge Stage
Bulk charge is the stage which restores the battery’s charge level in the shortest amount of time.
This is done by applying a high constant current level to the battery. The battery voltage will
continue to increase during the time the constant current is being applied to the battery. Once the
battery has charged enough during bulk charge its voltage will reach a certain level at which point
the operation will shift to Absorption Stage.
1.2.4.
Absorption Stage
This stage is used to bring the battery to one hundred percent capacity by applying a constant
voltage to the battery while it draws as much current as it needs to reach that full capacity.
1.2.5.
Maintaining Charge/Float Stage
Once the battery has reached full capacity, the profile will shift to the float stage which will maintain
the battery at full capacity by adjusting the duration of the constant voltage level.
1.2.6.
Battery Charger Configurable Setpoints
During initialization of the controller, the CAN-BC-LED will monitor the battery voltage and
determine which stage of profile shown in Figure 1 the controller will engage. The points at which
the stages transition from one to the next are configurable by the user. This section will explain
how these points are interpreted by the controller.
When the battery is completely discharged, the stage that will be active will be the Pre-charge
mode. At this stage, the controller will begin constant current mode at the current level entered in
Pre-Charge Stage Current Level. This current level should be low enough as to prevent damage
to the battery. The battery will pre-charge at this constant current level while the CAN-BC-LED is
continuously monitoring the battery voltage. When the battery voltage has reached the level Bulk
Charge Stage Voltage Threshold the controller will then shift the Bulk Charge mode. Once in
Bulk Charge mode, in the case the battery voltage drops lower than Bulk Charge Stage Voltage
Threshold minus Voltage Hysteresis Value the controller will shift to Pre-charge mode.
At Bulk Charge mode, the controller will increase its constant current level to Bulk Charge Stage
Current Level to charge the battery more rapidly. The controller will remain in this mode until the
battery voltage has reached Absorption Stage Voltage Threshold.
When this transition to Absorption Stage occurs, the controller will shift to constant voltage so that
the battery is able to reach full charge capacity. To determine if the battery has reached its full
charge monitoring the sourced current is necessary. When the current sourced by the CAN-BC-
LED is less than Float Stage Current Threshold it is an indication that the battery is fully charged
and move to Float Stage mode.
Float Stage is used in order to maintain the battery at full charge by adjusting its constant voltage
on time. The amplitude of this constant voltage level is determined by Float Stage Voltage Level.
It is recommended that the battery is not connected to a load until it has been fully charged (in
Float Stage mode). When the battery is connected to a load during Float Stage mode, the

UMAX090600 Version 1 Preliminary Documentation – May be Subject to Change 8-48
parameter Float to Bulk Transition Voltage Threshold. If the battery voltage drops below this
threshold, the controller will then shift to
Bulk Charge
mode.
During any stage throughout the profile, the thresholds along with their respective hysteresis
values are used to determine what stage the controller should shift in order to properly charge the
battery.
For more details on the ranges of each of the setpoints mentioned in this section, please refer to
Section 4.3.
1.3.
Battery Protection & Thermistor Input
In order to prevent a battery from damage, the hardware is able to detect over-current due to
shorts that can immediately shutdown the charging of the battery. Important signals are also being
monitored by the firmware to disable charging if any of the signals are not within proper operational
range.
There are also firmware protection settings for safe operation of the battery charge. Battery
voltage, power supply voltage, internal temperature and output current are all being monitored
continuously. These can all be enabled by the user in order to halt the battery charge operation. By
default, power supply range errors are enabled so that if the power supply voltage measured falls
outside of the ranges, the battery charge operation will stop. Once the power supply voltage falls
within operating range, the controller will determine which stage along the profile to engage based
on the monitored signals. Please refer to Sections 1.6 and 4.9 for more details on Diagnostic
setpoints.
Also, for safety, battery temperature input by an optional NTC thermistor can be physically
connected to the controller or through the J1939 network and stops the charging process if the
battery temperature increases higher than a certain level.
1.4.
Dual LED State Indicator Block
The CAN-BC-LED supports a dual LED (Green and Red). The dual LED output can be used as
means to provide the user with feedback of the status of the controller.
The structure of the output block for the dual LED output is based on stages. The CAN-BC-LED
provides the user with up to six different stages in order to provide more flexibility to the dual LED
output functionality.
Each of the six stages consists of its independent control source and digital response. However, only
one stage can be active at a time. For this reason, the 6-stage structure is based on priority in which
the 6th stage has the lowest priority and the 1st stage has the highest priority. In other words: if all 6
stages are true, the response set for stage 1 will be used to drive the LED. In the instance when
none of the stages is active (ON), the Dual LED function block has another group which is the default

UMAX090600 Version 1 Preliminary Documentation – May be Subject to Change 9-48
stage. When none of the stages are active, the user can configure the default stage to command the
LED in various ways as long as none of the stages remain inactive.
The control sources that can be used to command each of the four stages are listed in section 1.10
Table 7. The control sources available for the dual LED output consist of the same control source
options as Table 8 with the addition of controller fault options to drive the LED. Hence, the dual LED
can be configured to be driven when a (selected) fault occurs.
The output types available for the dual LED for each stage are listed in Table1 below
V
alue Meaning
0
LEDs Disabled
1
Green
2
Yellow
3
Red
4
Toggle Green/Red
Table 1: LED Output Types
The LED Responses that are available for each stage in the CAN-BC-LED are listed in Table 2 below
V
alue Meaning
0
Normal On/Of
f
1
Blinking Logi
c
2
Dim On/Of
f
Table 2: LED Response Options
In ‘Normal On/Off’ response type, the output command state will follow the control input command:
when the control input command is ON, the output will be turned ON and vice-versa.
In ‘Blinking Logic’ response type, the output will toggle at a period of ‘Digital Blink Rate’ for as long
as the input command is ON.
The Control Source setpoint together with Control Number setpoint determine which signal is used
to drive the LED of that stage. For example setting Control Source to ‘CAN Receive’ and Control
Number to ‘1’, connects signal measured from CAN Receive 1 to the stage in question. The input
signal is scaled per input type range between 0 and 1 to form control signal.

UMAX090600 Version 1 Preliminary Documentation – May be Subject to Change 10-48
Initialize the Control Source of a Lookup Table BEFORE changing the table values, as
the new settings WILL get erased when the control is updated if the Auto update when
control changes in the Miscellaneous function block is set to ‘True’.
1.5.
Lookup Table Function Block
Figure 2: Lookup Table Function Block
Lookup Tables are used to give an output response of up to 10 slopes per input. The array size of
the Response [ ], Point X [ ] and Point Y [ ] setpoints shown in the block diagram above is therefore
11.
There are two key setpoints that will affect this function block. The first is the X-Axis Source and X-
Axis Number which together define the Control Source for the function block. When it is changed,
the table is automatically updated with new defaults based on the X-Axis source selected if Auto
update when control changes in the Miscellaneous block is ‘True’.
As stated earlier if Auto update when control changes is ’True’, should the selected Control Source
change (i.e. the Min or Max values of the function block are updated), the associated table will also
be automatically updated with default settings, based on the new X-Axis limits.
The second setpoint that will affect the function block (i.e. reset to defaults), is the X-Axis Type. By
default, the tables have a ‘Data Response’ output. Alternatively, it can be selected as a ‘Time
Response’, which is described later in Section 1.5.5.

UMAX090600 Version 1 Preliminary Documentation – May be Subject to Change 11-48
1.5.1.
X-Axis, Input Data Response
In the case where the X-Axis Type = ‘Data Response’, the points on the X-Axis represents the data
of the control source.
For example, if the control source is a Thermistor input with an operating range of 20Ohm to
2.5kOhm, the X-Axis will be setup to have a default Point 1 – X Value of 0.2kOhm, and setpoint Point
10 – X Value will be set to 2.5kOhm. The Point0 – X Value will be set to the default value of 0.0kOhm.
For most Data Responses, the default value at point (0,0) is [0,0].
However, should the minimum input be less than zero, for example if a CAN message is used as the
source that is reflecting temperature in the range of -40ºC to 210ºC, then the Point 0 – X Value will
be set to the minimum instead, in this case -40ºC.
The constraint on the X-Axis data is that the next index value is greater than or equal to the one
below it, as shown in the equation below. Therefore, when adjusting the X-Axis data, it is
recommended that X10 is changed first, then lower indexes in descending order.
MinInputRange <= X0<= X1<= X2<= X3<= X4<= X5<= X6<= X7<= X8<= X9<= X10<= MaxInputRange
As stated earlier, MinInputRange and MaxInputRange will be determined by the X-Axis Source that
has been selected.
If some of the data points are ‘Ignored’ as described in Section 1.5.4, they will not be used in the X-
Axis calculation shown above. For example, if points X4and higher are ignored, the formula becomes
MinInputRange <= X0<= X1<= X2<= X3<= MaxInputRangeinstead.
1.5.2.
Y-Axis, Lookup Table Output
The Y-Axis has no constraints on the data that it represents. This means that inverse, or
increasing/decreasing or other responses can be easily established.
For example, should the X-Axis of a table be a resistive value, the output of the table could be
temperature from an NTC sensor in the range Y0=125ºC to Y10= -20ºC. If this table is used as the
control source for another function block (i.e. transmitted over CAN), then Xmin would be -20 and
Xmax would be 125 when used the linear formula.
In all cases, the controller looks at the entire range of the data in the Y-Axis setpoints and selects
the lowest value as the MinOutRange and the highest value as the MaxOutRange. They are passed
directly to other function blocks as the limits on the Lookup Table output. (i.e used as Xmin and
Xmax values in linear calculations.)
However, if some of the data points are ‘Ignored’ as described in Section 1.5.4, they will not be used
in the Y-Axis range determination. Only the Y-Axis values shown on EA will be considered when
establishing the limits of the table when it is used to drive another function block, such as an Output
Drive.

UMAX090600 Version 1 Preliminary Documentation – May be Subject to Change 12-48
1.5.3.
Point To Point Response
By default, the X and Y axes are setup for a linear response from point (0,0) to (10,10), where the
output will use linearization between each point. To get the linearization, each Point N – Response,
where N = 1 to 10, is setup for a ‘Ramp To’ output response.
Alternatively, the user could select a ‘Jump To’ response for Point N – Response, where N = 1 to
10. In this case, any input value between XN-1 to XNwill result in an output from the Lookup Table
function block of YN.
An example of a CAN message (0 to 100) used to control a default table (0 to 100) but with a ‘Jump
To’ response instead of the default ‘Ramp To’ is shown in Figure 3.
Figure 3: Lookup Table 'Jump To' Data Response
Lastly, any point except (0,0) can be selected for an ‘Ignore’ response. If Point N – Response is set
to ignore, then all points from (XN, YN) to (X10, Y10) will also be ignored. For all data greater than XN-
1, the output from the Lookup Table function block will be YN-1.
1.5.4.
X-Axis, Time Response
As mentioned in Section 1.5, a Lookup Table can also be used to get a custom output response
where the X-Axis Type is a ‘Time Response.’ When this is selected, the X-Axis now represents time,
in units of milliseconds, while the Y-Axis still represents the output of the function block.
In this case, the X-Axis Source is treated as a digital input. If the signal is actually an analog input, it
is interpreted like a digital input. When the control input is ON, the output will be changed over a
period of time based on the profile in the Lookup Table. Once the profile has finished (i.e. index 10,
or ‘Ignored’ response), the output will remain at the last output at the end of the profile until the
control input turns OFF.

UMAX090600 Version 1 Preliminary Documentation – May be Subject to Change 13-48
When the control input is OFF, the output is always at zero. When the input comes ON, the profile
ALWAYS starts at position (X0, Y0) which is 0 output for 0ms.
When using the Lookup Table to drive an output based on time, it is mandatory that setpoints “Ramp
Up (min to max)” and “Ramp Down (max to min)” in the Output X Drive function block be set to
zero. Otherwise, the output result will not match the profile as expected. Recall, also, that the Y-Axis
range of the table should be set to match the Output Drive range in order to get a 1:1 response of
table output versus drive output.
In a time response, the interval time between each point on the X-axis can be set anywhere from
1ms to 24 hours. [86,400,000 ms]
One final note about the Lookup Tables is that if a digital input is selected as the control source for
the X-Axis, only a 0 (Off) or 1 (On) will be measured. Ensure that the data range for the X-Axis on
the table is updated appropriately in this condition.

UMAX090600 Version 1 Preliminary Documentation – May be Subject to Change 14-48
1.6.
Diagnostic Function Block
There are several types of diagnostics supported by the CAN-BC-LED Controller. As described in
Section 1.3, fault detection and reaction is associated with battery charge. The CAN-BC-LED can
also detect/react to power supply over/under voltage measurements, a processor over-temperature,
or lost communication events.
Figure 4: Diagnostics Function Block
The Fault Detection is Enabled is the most important setpoint associated with this function block,
and it should be selected first. Changing it will result in other setpoints being enabled/disabled as
appropriate. When disabled, all diagnostic behaviour associated with the output or event in question
is ignored (i.e. this type of fault will not disable the output.)
In the case of a battery voltage error, it can be selected to disable the battery charging operation. By
default, a battery voltage under or over voltage condition will not shutoff the outputs.
However, power supply over and under voltage errors will cause the battery charging operation to
be disabled until the power supply voltage returns to normal operational range.
In most cases, faults can be flagged as either a low or high occurrence. The min/max thresholds for
all diagnostics supported by the CAN-BC-LED are listed in Table 3. Bolded values are user
configurable setpoints. Some diagnostics react only to a single condition, in which case a N/A is
listed in one of the columns.

UMAX090600 Version 1 Preliminary Documentation – May be Subject to Change 15-48
Function Block Minimum Threshold Maximum Threshold
Thermistor Input Minimum Error Maximum Error
Battery Voltage Battery Undervoltage Threshold Battery Overvoltage Threshold
Power Supply Power Undervoltage Threshold Power Overvoltage Threshold
Over Temperature N/
A
Over Temperature Shutdown
Lost Communication N/A Received Message Timeout
(any)
Table 3: Fault Detection Thresholds
When applicable, a hysteresis setpoint is provided to prevent the rapid setting and clearing of the
error flag when an input or feedback value is right near the fault detection threshold. For the low end,
once a fault has been flagged, it will not be cleared until the measured value is greater than or equal
to the Minimum Threshold + “Hysteresis to Clear Fault.” For the high end, it will not be cleared
until the measured value is less than or equal to the Maximum Threshold – “Hysteresis to Clear
Fault.” The minimum, maximum and hysteresis values are always measured in the units of the fault
in question.
The next setpoint in this function block is the Event Generates a DTC in DM1. If and only if this is
set to true will the other setpoints in the function block be enabled. They are all related to the data
that is sent to the J1939 network as part of the DM1 message, Active Diagnostic Trouble Codes.
A Diagnostic Trouble Code (DTC) is defined by the J1939 standard as a four-byte value which is a
combination of:
SPN Suspect Parameter Numbe
r
(first 19 bits of the DTC, LSB first)
FMI Failure Mode Identifie
r
(next 5 bits of the DTC)
CM Conversion Method (1 bit, always set to 0)
OC Occurrence Count (7 bits, number of times the fault has happened)
In addition to supporting the DM1 message, the CAN-BC-LED Controller also supports
DM2 Previously Active Diagnostic Trouble Codes Sent only on request
DM3 Diagnostic Data Clear/Reset of Previously Active DTCs Done only on request
DM11 Diagnostic Data Clear/Reset for Active DTCs Done only on request
So long as even one Diagnostic function block has Event Generates a DTC in DM1 set to ‘True’, the
CAN-BC-LED Controller will send the DM1 message every one second, regardless of whether or
not there are any active faults, as recommended by the standard. While there are no active DTCs,
the CAN-BC-LED will send the “No Active Faults” message. If a previously inactive DTC becomes
active, a DM1 will be sent immediately to reflect this. As soon as the last active DTC goes inactive,
it will send a DM1 indicating that there are no more active DTCs.
If there is more than one active DTC at any given time, the regular DM1 message will be sentusing
a multipacket Broadcast Announce Message (BAM). If the controller receives a request for a DM1
while this is true, it will send the multipacket message to the Requester Address using the Transport
Protocol (TP).
When the fault is linked to a DTC, a non-volatile log of the occurrence count (OC) is kept. As soon
as the controller detects a new (previously inactive) fault, it will start decrementing the “Delay Before
Sending DM1” timer for that Diagnostic function block. If the fault has remained present during the
delay time, then the controller will set the DTC to active, and will increment the OC in the log. A DM1

UMAX090600 Version 1 Preliminary Documentation – May be Subject to Change 16-48
will immediately be generated that includes the new DTC. The timer is provided so that intermittent
faults do not overwhelm the network as the fault comes and goes, since a DM1 message would be
sent every time the fault shows up or goes away.
Previously active DTCs (any with a non-zero OC) are available upon request for a DM2 message. If
there is more than one previously active DTC, the multipacket DM2 will be sent to the Requester
Address using the Transport Protocol (TP).
Should a DM3 be requested, the occurrence count of all previously active DTCs will be reset to zero.
The OC of currently active DTCs will not be changed.
The Diagnostic function block has a setpoint “Event Cleared only by DM11.” By default, this is
always set to False, which means that as soon as the condition that caused an error flag to be set
goes away, the DTC is automatically made Previously Active, and is no longer included in the DM1
message. However, when this setpoint is set to True, even if the flag is cleared, the DTC will not be
made inactive, so it will continue to be sent on the DM1 message. Only when a DM11 has been
requested will the DTC go inactive. This feature may be useful in a system where a critical fault
needs to be clearly identified as having happened, even if the conditions that caused it went away.
In addition to all the active DTCs, another part of the DM1 message is the first byte which reflects
the Lamp Status. Each Diagnostic function block has the setpoint “Lamp Set by Event in DM1”
which determines which lamp will be set in this byte while the DTC is active. The J1939 standard
defines the lamps as ‘Malfunction’, ‘Red, Stop’, ‘Amber, Warning’ or ‘Protect’. By default, the ‘Amber,
Warning’ lamp is typically the one set by any active fault.
By default, every Diagnostic function block has associated with it a proprietary SPN. However, this
setpoint “SPN for Event used in DTC” is fully configurable by the user should they wish it to reflect
a standard SPN define in J1939-71 instead. If the SPN is changed, the OC of the associate error log
is automatically reset to zero.
Every Diagnostic function block also has associated with it a default FMI. The only setpoint for the
user to change the FMI is “FMI for Event used in DTC,” even though some Diagnostic function
blocks can have both high and low errors as shown in Table 15. In those cases, the FMI in the
setpoint reflect that of the low end condition, and the FMI used by the high fault will be determined
per Table 15. If the FMI is changed, the OC of the associate error log is automatically reset to zero.
FMI for Event used in DTC – Low Fault Corresponding FMI used in DTC – High Fault
FMI=1, Data Valid but Below Normal Operational Range
– Most Severe Level
FMI=0, Data Valid but Above Normal Operational
Range – Most Severe Level
FMI=4, Voltage Below Normal, or Shorted to Low Source FMI=3, Voltage Above Normal, or Shorted to High
Source
FMI=5, Current Below Normal or Open
Circuit
FMI=6, Current Above Normal or Grounded
Circuit
FMI=17, Data Valid but Below Normal Operating
Range – Least Severe Level
FMI=15, Data Valid but Above Normal Operating
Range – Least Severe Level
FMI=18, Data Valid but Below Normal Operating Range –
Moderately Severe Level
FMI=16, Data Valid but Above Normal Operating Range
– Moderately Severe Level
FMI=21, Data Drifted Low FMI=20, Data Drifted High

UMAX090600 Version 1 Preliminary Documentation – May be Subject to Change 17-48
If the FMI used is anything other than one of those in Table 15, then both the low and
high faults will be assigned the same FMI. This condition should be avoided, as the log
will still useL different OC for the two types of faults, even though they will be reported
the same in the DTC. It is the user’s responsibility to make sure this does not happen.
Table 4: Low Fault FMI vs High Fault FMI
1.7.
DTC React Function Block
The DTC React function block is a very simple function which will allow a received DTC, sent from
another ECU on a DM1 message, to disable an output or be used as input to another type of logic
block. Up to five SPN/FMI combinations can be selected.
Figure 5: DTC React Function Block
Should a DM1 message be received with the SPN/FMI combination defined, the corresponding DTC
State will be set to ON. Once ON, if the same SPN/FMI combination has not been received again
after 3 seconds, the DTC State will be reset to OFF.
The DTC could be used as a digital input for any function block as appropriate.

UMAX090600 Version 1 Preliminary Documentation – May be Subject to Change 18-48
1.8.
CAN Transmit Function Block
Figure 6: CAN Transmit Function Block
The CAN Transmit function block is used to send any output from another function block (i.e. input,
status or feedback signals) to the J1939 network.
Normally, to disable a transmit message, the “Transmit Repetition Rate” is set to zero. However,
should message share its Parameter Group Number (PGN) with another message, this is not
necessarily true. In the case where multiple messages share the same “Transmit PGN”, the
repetition rate selected in the message with the LOWEST number will be used for ALL the messages
that use that PGN.
By default, all messages are sent on Proprietary B PGNs as broadcast messages. The default
settings do ‘bundle’ multiple messages onto a PGN, as outlined in Section 3. If all of the data is not
necessary, disable the entire message by setting the lowest channel using that PGN to zero. If some
of the data is not necessary, simply change the PGN of the superfluous channel(s) to an unused
value in the Proprietary B range.
Since the defaults are PropB messages, the “Transmit Message Priority” is always initialized to 6
(low priority) and the “Destination Address (for PDU1)” setpoint is not used. This setpoint is only
valid when a PDU1 PGN has been select, and it can be set either to the Global Address (0xFF) for
broadcasts, or sent to a specific address as setup by the user.

UMAX090600 Version 1 Preliminary Documentation – May be Subject to Change 19-48
The “Transmit Data Size”, “Transmit Data Index in Array (LSB)”, “Transmit Bit Index in Byte
(LSB)”, “Transmit Resolution” and “Transmit Offset” can all be use to map the data to any SPN
supported by the J1939 standard. The defaults used by the CAN-BC-LED are all for proprietary
SPNs, and are defined in detail in Section 3.3.
Note: CAN Data = (Input Data – Offset)/Resolution
The CAN-BC-LED Controller supports up to 8 unique CAN Transmit Messages, all of which can be
programmed to send any available data to the CAN network. By default, only the first message is
pre-configured to send information regarding the charging status, charging current, battery voltage,
supply voltage data. The details are outlined in Section 3.3, and the default list is shown in Table 5
below.
Block # Default Transmit Data (PGN)
1
Battery Charge Stage (0xFF00)
2
Power Supply Voltage Measured (0xFF00)
3
Battery Voltage Measured (0xFF00)
4
Current Feedback Measured (0xFF00)
5
Control Source Not Used (0xFFFF)
6
Control Source Not Used (0xFFFF)
7
Control Source Not Used (0xFFFF)
8
Control Source Not Used (0xFFFF)
Table 5: Default CAN Transmit Messages

UMAX090600 Version 1 Preliminary Documentation – May be Subject to Change 20-48
1.9.
CAN Receive Function Block
Figure 7: CAN Receive Function Block
The CAN Receive function block is designed to take any SPN from the J1939 network, and use it as
an input to any another function block (i.e. Lookup Table).
The Received Message Enabled is the most important setpoint associated with this function block,
and it should be selected first. Changing it will result in other setpoints being enabled/disabled as
appropriate. By default ALL received messages are disabled.
Once a message has been enabled, a Lost Communication fault will be flagged if that message is
not received off of the bus within the Receive Message Timeout period. This could trigger a Lost
Communication event as described in Section 1.6. In order to avoid timeouts on a heavilysaturated
network, it is recommended to set it at least three times larger than the expected update rate. To
disable the timeout feature, simply set this value to zero, in which case the received message will
never trigger a Lost Communication fault.
By default, all control messages are expected to be sent to the CAN-BC-LED on Proprietary B PGNs.
However, should a PDU1 message be selected, the CAN-BC-LED can be setup to receive it from
any ECU by setting the Specific Address that sends the PGN to the Global Address (0xFF). If a
specific address is selected instead, then any other ECU sending data on the PGN will be ignored.
The Receive Data Size, Receive Data Index in Array (LSB), Receive Bit Index in Byte (LSB), Receive
Resolution and Receive Offset can all be used to map any SPN supported by the J1939 standard to
the output data of the Received function block. The defaults used by the CAN-BC-LED are all for
proprietary SPNs, and are defined in detail in Section 3.4.
Note: Output Data = CAN Data * Resolution + Offset
Other manuals for SAEJ1939
1
Table of contents
Other AXIOMATIC Batteries Charger manuals