STM32 ADC�ɘӕr�g���ɘ��������ɘ��l��Ӌ�㷽��
ADC�D(zhu��n)�Q����ݔ��ģ�M����̖������Ƭ�C�D(zhu��n)�Q�ɔ�(sh��)�������xȡ��(sh��)������횵��D(zhu��n)�Q��ɺ������һ��ͨ�����xȡ�����ɘ��������ɘ�����һ����f=�D(zhu��n)�Q�r�g+�xȡ�r�g
�����D(zhu��n)�Q�r�g=�ɘӕr�g+12.5���r��������ɘӕr�g����ͨ�^�Ĵ������VSTM32�ɘ�ģ�M���ĕr�g���O(sh��)��Խ�LԽ���_
һ STM32 ADC�ɘ��l�ʵĴ_��
1. ���ȿ�һЩ�Y�����_��һ��ADC�ĕr犣�
(1)���ɕr犿������ṩ��ADCCLK�r犺�PCLK2(APB2�r�)ͬ����CLK��������ADC�r��ṩһ�����õĿɾ����A(y��)���l����
(2) һ����r���ڳ��� �Ќ� PCLK2 �r��O(sh��)�� �cϵ�y(t��ng)�r� ��ͬ
/* HCLK = SYSCLK */
RCC_HCLKConfig(RCC_SYSCLK_Div1);
/* PCLK2 = HCLK */
RCC_PCLK2Config(RCC_HCLK_Div1);
/* PCLK1 = HCLK/2 */
RCC_PCLK1Config(RCC_HCLK_Div2);
(3)�ڕr����üĴ���(RCC_CFGR) �� �� ��ADC�r��ṩһ�����õĿɾ����A(y��)����
λ15:14 ADCPRE��ADC�A(y��)���l
��ܛ���O(sh��)�Á��_��ADC�r��l��
00��PCLK2 2���l������ADC�r�
01��PCLK2 4���l������ADC�r�
10��PCLK2 6���l������ADC�r�
11��PCLK2 8���l������ADC�r�
�҂��Ɍ����M���O(sh��)�� ���磺
/* ADCCLK = PCLK2/4 */
RCC_ADCCLKConfig(RCC_PCLK2_Div4);
���� ߀�� ADC �r�ʹ���O(sh��)��
/* Enable ADC1, ADC2 and GPIOC clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_ADC2 |
RCC_APB2Periph_GPIOC, ENABLE);
(4)16.7 �ɾ��̵�ͨ���ɘӕr�g
ADC ʹ�����ɂ�ADC_CLK ���ڌ�ݔ��늉��ɘ����ɘ����ڔ�(sh��)Ŀ����ͨ�^ADC_SMPR1��ADC_SMPR2�Ĵ����е�SMP[2:0]λ��������ÿ��ͨ�������Բ�ͬ�ĕr�g�ɘ���
���D(zhu��n)�Q�r�g����Ӌ�㣺
TCONV(�D(zhu��n)�Q�r�g) = �ɘӕr�g+ 12.5 ������
���磺
��ADCCLK=14MHz �� 1.5���ڵIJɘӕr�g��
TCONV = 1.5 + 12.5 = 14����= 1μs
SMPx[2:0]���x��ͨ��x�IJɘӕr�g
�@Щλ���ڪ������x��ÿ��ͨ���IJɘӕr�g���ڲɘ�������ͨ���x��λ��횱��ֲ�׃��
000��1.5����100��41.5����
001��7.5����101��55.5����
010��13.5����110��71.5����
011��28.5����111��239.5����
ע��
– ADC1��ģ�Mݔ��ͨ��16��ͨ��17��оƬ��(n��i)���քe�B���˜ضȂ�������VREFINT��
– ADC2��ģ�Mݔ��ͨ��16��ͨ��17��оƬ��(n��i)���B����VSS��
2. ���w�������£�
(1)�҂���ݔ����̖��50Hz (���ڞ�20ms)����������1����200���ɘ��c��(ע��һ�������ٲ�20���c�����ɘ������ٞ�1k) ��ÿ2�� �ɘ��c�g���� 20ms /200 = 100 us
ADC�ɾ��̵�ͨ���ɘӕr�g �҂��x��С�� 1.5 �������t ADC�ɘ�����һ���ڴ�С��
100us /1.5=66us �� ADC �r��l�ʞ� 1/66us =15 KHz��
ADC�ɾ��̵�ͨ���ɘӕr�g �҂��x71.5 �������t ADC�ɘ�����һ���ڴ�С��
(100us /71.5) �� ADC �r��l�ʞ� 7.15MHz��
(2)�����҂�Ҫ�_��ϵ�y(t��ng)�r犣��҂� �õ��� 8M Hz ���ⲿ�������r�Դ(HSE)����Ӌ�� ��(j��ng)�^ PLL���l PLL ���lϵ��(sh��)�քe��2������(sh��)�������72 MHz������ ��ߔ�(sh��)��(j��) Ӌ��Ч�����҂���ϵ�y(t��ng)�r状���72MHz��(PLL 9���l)���tPCLK2=72MHz,PCLK1=36MHz;
�҂�ͨ�^�O(sh��)�Õr����üĴ���(RCC_CFGR) �� �� ��ADC�r��ṩһ�����õĿɾ����A(y��)��������PCLK2 8 ���l������ADC �ĕr犣��t��֪ADC �r��l�ʞ� 9MHz
���փԿ�֪�� ADC �D(zhu��n)�Q�r�g��
STM32F103xx�����ͮa(ch��n)Ʒ��ADC�r犞�56MHz�r��1μs(ADC�r犞�72MHz��1.17μs)
(3)�����Ϸ�����֪����̫����(y��ng)���҂����������� ��(n��i)���{(di��o)�����������������
����һ���҂���ݔ����̖��50Hz (���ڞ�20ms)����������1����2500���ɘ��c��(ע��һ�������ٲ�20���c�����ɘ������ٞ�1k) ��ÿ2�� �ɘ��c�g���� 20ms /2500 = 8 us
ADC�ɾ��̵�ͨ���ɘӕr�g �҂��x71.5�������t ADC�ɘ�����һ���ڴ�С��
8us /71.5 �� ADC�r��l�ʼs�� 9 MHz��
��PCLK2 8 ���l������ADC �ĕr����t��֪ADC �r��l�ʞ� 9MHz
���������҂���ݔ����̖��50Hz (���ڞ�20ms)����������1����1000���ɘ��c��(ע��һ�������ٲ�20���c�����ɘ������ٞ�1k) ��ÿ2�� �ɘ��c�g���� 20ms /1000= 20 us
ADC�ɾ��̵�ͨ���ɘӕr�g �҂��x239.5���ڣ��t ADC�ɘ�����һ���ڴ�С��
20us /239.5 �� ADC�r��l�ʼs�� 12 MHz��
��PCLK2 6 ���l������ADC �ĕr����t��֪ADC �r��l�ʞ� 12MHz

����admin ����ĕr�g��2018-05-18