您好专家、
我的客户正在使用自定义引导加载程序进行程序字段更新。 在这种情况下、不会再次运行引导 ROM 代码、因此不会校准 ADC (直接跳转到 cinit、然后跳转到 main fuion)。 您是否对我们应该调用什么函数来重新校准 ADC 有任何建议? 我们应该在哪里调用这些函数?
希望您能在此处提供一些详细信息。
谢谢
谢尔登
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好专家、
我的客户正在使用自定义引导加载程序进行程序字段更新。 在这种情况下、不会再次运行引导 ROM 代码、因此不会校准 ADC (直接跳转到 cinit、然后跳转到 main fuion)。 您是否对我们应该调用什么函数来重新校准 ADC 有任何建议? 我们应该在哪里调用这些函数?
希望您能在此处提供一些详细信息。
谢谢
谢尔登
您好、 Shantanu、
我们在 应用程序中确实调用了 initadc (),但当这部分代码加载到客户引导加载程序时,ADC 似乎没有校准。 当加载的代码通过对器件重新加电运行时、这将是很好的。 因此、我认为这应该是由 ROM 代码的差异引起的。
我想知道如何重新执行在引导 ROM 中完成的所有 ADC 校准工作?
调用 initADC 就足够了吗? 如果答案是肯定的、为什么通过代码启动或不通过代码启动运行应用程序会有所不同?
谢谢
谢尔登
您好、Sheldon、
通过停止 ADC 模块、您是否意味着将 ADC PWDNZ 位设置为0? 是的、最好在调用 driverlib 例程中的校准例程之前先关闭 ADC 电源。 此外、最好也像引导 ROM 调用的那样运行整个器件校准例程、因为它不仅是已填充的 ADC 调整值。 整个函数驻留在地址0x70282中、所以另一个选项是从这个位置执行器件校准函数。 为此、您可以将函数指针定义为:
#define Device_cal (void (*)(void)) 0x70282
然后将函数调用为:
(*Device_cal)();
这样做将确保相应地填充需要工厂测试期间派生的修整的外设。
希望这对您有所帮助。
此致、
Joseph