Forum: Mikrocontroller und Digitale Elektronik kann ich dei I/O-Pins der AVR direkt miteinander verbinden?


von fred (Gast)


Lesenswert?

bin gerade dabei zwei AVRs über eine Datenleitung mit 8 leitern
zum komunizieren zu bringen.
will aber noch nicht ganz so redht klappen.
Deshalb frage ich hier: Kann ich die I/O-Pins der beiden AVRs
direkt miteinander verbinden um die Signale des anderen AVRs auslesen
zu können oder muss ich erst einen Pull-Up Wiederstand dazwischen
schalten???

von Läubi (Gast)


Lesenswert?

1 AVR auf Ausgang einer auf Eingang dann geht es. auch ohne Pullup der
AVR hat PUSH/PULL Stufen an den Ausgängen.

von fred (Gast)


Lesenswert?

soweit war ich auch schon.
hat aber trotzdem nicht geklappt und laut Oszilskop
kommt da nur ein frequenzschmodder heraus wenn beide verbunden
sind(Testprogramme hab ich schon auf den AVRs).

von André K. (freakazoid)


Lesenswert?

Wie sieht der code denn aus?

BTW:
Gibt es einen Grund 8 Datenleitungen zu verbraten?
Alle Welt geht weg von paralleler Übertragung.

Grüße, Freakazoid

von fred (Gast)


Angehängte Dateien:

Lesenswert?

möchte einfach nur testen ob es möglich ist

von fred (Gast)


Angehängte Dateien:

Lesenswert?

zweiet Datei

von Läubi (Gast)


Lesenswert?

Setz doch einfach mal konstant eine Port und les ihn ein.
Welcher der Files soll den sender und welchermpfänger sein?
Was sagt das Ozi ohne angeschlossenen zweiten AVR?

von Hannes L. (hannes)


Lesenswert?

Solange du Programmierfehler nicht ausschließen kannst, solltest du
Widerstände in die Verbindungsleitungen schalten, die den
Kurzschlussstrom (wenn beide AVRs Ausgang sind) auf ein erlaubtes Maß
begrenzen. Dann kannst du testen und machen, ohne dass etwas kaputt
geht.

...

von Läubi (Gast)


Lesenswert?

Stimmt, mach das mal, hatte ich ganz vergessen zu sagen g

von André K. (freakazoid)


Lesenswert?

In Test2.asm deklarierst Du PortB auch als Ausgang.
Damit treibst Du mit beiden Ausgängen gegeneinander.
Widerstände einbauen und Code ändern!

Grüße, Freakazoid

von André K. (freakazoid)


Lesenswert?

BTW:
ldi r16,0b00000000    ;Port C wird als Ausgang definiert
out DDRC,r16

0=INPUT
1=OUTPUT

Grüße, Freakazoid

von Tobias Plüss (Gast)


Lesenswert?

vielleicht kannst du einen inverter (oder 2) dazwischenschalten.
dann brauchts keine pullups oder -downs, ausserdem wird das bei RS232
ja auch so gemacht.
oder irgend ein puffer, 74LS245 oder so was in die richtung.

gruss

von André K. (freakazoid)


Lesenswert?

Es brauch auch so keine Pullups und -downs.
Notfalls hätte er im AVR welche drinne. Inverter sind
also überflüssig. Einzig die Strombegrenzung (Widerstände) ist
Pflicht.

Grüße, Freakazoid

von fred (Gast)


Lesenswert?

danke für die Tips.
Die Datei Test2 ist für den atmega der bei korrekt empfangenen Signal
eine LED zum leuchten bringen soll.
ATTest ist für den AT90S2313 und ohne Anschluss des Atmega zeigt das
Oszi ein super Rechteck Signal an.
Aber eine Frage noch, wie groß soll ich die Wiederstände wählen um das
Signal nicht ganz abzuschwächen??? Bei der Logikspannung von 5 V soll
meines Wissens nach eine Differenz von 0,2 V , zur Sicherheit, erlaubt
sein. Das habe ich aber bisher aber nur in einem Buch über
Mikroprozessoren gelesen(ist sehr interressant das Buch).

von Mike (Gast)


Lesenswert?

Abschwächen dürftest du das Signal mit einem Widerstnad nicht.
Bei hohen Frequenzen werden nur die Signalflanken ein wenig schlechter.
Der Widerstand sollte so sein, daß, wenn ein Einpang Vcc und der andere
GND ist, der maximale Portstrom nicht überschritten wird.
Bei einem AVR und 20mA bei 5V komme ich auf 250Ohm. Deshalb würde ich
es einfach mal mit 560 versuchen, dann bist du auf der sicheren Seite.

Mike

von Rahul (Gast)


Lesenswert?

oder 1kOhm...

von Dennis Kleine-Beck (Gast)


Lesenswert?

Hallo,

in Test2.asm schreibst Du:
"in r16,PORTB"

das muss aber heißen: "in r16, PIND"


s. auch IO Grundlagen im Tutorial...

Gruß,
Dennis

von Dennis Kleine-Beck (Gast)


Lesenswert?

Sorry, "in r16, PINB"  - 'B' wie Berta, natürlich...

von Wolfram (Gast)


Lesenswert?

Wie lang soll eigentlich die Verbindungsleitung werden?
Wieviel solcher Leitungen soll es geben?
Soll jeder AVR eine eigene (getrennte) Stromversorgung bekommen?

von fred (Gast)


Lesenswert?

Ja jeder soll eine eigene Stromversurgung bekommen und die
Verbindungsleitungen sollen nicht länger als 15 cm lang sein.
für die Stromversorgung habe ich mir ein Spannungsstabilisiertes
Netzteil mit zwei Ausgängen gebaut(nur 0,07V abweichung).

von fred (Gast)


Lesenswert?

zu Dennis kleine Beck:
an Port B des Atmegas soll die LED zum leuchten gebracht werden.

von fred (Gast)


Lesenswert?

Sorry, hab mich im Cod etwas vershrieben.

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.