全部学习笔记汇总: GitHub - GreyZhang/g_spc560b64: Learn and hack powerpc MCU SPC560B. Happy hacking!
ADC的特性以及资源梳理
1. ADC0以及ADC1的精度是不同的,其中ADC0的精度是10bit,而ADC1的精度是12bit。
2. 拥有53个通道,而且是可以扩展为81个通道。扩展出来的树木是28个,不是8的倍数,看起来部分扩展可能会有复用?
3. 4个通道是支持外扩的,每一个最多支持8路外部复用扩展。那么,53 + 32应该是85个通道,减去4个复用AD口,数目正好合适。
4. 针对于高精度通道、普通通道以及外部复用的通道,可以设置3个独立的采样以及转换时间。
5. 触发模式:软件、CTU、PIT的2和6通道(适用于注入转换)。
6. 这个ADC有6 + 3,9个带有中断功能用于进持续硬件监控的看门狗的。其中10bit的看门狗6个,12bit的3个。
小姐:看上去,这个MCU的ADC的资源还是很多的,功能看上去也非常复杂。尤其是看门狗、复用、不同的触发模式等,之前的工作学习中接触的很少。
简介
1. ADC是支持EDMA模式操作的。
2. 控制哪一个通道转换与否,可以使用一个掩码寄存器。
3. 外部复用功能的支持,几个复用控制的管脚是ADC的硬件自己来控制的,如果不用这个功能的时候可以用于做GPIO的功能。这么看,这几个管脚的配置配置成GPIO其实是不合适的。
ADC通道的转换模式
有正常模式转换、注入模式转换、CTU触发转换三种模式。
正常的转换模式
控制掩码使能来决定一个通道是否转换,在所有的通道转换结束之前,这个掩码不能够在转换的过程中修改。因此,掩码设置需要在转换之前。
之前分析过的一份编码实现中,采用过这种模式来实现ADC的转换启动。我印象中相应的启动动作只有一次,转换一次的话,这个信号能够实现持续自动转换?那么这个跟CTU又有什么差异?兴许是我这方面的注意不够,之前细节上的信息没有看清楚。
启动正常转换
正常转换模式下,有一个中断功能可以提供:所有的通道全都转换完之后可以触发一个中断。
正常转换的转换操作模式
在正常转换的模式下,还有两种不同的运行模式:One Shot Mode以及Scan Mode。分别可以转换一次和持续转换。
这样让我对此多少有一点疑惑了,持续转换相比于CTU的触发来说又有什么本质上的差异呢?都是自动执行转换。另一个疑问点在于,这种运行模式下的采集频率应该如何来控制呢?
看到这里,其实我前面关于转换启动的一个疑惑已经解除了。
插入通道转换
不知道这个究竟该如何翻译,但是注入看起来并不如插入妥当。这个在一定功能程度上给了通道转换进行优先级调整的机会。从目前我接触到的项目需求中,需求似乎并不是很大。