NI-845x Hardware and Software Manual
Support
Worldwide Technical Support and Product Information
Worldwide Offices
National Instruments Corporate Headquarters
Important Information
Warranty
Copyright
End-User License Agreements and Third-Party Legal Notices
Trademarks
Patents
Export Compliance Information
WARNING REGARDING USE OF NATIONAL INSTRUMENTS PRODUCTS
Compliance
Contents
About This Manual
Conventions
Chapter 1 Introduction
I2C Bus
I2C Terminology
I2C Bus
I2C Arbitration
I2C Transfers
Figure 1-1. I2C Transfers
I2C ACK Polling
I2C Clock Stretching
I2C Extended (10-Bit) Addressing
I2C High Speed Master Code
I2C vs. SMBus
SPI Bus
SPI Terminology
SPI Bus
Clock and Polarity
Table 1-1. SPI Modes
Figure 1-2. SPI Polarity Phase Differences
Error Handling
Chapter 2 Installation
Software Installation
Hardware Installation
System Configuration API
Chapter 3 NI USB-845x Hardware Overview
Overview
NI USB-8451
Overview
Block Diagram
Figure 3-1. NI USB-8451 Block Diagram
Installing Software
Setting Up Hardware
NI USB-8451
Figure 3-2. Signal Label Application Diagram
NI USB-8451 OEM
I/O Connector and Cable
NI USB-8451
Table 3-1. Digital Terminal Assignments
NI USB-8451 OEM
Table 3-2. Pin Assignments
Signal Descriptions
Table 3-3. Signal Descriptions
Front-End I/O Interfaces
Digital I/O (DIO)
Figure 3-3. Example of Connecting External User-Provided Resistor
Figure 3-4. Example of Connecting a Load
SPI Interface
Figure 3-5. SPI Interface to Three Peripherals
I2C Interface
Figure 3-6. I2C Interface to Two Peripherals
I/O Protection
Power-On States
+5 V Power Source
NI USB-8452
Overview
Figure 3-7. NI USB-8452 with Enclosure
Block Diagram
Figure 3-8. NI USB-8452 Block Diagram
Installing Software
Setting Up Hardware
Figure 3-9. IDE-40 Connector Pin Assignments
Signal Descriptions
Table 3-4. Signal Descriptions
Front-End I/O Interfaces
SPI Interface
Figure 3-10. SPI Interface to Three Peripherals
I2C Interface
Figure 3-11. I2C Interface to Two Peripherals
Digital I/O (DIO)
LED Indicators
Figure 3-12. LED Indicators on NI USB-8452
Figure 3-13. LED Indicators on NI USB-8452 OEM
I/O Protection
Power-On States
Power Sources
+5 V Power Source
Vref I/O Reference Voltage
Chapter 4 Using the NI-845x API
Chapter 5 Using the NI-845x I2C API
I2C Basic Programming Model
Figure 5-1. Basic Programming Model for I2C Communication
I2C Configure
I2C Write
I2C Read
I2C Write Read
I2C Scripting Programming Model
Figure 5-2. Example of Scripting Programming Model with Scripting API for I2C Communication
Script: Set I2C Clock Rate
Script: Set I2C ACK Poll Timeout
Script: Pullup Enable
Script: Set I2C High Speed Clock Rate
Script: Set I2C High Speed Enable
Script: Issue Start Condition
Script: Send High Speed Master Code
Script: Send Address + Read
Script: Read
Script: Send Address + Write
Script: Write
Script: Issue Stop Condition
Run Script
Extract Read Data
Chapter 6 NI-845x I2C API for LabVIEW
General Device
NI-845x Close Reference.vi
NI-845x Device Property Node
NI-845x Device Reference
Configuration
NI-845x I2C Configuration Property Node
NI-845x I2C Create Configuration Reference.vi
Basic
NI-845x I2C Read.vi
NI-845x I2C Write.vi
NI-845x I2C Write Read.vi
Scripting
NI-845x I2C Create Script Reference.vi
NI-845x I2C Extract Script Read Data.vi
NI-845x I2C Run Script.vi
NI-845x I2C Script ACK Poll Timeout.vi
NI-845x I2C Script Address+Read.vi
NI-845x I2C Script Address+Write.vi
NI-845x I2C Script Clock Rate.vi
NI-845x I2C Script Delay (Microsecond).vi
NI-845x I2C Script Delay (Millisecond).vi
NI-845x I2C Script DIO Configure Line.vi
NI-845x I2C Script DIO Configure Port.vi
NI-845x I2C Script DIO Read Line.vi
NI-845x I2C Script DIO Read Port.vi
NI-845x I2C Script DIO Write Line.vi
NI-845x I2C Script DIO Write Port.vi
NI-845x I2C Script Pullup Enable.vi
NI-845x I2C Script HS Enable.vi
NI-845x I2C Script HS Master Code.vi
NI-845x I2C Script HS Clock Rate.vi
NI-845x I2C Script Issue Start.vi
NI-845x I2C Script Issue Stop.vi
NI-845x I2C Script Read.vi
NI-845x I2C Script Write.vi
Chapter 7 NI-845x I2C API for C
Section Headings
Purpose
Format
Inputs and Outputs
Description
Data Types
List of Functions
General Device
ni845xClose
ni845xCloseFindDeviceHandle
ni845xDeviceLock
ni845xDeviceUnlock
ni845xFindDevice
ni845xFindDeviceNext
ni845xOpen
ni845xSetIoVoltageLevel
ni845xI2cSetPullupEnable
ni845xStatusToString
ni845xSetTimeout
Configuration
ni845xI2cConfigurationClose
ni845xI2cConfigurationGetAckPollTimeout
ni845xI2cConfigurationGetAddress
ni845xI2cConfigurationGetAddressSize
ni845xI2cConfigurationGetClockRate
ni845xI2cConfigurationGetHSClockRate
ni845xI2cConfigurationGetHSEnable
ni845xI2cConfigurationGetHSMasterCode
ni845xI2cConfigurationGetPort
ni845xI2cConfigurationOpen
ni845xI2cConfigurationSetAckPollTimeout
ni845xI2cConfigurationSetAddress
ni845xI2cConfigurationSetAddressSize
ni845xI2cConfigurationSetClockRate
ni845xI2cConfigurationSetHSClockRate
ni845xI2cConfigurationSetHSEnable
ni845xI2cConfigurationSetHSMasterCode
ni845xI2cConfigurationSetPort
Basic
ni845xI2cRead
ni845xI2cWrite
ni845xI2cWriteRead
Scripting
ni845xI2cScriptAckPollTimeout
ni845xI2cScriptAddressRead
ni845xI2cScriptAddressWrite
ni845xI2cScriptClockRate
ni845xI2cScriptClose
ni845xI2cScriptDelay
ni845xI2cScriptDioConfigureLine
ni845xI2cScriptDioConfigurePort
ni845xI2cScriptDioReadLine
ni845xI2cScriptDioReadPort
ni845xI2cScriptDioWriteLine
ni845xI2cScriptDioWritePort
ni845xI2cScriptPullupEnable
ni845xI2cScriptExtractReadData
ni845xI2cScriptExtractReadDataSize
ni845xI2cScriptHSEnable
ni845xI2cScriptHSMasterCode
ni845xI2cScriptHSClockRate
ni845xI2cScriptIssueStart
ni845xI2cScriptIssueStop
ni845xI2cScriptOpen
ni845xI2cScriptRead
ni845xI2cScriptReset
ni845xI2cScriptRun
ni845xI2cScriptUsDelay
ni845xI2cScriptWrite
Chapter 8 Using the NI-845x I2C Slave API
I2C Slave Programming Model
Figure 8-1. Programming Model for I2C Slave Communication
I2C Slave Configure
I2C Slave Start
I2C Slave Wait For Event
I2C Slave Read
I2C Slave Write
I2C Slave Get Write Information
I2C Slave Stop
Chapter 9 NI-845x I2C Slave API for LabVIEW
General Device
NI-845x Close Reference.vi
NI-845x Device Property Node
NI-845x Device Reference
Configuration
NI-845x I2C Slave Configuration Property Node
NI-845x I2C Slave Create Configuration Reference.vi
NI-845x I2C Slave Get Write Info.vi
NI-845x I2C Slave Read.vi
NI-845x I2C Slave Start.vi
NI-845x I2C Slave Stop.vi
NI-845x I2C Slave Wait for Event.vi
NI-845x I2C Slave Write.vi
Chapter 10 NI-845x I2C Slave API for C
Section Headings
Purpose
Format
Inputs and Outputs
Description
Data Types
List of Functions
General Device
ni845xClose
ni845xCloseFindDeviceHandle
ni845xDeviceLock
ni845xDeviceUnlock
ni845xFindDevice
ni845xFindDeviceNext
ni845xOpen
ni845xSetIoVoltageLevel
ni845xI2cSetPullupEnable
ni845xSetTimeout
ni845xStatusToString
Configuration
ni845xI2cSlaveConfigurationClose
ni845xI2cSlaveConfigurationGetAddress
ni845xI2cSlaveConfigurationGetAutoRemovalTimeout
ni845xI2cSlaveConfigurationGetCommandBufferSize
ni845xI2cSlaveConfigurationGetDataBufferSize
ni845xI2cSlaveConfigurationOpen
ni845xI2cSlaveConfigurationSetAddress
ni845xI2cSlaveConfigurationSetAutoRemovalTimeout
ni845xI2cSlaveConfigurationSetCommandBufferSize
ni845xI2cSlaveConfigurationSetDataBufferSize
Slave
ni845xI2cSlaveGetWriteInfo
ni845xI2cSlaveRead
ni845xI2cSlaveStart
ni845xI2cSlaveStop
ni845xI2cSlaveWaitForEvent
ni845xI2cSlaveWrite
Chapter 11 Using the NI-845x SPI API
NI-845x SPI Basic Programming Model
Figure 11-1. NI-845x SPI API Basic Programming Model
SPI Configure
SPI Write Read
SPI Timing Characteristics
Figure 11-2. SPI Waveform
Table 11-1. NI USB-8451 Basic API SPI Timing Characteristics
Table 11-2. NI USB-8452 Basic API SPI Timing Characteristics
NI-845x SPI Scripting Programming Model
Figure 11-3. Scripting Functions Programming Example
Script: Enable SPI
Script: Configure Phase, Polarity, Clock Rate, Number of Bits
Script: Chip Select Low
Script: Write Read
Script: Chip Select High
Script: Disable SPI
Run Script
Extract Read Data
Chapter 12 NI-845x SPI API for LabVIEW
General Device
NI-845x Close Reference.vi
NI-845x Device Property Node
NI-845x Device Reference
Configuration
NI-845x SPI Configuration Property Node
NI-845x SPI Create Configuration Reference.vi
Basic
NI-845x SPI Write Read.vi
Scripting
NI-845x SPI Create Script Reference.vi
NI-845x SPI Extract Script Read Data.vi
NI-845x SPI Run Script.vi
NI-845x SPI Script Clock Polarity Phase.vi
NI-845x SPI Script Clock Rate.vi
NI-845x SPI Script CS High.vi
NI-845x SPI Script CS Low.vi
NI-845x SPI Script Delay (Microsecond).vi
NI-845x SPI Script Delay (Millisecond).vi
NI-845x SPI Script DIO Configure Line.vi
NI-845x SPI Script DIO Configure Port.vi
NI-845x SPI Script DIO Read Line.vi
NI-845x SPI Script DIO Read Port.vi
NI-845x SPI Script DIO Write Line.vi
NI-845x SPI Script DIO Write Port.vi
NI-845x SPI Script Disable SPI.vi
NI-845x SPI Script Enable SPI.vi
NI-845x SPI Script Num Bits Per Sample.vi
NI-845x SPI Script Write Read.vi
Chapter 13 NI-845x SPI API for C
Section Headings
Purpose
Format
Inputs and Outputs
Description
Data Types
List of Functions
General Device
ni845xClose
ni845xCloseFindDeviceHandle
ni845xDeviceLock
ni845xDeviceUnlock
ni845xFindDevice
ni845xFindDeviceNext
ni845xOpen
ni845xSetIoVoltageLevel
ni845xSetTimeout
ni845xStatusToString
Configuration
ni845xSpiConfigurationClose
ni845xSpiConfigurationGetChipSelect
ni845xSpiConfigurationGetClockPhase
ni845xSpiConfigurationGetClockPolarity
ni845xSpiConfigurationGetClockRate
ni845xSpiConfigurationGetNumBitsPerSample
ni845xSpiConfigurationGetPort
ni845xSpiConfigurationOpen
ni845xSpiConfigurationSetChipSelect
ni845xSpiConfigurationSetClockPhase
ni845xSpiConfigurationSetClockPolarity
ni845xSpiConfigurationSetClockRate
ni845xSpiConfigurationSetNumBitsPerSample
ni845xSpiConfigurationSetPort
Basic
ni845xSpiWriteRead
Scripting
ni845xSpiScriptClockPolarityPhase
ni845xSpiScriptClockRate
ni845xSpiScriptClose
ni845xSpiScriptCSHigh
ni845xSpiScriptCSLow
ni845xSpiScriptDelay
ni845xSpiScriptDioConfigureLine
ni845xSpiScriptDioConfigurePort
ni845xSpiScriptDioReadLine
ni845xSpiScriptDioReadPort
ni845xSpiScriptDioWriteLine
ni845xSpiScriptDioWritePort
ni845xSpiScriptDisableSPI
ni845xSpiScriptEnableSPI
ni845xSpiScriptExtractReadData
ni845xSpiScriptExtractReadDataSize
ni845xSpiScriptNumBitsPerSample
ni845xSpiScriptOpen
ni845xSpiScriptReset
ni845xSpiScriptRun
ni845xSpiScriptUsDelay
ni845xSpiScriptWriteRead
Chapter 14 Using the NI-845x SPI Stream API
NI-845x SPI Stream Programming Model
Figure 14-1. NI-845x SPI API Stream Programming Model
SPI Stream Configure
SPI Stream Start
SPI Stream Read
SPI Stream Stop
Waveform 1
Figure 14-2. Waveform 1 Timing Diagram
Table 14-1. Timing Parameters
Extra SPI Pin Descriptions
CONV
DRDY
Chip Select
Chapter 15 NI-845x SPI Stream API for LabVIEW
General Device
NI-845x Close Reference.vi
NI-845x Device Property Node
NI-845x Device Reference
Configuration
NI-845x SPI Stream Configuration Property Node
NI-845x SPI Stream Create Configuration Reference.vi
Streaming
NI-845x SPI Stream Read.vi
NI-845x SPI Stream Start.vi
NI-845x SPI Stream Stop.vi
Chapter 16 NI-845x SPI Stream API for C
Section Headings
Purpose
Format
Inputs and Outputs
Description
Data Types
List of Functions
General Device
ni845xClose
ni845xCloseFindDeviceHandle
ni845xDeviceLock
ni845xDeviceUnlock
ni845xFindDevice
ni845xFindDeviceNext
ni845xOpen
ni845xSetTimeout
ni845xStatusToString
Configuration
ni845xSpiStreamConfigurationClose
ni845xSpiStreamConfigurationOpen
ni845xSpiStreamConfigurationGetNumBits
ni845xSpiStreamConfigurationGetNumSamples
ni845xSpiStreamConfigurationGetPacketSize
ni845xSpiStreamConfigurationGetClockPhase
ni845xSpiStreamConfigurationWave1GetPinConfig
ni845xSpiStreamConfigurationGetClockPolarity
ni845xSpiStreamConfigurationWave1GetTimingParam
ni845xSpiStreamConfigurationWave1SetMosiData
ni845xSpiStreamConfigurationSetNumBits
ni845xSpiStreamConfigurationSetNumSamples
ni845xSpiStreamConfigurationSetPacketSize
ni845xSpiStreamConfigurationSetClockPhase
ni845xSpiStreamConfigurationWave1SetPinConfig
ni845xSpiStreamConfigurationSetClockPolarity
ni845xSpiStreamConfigurationWave1SetTimingParam
Streaming
ni845xSpiStreamRead
ni845xSpiStreamStart
ni845xSpiStreamStop
Chapter 17 Using the NI-845x DIO API
NI-845x DIO Basic Programming Model
Figure 17-1. Basic Programming Model for DIO Communication
DIO Port Configure
DIO Port Write
DIO Port Read
DIO Line Write
DIO Line Read
Chapter 18 NI-845x DIO API for LabVIEW
General Device
NI-845x Close Reference.vi
NI-845x Device Property Node
NI-845x Device Reference
Basic
NI-845x DIO Read Line.vi
NI-845x DIO Read Port.vi
NI-845x DIO Write Line.vi
NI-845x DIO Write Port.vi
Chapter 19 NI-845x DIO API for C
Section Headings
Purpose
Format
Inputs and Outputs
Description
Data Types
List of Functions
General Device
ni845xClose
ni845xCloseFindDeviceHandle
ni845xDeviceLock
ni845xDeviceUnlock
ni845xFindDevice
ni845xFindDeviceNext
ni845xOpen
ni845xSetIoVoltageLevel
ni845xSetTimeout
ni845xStatusToString
Basic
ni845xDioReadLine
ni845xDioReadPort
ni845xDioSetPortLineDirectionMap
ni845xDioSetDriverType
ni845xDioWriteLine
ni845xDioWritePort
Appendix A NI USB-845x Hardware Specifications
NI USB-8451
Digital I/O (DIO)
SPI Interface
I2C Interface
Bus Interface
Power Requirements
Output Voltage Sources
Physical Characteristics
NI USB-8451
NI USB-8451 OEM
Figure A-1. USB-8451 OEM Dimensions (Top View)
Figure A-2. USB-8451 OEM Dimensions (Front and Rear Views)
Overvoltage Protection
NI USB-8452
Digital I/O(DIO)
SPI Interface
I2C Interface
Bus Interface
Power Requirements
Output Voltage Sources
Physical Characteristics
NI USB-8452
NI USB-8452 OEM
Figure A-3. USB-8452 OEM Dimensions (Top View)
Figure A-4. USB-8452 OEM Dimensions (Front and Rear Views)
Safety
Safety Standards
Hazardous Locations
Electromagnetic Compatibility
NI USB-8451
NI USB-8452
NI USB-8451 OEM, NI USB-8452 OEM
CE Compliance
NI USB-8451
NI USB-8452
NI USB-8451 OEM, NI USB-8452 OEM
Online Product Certification
Environmental
Environmental Management
Waste Electrical and Electronic Equipment (WEEE)
Appendix B Technical Support and Professional Services
Glossary
A-C
I-S
T
Index
Symbols
A-C
D-H
I-L
N
O-S
T-W