Go to the documentation of this file.
10#ifndef MCP2221_CONSTANTS_H
11#define MCP2221_CONSTANTS_H
14#define MCP2221_DEV_DEFAULT_VID 0x04D8
17#define MCP2221_DEV_DEFAULT_PID 0x00DD
20#define MCP2221_PACKET_SIZE 64
23#define MCP2221_DIR_OUTPUT 0
26#define MCP2221_DIR_INPUT 1
29#define MCP2221_I2C_ADDR_7BIT_MAX 127
32#define MCP2221_I2C_TRANSFER_MAX 65535u
35#define MCP2221_I2C_SPEED_MAX_HZ 400000u
41#define MCP2221_CMD_POLL_STATUS_SET_PARAMETERS 0x10
42#define MCP2221_CMD_SET_GPIO_OUTPUT_VALUES 0x50
43#define MCP2221_CMD_GET_GPIO_VALUES 0x51
44#define MCP2221_CMD_SET_SRAM_SETTINGS 0x60
45#define MCP2221_CMD_GET_SRAM_SETTINGS 0x61
46#define MCP2221_CMD_I2C_READ_DATA_GET_I2C_DATA 0x40
47#define MCP2221_CMD_I2C_WRITE_DATA 0x90
48#define MCP2221_CMD_I2C_READ_DATA 0x91
49#define MCP2221_CMD_I2C_WRITE_DATA_REPEATED_START 0x92
50#define MCP2221_CMD_I2C_READ_DATA_REPEATED_START 0x93
51#define MCP2221_CMD_I2C_WRITE_DATA_NO_STOP 0x94
52#define MCP2221_CMD_READ_FLASH_DATA 0xB0
53#define MCP2221_CMD_WRITE_FLASH_DATA 0xB1
54#define MCP2221_CMD_SEND_FLASH_ACCESS_PASSWORD 0xB2
55#define MCP2221_CMD_RESET_CHIP 0x70
61#define MCP2221_RESPONSE_RESULT_OK 0
62#define MCP2221_RESPONSE_ECHO_BYTE 0
63#define MCP2221_RESPONSE_STATUS_BYTE 1
71#define MCP2221_FLASH_DATA_CHIP_SETTINGS 0x00
72#define MCP2221_FLASH_DATA_GP_SETTINGS 0x01
73#define MCP2221_FLASH_DATA_USB_MANUFACTURER 0x02
74#define MCP2221_FLASH_DATA_USB_PRODUCT 0x03
75#define MCP2221_FLASH_DATA_USB_SERIALNUM 0x04
76#define MCP2221_FLASH_DATA_CHIP_SERIALNUM 0x05
80#define MCP2221_USB_CURRENT_MAX_MA 500u
85#define MCP2221_GPIO_GP0 0
86#define MCP2221_GPIO_GP1 1
87#define MCP2221_GPIO_GP2 2
88#define MCP2221_GPIO_GP3 3
96#define MCP2221_GPIO_FUNC_GPIO 0x00u
97#define MCP2221_GPIO_FUNC_DEDICATED 0x01u
98#define MCP2221_GPIO_FUNC_ALT_0 0x02u
99#define MCP2221_GPIO_FUNC_ALT_1 0x03u
100#define MCP2221_GPIO_FUNC_ALT_2 0x04u
101#define MCP2221_GPIO_FUNC_ADC MCP2221_GPIO_FUNC_ALT_0
102#define MCP2221_GPIO_FUNC_DAC MCP2221_GPIO_FUNC_ALT_1
109#define MCP2221_ADC_VRM_OFF (0x00u << 1)
110#define MCP2221_ADC_VRM_1024 (0x01u << 1)
111#define MCP2221_ADC_VRM_2048 (0x02u << 1)
112#define MCP2221_ADC_VRM_4096 (0x03u << 1)
113#define MCP2221_ADC_REF_VRM 1
114#define MCP2221_ADC_REF_VDD 0
121#define MCP2221_DAC_VRM_OFF (0x00u << 1)
122#define MCP2221_DAC_VRM_1024 (0x01u << 1)
123#define MCP2221_DAC_VRM_2048 (0x02u << 1)
124#define MCP2221_DAC_VRM_4096 (0x03u << 1)
125#define MCP2221_DAC_REF_VRM 1
126#define MCP2221_DAC_REF_VDD 0
133#define MCP2221_CLK_DUTY_0 (0x00u << 3)
134#define MCP2221_CLK_DUTY_25 (0x01u << 3)
135#define MCP2221_CLK_DUTY_50 (0x02u << 3)
136#define MCP2221_CLK_DUTY_75 (0x03u << 3)
137#define MCP2221_CLK_DIV_1 0x01u
138#define MCP2221_CLK_DIV_2 0x02u
139#define MCP2221_CLK_DIV_3 0x03u
140#define MCP2221_CLK_DIV_4 0x04u
141#define MCP2221_CLK_DIV_5 0x05u
142#define MCP2221_CLK_DIV_6 0x06u
143#define MCP2221_CLK_DIV_7 0x07u
144#define MCP2221_CLK_FREQ_375kHz MCP2221_CLK_DIV_7
145#define MCP2221_CLK_FREQ_750kHz MCP2221_CLK_DIV_6
146#define MCP2221_CLK_FREQ_1_5MHz MCP2221_CLK_DIV_5
147#define MCP2221_CLK_FREQ_3MHz MCP2221_CLK_DIV_4
148#define MCP2221_CLK_FREQ_6MHz MCP2221_CLK_DIV_3
149#define MCP2221_CLK_FREQ_12MHz MCP2221_CLK_DIV_2
150#define MCP2221_CLK_FREQ_24MHz MCP2221_CLK_DIV_1
154#define MCP2221_MIN_VDD_VOLTS 3.0
157#define MCP2221_MAX_VDD_VOLTS 5.5