Readme.txt ---------- ATS9462 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 ATS9462 Install Disk ? ATS9462 Install Disk provides device drivers and DLLs required to operate the ATS9462 180 MS/s 2-channel, 16-bit PCI Express Digitizer under Windows 2000, Windows XP, Windows XP x64, Vista 32 bit and Vista 64 bit operating systems. ATS9462 Install Disk also includes a free license of AlazarDSO application program that allows you to setup one or more ATS9462 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 Also note that ATS9462 does not work under Windows 98/SE, as this operating system does not support overlapped IO. 3. How to install ATS9462 drivers Run Setup.exe program before installing the hardware. Insert the card in a vacant PCI Express slot. Follow the instructions listed in the ATS9462 User Guide. 4. How to install AlazarDSO Navigate to the appropriate AlazarDSO folder (32 bit or 64 bit) on the ATS9462 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 ATS9462 Install Disk can always be found at http://www.alazartech.com/support/downloads.htm 7. What is new in this version? Version 5.5.0 ------------- This is the first officially released version of software drivers for ATS9462. Version 5.5.1 ------------- Version 5.5.1 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.5.2 ------------- Version 5.5.2 fixes a bug in AlazarAbortAsyncRead (asynchronous DMA) that could have caused the code to go into an infinite loop for NPT AsyncDMA with finite number of triggers. Version 5.5.2 also increases the default number of buffers to 64 when using AlazarWaitNextAsyncBufferComplete. This API is used in LabVIEW (AsyncDMA.vi). Previously, the number of buffers was only 3, which caused FIFO overflows if the vi was minimized or the CPU spent time doing another task. Version 5.5.2 also allows the user to set the number of buffers using the AlazarSetParameter API function. Increasing the number of buffers improves the "Latency Protection" of the acquisition system by increasing the total buffer size in PC memory. Latency Protection = BufferCount * BufferSize * (1/SampleRate). To set a new BufferCount value: long Value = 128; RETURN_CODE AlazarSetParameter( hDevice, 0, 0x10000040UL, Value); Furthermore, version 5.5.2 also allows a program to interrogate the ATSApi dll for the current value of BufferCount using the AlazarGetParameter API function. To get the current value: long Value; RETURN_CODE AlazarGetParameter( hDevice, 0, 0x10000040UL, &Value); Version 5.5.3 ------------- Version 5.5.3 fixes a bug in previous versions that caused LabVIEW vis to hang if user stopped the vi and tried to restart it. Previous drivers used to report a wrong value for on-board memory for ATS9462 when a vi was run after being stopped. This resulted in wrong calculation of DMA buffer length, causing a PC hang-up. Version 5.5.3 reports the same, correct, value no matter how many times a vi is started or stopped. Version 5.5.3 fixes a bug in previous versions that caused LabVIEW vi to hang if user tried to stop an acquisition in Triggered Streaming mode. In previous versions, dll code would end up in an infinite loop when a Triggered Streaming acquisition was stopped. Version 5.5.3 fixes this bug by avoiding the infinite loop. Version 5.5.3 fixes a bug in previous versions that caused LabVIEW vis to not trigger properly in NPT mode if user had previously used Continuous Streaming or Triggered Streaming mode. In effect, once the vi was put in either Continuous Streaming or Triggered Streaming mode (by internally setting the "Continuous Mode" bit to "1"), it could never come out of the mode unless the PC was re-booted, i.e. the "Continuous Mode" bit was never reset to 0 when NPT mode was selected. Version 5.5.3 fixes this bug by properly resetting the "Continuous Mode" bit when NPT mode is selected. Version 5.5.3 fixes a bug in previous versions that caused ASoPC signature to return a hexadecimal value of 0xC for on-board memory bits, i.e. bits 15 down to 12. This could have been interpreted by some application programs as the ATS9462 having 128 Meg per channel of on-board memory. Version 5.5.3 fixes this problem by reporting a value of 0x0 for bits 15 down to 12 of the ASoPC signature Version 5.5.3 also fixes a memory leak in GetNextAsyncBuffer API call used by LabVIEW. 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.0 fixes a bug where API AlazarQueryCapability presented the device serial number in an incorrect format; the device-type digit was missing. The ATS9462 device-type digit is "9", and therefore all serial numbers should start with a "9" and be greater the 900000. Customers owning an ATS9462 should not be concerned as the device EEPROM does hold the correct value. Only the AlazarQueryCapability API was affected. Version 5.6.1 ------------- Version 5.6.1 fixes a bug in the WinXP64, and Windows Vista X64 drivers that stalled the Asynchronous DMA acquisition process from completing the capture, due to a compiler optimization. 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. This version also fixes a bug in API AlazarAbortAsyncRead(), that prevented the NPT AsyncDMA from completing the DMA when an external clock was being used and the clock stopped. Version 5.6.4 ------------- Version 5.6.4 does not include any new functionality for this board. Version 5.6.5 ------------- Version 5.6.5 fixes a bug introduced in version 5.6.4 that caused DMA transfers to fail in LabVIEW vis. Version 5.6.5 fully supports 64 bit scatter-gather lists. Previous versions did not fully support 64-bit addressing, causing some reduction in data throughput on 64-bit computers with greater than 4 GB memory. 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 does not include any new functionality for this board. 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 includes WOW drivers for ATS9462 that allow operation of the card in a 32-bit application, such as LabVIEW, while running on a 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.9 fixes a bug in previous versions that could have caused LabVIEW vis to stop working (ApiWaitTimeout error in AsyncDMA.vi) until the PC was rebooted. This bug was caused by an incomplete clean-up of DMA buffers that had been queued up. Version 5.6.9 cleans up all the DMA buffers properly, thus fixing this bug. 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 drivers to detect buffer overflow after asynchronous transfer . Previous version did not check for this overflow and could have displayed bad data in AlazarDSO. This problem becomes more pronounced on slower computers and longer (> 40 K) buffers. 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 changes Abort AsyncRead for ATS9462 with FPGA version 23 or greater to assert DREQ until DMA completes rather than using AbortCapture. This is very useful if ATS9462 is supposed to be clocked by an external clock, but no external clock is supplied. Previous versions would have locked up the computer, needing a power cycle. 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 fixes a bug in AbortAsyncRead where the function might fail when called in NPT mode. The PC would have to be rebooted to recover from this error. 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.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 fixes a bug in AlazarSetCaptureClock that resulted in ApiPllNotLocked errors in master-slave board systems onfigured to use an external clock input. Version 5.6.12 adds SET_DATA_FORMAT parmameter to allow selecting between signed and unsigned data formats and GET_DATA_FORMAT parameter to get the current signed or unsigned data format. Version 5.6.12 provides a workaround for a bug in firmware version 23 that intermittently caused the AlazarDSO bus benchmark test to return an ApiBufferOverflow error 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 (ATS9462.sys). Version 5.6.13 installs v5.6.13 of the DLL (ATSApi.dll) and also 5.6.13 of the device driver (ATS9462.sys). Version 5.6.14 -------------- Version 5.6.14 fixes a bug that caused incorrect triggerring in NPT mode with both channels enabled and the AUX I/O trigger enable input enabled. Version 5.6.15 -------------- Version 5.6.15 changes SETGET_ASYNC_BUFFCOUNT to allow less than 3 buffers. Version 5.7.0 ------------- Version 5.7.0 release adds support for ATS9462 with on-board memory. Version 5.7.0 fixes a bug that caused the reported memory size from AlazarGetParameter (MEM_SIZE) to return 0 after calling AlazarReadEEprom. 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.6 fixes a bug in ATS9462 async continuous streaming from memory where AlazarWaitAsyncBufferComplete would fail with error ApiWaitTimeout unless AlazarSetTriggerTimeout was called.