Anzeige:

Digitale Lösung für Schaltungen / Problem?

Hier finden sie die archivierten Beiträge des alten PHPBB Forums von www.loetstelle.net

Digitale Lösung für Schaltungen / Problem?

Von passat2001 am 05.03.2008 17:44

Hallo. Bin neu hier und habe auch schon eine Frage.

Folgendes ist Fakt: Ich habe vor einem Jahr mit eine Schaltung gebaut, womit ich im Auto die Funktion habe, das wenn man den Blinker betätigt, die entsprechende Nebelleuchte angeht. Im Prinzip ein "Abbiegelicht". Das ganze funktionierte über ein Timerrelais mit Trikkersteuerung.

Jetzt möchte ich das ganze aber gerne Digital haben. Sprich, ich möchte ein "Modul" haben, welches ich mit dem PC Programmieren kann. Brauche also etwas, was mit 12V arbeitet, drei Ausgänge hat und drei Eingänge (mindestens). Gibt es soetwas? Also ich will dann wie Software sagen, wenn Signal auf Eingan01 kommt, Schalte Ausgang01 3sekunden.

Hoffe, ihr versteht mein Anliegen, und könnt mir helfen.

THX
MFG

Re: Digitale Lösung für Schaltungen / Problem?

Von gerold am 05.03.2008 19:17

passat2001 hat folgendes geschrieben:
ich möchte ein "Modul" haben, welches ich mit dem PC Programmieren kann. ... Also ich will dann wie Software sagen, wenn Signal auf Eingan01 kommt, Schalte Ausgang01 3sekunden.

Hallo passat2001!

Ja, so etwas kannst du mit einem Mikrocontroller (µC) machen. So ein AVR-Mikrocontroller kostet nicht viel und lässt sich mit Basic programmieren. Allerdings müsstest du dich ein paar Wochen damit befassen. Aber nach diesen zwei, drei Wochen bist du in diesem Bereich so flexibel wie nie zuvor. Very Happy

Wenn dich dieses Thema interessiert und dich die "paar Wochen" nicht abschrecken, dann erzähle ich dir mehr darüber.

http://halvar.at/elektronik/mikrocontroller_wie_anfangen/

mfg
Gerold
Smile

Von passat2001 am 05.03.2008 19:34

Hi. Klar interressiert mich dieses Thema. Würde gerne mehr darüber erfahren. Hört sich interessant an und schein genau nach meinem Geschmack zu sein.

Von gerold am 05.03.2008 21:13

passat2001 hat folgendes geschrieben:
Hi. Klar interressiert mich dieses Thema. Würde gerne mehr darüber erfahren. Hört sich interessant an und schein genau nach meinem Geschmack zu sein.

Hallo passat2001!

Na dann mal los! Wink

Vorab: Also ich kenne mich nur mit den AVR-Mikrocontrollern der Firma Atmel aus. Und ich programmiere diese mit Bascom (BASIC), deshalb erzähle ich dir hier nichts von C oder Assembler oder anderen Arten diese Dinger zu programmieren.

Die AVR-Mikrocontroller gibt es mit 8, 20, 28, 40 und mehr Beinchen (Pins). Die kleinen µC kommen aus der Familie "ATtiny". Und die für uns interessantesten µC sind aus der Familie "ATmega".

Von der ATtiny-Familie sind hauptsächlich die beiden µC ATtiny13 und ATtiny45 interessant für uns.

Der ATtiny13 ist sehr klein, aber nicht sehr leistungsfähig. Er kann gut dafür eingesetzt werden, um kleine Arbeiten zu erledigen für die man vor ein paar Jahren noch mehrere TTL-Bausteine verwendet hätte.

Den ATtiny45 nimmt man her, wenn man einen kleinen Baustein mit mehr Power braucht. Der ATtiny45 ist leistungsfähiger als der ATtiny13 und hat mehr Speicher für Programm und Variablen frei. Damit kann man dann schon komfortabel mit anderen µControllern Verbindung aufnehmen und Aufgaben zugewiesen bekommen.

Von der ATmega-Familie sind für den Anfang der ATmega8, der ATmega16 und später der ATmega32 interessant. Es gibt auch µC wie z.B. den ATmega128 und besser. Aber die sind nicht mehr im DIL-Gehäuse erhältlich und etwas teurer. Deshalb würde ich mich erst dann damit befassen, wenn du die Leistung wirklich brauchst.

Der ATmega8 ist der typische Einsteiger-Mikrocontroller. Er ist saubillig (z.B. bei Kessler-Electronic: ATMEGA8-16PU um 1,64 €), ist aber trotzdem ziemlich leistungsfähig. Er hat 28 Pins, wobei davon bis zu 22 Pins direkt als Ein/Ausgänge benutzt werden können. Die meisten Pins sind mehrfach belegt, wie man hier im Bild sehen kann.



So, jetzt weißt du zumindest schon mal um welche Mikrocontroller es sich drehen wird. Ich werde im Laufe der nächsten Tage noch einiges darüber schreiben. Aber als Voraussetzung um selbständig mit diesen Mikrocontrollern arbeiten zu können, empfehle ich dir baldigst das Buch und die Experimentierplatine von Roland Walter zuzulegen. Näheres darüber: http://halvar.at/elektronik/mikrocontroller_wie_anfangen/

mfg
Gerold
Smile


PS: Könnte jemand bitte diesen Topic in das richtige Forum verschieben? Danke!

Von gerold am 05.03.2008 21:23

Hallo!

Hier sind die Links zu den ausführlichen Datenblättern der für uns wichtigsten Mikrocontroller:

ATtiny13:
http://www.atmel.com/dyn/resources/prod_documents/doc2535.pdf

ATtiny45:
http://www.atmel.com/dyn/resources/prod_documents/doc2586.pdf

ATmega8:
http://www.atmel.com/dyn/resources/prod_documents/doc2486.pdf

ATmega16:
http://www.atmel.com/dyn/resources/prod_documents/doc2466.pdf

Man muss diese Dinger nicht von vorne bis hinten durchlesen. Aber es ist doch recht aufschlussreich, mal die ersten Seiten durchzublättern um sich über die Leistungsfähigkeit der einzelnen Mikrocontroller ein Bild zu machen.

Und zum Abrunden noch der Link zur AVR-Vergleichstabelle:
http://www.atmel.com/dyn/products/param_table.asp?family_id=607

mfg
Gerold
Smile

Die Spannungsversorgung

Von gerold am 06.03.2008 17:05

Hallo!

Und weiter geht's mit dem Thema "Stromversorgung".

Die AVR-µC fühlen sich am wohlsten, wenn sie mit stabilisierten 5 Volt versorgt werden. Da die µC selber nicht viel Strom brauchen, genügt es, wenn man die Spannung mit einem 7805 stabilisiert.

Ich halte mich dabei meist an diese Seite http://www.strippenstrolch.de/1-2-11-der-spannungsregler-78xx.html vom Strippenstrolch.

Da du deine Schaltung aber auch im Auto einsetzen möchtest, möchte ich dich auch noch auf einen Eintrag in der Elektronik FAQ hinweisen.
http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.23

Jetzt da die Versorgung geklärt ist, können wir ein bischen näher an den Mikrocontroller ran rücken. Die AVR-µC haben meist mehrere VCC-Anschlüsse (Versorgungsspannung). Wenn das der Fall ist, dann **müssen alle** diese VCC-Anschlüsse mit Strom versorgt werden. Und wenn es mehrere GND-Anschlüsse gibt, dann **müssen alle** GND-Anschlüsse angeschlossen werden. Es kann sein, dass ein µC auch dann funktioniert, wenn nicht alle diese Pins angeschlossen werden. Aber unter Last könnte es sein, dass dadurch der µC nicht mehr korrekt funktioniert oder sogar zerstört wird.



Der ATmega8 hat jeweils zwei dieser Anschlüsse. VCC und GND auf der linken Seite sind für den Digital-Teil. Und AVCC und GND auf der rechten Seite sind für den Analog-Teil. Der 100 nF Keramikkondensator soll kleine Störungen ausgleichen. Und wenn der Analog-Teil des µC ebenfalls verwendet wird, dann sollte man auch den AVCC-Eingang mit einem 100 nF Keramikkondensator gegen GND schließen. Wenn der Analog-Teil nicht verwendet wird, dann ist das nicht unbedingt notwendig.

Falls mit dem µC analoge Messungen durchgeführt werden, dann sollte der Analog-Teil besonders gut gegen Störungen geschützt werden (z.B. mit einem Low-Pass-Filter).



Manche fangen Spannungsschwankungen am Reset-Eingang mit einem Kondensator ab und begnügen sich mit dem in den µC eingebauten PullUp-Widerstand (ca. 50 kOhm). Und andere (wie ich), verlassen sich lieber auf einen externen 10 kOhm PullUp-Widerstand. In Tirol sagt man zu so etwas "Kupft wia Gsprunga!" Smile

Siehe auch: AVR_Checkliste

mfg
Gerold
Smile

Von passat2001 am 06.03.2008 18:29

OK, das sit soweit klar. Kannst du mir jetzt noch sagen, was ich mir an Hardware kaufen muss? Habe einen PC mit USB anschluss.


THX

Was brauche ich alles?

Von gerold am 06.03.2008 19:18

passat2001 hat folgendes geschrieben:
OK, das sit soweit klar. Kannst du mir jetzt noch sagen, was ich mir an Hardware kaufen muss? Habe einen PC mit USB anschluss.

Hallo passat2001!

Du brauchst das "AVR - Mikrocontroller Lehrbuch" von Roland Walter und das zugehörige Experimentierboard. Beides bekommst du bei Segor: http://cgi.segor.de/user-cgi-bin/sidestep2.pl?foto=1&Q=rowalt&M=1

Dann brauchst du noch ein paar Bauteile, Mikrocontroller und einen Programmer (Programmiergerät). Ich mache es mir einfach und verlinke direkt dorthin. Und nein, ich bekomme keine Provision. Smile

Absolute Mindestausstattung:
- http://myavr.de/shop/article.php?artDataID=36
- http://shop.embedit.de/product__92.php
- http://shop.embedit.de/product__94.php

Es wäre nicht schlecht ein paar dieser Dinger auf Vorrat zu haben:
- http://shop.embedit.de/product__367.php
- http://shop.embedit.de/product__163.php
- http://shop.embedit.de/product__352.php
- http://shop.embedit.de/product__336.php
- http://shop.embedit.de/product__99.php
- http://shop.embedit.de/product__558.php
- http://shop.embedit.de/product__114.php
- http://shop.embedit.de/product__126.php
- http://shop.embedit.de/product__117.php
- http://shop.embedit.de/product__189.php
- http://shop.embedit.de/product__118.php

Ideal aber nicht unbedingt notwendig:
- http://www.reichelt.de/?;ACTION=3;LA=4;ARTICLE=67680
- http://www.pollin.de/shop/shop.php?cf=detail.php&pg=NQ==&a=MTY5OTgxOTk=

mfg
Gerold
Smile


PS: Wenn sich jemand die hier beschriebene Grundausstattung nicht leisten kann: http://www.loetstelle.net/forum/viewtopic.php?p=6939#6939

.

Von BellaD am 06.03.2008 19:59

Hoi
@Gerold

will nicht unbedingt meinen Senf dazutun aber wegen mindestausstattung bin ich der meinung das man besser damit fährt wenn man sich das AVR DRAGON für ca.60 Eu zulegt und dazu ein vernünftiges Breadboard für noch nichtmal 10 eu. bei Reichelt .
Damit biste heutzutage bestens gerüstet , debug - JTAG + 1Wire debugging für die neuen Tiny und mega , funktioniert einwandfrei mit AVRStudio, hat USB usw usw. und man kann es gut wieder verkaufen wenn man vielleicht doch keine Lust mehr hat .

ansonsten , weiter so Wink

Der Programmer (Programmiergerät)

Von gerold am 07.03.2008 14:28

Hallo!

Wenn ein Programm fertig programmiert wurde, dann wird es kompiliert. Das heißt, der Bascom-Quellcode, den wir geschrieben haben, wird in ein vom µC ausführbares Maschinencode-Programm umgewandelt. Dieses Programm kann als HEX-Datei oder als BIN-Datei vorliegen.

Um dieses Programm in den µC übertragen zu können, braucht man einen so genannten Programmer (Programmiergerät). Das kann ein einfaches Kabel für den Anschluss an den Parallelport mit ein paar Widerständen und ein paar Dioden sein. Das kann ebenso ein mit ein paar Dioden und Widerständen versehenes Kabel für den Anschluss an den "Seriellen Port" (RS-232) sein. Das kann aber auch ein Gerät für den USB sein. Es gibt viele verschiedene Programmer für die verschiedensten Anschlüsse.

Aber warum nimmt dann nicht jeder ein einfaches Parallelportkabel, wenn es doch damit funktionieren soll? Oder warum nicht einfach das Kabel für den "Seriellen Port"? -- Die Sache ist die, dass viele Computer keinen Parallelport mehr haben. Es gibt zwar USB-Parallelport-Adapter, aber mit denen kann man die µC nicht programmieren, da der Datenaustausch in beide Richtungen oft nicht richtig funktioniert und die Hi-Low-Level meist keine einheitliche Spannung haben.

Es geht noch weiter. Seit Windows 2000 kann man nicht mehr direkt von einem Programm aus auf den Parallelport zugreifen. Man kann das umgehen, indem man einen speziellen Treiber dafür installiert. Aber leider werden diese Treiber nicht aktiv weiterentwickelt, so dass diese Treiber schon seit Windows XP teilweise Schwierigkeiten machen oder sogar überhaupt nicht funktionieren. Fazit: Der Parallelport scheidet aus.

Weit mehr Computer haben noch einen "Seriellen Port" (RS-232 oder auch COM genannt), der nicht wie der Parallelport vom Betriebssystem abgeblockt wird. Also scheint der COM-Port gar nicht so schlecht dafür geeignet zu sein. Und die benötigte Hardware begrenzt sich auf ein Kabel, ein paar Dioden und Widerstände. Aber ein Problem gibt es damit doch. Die Übertragung eines Programmes über den COM-Port dauert einfach viel zu lange. Außerdem ist diese Art der Übertragung nicht so gut in Bascom integriert, was das Arbeiten erschwert.

Es gibt Programmer, richtige Geräte, die über den COM-Port angesprochen werden und die auch die volle Geschwindigkeit des COM-Ports ausnützen können, aber mit denen habe ich mich nie befasst und kann nichts dazu schreiben.

Auf dieser Seite http://www.kreatives-chaos.com/artikel/avr-programmieradapter erfährst du mehr über ein paar dieser Programmer.

Für heutige Computer empfehle ich einen USB-Programmer zu verwenden. USB wird nicht so schnell aussterben und die Programmer dafür werden immer billiger. So gibt es mit dem mySmartUSB einen Programmer, der -- an den Computer angeschlossen -- einen COM-Port simuliert und sehr einfach von Bascom aus genutzt werden kann. Also ideal für Einsteiger.



Diesen mySmartUSB-Programmer bekommt man direkt bei myAVR oder von Conrad. Wenn man den Programmer geliefert bekommt, dann fehlt nur noch der zehnpolige Wannenstecker, den man noch einlöten muss. Mit dabei ist ein kurzes Flachbandkabel mit zwei zehnpoligen Pfostensteckverbindern. Es hat sich eingebürgert, µC-Schaltungen mit einem Wannenstecker auszustatten, über den die µC im System programmiert werden können.

Die AVR-Mikrocontroller müssen also nicht jedes mal ausgebaut werden, um ein neues Programm zu übertragen. Es genügt, wenn man die Leitungen "Reset", "MOSI", "MISO", "SCK", "GND" und "VCC" über einen Stecker nach außen führt. Diesen Stecker kennzeichnet man üblicherweise mit "ISP", was für "In System Programming" steht. Auf die Bedeutung von "MOSI", "MISO" und Co. werde ich später noch eingehen. Aber zuerst kümmern wir uns um die Hardware. Es ist nämlich so, dass Roland Walter in seinem Experimentierboard nicht diesen Wannenstecker, sondern eine sechspolige SIL-Leiste verwendet. Das ist zwar schön platzsparend, aber man muss sich einen Adapter zusammenlöten um mit dem mySmartUSB auch dieses Experimentierboard anschließen zu können.

10-poliger und 6-poliger ISP-Stecker (Atmel):

http://www.mikrocontroller.net/articles/AVR_In_System_Programmer

6-poliger, einreihiger Stecker den Roland Walter verwendet:

http://rowalt.de/mc/avr/avrbuch/AvrBoard.pdf

Beim Übertragen der Daten kommuniziert der Programmer mit dem µC über die SPI-Schnittstelle (Serial Peripheral Interface). Dieses SPI arbeitet mit drei Leitungen. Wenn nicht nur zwei Geräte miteinander kommunizieren, dann ist noch eine zusätzliche Leitung im Spiel. Aber das ist jetzt nicht so wichtig.

Die SCK-Leitung (SPI Clock) gibt den Takt an. Einer der Kommunikationspartner ist immer der Master. Dieser bestimmt den Takt. Der andere Kommunikationspartner ist der Slave.

Die MOSI-Leitung (Master Out/Slave In) überträgt Daten vom Master zum Slave.

Die MISO-Leitung (Master In/Slave Out) überträgt Daten vom Slave zum Master.

Dieses SPI kann dazu benutzt werden um Daten und Anweisungen von einem µC an andere µC weiter zu geben. Es wird auch zum Übertragen des Programms vom Computer zum µC verwendet. Der einzige Unterschied ist, dass der Programmer vorher den Reset-Eingang des µC nach GND zieht. Das ist das Zeichen für den µC, dass es sich bei der Übertragung nicht nur um normale Daten, sondern um das Programm handelt. Dieses wird dann in den eingebauten Flash-Speicher geschrieben.

Siehe auch: AVR Hardware Design Considerations

mfg
Gerold
Smile

Anzeige: