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.

TMS570LC4357: Implementation of GIO1A and GIO1B (internal analog loopback)

Part Number: TMS570LC4357

Hi experts,

I have a question regarding diagnostic GIO1A and GIO1B mentioned in the Safety Manual of TMS570LC4357.
According to the manual the follwing applys.

" The content of the data in and data out registers will directly reflect the state of the pin
whether the I/O direction is configured as an input or an output. This configuration allows the software test
to detect inconsistencies between known input states or known output states with the pin state."

As far as I understand this, this means that setting a pin as an output and then setting the pin to high in the GIODOUTx would be reflected in the GIODINx register.
For example in this follwing code example, error shoud never be set to true because setting GIODOUTA to 0x55 should also set GIODINA to 0x55.

uint32_t dinValue;
uint32_t doutValue;

bool error = false;

GIO->GIODIRA = 0xFF; // Set all to Output
GIO->GIODOUTA = 0x55; // switch some outputs high

dinValue = GIO->GIODINA;
doutValue = GIO->GIODOUTA;

// Check that GIODINA is the same as GIODOUTA (internal analog loopback)
if(dinValue != doutValue)
{
    error = true
}

For some reasons setting GIODOUTA has no effect on GIODINA. What am I missing?

Thank you and best regards,
Max