Readme.txt ---------- ATS460 Install Disk for Windows 2000, Windows XP, Windows XP x64, Vista 32 bit and Vista 64 bit Version 5.7.6 Release date: November 23, 2009 1. What is ATS460 Install Disk ? ATS460 Install Disk provides device drivers and DLLs required to operate the ATS460 125 MS/s 2-channel, 14-bit PCI Digitizer under Windows 2000, Windows XP, Windows XP x64, Vista 32 bit and Vista 64 bit operating systems. ATS460 Install Disk also includes a free license of AlazarDSO application program that allows you to setup one or more ATS460 cards, acquire and view analog signals and save the data to disk. Note that AlazarDSO is available as a 32 bit application as well as a true 64 bit application. ******************************************************************** ******************************************************************** 2. Requirements One of the following operating systems: Windows 2000 Windows XP Windows XP x64 Windows Vista 32 bit Windows Vista 64 bit Note that Windows 2000 and Windows 98/SE operating systems are no longer supported. The last version that supported these operating systems was v4.9.8. 3. How to install ATS460 drivers Run Setup.exe program before installing the hardware. Insert the card in a vacant PCI Express slot. Follow the instructions listed in the ATS460 User Guide. 4. How to install AlazarDSO Navigate to the appropriate AlazarDSO folder (32 bit or 64 bit) on the ATS460 Install Disk. Run Setup.exe. Follow instructions on the screen. 5. Please send your questions, suggestions and bug reports to support@alazartech.com 6. The latest version of ATS460 Install Disk can always be found at http://www.alazartech.com/support/downloads.htm 7. What is new in this version? Version 4.5.1 ------------- Version 4.5.1 is the first released version of the ATS460 Driver. Version 4.5.2 ------------- Version 4.5.2 returns the correct memory size for the ATS460 in AlazarGetChannelInfo API call. Version 4.5.2 powers down the on-board ADC chips when the DLL is closed, i.e. when the ATS460 is not being used. This is done to improve energy savings and reduce power consumption. Version 4.6.0 ------------- Version 4.6.0 supports the Dual Port Memory Upgrade and fully implements the advanced AutoDMA capability of the ATS460, whereby users can capture data based on rapidly occuring trigger events (also known as Hi-PRF Capture) at rates as high as 2 KHz for records as long as 2048 samples. Applications for this capability include ultrasonic imaging, ultrasonic material testing, radar, lidar and any other pulse-echo type application. The new API calls included in Version 4.6.0 are: - AlazarStartAutoDMA - AlazarGetNextBuffer - AlazarAbortAutoDMA - AlazarCloseAutoDMA Version 4.6.1 ------------- Version 4.6.1 supports the AlazarGetStatus API function that allows the calling program to find out if a timeout had occurred on any of the records captured in the previous acquisition session. Version 4.6.1 also changes the Trigger Out functionality of the ATS460 when used in conjunction with Trigger Delay. Previously, Trigger Out signal was asserted after the delay had expired. Starting from this version, Trigger Out is asserted as soon as a trigger is detected, i.e. before the trigger delay has expired. Version 4.6.1.1 --------------- Version 4.6.1.1 updates the firmware for ATS460 in order to improve trigger stability. V4.6.1 firmware exhibited as much as 8 sample point trigger jitter under accelerated temperature cycling. Version 4.6.3 --------------- Version 4.6.3 fixes a bug in AutoDMA operation that could cause the ATS460 to freeze during very high trigger repeat rates (~ 8 KHz). System monitoring has been added to guarantee no lock-ups even at extreme trigger rates. Version 4.6.3.2 fixes a trigger jitter bug re-introduced in V4.6.3. Version 4.6.4 --------------- Version 4.6.4 supports ATS460 V1.2 boards that use a larger FPGA. Note that previous versions of the driver will cause the PC to freeze upon start-up if v1.2 hardware is found. This is because the FPGA image supplied with the older drivers cannot be loaded into the V1.2 FPGA. Version 4.6.5 --------------- Version 4.6.5 fixes a bug which caused ATS460 to freeze in some PCs. Version 4.6.5 also includes a more redundant FPGA download scheme that returns an error if the expected FPGA file is not found. Version 4.6.5 also allows custom FPGAs to be downloaded for OEM customers. Version 4.7.0 --------------- Version 4.7.0 is the first version to support 128 MegaSamples acquisition memory for ATS460. Version 4.7.0 also allows the TRIG OUT connector to be reconfigured as TRIGGER ENABLE input. Note that a hardware modification is required to make this change. Version 4.7.0 also fixes numerous bugs listed below: a) Previous versions of ATS460 driver were susceptible to not triggering on Channel A or Channel B when negative slope was selected. Version 4.7.0 fixes this bug. b) Version 4.6.5 introduced a bug, which caused ATS460 to not be recognized in some PCs. This was caused by improper downloading of the FPGA image. Version 4.7.0 fixes this bug. c) Dual channel AutoDMA transfers in previous versions sometimes produced spurious data. Version 4.7.0 fixes this bug for v1.2 hardware. Version 4.7.1 --------------- Version 4.7.1 allows any Slave ATS460 in a Master/Slave system to trigger the system. Previous version (V4.7.0) only allowed the Master board to trigger the system. Version 4.7.1 also fixes a bug in trigger address calculation for AutoDMA transfers. Previous versions of ATS460 driver may have miscalculated the trigger address by as many as 16 points. Dual channel AutoDMA transfers have also been made more reliable in V4.7.1. Previous versions sometimes caused wrong data to be captured for overall data transfer greater than 8 Million samples. Version 4.7.1 also issues a reset signal to the PCI interface circuit when the ATSApi or ATSApiVB DLL is loaded. Version 4.7.1 ATSApi and ATSApiVB DLLs no longer try to activate drivers named PCI9052, PCI9054, PCI9056, PCI9656. This could have caused a conflict with other PCI boards that used these interface chips and did not rename their driver name. Version 4.8.0 --------------- Version 4.8.0 fixes a bug for AutoDMA transfers that could have caused data corruption if RecsPerBuf was set to value for which bits 7 or 8 were '1'. For example, a setting of RecsPerBuf = 64 in dual channel mode (or 128 in single-channel mode) could have caused intermittant data corruption. Customers MUST upgrade to V4.8.0 driver, as the fix requires a new FPGA image (*.ALI file) and a new DLL. Do NOT simply copy the FPGA file to its destination folder, as it will not work with any of the older DLL files. Version 4.8.0 also fixes a bug in setting Trigger Timeout. In previous versions, if Timeout was set to a value of 1 (one), the system would not wait for all pre-trigger points to be captured before issuing a Timeout Trigger. In version 4.8.0, if a Timeout value of 1 (one) is set, the DLL will automatically promote that value to 2. Version 4.8.1 --------------- Version 4.8.1 fixes a bug for non-AutoDMA transfers (using AlazarRead) that could have caused a failure in the AlazarRead operation, resulting in the system freezing. Version 4.8.5 --------------- Version 4.8.5 fixes a bug for AutoDMA transfers that could have cause one of the FIFOs to overflow at high trigger rates, causing a data dropout. Version 4.8.5 also fully supports the PCI Streaming mode. In previous versions of the driver, DMA Overflow flag was not properly read, resulting in false positives. Version 4.8.6 --------------- Version 4.8.6 fixes a bug that caused DMA Overflow flag to be falsely asserted when capturing both channels in continuous capture (PCI streaming) mode. Version 4.8.7 --------------- Version 4.8.7 allows the user to acquire up to 256,000 triggers into on-board memory. Previously, this limit was 1000 triggers. As before, both pre-trigger and post-trigger points can be captured for each of the records. A 40-bit timestamp value is also recorded for each of the records. Version 4.9.0 --------------- Version 4.9.0 is the first release that supports ATS860, a 250 MS/s 8 bit PCI Digitizer. Version 4.9.0 also fixes some kernel level driver errors that could have been generated in some PCs that do strict power management. Version 4.9.0 also fully supports Data Record Headers for AutoDMA transfers. Users can now obtain information such as Time Stamp, Record Number, Who Triggered etc. for each of the records captured using AutoDMA. This makes it very easy to find out if any of the triggers was missed or not and also to obtain the arrival time of each trigger. A new data structure, ALAZAR-HEADER, has been introduced that defines the format of the AutoDMA header. For further information visit http://www.alazartech.com/support/documents/alazarheader.htm For C applications, the following API has been introduced to calculate the pointer value of the data buffer, if headers are used: - AlazarGetAutoDMAPtr For VB and other programming environments that cannot handle a C data structure, the following API calls have been introduced: - AlazarGetAutoDMAHeaderValue - AlazarGetAutoDMAHeaderTimeStamp Version 4.9.0 also supports the loading of custom FPGA images. The following new API calls have been introduced, in addition to the existing AlazarOEMDownloadFPGA API call: - AlazarGetOEMFPGAName - AlazarOEMSetWorkingDirectory - AlazarOEMGetWorkingDirectory - AlazarParseFPGAName - AlazarVerifyOEMFPGAFile Version V4.9.0 also supports Slow External Clock for Master/Slave systems. Previous versions only allowed Slow External Clock on independent boards. Starting with V4.90, the DLL sets SLow Expernal Clock control for each of the Slave boards, in addition to the Master board. Version 4.9.0 also fixes a bug in the installation INF file that now overwrites registry values when a driver is upgraded. This is particularly useful for customers upgrading from ATS310-128K or ATS330-128K to ATS310-8M or ATS330-8M. Previous versions did not update the maximum buffer size key in the registry, causing a DMA failure message to be generated. Note this error applies only to ATS310 and ATS330 users. Version 4.9.1 --------------- Version 4.9.1 has no impact on the ATS460. It fixes some bugs for ATS860 data reading. Version 4.9.2 --------------- Version 4.9.2 fixes a bug in AutoDMA that caused one Pre-Trigger sample to be read if user had set Pre-Trigger depth to be 0. Version 4.9.2 also fixes a bug that caused occasional 8 point trigger jitter at very high trigger repeat rates. Version 4.9.3 --------------- Version 4.9.3 introduces the concept of Events for AutoDMA operation. User does not have to poll to see if a new buffer is available. A system event is generated upon DMA completion. This reduces CPU usage from close to 100% to around 20%. The new API functions having to do with events are: - AlazarEvents - AlazarWaitForBufferReady Concept of "No Pre Trigger" (NPT) AutoDMA capture is introduced. In previous versions, ATS460 always captured pre-trigger information. As a result, trigger addresses had to be stored in on-chip memory that was limited to 512 locations. If more than 512 triggers were captured in on-board memory without having been offloaded, a DMA Overflow error was generated. With NPT AutoDMA, no pre-trigger data is stored in on-board memory. As such, there is no need to store trigger addresses for each trigger. NPT AutoDMA can handle much higher system latencies than previous versions. Users can take advantage of NPT AutoDMA by calling AlazarStartAutoDMA with the appropriate Cflags parameter. Version 4.9.3 also introduces a new API that can be used by application developers to find out the maximum number of records that can be captured into on-board memory. The new API function is: - AlazarGetMaxRecordsCapable Version 4.9.3 allows the user to control how the timestamp counter would be initialized. The default mechanism is that the time stamp counter is initialized to zero at the start of each acquisition, i.e. whenever AlazarStartCapture is called. The new API function is: - AlazarResetTimeStamp Using this new API call, programmers can tell the ATS460 to initialize the time stamp counter on the subsequent AlazarStartCapture call, but never again. Timestamp counter will then free-run until the AlazarStartCapture call subsequent to the next call to AlazarResetTimeStamp. This new capability allows users to get time stamp information on multiple acquisitions. Version 4.9.3 also resets the ATS460 upon exit. This resolves the bug that could have caused a bugcheck (blue screen) when the application was closed. The firmware accompanying Version 4.9.3 also has improved and pipelined interface for PCI bus. Some of the previous firmware versions caused some PCs to freeze while data was being transferred. Version 4.9.4 --------------- Version 4.9.4 fixes a bug in Version 4.9.3 that did not allow NPT AutoDMA to work in dual channel mode. Version 4.9.6 --------------- Version 4.9.6 allows NPT AutoDMA to work with optional Trigger Enable. Previous versions did not allow the two modes to operate together. Version 4.9.8 --------------- Version 4.9.8 allows programmers to read the serial number and other board-specific information using AlazarQueryCapability API call. Version 4.9.8 also fixes a bug introduced in Version 4.9.3 whereby non-AutoDMA acquisitions with greater than 1000 triggers produced faulty data. This fix is done in the new FPGA firmware. Version 4.9.8 also allows programmers to use AlazarRead API call even after an AutoDMA session. In previous versions, some of the AutoDMA related bits were not being reset at the end of an AutoDMA, causing Traditional API's such as AlazarRead to fail. Version 5.1.0 --------------- Version 5.1.0 provides support for Non-Pretrigger AutoDMA in both Dual and Single channel modes. Version 5.1.1 --------------- Version 5.1.1 fixes a bug in the AtsApi.DLL that did not allow the number of records for Master/Slave configurations to be greater than 1000. Version 5.1.1 corrects a problem in the trigger engine firmware that may have caused faulty triggering in a Master/Slave configuration using more than 1000 triggers in the Traditional acquisition mode. Version 5.1.2 --------------- Version 5.1.2 fixes a bug in the AtsApi.DLL that did not allow dual channel operation with NPT AutoDMA. Version 5.1.2 fixes a bug in AlazarAbortAutoDMA API call that sometimes did not close the DMA channel properly, requiring a program restart for any further AutoDMA based data acquisition. Version 5.2.0 ------------- Version 5.2.0 is the first fully-released version of 64 bit drivers for ATS460. Version 5.2.0 also supports WOW, allowing 32 bit applications to call 64 bit driver. Installation of WOW drivers is done simultaneously with the 64-bit driver installation. Starting with Version 5.2.0, AlazarTech products are installed in their own class in Device Manager. The ClassName is "AlazarTech PCI Digitizers". Version 5.3.0 ------------- Version 5.3.0 uses a new, highly integrated memory control logic that improves data throughput and reliability. Note that this new logic increases power consumption by approx. 10%. Version 5.3.0 adds the ability to adjust the external clock reference voltage using the AlazarDACSettingAdjust API call. Version 5.3.0 changes AlazarStartCapture API call to power on the ADC chips if the AlazarSleepDevice API was previously called to power down the ADCs. Version 5.3.0 fixes a bug in all previous v5.x.x drivers, whereby AlazarGetNextAutoDMABuffer did not return code 513 when the last buffer was received. This could have resulted in acquiring an extra buffer containing bad data at the end of the acquisition. Version 5.3.1 ------------- Version 5.3.1 fixes a bug in the DLL of version 5.3.0 that caused HyperDiSP to fail. Version 5.3.2 ------------- Version 5.3.2 allows "Triggered Streaming", i.e. streaming across PCI bus that starts only after a trigger event has been received. Previous versions of the dll started streaming immediately after a call to AlazarStartCapture. Version 5.3.3 ------------- "Triggered Streaming", introduced in version 5.3.2 of the DLL, caused interference with dual port memory captures done in NPT (No Pre-Trigger) mode. Version 5.3.3 fixes that bug. Version 5.4.0 ------------- Version 5.4.0 fully supports asynchronous DMA from ATS460 to host PC memory using overlapped I/O. Overlapped I/O, (IO completion ports) are a high performance means of reading and writing simultaneously on the same socket. It is managed at system level, thus offering maximum performance. This technique has only been available since the advent of Winsock 2.0 in Windows NT, 2000, and XP. Note that this feature is not supported under Windows 98 SE. This is the highest performance dma possible under Windows, as the CPU usage stays at 0% even if data throughput is 100 MB/s. Some new API calls have been introduced in this version to allow asynchronous dma's: - AlazarBeforeAsyncRead - AlazarAsyncRead - AlazarAbortAsyncRead Version 5.4.0 is fully Vista power management compliant, i.e. it fixes a power state handling bug in previous versions, which caused a Vista-based PC to crash if it was powered down with the ATS460 driver loaded. In some machines, this crash caused a re-boot. Version 5.5.0 ------------- Version 5.5.0 adds supports for helper functions for asynchronous DMA from ATS460 to host PC memory using overlapped I/O. Version 5.5.0 fixes a bug in AlazarGetNextAutoDMABuffer routine. In version 5.4.0 of the driver, this routine was returning only half the data in No-Pre-Trigger (NPT) mode. Version 5.5.0 driver also fixes a bug in previous versions that caused the driver not to load under Windows 2000. Version 5.6.0 ------------- Starting in Versions 5.6.0, the device driver is being distributed with a Setup.exe installation program. Api’s, “AlazarSetParameter”, “AlazarGetParameter”, “AlazarSetParameterUL”, and “AlazarGetParameterUL” are documented. Asynchronous AutoDMA applications using the “AlazarWaitNextAsyncBufferComplete” API, (mostly used in LabView) can sense if an overflow situation is about to occur, and selectively discard data buffers in order to safe guard from overflowing. AtsApi.dll now indicates the architecture type in the Product Description field of the files property page. This is used to easily distinguish the x64 architecture SDK dll from the x32 architecture sdk dll. To view this information, Right-Button click on the dll file, select the Properties menu item and click the Version tab. Previous versions of the driver could have caused data integrity problems with some SODIMMs used on ATS460-128M. Version 5.6.0 introduces new FPGA images, A6110236.ali and A6210236.ali, that fix this bug by running the on-board memory at 100 MHz clock frequency. Version 5.6.2 ------------- New build using the new Windows Vista DDK. Version 5.6.2 fixes a bug in the AlazarPostAsyncBuffer Api of the AtsApi.dll and AtsApiVB.dll files that set the asynchronous DMA length based on the BufferLength parameter passed to AlazarPostAsyncBuffer routine instead of using the values set in AlazarBeforeAsyncRead, i.e. SamplesPerRecord and RecordsPerTransfer. In previous versions, if BufferLength was greater than the value set in AlazarBeforeAsyncRead, data could get compromised. In Version 5.6.2, AlazarPostAsyncBuffer generates an error if BufferLength is less than the DMA length value set in AlazarBeforeAsyncRead. Version 5.6.2 introduces a new API called AlazarWrite. At present this API is for internal use. Version 5.6.3 ------------- Version 5.6.3 fixes a bug that NPT and Traditional Synch/AsyncDMA would fail if the user was previously using Continuous Streaming or Triggered Streaming. The trigger settings were not being restored properly. The accompanying A6110237.ALI and A6210237.ALI FPGA images fix a bug in previous versions that could have possibly caused the DMA engine to lock up when a user initiated an abort. Version 5.6.4 ------------- Version 5.6.4 fixes a bug in previous versions that could have caused on-board DMA state machine to lock up in DmaPaused or DmaInProgress states. The accompanying FPGA files allow unconditional completion of an in-progress DMA in order to avoid this error. Version 5.6.4 fixes a bug in previous versions whereby if user attempts to do a No-Pre-trigger (NPT) acquisition using Asynchronous DMA after having done an acquisition with "Enable Headers", the first 16 points of the NPT data were corrupted. Version 5.6.4 resets the "Enable Headers" bit properly when doing an NPT acquisition. Version 5.6.5 ------------- Version 5.6.5 driver installation program provides full support for non-english language operating systems. Previous versions may have reported an error when user tried to install the drivers on a computer running non-english language operating system. Users can also start the driver installation program in quiet mode (with no user interface) by opening a command prompt in the "winxp" or "winxp_64" folder and typing "DPInst /q" or "DPInst /s". Version 5.6.6 ------------- Version 5.6.6 fixes a bug in the driver that could have caused a lockup of the computer at very high trigger repeat rates. The lockup may have exhibited itself by freezing the mouse and keyboard or by simply stalling the acquisition. Version 5.6.7 ------------- Version 5.6.7 fixes a bug in AlazarAbortAsyncRead in continuous or triggered mode where the in-progress DMA was not aborted. The PC would have to be rebooted to recover from this error. Version 5.6.8 ------------- Version 5.6.8 Adds GET_BOARD_OPTIONS_LOW and GET_BOARD_OPTIONS_HIGH to AlazarQueryCapability to ATSApil.dll Version 5.6.9 ------------- Version 5.6.9 properly installs all support files for WOW drivers that allow operation of the card in a 32-bit application, such as LabVIEW, while running on Vista 64-bit operating system. Version 5.6.10 -------------- Version 5.6.10 adds SETGET_ASYNC_BUFFSIZE_BYTES to AlazarSetParameter so that calls to AlazarBeforeAsyncRead using the ALLOC_BUFFERS flag (such as LabVIEW) can request data buffers whose size in samples is not equal to samples_per_record * records_per_transfer. Version 5.6.10 modifies AlazarAsyncRead to accept buffers whose size is not equal to the number of samples per transfer as specified in the call to AlazarBeforeAsyncRead. Version 5.6.10 introduces ATSApi.log. ATSApi.log file is debugging tool that allows us to record how programs call ATSApi.dll. For example if a program like LabView calls the AlazarPostAsyncBuffer function in ATSApi.dll and logging is enabled, then an entry similar to the following will be added to the log file: >> 2008/11/05 13:18:41.019 AlazarPostAsyncBuffer (0x00000C90, 0x07ED0020, 2048000) = ApiSuccess where: - "2008/11/05 13:18:41.019" is the date and time when the function was called. - "AlazarPostAsyncBuffer" is the name of the function that was called. - "0x00000C90" is the first parameter passed to the function (the board handle). - "0x07ED0020" is the second parameter passed to the function (the buffer address). - "2048000" is the third parameter passed to the function (the size of the buffer in bytes). - "ApiSuccess" is the return code that was passed back to the caller. Customers will probably never need to enable logging themselves. However, if customers create their own custom application and it doesn't work, and they call AlazarTech for support, then logging might be very useful. By examining this log file, we should be able to point out to the customer exactly what the problem is with their application WITHOUT requiring the application source code. It must be noted that such logging should only be turned on for debugging purposes, as it can slow down the performace of the system. To control whether or not to log all Api calls, we have introduced the ApiFlags program. The ApiFlags program allows a customer to enable or disable logging, and select log file options. ApiFlags is only supplied to customers who, in the opinion of AlazarTech Technical Support personnel, need it. Version 5.6.11 -------------- Version 5.6.11 modifies AlazarAbortAsyncRead to remove an unnecessary 200 ms delay. This delay caused a noticeable pause in applications that call AlazarAbortAsyncRead frequently, such as AlazarDSO while dragging a trigger level. Version 5.6.12 -------------- Version 5.6.12 ships with new FPGA images, A6110240.ali and A6210240.ali, which allow signed data output in addition to the existing unsigned format. Version 5.6.12 adds support to AlazarSetParameter for selecting unsigned or signed sample data formats with SET_DATA_FORMAT Version 5.6.12 adds support to AlazarGetParameter for returning the current sample data format with GET_DATA_FORMAT. Version 5.6.13 -------------- Version 5.6.13 fixes a bug in version 5.6.12, where the driver installation program installed an older version (v5.6.11) of the device driver file (ATS460.sys). Version 5.6.13 installs v5.6.13 of the DLL (ATSApi.dll) and also 5.6.13 of the device driver (ATS460.sys). Version 5.7.4 ------------- Version 5.7.4 modifies AlazarWaitAsyncBufferComplete() to return ApiBufferOverflow rather than ApiFailed when it detects a buffer overflow error. This is particularly important improvement for LabVIEW vi's. Version 5.7.6 ------------- Version 5.7.6 ships with new FPGA images, A6110242.ali and A6210242.ali, which allows Trigger Output on the AUX I/O connector of version 1.3 boards. Version 5.7.6 adds AlazarConfigureAuxIO function to allow applications to setup the AUX I/O connector. Version 5.7.6 fixes a bug in continuous streaming where AlazarWaitAsyncBufferComplete would fail with ApiWaitTimeout unless AlazarSetRecordSize was called before calling AlazarStartCapture.