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.

[参考译文] MSPM0L1306:修改 CTL0 SPI 寄存器值

Guru**** 2390735 points
Other Parts Discussed in Thread: TRF7960A, MSPM0L1306, SYSCONFIG
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1501491/mspm0l1306-modify-ctl0-spi-register-value

器件型号:MSPM0L1306
主题中讨论的其他器件:TRF7960ASysConfig

工具/软件:

大家好、我将为控制 TRF7960A RFID 读取器的 MSPM0L1306制作固件。 根据 TRF7960A 数据表、当您通过 SPI 向读取器发送指令时、必须对相位1完成(在第二个时钟边沿捕获数据)、但在读取时、必须对相位0完成(在第一个时钟边沿)。 如果我错了、请纠正我。

我已经分析了 MSP430 MCU 的示例代码、在 SPI 读取函数中、您可以用一个简单的指令(UCB0CTL0 &=~UCCKPH;和  UCB0CTL0 |= UCCKPH;)了解相位的变化情况。

如何使用 MSPM0L1306实现该功能? 是否有任何适用于带有 MSPM0 MCU 的 TRF7960A 的示例代码?  

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

    您好 Alex、
    您应该能够在 SysConfig 中的"Basic Configuration"部分下修改该相位。

    此致、

    Diego Abad

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

    大家好、感谢您的回答、我使用 SysConfig 在第1阶段配置它、但我需要在程序过程中将其更改为第0阶段、然后再更改回来。  

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

    您好 Alex、
    为此、您可以更改 CTL0寄存器的 SPH 位、或者创建一个新的 DL_SPI_Config 对象、将已更改的.frameFormat 设置为所需相位(DL_SPI_FRAME_FORMAT_MOTO4_POL0_PHA0 为第一位、DL_SPI_FRAME_FORMAT_MOTO4_POL0_PHA1为第二位)、并在 DL_SPI_INIT 函数中使用。 您可以在工程 Debug 文件夹内的 ti_msp_dl_config.c 文件中找到 SysConfig 如何通过 Driverlib 设置它。

    此致、

    Diego Abad

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

    您好 Diego、非常感谢您的回答、我会这么做并告诉您。

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

    需要注意的一些事项:

    1) CTL0:SPH 的定义与 UCCKPH 相反(因此使用相反)

    2)如果您使用内置芯片选择、SPH 会对 CS 产生"连续背靠背"操作的影响[Ref TRM (SLAU847D)第 20.2.3.1]节。 如果您将 GPIO 用于 CS、则不会影响您。

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

    你好,谢谢你的提示。 我发现要更改 SPH 值、我必须先禁用 SPI、因为当我在未禁用的情况下更改其值时没有发生任何情况。 是否有办法可以在不先禁用 SPI 的情况下更改它?

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

    您好 Alex、
    您是对的。 每次更改模块内的配置值时、您都需要先将其禁用、然后再次启用它。

    此致、

    Diego Abad

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

    您好、Diego。 如果我使用内部下拉电阻器配置用作 MISO 和 MOSI 的引脚、则在禁用 SPI 时这些引脚保持低电平? 实际上、CCS 是否会让我在 SPI 函数之外配置它们?   

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

    也许您必须围绕设置禁用/启用。 几个月前,我注意到,改变 FRF 要求这一点(虽然这似乎比改变 SPH 更剧烈)。 昨天我翻过 TRM、我找到的最有力的陈述是[TRM 第20.2.5节第(1)步"确保..."]。 但也许这是真的。

    您可能会发现禁用/启用是良性的;当外设被禁用时、IOMUX 将使引脚信号保持稳定[Ref TRM 第9.2.1]。

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

    内部上拉/下拉电阻由 IOMUX 管理、与外设无关。 是的、他们会保持专注。 [参考 TRM 第9.2.5节]

    [编辑:添加参考]

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

    您好 Bruce、非常感谢!

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

    您好 Alex、
    我很高兴 Bruce 的评论对您有帮助。 如果您需要进一步的帮助、 可以在此处提问。 但是、如果问题与原来的问题密切相关、我建议创建一个新的 E2E 主题。  
    此致、
    Diego Abad

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

    谢谢 Diego、如果有需要、我会这样做的。