Ik heb hier een apparaat dat zijn I/O op 3.3V heeft lopen (ADM5120), en een appraat dat de I/O op 5V heeft (ATmega32).
Nu wil ik van beiden de UART aan elkaar knopen om te kunnen communiceren.
De lage niveau's zijn niet zo'n probleem, beide kanten op stuurt de ene laag maximaal lager uit dan de ander maximaal wil zien om het nog laag te vinden, als je het nog volgt 
De andere kant op echter, gaat niet zo goed. Input(high) van de ADM is maximaal 3.8V, Output(high) van de Atmel is echter minimaal 4.2V. Andersom is er alleen een minimun gegarandeerd door de ADM, en wel 2.4V, terwijl de Atmel minimaal 3V wil zien.
Hoe los ik dat op?
Tussen de TX van de Atmel en de RX van de ADM zou ik 2 diodes kunnen doen waardoor ik 1.4V kwijtraak en dus op minimaal 2.8V overhoud, 0.8V meer dan minimaal nodig voor de ADM.
Blijft dus eigenlijk alleen de TX(ADM) naar de RX(Atmel) over... TX -> weerstand -> basis Tor, emitter aan GND, collector aan een schmitt trigger inverter (en een pull-up van 4k7 oid naar 5V)? Niet dat ik bang ben 3 extra componentjes te moeten gebruiken, maar als het simpeler kan?
Dat trucje kan eventueel ook de andere kant op, maar dan moet ik op de ADM ergens 3.3V vandaan zien te halen, terwijl het schema bij de Atmel geheel van eigen hand is.
Voordat men aankomt met het feit dat een AVR ook op 3.3V werkt: ja, maar de rest van die schakeling (met name LCD -> 5V typical (+- 0.5 min/max) logic) niet 
free_electron
Silicon Member
Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM
kan veel simpeler
pull up van 1k van RX pin atmega naar 5 volt.
diode met anode aan atmega , kathode aan TX van AD
als de ad hoog stuurt . dan ziet de atmega 4 volt ( 3.3 + 0.7 ) das meer dan hoog genoeg.
als ie laag stuurt ziet de atmega 0.7 volt. das meer dan laag genoeg
en voor je ander kanaal. gewoon een weerstand van 1k ertussen. de protectiediodes in de AD clampen dat op correcte waarde. klaar is kees.
hmm, denk je het een keer goed te doen door zeer aandachtig de datasheets door te nemen, zit je weer veel te moeilijk te denken

Bedankt