Forum: Mikrocontroller und Digitale Elektronik Beim ATMEGA8 o.ä. MAXIM232 notwendig?


von Markus M. (Gast)


Lesenswert?

Hallo zusammen,

es ist sehr interessant was in so einem Mikrocontroller alles drin
steckt. Da ic völlig unbelastet in diesen Dingen bin und mich vor
einigen Tagen mal mit dem Thema über etliche Beiträge ud Foren hinweg
mal eingestimmt habe, ist mir eins jedoch aufgefallen:

In manchen Schaltungen mit einem ATMEGA8 zB. wird ein RS232
Schnittstellenkonverter von MAXIM verbaut, in manchen wiederum nicht.
In den Datenblättern habe ich bisher nur entnehmen können, daß im
ATMEGA8,16,32 eine USART, also eine universelle serielle Schnittstelle
integriert ist. Geläufig sind mir weiterhin die Begrife ISP und JTAG,
die zur Programmierung dienen.
Ist der MAXIM generell notwendig? Oder dient er nur der
Ausgangsverstärkung?

Über ein paar interessante Antworten würd ich mich freuen!!!
Vielen Dank schon mal :)

Markus

von Dirk (Gast)


Lesenswert?

Hi,

das Maxim IC dient als Pegelwandler zwischen AVR und PC.
Moechtest du zwei AVR's verbinden ueber USART ist kein Pegelwandler
notwendig.


Mfg

Dirk

von Jörg Wunsch (Gast)


Lesenswert?

Zu beachten ist, daß die Pegel vor allem negiert sein müssen.  Viele
PC-RS-232-Schnittstellen kommen zwar im Prinzip auch mit 0 V / 5 V
zurecht (also CMOS-Pegel), aber die Negation (im einfachsten Falle
mit einem Transistor) braucht man dann trotzdem noch.

von Matthias (Gast)


Lesenswert?

Hi

Für die Richtung AVR->PC mag ja ein Transistor als Inverter reichen,
allerdings muß man bei der Gegenrichtung zusätzlich zur Invertierung
noch aufpassen das die +-12V des RS232-Ports nicht zum AVR
durchdringen. Die negative Spannung muß man also z.B. über einen
Vorwiderstand und eine Klemmdiode wegschneiden. Das agnze könnte dann
etwa so aussehen:

                   AVR RxD
               (Pull-Up aktiv)
                      o
                      |
                      |
                      |
          _       |/
PC TxD o-|___|--o---|
                |   |>
                -     |
                ^     |
                |     |
                |     |
               ===   ===
               GND   GND
created by Andy´s ASCII-Circuit v1.24.140803 Beta www.tech-chat.de

Allerdings würde ich sowas nur für kurze Verbindungen einsetzen und
auch nur zu Testzwecken. Wenn man über eine solche Schnittstelle
wichtige Daten übertragen will ist der Einsatz eines RS232-Treibers zu
empfehlen.


Matthias

von Markus M. (Gast)


Lesenswert?

Vielen Dank - jetzt leuchtet mir das schon eher ein.

@Dirk:
Ist für den Datenaustausch zwischen zwei ATMELs auch der I²C Bus
geeignet? Oder ist das eher aufwändiger, ich habe bisher solche Käfer
noch nie programmiert. Wie müßte dies vonstatten gehen?

@Matthias
Das Prinzip habe ich verstanden, dann müßte man nur noch die richtigen
Werte für den Widerstand berechnen. Auf den Wandler wird man aber
aufgrund der aufgeführten Argumente sinnvollerweise doch nicht
verzichten.

Sehe ich das richtig, daß man beim ATMEGA16 den Vorteil des JTAG
Interface nutzen könnte, um den Baustein ohne weitere Beschaltung
(außer dem Adapter) programmieren kann?


Markus

von Dirk (Gast)


Lesenswert?

Hi,

der I2C Bus waere auch geeignet und ist dafuer auch gedacht. Leider
darf die Leitungslaenge nicht so gross sein. I2C Bus ist gedacht
diverse IC`s auf einer Platine kommunizieren zulassen.


Wie es genau ablaeuft solltest du dir lieber selber durchlesen
(www.googgle.de) .... Beim AVR heisst I2C Bus TWI.


Mfg

Dirk

von Jörg Wunsch (Gast)


Lesenswert?

Für die Kommunikation zweier AVRs dürfte SPI im Allgemeinen noch das
Einfachste sein.  I²C ist (selbst mit Hardware-Unterstützung durch den
Controller) ein klein wenig aufwendiger in der Software.

von Markus M. (Gast)


Lesenswert?

vielen Dank für die raschen Antworten!! Die äußere Beschaltung wird
jetzt schon um einiges klarer.

@Dirk
Das heißt also ein I²C Bus wäre völlig ungeeignet für eine
Leitungsüberbrückung beispielsweise im Auto. Gibt es da auch
Möglichkeiten? Ist ein CAN Bus so etwas ähnliches, wie darf man die
Funktion eines CAN Busses verstehen?

@Jörg
Die SPI ist doch, wenn ich richtig verstanden habe, die
Programmier-Schnittstelle, ohne den Controller aus der Schaltung
entfernen zu müssen. Welche PINs sind hierfür zuständig? MOSI und MISO,
die beiden Umkehr-Pins?

von Matthias (Gast)


Lesenswert?

Hi

Die Widerstände kann man so pi-mal-Daumen berechnen. 1k dürfte durchaus
geeignet sein.

I2C würde ich im Auto nicht als Verbindung mehrer Controller verwenden.
Viel zu störanfällig. RS232 ist durchaus machbar.
CAN beinhaltet eine differentielle (sehr störsicher, ähnlich RS485 oder
auch Ethernet) Übertragung und ein definiertes Protokoll. Für einen
Einsteiger nicht unbedingt zu empfehlen.

SPI ist zur Programmierung des Chips gedacht aber auch zur
Kommunikation mehrere AVR's miteinander oder des AVR's mit
Peripheriechips. Für SPI sind MOSI, MISO, SCL und wenn der AVR als
Slave dienen soll noch SS zuständig.

Matthias

von Markus M. (Gast)


Lesenswert?

@Matthias

vielen Dank, das klingt jetzt wirklich interessant! Gibt es ähnlich dem
hier vorgestellten AVR Tutorials auch eine für Einsteiger verständliche
Beschreibung wie das zu verstehen ist - schaltungstechnisch wie auch
programmatisch. Vielleicht hast Du evtl. ein dokumentiertes Beispiel,
da wäre ich Dir sehr dankbar!!

von Markus M. (Gast)


Lesenswert?

ich bins nochmal:
gibt es ein Programmbeispiel in BASIC für die Datenübertragung per
SPI?

Es soll im Auto einiges automatisiert werden:
Ein Hauptprozessor (Master) soll zB aufgrund verschiedener  Einflüsse
der Umgebung auf diese Bedingungen reagieren, die Lüftung einschalten
und das Dachfenster ein Stück weit öffnen wenn das Auto im Sommer steht
und vor sich hinbrütet. Ich habe schon die ersten Schritte in BASCOM
gemacht und festgestellt, daß der Prozessor während dem öffnen des
Fensters für eine gewisse Zeit regelrecht blockiert ist - aufgrund der
Ausführung nach Zeittakten. Deshalb soll ein AVR das Fenster steuern,
ein anderer zum Beispiel Regen und Temperatur an die Steuerzentrale
melden, die dann das nötige veranlaßt. Abends soll dann nach dem
betätigen der Zentralverriegelung das Innenlicht langsam einschalten
und beim einschalten der Zündung wieder verlöschen. (Das geht zwar
alles mit konventionellen Mitteln auch, aber das ist nicht Grundlage
meiner hier gestellten Frage). Schließlich soll das auf anderer Stelle
beschriebene Tachosignal meines Opels am Triple-Info-Display ausgegeben
werden. Dazu sollten die AVRs untereinander kommunizieren können.

Ich würde mich über eine grobe Skizzierung und genaue Beschreibung der
Pin-Verbindungen freuen.

Gruß,
   Markus

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.