USB-I2C/GPIO/SPI Interfaces Adapter DLN-4. Programmer's Reference Manual.


Table of Contents

Revision History
Introduction
1. Communication with device
1.1. Messages
1.2. Notifications
1.3. Device Opening & Identification
1.4. Device Pin Configuration
1.5. Structures and Types
1.5.1. DLN_MSG_HEADER
1.5.2. DLN_PIN_CFG
1.5.3. DLN_VERSION
1.5.4. DLN_NOTIFICATION
1.5.5. Notification Types
1.5.5.1. DLN_NOTIFICATION_TYPE_NO_NOTIFICATION (0x00)
1.5.5.2. DLN_NOTIFICATION_TYPE_CALLBACK 0x01
1.5.5.3. DLN_NOTIFICATION_TYPE_EVENT_OBJECT 0x02
1.5.5.4. DLN_NOTIFICATION_TYPE_WINDOW_MESSAGE 0x03
1.5.5.5. DLN_NOTIFICATION_TYPE_THREAD_MESSAGE 0x04
1.6. Functions
1.6.1. DlnRegisterNotification()
1.6.2. DlnUnregisterNotification()
1.6.3. DlnConnect()
1.6.4. DlnDisconnect()
1.6.5. DlnDisconnectAll()
1.6.6. DlnGetDeviceCount()
1.6.7. DlnOpenDevice()
1.6.8. DlnOpenDeviceBySn()
1.6.9. DlnOpenDeviceById()
1.6.10. DlnCloseHandle()
1.6.11. DlnCloseAllHandles()
1.6.12. DlnGetVersion()
1.6.13. DlnGetDeviceSn()
1.6.14. DlnSetDeviceId()
1.6.15. DlnGetDeviceId()
1.6.16. DlnSendMessage()
1.6.17. DlnGetMessage()
1.6.18. DlnTransaction()
1.6.19. DlnGetPinCfg()
1.7. Commands and Responses
1.7.1. DLN_REGISTER_NOTIFICATION
1.7.2. DLN_UNREGISTER_NOTIFICATION
1.7.3. DLN_CONNECT
1.7.4. DLN_DISCONNECT
1.7.5. DLN_DISCONNECT_ALL
1.7.6. DLN_GET_DEVICE_COUNT
1.7.7. DLN_OPEN_DEVICE
1.7.8. DLN_CLOSE_HANDLE
1.7.9. DLN_CLOSE_ALL_HANDLES
1.7.10. DLN_GET_VER
1.7.11. DLN_GET_DEVICE_SN
1.7.12. DLN_SET_DEVICE_ID
1.7.13. DLN_GET_DEVICE_ID
1.7.14. DLN_GET_PIN_CFG
1.8. Events
1.8.1. DLN_CONNECTION_LOST
1.8.2. DLN_DEVICE_REMOVED
1.8.3. DLN_DEVICE_ADDED
2. GPIO Module
2.1. Digital Outputs
2.2. Digital Inputs
2.3. Digital Input Events
2.3.1. DLN_GPIO_EVENT_NONE
2.3.2. DLN_GPIO_EVENT_CHANGE
2.3.3. DLN_GPIO_EVENT_LEVEL_HIGH
2.3.4. DLN_GPIO_EVENT_LEVEL_LOW
2.3.5. DLN_GPIO_EVENT_ALWAYS
2.4. Debounce Filter
2.5. Open Drain Mode
2.6. Pull-up Resistors
2.7. Structures
2.7.1. DLN_GPIO_PORT_CONFIG
2.7.2. DLN_GPIO_PIN_CONFIG
2.8. Functions
2.8.1. DlnGpioGetPortCount()
2.8.2. DlnGpioGetPinCount()
2.8.3. DlnGpioPinSetCfg()
2.8.4. DlnGpioPinGetCfg()
2.8.5. DlnGpioPortGetCfg()
2.8.6. DlnGpioPortSetCfg()
2.8.7. DlnGpioPortGetVal()
2.8.8. DlnGpioPortSetOutVal()
2.8.9. DlnGpioPortGetOutVal()
2.8.10. DlnGpioSetDebounce()
2.8.11. DlnGpioGetDebounce()
2.8.12. DlnGpioPinGetOutVal()
2.8.13. DlnGpioPinSetOutVal()
2.8.14. DlnGpioPinGetVal()
2.8.15. DlnGpioPinEnable()
2.8.16. DlnGpioPinDisable()
2.8.17. DlnGpioPinIsEnabled()
2.8.18. DlnGpioPinSetDirection()
2.8.19. DlnGpioPinGetDirection()
2.8.20. DlnGpioPinOpendrainEnable()
2.8.21. DlnGpioPinOpendrainDisable()
2.8.22. DlnGpioPinOpendrainIsEnabled()
2.8.23. DlnGpioPinPullupEnable()
2.8.24. DlnGpioPinPullupDisable()
2.8.25. DlnGpioPinPullupIsEnabled
2.8.26. DlnGpioPinDebounceEnable()
2.8.27. DlnGpioPinDebounceDisable()
2.8.28. DlnGpioPinDebounceIsEnabled()
2.8.29. DlnGpioPinSetEventCfg()
2.8.30. DlnGpioPinGetEventCfg()
2.9. Commands and Responses
2.9.1. DLN_GPIO_GET_PORT_COUNT
2.9.2. DLN_GPIO_GET_PIN_COUNT
2.9.3. DLN_GPIO_PIN_SET_CFG
2.9.4. DLN_GPIO_PIN_GET_CFG
2.9.5. DLN_GPIO_PORT_SET_CFG
2.9.6. DLN_GPIO_PORT_GET_CFG
2.9.7. DLN_GPIO_SET_DEBOUNCE
2.9.8. DLN_GPIO_GET_DEBOUNCE
2.9.9. DLN_GPIO_PORT_SET_OUT_VAL
2.9.10. DLN_GPIO_PORT_GET_VAL
2.9.11. DLN_GPIO_PORT_GET_OUT_VAL
2.9.12. DLN_GPIO_PIN_SET_OUT_VAL
2.9.13. DLN_GPIO_PIN_GET_VAL
2.9.14. DLN_GPIO_PIN_GET_OUT_VAL
2.9.15. DLN_GPIO_PIN_ENABLE
2.9.16. DLN_GPIO_PIN_DISABLE
2.9.17. DLN_GPIO_PIN_IS_ENABLED
2.9.18. DLN_GPIO_PIN_SET_DIRECTION
2.9.19. DLN_GPIO_PIN_GET_DIRECTION
2.9.20. DLN_GPIO_PIN_OPENDRAIN_ENABLE
2.9.21. DLN_GPIO_PIN_OPENDRAIN_DISABLE
2.9.22. DLN_GPIO_PIN_OPENDRAIN_IS_ENABLED
2.9.23. DLN_GPIO_PIN_PULLUP_ENABLE
2.9.24. DLN_GPIO_PIN_PULLUP_DISABLE
2.9.25. DLN_GPIO_PIN_PULLUP_IS_ENABLED
2.9.26. DLN_GPIO_PIN_DEBOUNCE_ENABLE
2.9.27. DLN_GPIO_PIN_DEBOUNCE_DISABLE
2.9.28. DLN_GPIO_PIN_DEBOUNCE_IS_ENABLED
2.9.29. DLN_GPIO_PIN_SET_EVENT_CFG
2.9.30. DLN_GPIO_PIN_GET_EVENT_CFG
2.10. Events
2.10.1. DLN_GPIO_CONDITION_MET
3. ADC Module
3.1. Overview
3.2. Structures
3.2.1. DLN_ADC_CONDITION_MET_EV
3.3. Functions
3.3.1. DlnAdcGetPortCount()
3.3.2. DlnAdcGetChannelCount()
3.3.3. DlnAdcEnable()
3.3.4. DlnAdcDisable()
3.3.5. DlnAdcIsEnabled()
3.3.6. DlnAdcChannelEnable()
3.3.7. DlnAdcChannelDisable()
3.3.8. DlnAdcChannelIsEnabled()
3.3.9. DlnAdcSetResolution()
3.3.10. DlnAdcGetResolution()
3.3.11. DlnAdcGetValue()
3.3.12. DlnAdcGetAllValues()
3.3.13. DlnAdcChannelSetCfg()
3.3.14. DlnAdcChannelGetCfg()
3.4. Commands and Responses
3.4.1. DLN_ADC_GET_PORT_COUNT
3.4.2. DLN_ADC_GET_CHANNEL_COUNT
3.4.3. DLN_ADC_ENABLE
3.4.4. DLN_ADC_DISABLE
3.4.5. DLN_ADC_IS_ENABLED
3.4.6. DLN_ADC_CHANNEL_ENABLE
3.4.7. DLN_ADC_CHANNEL_DISABLE
3.4.8. DLN_ADC_CHANNEL_IS_ENABLED
3.4.9. DLN_ADC_SET_RESOLUTION
3.4.10. DLN_ADC_GET_RESOLUTION
3.4.11. DLN_ADC_GET_VALUE
3.4.12. DLN_ADC_GET_ALL_VALUES
3.4.13. DLN_ADC_CHANNEL_SET_CFG
3.4.14. DLN_ADC_CHANNEL_GET_CFG
4. PWM Module
4.1. PWM Module
4.2. Functions
4.2.1. DlnPwmGetPortCount()
4.2.2. DlnPwmGetChannelCount()
4.2.3. DlnPwmEnable()
4.2.4. DlnPwmDisable()
4.2.5. DlnPwmIsEnabled()
4.2.6. DlnPwmChannelEnable()
4.2.7. DlnPwmChannelDisable()
4.2.8. DlnPwmChannelIsEnabled()
4.2.9. DlnPwmSetFrequency()
4.2.10. DlnPwmGetFrequency()
4.2.11. DlnPwmSetDutyCycle()
4.2.12. DlnPwmGetDutyCycle()
4.3. Commands and Responses
4.3.1. DLN_PWM_GET_PORT_COUNT
4.3.2. DLN_PWM_GET_CHANNEL_COUNT
4.3.3. DLN_PWM_ENABLE
4.3.4. DLN_PWM_DISABLE
4.3.5. DLN_PWM_IS_ENABLED
4.3.6. DLN_PWM_CHANNEL_ENABLE
4.3.7. DLN_PWM_CHANNEL_DISABLE
4.3.8. DLN_PWM_CHANNEL_IS_ENABLED
4.3.9. DLN_PWM_SET_FREQUENCY
4.3.10. DLN_PWM_GET_FREQUENCY
4.3.11. DLN_PWM_SET_DUTY_CYCLE
4.3.12. DLN_PWM_GET_DUTY_CYCLE
5. SPI Interface
5.1. Overview
5.2. Modes of Operation
5.3. Transfer Modes
5.4. SPI Master Module
5.4.1. Frames
5.4.2. Delays
5.4.3. SS Line Release Between Frames
5.4.4. SPI Slave Selection
5.4.5. Functions
5.4.5.1. DlnSpiMasterGetPortCount()
5.4.5.2. DlnSpiMasterEnable()
5.4.5.3. DlnSpiMasterDisable()
5.4.5.4. DlnSpiMasterIsEnabled()
5.4.5.5. DlnSpiMasterSetMode()
5.4.5.6. DlnSpiMasterGetMode()
5.4.5.7. DlnSpiMasterSetFrameSize()
5.4.5.8. DlnSpiMasterGetFrameSize()
5.4.5.9. DlnSpiMasterSetFrequency()
5.4.5.10. DlnSpiMasterGetFrequency()
5.4.5.11. DlnSpiMasterReadWrite()
5.4.5.12. DlnSpiMasterReadWrite16()
5.4.5.13. DlnSpiMasterSetDelayBetweenSS()
5.4.5.14. DlnSpiMasterGetDelayBetweenSS()
5.4.5.15. DlnSpiMasterSetDelayAfterSS()
5.4.5.16. DlnSpiMasterGetDelayAfterSS()
5.4.5.17. DlnSpiMasterSetDelayBetweenFrames()
5.4.5.18. DlnSpiMasterGetDelayBetweenFrames()
5.4.5.19. DlnSpiMasterSetSS()
5.4.5.20. DlnSpiMasterGetSS()
5.4.5.21. DlnSpiMasterSSBetweenFramesEnable()
5.4.5.22. DlnSpiMasterSSBetweenFramesDisable()
5.4.5.23. DlnSpiMasterSSBetweenFramesIsEnabled()
5.4.6. Commands and Responses
5.4.6.1. DLN_SPI_MASTER_GET_PORT_COUNT
5.4.6.2. DLN_SPI_MASTER_ENABLE
5.4.6.3. DLN_SPI_MASTER_DISABLE
5.4.6.4. DLN_SPI_MASTER_IS_ENABLED
5.4.6.5. DLN_SPI_MASTER_SET_MODE
5.4.6.6. DLN_SPI_MASTER_GET_MODE
5.4.6.7. DLN_SPI_MASTER_SET_FRAME_SIZE
5.4.6.8. DLN_SPI_MASTER_GET_FRAME_SIZE
5.4.6.9. DLN_SPI_MASTER_SET_FREQUENCY
5.4.6.10. DLN_SPI_MASTER_GET_FREQUENCY
5.4.6.11. DLN_SPI_MASTER_READ_WRITE
5.4.6.12. DLN_SPI_MASTER_SET_DELAY_BETWEEN_SS
5.4.6.13. DLN_SPI_MASTER_GET_DELAY_BETWEEN_SS
5.4.6.14. DLN_SPI_MASTER_SET_DELAY_AFTER_SS
5.4.6.15. DLN_SPI_MASTER_GET_DELAY_AFTER_SS
5.4.6.16. DLN_SPI_MASTER_SET_DELAY_BETWEEN_FRAMES
5.4.6.17. DLN_SPI_MASTER_GET_DELAY_BETWEEN_FRAMES
5.4.6.18. DLN_SPI_MASTER_SET_SS
5.4.6.19. DLN_SPI_MASTER_GET_SS
5.4.6.20. DLN_SPI_MASTER_SS_BETWEEN_FRAMES_ENABLE
5.4.6.21. DLN_SPI_MASTER_SS_BETWEEN_FRAMES_DISABLE
5.4.6.22. DLN_SPI_MASTER_SS_BETWEEN_FRAMES_IS_ENABLED
5.5. SPI Slave Module
5.5.1. SPI Slave Events
5.5.1.1. DLN_SPI_SLAVE_EVENT_NONE
5.5.1.2. DLN_SPI_SLAVE_EVENT_SS_RISE
5.5.1.3. DLN_SPI_SLAVE_SS_BUFFER_FULL
5.5.2. Structure
5.5.2.1. DLN_SPI_SLAVE_TRANSFER_EV
5.5.3. Functions
5.5.3.1. DlnSpiSlaveGetPortCount()
5.5.3.2. DlnSpiSlaveEnable()
5.5.3.3. DlnSpiSlaveDisable()
5.5.3.4. DlnSpiSlaveIsEnabled()
5.5.3.5. DlnSpiSlaveSetMode()
5.5.3.6. DlnSpiSlaveGetMode()
5.5.3.7. DlnSpiSlaveSetFrameSize()
5.5.3.8. DlnSpiSlaveGetFrameSize()
5.5.3.9. DlnSpiSlaveLoadReply()
5.5.3.10. DlnSpiSlaveSetEvent()
5.5.3.11. DlnSpiSlaveGetEvent()
5.5.4. Commands and Responses
5.5.4.1. DLN_SPI_SLAVE_GET_PORT_COUNT
5.5.4.2. DLN_SPI_SLAVE_ENABLE
5.5.4.3. DLN_SPI_SLAVE_DISABLE
5.5.4.4. DLN_SPI_SLAVE_IS_ENABLED
5.5.4.5. DLN_SPI_SLAVE_SET_MODE
5.5.4.6. DLN_SPI_SLAVE_GET_MODE
5.5.4.7. DLN_SPI_SLAVE_SET_FRAME_SIZE
5.5.4.8. DLN_SPI_SLAVE_GET_FRAME_SIZE
5.5.4.9. DLN_SPI_SLAVE_LOAD_REPLY
5.5.4.10. DLN_SPI_SLAVE_SET_EVENT
5.5.4.11. DLN_SPI_SLAVE_GET_EVENT
6. I2C Interface
6.1. Overview
6.2. I2C Master Module
6.2.1. Functions
6.2.1.1. DlnI2cMasterGetPortCount()
6.2.1.2. DlnI2cMasterEnable()
6.2.1.3. DlnI2cMasterDisable()
6.2.1.4. DlnI2cMasterIsEnabled()
6.2.1.5. DlnI2cMasterSetFrequency()
6.2.1.6. DlnI2cMasterGetFrequency()
6.2.1.7. DlnI2cMasterWrite()
6.2.1.8. DlnI2cMasterRead()
6.2.1.9. DlnI2cMasterScanDevices()
6.2.2. Commands and Responses
6.2.2.1. DLN_I2C_MASTER_GET_PORT_COUNT
6.2.2.2. DLN_I2C_MASTER_ENABLE
6.2.2.3. DLN_I2C_MASTER_DISABLE
6.2.2.4. DLN_I2C_MASTER_IS_ENABLED
6.2.2.5. DLN_I2C_MASTER_SET_FREQUENCY
6.2.2.6. DLN_I2C_MASTER_GET_FREQUENCY
6.2.2.7. DLN_I2C_MASTER_WRITE
6.2.2.8. DLN_I2C_MASTER_READ
6.2.2.9. DLN_I2C_MASTER_SCAN_DEVICES
6.2.2.10. DLN_I2C_MASTER_PULLUP_ENABLE
6.2.2.11. DLN_I2C_MASTER_PULLUP_DISABLE
6.2.2.12. DLN_I2C_MASTER_PULLUP_IS_ENABLED
6.3. I2C Slave Module
6.3.1. I2C Slave Events
6.3.1.1. DLN_I2C_SLAVE_EVENT_NONE
6.3.1.2. DLN_I2C_SLAVE_EVENT_READ
6.3.1.3. DLN_I2C_SLAVE_EVENT_WRITE
6.3.1.4. DLN_I2C_SLAVE_EVENT_READ_WRITE
6.3.2. Structures
6.3.2.1. DLN_I2C_SLAVE_READ_EV
6.3.2.2. DLN_I2C_SLAVE_WRITE_EV
6.3.3. Functions
6.3.3.1. DlnI2cSlaveGetPortCount()
6.3.3.2. DlnI2cSlaveEnable()
6.3.3.3. DlnI2cSlaveDisable()
6.3.3.4. DlnI2cSlaveIsEnabled()
6.3.3.5. DlnI2cGetAddressCount()
6.3.3.6. DlnI2cSlaveSetAddress()
6.3.3.7. DlnI2cSlaveGetAddress()
6.3.3.8. DlnI2cSlaveGeneralCallEnable()
6.3.3.9. DlnI2cSlaveGeneralCallDisable()
6.3.3.10. DlnI2cSlaveGeneralCallIsEnabled()
6.3.3.11. DlnI2cSlaveLoadReply()
6.3.3.12. DlnI2cSlaveSetEvent()
6.3.3.13. DlnI2cSlaveGetEvent()
6.3.4. Commands and Responses
6.3.4.1. DLN_I2C_SLAVE_GET_PORT_COUNT
6.3.4.2. DLN_I2C_SLAVE_ENABLE
6.3.4.3. DLN_I2C_SLAVE_DISABLE
6.3.4.4. DLN_I2C_SLAVE_IS_ENABLED
6.3.4.5. DLN_I2C_SLAVE_GET_ADDRESS_COUNT
6.3.4.6. DLN_I2C_SLAVE_SET_ADDRESS
6.3.4.7. DLN_I2C_SLAVE_GET_ADDRESS
6.3.4.8. DLN_I2C_SLAVE_GENERAL_CALL_ENABLE
6.3.4.9. DLN_I2C_SLAVE_GENERAL_CALL_DISABLE
6.3.4.10. DLN_I2C_SLAVE_GENERAL_CALL_IS_ENABLED
6.3.4.11. DLN_I2C_SLAVE_LOAD_REPLY
6.3.4.12. DLN_I2C_SLAVE_SET_EVENT
6.3.4.13. DLN_SPI_SLAVE_GET_EVENT
7. LEDs module
7.1. Available LED states
7.2. Functions
7.2.1. DlnLedGetCount()
7.2.2. DlnLedSetState()
7.2.3. DlnLedGetState()
7.3. Commands and responses
7.3.1. DLN_LED_GET_COUNT
7.3.2. DLN_LED_SET_STATE
7.3.3. DLN_LED_GET_STATE
7.4. Types
8. Bootloader Module
8.1. Device modes
8.2. Structures
8.2.1. DLN_BOOT_FLASH_DESC
8.3. Functions
8.3.1. DlnBootGetMode()
8.3.2. DlnBootEnterBootloader()
8.3.3. DlnBootExitBootloader()
8.3.4. DlnBootGetFlashDesc()
8.3.5. DlnBootWriteFlash()
8.3.6. DlnBootReadFlash()
8.4. Commands and Responses
8.4.1. DLN_BOOT_GET_MODE
8.4.2. DLN_BOOT_ENTER_BOOTLOADER
8.4.3. DLN_BOOT_EXIT_BOOTLOADER
8.4.4. DLN_BOOT_GET_FLASH_DESC
8.4.5. DLN_BOOT_WRITE_FLASH
8.4.6. DLN_BOOT_READ_FLASH
9. Demo Applications
9.1. LEDs GUI
9.2. Get Version
9.3. Device ID GUI
9.4. Device List GUI
9.5. Event Monitor
9.6. SPI Master Demo