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.
工具与软件:
尊敬的 Expert:
我的客户遇到一个问题、我们需要您帮助我们配置寄存器、提前感谢!
我们可以看到下面、他们已经配置了状态1的正确寄存器、有两个使用 TCAN4550的测试板、我们并通过 CAN 接口读取数据。
现在他们要向测试板1发送控制命令、我们想知道如何配置寄存器吗? 在我看来,我们需要写入1,080,1084,1088和4108和8000寄存器,但我们不知道更多的细节如何配置它们,你能不能给一些意见,谢谢!
此外、如何将发送命令配置为中断源?
此致、
插孔
Jonathan、您好!
我的客户想知道是否有方法可以知道 TCAN4550-Q1已完成数据发送、他们采用以下三种方式、请提前帮助审查、谢谢!
1.设置 消息 RAM 访问失败中断使能和 消息存储到专用 Rx 缓冲区中断使能
写入0X1054寄存器、0XA01
写入0X105C 寄存器、0x03
写入0x0800寄存器、0XC8400480
读取0X0824 寄存器位9以完成传输
写入0X1054寄存器、0XA01
读取0X0824寄存器的第9位
3.比较下面的寄存器:
读取0X10C4、、然后比较位16~20和位8~12
但他们都失败了,需要你的帮助来实现它。
此致、
插孔
尊敬的 Jack:
当一条消息成功发送时、发送完成中断位应该被置位。 看起来他们已正确启用该位。
我不了解他们为什么认为消息 RAM 访问失败中断位指示传输完成。 这是在正常运行情况下不应设置的故障位。
我再次请您参考 M_CAN 用户手册 (链接)和第3.5节以及寄存器的各种位说明、以了解有关 TX 处理的所有信息。
目前尚不清楚器件实际正在传输消息、并且可能存在其他配置问题、导致消息无法传输。 需要验证完整寄存器配置以检查是否存在错误。
通常、TX 过程如下所示:
-消息被加载到 MRAM 中的 TX 缓冲器元素中。
-在 TX 缓冲区添加请求寄存器(0x10D0)中,对应于用于消息的 TX 缓冲区元素的位被设置为"1"。
-器件随后将在 TX 缓冲区请求挂起寄存器(0x10CC)中设置相应的位。
-成功发送报文后、器件将清除 TX 缓冲区请求挂起寄存器(0x10CC)中的位、并将 TX 缓冲区添加请求传输发生寄存器(0x10D8)中相应的位置位。
-该器件还应在中断寄存器(0x1050和0x0824)中设置传输发生中断位。
如果配置了 TX 事件 FIFO、则事件元素将添加到 TX 事件 FIFO 中的下一个可用缓冲区。
-如果使用 TX FIFO 或队列, Put 和 Get 索引将被更新。
我建议监视0x10CC 和0x10D8的值、以获得有关 TX 缓冲区状态(包含它们所使用的消息)的直接信息。
此致、
Jonathan
Jonathan、您好!
我不了解他们为什么认为消息 RAM 访问失败中断位指示传输完成。 这是在正常操作下不应设置的故障位。[/QUOT]感谢您的答复、我的客户想要使用中断来指示是否已发送 CAN 数据、请帮助我们配置这些寄存器、提前感谢!
1.设置 消息 RAM 访问失败中断使能和 消息存储到专用 Rx 缓冲区中断使能
写入0X1054寄存器、0XA01
写入0X105C 寄存器、0x03
写入0x0800寄存器、0XC8400480
此致、
插孔
尊敬的 Jack:
要生成指示 CAN 消息传输已完成的中断、需要将以下位设置为"1"。
中断使能寄存器(0x1054)中的发送完成中断使能位(位9)。
请注意、MCAN 有2条中断线路、默认情况下、所有中断位都分配给中断线选择寄存器(0x1058)中的"线路0"。
如果中断被分配给线路0 (缺省)、那么中断线使能寄存器(0x105C)中的启用中断线0应该被置位(位0)。 如果任何中断位被分配到行1、则也应设置启用中断线1 (位1)。
然后、当一条消息 CAN 消息成功发送时、中断寄存器(0x1050和0x0824)中的 Transmit completed 位(第9位)将被设定为"1"。
请注意、寄存器0x0824只是寄存器0x1050的只读副本、因此向寄存器0x1050的第9位写入"1"需要将该位清零。 写入寄存器0x0824不会产生影响、也不会清除该位。
此致、
Jonathan