Cypress Perform

Home > Design Support > Cypress Developer CommunityTM > Cypress Forums > PSoC® 3 > Using Open Drain, Drives low drive mode as a Digital Input

Bookmark and Share
Cypress Developer CommunityTM
Forums | Videos | Blogs | Training | Rewards Program | Community Components



Using Open Drain, Drives low drive mode as a Digital Input
Moderator:
RKRM

Post Reply
Follow this topic



Using Open Drain, Drives low drive mode as a Digital Input

TStamp posted on 07 Apr 2011 7:37 AM PST
Member
3 Forum Posts

Hello,

 

I'm using a CY8C3446AXI-098 PSoC 3, which according to the datasheet has two USBIOs on pins P15[6] and P15[7] which can be used to either provide connection for a USB data bus or be used as general DIO pins.  However, what the datasheet didn't specify, and what I didn't find out until trying to build my design, is that the DIO pins can only be configured to one of two drive modes, Strong Drive, and Open Drain Drives low.

 

I was hoping to use these pins as general purpose digital input pins.  It seems logical enough to think that the pins could be configured in Open Drain, Drives low drive mode, and simply held in the high-Z state to be capable of sensing any input voltage on the pin.  However, if this is the case I would expect to be able to configure the pins as a high impedance digital input drive mode so there would be no confusion.  Must the software ensure that the pin is always held in high-Z state when configured as an input, or is this done automatically by PSoC creator?

 

I just want to verify that a pin configured as Open Drain, Drives low can be used as a digital input equivalent to a high impedance digital input pin with no extra external circuitry or software so that I don't end up building the board and realize these two DIO pins don't act as I'd expect.

 

Thank you!

John




Re: Using Open Drain, Drives low drive mode as a Digital Input

U2 posted on 08 Apr 2011 09:41 AM PST
Cypress Employee
589 Forum Posts
Hi,
  1. It is possible to read the pin status using the Pin_Read() API. 
  2. When the Pin is driven Low, there is a Strong low signal on the Pin and the API Pin_Read() will return a zero.
  3. However, when a logic one is written using the API Pin_Write(), the pin is connected the Drain of the internal MOSFET and it is open. This means the value returned by the API Pin_Read() is determined by what voltage appears on the pin. A pull up provided on this pin will give a logic high.

 






ALL CONTENT AND MATERIALS ON THIS SITE ARE PROVIDED "AS IS". CYPRESS SEMICONDUCTOR 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 CYPRESS SEMICONDUCTOR. USE OF THE INFORMATION ON THIS SITE MAY REQUIRE A LICENSE FROM A THIRD PARTY, OR A LICENSE FROM CYPRESS SEMICONDUCTOR.

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 and Conditions of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms and Conditions of this site. Cypress Semiconductor 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.

Spec No: None; Sunset Owner: KXP; Secondary Owner: VWA; Sunset Date: 01/01/20