TI E2E Community (Beta)
Welcome to the TI E2E (Engineer-to-Engineer) Community! We invite you to freely and openly interact with your peer Engineers, TI Engineers, and other experts in order to ask questions, share knowledge, explore ideas, and help solve problems.
More Search Options

GPIO 114 & 115 configuration

rated by 0 users
Not Answered This post has 0 verified answers | 6 Replies | 2 Followers

Top 150 Contributor
48 Posts
Community Member
Yuvaraj Velumani posted on 6 Nov 2009 12:26 PM

Hi,

I am using OMAP3525 CBB in my hardware, i am trying to configure pads AG18(CSI2_DX1/GPIO_114), and AH18(CS12_DY1/GPIO_115) as gpio's. While doing so, i cant able to toggle those pins. Kindly clarify whether we need to do any additional register configuration as we did for Gpio 120 to 129. I have enabled all the power's in TPS65950 power companion chip.

here is my configuration

*(volatile unsigned int *)0x48002138 = 0x011C011C;

 *(volatile unsigned int *)0x49054034 &= ~(0x12 | 0x13); 

while(1)  {

*(volatile unsigned int *)0x4905403C |= (0x12 | 0x13); 

_asm("nop");

_asm("nop");

*(volatile unsigned int *)0x4905403C &= ~(0x12 | 0x13); 

_asm("nop");

_asm("nop");

 }

Kindly reply

V.Yuvaraj

 

 

 

All Replies

Top 150 Contributor
47 Posts
Community Member

Hi V. Yuvaraj,

Nothing special should be needed with respect to GPIO114 and GPIO115. Looking at your code the structure seems correct - Haven't checked, that you are accessing the right GPIO block and registers though, but you have one mistake:

Instead or using (0x12 |  0x13) you should use ((1<<18) | (1<<19)) to access GPIO 18 and 19 (= GPIO96+18=114 and GPIO96+19=115) in GPIO block 4. You are currently modifying GPIO 0, 1 and 4 in the given block...Smile

 Good luck
   Søren 

Søren Steen Christensen - SSC Solutions ApS - Web: www.ssc-solutions.dk

Top 150 Contributor
48 Posts
Community Member

Hi Soren,

Thanks for you reply, I have changed the code, even on this condition it is not toggling. i have changed the code as given below.

*(volatile unsigned int *)0x48002138 = 0x011C011C;

 *(volatile unsigned int *)0x49054034  &=  ~(  (1 << 18) | (1<< 19)  );

while(1)  {

*(volatile unsigned int *)0x4905403C  |= (  (1 << 18) | (1<< 19)  ); 

_asm("nop");

_asm("nop");

*(volatile unsigned int *)0x4905403C &= ~ ( (1 << 18) | (1<< 19)  );

_asm("nop");

_asm("nop");

 }

But i found a difference in my hardware is, that instead of giving VPLL2 supply from TPS65950 chip, VIO supply (both are 1.8V) is given. Will this cause any prob in toggling the gpio's?
I have enabled CSI2_96 FCLK and ICLK aso in OMAP side.

Thanks and Regards

V. Yuvaraj

Top 150 Contributor
47 Posts
Community Member

Digged a little more in this and - Aha - Found the problem - And it's unfortunately not good news. Sad

The pins can correctly be used in GPIO-mode, but only as inputs. I guess this because of their main function - CSI2 (not-supported in OMAP35x - Though) which is a high-speed-serial-bus-standard for MIPI-cameras, where the pins only need to be input. And adding more logic than necessary to a 800Mbps differential signal pair isn't that easy => It's left out...

You can find this information in the OMAP3 Datasheet (http://focus.ti.com/lit/ds/symlink/omap3530.pdf) by searching for AH18 (which is the ball-name of GPIO115. In here you can see (In table 2-1, the 5th column), that the pin unfortunately only can be used as Input. I'm afraid you need to find some other pins for output. For input they should however be OK...

Best regards - Good luck
  Søren

Søren Steen Christensen - SSC Solutions ApS - Web: www.ssc-solutions.dk

Top 150 Contributor
47 Posts
Community Member

One of my friends came up with a brilliant idea for "solving" this issue in case you only need to drive a "relatively-high-impedance" load. In this case you can actually use the Pull-up/Pull-down resistors for driving the pin instead of the missing output driver. Big Smile

I gave it a try and it's working. Just configure the pin for input and enable the wanted pull-resistor, and the pin will follow high/low (assuming the resistor is strong enough to drive your load - Maximum 100uA according to the Datasheet).

Good luck - I hope this helps you forward
  Søren

Søren Steen Christensen - SSC Solutions ApS - Web: www.ssc-solutions.dk

Top 150 Contributor
48 Posts
Community Member


Hi Soren,

Thanks for your help, I need to use that lines to drive very few uA current. Hope this solution helps me a lot.

Regards,

V.Yuvaraj

Top 150 Contributor
47 Posts
Community Member

You are welcome and a few uA shouldn't be any problem...

Remember: Cheating is OK as long it working and nobody is hurt Smile
  Søren

Søren Steen Christensen - SSC Solutions ApS - Web: www.ssc-solutions.dk

Page 1 of 1 (7 items) |

ALL CONTENT AND MATERIALS ON THIS SITE ARE PROVIDED "AS IS". TI AND ITS RESPECTIVE SUPPLIERS MAKE NO REPRESENTATIONS ABOUT THE SUITABILITY OF THESE MATERIALS FOR ANY PURPOSE AND DISCLAIM ALL WARRANTIES AND CONDITIONS WITH REGARD TO THESE MATERIALS, INCLUDING BUT NOT LIMITED TO, ALL IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT OF ANY THIRD PARTY INTELLECTUAL PROPERTY RIGHT. NO LICENSE, EITHER EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, IS GRANTED BY TI. USE OF THE INFORMATION ON THIS SITE MAY REQUIRE A LICENSE FROM A THIRD PARTY, OR A LICENSE FROM TI.

Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms of Use of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms of Use of this site. TI and its suppliers reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.