Forum: Mikrocontroller und Digitale Elektronik Einen AVR-Portpin (5V) vom LPC2148 aus ansteuern


von Martin (Gast)


Lesenswert?

Hallo,

ich möchte von einem LPC2148 aus auf einem ATmega16 einen Interrupt 
auslösen (INT0/PD2 auf Masse ziehen). Der ATmega16 läuft auf 5V, der LPC 
auf 3.3.

Ich suche eine einfache Möglichkeit, den LPC-Port gefahrlos mit dem AVR 
zu verbinden. Zu der 5V-Toleranz der LPC-Ports finde ich 
widersprüchliche Angaben im Netz, die beiden I2C-Kanäle des LPC sind 
schon belegt. Sonst hat kein Port einen Open-Drain-Ausgang.

Ich dachte an einen 10K-Pullup-Widerstand und einen 1K-Serienwiderstand 
vor dem LPC-Port. Reicht das aus oder sollte ich einen kleinen 
Transistor nehmen ? Ich möchte auch den Fall abdecken, dass der 
Atmel-Port evtl. durch Softwarefehler als Ausgang und auf 5V geschaltet 
wird.

Gruß,
Martin

von Falk B. (falk)


Lesenswert?

@ Martin (Gast)

>Ich dachte an einen 10K-Pullup-Widerstand und einen 1K-Serienwiderstand

Der Serienwiderstand reicht, ggf. auf 10K erhöhen. Siehe 
Pegelwandler.

MfG
Falk

von Martin (Gast)


Lesenswert?

@Falk:
Danke, aber im Datenblatt des ATmega16 steht, das mindestes 0,6Vcc 
(=3,0V) für einen sicheren High-Pegel nötig sind. Das könnte mit dem 
Seienwiderstand eng werden, zumal wenn ich mehrere AVRs gleichzeitig 
ansteuern will.

Mit der Variante "3.3V Open Collector nach 5V (TTL oder CMOS)" müsste es 
doch sicher funktionieren, oder ? Dann wäre mehr Schaltleistung für 
saubere Impulse vorhanden als über einen 10K Widerstand.
(Den Transistor würde ich dann zusätzlich einbauen.)

Mit freundlichen Grüßen,
Martin

von Andreas K. (a-k)


Lesenswert?

Doe O.C. Variante hattest du oben mangels O.C. doch schon ad acta 
gelegt.

von Martin (Gast)


Lesenswert?

@Andreas Kaiser (a-k):

>Doe O.C. Variante hattest du oben mangels O.C. doch schon ad acta
>gelegt.

Ja, die I2C-Bus-Ausgänge, die extra für externe Pullup-Beschaltung 
vorgesehen sind, sind schon belegt.
Daher möchte ich an einem anderen Ausgang den Transistor extern anbauen, 
so wie im Artikel als chip-intern dargestellt.

MfG
Martin

von Peter D. (peda)


Lesenswert?

Martin wrote:

> Zu der 5V-Toleranz der LPC-Ports finde ich
> widersprüchliche Angaben im Netz

Dazu schaut man ja auch nicht ins Netz, sondern ins Datenblatt.

> die beiden I2C-Kanäle des LPC sind
> schon belegt. Sonst hat kein Port einen Open-Drain-Ausgang.

Das ist Quatsch, jeder Portpin hat eine Richtungsumschaltung und damit 
klappt Open-Drain prima.


Ich hab z.B. LEDs gegen 5V am LPC, bei High glimmen sie noch, aber bei 
Input gehen sie aus.


Peter

von let (Gast)


Lesenswert?

Was ist denn bei der 5V Toleranz widersprüchlich? Laut Datenblatt
verträgt der 2148 auf allen IO Leitungen 5V. Bisher hatte ich damit
auch keine Probleme.

Es wäre vielleicht nicht verkehrt einen Widerstand zwischen den
µCs zu verbauen. Nur für den Fall das bei einer fehlerhaften
Konfiguration der IO-Pins des AVR nicht AVR und LPC Ports
gegeneinander arbeiten. Da würde der LPC wohl verlieren.

von Andreas K. (a-k)


Lesenswert?

let wrote:

> Was ist denn bei der 5V Toleranz widersprüchlich? Laut Datenblatt
> verträgt der 2148 auf allen IO Leitungen 5V.

Hmm. Auf allen Inputs ja. Wie steht's mit Outputs?

von let (Gast)


Lesenswert?

Ach so, daran hatte ich noch gar nicht gedacht. Wenn der
Ausgang auf high steht würde der Highside-FET als Senke fungieren,
wofür er möglicherweise nicht ausgelegt ist. Falls doch hat man aber
einen Pullup gegen die 3,3V. Wenn Peter das mit LEDs schon getestet
hat geht da zumindest nichts in Rauch auf.
Dann dürfte man hier nur zwischen Input und Output/Low toggeln.
Darin sehe ich kein Problem. Die IOs sind defaultmäßig Eingänge, sodaß
auch beim Powerup/Reset nichts anbrennt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.