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.

[参考译文] AM3352:在与 TMS320F28335 进行 SPI 通信期间、AM3352 偶尔会发生 SPI 通信中断、数据失准或数据异常

Guru**** 2535750 points
Other Parts Discussed in Thread: TMS320F28335, AM3352

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1552800/am3352-during-spi-communication-with-tms320f28335-am3352-experiences-occasional-spi-communication-interruptions-data-misalignment-or-data-anomalies

器件型号:AM3352
主题中讨论的其他器件:TMS320F28335

工具/软件:

尊敬的、先生

我是中国南京康尼电子有限公司的工程师。我们发现在使用 AM3352 和 TMS320F28335 进行 SPI 通信时存在以下问题。

控制板 DSP TMS320F28335 和通信板 AM3352 通过 SPI 电缆插头连接、 ARM 作为主器件、DSP 作为从器件。
在使用工程期间、可能会偶尔会在通电情况下发生 SPI 无法通信、SPI 刷写通信故障或持续存在的通信问题。

  AM3352 的 Linux u-boot 是 u-boot-2013.01.01-psp06.00.00.00。

1.为什么在具有相同 SPI 极性/相位配置的 ARM 和 DSP 芯片手册中,数据发送和接收的时钟时序是不同的?
2.当前配置如下,请检查是否正确? 什么是标准配置?

当前配置的 SPI 波形如下。 请检查是否有异常情况? 标准波形是什么?

谢谢!

周  

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

    周先生、  

    您能给我指一下 ARM 的手册、在这里您可以看到 SPI 极性/相位为 0/0?

    我在我们的某个 AM335x 电路板 DTS 中进行了快速检查、在我看来、它们是按照您针对 DSP 所指出的那样进行配置的

    从引脚多路复用我看到:

    https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm/boot/dts/am335x-icev2.dts?h=09.03.05#n184

    	spi0_pins_default: spi0_pins_default {
    		pinctrl-single,pins = <
    			AM33XX_PADCONF(AM335X_PIN_SPI0_SCLK, PIN_INPUT_PULLUP, MUX_MODE0)
    			AM33XX_PADCONF(AM335X_PIN_SPI0_D0, PIN_INPUT_PULLUP, MUX_MODE0)
    			AM33XX_PADCONF(AM335X_PIN_SPI0_D1, PIN_INPUT_PULLUP, MUX_MODE0)
    			AM33XX_PADCONF(AM335X_PIN_SPI0_CS0, PIN_INPUT_PULLUP, MUX_MODE0)
    			AM33XX_PADCONF(AM335X_PIN_SPI0_CS1, PIN_INPUT_PULLUP, MUX_MODE0)
    			AM33XX_PADCONF(AM335X_PIN_MCASP0_ACLKR, PIN_INPUT_PULLUP, MUX_MODE7) /* (B12) mcasp0_aclkr.gpio3[18] */
    		>;
    	};

    D0 (MISO — 主器件输入,从器件输出数据线)作为 PIN_INPUT_PULLUP
    D1(MOSI 主器件输出,从器件输入数据线)作为 PIN_INPUT_PULLUP

    在 SPI 配置中、我们可实现:

    https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm/boot/dts/am335x-icev2.dts?h=09.03.05#n305 

    &spi0 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&spi0_pins_default>;
    
    	sn65hvs882@1 {
    		compatible = "pisosr-gpio";
    		gpio-controller;
    		#gpio-cells = <2>;
    
    		load-gpios = <&gpio3 18 GPIO_ACTIVE_LOW>;
    
    		reg = <1>;
    		spi-max-frequency = <1000000>;
    		spi-cpol;
    	};
    
    	spi_nor: flash@0 {
    		#address-cells = <1>;
    		#size-cells = <1>;
    		compatible = "winbond,w25q64", "jedec,spi-nor";
    		spi-max-frequency = <80000000>;
    		m25p,fast-read;
    		reg = <0>;
    
    		partition@0 {
    			label = "u-boot-spl";
    			reg = <0x0 0x80000>;
    			read-only;
    		};
    
    		partition@1 {
    			label = "u-boot";
    			reg = <0x80000 0x100000>;
    			read-only;
    		};
    
    		partition@2 {
    			label = "u-boot-env";
    			reg = <0x180000 0x20000>;
    			read-only;
    		};
    
    		partition@3 {
    			label = "misc";
    			reg = <0x1A0000 0x660000>;
    		};
    	};
    
    };

    即 SPI 模式 2  (CPOL=1、CPHA=0)、与 DSP 极性/相位配置相同

    问题:

    -问题仅在加电期间出现?

    “你在担心我吗?“ 如果可能、请降低速度并查看问题是否仍然存在

    谢谢您、

    Paula

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

    尊敬的 TI 专家:

    我们目前正在调试 ARM (AM335x) 和 DSP (TMS320F28335) 之间的 SPI 通信问题。 我们注意到、虽然两个平台具有相同的物理 SPI 模式(例如,两者都设置为 CPOL=1、CPHA=0)、但 ARM 和 DSP 文档之间的数字定义和生成的时序图似乎不同。

    1.参考资料
    •在 ARM 侧 (AM335x)、SPI 模式 2 定义为 CPOL=1、CPHA=0。
    •在 DSP 侧 (TMS320F28335)、SPI 寄存器位和时序图在解释 CPOL/CPHA 时似乎略有不同。

    (有关文档示例,请参阅下面随附的屏幕截图。)

    2.我们的困惑

    即使我们将两个器件设置为“相同“SPI 模式(例如,CPOL=1、CPHA=0)、我们有时也会观察到数据不一致或时序问题。 在相同 CPOL/CPHA 设置下、ARM 和 DSP 手册中的时序图在时钟/数据关系方面也有所不同。

    -为什么 CPOL/CPHA 的数字定义在不同的 TI 芯片中不完全一致?
    -我们应该如何可靠地匹配 AM335x 和 TMS320F28335 之间的 SPI 模式?
    -为了避免此类混淆、TI 是否有针对跨平台 SPI 配置的官方建议?

    3.屏幕截图/参考

       

    4、其他信息
    •双方都以 1.5MHz SPI 运行、主器件为 ARM、从器件为 DSP。
    •数据格式:8 位。
    •我们会观察到数据失准或通信中断、尤其是在加电后。

    任何建议或说明都将非常感谢!

    谢谢!

    周  

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

    尊敬的 TI 专家:

    我们正在开发 AM3352(ARM、作为 SPI 主器件)和 TMS320F28335(DSP、作为 SPI 从器件)之间的 SPI 通信链路。
    所有 SPI 信号线路上拉和下拉设置仅使用每个芯片的内部配置;电路板上没有外部电阻器。

    1.当前配置

    • SPI 主器件:AM3352、从器件:F28335
    •典型 SPI 速度:1.5MHz
    •所有上拉/下拉:仅限内部(无外部电阻)

    2.问题
    •对于 ARM 主器件到 DSP 从器件的连接、这种上拉/下拉配置是否正确且稳健?
    •TI 是否有针对此场景的 SPI 上拉/下拉电阻设置的官方或推荐最佳实践?
    •不正确的内部上拉/下拉设置是否会导致数据错位或通信问题、尤其是在上电时?
    •是否应该以不同的方式配置任何线路(例如未使用的引脚)?

    3.问题
    •在此设置中、我们偶尔会看到数据错位或通电后通信中断。
    •我们需要确保两侧的上拉/下拉设置均正确。

    如有任何官方指导或参考原理图、将不胜感激。

    感谢您的支持!

    此致、

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

    您好、Zhou、我联系的是更熟悉 TMS320F28335 的其他专家。 请允许我们在几天内回复您

    谢谢您、

    Paula

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

    嗨、Zhou、我得到了一位同事的澄清:我们不能假设 AM335x 中的模式 2 与 TMS320F28335 的模式 2 相同。
    最好的方法是查看时序图形。 请查看下表、并确保两个器件配置为相同的 SPI 工作模式、以确保稳定通信。

    SPI 运行模式

    AM335x

    F2833x

    SPICLK 高电平有效、在上升沿进行采样

    POL=0

    PHA=0

    CLKPOLARITY = 0

    CLK_PHASE = 1

    SPICLK 高电平有效、在下降沿进行采样

    POL=0

    PHA=1

    CLKPOLARITY = 0

    CLK_PHASE = 0

    SPICLK 低电平有效、在下降沿进行采样

    POL=1

    PHA=0

    CLKPOLARITY = 1

    CLK_PHASE = 1

    SPICLK 低电平有效、在上升沿进行采样

    POL=1

    PHA=1

    CLKPOLARITY = 1

    CLK_PHASE = 0

    AM335x SitaraTm 处理器数据表(修订版 L)

    谢谢您、

    Paula

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

    您好、Paula、

    根据您的建议、我们重新测试并按以下方式进行了重组:

     F28335/1/0 或 0/1 配置下的波形如下图所示。

    我的问题是:

    1) 根据 SPI 时钟和相位配置、为什么 1/0 配置中的 F28335 波形与 0/1 配置中的波形完全匹配?

    2) 在什么情况下 F28335 1/0 配置工作异常?

    期待您的答复。

    谢谢!

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

    您好、周

    保拉在本周的剩余时间里不在办公室。 如果您在下周初没有收到回复、请 ping 通该主题。

    此致、

    Nick

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

    您好、Paula、

    如果您已恢复工作、请花一些时间查看此问题。  。

    非常感谢。

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

    Zhou、请让我从 C2000 专家 那里了解一下您的 F28335 问题。

    另一方面、可以确认以下组合是否正常工作? 在您的上一封邮件中、它显示它仍在进行评估、因此我想知道当前状态

    SPI 运行模式

    AM335x

    F2833x

    SPICLK 高电平有效、在上升沿进行采样

    POL=0

    PHA=0

    CLKPOLARITY = 0

    CLK_PHASE = 1

    谢谢您、

    Paula

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

    您好、Paula、

    当 AM335X 的时钟极性和相位设置为 0/0 并且 DSP 设置为 0/1 时、实验室测试期间没有问题。 该软件将于明天在列车上进行更新和验证。

    谢谢!