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
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. |
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.
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!
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
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!"
Siehe auch: AVR_Checkliste
mfg
Gerold
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
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. |
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
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