用户工具

站点工具


adc实验_电源监控

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
adc实验_电源监控 [2020/07/04 11:21]
zgf [二、 实验设备及平台]
adc实验_电源监控 [2022/03/22 10:18] (当前版本)
sean
行 2: 行 2:
 |技术支持电话|**0379-69926675-801**||| |技术支持电话|**0379-69926675-801**|||
 |技术支持邮件|Gingko@vip.163.com||| |技术支持邮件|Gingko@vip.163.com|||
-|技术论坛|http://​www.eeschool.org||| 
 ^  版本 ​ ^  日期 ​ ^  作者 ​ ^  修改内容 ​ ^ ^  版本 ​ ^  日期 ​ ^  作者 ​ ^  修改内容 ​ ^
 |  V1.0  |  2020-07-04 ​ |  gingko ​ |  初次建立 ​ |  |  V1.0  |  2020-07-04 ​ |  gingko ​ |  初次建立 ​ | 
行 48: 行 47:
   *  常规通道转换期间可产生DMA请求   *  常规通道转换期间可产生DMA请求
 === 3、ADC框图 === === 3、ADC框图 ===
 +{{ :​icore4:​icore4_arm_hal_9_1.png?​direct |}}
 === 4、ADC寄存器介绍 === === 4、ADC寄存器介绍 ===
 (1)ADC控制寄存器(ADC_CR1和ADC_CR2) (1)ADC控制寄存器(ADC_CR1和ADC_CR2)
-  +{{ :​icore4:​icore4_arm_hal_9_2.png?​direct |}} 
-ADC_CR1的SCAN位,该位用于设置扫描模式,由软件设置和清除,如果设置为1,则使用扫描模式,如果为0,则关闭扫描模式。在扫描模式下,由ADC_SQRx或ADC_JSQRx寄存器选中的通道被转换。如果设置了EOCIE或JEOCIE,只在最后一个通道转换完毕后才会产生EOC或JEOC中断。ADC_CR1[25:​24]用于设置ADC的分辨率,详细的对应关系如图所示: +  ​* ​ADC_CR1的SCAN位,该位用于设置扫描模式,由软件设置和清除,如果设置为1,则使用扫描模式,如果为0,则关闭扫描模式。在扫描模式下,由ADC_SQRx或ADC_JSQRx寄存器选中的通道被转换。如果设置了EOCIE或JEOCIE,只在最后一个通道转换完毕后才会产生EOC或JEOC中断。ADC_CR1[25:​24]用于设置ADC的分辨率,详细的对应关系如图所示: 
-  +{{ :​icore4:​icore4_arm_hal_9_3.png?​direct |}} 
-ADC_CR2寄存器的各位描述如图所示: +  ​* ​ADC_CR2寄存器的各位描述如图所示: 
-  +{{ :​icore4:​icore4_arm_hal_9_4.png?​direct |}} 
-ADON位用于开关AD转换器,而CONT位用于设置是否进行连续转换,SWSTART 位用于开始规则通道的转换。+  ​* ​ADON位用于开关AD转换器,而CONT位用于设置是否进行连续转换,SWSTART 位用于开始规则通道的转换。
 (2)ADC通用控制寄存器(ADC_CCR) (2)ADC通用控制寄存器(ADC_CCR)
-  +{{ :​icore4:​icore4_arm_hal_9_5.png?​direct |}} 
-TSVREFE位是内部温度传感器和Vrefint通道使能位,这里我们直接设置为0。ADCPRE[1:​0]用于设置ADC输入时钟分频,00~11分别对应2/​4/​6/​8分频,MULTI[4:​0]用于多重ADC模式选择。 +  ​* ​TSVREFE位是内部温度传感器和Vrefint通道使能位,这里我们直接设置为0。ADCPRE[1:​0]用于设置ADC输入时钟分频,00~11分别对应2/​4/​6/​8分频,MULTI[4:​0]用于多重ADC模式选择。 
-(3)ADC采样时间寄存器(ADC_SMPR1和ADC_SMPR2),这两个寄存器用于设置通道0~18的采样时间,每个通道占用3个位。ADC_SMPR1的各位描述如图所示: +(3)ADC采样时间寄存器(ADC_SMPR1和ADC_SMPR2),这两个寄存器用于设置通道0~18的采样时间,每个通道占用3个位。 ​ ADC_SMPR1的各位描述如图所示: 
-  +{{ :​icore4:​icore4_arm_hal_9_6.png?​direct |}} 
-ADC_SMPR2的各位描述如下图所示: +  ​* ​ADC_SMPR2的各位描述如下图所示: 
-  +{{ :​icore4:​icore4_arm_hal_9_7.png?​direct |}} 
-对于每个要转换的通道,采样时间建议尽量长一点,以获得较高的准确度,但是这样会降低ADC的转换速率。ADC的转换时间可以由以下公式计算: +  ​* ​对于每个要转换的通道,采样时间建议尽量长一点,以获得较高的准确度,但是这样会降低ADC的转换速率。ADC的转换时间可以由以下公式计算: 
-Tcovn=采样时间+12个周期 +    * **Tcovn=采样时间+12个周期** 
-其中:Tcovn为总转换时间,采样时间是根据每个通道的SMP位的设置来决定的。例如,当ADCCLK=27Mhz的时候,并设置3个周期的采样时间,则得到:Tcovn=3+12=15个周期=0.55us。+  ​* ​其中:Tcovn为总转换时间,采样时间是根据每个通道的SMP位的设置来决定的。例如,当ADCCLK=27Mhz的时候,并设置3个周期的采样时间,则得到:Tcovn=3+12=15个周期=0.55us。
 (4)ADC状态寄存器(ADC_SR),该寄存器保存了ADC转换时的各种状态。该寄存器的各位描述如图所示: (4)ADC状态寄存器(ADC_SR),该寄存器保存了ADC转换时的各种状态。该寄存器的各位描述如图所示:
-  +{{ :​icore4:​icore4_arm_hal_9_8.png?​direct |}} 
-这里仅介绍将要用到的是EOC位,通过判断该位来决定是否此次规则通道的AD转换已经完成,如果该位位1,则表示转换完成了,就可以从ADC_DR中读取转换结果,否则等待转换完成。 +  ​* ​这里仅介绍将要用到的是EOC位,通过判断该位来决定是否此次规则通道的AD转换已经完成,如果该位位1,则表示转换完成了,就可以从ADC_DR中读取转换结果,否则等待转换完成。 
-本实验中iCore4的所有电源经过电阻分压或者直接接入STM32的ADC的输出通道内,输入电流经过高端电流检测芯片ZXCT1009F输入到ADC的输入通道内,从而实现电源监控功能。+  ​* ​本实验中iCore4的所有电源经过电阻分压或者直接接入STM32的ADC的输出通道内,输入电流经过高端电流检测芯片ZXCT1009F输入到ADC的输入通道内,从而实现电源监控功能。
 ==== 四、 实验程序 ==== ==== 四、 实验程序 ====
  
行 228: 行 227:
  
   * 串口一直向终端输出输入电源的数据。   * 串口一直向终端输出输入电源的数据。
 +{{ :​icore4:​icore4_arm_hal_9_9.png?​direct |}}
  
adc实验_电源监控.1593832912.txt.gz · 最后更改: 2020/07/04 11:21 由 zgf