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
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
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.
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
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
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
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.
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?
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
@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!!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.