Readme.txt ---------- ATS660 Install Disk Install Disk for Windows 2000, Windows XP, Windows XP x64, Vista 32 bit and Vista 64 bit Version 5.7.12 Release date: May 20, 2010 1. What is ATS660 Install Disk ? ATS660 Install Disk provides device drivers and DLLs required to operate the ATS660 125 MS/s 2-channel, 16-bit PCI Digitizer under Windows 2000, Windows XP, Windows XP x64, Windows Vista (32 bit) and Windows Vista (64 bit). ATS660 Install Disk also includes a free license of AlazarDSO application program that allows you to setup one or more ATS660 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. If you run the 32 bit AlazarDSO on a PC running 64-bit Windows, it will use the WOW DLL and 64 bit driver. If you run the 64 bit AlazarDSO on a PC running 64-bit Windows, it will use the 64 bit DLL and 64 bit driver. Windows does not allow 64 bit AlazarDSO to run on a 32 bit operating system. 2. Requirements One of the following operating systems: Windows 2000 Windows XP Windows XP x64 Windows Vista (32 bit) Windows Vista (64 bit) 3. How to install ATS660 drivers Run Setup.exe program before installing the hardware. Insert the card in a vacant PCI Express slot. Follow the instructions listed in the ATS660 User Guide. 4. How to install AlazarDSO Navigate to the appropriate AlazarDSO folder (32 bit or 64 bit) on the ATS660 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 ATS660 Install Disk can always be found at http://www.alazartech.com/support/downloads.htm 7. What is new in this version? Version 4.9.4 --------------- Version 4.9.4 is the first released version of ATS660 driver. Version 4.9.5 --------------- Version 4.9.5 fixes a bug in Version 4.9.4 that caused intermittant failure of AlazarRead. This bug exhibited itself by seeming to swap data between channels A and B when displaying in API Panel. Version 4.9.5 also fixes a bug in V4.9.4 that loaded the wrong FPGA for ATS660-128M, causing various errors. Version 4.9.5.1 ---------------- Version 4.9.5.1 fixes a bug in Version 4.9.5 for ATS660 Master/Slave systems, which did not allow proper synchronization of all channels. Version 4.9.5.1 corrects that problem with a new FPGA image. Version 4.9.7 ---------------- Version 4.9.7 supports "10 MHz PLL Reference" clock for ATS660. User is able to multiply the externally supplied 10 MHz reference frequency to produce a 110 MHz to 130 MHz sampling clock. Version 4.9.7 fully supports AC-coupled external clocking (non-PLL). In previous versions AC-coupled clocks were not properly biased. Starting with Version 4.9.7, an on-board DAC is used to provide a 1.5V self-bias for an on-board comparator, thereby allowing external clock signals up to +/- 1V to be used Version 4.9.7 allows AlazarGetStatus API call to return whether or not the 10 MHz PLL is locked or not. Version 4.9.7 fixes a bug in version 4.8.5 to 4.9.6 that caused Slave boards to be stuck at the alternate oscillator frequency (100 MS/s on ATS660) if Master was clocked at a rate lower than the alternate oscillator frequency (e.g. 50 MS/s on ATS660). Now, all boards are clocked at the same frequency. Version 4.9.7 allows a program to read the serial number and last calibration date of the card(s) in the system using AlazarQueryCapability API call. Version 4.9.8 ---------------- Version 4.9.8 fixes a bug found in all previous versions that caused needless relay switching. This bug typically exhibited itself when either the Input Range was changed or a new capture was started. 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 in No-Pre-Trigger AutoDMA mode. Version 5.2.0 ------------- Version 5.2.0 is the first fully-released version of 64 bit drivers for ATS660. 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 ATS660 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 ATS660 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 ATS660 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.5.1 ------------- Version 5.5.1 adds two new API functions: - AlazarStopAutoDMA - AlazarFlushAutoDMA These functions can be called if the user is capturing data using AutoDMA (synchronous DMA) and triggers stop coming. AlazarStopAutoDMA stops any further DMAs from being started. This function should be called before AlazarFlushAutoDMA. AlazarFlushAutoDMA generates the required number of software triggers to complete the current DMA, thereby guaranteeing an orderly end of the acquisition session despite the lack of user-supplied triggers. Version 5.5.1 fixes a bug in V5.5.0 that did not allow asynchronous DMA on ATS660. Starting with V5.5.1, ATS660 has full asynchronous DMA capability. Version 5.5.1 also fixes a bug in AlazarAbortAsyncRead (asynchronous DMA) that could have caused false buffer overflow error. This overflow error would have appeared if the user had set infinite number of records, stopped the acquisition manually and then tried to start another acquisition. Version 5.5.1 also fixes a bug in V5.5.0 which did not allow the calibration EEPROM to be updated. 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. 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 A7110238.ALI FPGA image fixes 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 AlazarRead that might lock PLL 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. ATS660 driver version 5.6.7 is accompanied by a new FPGA image, A7110140.ali. A7110140.ali fixes a bug in previous FPGA versions, which may have caused the two inputs channels to appear to be offset by one sample. A7110140.ali also fixes a bug in previous FPGA versions that may have caused AutoDMA acquisitions for Traditional DMA (non-NPT) to stall if RecordsPerBuffer was set to 1 and RecordCount was set to 1. Finally, A7110140.ali fixes a bug in previous versions that could have caused Slow External Clock to not work as it should. 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.9 reports an error if user selects 180 MS/s or 160 MS/s sample rate and the on-board PLL does not lock. 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.11 fixes a bug in AlazarSetCapture where the FPGA PLL was not verified to be locked. AlazarSetCapture now returns ApiPllNotLocked if the PLL is not locked. Version 5.6.12 -------------- Version 5.6.12 ships with a new FPGA image, A7110142.ali, which allows signed data output in addition to the existing unsigned format. This FPGA also implements special timing circuitry to handle active SyncBoard 460 x4 for Master/Slave systems of up to 4 boards. 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.12 also fixes a bug in AlazarSetCaptureClock that caused it to return ApiPllNotLocked in master-slave systems using an external clock source. 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 (ATS660.sys). Version 5.6.13 installs v5.6.13 of the DLL (ATSApi.dll) and also 5.6.13 of the device driver (ATS660.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 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. Version 5.7.10 - 2010-03-31 --------------------------- Version 5.7.10 adds AlazarErrorToText to convert return code to strings. Version 5.7.10 fixes a bug where AlazarStartCapture may return ApiNotSupportedInDualChannelMode with continuous AutoDMA transfers. Version 5.7.10 adds AlazarSetExternalClockLevel function to allow setting the external clock comparator level. This function replaces using AlazarSetParameterUL with the SEND_DAC parameter. Version 5.7.12 - 2010-05-20 --------------------------- There are no new capabilities for the ATS660 in driver version 5.7.12