www.mikrocontroller.net

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


Autor: Markus M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Markus M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Markus M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Markus M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!!

Autor: Markus M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.