Release Note
C0FE0019_xxxx.sff
MPI Version |
FPGA Version |
04.00.00
Production Release |
C0FE0019_0500 |
03.04.14
|
C0FE0019_0400_00_09 |
NA |
C0FE0019_0400_00_08 |
03.04.00
Production Release |
C0FE0019_0400 |
03.03.00
Production Release |
C0FE0019_0346 |
03.01.01 |
C0FE0019_0320 |
03.01.00
Production Release |
C0FE0019_0311 |
C0FE0019_0500
|
sqMac upgraded to support 64 nodes |
|
|
Reference Number: FP 886 |
|
|
Type: New Feature |
|
|
FPGA Version: 0x0500 |
|
|
Description
The sqMac module (the network interface logic) was upgraded to support up to 64 nodes. Key changes include:
larger packet forwarding buffer. Previously 128 bits deep, now 2048 bits (Spartan2/2e) or 8196 bits (Spartan3/3e).
Improved support for pipelined service commands.
|
|
Improved Capture module unified with Probe features |
|
|
Reference Number: FP 823 |
|
|
Type: General Change |
|
|
FPGA Version: 0x0500 |
|
|
Description:
A new unified Capture module was created to replace the older versions of both the Capture and Probe modules. In addition, new trigger features were introduced.
All Capture modules have a base feature set: Single-shot capture with the new trigger select, pre-trigger condition, and filter options. This Single-shot capture replaces the basic capture in prior FPGA versions. Some FPGAs support an additional Auto-arm mode. When enabled by software, Auto-arm uses a capture buffer memory to store multiple capture events (replaces the Probe module in prior FPGA versions).
The new trigger logic is common to all FPGAs (and slightly different to prior FPGA versions). Up to 32 trigger source inputs are available. The exact set of trigger source signals depends on the IO for each node. A trigger event can be selected from any input, with rising, falling, or both edges active. An optional filter function can be used to deglitch the signal. An optional pre-condition (based on the same trigger sources) can be specified: pre-condition high, low, rising edge, falling edge, or both.
For more information about using the new capture features, see Capture Objects. |
C0FE0019_0400_00_09
|
Drive controls brake (Disable_SynqNet) feature |
|
|
Reference Number: FP 779 |
|
|
Type: New Feature |
|
|
FPGA Version: 0x0400_00_09 |
|
|
Description:
The drive controls brake (Disable_SynqNet) feature allows certain drive processors to take control of the node for off-line operations such as motor jog without a SynqNet controller. The feature has no effect unless drive processor firmware is designed to activate it. The feature is only useful on some drive types (see your specific drive documentation).
The drive processor will not activate this mode in normal cyclic operation (which might affect normal controlled motion). While activated, the node's SynqNet ports are completely disabled, so the node is not visible to the SynqNet controller and the SynqNet controller cannot affect the node. In addition the brake output control is managed completely by the drive, allowing operations such as motor jog.
|
C0FE0019_0400_00_08
|
Demand_Strobe_Flag asserted for missing DEMAND packet |
|
|
Reference Number: FP 776 |
|
|
Type: Bug Fix |
|
|
FPGA Version: 0x0400_00_08 |
|
|
Problem/Cause:
The drive interface flag bit Demand_Strobe_Flag is incorrectly asserted even when a DEMAND packet is missing.
The SynqNet Drive Interface specification defines the Demand_Strobe_Flag as asserted for each new demand value from the controller. For example, a 4 kHz controller cycle with a 16 kHz drive would assert Demand_Strobe_Flag on every 4th Drive_Strobe. In addition, a missing DEMAND packet causes a repeated demand value resulting in a missing Demand_Strobe_Flag since no new value is presented. This allows drives to correctly track the rate of change in demands. This fault existed in all prior versions of all FPGAs.
|
|
|
Fix/Solution:
The FPGA source code has been corrected.
|
|
Upgraded drivePll module |
|
|
Reference Number: FP 773 |
|
|
Type: General Change |
|
|
FPGA Version: 0x0400_00_08 |
|
|
Description:
The drivePll module was improved to lock for a wider range of driveUpdatePeriod:controllerPeriod ratios and greater initial period error. This upgrade allows up to a 32:1 ratio and initial error of up to 16 clocks (0.640 us). This upgrade will reliably lock for any drive update period or controller period supported in any software release to date. Prior to this upgrade, the drive interface for some nodes failed to lock for some controller sample rates.
For example, a drive with 16 kHz period (such as S200) would not reliably lock to the controller rate of 1066 Hz. This configuration has a 15:1 driveUpdatePeriod:controllerPeriod ratio, and for various software reasons has a larger-than-normal initial period error. Problem ratios (and controller periods assuming a 16 kHz drive update period) are: 15:1 (1066 Hz), 14:1 (1142 Hz), 13:1 (1230 Hz). Marginal ratios are: 12:1 (1333 Hz), 11:1 (1454 Hz), 9:1 (1777 Hz), and 7:1 (2285 Hz). The marginal ratios may fail depending on the accuracy of the controller and node oscillators. When drivePll acquistion fails, the drive will not get the cyclic flag Drive_Strobe_Lock=1, and will not return the cyclic status Drive_Ready=1. The motor status indicates Amp_Fault and the motor cannot be enabled.
|
C0FE0019_0400
|
Remove drive reset complete from the fault and fault mask registers |
|
|
Reference Number: FP 466 |
|
|
Type: General Change |
|
|
FPGA Version: 0x0400 |
|
|
Problem/Cause:
As more drives require a driveBootComplete bit to indicate when they are finished booting, it was necessary to change the current bit to a more ideal location. |
|
|
Fix/Solution:
The FPGA bit, driveResetComplete, has been removed from the dedicatedIo Fault and Fault Mask registers. This bit has been replaced with driveBootComplete in the dedicatedIo Config register. This bit is monitored solely by the sqNodeLib utility. It is currently not visible through MPI calls or through Motion Console.
NOTE: This change causes compatibility issues between new FPGAs and old software (or old FPGAs with new software). FPGA version x0400 and later require the 03.04.00 MPI software release and later.
|
|
The watchdog fault was incorrectly being cleared after being activated |
|
|
Reference Number: FP 465 |
|
|
Type: Bug Fix |
|
|
FPGA Version: 0x0400 |
|
|
Problem/Cause:
The Slice I/O watchdog fault was incorrectly being cleared after being activated. If a watchdog fault occurred, the FPGA would send a stop command to all slices to halt cyclic operation. As a result of being in this stop mode, it would cause the watchdog fault to be disabled and incorrectly clear itself. Therefore, the fault would never be seen. |
|
|
Fix/Solution:
The FPGA was changed so that if the watchdog fault was the trigger to enter into the stop mode, the watchdog fault would not disable itself, thus allowing the fault to stay latched and also trigger the nodeIo fault.
|
|
sqMac Version 0300 |
|
|
Reference Number: FP 407 |
|
|
Type: New Feature |
|
|
FPGA Version: 0x0400 |
|
|
Description:
The sqNode x0400 FPGA release introduces an upgraded network module, sqMac version 0300. Upgraded features include:
- SynqNet HotReplace - allows one or more more nodes to be shutdown, replaced, and brought back on-line without interrupting other nodes.
- Revised Cable Length Discovery - a new node-to-node method was added to make discovery more accurate.
- sqPll shutdown - a controlled shutdown of individual nodes for HotReplace.
The sqMac 0300 version is NOT fully compatible with MPI versions prior to 03.04.00. Using 0300 sqMac with older software (for some configurations) might cause the "idle cable" check function to accidently corrupt normal packet traffic. But, the MPI will issue a warning if old/new FPGA/MPI are mixed by accident. |
|
Latch added on the notAmpPowered bit |
|
|
Reference Number: FP 402 |
|
|
Type: General Change |
|
|
FPGA Version: 0x0400 |
|
|
Problem/Cause:
In FPGA versions previous to 0x0400, the notAmpPowered fault bit was not latched. |
|
|
Fix/Solution:
In FPGA versions 0x0400 and later, the notAmpPowered fault bit is now latched. If active, it can be cleared by writing a "1" to bit 5 of the dedicatedIo fault status register.
|
|
Support for a maximum count rate of 50MHz without filters |
|
|
Reference Number: FP 337 |
|
|
Type: New Feature |
|
|
FPGA Version: 0x0347; 0x0400 |
|
|
Description:
In FPGAs 0x0347, 0x0400, and later, the maximum quadrature encoder count rate has been improved to be 50MHz. In previous FPGA releases, the maximum count rate was 25MHz.
|
C0FE0019_0346
|
Modications to gpioPinConfigReg |
|
|
Reference Number: FP 336 |
|
|
Type: General Change |
|
|
FPGA Version: 0x0346 |
|
|
Problem/Cause:
Prior to FPGA version x0346, gpio pins that were configured as an "output" did not resume "output" direction after an ioAbort event. Also, during the ioAbort event, if a service channel write to the gpio configuration register occurred, the gpio "output" pins would be set to "output" mode momentarily (and then cleared to "input" mode by the ioAbort event). After the ioAbort event was cleared, the gpio pin state would remain as in "input" mode unless software restored the gpio configuration register again. |
|
|
Fix/Solution:
In FPGA version x0346 and later, an ioAbort event still forces gpio "output" pins to "input" mode, which allows external resistors to pull pins from either high or low for a "safe" state. The resistors may or may not be present depending on the PCB assembly. However, during an ioAbort event, service writes to the gpio configuration register no longer cause momentary "output" direction. After the ioAbort event is cleared, gpio pins will resume their previous "output" state without software intervention.
|
|
Intermittent Dual String Discovery Failure |
|
|
Reference Number: FP 332 |
|
|
Type: Bug Fix |
|
|
FPGA Version: 0x0346 |
|
|
Problem/Cause:
Probe, resetRequest, and resetComplete were repeated on the wrong port (OUT port) when using the OUT port as the primary port during SynqNet node discovery. As a result, SynqNet node discovery may have failed. This problem was caused by the probe, resetRequest, and resetComplete being repeated on the wrong port. This issue existed in all FPGA versions prior to x0346. |
|
|
Fix/Solution:
The FPGA code was corrected in version x0346 and later releases. This fix is required for systems using the Dual String or IN Port String topologies. This fix is NOT required for systems using normal OUT Port String or Ring topologies.
|
|
sqMac - 0x00 will be read for dataType NULL |
|
|
Reference Number: FP 323 |
|
|
Type: New Feature |
|
|
FPGA Version: 0x0346 |
|
|
Description:
0x00 will be read for dataType NULL in the status and feedback packets.
|
|
Intermittent Fault Recovery failures |
|
|
Reference Number: FP 315 |
|
|
Type: Bug Fix |
|
|
FPGA Version: 0x0346 |
|
|
Problem/Cause:
Some nodes may have intermittently failed to recover from a fault in some network configurations. If a node failed to recover, it exited cyclic operation and correctly triggered ioAbort logic (forcing outputs into "safe" states). Any nodes "downstream" of the failing node (after it switched ports) were also likely to exit cyclic operation. For any given node, there was only a small schedule window where this error may have occurred. There were two causes of the problem. The rcvMiiBuffer did not clear itself after an overflow in some situations. Also, a packet fragment generated by the fault recovery that happened to have valid CRC (but no data) would confuse the packetFifo, and corrupt internal node configuration bits. The first issue existed in FPGA build versions x0341 through x0345 and their branches (MPI release 03.02.00). The second issue existed in all FPGA versions prior to x0346. |
|
|
Fix/Solution:
The fault recovery problems have been fixed in FPGA build versions x0346 and later. The rcvMiiBuffer will correctly clear itself after an overflow. The xmitMiiReg will release xmitHoldRcvBuf within 8 clocks after a fault, preventing an rcvMiiBuffer overflow. 8 clocks will guarantee that there is minimum packet spacing between the packets. sqPll will ignore the second SYNQ packet after fault recovery (in case packet delays were effected in the cycle where fault recovery occurred). The rcvMii will correctly handle a valid packet with data length of 0. No software changes are required.
|
|
Support for 8 or 16 bit Parallel Drive Interface |
|
|
Reference Number: FP 287 |
|
|
Type: New Feature |
|
|
FPGA Version: 0x0346 |
|
|
Description:
Added support for parallel 8 bit or 16 bit parallel drive interface. Added support for a Drive ID read register. Added support for big/little endian byte ordering when in 8 bit mode.
|
|
Support for big and little endian bytes |
|
|
Reference Number: FP 301 |
|
|
Type: New Feature |
|
|
FPGA Version: 0x0346 |
|
|
Description:
Support has been added for big endian or little endian byte ordering in the driveParallel interface.
|
C0FE0019_0341
|
captureFast (Probe) secondary encoder index |
|
|
Reference Number: FP 266 |
|
|
Type: Bug Fix |
|
|
FPGA Version: 0x0341 |
|
|
Problem/Cause:
The captureFast (Probe) module did not support captures on secondary encoder index for FPGA versions prior to x0341. This function was missing from the internal FPGA code. |
|
|
Fix/Solution:
The FPGA code was corrected in versions x0341 and later. No software changes are required.
|
|
sqMac rxMiiBuffer multiple packets |
|
|
Reference Number: FP 263 |
|
|
Type: General Change |
|
|
FPGA Version: 0x0341 |
|
|
Description:
Add support for multiple packets to the rxMiiBuffer. This improves tolerance to network jitter. Prior to version x0341, the rxMiiBuffer could absorb up to 32 clocks (1.28 µS) of delay for a single packet, but only 8 clocks for multiple packets with minimum spacing. This change is required to meet theoretical worst-case network jitter in large networks (32 nodes). The improvement may also help at network startup, since the node's PLL phase error is larger than normal (as the PLL pulls into nominal lock). No software changes are required.
|
C0FE0019_0340
|
Add CaptureFast (Probe) |
|
|
Reference Number: FP 252 |
|
|
Type: General Change |
|
|
FPGA Version: 0x0340 |
|
|
Description:
Added captureFast (Probe) feature to C0FE0019. |
|
New BranchRev Register |
|
|
Reference Number: FP 231 |
|
|
Type: New Feature |
|
|
FPGA Version: 0x0340 |
|
|
Description:
Add BranchRev register. This extends the existing 16 bits of FPGA version number with 8 bits of branch and 8 bits of revision ID.
|
C0FE0019_0320
|
sqNode driveMemory clock domain fix |
|
|
Reference Number: FP 212 |
|
|
Type: Bug Fix |
|
|
FPGA Version: 0x0320 |
|
|
Problem/Cause:
Service channel data sent to or from a drive, may have been corrupted. This was caused by an FPGA bug in crossing clock domains from driveClk to the internal 25 MHz clock. This problem could have occurred in any driveParallel designs (C0FE0014, C0FE0019, C0FE0031) prior to version 0x0320. |
|
|
Fix/Solution:
The FPGA code was modified to prevent clock domain problems. This problem was fixed in FPGA versions 0x0320 and later.
|
C0FE0019_0311
|
dedicatedIo
- Expansion of dedicatedIn to 32 bits |
|
|
Reference Number: FP 167 |
|
|
Type: General Change |
|
|
FPGA Version: 0x0311 |
|
|
Description:
Expand the dedicatedIn word from 16 bits to 32 bits and add the
status bits Feedback 0 Fault and Feedback 1 Fault. Note: Although
the FPGAs now supports additional bits, the MPI does not yet enable
them. |
|
Clearing
driveWatchdogFault and driveChecksumError |
|
|
Reference Number: FP 160 |
|
|
Type: Bug Fix |
|
|
FPGA Version: 0x0311 |
|
|
Problem/Cause:
Clearing the driveWatchdogFault and driveChecksumError required
two service comandsa write to start the clear, and a write
to end the clear. MPI releases prior to the 03.01.00 did not clear
the bits.
|
|
|
Fix/Solution:
Corrected the Drive Watchdog Fault and Drive Checksum Error bits
to clear with a single service command. MPI releases 03.01.00 and
later support this new behavior and clear the bits after a network
reset. |
|
Set
unused pin default to FLOAT |
|
|
Reference Number: FP 155 |
|
|
Type: General Change |
|
|
FPGA Version: 0x0311 |
|
|
Description:
Set unused pins to FLOAT after the FPGA configuration process. After
a power-on, but prior to FPGA configuration, SynqNet FPGA pins should
be high-impedance outputs.
NOTE: The mode pins can enable internal pullups, but this
is not recommended for SynqNet.
After configuration, unused pins will be high-impedance outputs
with no internal pull-up or pulldown. In earlier versions, unused
pins would default to weak internal pulldowns. This was not ideal
since it could have conflicted with an external pull-up. |
C0FE0019_0303
|
SqMax
Cyclic Status |
|
|
Reference Number: FP 141 |
|
|
Type: Bug Fix |
|
|
FPGA Version: 0x0303 |
|
|
Problem/Cause:
There was a problem where SqMax NodeStatus cyclic status bits may
have been corrupted after reading some of the FPGA registers (via
the service command). The bits that could have been corrupted are:
analogPowerFault, ioAbort, nodeAlarm, and nodeDisable. This issue
has existed since release x0100.
|
|
|
Fix/Solution:
This problem has been fixed. |
|
Support
for Multi-Vendor Flash Download |
|
|
Reference Number: FP 140 |
|
|
Type: General Change |
|
|
FPGA Version: 0x0303 |
|
|
Description:
Support has been added for a number of different flash component
vendors. Flash components that are currently supported are:
Vendor |
PN |
Size |
Circuit |
Atmel |
AT25F2048N-10SI-2.7 (2MB) |
2MB |
Bowsprit |
Atmel |
AT45DB021B |
2MB |
Bowsprit |
Atmel |
AT45DB041B |
4MB |
Bowsprit |
Atmel |
AT45DB081B |
8MB |
Bowsprit |
NEXFLASH |
NX25P20-VN |
2MB |
Bowsprit |
NEXFLASH |
NX25P40-VN |
4MB |
Bowsprit |
SST |
SST25VF020-20-4C-SA |
2MB |
Bowsprit |
SST |
SST25VF040-20-4C-SA |
4MB |
Bowsprit |
STM |
M25P20-VMN6T |
2MB |
Bowsprit |
STM |
M25P40-VMN6T |
4MB |
Bowsprit |
STM |
M25P80-VMN6T |
8MB |
Bowsprit |
Xilinx |
XC18V02 |
2MB |
Outrigger |
|
|
NodeDisable
and analogPowerFault invert |
|
|
Reference Number: FP 139 |
|
|
Type: Bug Fix |
|
|
FPGA Version: 0x0303 |
|
|
Problem/Cause:
There was a problem with the inverted polarity option for the FPGA
inputs nodeDisable and analogPowerFault. Prior to this fix, only
the default polarity was functional. The problem happened because
the hardware invert logic was inserted after the hardware latch
function. Therefore, when "invert" was selected, the input
would typically latch the negated state, and would not report a
fault unless the latch was cleared by a software command. If the
"invert" option was NOT used, the input would function
correctly. This issue did not exist until the x020C release, where
these inputs were first latched.
|
|
|
Fix/Solution:
This problem has been fixed. |
|
PhaseAdjust
clash |
|
|
Reference Number: FP 137 |
|
|
Type: Bug Fix |
|
|
FPGA Version: 0x0303 |
|
|
Problem/Cause:
There was a problem in the sqPll function of the sqMac. With certain
timing values, one node in the network may have fail to hold lock
and then aborts cyclic operation. For a typical 3-node network,
this timing typically occurred with TxTime set to 95%. Other TxTime
values may fail in other network configurations.
|
|
|
Fix/Solution:
This problem has been fixed. |
|
24mA
drive for GPIO pins |
|
|
Reference Number: FP 134 |
|
|
Type: General Change |
|
|
FPGA Version: 0x0303 |
|
|
Description:
The drive current of GPIO pins has been increased to +/-24mA. Other
outputs which may drive opto isolators (LED outputs, nodeAlarm,
ampEnable, brakeApplied) were already configured for 24mA drive
current. See individual FPGA specifications for complete details
of I/O characteristics. |
|
SqMax
rcvDataUnload |
|
|
Reference Number: FP 123 |
|
|
Type: Bug Fix |
|
|
FPGA Version: 0x0303 |
|
|
Problem/Cause:
There was a problem in the receive data unload function of the sqMax.
In certain situations where the packet size did not match the configured
packet size, invalid sqMax outputs were observed to cause "glitches"
in the I/O output signals. The glitches would occur at the transition
from cyclic to asynq operation, but the ioAbort signal would normally
prevent these glitches from reaching external logic.
|
|
|
Fix/Solution:
This problem has been fixed. |
|
Improved
Secondary Encoder Support |
|
|
Reference Number: FP 109 |
|
|
Type: General Change |
|
|
FPGA Version: 0x0303 |
|
|
Description:
Improvements have been made to the secondary encoder features. These
changes allow the use of encoder faults and capture with secondary
encoders. Secondary feedback for drives has also been added. The
changes are NOT backwards compatible with software releases prior
to 20031222 (secondary encoder feedback is not fully functional
with prior software). |
|
Improved
ADC Support |
|
|
Reference Number: FP 108 |
|
|
Type: General Change |
|
|
FPGA Version: 0x0303 |
|
|
Description:
Improvements have been made to the ADC features to use the new "nodeIo"
conventions. These changes allow up to 8 ADC channels per node (prior
to this, the default was 1 ADC channel per motor). The changes are
NOT backwards compatible with software releases prior to 20031222
(ADCs are not functional with prior software). |
|