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.

[参考译文] TCAN4550EVM:Linux 器件树下的设置问题

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1357934/tcan4550evm-setup-issue-under-linux-device-tree

器件型号:TCAN4550EVM
主题中讨论的其他器件:TCAN4550

您好!  
我们计划在嵌入式 Linux 6.1 SDK 中的 SPI 下设置 tcan4550

我们需要查看 SPI 线路在引导时发送时钟-但无法使 Tcan 正常工作

现在、我们使用 tcan4550evm 板-将 SPI 连接到 SPI
并将 PIN16连接到 VBAT、以便为器件

这是我们正在使用的设备树:

SPI1:SPI@fc000000{ //使用 PA16在 SPI1上进行加电
pinctrl-names ="默认";
pinctrl-0 =<&pinctrL_SPI1_default>
Clocks =&&PMC PMC_TYPE_PERIOD 34>;
时钟名称="spi_clk";
状态="可以";

// spidev@0{
// compatible ="spidev";
// reg =<0>;
// SPI-max-frequency =<100000>;
// #address-sells =<1>;
// #size-cells =<1>;

 
//};

tcan:can@0 {
// Device_Tree: https://docs.zephyrproject.org/latest/build/dts/api/bindings/can/ti,tcan4x5x.html
//驱动程序:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/can/m_can
//示例:   https://stackoverflow.com/questions/41828308/reading-writing-spi-devices
兼容="ti、tcan4x5x";
寄存器=<0>;
#address-Cells =<1>;
#size-cells =<1>;
SPI-max-frequency =<1000000>;
// Clocks =<&main_xtal>;
时钟频率=<20000000>;
Clocks =&&PMC PMC_TYPE_PERIOD 34>;
时钟名称="spi_clk";
// clock-names ="spi_clk";

// device-state-gpio =<&pioA PIN_PA16 GPIO_ACTIVE_HIGH>;
// DEVICE-WAKE-GPIO =<&GPIO0 1 GPIO_ACTIVE_HIGH>;
// RESET-GPIO =<&GPIO0 2 GPIO_ACTIVE_HIGH>;
INT-GPIO =<&pioA PIN_PC5 GPIO_ACTIVE_HIGH>;
// Bosch、MRAM-cfg =<0x0 15 5 5 0 10 10>;
Bosch、MRAM-cfg =<0x0 0 0 16 0 1 1>;
总线速度=<25000>;
bus-speed-data =<1000000>;
状态="已禁用";

// CAN 收发器{
// 最大比特率=<8000000>;
//};
 };

};


在演示中、我们得到:
dmesg | grep SPI
Atmel_SPI fc000000.spi:使用 dma0chan0 (tx)和 dma0chan1 (Rx)进行 DMA 传输
Atmel_SPI fc000000.SPI:使用 FIFO (16个数据)
Atmel_SPI fc000000.spi:注册的主器件 spi3
SPI spi3.0:设置:BPW 8模式0x0 -> csr0 0000000a
SPI spi3.0:停用 NPCS、MR 000f0031
SPI spi3.0:设置模式0、8位/w、最大1000000 Hz --> 0
Atmel_SPI fc000000.spi:注册的子级 spi3.0
Atmel_SPI fc000000.SPI:0xfc000000的 Atmel SPI 控制器版本0x311 (IRQ 153)
tcan4x5x spi3.0:找不到时钟
tcan4x5x spi3.0:未定义 CAN 时钟源
tcan4x5x spi3.0:设置:bpw 8模式0x0 -> csr0 0000000a
tcan4x5x spi3.0:停用 NPCS、MR 000f0031
tcan4x5x spi3.0:设置模式0、8位/w、最大1000000 Hz --> 0
tcan4x5x spi3.0:激活 NPCS、MR 000e0031
Atmel_spi fc000000.spi: 开始 fio xfer (ptrval):len 8 tx (ptrval) rx (ptrval) bitpw 8
tcan4x5x spi3.0:停用 NPCS、MR 000f0031
tcan4x5x spi3.0:激活 NPCS、MR 000e0031
Atmel_spi fc000000.spi: 开始 fio xfer (ptrval):len 8 tx (ptrval) rx (ptrval) bitpw 8
tcan4x5x spi3.0:停用 NPCS、MR 000f0031
tcan4x5x spi3.0:激活 NPCS、MR 000e0031
Atmel_spi fc000000.spi: 开始 fio xfer (ptrval):len 8 tx (ptrval) rx (ptrval) bitpw 8
tcan4x5x spi3.0:停用 NPCS、MR 000f0031
tcan4x5x spi3.0:激活 NPCS、MR 000e0031
Atmel_spi fc000000.spi: 开始 fio xfer (ptrval):len 8 tx (ptrval) rx (ptrval) bitpw 8
tcan4x5x spi3.0:停用 NPCS、MR 000f0031
tcan4x5x spi3.0:激活 NPCS、MR 000e0031
Atmel_spi fc000000.spi: 开始 fio xfer (ptrval):len 8 tx (ptrval) rx (ptrval) bitpw 8
tcan4x5x spi3.0:停用 NPCS、MR 000f0031
tcan4x5x spi3.0:激活 NPCS、MR 000e0031
Atmel_spi fc000000.spi: 开始 fio xfer (ptrval):len 8 tx (ptrval) rx (ptrval) bitpw 8
tcan4x5x spi3.0:停用 NPCS、MR 000f0031
tcan4x5x spi3.0:激活 NPCS、MR 000e0031
Atmel_spi fc000000.spi: 开始 fio xfer (ptrval):len 8 tx (ptrval) rx (ptrval) bitpw 8
tcan4x5x spi3.0:停用 NPCS、MR 000f0031
tcan4x5x spi3.0:激活 NPCS、MR 000e0031
Atmel_spi fc000000.spi: 开始 fio xfer (ptrval):len 8 tx (ptrval) rx (ptrval) bitpw 8
tcan4x5x spi3.0:停用 NPCS、MR 000f0031
tcan4x5x spi3.0:激活 NPCS、MR 000e0031
Atmel_spi fc000000.spi: 开始 fio xfer (ptrval):len 8 tx (ptrval) rx (ptrval) bitpw 8
tcan4x5x spi3.0:停用 NPCS、MR 000f0031
tcan4x5x spi3.0:不支持的版本号: 0
tcan4x5x:spi3.0的探测器失败,错误-22

有人能指出缺少什么吗? 问题是什么?
或在哪里搜索问题?

谢谢!

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

    Ziv、您好!

     您要为 TCAN4550EVM VBAT 提供多大的电压?  我不知道您所说的"PIN16"是什么。

    您是否还可以测量 EVM 上的 VSUP、VCCOUT、VIO 和5V LDO 电压、以便我们确保所有电源轨都正确、并且不存在电源问题?

    谢谢。此致、

    乔纳森

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

    尊敬的 Jonathan:

    感谢您的快速回复  

    很抱歉描述令人困惑。

    引脚16只是我用于控制向 VBAT 提供12V 电压的负载开关的 I/O

    VSUP = 12V

    5V LDO = 4.99V

    VCCOUT = 4.97V

    VIO = 3.3V

    此致、

    Ziv  

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

    您好、Ziv、

    谢谢。 似乎器件已正确供电且内部 LDO 正常工作。  

    您能否使用示波器或逻辑分析仪捕获 SPI 信号并分享以便回顾? 如果使用默认的 SPI 驱动器、控制器通常会在每8、16或32位数据段后转换芯片选择信号。 TCAN4550要求片选信号在整个 SPI 事务中保持低电平。 这意味着芯片选择信号必须保持低电平64位才能进行单个寄存器读取或写入。 前32位是读或写操作码、地址和长度字段、后32位是实际数据。 如果芯片选择转换提前、例如32位后、则器件将丢弃 SPI 事务并设置 SPI 错误标志。

    数据表中包含显示您需要验证的格式要求的图。 如果器件无响应、则可能需要修改 SPI 驱动程序。

    此致、

    乔纳森