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.

Drving the ERROR pin

Other Parts Discussed in Thread: TMS570LS20206, HALCOGEN

Hi,

I've got some very strange things going on with the ERROR line on a TMS570LS20206. It seems very much like the pin isn't being driven, regardless of software.

From a hardware point of view:

ERROR is connected directly from TMS570 to TPS65381 ERROR and also a schmitt trigger buffer (74LVC07), driving an LED. The line permanently sits at around 0.9v - which indicates that its simply not being driven properly.

Q: should the error line have an external pullup?

Q: is there any internal pullups/pulldown on this pin within the TMS570 which can be controlled?

I'm using HALCoGen to initialise the ESM and using its routines to both initialise and test the error line, specifically using the esmTriggerErrorPinReset() command to test its functionality. However, nothing is being driven on the output.

Has anyone had any success driving the ERROR line using HALCoGen (FreeRTOS) code?

Thanks

Mat

 

  • Mathew Maher said:

    Hi,

    I've got some very strange things going on with the ERROR line on a TMS570LS20206. It seems very much like the pin isn't being driven, regardless of software.

    From a hardware point of view:

    ERROR is connected directly from TMS570 to TPS65381 ERROR and also a schmitt trigger buffer (74LVC07), driving an LED. The line permanently sits at around 0.9v - which indicates that its simply not being driven properly.

    HW: Can you check the status of ERROR pin register: ESMEPSR@0xFFFF524

    Q: should the error line have an external pullup?

    HW: Not necessary

    Q: is there any internal pullups/pulldown on this pin within the TMS570 which can be controlled?

    HW: pull down, fixed, can not control

    I'm using HALCoGen to initialise the ESM and using its routines to both initialise and test the error line, specifically using the esmTriggerErrorPinReset() command to test its functionality. However, nothing is being driven on the output.

    Has anyone had any success driving the ERROR line using HALCoGen (FreeRTOS) code?

    Thanks

    Mat

     

  • The status register reads a constant 0, regardless of what I do.

    Using the HALCoGen provided routines, I ran up a project with the following:

    void main()
    {
         systemInit();
        hetInit();
        esmInit();
        adcInit();
        canInit();
        gioInit();
        sciInit();
        spiInit();
        val = esmError();
        esmTriggerErrorPinReset();
        val = esmError();
        esmActivateNormalOperation();
        val = esmError();
    ....

    Setting a breakpoint after each read of esmError() (which is the 0xFFFF524 register) showed 0, 0 and finally 0 as being the return values. This is strange because the trigger request should at least have produced some result?

    Mat

  • Can you use a while(1) or asm(" b #-8") at the beginning the main() to see if the nError pin is low?

    Please power cycle the board after you load this code.

    If it is low, the initialization code might have some problem. You upload the project and I can take a look at the code.

    Regards,

    haixiao

     

  • I've got a scope permanently attached to the ERROR line - it floats at 0.9v consistantly without change, including when adding a asm("b #-8"); at the beginning of main().

    I need to extract my code into a simpler project, so will post seperately (tomorrow). I guess the other question mark is around the TPS65381 - could there be any configuration here which is causing the error line to float and not respond?

     

    Mat

  • TPS65381 ERROR/WDT pin is input only, should not impact the status.

    The LED may be a problem. But since you add a buffer between the MCU and the LED, and it should be OK too.

    Regards,

    Haixiao

  • Sorry for the delay in responding - got tied up on a different matter!

    I've created a new project from HALCoGen, mostly just set to defaults, then inserted the esm function calls into main() - single stepping through them and I get neither a change in ERROR output pin level, nor a change in software readback value.

    thanks

    Mat

    7610.NoRTOS.zip

  • I run your code on my board. The Error pin remains high during and after all the code. Does this agree with your bench?

    Since you did not force an error into the device, I think this result is expected. Right?

    Haixiao

  • I'm calling esmTriggerErrorPinReset() which writes 0x05 into the ESM KEY register: this should force the error pin low, or am I missing something (most likely)?

    Mat

  • Mathew Maher said:

    I'm calling esmTriggerErrorPinReset() which writes 0x05(HW: should  be 0x0A to force an error, 0x5 will clear the Error after a certain time) into the ESM KEY register: this should force the error pin low, or am I missing something (most likely)?

    Mat