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.

[参考译文] MSPM0C1103-Q1:PWM 计时器(CCP0中的 TIMG8)在 ADC 读取 Vref 电压时不起作用(通道 n°12)

Guru**** 2390735 points
Other Parts Discussed in Thread: MSPM0C1103, LP-MSPM0C1104, SYSCONFIG, MSPM0C1104, MSPM0C1104-Q1, MSPM0C1103-Q1, SEGGER, UNIFLASH, MSPM0L1306, C-GANG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1491828/mspm0c1103-q1-pwm-timer-timg8-in-ccp0-doesn-t-work-when-the-vref-voltage-is-read-by-adc-channel-n-12

器件型号:MSPM0C1103-Q1
主题中讨论的其他器件:MSPM0C1104-Q1、、MSPM0C1103 、SysConfig、LP-MSPM0C1104、 SEGGERUNIFLASHMSPM0L1306、MSPM0C1104 C-GANG

工具与软件:

TI 嗨、大家好

使用 ADC (10位)时我遇到了一个非常奇怪的问题。  ADC 基准为 VDD (3.3V)。 我将通过 ADC 的引脚12读取 Vref 电压(来自 VREF 模块)。
读数正确,也就是说,我在 ADC 寄存器上读取一个相干值 cnt [785 cnt 约为2.5V ,因为2.5V=(3.3V/1024)*785]​。  同时、TIMG8 (CCP0)生成 PWM 信号。
由于我正在使用 ADC 读取多个通道(外部电压、uC 温度传感器)、因此当我转到读取通道12 (存在内部 Vref 电压的位置)时、PWM 计时器会停止工作。
只有当我尝试读取 ADC 的通道12时、才会发生这种情况。

通过分析代码、我发现阻止 PWM 计时器的是 MEMCTL 寄存器(ADC)上通道12的指令。 注释掉该指令即可使 PWM 计时器正常工作。 或者通过设置(ADC 的) MEMCTL 寄存器上的任何其他通道、PWM 计时器将正常工作。 非常奇怪!!!!

ADC 读取 Vref 是否存在任何已知问题? ​ 我看到、仅在最新规格版本(mspm0c1104-Q1)中添加了图8-1 (模拟连接)、其中清楚地报告了 ADC 可以读取的固定通道。

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

    您好、Michele!

    C1103总共最多有10个外部通道、1个用于温度检测的内部通道和1个用于电源监测器的内部通道。 您可以找到表8-7。 ADC0通道映射。 您无法使用通道12、因为 C1103上的通道12毫无意义、因此您无法在 MEMCTL 寄存器中设置通道12。  

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

    并添加了要点:  

    我对如何通过 ADC 的引脚12读取 VREF 电压感到困惑。 由于 VREF 仅用于生成内部基准、因此不会输出到外部、因此无法通过 ADC 外部通道读取其电压。 而 C1103没有用于 VREF 的内部通道。 如果您了解了 L1306、您将知道 L1306 ADC 具有用于 OPA OUT 的通道、而 OPA 可以通过 VREF 电压进行输入。 但 C1103也没有 OPA。 您能帮助说明如何通过 C1103上的 ADC 读取 VREF 电压吗?

    C1103的详细数据编号以及"ADC 的引脚12 "的含义

    此致、

    Janz Bai

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

    在随附的图(MSPM0C1103-Q1数据表- 2024年7月修订)中、您可以了解如何通过 ADC 读取 VREF 模块的输出。 需要使用 (ADC 的)通道12。 我尝试过它、它能正常工作。

    我昨天解决了我的问题。 我将 VREF 配置从2.5V 更改为1.4V。 这样、PWM 计时器不会停止。 我只需要读取 VREF 的值(以便了解 VDD 何时降压)。 我不在 ADC 中使用 VREF、因为我的应用使用了像 ADC 基准这样的 VDD。 ​ 但我的应用需要读取 VREF 值、以检查 VDD 何时下降(VDD (min)正常、直至 VDD >= VREF=1.62V、BUFCONFIG=1)。

    我认为、当您尝试读取 VREF (通过 ADC.12)并且 VREF 模块配置为具有2.5V 时、uC 中存在一些硬件问题。 没问题、时间
    VREF 模块配置为具有1.4V 电压。 这很奇怪。


    此致

    Michele

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

    您好、Michele!

    实际上、MSPM0C1103和 MSPM0C1103-Q1的设计是相同的、Q1版本只需要通过更多认证。 您使用的数据表版本(2024年7月)似乎是旧版本。 如果您在 TI.com 上搜索"MSPM0C1103"、则会发现最新的数据表版本(修订版 C、2025年2月)。 在这个最新的数据表中、您会发现 ADC 的通道12无法使用。  

    如果您看到 MSPM0C1103或 C1104的 SysConfig、则会发现也无法选择通道。  

    但我会与系统团队确认这一点、在收到我们团队的回复后、我会给您回复更新的信息。

    此致、  

    Janz Bai

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

    您好、Michele!  

    我在我这边尝试过一些使用 LP-MSPM0C1104的测试。 从结果来看、使用通道12似乎可以读取 VREF 1.4V 或2.5V 的电压值。 但我并没有发现即使我将通道12和 VREF 配置为2.5V、PWM 也会受到影响。 我使用 TIMG8和计时器通道0。 您可以参考我在这里分享的项目、与您的代码进行比较、并做一些进一步的测试。  

     e2e.ti.com/.../adc12_5F00_single_5F00_conversion_5F00_LP_5F00_MSPM0C1104_5F00_nortos_5F00_ticlang.zip

    如果您只想监控 VDD 值、我想您可以尝试直接参考 SDK 中的演示、您可以尝试参考本演示来监控 VDD 值: adc12_monitor_supply

    最后、我会与我们的系统团队联系、以确认 ADC 的通道12是否可用于 MSPM0C1103/4。 请等待我的更新信息、

    此致、

    Janz Bai

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

    在我的工程中、我将使用此 p/n:M0C1103QDDFRQ1  

    此 p/n 有数据表版本(MSPM0C1103-Q12024年7月修订)、允许使用通道 ADC.12读取 VREF。
    我们非常重要的是、要了解此功能是否会在未来得到维护、是否不会像 MSPM0C1103标准版本那样被删除(请参阅数据表 MSPM0C1,103,2025年2月修订)。 ​ 我们的软件已完成、我们将很快投入生产、生产数百万个零件。  
    如果要从 M0C1103QDDFRQ1中删除 VREF 读数、我需要尽快知道​ 以便  ​立即修复我的软件。
    否则、我可能具有不可预测的行为。

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

    您好、Michele!

    获取、我已就此问题与我们的模拟团队联系。 我得到他们的答复后,我会尽快回复你。 感谢您提供有关业务背景的信息。

    此致、

    Janz Bai

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

    您好、Michele!

    我这边的测试结果中的引用、正如我之前的回复中提到的。 通道12可正常使用来读取 VREF 电压。 我会联系我们的模拟团队和系统团队。 他们已开始检查 Q1数据表中为何提及通道12、并在工业数据表中删除了通道12、然后确认是否可以精确使用通道12。  

    此致、

    Janz Bai

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

    您好、Michele!

    现在、我们的模拟设计团队已确认通道12由设计级别提供支持。 我们的系统团队和软件团队 正在确认 SysConfig 中未包含该参数的原因以及在最新工业版本数据表中删除该参数的原因。 我想他们很快就会得出结果。 我得到回复后、我很快就会在这里给您回复。 很抱歉迟到了响应。

    此致、

    Janz Bai

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

    您好、Janz Bai  

    你很好。 非常感谢。

    我还有一个问题要问您。 我的软件已经结束(除了对 VREF 读数的澄清)、我想下载它、以防有人通过调试器将其上拉、但我希望能够擦除整个芯片、以便在生产车间对我的板进行重新编程(例如、修复已编程的 PCBA 上的软件错误)。 有可能吗? 我阅读了有关如何配置 NONMAIN 存储器的用户手册(请参阅图"01_Immagine")。

    我认为案例1的安全级别1最符合我的需求。

    但我在 LP-MSPM0C1104尝试时发现:

    • 使用密码启用应用程序调试访问 在我的 uC (M0C1103QDDFRQ1)中无法实现;该标志可启用或禁用(请参阅图"07_AppDebug")。 如果禁止启用密码、我认为案例1是无用的(因为它使 SWD 串行处于打开状态)。
    • 带密码的恢复出厂设置 在我的 uC (M0C1103QDDFRQ1)中是不可能的;它可以启用或禁用(请参阅图"09_FactoryReset")
    • 无法在 uC (M0C1103QDDFRQ1)中进行 TI 故障分析–请参阅图"08_TI_FA";
    • 批量擦除始终禁用(请参见图"10_MassErase")。

     

    如果禁用了使用密码的可能性、则案例1是无用的、并且由于无法在我的 uC 中进行 TI 失效分析、因此禁止案例2。 从表1-5中、我只能选择案例3。 我是对吗?

    我的问题是:

    1. 如果我选择案例3 (安全级别1)、如何通过 SEGGER J-LINK 或生产工厂中的其他闪存编程器进行恢复出厂设置? 在 TI 网站端、我读取出厂复位只能由 XDS110执行。 我可以在生产现场使用 XDS110吗?
    2. 为什么无法选择批量擦除选项? 可能是因为有恢复出厂设置?

     

    您可以找到包含上述数字的*。zip 文件

    感谢您的支持。

    Michele

    e2e.ti.com/.../Figures.zip

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

    您好、Michele!

    1.很抱歉、TRM 中的表和描述让您感到困惑。 您看到的表1-5显示了 TI 可为客户提供的不同级别。 所有 TI M0 MCU 芯片都指三种级别、但 C1103/4提供了较少的自由来配置应用调试、批量擦除、恢复出厂设置和 TI FA。  我将在下面为您解释它们。 请参阅 C 系列寄存器的说明作为参考。

    • 您可以只将调试访问配置为启用或禁用  

    • 只需将恢复出厂设置配置为启用或禁用即可

    抱歉、位0-15的描述应该是出厂复位模式配置、而不是"NONMAIN"的静态写保护配置"

    • C1103/4不支持 TI FA、因为它没有相关的寄存器。 如果您看到 L 系列 TRM、则会发现 L 具有有关 TI FA 的相关寄存器。

     

    • C1103/4不支持从 DSSM 进行批量擦除。 请注意、此处的批量擦除仅是通过 DSSM 进行批量擦除。  而 C1103/4没有相关寄存器。 (因为在将代码下载到 M0之前、MCU 必须首先进行整体擦除、因此必须支持在将数据写入闪存之前进行整体擦除)

    • 总之、案例3与您的情况不符、因为恢复出厂设置也可以设置密码。
    • 如果要通过 CCS 或 Uniflash 恢复出厂设置、可以直接使用 XDS110。 是的、如果需要、您可以在量产线上使用 XDS110进行恢复出厂设置。 如果要使用 J-link 进行恢复出厂设置、则不能在 CCS 或 Uniflash 上执行。 实际上、我们有一个基于 J-Flash 生成的脚本。 可以使用此脚本通过 J-Link 恢复出厂设置。 请记住将"MSPM0L1306"相关参数修改为"MSPM0C1103"或"MSPM0C1104"。

    e2e.ti.com/.../4617.Factoryreset_5F00_Jlink.zip

    • 如果您必须为 SWD 使用密码、您可以参考由我的同事设计的此应用手册。 本应用手册将告诉您如何通过 CCS 在 C1103/4上实现 SWD 密码(请记住、必须通过 CCS 实现该密码)

    e2e.ti.com/.../SLAAEQ5_3D00_1_3D00_TI-PDF_3D00_en_2D00_us-_2800_1_2900_.pdf

    • 事实上、TI 已发布新的大规模量产烧录工具、称为 C-GANG。 在进行大规模生产的同时、C-GANG 可以将.bin/.txt/.hex 代码文件下载到6个芯片中。 使用 C-GANG、可以通过按下绿色按钮来执行恢复出厂设置(只需在 C-GANG GUI 中配置一些设置)。 如果您感兴趣、可以在 TI.com 上订购、并向您发送使用指南。
    • SysConfig 中无法选择批量擦除、因为 C1103/4上禁用了通过 DSSM 进行批量擦除。 您会发现无法在 SysConfig 上选择它。

    此致、

    Janz Bai

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

    并添加了一个点。

    确认后、C1103/4上的 ADC 通道12可以正常使用。 关于为什么数据表将其删除、我们的系统团队同事认为在生成数据表时可能使用了不同的版本图。 关于 SysConfig 中的相关配置选项、我们已要求我们的软件团队同事检查并修改。

    希望这些响应对您有所帮助。

    因为我明天有 DDL 要做,所以也许明天我没有时间回复你,如果你有更多的问题,请理解。

    此致、祝您愉快!

    Janz Bai

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

    如果您还有其他问题、您可以尝试重新创建一个新帖子、然后我们的其他同事(例如我们的美国)也可以看到它。 然后他们可以回复你,如果我没有太多的时间来回复你在未来一两天,  

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

    您好、Janz Bai

    我明白如何继续。  

    我试过它、它在工作。
    非常感谢。

    Michele

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

    欢迎您、Michele。