HI,
I have a problem,MPC5745R FlexCAN only one MB can be used for transmit,the fine MB is the CAN_0.MCR.B.MAXMB definition,other MB can"t be used transmit.
Example :
if CAN_0.MCR.B.MAXMB=7,only MB[7] can transmit OK,
MB[6] can"t transmit ,debug error.
CAN_0.MB[6].CS.B.CODE = 0xC;
Whenever this statement is executed, an error will be reported
PE-ERROR: Warning. Can't read registers while part is running.
PE-ERROR: Warning. Can't read memory while part is running. @0 (4 bytes)
PE-ERROR: Warning. Can't read memory while part is running. @0 (4 bytes)
PE-ERROR: Warning. Can't read memory while part is running. @0 (64 bytes)
PE-ERROR: Warning. Can't read memory while part is running. @40 (64 bytes)
PE-ERROR: Warning. Can't read memory while part is running. @ffeb00e0 (4 bytes)
Development environment is S32DS 2017.R1
Debugger tool is PE USB Multilink.
HI Peter,
The problem has been solved, and it is related to the clock. The maximum clock of the MCU 841-SPC5743RK1MLU5 can only reach 150MHz.I set it to 200MHz,so it error
Hi Peter,
As you say ,i called Transmit_Message() just once ,but the result is same .Buf7I transmit OK,BUF6I transmit error.
In IFLAG1 register BUF7I bit is set 1,the BUF6I bit can"t see ,debugger is error.
CAN_0.MB[6].CS.B.CODE = 0xC; This code cannot be executed
Transmit data frame command can"t be write.
But i try write 0 to CAN_0.MB[6].CS.B.CODE = 0; ,the code is executed.
In addition,if i change CAN_0.MCR.B.MAXMB = 8 ,just BUF8I can transmit ,other can"t
as same ,if CAN_0.MCR.B.MAXMB = 63 , just BUF63I can transmit ,other can"t
Hi,
if you call Transmit_Message(); just once (place it before while loop), is both messages transmitted once and do you see BUF6I and BUF7I flags set in IFLAG1 register?
BR, Petr