8 位转 16 位的配置要点

[复制链接]
1816|10
l63t89 发表于 2025-8-28 13:03 | 显示全部楼层 |阅读模式
同一 SPI 口先驱动 8 位的 ADC,再驱动 16 位的 DAC,直接改spi_init_struct.frame_size=SPI_FRAMESIZE_16BIT后,DAC 无响应。需先禁用 SPI,改帧格式后重新使能,同时 DR 操作从uint8_t指针改为uint16_t指针,数据传输恢复正常。
磨砂 发表于 2025-9-1 13:39 | 显示全部楼层
必须先禁用SPI外设,完成帧格式修改后再重新使能SPI
晓伍 发表于 2025-9-1 15:56 | 显示全部楼层
SPI控制器的内部状态机需要在配置变更前复位才能正确识别新的数据宽度
八层楼 发表于 2025-9-1 18:09 | 显示全部楼层
对应的数据传输缓冲区需从[size=0.875]uint8_t*改为[size=0.875]uint16_t*,确保每次读写操作按16位对齐
观海 发表于 2025-9-1 20:27 | 显示全部楼层
对于高速场景下的DAC,错误的时序可能导致数据错位或建立时间不足
guanjiaer 发表于 2025-9-1 20:27 | 显示全部楼层
先拉低CS_ADC启动AD转换并读取结果,完成后再拉低CS_DAC发送DA数值
heimaojingzhang 发表于 2025-9-2 11:06 | 显示全部楼层
若ADC仅提供8位有效数据,向16位寄存器写入时需在高8位补零
keaibukelian 发表于 2025-9-2 13:19 | 显示全部楼层
若MCU支持DMA,可分别为ADC和DAC配置独立的描述符链表,由硬件自动完成内存到外设的数据搬运,减少CPU干预并提高吞吐量
paotangsan 发表于 2025-9-2 15:42 | 显示全部楼层
将ADC转换完成中断设为高优先级,确保及时响应新样本;DAC更新中断设为低优先级,避免阻塞关键任务
renzheshengui 发表于 2025-9-2 18:06 | 显示全部楼层
CS信号的脉冲宽度是否符合器件手册最小要求
wowu 发表于 2025-9-2 20:28 | 显示全部楼层
不活跃期间关闭SPI外设电源域,仅在需要通信时唤醒,适用于电池供电系统
您需要登录后才可以回帖 登录 | 注册

本版积分规则

101

主题

1077

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部