TI中文支持网
TI专业的中文技术问题搜集分享网站

求助,28335在程序执行到ADC_cal()函数时,会卡死。

同样的程序,在另一块板子上执行,不会有问题。但在我新做的板子上执行时,总是会死在ADC_cal()处。如果屏蔽掉这条语句,一切正常。但是工程中需要做ADC转换。

应该是硬件有问题,想知道问题出在哪里?

启动引导已经固定上拉入下:

受不了,我找到问题。写了一大串思路,经过网页直接奔溃了。一句话,电源问题。仅供参考。

rym rym:

已经找到问题。虽然这个论坛很多问题都有始无终,但我还是想写下自己的思路,供他人借鉴:

我程序中使用了ADC,同时还使用了时间中断函数(基于150MHz的时钟速率)。我的板子使用的是30MHz的外部时钟,因此需要PLL(10,2)到150MHz。外部电源使用TPS75005,而问题就在这里。

屏蔽ADC_cal(),能够流畅运行程序,包括进入中断。

我将时钟改到100MHZ,发现可以运行ADC_cal(),但是无法进入中断函数。

因此,很明显,问题就出现在了运行的时钟上面。但是我的时钟不应该有问题。因此,查阅数据手册,发现100Mhz和150MHz描述区别,最终发现如下:

而电源芯片TPS75005通过引脚设置,可以选择1.8V和1.9v.而我这次选择的是1.8V。至此,问题原因找到了,就在这里。

怪自己不够仔细,以前一直用的1.9V,所有没出现过这种问题。

总的来说,有问题还是要看数据手册。还有,我的解决办法不一定适应于其他人,但可供参考。

同样的程序,在另一块板子上执行,不会有问题。但在我新做的板子上执行时,总是会死在ADC_cal()处。如果屏蔽掉这条语句,一切正常。但是工程中需要做ADC转换。

应该是硬件有问题,想知道问题出在哪里?

启动引导已经固定上拉入下:

受不了,我找到问题。写了一大串思路,经过网页直接奔溃了。一句话,电源问题。仅供参考。

Seven Han:

回复 rym rym:

感谢您这么详细的讲述!

赞(0)
未经允许不得转载:TI中文支持网 » 求助,28335在程序执行到ADC_cal()函数时,会卡死。
分享到: 更多 (0)