I'm using the XC167 Controller and i want to send signals via the IO Port3 (i.e. P3.0) to addintional hardware. the output level of the controller is 4-4.55V in high level. But my hardware allows only 2.0V - 3.5V. How can i do so? I've read in the Datasheet that it is possible to switch the output driver to an open drain configuration and use a external pullup resistor. Does anyone has experience in that? Cause i don't want to destroy some hardware only because of too high voltage. Regards Marco
Sorry i've made a mistake, the board i called MCBXC167-NET (Infineon XC167 Controller)
As the datasheet says, use pull-up resistors to 3.5V or 2V (whatever is available) and use the output port in open drain mode. Things to watch out for: as always with pull-up resistors and open-drain outputs, there is a trade-off between speed and power consumption. Higher pull-up resistance means slower rise time and lower resistance means higher current through the resistor in the "output low" state. Rise time is roughly R*C, where R is the pull-up resistance and C is the stray capacitance of the conductor. You also have to make sure that the output port current rating of the microcontroller is not exceeded, which puts a limit on the lowest resistance that can re used as pull-up. Take into account output resistance of the port, which can be significant with low pull-up resistance. - mike
Another thing: there are logic families with 3.3V outputs and 5V-tolerant inputs which can be used to shift levels. They don't have the disadvantage of slow rise time. For example, Pilips' 74LVC logic family: http://www.semiconductors.philips.com/pip/74LVC241AD.html - mike
Thanks Mike, i will read the datasheet a.s.a.p. regards marco