之前写测评申请时提到打算测试这些国产MCU的 ADC性能,根据前面测试的另外一家的结果看,性能应该能符合规格书上写的。
所以对于雅特力,重点就放在特有的“3个ADC”上,可惜没看懂到底是怎么同步触发的(本应用是实现3个ADC同时触发并进行转换,为了实现该目的,ADC1和ADC2采用双ADC模式(同步规则组模式),ADC3与ADC1和ADC2采用相同的触发源以达到同步的效果。)
性能方面,雅特力官网上有几篇ADC相关的,比如这篇:
http://atkap.arterytek.com/download/FAQ0025_ADC_sampling_result_at_4MHz_CH_V1.0.0.pdf
(经实测 AT32F403 ADC 以 4 MHz 采样速率操作,结果比起数据手册上限 2 MHz 差。采样率 2 MHz 时总体分辨率保证可达 12 bit, 而 4 MHz 时可达约 9.2 bit.)
三ADC方面的代码则有3个:
1. AT32F4xx_StdPeriph_Lib_V1.2.4.zip 里的 3ADCs_DMA
2. SC0001_定时器触发3路ADC同时采样指定次数
3. AN0011: 通过同一触发源触发3个ADC转换的方法
我测试的是第3个,原工程配置有一点点问题,附件的这版已经改好并做了精简(删掉本Demo用不到的 CMSIS库)。
接线图:
LQFP100:
pin23 = PA0 = ADC123_IN0 = J2.23 周边
pin24 = PA1 = ADC123_IN1
pin25 = PA2 = ADC123_IN2
pin26 = PA3 = ADC123_IN3
pin29 = PA4 = ADC12_IN4
pin30 = PA5 = ADC12_IN5
pin31 = PA6 = ADC12_IN6
实测结果:
当 PA1/2/3都接到 Gnd:
DMA1_Enter_IRQ
ADC1_Channel1_Value = 0x023
ADC2_Channel2_Value = 0x01F
DMA2_Enter_IRQ
ADC3_Channel3_Value = 0x01B
当 PA1/2/3都接到 Vdd:
DMA1_Enter_IRQ
ADC1_Channel1_Value = 0xFA5
ADC2_Channel2_Value = 0xFAD
DMA2_Enter_IRQ
ADC3_Channel3_Value = 0xF9D
从这个结果看,接到Gnd和Vdd的结果应该有问题,但是还没搞懂‘同步触发’的问题,就先不深究测量结果了。