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.

[参考译文] TMS320F2808:ADC_Calibration 汇编文件

Guru**** 2546940 points
Other Parts Discussed in Thread: TMS320F2808

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1563338/tms320f2808-adc_calibration-assembly-file

器件型号:TMS320F2808


工具/软件:

嘿支持团队

我当时正在搜索 TMS320F2808 MCU 的 ADC_CALIBRATION、但可以看到此部分已从数据表中删除。  
我在其他器件(如 TMS320F2833x)中搜索更多器件、并发现有 ADC 校准。

简言之、ADC_cal () 在 ADC_ClkEnable 之前调用、有一个汇编文件称为>> DSP2833x_ADC_cal.asm

它包含:

.def _adc_cal
.asg“0x711C",“,ADCREFSEL_LOC、ADCREFSEL_LOC

----------------------------------------------------------------
;_adc_cal
----------------------------------------------------------------
----------------------------------------------------------------
;这是 ADC cal 例程。此例程被编程到中
;出厂时保留的内存。 0xAAAA 和 0xBBBB 是放置位置
;用于校准数据的支架。
;由 TI 编程的实际值特定于设备。
;
;此函数假定时钟已经存在
;已启用 ADC 模块。
----------------------------------------------------------------

.sect “.adc_cal"</s>“

adc_cal
MOVW DP、#ADCREFSEL_LOC >> 6
MOV @28、#0xAAAA;实际值不能为 0xAAAA
MOV @29、#0xBBBB;实际值可能不是 0xBBBB
LRETR

----------------------------
我不知道地址 #0xAAAA 和 #0xBBBB 是占位符、我们应该使用存储在器件 OTP 中的 ADC_Cal 值来更改它们。

问题是我找不到存储在 ADC 校准值内的这些地址来替换为占位符 0xAAAA、#0xBBBB。

——
我的问题是:

1- OTP 地址中是否存储了任何 ADC_Calibration 值?
2 — 如果是,如何知道存储 ADC_CALIBRATION 值的 OTP 地址?

谢谢、  
Abdelrahman

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Abdelrahman、

    1- OTP 地址中是否存储了任何 ADC_Calibration 值?
    2 — 如果是,如何知道存储 ADC_CALIBRATION 值的 OTP 地址?

    下面提供了更多详细信息、但简短答案是 F280x 器件的 OTP 地址中没有 ADC 校准。

    F2808 器件在 F28335 器件之前发布、虽然它能够在内部(通过 OFFTRIM 寄存器)校正偏移、但它缺少 F28335 器件上出厂时 OTP 中的 ADC_cal () 功能。

    这是应用手册、详细介绍了如何自行校准 F2808、 https://www.ti.com/lit/an/spraad8a/spraad8a.pdf 这必须由用户的应用程序代码完成、而 F28335 上的内置校准。

    此致、
    Matthew

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Matthew、
    感谢您的简短回答。 您能告诉我如何获取 F28335 OTP 中存在的 ADC_CALIBRATION 值吗?  

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Abdelrahman、

    为了澄清一下、您使用的是 F2808 器件还是 F28335 器件?  F28335 中的值对于每个器件都是唯一的、并在我们的工厂测试中测量 ADC 增益/偏移来确定。  一个 F28335 中的值对于另一个 F28335 而言不相同;并且对于 F2808 无效。

    关于在 F28335 上运行该代码、由于函数位于 OTP 中、因此 C 源代码在这些字段中具有什么无关紧要;CCS 工具不会加载该段、并且 OTP 中的修整值将替换您看到的 0xAAA/0xBBBB。

    我认为这在 OTP 中是安全的;也就是说、必须解锁器件才能查看值/代码。

    此致、

    Matthew

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Matthew、

    我有 2 个 MCU 、并同时处理这两个。

    您是说我使用 0xAAAA 和 0xBBBB、器件会将它们自身替换为 OTP 中的值吗?

    此致、
    Abdelrahman

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是否有任何更新?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是指我使用 0xAAAA 和 0xBBBB、器件是否会将它们自身替换为 OTP 中的值?
    [/报价]

    是的、对于 F28355、情况就是如此。  由于代码在我们的生产测试期间嵌入在 OTP 中、因此它可以正常工作;无需更新 C 源代码。

    此致、

    Matthew

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢你马修