记录一下看野火的视频F103的ADC的理解,如有错误还望指教,本身就是做一个记录所用,也不知道理解的对否
其他的配置:
ADC的mode有单模式/双模式/...
单模式就是一个ADC,双模式就是两个ADC/...其他模式具体看手册
scanconv mode->针对多通道,决定扫描顺序,通道1过了通道2...
continuous mode 连续转换模式(一直采集,不用等待转换完成)
双重模式
F1中只能使用ADC1和ADC2,不能用像ADC1和ADC3
中断事件:
EOC:规则通道转化完成的中断
JOC:注入通道转化完成的中断
AWD(看门狗中断,可以检测是否超出电压范围)
adc的运作流程:触发->采集->转换
触发源:相当于一个信号告诉ADC可以转化了
一般单模式就是使用选用软件触发,不采用外部触发:1.定时器(对应关系,就是不同的通道要有不同的定时器对应)
但是如果是双ADC,就同时采用软件触发和外部触发,这个时候相当于一个主从模式,ADC1软件触发作为主模式,ADC2采用ADC多路复用触发器来触发,作为从模式
注:ADON相当于只是打开了数模转化器的电压,注意和触发做一个区别,这个打开了才能转化
转换时间
Tconv=采样时间+12.5个周期
采样时间可以自己定义为几个周期,最短为1.5个周期,所以最小的Tconv周期数为14个
周期的定义是针对于ADC的时钟,在F1中最大的周期是14M(时钟树有写),所以一般选择6分频,这个时候72/6=12M(但是不知道如果选择其他的分频方式会不会直接跳到最高的)
采样率的定义就是1/Tconv,F1的话因为Tconv最小是1us(14M的情况下),所以采样率就是1M
规则组和注入组的概念
规则组是将采集到的数据存入ADC-DR寄存器(本身是32位,但是只用低16位,而且本身F1的ADC就是12位的,所以还要选择对齐方式),如果采用多通道的话,就会发生一个覆盖问题,这个时候就要用到DMA,运作方式就是,采集到电压过后,会产生一个dma请求,然后数据就会移到dma里,像a[0],a[1]这样存放,
注入通道的话它四个,刚好有四个数据寄存器,所以不会存在覆盖的问题。
注入通道理解为插入,在规则通道转换时强行插入,类似于中断,但只有在规则通道存在时才存在
注1:adc2记住没有dma模式的
注2:dma有不同的通道,对于不同的adc1呀,adc2呀,这种有不同的对应关系