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.

2808 GPIO strange power-up behaviour

hi everyone!

I'm working in a 2808 project where I'm using the TI 2808 ControlCard and the docking station and another board made specifically for the project (which have a DIMM100 socket to plug the Control Card once flashed).

Things are that everything was doing well until I've detected a strange behaviour on GPIOs. At oscilloscope, some of them output a 1 during exactly 130ms, while some others output a 0 during those exact 130ms. After that interval, it seems to start execute code and GPIOs behave as they are commanded by code.

The problem might be over this direction:

- The power-up circuitry of the control card, based on IC TPS70102, keeps the reset signal active (low) during 120ms (aprox.) since Vgpio reaches 95% so the CPU is in a reset state. As described in the datasheet, on reset, GPIOs are in a High-impedance state, so their value depends on the internal pull-up ressitors. What I don't understand is why some of them present a high level signal while others a low level one!

In my project board, 18 GPIOs are connected to drivers (HEF4104) to rise level from 3.3V to 5V to feed the control signal of 18 servos. However, now even when connecting the control card to the docking station GPIOs continue working not properly. Would it be possible that due to an overvoltage, ESD, or anything else some of the pull-ups has burnt and are not working properly??

Any help on this regard would be appreciated!!

regards!

  • Jaime,

    Have you qualified which GPIO are behaving improperly? 

    One thing to note is that GPIO00-11 do not use internal pull-ups by default.  See page 72 and 99 of spru712 (F280x System Control and Interrupts Guide).  This may help to explain some of the issues you are seeing.  You may need to use an external pullup on these pins since it would be required by your application.  Good look on your project.


    Thank you,
    Brett

  • Hello Jaime

    Bret already mentioned about using external pull-ups. In addition you may keep your driver off during the boot up process of the controller. I am not famiiar with the specific driver you are using but usually drivers come with an enable pin, One suggestion is to use your reset signal (using correct polarity for your driver) to keep all driver outputs disabled during the booting process of the controller. This will ensure your servos will not be energized untill your code is ready.

  • Hi, Brett and Arefeen!!

    First of all, many thanks for your help!

    I was checking which ports output a 0 and which ones a 1 and you're right, up to GPIO11 they output a 0 because the pullups are disabled on reset.

    Regarding what you suggest, Arefeen, I'm afraid that I cannot use the reset signal of the ControlCard because it is not available on the DIMM100 pinout, that is why I couldn't use it in my design. But, thanks anyway!

    The strange thing is that all was working well until few days ago. The 120-130ms startup interval seemed not to affect to the system, but then, things started to go wrong... Probably, those 120-130 ms (which produces PWM servo control signals of 0% or 100% duty cycles) make the servos to demand a lot of power and I think that that produces a voltage down-spike, causing the reset signal of the TPS70102 to get active during others 120-130ms again and so...  I can't understand why it worked before and now it doesn't.

    Maybe is the TPS70102 IC which is damaged (this is my new hypothesis...)

    Anyway, many thanks again for your help!! I will continue figuring out...

    regards!