【雅特力AT-START-F435】ADC采样速率测试5.33MSPS
<div class='showpostmsg'> 本帖最后由 zhangbaoyin 于 2023-6-26 20:27 编辑<p style="text-align: center;"><span style="font-size:20px;"><strong>【雅特力AT-START-F435】ADC采样速率测试5.33MSPS</strong></span></p>
<p><span style="font-size:18px;"><strong>一、时钟配置</strong></span></p>
<p>从时钟树上可以看到:</p>
<ul>
<li>ADC通道的<span style="background-color:#2ecc71;">最大时钟速率</span>为<span style="color:#e74c3c;">80MHz</span>。</li>
<li>ADC全部挂载到APB2总线上,配置系统时钟使用apb2 不分频</li>
</ul>
<p>总体的系统时钟配置为</p>
<table align="center" border="1" cellpadding="1" cellspacing="1">
<tbody>
<tr>
<th scope="row">Sys-Clock</th>
<td>320MHz</td>
</tr>
<tr>
<th scope="row">APB1</th>
<td>320MHz</td>
</tr>
<tr>
<th scope="row">APB2</th>
<td>320MHz</td>
</tr>
<tr>
<th scope="row">ADC-Freq</th>
<td>80MHz</td>
</tr>
</tbody>
</table>
<p></p>
<p> </p>
<p> </p>
<p><span style="font-size:18px;"><strong>二、代码设计</strong></span></p>
<ul>
<li>将ADC设置为:软件触发+连续转换+2.5采样周期</li>
<li>使用基本定时器TMR6定时1秒,每次溢出产生中断<em>TMR_OVF_INT</em></li>
<li>ADC转换完成后产生转换完成中断<em>ADC_OCCE_INT</em></li>
<li>在ADC转换完成中断内 将计数值++,这个计数值就是ADC的转换频率</li>
</ul>
<pre>
<code class="language-cpp">/**
* @brief this function handles adc1_2_3 handler.
* @paramnone
* @retval none
*/
void ADC1_2_3_IRQHandler(void)
{
if(adc_flag_get(ADC1, ADC_OCCE_FLAG) != RESET)
{
adc_flag_clear(ADC1, ADC_OCCE_FLAG);
adc1_conversion_end_flag++;
}
}
void TMR6_DAC_GLOBAL_IRQHandler(void)
{
if(tmr_flag_get(TMR6, TMR_OVF_FLAG) != RESET)
{
printf("ADC_Value: %u\tFreq: %dHz\n", ADC1->odt, adc1_conversion_end_flag);
adc1_conversion_end_flag = 0;
tmr_flag_clear(TMR6, TMR_OVF_FLAG);
}
}</code></pre>
<pre>
</pre>
<p><span style="font-size:18px;"><strong>三、实验结果:</strong></span></p>
<ul>
<li>如果对APB1/2 二分频处理,最大采样速率只有4.92MSPS </li>
</ul>
<p></p>
<ul>
<li>如果对APB1/2 <span style="background-color:#2ecc71;">不分频</span>处理,最大采样速率可以达到<span style="background-color:#2ecc71;">5.33MSPS</span></li>
</ul>
<p> </p>
<p> </p>
<div></div>
</div><script> var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;" style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
if(parseInt(discuz_uid)==0){
(function($){
var postHeight = getTextHeight(400);
$(".showpostmsg").html($(".showpostmsg").html());
$(".showpostmsg").after(loginstr);
$(".showpostmsg").css({height:postHeight,overflow:"hidden"});
})(jQuery);
} </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script> <p>如果对APB1/2 不分频处理,最大采样速率可以达到5.33MSPS</p>
<p>有这样的采样速度,比较牛了吧。</p>
lugl4313820 发表于 2023-7-3 08:46
如果对APB1/2 不分频处理,最大采样速率可以达到5.33MSPS
有这样的采样速度,比较牛了吧。
<p>确实很牛 而且还是12bit采样分辨率,8bit估计可以到10+MSPS</p>
这个测试效果不错
页:
[1]