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.

[参考译文] AM263P4-Q1:AM263P4-Q1

Guru**** 2555630 points
Other Parts Discussed in Thread: AM2634, AM263P4-Q1, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1527905/am263p4-q1-am263p4-q1

器件型号:AM263P4-Q1
主题中讨论的其他部分:AM2634Sysconfig

工具/软件:

我尝试运行 SDK v10.02.15 中提供的 MCSPI 环回示例、该示例使用 SPI0。 我已初始化大小为 128 的 TX 缓冲区、所有值均设置为0x01。 但是、我没有在输出引脚上观察到预期行为。

我检查了引脚上的电压 J6.55 (LaunchPad 上的 SPI0 D0) 并读取 0.45V  、这不是预期的、因为 TX 缓冲区包含所有 1。

示例代码不包括 IO 扩展器配置、用于通过板载多路复用器 (U51) 路由 SPI0 信号。 为了解决此问题、我使用系统配置进行了配置、在 IO 扩展器中设置这些值并启用了 I2C1。

  • MUX_EN_GPIO58_INV = LOW

  • AM263_BP_MUX_SEL_GPIO63 = LOW

采用此配置后、测量的电压为:

  • AM263_SPI0_CLK = 0.722V  

  • AM263_SPI0_CS0 = 3.27V (意外–传输期间应处于低电平)

  • J6.55 (SPI0 D0) =0.45 V(意外–对于数据=,应为高电平) 0x01

使用示例代码似乎没有正确传输数据。

如何解决此问题? 初始化或引脚路由中是否缺少任何内容? 附加了系统配置和代码的图片。

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

    嗨、Rapeti、

    您能解释一下所使用的 EVM 吗? 主题标题显示为 AM263P4-Q1、但帖子中的引用适用于 AM2634 LaunchPad。 您要查询的 EVM 的可订购器件型号是什么?

    此致、

    Brennan

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

    感谢您的回复 Brennan、

    我正在使用 AM263P4ACOMFZCZR。

    我检查了引脚上的电压 J6.55 (LaunchPad 上的 SPI0 D0) 并读取 0.45V  、这不是预期的、因为 TX 缓冲区包含所有 1。

    在 LaunchPad 原理图 SPI0 DO 引脚中称为 J2.15、在用户指南中将其称为 J6.55 引脚、即 SPI0 D0。

    我在两个引脚上测量了电压电平、得到了以下值:

    J2.15 = 0.7V

    J6.55 = 0.45v。  

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

    Rapeti、

    SPI0_D0 位于引脚 J2-15 上。 SPI1_D0  J6-55 上。 与用户指南相比、原理图应始终视为正确。 请  提交文档反馈  通过单击用户指南任何页面脚注中的此链接:

    SPI0_D0 和 SPI0_D1 不会进行任何多路复用、但您需要设置其他多路复用器、以便将完整的 SPI0 接口路由至 BoosterPack 接头。

    • SPI0_CS0:J2-18、通过多路复用器 U51 进行路由
    • SPI0_CLK:J1-7、通过多路复用器 U51 进行路由  
      • SEL:AM263P_BP_MUX_SEL =低电平
      • OEN:PRU/BP_MUX_EN_INV =低电平

    请确保在 IO 扩展器中正确设置这些多路复用器配置信号、并探测芯片选择/时钟引脚。

    此致、

    Brennan

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

    感谢您的回复 Brennan、

    PRU/BP_MUX_EN_INV 默认为低电平、AM263P_BP_MUX_SEL 默认为低电平。 为了使 U51 多路复用器能够路由 SPI 信号、选择和使能信号应该为低电平。 因此会路由 SPI 信号。
    数据是在 J2.15 引脚上捕获的、其中显示了电压电平。 但现在我要使用 SPI1 D1 引脚接收信号。 使用系统配置启用 SPI1 并为 RX 启用该功能。 附加了图片。 将 SPI0 时钟引脚连接至 SPI1 时钟引脚、将 SPI0 D0 引脚连接至 SPI1 D1、将 SPI0 CS0 引脚连接至 SPI CS0、但 SPI1 的 RX0 缓冲器中未接收到数据。

    这些是代码快照。 已启用 RX0 缓冲区已满中断以接收数据。

    这些是 MCSPI0 和 MCSPI1 的配置

     初始化中是否缺少任何内容。 如何解决此问题。

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

    Rapeti、  

    将代码粘贴到块中会很有帮助 — 比屏幕图像更容易阅读Slight smile

    硬件/SysConfig 看起来是正确的。 我将邀请软件专家查看您的代码。

    此致、

    Brennan

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

    实际上、我们没有访问外部网的权限。 这就是我拍摄屏幕图像的原因。

    硬件/SysConfig 看起来正确。 我正邀请一位软件专家来查看您的代码。

    感谢您的回复和软件专家的参与。 如果能尽快进行检讨、我是很感激的。

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

    Rapeti、

    对于 McSPI0、由于它在仅 TX 模式下运行、D0 为 TX 引脚、因此我们应在 SYSCFG 中将“Input Select“配置为 D1。 对于 McSPI1、由于它处于仅 RX 模式并将 D1 作为 RX 引脚、因此我们应将“D1 TX Enable“配置为“TX 已禁用“。 应首先针对 McSPI1 调用 McSPI_Transfer API、因为它是接收器、然后针对 McSPI1 调用此 API。 此外、两个实例都应处于回调模式、否则接收 API 将卡住、因为不会调用发送 API。

    此致、

    Ashwin

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

    感谢您的回复 Ashwin、

    我做了这些更改。 现在、在 SPI1 D0 引脚上接收随机数据。 这些是代码和 SysConfig 中所做更改的快照。

    Tx 和 Rx 数据打印在 console.attached pic 中(包含在回调函数中)

    有什么遗漏的吗?  

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

    能否将打印件移动到应用程序? 我们不应通过回调打印、因为它们是从 ISR 上下文调用的。 此外,您可以在调用传输 API 之前将 txDone1 设置为 0 吗?

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

    尊敬的 Ashwin:

    按照建议进行了更改。 但仍接收到随机数据。

    此致

    Sravanthi R.

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

    在 140 和 144 行中、正在读取和打印一些内存地址。 该内存地址是什么?

    正在从 gMcSPITXBuf 到 gMcSPIRXBuF1 进行传输。 这两个应该打印出来吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在第 140 和 144 行中、正在读取和打印一些存储器地址。 此内存地址是什么?

    这些是 MCSPI0 的 TX0 和 MCSPI1 的 RX0 的存储器地址。 我正在尝试打印、实际值正在加载到 MCSPI0 的 TX0 寄存器和 MCSPI1 的 RX0 寄存器中。

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

    一旦 ISR 准备就绪、寄存器值就会被清空。  是否可以将  gMcSPITXBuf 中的值打印到 gMcSPIRXBuF1?

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

    HII Ashwin

    1. 这些是加载到 gMcSPIRXBuF1 和 gMcSPITXBuf 中的值。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    HII Ashwin

    这些是加载到 gMcSPIRXBuF1 中的值

    e2e.ti.com/.../vid_2D00_20250626_2D00_174119141_5F00_zcXhwHrN.mp4

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

    应用程序代码和 SYSCFG 看起来不错。 您是否可以共享外部连接详细信息?

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

    我将 J1.7(SPI0 时钟)连接到 J5.47(SPI1 时钟)、J2.18 (SPI0 CS0) 连接到 j6.58 (SPI1 CS0)、J2.15 (SPI0 D0) 连接到 J6.54 (SPI1 D1)。

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

    只是提醒您上述查询。

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

    我做了一些更改(附加了配置的映像)、现在我正在接收数据。 但是、当我尝试传输 16 字节的数据(即一个由 16 个元素组成的数组)时、我只接收前两个数据元素。 附加了缓冲区中接收的数据的图像

    .e2e.ti.com/.../IMG_2D00_20250708_2D00_WA0061-_2800_8-files-merged_2900_.pdf 

    令人遗憾

    Sravanthi R.

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

    尊敬的团队:

    感谢您的支持!  

    我们能否将示例代码分享给 Sravanthi 进行测试? 如果它在我们这边有用、我们可以共享相同的 SysConfig 和代码片段。

    此致、

    Mk

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

    您好、

    在 TX 配置中、数据大小设置为 8(位)、计数设置为 2。 这意味着只会传输 2 个字节。 如果需要传输 16 个字节、请将计数增加到 16。

    此致、
    Ashwin