PSI5S Send

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
yxiao
Level 1
Level 1
5 sign-ins First reply posted First question asked

Hi~

I use the defalut PSI5S example (iLLD_1_0_1_11_0__TC3xx_Demos)to send data.However, data cannot be written to the data register SDRx,The TX port always sends data from the TBUF. I did not fill in the data in the TBUF, why is it automatically changed according to the channel id.

Try to change the SDRx register value, but the write doesn't work,even if the channel isn't enabled(GCR.CENx = 0)

So I would like to ask what is the possible reason, thank you.

0 Likes
3 Replies
Di_W
Moderator
Moderator
Moderator
1000 replies posted 250 solutions authored 100 likes received

https://www.infineon.com/dgdl/Infineon-AURIX_Peripheral_Sensor_Interface-Training-v01_10-EN.pdf?file...

From the slides, PSI5TX is used in synchronous transmission mode for a sync pulse that triggers a data frame for data acquisition from a sensor. Could you please provide more information about your question? Thank you.

Ref.

 

0 Likes
yxiao
Level 1
Level 1
5 sign-ins First reply posted First question asked

First of all, thank you for your quick response.

The module I want to ask about is PSI5-S, not PSI5 module,It supports ECU to sensor communication.Or I could ask the following two questions for PSI5-S module

1.Under what circumstances can a value be written to the SDRx register.

  I made some attempts, but the write doesn't work,even if the channel isn't enabled(GCR.CENx = 0)

2.Why are the registers of TBUF changed after the channel is enabled.

thank you.

 

0 Likes
Di_W
Moderator
Moderator
Moderator
1000 replies posted 250 solutions authored 100 likes received
IFX_INLINE void IfxPsi5s_setSleepMode(Ifx_PSI5S *psi5s, IfxPsi5s_SleepMode mode)
{
    uint16 passwd = IfxScuWdt_getCpuWatchdogPassword();
    IfxScuWdt_clearCpuEndinit(passwd);
    psi5s->CLC.B.EDIS = mode;
    IfxScuWdt_setCpuEndinit(passwd);
}

You can write a function to operate the register like above function.

For TBUF, please refer below function:

IFX_INLINE void IfxPsi5s_fillAscTransmitBuffer(Ifx_PSI5S *psi5s, uint32 *data)
{
    psi5s->TBUF.U = *data;
}
0 Likes