替采样 在多ADC模式中,ADC1为主,ADC2或ADC3为从,交替或者同时触发,工作模式取决于ADC_CCR寄存器的MULTI[4:0]。 多ADC模式中,转换后的数据可以多模式的数据寄存器(ADC_CDR)中读取。状态可以在多模式的状态寄存器(ADC_CSR)读取。 多ADC模式下的DMA传输方式: 方式1:每个AD转换完都发出DMA请求,多模式的数据寄存器(ADC_CDR)用低位保存转换结果。 1st request: ADC_CDR[31:0] = ADC1_DR[15:0] 2nd request: ADC_CDR[31:0] = ADC2_DR[15:0] 3rd request: ADC_CDR[31:0] = ADC3_DR[15:0] 4th request: ADC_CDR[31:0] = ADC1_DR[15:0] 方式2:每两个AD转换完都发出DMA请求。 双ADC模式: 高十六位保存ADC2结果,低十六位保存ADC1结果 1st request: ADC_CDR[31:0] = ADC2_DR[15:0] |ADC1_DR[15:0] 2nd request: ADC_CDR[31:0] = ADC2_DR[15:0] |ADC1_DR[15:0] 三ADC模式: 1st request: ADC_CDR[31:0] = ADC2_DR[15:0] |ADC1_DR[15:0] 2nd request: ADC_CDR[31:0] = ADC1_DR[15:0] |ADC3_DR[15:0] 3rd request: ADC_CDR[31:0] = ADC3_DR[15:0] |ADC2_DR[15:0] 4th request: ADC_CDR[31:0] = ADC2_DR[15:0] |ADC1_DR[15:0] 方式2:每两个AD转换完都发出DMA请求。与方式2相似,但是DMA以半字方式传输。 用于6位或者8位分辨率中。 双ADC模式: 高8位保存ADC2结果,低8位保存ADC1结果 1st request: ADC_CDR[15:0] = ADC2_DR[7:0] | ADC1_DR[7:0] 2nd request: ADC_CDR[15:0] = ADC2_DR[7:0] | ADC1_DR[7:0] 三ADC模式: 1st request: ADC_CDR[15:0] = ADC2_DR[7:0] | ADC1_DR[7:0] 2nd request: ADC_CDR[15:0] = ADC1_DR[7:0] | ADC3_DR[7:0] 3rd request: ADC_CDR[15:0] = ADC3_DR[7:0] | ADC2_DR[7:0] 4th request: ADC_CDR[15:0] = ADC2_DR[7:0] | ADC1_DR[7:0] 多ADC转换模式: 1. 注入同步模式 2. 规则同步模式 3. 交替模式 4. 交替触发模式 5. 规则同步+注入同步模式 6. 规则同步+交替触发模式 交替模式配置步骤: 1. 配置相关输入通道的IO口。 2. 设置DMA 3. 如果双重ADC或三重采样,设置ADC的公共寄存器 a. 设置公共寄存器首先要打开任意一个ADC的时钟,否则这部分数字电路是没有开始工作的。 b. 设置DMA模式 c. 设置ADC转换完成后,发送DMA请求 d. 设置多ADC模式 e. 设置两次采样间隔周期 4. 配置要使用到的ADC(必须ADC1为主,其他为从)。
|