From d3dc45ae2d5eed384f07f7675e4c7928aa3ac3d6 Mon Sep 17 00:00:00 2001 From: qiuxin Date: Thu, 29 May 2025 19:47:42 +0800 Subject: [PATCH] =?UTF-8?q?dac8568=E9=A9=B1=E5=8A=A8OK?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Core/Inc/main.h | 4 +- Core/Src/freertos.c | 59 +++---- Public/~WRL2044.tmp | Bin 138379 -> 0 bytes User/driver/DAC8568.c | 361 ++++++++++++++++++++++++++++++++--------- User/driver/DAC8568.h | 225 +++++++++++++++++++------ User/system/user_spi.c | 4 +- 6 files changed, 492 insertions(+), 161 deletions(-) delete mode 100644 Public/~WRL2044.tmp diff --git a/Core/Inc/main.h b/Core/Inc/main.h index ecb59b3..e6db426 100644 --- a/Core/Inc/main.h +++ b/Core/Inc/main.h @@ -198,8 +198,8 @@ extern "C" #define DAC1_MISO_Pin GPIO_PIN_4 #define DAC1_MISO_GPIO_Port GPIOB //DAC8568引脚定义 -#define DAC8568_CS_Pin GPIO_PIN_15 -#define DAC8568_CS_GPIO_Port GPIOD +#define DAC8568_SYNC_Pin GPIO_PIN_15 +#define DAC8568_SYNC_GPIO_Port GPIOD #define DAC8568_SCLK_Pin GPIO_PIN_10 #define DAC8568_SCLK_GPIO_Port GPIOC #define DAC8568_DIN_Pin GPIO_PIN_12 diff --git a/Core/Src/freertos.c b/Core/Src/freertos.c index 21fd991..e5d4a1a 100644 --- a/Core/Src/freertos.c +++ b/Core/Src/freertos.c @@ -802,34 +802,37 @@ void start_dac161s997_test_task(void const *argument) /* USER CODE END Header_start_dac8568_test_task */ void start_dac8568_test_task(void const *argument) { - /* USER CODE BEGIN start_dac8568_test_task */ - static float test_voltage = 0.0f; // 测试电压值 - static uint8_t channel = 0; // 当前测试通道 - static TickType_t last_update_time = 0; - TickType_t current_time; - - // 等待系统稳定 - osDelay(100); - // // 初始化DAC8568 - DAC8568_Init(); - osDelay(100); - // SPI3裸发测试 - uint8_t test_tx[4] = {0xAA, 0x55, 0xFF, 0x00}; - uint8_t test_rx[4] = {0}; - - for (;;) { - // 拉低CS - HAL_GPIO_WritePin(DAC8568_CS_GPIO_Port, DAC8568_CS_Pin, GPIO_PIN_RESET); - // 发送数据 - HAL_SPI_TransmitReceive(&hspi3, test_tx, test_rx, 4, 1000); - // 拉高CS - HAL_GPIO_WritePin(DAC8568_CS_GPIO_Port, DAC8568_CS_Pin, GPIO_PIN_SET); + // 初始化DAC8568 + DAC8568_Init(&hspi3); // 使用SPI3 + HAL_Delay(10); + + // 启用静态内部参考(2.5V) + DAC8568_EnableStaticInternalRef(); - osDelay(10); + while(1) + { + uint16_t i = 65535; + //DAC8568_WriteAndUpdate(CHANNEL_A, (uint16_t)i); + //DAC8568_WriteAndUpdate(CHANNEL_B, (uint16_t)i); + //DAC8568_WriteAndUpdate(CHANNEL_C, (uint16_t)i); + //DAC8568_WriteAndUpdate(CHANNEL_D, (uint16_t)i); + DAC8568_WriteAndUpdate(CHANNEL_E, (uint16_t)i); + //DAC8568_WriteAndUpdate(CHANNEL_F, (uint16_t)i); + DAC8568_WriteAndUpdate(CHANNEL_G, (uint16_t)i); + //DAC8568_WriteAndUpdate(CHANNEL_H, (uint16_t)i); + + + // for (int i = 65535; i >= 0; i = i - 4096) // 从65535到0,步长4096 + // { + + // // 写入并更新所有通道的值 + // DAC8568_WriteAndUpdate(BROADCAST, (uint16_t)i); + + // // 计算电压值 (假设Vref=2.5V,16位分辨率,2倍增益) + // float voltage = 2.5f * 2.0f * i / 65536.0f; + + // 延时2秒 + osDelay(2000); + //} } - - - /* Infinite loop */ - - /* USER CODE END start_dac8568_test_task */ } \ No newline at end of file diff --git a/Public/~WRL2044.tmp b/Public/~WRL2044.tmp deleted file mode 100644 index cf876b8eea6a6823aa4798acd3b24c5fc27bc5b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138379 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 Pz#C7Rz*wWuY#G)r$yG_D diff --git a/User/driver/DAC8568.c b/User/driver/DAC8568.c index f0cee06..31e904d 100644 --- a/User/driver/DAC8568.c +++ b/User/driver/DAC8568.c @@ -1,96 +1,303 @@ -#include "DAC8568.h" -#include "stm32f4xx_hal.h" // 添加HAL库头文件 +/* + * DAC8568/DAC8168/DAC8568 驱动程序 + * 作者: 雪豹 + */ +#include "dac8568.h" #include "main.h" -#include "user_spi.h" -#include // 添加标准整型定义 -#define DAC_MAX_VALUE 65535 +static SPI_HandleTypeDef *hspi_dac; // SPI句柄指针,用于SPI通信 /** - * @brief DAC8568通用写函数 - * @param cmd 命令类型:0-初始化内部参考电压,1-写入并更新DAC值 - * @param channel 通道号(0-7),仅在cmd=1时有效 - * @param value DAC值(0-65535)或命令值,根据cmd决定 - * @return void + * @brief 初始化DAC8568驱动。 + * @param hspi SPI外设句柄指针。 + * @note 此函数会保存SPI句柄,并将CS和LDAC引脚初始化为高电平。 + * 默认执行软件复位,可选启用内部参考电压。 */ -void DAC8568_Write(uint8_t cmd, uint8_t channel, uint32_t value) +void DAC8568_Init(SPI_HandleTypeDef *hspi) { - uint8_t tx_data[4]; - uint8_t rx_data[4] = {0}; // Initialize receive buffer - uint32_t send_data; - - // 根据命令类型准备发送数据 - if(cmd == 0) // 初始化内部参考电压 - { - send_data = DAC8568_EN_INTER_REF_STATIC; - } - else // 写入并更新DAC值 - { - // 输入参数合法性检查 - if(channel > 7) - { - channel = 7; - } - if(value > DAC_MAX_VALUE) - { - value = DAC_MAX_VALUE; - } - - send_data = DAC8568_WRITE_UPDATE_SEL_DAC; - send_data |= (channel << 20); - send_data |= (value << 4); - } - - // 准备发送数据 - tx_data[0] = (uint8_t)(send_data >> 24); - tx_data[1] = (uint8_t)(send_data >> 16); - tx_data[2] = (uint8_t)(send_data >> 8); - tx_data[3] = (uint8_t)(send_data & 0xFF); - - // 开始SPI传输 - DAC8568_CS_L; // 拉低CS,使能SPI接口 - extern SPI_HandleTypeDef hspi3; // 声明外部SPI句柄 - spi_transmit_receive(&hspi3, tx_data, rx_data, 4); // 使用hspi3发送4字节数据 - DAC8568_CS_H; // 拉高CS,禁止SPI接口 + hspi_dac = hspi; // 保存SPI句柄 + + // 初始化CS和LDAC引脚为高电平(空闲状态) + HAL_GPIO_WritePin(DAC8568_CS_GPIO_Port, DAC8568_CS_Pin, GPIO_PIN_SET); + HAL_GPIO_WritePin(DAC8568_LDAC_GPIO_Port, DAC8568_LDAC_Pin, GPIO_PIN_SET); + + // 执行软件复位 + DAC8568_SoftwareReset(); } /** - * @brief 初始化DAC8568芯片 - * @return void + * @brief 向DAC指定通道的输入寄存器写入数据。 + * @param channel 目标DAC通道 (CHANNEL_A 到 CHANNEL_H, 或 BROADCAST)。 + * @param data 要写入的16位数据。 */ -void DAC8568_Init(void) +void DAC8568_Write(uint8_t channel, uint16_t data) { - //初始化GPIO和SPI - dac8568_spi_init(); - // 将LDAC置低,DAC8568处于同步模式 - DAC8568_LD_L; - // 初始化内部参考电压 - DAC8568_Write(0, 0, 0); - + uint8_t txData[4]; + + // 构造32位帧 + txData[0] = 0b00000000 | (CMD_WRITE_INPUT_REG & 0b00001111); + txData[1] = ((channel & 0b00001111) << 4) | ((data >> 12) & 0b00001111); + txData[2] = (data >> 4) & 0xFF; + txData[3] = ((data & 0b00001111) << 4) | 0b00000000; + + // 执行SPI传输 + HAL_GPIO_WritePin(DAC8568_CS_GPIO_Port, DAC8568_CS_Pin, GPIO_PIN_RESET); + HAL_SPI_Transmit(hspi_dac, txData, 4, HAL_MAX_DELAY); + HAL_GPIO_WritePin(DAC8568_CS_GPIO_Port, DAC8568_CS_Pin, GPIO_PIN_SET); } /** - * @brief 设置DAC8568指定通道的电压值 - * @param mCh 通道号(0-7) - * @param mVol 电压值(0-2.5V) - * @return void + * @brief 更新DAC指定通道的输出。 + * @param channel 目标DAC通道 (CHANNEL_A 到 CHANNEL_H, 或 BROADCAST)。 */ -void dac8568_set_voltage(unsigned char mCh, float mVol) +void DAC8568_Update(uint8_t channel) { - float mDatafloat; - uint16_t mDtashort; - - // 将电压值转换为DAC值 - mDatafloat = mVol * (65536/(5*1.91)); - mDtashort = (uint16_t)mDatafloat; - mDtashort &= 0xffff; - - // 限制DAC值范围 - if(mDtashort > 65535) - mDtashort = 65535; - - // 写入并更新DAC值 - DAC8568_Write(1, mCh, mDtashort); + uint8_t txData[4]; + + txData[0] = 0b00000000 | (CMD_UPDATE_DAC_REG & 0b00001111); + txData[1] = ((channel & 0b00001111) << 4) | 0b00000000; + txData[2] = 0; + txData[3] = 0; + + HAL_GPIO_WritePin(DAC8568_CS_GPIO_Port, DAC8568_CS_Pin, GPIO_PIN_RESET); + HAL_SPI_Transmit(hspi_dac, txData, 4, HAL_MAX_DELAY); + HAL_GPIO_WritePin(DAC8568_CS_GPIO_Port, DAC8568_CS_Pin, GPIO_PIN_SET); } +/** + * @brief 向DAC指定通道的输入寄存器写入数据并立即更新其模拟输出。 + * @param channel 目标DAC通道 (CHANNEL_A 到 CHANNEL_H)。 + * @param data 要写入的16位数据。 + */ +void DAC8568_WriteAndUpdate(uint8_t channel, uint16_t data) +{ + uint8_t txData[4]; + txData[0] = 0b00000000 | (CMD_WRITE_INPUT_UPDATE_ONE & 0b00001111); + txData[1] = ((channel & 0b00001111) << 4) | ((data >> 12) & 0b00001111); + txData[2] = (data >> 4) & 0xFF; + txData[3] = ((data & 0b00001111) << 4) | 0b00000000; + + HAL_GPIO_WritePin(DAC8568_CS_GPIO_Port, DAC8568_CS_Pin, GPIO_PIN_RESET); + HAL_SPI_Transmit(hspi_dac, txData, 4, HAL_MAX_DELAY); + HAL_GPIO_WritePin(DAC8568_CS_GPIO_Port, DAC8568_CS_Pin, GPIO_PIN_SET); +} + +/** + * @brief 将数据数组中的值分别写入所有8个DAC通道的输入寄存器。 + * @param data_array 包含8个uint16_t类型数据的数组指针,分别对应通道A到H。 + * @note 此函数通过循环调用 DAC8568_Write 实现。 + */ +void DAC8568_WriteAllChannels(uint16_t *data_array) // 参数为包含8个通道数据的数组指针 +{ + for (uint8_t ch = 0; ch < 8; ch++) // 遍历0到7,代表通道A到H + { + DAC8568_Write(ch, data_array[ch]); // 为当前通道 ch 写入数组中对应的数据 + } +} + +/** + * @brief 更新所有DAC通道的模拟输出。 + * @note 此函数使用CMD_UPDATE_DAC_REG命令和BROADCAST地址。 + */ +void DAC8568_UpdateAllChannels(void) +{ + uint8_t txData[4]; + + txData[0] = 0b00000000 | (CMD_UPDATE_DAC_REG & 0b00001111); + txData[1] = (BROADCAST << 4) | 0b00000000; // 使用 BROADCAST 地址 + txData[2] = 0; + txData[3] = 0; + + HAL_GPIO_WritePin(DAC8568_CS_GPIO_Port, DAC8568_CS_Pin, GPIO_PIN_RESET); + HAL_SPI_Transmit(hspi_dac, txData, 4, HAL_MAX_DELAY); + HAL_GPIO_WritePin(DAC8568_CS_GPIO_Port, DAC8568_CS_Pin, GPIO_PIN_SET); +} + +/** + * @brief 设置指定DAC通道或所有通道的电源模式。 + * @param channel 目标通道 (CHANNEL_A 到 CHANNEL_H) 或 BROADCAST。 + * @param mode 电源模式 (POWER_UP, POWER_DOWN_1K, POWER_DOWN_100K, POWER_DOWN_HIZ)。 + * @note 参考数据手册第47页表13。 + */ +void DAC8568_SetPowerMode(uint8_t channel, uint8_t mode) +{ + uint8_t txData[4]; // 定义SPI传输的4字节数据缓冲区 + + // 32位帧格式: + // [31:28] 前缀位(0000) + // [27:24] 命令位(CMD_POWER_DOWN = 0100) - 电源控制命令 + // [23:20] 地址位(channel) - 选择目标通道或广播 + // [19:10] 均为0 (不关心) + // [9:8] PD1和PD0电源模式位 (位于整个SPI帧的DB9, DB8) + // [7:0] 均为0 (不关心, 包括特征位) + + // 第一个字节 (DB31-DB24): 前缀位 + 命令位 + txData[0] = 0b00000000 | (CMD_POWER_DOWN & 0b00001111); + + // 第二个字节 (DB23-DB16): 地址位 + 数据高4位(此命令中为0) + txData[1] = ((channel & 0b00001111) << 4) | 0b00000000; + + // 第三个字节 (DB15-DB8): 包含电源模式位 PD1(DB9) 和 PD0(DB8) + // (mode & 0b00000011) 提取 mode 参数中的 PD1(bit1) 和 PD0(bit0)。 + // 这些位对应SPI帧的DB9和DB8,因此直接放入 txData[2] 的最低两位。 + // txData[2] 的高6位 (DB15-DB10) 为 不关心 (设为0)。 + txData[2] = (mode & 0b00000011); // PD1位于bit1, PD0位于bit0 of txData[2] (对应帧的D9, D8) + + // 第四个字节 (DB7-DB0): 均为0 (不关心) + txData[3] = 0; + + // 执行SPI传输 + HAL_GPIO_WritePin(DAC8568_CS_GPIO_Port, DAC8568_CS_Pin, GPIO_PIN_RESET); + HAL_SPI_Transmit(hspi_dac, txData, 4, HAL_MAX_DELAY); + HAL_GPIO_WritePin(DAC8568_CS_GPIO_Port, DAC8568_CS_Pin, GPIO_PIN_SET); +} + +/** + * @brief 启用静态内部参考电压(2.5V)。 + * @note 参考数据手册第44页表7。命令 CMD_INTERNAL_REF, 地址 0b0000, 特征位 REF_ENABLE。内部参考电压为2.5V,但是在C/D等级中内部会有一个2倍增益。见数据手册31页8.2.1 + */ +void DAC8568_EnableStaticInternalRef(void) +{ + DAC8568_SendRawCommand(CMD_INTERNAL_REF, 0b0000, 0x0000, REF_ENABLE); +} + +/** + * @brief 禁用静态内部参考电压(2.5V)。 + * @note 参考数据手册第44页表7。命令 CMD_INTERNAL_REF, 地址 0b0000, 特征位 REF_DISABLE。内部参考电压为2.5V,但是在C/D等级中内部会有一个2倍增益。见数据手册31页8.2.1 + */ +void DAC8568_DisableStaticInternalRef(void) +{ + DAC8568_SendRawCommand(CMD_INTERNAL_REF, 0b0000, 0x0000, REF_DISABLE); +} + +/** + * @brief 启用内部参考的灵活模式 (Flex Mode)。 + * @note 参考数据手册第45页表9。命令 CMD_INTERNAL_REF, 地址 0b0001, 数据位 D13=1, 特征位 0b0000。 + */ +void DAC8568_EnableFlexMode(void) +{ + // 数据位 D13 (对应整个16位数据字段的 bit 13) 设置为1 + DAC8568_SendRawCommand(CMD_INTERNAL_REF, 0b0001, (1 << 13), 0b0000); +} + +/** + * @brief 禁用内部参考的灵活模式 (Flex Mode)。 + * @note 参考数据手册第45页表9。命令 CMD_INTERNAL_REF, 地址 0b0001, 数据位 D13=0, 特征位 0b0000。 + * 禁用灵活模式后,内部参考的行为由静态模式控制位决定。 + */ +void DAC8568_DisableFlexMode(void) +{ + // 数据位 D13 设置为0 + DAC8568_SendRawCommand(CMD_INTERNAL_REF, 0b0001, 0x0000, 0b0000); +} + +/** + * @brief 在灵活模式下,设置内部参考是否始终开启。 + * @param enable 1 表示始终开启, 0 表示根据需要自动开启/关闭 (默认行为)。 + * @note 参考数据手册第45页表10。命令 CMD_INTERNAL_REF, 地址 0b0001, 数据位 D15 控制, 特征位 0b0000。 + */ +void DAC8568_SetFlexModeRefAlwaysOn(uint8_t enable) +{ + uint16_t data_bits = enable ? (1 << 15) : 0; // D15 控制 + DAC8568_SendRawCommand(CMD_INTERNAL_REF, 0b0001, data_bits, 0b0000); +} + +/** + * @brief 在灵活模式下,设置内部参考是否始终关闭。 + * @param enable 1 表示始终关闭, 0 表示根据需要自动开启/关闭。 + * @note 参考数据手册第45页表11。命令 CMD_INTERNAL_REF, 地址 0b0001, 数据位 D14 控制, 特征位 0b0000。 + */ +void DAC8568_SetFlexModeRefAlwaysOff(uint8_t enable) +{ + uint16_t data_bits = enable ? (1 << 14) : 0; // D14 控制 + DAC8568_SendRawCommand(CMD_INTERNAL_REF, 0b0001, data_bits, 0b0000); +} + +/** + * @brief 设置DAC清零时的行为。 + * @param mode 清除代码模式 (CLEAR_CODE_ZERO_SCALE, CLEAR_CODE_MID_SCALE, CLEAR_CODE_FULL_SCALE, CLEAR_CODE_NO_OPERATION)。 + * @note 参考数据手册第39页表5。 + */ +void DAC8568_SetClearCode(uint8_t mode) +{ + uint8_t txData[4]; // 定义SPI传输的4字节数据缓冲区 + + // 32位帧格式: + // [31:28] 前缀位(0000) + // [27:24] 命令位(CMD_CLEAR_CODE_REG = 0101) - 清除代码寄存器命令 + // [23:4] 均为0 (不关心) + // [3:2] 特征位 F1, F0 (位于整个SPI帧的DB3, DB2) 控制清除模式 + // [1:0] 均为0 (不关心) + + // 第一个字节 (DB31-DB24): 前缀位 + 命令位 + txData[0] = 0b00000000 | (CMD_CLEAR_CODE_REG & 0b00001111); + + // 第二个字节 (DB23-DB16): 地址位(不关心, 设为0) + 数据高位(不关心, 设为0) + txData[1] = 0b00000000; + + // 第三个字节 (DB15-DB8): 数据中间位(不关心, 设为0) + txData[2] = 0; + + // 第四个字节 (DB7-DB0): 包含特征位 F1, F0 + // (mode & 0b00000011) 提取 mode 参数的最低两位作为 F1(bit1)F0(bit0)。 + // 左移2位,将它们放置到SPI帧的DB3和DB2位置。 + txData[3] = (mode & 0b00000011) << 2; // F1(DB3), F0(DB2) 控制清除模式 + + // 执行SPI传输 + HAL_GPIO_WritePin(DAC8568_CS_GPIO_Port, DAC8568_CS_Pin, GPIO_PIN_RESET); + HAL_SPI_Transmit(hspi_dac, txData, 4, HAL_MAX_DELAY); + HAL_GPIO_WritePin(DAC8568_CS_GPIO_Port, DAC8568_CS_Pin, GPIO_PIN_SET); +} + +/** + * @brief 执行软件复位。 + */ +void DAC8568_SoftwareReset(void) +{ + uint8_t txData[4]; + + txData[0] = 0b00000000 | (CMD_SOFTWARE_RESET & 0b00001111); + txData[1] = 0; + txData[2] = 0; + txData[3] = 0; + + HAL_GPIO_WritePin(DAC8568_CS_GPIO_Port, DAC8568_CS_Pin, GPIO_PIN_RESET); + HAL_SPI_Transmit(hspi_dac, txData, 4, HAL_MAX_DELAY); + HAL_GPIO_WritePin(DAC8568_CS_GPIO_Port, DAC8568_CS_Pin, GPIO_PIN_SET); + HAL_Delay(1); +} + +/** + * @brief 直接发送一个完整的32位命令帧到DAC8568。 + */ +void DAC8568_SendRawCommand(uint8_t cmd_bits, uint8_t addr_bits, uint16_t data_bits, uint8_t feature_bits) +{ + uint8_t txData[4]; + + txData[0] = 0b00000000 | (cmd_bits & 0b00001111); + txData[1] = ((addr_bits & 0b00001111) << 4) | ((data_bits >> 12) & 0b00001111); + txData[2] = (data_bits >> 4) & 0xFF; + txData[3] = ((data_bits & 0b00001111) << 4) | (feature_bits & 0b00001111); + + HAL_GPIO_WritePin(DAC8568_CS_GPIO_Port, DAC8568_CS_Pin, GPIO_PIN_RESET); + HAL_SPI_Transmit(hspi_dac, txData, 4, HAL_MAX_DELAY); + HAL_GPIO_WritePin(DAC8568_CS_GPIO_Port, DAC8568_CS_Pin, GPIO_PIN_SET); +} + +/** + * @brief 直接发送自定义的4字节原始数据到DAC8568。 + * @param raw_data 指向包含4字节数据的数组。 + * @note 此函数用于发送预先构建好的完整SPI帧。 + */ +void DAC8568_SendRawData(uint8_t raw_data[4]) +{ + // 开始传输(拉低CS) + HAL_GPIO_WritePin(DAC8568_CS_GPIO_Port, DAC8568_CS_Pin, GPIO_PIN_RESET); + + // SPI传输 + HAL_SPI_Transmit(hspi_dac, raw_data, 4, HAL_MAX_DELAY); // 传输4字节 + + // 结束传输(拉高CS) + HAL_GPIO_WritePin(DAC8568_CS_GPIO_Port, DAC8568_CS_Pin, GPIO_PIN_SET); +} \ No newline at end of file diff --git a/User/driver/DAC8568.h b/User/driver/DAC8568.h index d297f02..dd0c15e 100644 --- a/User/driver/DAC8568.h +++ b/User/driver/DAC8568.h @@ -1,62 +1,183 @@ -#include "stm32f4xx_hal.h" // 添加HAL库头文件 +/* + * DAC8568/DAC8168/DAC8568 驱动程序 + * 参考数据手册: https://www.ti.com.cn/product/cn/DAC8568 + * 版本: 2025-4-10 + * 作者: 雪豹 + * 描述: 驱动TI DAC8568系列DAC芯片,支持SPI通信和基本功能 + * 开源协议: MIT + * 版权所有 (c) 2025 雪豹 + * 注意:本代码仅供参考,使用前请仔细阅读数据手册和相关文档。 + * 使用本代码即表示您同意承担所有风险和责任。 + */ +/* + * TI DAC7568/DAC8168/DAC8568 核心特性 (数据手册第1/5-7页) + * + * 【共同特性】 + * - 通道数量: 8通道独立电压输出 + * - 内部基准: 2.5V (±0.004%初始精度, 2ppm/°C温漂典型值) + * - 毛刺能量: 0.1nV-s (代码切换瞬态) + * - 输出缓冲: 轨到轨输出,驱动能力 20mA sink/source + * - 电源范围: 2.7V至5.5V单电源供电 + * - 接口速度: 最高50MHz SPI时钟 + * - 低功耗: + * > 工作模式: 1.25mA @5V (含基准) + * > 断电模式: 0.18μA @5V (典型) + * - 温度范围: -40°C至+125°C + * - 复位特性: 上电复位至零电平/中间电平(型号后缀A/B/C/D区分) + * + * 【关键性能参数】 + * - DAC建立时间: + * > 5μs (典型值, 空载, 1/4至3/4量程, ±0.024%误差) + * > 10μs (最大值, 接1MΩ负载) + * + * 【型号差异】 + * >> DAC7568 (12位): + * - 分辨率: 12位 (0x000-0xFFF) + * - INL: ±1 LSB (最大值) + * - 封装: TSSOP-14/16 + * + * >> DAC8168 (14位): + * - 分辨率: 14位 (0x0000-0x3FFF) + * - INL: ±4 LSB (最大值) + * - 封装: TSSOP-14/16 + * + * >> DAC8568 (16位): + * - 分辨率: 16位 (0x0000-0xFFFF) + * - INL: ±12 LSB (最大值) + * - 封装: TSSOP-16 + * + * 【编程注意】 + * 1. 数据对齐差异: + * DAC7568使用12位数据(D11-D0),需左移4位填充到SPI帧 + * DAC8168使用14位数据(D13-D0),需左移2位 + * DAC8568使用全部16位数据(D15-D0) + * + * 2. 建立时间影响: + * 输出稳定需等待至少10μs,高速连续写入时需添加延时: + * HAL_Delay(1); // 保守延时1ms (实际最低10μs) + */ +/* + * SPI 外设配置说明 (针对 DAC8568) + * ---------------------------------------------------------------- + * 参数要求(参考数据手册第7-8页时序图和第6页电气特性): + * 1. 模式: 全双工主模式 (DAC8568 为从设备) + * 2. 数据大小: 8位 (需手动组合为24/32位帧) + * 3. 时钟极性 (CPOL): 低电平空闲 (CPOL=0) + * 4. 时钟相位 (CPHA): 数据在第一个边沿采样 (CPHA=0) + * 5. 传输顺序: MSB 高位在前 (强制要求) + * 6. 波特率: ≤50MHz (建议根据主频选择分频器) + * 7. 硬件NSS: 禁用 (使用独立GPIO控制SYNC引脚) + * + * CubeMX 具体设置步骤: + * 1. Connectivity → SPIx → Mode = "Full-Duplex Master" + * 2. Parameter Settings → + * - Data Size = 8 Bits + * - First Bit = MSB First + * - Clock Polarity = High 注意这个 + * - Clock Phase = 1 Edge + * - Baud Rate Prescaler = 分频值 (如 2/4/8,确保 SCLK ≤50MHz) + * 3. GPIO Settings → + * - 配置 SYNC 引脚为 GPIO_Output (初始化高电平) + * - MOSI/SCK 自动分配,模式为 Alternate Function Push-Pull + */ +/* + * DAC8568 硬件连接说明: + * ---------------------------------------------------------------- + * DAC8568引脚 | STM32引脚 | 备注 + * -----------|----------------|----------------------------------- + * DIN | SPIx_MOSI | 主设备输出,直连无需上拉 + * SCLK | SPIx_SCK | 保持短走线,减少干扰 + * SYNC | 任意GPIO (如PA4)| 需配置为输出模式,传输前拉低 + * VDD | 3.3V | 电源需并联100nF去耦电容 + * GND | GND | 共地 + */ + +#ifndef DAC8568_H +#define DAC8568_H + +#ifdef __cplusplus +extern "C" +{ +#endif + #include "main.h" +#include "stm32f4xx_hal.h" +#include -/************************DA8568寄存器SR的值*****************************/ +// DAC8568数据帧结构 (31-0位) +// 31-28位: 前缀位 (PREFIX BITS) - 始终为0 +// 27-24位: 命令位 (CONTROL BITS) +// 23-20位: 地址位 (ADDRESS BITS) +// 19-4位: 数据位 (DATA BITS) +// 3-0位: 特征位 (FEATURE BITS) -#define PrefixControlbyte 0x03//前缀控制字节 -#define AddressOutA 0x0//通道A地址 -#define AddressOutB 0x1//通道B地址 -#define AddressOutC 0x2//通道C地址 -#define AddressOutD 0x3//通道D地址 -#define AddressOutE 0x4//通道E地址 -#define AddressOutF 0x5//通道F地址 -#define AddressOutG 0x6//通道G地址 -#define AddressOutH 0x7//通道H地址 -#define Featurebyte 0x0//特征字节 +// DAC8568命令定义 (27-24位控制位) (参考数据手册第35-38页表4) +#define CMD_WRITE_INPUT_REG 0b0000 // 写入输入寄存器 +#define CMD_UPDATE_DAC_REG 0b0001 // 更新DAC寄存器 +#define CMD_WRITE_INPUT_UPDATE_ALL 0b0010 // 写入所有输入寄存器并更新所有DAC寄存器 +#define CMD_WRITE_INPUT_UPDATE_ONE 0b0011 // 写入单个输入寄存器并更新相应的DAC寄存器 +#define CMD_POWER_DOWN 0b0100 // 电源模式控制 +#define CMD_CLEAR_CODE_REG 0b0101 // 清除代码寄存器 +#define CMD_LDAC_REG 0b0110 // LDAC寄存器控制 +#define CMD_SOFTWARE_RESET 0b0111 // 软件复位 +#define CMD_INTERNAL_REF 0b1000 // 内部参考控制 -/*****DA8568寄存器SR的值-结尾*************************************/ +// DAC通道选择 (23-20位地址位) (参考数据手册第36页) +#define CHANNEL_A 0b0000 // 通道A对应CH0 +#define CHANNEL_B 0b0001 // 通道B对应CH4 +#define CHANNEL_C 0b0010 // 通道C对应CH1 +#define CHANNEL_D 0b0011 // 通道D对应CH5 +#define CHANNEL_E 0b0100 // 通道E对应CH2 +#define CHANNEL_F 0b0101 // 通道F对应CH6 +#define CHANNEL_G 0b0110 // 通道G对应CH3 +#define CHANNEL_H 0b0111 // 通道H对应CH7 +#define BROADCAST 0b1111 // 广播模式(所有通道) -/****************************DAC8568命令************************/ -#define SETUP_INTERNAL_REGISTER 0 -#define POWER_UP 1 -#define RESET 2 -/*****DAC8568命令-结尾*******************************************/ +// 电源模式定义 (特征位F1-F0) (参考数据手册第47页表13) +#define POWER_UP 0b00 // 正常工作模式 +#define POWER_DOWN_1K 0b01 // 关断模式,1K电阻接地 +#define POWER_DOWN_100K 0b10 // 关断模式,100K电阻接地 +#define POWER_DOWN_HIZ 0b11 // 关断模式,高阻态 -//---------------------------------------- Pin definition +// 内部参考控制 (特征位) (参考数据手册第44-45页) +#define REF_DISABLE 0b0000 // 禁用内部参考 +#define REF_ENABLE 0b0001 // 启用内部参考 +#define REF_FLEX_MODE_ENABLE 0b0010 // 启用灵活模式 +#define REF_FLEX_MODE_ALWAYS_ON 0b0011 // 灵活模式常开 +#define REF_FLEX_MODE_ALWAYS_OFF 0b0100 // 灵活模式常关 -//---------------------------------------- Command definition -#define DAC8568_EN_INTER_REF_STATIC 0x08000001 -#define DAC8568_WRITE_UPDATE_SEL_DAC 0x03000000 +// 清除代码控制 (特征位F1-F0) (参考数据手册第39页表5) +#define CLEAR_CODE_ZERO_SCALE 0b00 // 清除为零刻度 +#define CLEAR_CODE_MID_SCALE 0b01 // 清除为中间刻度 +#define CLEAR_CODE_FULL_SCALE 0b10 // 清除为全刻度 +#define CLEAR_CODE_NO_OPERATION 0b11 // 无操作 -//---------------------------------------- Reference Voltage -#define DAC8568_REF_VOLTAGE 2.5 +// 硬件相关定义 +#define DAC8568_CS_GPIO_Port GPIOD +#define DAC8568_CS_Pin GPIO_PIN_15 +#define DAC8568_LDAC_GPIO_Port GPIOD +#define DAC8568_LDAC_Pin GPIO_PIN_14 -void DAC8568_Init(void); -void DAC8568_Write_Update_Sel_DAC(uint32_t ChannelNum, uint32_t DACValue); +// 函数声明 +void DAC8568_Init(SPI_HandleTypeDef *hspi); +void DAC8568_Write(uint8_t channel, uint16_t data); +void DAC8568_Update(uint8_t channel); +void DAC8568_WriteAndUpdate(uint8_t channel, uint16_t data); +void DAC8568_WriteAllChannels(uint16_t *data); +void DAC8568_UpdateAllChannels(void); +void DAC8568_SetPowerMode(uint8_t channel, uint8_t mode); +void DAC8568_EnableStaticInternalRef(void); +void DAC8568_DisableStaticInternalRef(void); +void DAC8568_EnableFlexMode(void); +void DAC8568_DisableFlexMode(void); +void DAC8568_SetFlexModeRefAlwaysOn(uint8_t enable); +void DAC8568_SetFlexModeRefAlwaysOff(uint8_t enable); +void DAC8568_SetClearCode(uint8_t mode); +void DAC8568_SoftwareReset(void); +void DAC8568_SendRawCommand(uint8_t cmd_bits, uint8_t addr_bits, uint16_t data_bits, uint8_t feature_bits); +void DAC8568_SendRawData(uint8_t raw_data[4]); - -// #define DAC8568_SYNC_H GPIO_SetBits(GPIOA,GPIO_Pin_15) -// #define DAC8568_SYNC_L GPIO_ResetBits(GPIOA,GPIO_Pin_15) -// #define DAC8568_SCLK_H GPIO_SetBits(GPIOC,GPIO_Pin_10) -// #define DAC8568_SCLK_L GPIO_ResetBits(GPIOC,GPIO_Pin_10) -// #define DAC8568_DIN_H GPIO_SetBits(GPIOC,GPIO_Pin_12) -// #define DAC8568_DIN_L GPIO_ResetBits(GPIOC,GPIO_Pin_12) -//引脚拉高拉低 -#define DAC8568_CS_H HAL_GPIO_WritePin(DAC8568_CS_GPIO_Port, DAC8568_CS_Pin, GPIO_PIN_SET) -#define DAC8568_CS_L HAL_GPIO_WritePin(DAC8568_CS_GPIO_Port, DAC8568_CS_Pin, GPIO_PIN_RESET) -#define DAC8568_SCLK_H HAL_GPIO_WritePin(DAC8568_SCLK_GPIO_Port, DAC8568_SCLK_Pin, GPIO_PIN_SET) -#define DAC8568_SCLK_L HAL_GPIO_WritePin(DAC8568_SCLK_GPIO_Port, DAC8568_SCLK_Pin, GPIO_PIN_RESET) -#define DAC8568_DIN_H HAL_GPIO_WritePin(DAC8568_DIN_GPIO_Port, DAC8568_DIN_Pin, GPIO_PIN_SET) -#define DAC8568_DIN_L HAL_GPIO_WritePin(DAC8568_DIN_GPIO_Port, DAC8568_DIN_Pin, GPIO_PIN_RESET) -#define DAC8568_LD_H HAL_GPIO_WritePin(DAC8568_LD_GPIO_Port, DAC8568_LD_Pin, GPIO_PIN_SET) -#define DAC8568_LD_L HAL_GPIO_WritePin(DAC8568_LD_GPIO_Port, DAC8568_LD_Pin, GPIO_PIN_RESET) - -void dac8568_init(void); -void dac8568_set_voltage(unsigned char mCh,float mVol); -void SPI_SendByte(uint8_t m); -void DAC8568_Write_passageway(uint8_t Addressbyte, uint16_t Datashort); -void DAC8568_Write_Command(uint8_t command); -void dac8568_set_voltage(unsigned char mCh, float mVol); -void dac8568_spi_init(void); -void DAC8568_Init(void); -void dac8568_output_ch0_1v5(void); \ No newline at end of file +#ifdef __cplusplus +} +#endif +#endif /* DAC8568_H */ \ No newline at end of file diff --git a/User/system/user_spi.c b/User/system/user_spi.c index fb3c9bd..bc67733 100644 --- a/User/system/user_spi.c +++ b/User/system/user_spi.c @@ -178,7 +178,7 @@ void dac8568_spi_init(void) hspi3.Init.Mode = SPI_MODE_MASTER; hspi3.Init.Direction = SPI_DIRECTION_2LINES; hspi3.Init.DataSize = SPI_DATASIZE_8BIT; - hspi3.Init.CLKPolarity = SPI_POLARITY_LOW; // CPOL = 0 + hspi3.Init.CLKPolarity = SPI_POLARITY_HIGH; // CPOL = 0 hspi3.Init.CLKPhase = SPI_PHASE_1EDGE; // CPHA = 0 hspi3.Init.NSS = SPI_NSS_SOFT; hspi3.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_32; // 提高SPI速度 @@ -194,7 +194,7 @@ void dac8568_spi_init(void) // 初始化CS和LDAC引脚状态 HAL_GPIO_WritePin(DAC8568_CS_GPIO_Port, DAC8568_CS_Pin, GPIO_PIN_SET); // CS初始为高电平 - HAL_GPIO_WritePin(DAC8568_LD_GPIO_Port, DAC8568_LD_Pin, GPIO_PIN_RESET); // LDAC初始为低电平 + HAL_GPIO_WritePin(DAC8568_LD_GPIO_Port, DAC8568_LD_Pin, GPIO_PIN_SET); // LDAC初始为高电平 // 等待一段时间确保DAC8568稳定 HAL_Delay(10);