ADVANCED VEHICLE TECHNOLOGIES, Inc.

AVT-841
Firmware Version Descriptions
Updated: 14 November 2012

Version 0.1
Initial release for demonstration and testing. 18 July 2006.

Version 0.2
General release: 2 August 2006.
Taken from version 0.1.
Changed and added timer functions.
Added CAN mode Type1 and Type2 periodic message functions and commands.
Updated CANx_to_init routines.
Added CANx force init routines.
Changed use of: ECT0, ECT1, and RTI.
Added 5x 63 command to change RTI rate.
Cleaned up all timer functions.
Changed the method used to exit CAN mode.

Version 0.3
General release: 9 September 2006.
Taken from version 0.2.
Added the 5x 4C the command to pause processing commands.

Version 0.4
General release: 21 September 2006.
Taken from version 0.3.
Added periodic messages to VPW mode.
Added the following commands, functions, etc. to VPW mode for periodic message support: 7x 0C, 7x 18, 7x 1A, 7x 1B, 71 1C.

Version 0.5
General release 27 October 2006.
Taken from version 0.4.
VPW mode: When in block transfer mode, either receive or transmit, do not perform short to ground or short to high tests.
CAN mode: Implemented commands and functions for ISO 15765 protocol support in receive direction only (including transmitting flow control frame) for both CAN channels. Updated the user documentation.
(ISO 15765 support for transmit operations is now under development.)

Version 0.6
General release 1 December 2006.
Taken from version 0.5.
VPW mode: No changes.
CAN mode: Completed implementation of for support of ISO 15765. Transmit and receive capabilities for both CAN0 (high speed 2-wire) and CAN4 (Single Wire) channels are now fully functional.

Version 0.7
General release 18 March 2007
Taken from version 0.6.
Added K-line communications mode. Supports Keyword Protocol 2000 mode (ISO 14230) and ISO 9141 communications.
No initialization modes or methods have been implemented, yet.
Added a new reFLASH routine called FLASH3. All previous versions only had FLASH2 available.
Documentation will be updated as soon as possible.

Version 0.8
General release 2 April 2007
Taken from version 0.7.
Changes to CAN mode only.
Changed the CAN source clock to be the 4 MHz resonator (not the microcontroller PLL).
Corrected bit timing register (BTR0 and BTR1) load values for all baud rates.
Note that for previous versions of firmware the 33.333 kbaud rate was incorrect (2% error).
Fixed the 7x 0B command - it did not work.
Corrected CAN mode change routines to wait for the init-ack bit to change state before performing subsequent actions (enable listen and enable normal routines).

Version 0.9
General release 22 April 2007
Taken from version 0.8.
Documentation for AVT-84x will be updated as soon as possible.
CAN mode.
Increased number of periodic messages. Now 16 messages in each group. Only CAN mode.
Periodic messages are numbered: $01 to $10 in group 1; $11 to $20 in group 2.
KWP mode.
Added CARB mode 5-baud initialization capability.
Added FAST initialization capability.
Added the following commands.
51 2C: Query for both key bytes.
5x 46: Query / Set the network idle time prior to an initialization attempt. This is a word size variable with 1 millisecond resolution.
5x 47: Query / Set the FAST initialization mode low time.
5x 48: Query / Set the FAST initialization mode high time (prior to starting transmission of start communications message).
61 11: CARB 5-baud initialization.
6x 13: FAST initialization .

Version 1.0
General release 17 May 2007
Taken from version 0.9.

Added fully operational LIN mode.
LIN mode operates simultaneously in CAN mode. At this time there is no separate LIN mode.
Entering CAN mode gives you two CAN channels and one LIN channel all operating simultaneously.

When in CAN mode there are three time stamp commands.
52 08 00: No time stamps.
52 08 01: CAN channels are time stamped using their own baud clock derived time stamp. The LIN channel is time stamped using a 16-bit free running counter with 1 millisecond resolution.
52 08 02: Both CAN channels and the LIN channel are all time stamped using one 16-bit free running counter with 1 millisecond resolution.

VPW mode: added the 1 millisecond time stamp option using the 5x 08 command.

KWP mode: added the 1 millisecond time stamp option using the 5x 08 command.

Added a new reFLASH mode known as FLASH3 (firmware file suffix is ".pf3").
FLASH3 mode is faster than the previous FLASH2 (".pgc" file suffix) mode/method.
Both modes or methods will be supported in future firmware versions; for the time being.

The Technical Manual has been updated and a copy can (possibly) be obtained by writing to the "Support@AVT-HQ.com" address.

Version 1.1
General release: 17 July 2007
VPW: Changes to block receive manager in an attempt to prevent loss of message if a network message is received from the network immediately following receipt of a block of data.
LIN: Added the 5x 28 command to disable/enable receive message processing based on the ID byte. This feature permits receiving LIN revision 2.0 messages where the number of data bytes in the frame are not related to the message ID.
52 28 00: disable ID byte processing
52 28 01: enable ID byte processing [default]

Version 1.2
General release: 18 August 2007
CAN: Added the 7x 32 command to change the data field length for a first frame. Default is 8 bytes (total).
KWP: Added the 5x 57 command to change the data field bit length and parity status.
The User's Manual will be updated and released as soon as possible.

Version 1.3
General release: 3 September 2007
Changes in CAN mode only.
Added a wait function while sending a large block of data to the host. This prevents FIFO2 overflow and data loss if messages are are received while or shortly after forwarding a large block of data to the host. Same issue as was discovered in VPW mode and corrected in version 1.1.

Version 1.4
General release: 3 October 2007
Changes in CAN mode only.
Added the 7x 33 command to query for and change the receive buffer time out (in ISO 15765 processing mode).
71 33: query for receive buffer time out value.
72 33 xx: set the receive buffer time out; "xx" is in 167.8 msec time ticks.
Added the 7x 34 command to query for and change the default inbound flow control separation time.
71 34: query for flow control separation time.
72 34 xx: set the flow control separation time; "xx" is in 1 msec increments.
Note that this value is only used if the received flow control frame has a separation time that is zero or otherwise invalid (as defined by ISO 15765).

Version 1.5
General release: 2 November 2007
Changes in LIN mode only.
Changed the receive message processing routines.
Default now is that if an ID only byte is received, it is not sent to the host.
Added the 5x 66 command to change operation when an ID only byte is received.
51 66: query for status.
52 66 00: do not send ID only byte messages to host (default).
52 66 01: do send ID only byte messages to host. Format is: 03 05 83 xx
Explanation
03: is the packet header byte
05: means from the LIN bus (channel 05)
83: is the receive status byte; indicates frame timeout, message too short, and checksum error
xx: is the ID byte received.
In LIN operations, an ID only byte occurs if the Master device sends an ID byte and no module responds to it.

Version 1.6
General release: 4 November 2007
Corrected a bug in CAN mode, type2 periodic message routines.

Version 1.7
General release: 16 November 2007
LIN mode: added a LIN "keep alive" message function.
Added these commands:
51 04: query for the "keep alive" message
5x 04 0y id rr ss tt ... : set the "keep alive" message where
x: count of bytes to follow.
y: 0 if slave, 1 if master
id: message ID
rr ss tt ... : message data field (optional)
51 05: delete the "keep alive" message
51 07: query for "keep alive" message interval count. Interval is 167.8 msec increments.
52 07 xx: set the "keep alive" message interval count. Interval is 1678. msec increments.

Version 1.8
General release: 4 February 2008
All modes: Corrected a bug in a restricted command.
All modes: Added a new baud rate of 230.4 kbaud.
All modes: Added the 5x 67 command. This command permits a user to change the baud rate of the unit without requiring special access to the unit.
The command is only available from within an operating mode (VPW, CAN, or KWP). It is not available from the idle (startup) mode.
The new baud rate only takes affect after successful completion of the command and after a unit reset (power-on reset or an "F1 A5" reset).
The new command details:
51 67: query for baud rate setting.
52 67 01: set baud rate to 19.2 kbaud
52 67 02: set baud rate to 38.4 kbaud
52 67 03: set baud rate to 57.6 kbaud
52 67 04: set baud rate to 115.2 kbaud
52 67 05: set baud rate to 230.4 kbaud
All responses to this command are of the form: 62 67 xx

Special Note :
Errors were discovered in the AVT-842 USB driver files while testing all the baud rates with firmware version 1.8. These were corrected on 2 February 2008.
If you loaded AVT-842 USB drivers prior to that date, the driver files should be updated. You can request the updated driver files by e-mail.
If you received a driver CD from us after that date, it is likely you received a CD with updated driver files.

The User's Manual will be updated as soon as possible.

Version 1.9
General release: ~10 May 2008
All modes: Corrected several errors in several restricted commands.
No changes to any operational functions.

Version 2.0
General release: 23 June 2008
All modes: Corrected an error in EEPROM locations.
Be sure to read Volume 2 of the User's Manual if you are using the EEPROM, changing default baud rate settings, or using the security features.
Added the 5x 68 command (it is a secure command).

Version 2.1
General release: 16 July 2008
In VPW mode, removed the transmit ack "$F3 rr ss tt" after a block transfer, if transmit acks are disabled.

Version 2.2
General release: 11 September 2008
Corrected several errors found in CAN mode.
CAN mode: removed the LIN "keep alive" message functions.
CAN mode: added ten periodic messages for LIN operations. All are independent and capable of both Type1 and Type2 operations. Same periodic message commands as used by all other operating modes.
CAN mode: added KWP as an secondary mode of operation along with CAN0 and CAN4.
CAN mode: added the 5x 69 command to disable or select the secondary operational mode.
51 69: query for secondary operational mode.
52 69 00: disable both KWP and LIN as secondary operations.
52 69 01: enable LIN for secondary operations [default].
52 69 02: enable KWP for secondary operations.
Summary: In CAN mode, both CAN0 and CAN4 operate simultaneously. An additional (secondary) operation can be selected to operate simultaneously with both CAN channels. LIN mode can be selected (and is the default). LIN is designated as channel "05". KWP mode can be selected for secondary operations instead of LIN mode. KWP mode is designated as channel "06".
The User's Manual, volume I, has been updated and posted.

Version 2.3
General release: 8 December 2008
CAN mode: I5P mode (ISO 15765 support) changed default separation time for outbound frames to 2 milliseconds when a flow control frame of 00 is received. This value is controlled by the 7x 34 command.
LIN mode: Added the 5x 19 command to disable transmit checksum; default is enabled. Added the 5x 6A command to enable disable long frame support. User should use that command along with the 5x 28 command to receive long frames. Example: send 52 28 00 to disable ID byte processing, send 52 6A 01 to enable long frame support. The AVT-84x will now be able to send and receive LIN frames with a maximum of 64 data bytes.
Note that the alternate packet header format: "11 xx" is now supported and used for long received frames. The alternate header formats "11 xx" and "12 xx yy" are also support for sending LIN frames.
I will update the User's Manual volume 1 as soon as I can.

Version 2.4
Taken from released version 2.3. Never formally released. All changes went with the move to version 2.5 which followed immediately.
LIN mode: Added "5x 3C" auto buffer termination command to close a receive buffer immediately upon end of transmitting a message.
LIN mode: Added the 5x 02 receive buffer time-out command and function. Added a timer to watch the time since the last byte of the buffer was received. If that time is exceeded, the receive buffer times-out and the message in the receive buffer is immediately processed and forwarded to the host.
LIN mode: Added support for ABIC device/module. Commands to the AVT-84x that are transmit messages to the ABIC must use channel "15" with LIN mode active in CAN mode. Transmit commands to the AVT-84x that are transmit messages to the ABIC must also indicate the number of expected response bytes from the ABIC. Only the published ABIC commands are supported and only with the AVT-84x unit as the 'Master'. Example ABIC transmit command: 0x 15 yy rr ss tt ... where "x" is the count of bytes to follow; "15" indicates a transmit message to the ABIC; "yy" is the count of response bytes expected from the ABIC; "rr ss tt ..." are the bytes of the actual message to the ABIC. Do not include any checksum. The one message requiring a transmit checksum will be computed and appended (unless that function is disabled).
LIN mode: Added the "53 6B xx yy" command to generate a low pulse (break symbol) on the K-line (LIN bus) for "xx yy" microseconds.
LIN mode: Deleted the "5x 6A" command.
I will update the User's Manual volume 1 as soon as I can and as soon as this version is released.

Version 2.5
Taken from version 2.4 (which was never released).
General release: 14 July 2009
All modes: Added the capability of installing an 8 MHz reference resonator instead of the production 4 MHz reference resonator.
This change corresponds with a hardware modification available for any AVT-84x unit.
Added the "51 6E" command to query for the status of the reference resonator.
51 6E => 62 6E 04 if the reference resonator is 4 MHz
51 6E => 62 6E 08 if the reference resonator is 8 MHz
To support CAN bus baud rate of 1 Mbaud, using the 8 MHz reference resonator is preferred to the 4 MHz resonator. There is less CAN bus bit time jitter when using the 8 MHz resonator.

Version 2.6
Taken from version 2.5
General release: 30 August 2009
All modes: Decreased the size of the internal (software) incoming command FIFO #1 to 32 bytes. This will not affect operations.
All modes: Increased the size of the internal (software) FIFO #2 to 128 bytes. This will most affect CAN mode of operations by allowing more CAN frames to be buffered while waiting to be sent to the host computer. This will reduce the chance of loss of data.
All modes: Added the "5x 6A" command to control the state of the red "heartbeat" LED. Summary of the command is:
51 6A: query for blink value of the red 'heartbeat' LED.
52 6A 00: turn the LED off; does not blink.
52 6A xx: the state of the LED switches according to the count "xx" - where each count is 167.8 msec. The default value is "01".
52 6A FF: turn the LED on; does not blink.

Version 2.7
Taken from version 2.6
General release: 31 August 2009
All modes: increased the size of FIFO #2 (outbound, to host computer) to 432 bytes.
No other changes.

Version 2.9
I need to fill-in this section.

Version 3.0
Taken from released version 2.9
General release: 22 November 2009
Major changes in how FLASH memory is used, where firmware modules are installed, etc.
The startup message and all modes will now report the same firmware version number.
Changed the routine for communications to the host computer to prevent possibility of a lost byte in event RTS/CTS is negated by the host.
Added the "Auto Block Transmit" function/feature to CAN mode.
The user can store up to 32 KBytes of data in non-volatile space on the AVT-84x micro. The user can also store all the transmit parameters in non-volatile space on the AVT-84x micro.
At any time, when in CAN mode, with one simple command, the user can initiate a transfer of the stored data in consecutive CAN frames, according to the stored parameters and data. Either CAN channel can be specified.
An application note, with detailed explanations, has been posted on the "Download" page describing this function and all the commands.
Added the following Auto Block Transmit commands.
7x 36 Auto Block Transmit separation time
7x 37 Auto Block Transmit message ID
7x 38 Auto Block Transmit data
7x 39 Auto Block Transmit total byte count
7x 3A Auto Block Transmit control

Version 3.1
Taken from released version 3.0
Limited release: 23 November 2009
For testing only.

Version 3.2
Taken from version 3.1
General release: 2 December 2009
Scheduled for general release, but never actually released.

Version 3.3
Taken from version 3.2
Limited release: 2 December 2009
For testing only.

Version 3.4
Taken from version 3.3
Limited release: 4 December 2009
Only for one customer.

Version 3.5
Taken from version 3.4
General release: 8 December 2009
Summary of changes since version 3.0
Changed the micrcontroller internal bus clock to 24.0000 MHz.
Changed necessary internal parameters for communications with host computer. This provides much better baud rate accuracy and more reliable communications with host computer.
Removed the 230.4 kbaud selection command (the 52 67 05 command). The 230.4 kbaud rate for communications with the host computer is not allowed.
Note that the change in internal bus clock frequency to 24.0000 MHz changes the LIN bus baud rate formula.
Changed the routine that manages communications with the host computer. This eliminates the chance of a lost byte during very heavy (and simultaneous) communications between the 84x board and the host computer.
Added an ability to monitor for CAN channel activity without the host having to actually receive the CAN frames.
Added the 7x 3B and 7x 3C commands for the "CAN Activity" function. Command summary
71 3B: query for function status, both channels.
72 3B 0x: query for function status, CAN channel "x" = 0 or 4.
73 3B 0x 0y: set function status of channel "x". "y" = 0 = disabled, "y" = 1 = enabled.
71 3C: query for CAN frame count, both channels.
72 3C 0x: query for CAN frame count, CAN channel "x" = 0 or 4.
Notes: when the function is enabled, no CAN messages from the enabled channel will be sent to the host. When the CAN frame count is read, the counter is immediately reset. The counter will not overflow or rollover. It will count from $00 to $FF. If more frames show up, the counter will stay at $FF.

Version 3.6
Taken from version 3.5
Limited release: 7 February 2010
Developed to support the pending revision "V" add-on board capability.
Revision "V" adds a small daughter board that converts CAN0 to single wire CAN (SWC) - thus giving the AVT-84x two channels of single wire CAN.
Added the "7x 17" command to control the single wire CAN tranceiver for CAN0.
The new "7x 17" command is exactly the same as the "7x 12" command for CAN4.

Otherwise, there were no other changes to the firmware.
Version 3.5 is usually shipped with "regular" AVT-84x units.
Version 3.6 will be shipped only with AVT-84x units with the revision "V" modification installed.

Version 3.7
Taken from version 3.6
General release: 31 March 2010
Corrected an error in the EEPROM write command/routine.
No other changes.

Version 3.8
Taken from version 3.6
Never released: internal use only
Special for one customer for support of "OSPI" communications.

Version 3.9
Taken from version 3.8
Limited release: about 21 April 2010
Updates and corrections to "OSPI" mode.
Status: still in-testing by the customer.

Version 4.0
Taken from version 3.7
Limited release: to one customer only for testing
Added special error code for time-out in KWP mode "12 xx yy" transmit command.

Version 4.1
Taken from version 3.7
General release: 24 May 2010
Added special "Read" command and related command.
Added the "F0" model number query.
Re-organized and streamlined several EEPROM routines.
Re-organized and cleaned up routines to process mode switch commands.

Version 4.2
Taken from version 4.1
Never released. Developed for one customer only; for testing only.

Version 4.3

General release: 30 July 2010
Taken from version 4.1

VPW mode only:
Added the function: "Mask/Match/Respond." New commands:
5x 75: Query/define the mask bytes. Default values are $FF. Maximum of $0C bytes.
5x 76: Query/define the match bytes. Default values are $00. Maximum of $0C bytes.
5x 77: Query/define the response bytes. Default values are $00. Maximum of $0F bytes.
5x 78: Query/disable/enable the function. Default is disabled.
Operational description: Define the mask bytes, define the match bytes, define the response, and enable the command. When any message is received from the VPW network (including messages transmitted to the network by this device), each byte of the message is logically "ANDed" with a mask byte and compared to the match byte. This is done in byte order starting with the first byte of the message. If the message is shorter than the number of defined mask and match bytes the test immediately fails. The message can be equal to or longer than the defined number of mask and match bytes. If all match bytes compare successfully then the response is executed as a command by the AVT-84x interface. The manual will be updated as soon as possible. Questions ?? - contact me.

CAN mode only:
Changes to ISO15765 processing algorithms. If the AVT-84x unit is transmitting a multi-frame message to the CAN network and it receives a flow control frame with value $00 in the separation time field, the AVT-84x interface will transmit CAN frames as quickly as it can. Empirical measurements indicate approximately 275 microseconds between CAN frames.
(Note: in previous versions of firmware, if the AVT-84x interface received a $00 in the flow control separation time, it would set that value to $01 milliseconds.) In cases where the receiving module sets the flow control separation time to $00, the rate of transfer can, theoretically, be improved by a factor 3 or more.

Version 4.4 (11)
General release: 14 November 2012
Taken from version 4.1 (and intermediate un-released versions)

VPW: corrected two issues with Vpw_error2 bit0.

KWP operations (in CAN mode and KWP mode): Corrected an issue where the AVT-85x would rarely transmit an extra byte onto the K-line after completing the transmit message.

KWP mode: Added a loop delay to transmit manager in KWP mode.
Added the 5x 6D command to control that delay.
51 6D - status query
52 6D xx - delay between transmitted bytes. The delay is counted by "xx" main program loops.

The following changes were made to CAN mode operations:

Added the 7x 46 command to supress CAN0 and CAN4 "22 5F 3B" and "22 5F 7B" error responses from a non-zero block flow control frame.
71 46 - status query
72 46 00 - disable those error reports
72 46 01 - enable those error reports (default)

Changed the error code for a failure to transmit a CAN message.
It was: 22 34 xx
It is now: 22 8C xx

Fixed a code flow problem processing a CAN transmit command that was pending.

Added the "7x 3F" command to include a transmit pacing timer for all transmissions from CAN0 and CAN4.
The default value is "00" which means no delay.
71 3F - status query, both CAN channels
72 3F 00 - status query for CAN0
72 3F 04 - status query for CAN4
73 3F 00 xx - set CAN0 pacing timer to "xx" milliseconds
73 3F 04 xx - set CAN4 pacing timer to "xx" milliseconds

The following changes were made to LIN mode operations:

Added the LIN slave periodic message function. When an ID byte is received, the LIN periodic messages are searched. If a periodic message is found that is enabled, is a slave, and the ID byte matches that message is loaded into the transmit buffer and the transmit manager takes over to transmit it.
Modified the "73 1A 05 0x" and "74 1A 05 0x 0y" commands.
The last byte can have values 0, 1, 2, or 3.
0 = both LIN periodic functions are disabled.
1 = regular LIN periodic function is enabled
2 = slave LIN periodic function is enabled
3 = both regular and slave LIN periodic functions are enabled.

Put in a checksum test in the periodic message load routines. A checksum is computed and appended only if checksums are enabled. Previously it was automatic.

Version x.x
xxx


Version x.x
xxx




Site Map