Forum: Mikrocontroller und Digitale Elektronik AMTEL Evaluationsboard 2.0.1 von Pollin


von Harald F. (haraldwien)


Lesenswert?

Servus aus Wien!
Ich möchte mich nun auch hobbymäßig mit uC der Firma AMTEL beschäftigen.
Dafür habe ich mir folgende Teile bestellt (und auch schon im Haus):
1 x Bausatz Atmel-Evaluations-Board V2.0.1 von Pollin
1 x DIAMEX ALL AVR Programmer USB-ISP für alle AVR-Controller von 
Reichelt
1 x ATMEGA 88-20 PU ATMega AVR-RISC-Controller, DIL-28 von Reichelt

Bevor ich nun mit dem Zusammenbau des Evaluations-Boardes beginne, habe 
ich natürlich hier dsbzgl. "herumgeschnüffelt" und mehrere Beiträge und 
diesen Diskussionsthread gefunden: 
http://www.mikrocontroller.net/articles/Diskussion:Pollin_ATMEL_Evaluations-Board
Der jüngste Beitrag ist ca. von 2012.
Meine Fragen nun: In der Stückliste habe ich gesehen, dass jetzt die 
Entprellbauteilwerte für die Taster auf R=100kOhm und C=100nF sind. Sind 
damit die Probleme eh schon seit längerem behoben?
Gibt es noch weitere Dinge, die man im Zusammenhang mit diesem Board 
beachten sollte?

Bitte nicht bös' sein, dass ich hier so einfach "reinfrage", aber bevor 
ich mit dem löten anfange, frage ich lieber hier mal.

Da dies mein erster Beitrag ist, eine kurze Vorstellung: Ich bin ein 
älterer Bub (BJ 1951), welcher sich für Elektronik, Technik allgemein 
und Garten interessiert. Ich habe mein Brot 40 Jahre lang mit der 
Programmierung kaufm. Applikationen verdient aber von der Hardware / 
Mikrocontroller weniger Ahnung. Überhaupt will ich immer wissen: "Wie 
funktioniert das?". Ich lebe in Wien und bitte um nachsichtige 
Behandlung im Forum (wenn möglich nicht: "... lies zuerst die 
einschlägigen Fachbücher, du Wiener Altkoffer!" ;-)
Meine bisherigen Erfahrungen mit Mikrocontroller kann man hier sehen:
http://www.strippenstrolch-stammtisch.de/thread.php?board=6&thread=113

Ich wünsche euch noch eine schöne Woche und bedanke mich jetzt schon für 
alle Antworten im Bezug auf das Evaluationsboard.
Harald

von oldmax (Gast)


Lesenswert?

Hi
Gut, das du vorher fragst. Ich selbst arbeite mit diesen platinen und 
bin auch zufrieden, aber vielleicht hilft dir meine Meinung trotzdem. 
Die 40pol. Fassung würde ich mit einer Textool-Fassung ersetzen. Eine 
28pol. passt leider nicht, da müßtest du dann einen Adapter anfertigen. 
Taster und den ganzen Schnickschnack kannst du auch weglassen. Ein 
Controller hat intern die Möglichkeit, die Eingänge nach VCC zu binden. 
Stichwort Pull-Up Widerstand. Auf dem Pollinboard werden die Eingänge 
aber nach GND gebunden. (PullDown) Ich persönlich spiele natürlich mit 
Steckbrettern herum, bevor eine Schaltung auf eine Platine kommt und da 
ich auch Bauteile sparen möchte, nutze ich die internen PullUp. Somit 
liegt ein Taster (Eingang) zwar logisch falsch, also Signal bedeutet 
"0", aber das richtet der Controller selbst und die Entprellung ist 
softwaremäßig auch kein Kunstwerk. Wenn du dich trotzdem mit den Tastern 
auf der Platine anfreunden möchtest, kannst du sie auch so umlöten, das 
sie nach GND schalten. Aber im Prinzip macht es da nicht viel Sinn. Wenn 
du ein Steckbrett nimmst, ein altes 40pol. IDE Flachkabel, dann kannst 
du dir dieses mit einem Ende an das Steckbrett kleben. So kannst du 
deine Schaltungen auch einigermaßen stabil aufbauen.
Gruß oldmax

von Thomas (kosmos)


Lesenswert?

Ich hatte ein älteres Pollin Board mal in der Hand und als ich dann von 
dieser Problematik las habe ich mir das ganze mal mit dem Oszi angesehen 
und auch Bilder der Ergebnisse gepostet. Müsste so 2009-2010 gewesen 
sein.

von Thomas D. (thomasderbastler)


Lesenswert?

oldmax schrieb:
> Gut, das du vorher fragst. Ich selbst arbeite mit diesen platinen und
> bin auch zufrieden,

Kann ich bestätigen !

oldmax schrieb:
> Fassung würde ich mit einer Textool-Fassung ersetzen. Eine
> 28pol. passt leider nicht, da müßtest du dann einen Adapter anfertigen.

Ich habe auch eine 28Pol ( schmale Ausführung ) in Ebay gefunden, Mit 
einem kleinem Adapter ( Lochraster ) kann man in den vorhanden IC Sockel 
einsetzen.
Nimm auf jedenfall präzisions Fassungen !

von Rainer V. (rudi994)


Lesenswert?

Passen Bauteildrähte gut in die Löcher oder muß gebohrt werden? Wären 
Sockel/Präz-Buchsen für Quarze, LEDs, Buzzer zwechmäßig? Bei den (roten) 
Cs auf masseseitig richtigen Anschluß achten wg. EMV. Massepin ist da, 
wo auf dem C-Gehäuse der lange, senkrechte Strich ist. Taster erst mit 
Ohmmeter testen. T1 (Kleintransistor?) nicht so stramm einlöten, wie auf 
Pollin-Bild, um Drähte bei Defekt mit Seitenschneider auftrennen und 
einzeln auslöten zu können. Gleiches für IC1 (U-Regler?). Kühlblech?

von Harald F. (haraldwien)


Lesenswert?

Zuerst Danke für eure Antworten!

Thomas der Bastler schrieb:
> Mit
> einem kleinem Adapter ( Lochraster ) kann man in den vorhanden IC Sockel
> einsetzen.
Bin ein bißchen ratlos, wie so ein Adapter denn ausschaut. Wenn man 
Fotos hier posten kann/darf und Du Lust und Zeit hast, kannst Du mir 
dann ein (Handy-) Foto von so einem Adapter posten.
Alle anderen die so einen Adapter oder einen Link dafür kennen, 
natürlich bitte auch.

Sind die Taster und der Summer eigentlich fix an bestimmten Ports. Das 
würde mir nicht gefallen - vielleicht will ich später mal gerade diese 
Ports für was anderes verwenden. Hier wär doch eine Lösung mit Kabel und 
Steckkonstakt (Lötstift) besser - oder?

von oldmax (Gast)


Lesenswert?

Hi
Du hast zum Board eine Beschreibung. Wenn nicht, kannst du diese bei 
Pollin downloaden. Die LED und der Buzzer sind über Trennstecker zu- 
abschaltbar. Trotzdem, du brauchst diese Teile nicht, wenn du sowieso m 
it einem Steckbrett deine Versuche aufbaust. Immer daran denken, µC und 
Programm ist das Eine, die Peripherie das Andere. Das mit dem Kühlblech 
hatte ich vergessen. Wenn du deine Platine mit einem üblichen 12 V 
Steckernetzteil versorgst, kann es aufgrund hoher Verlustleistung zu 
Erwärmung des Konstantreglers kommen. Mir ist das bisher nicht passiert, 
da ganz selten Verbraucher über diesen Regler versorgt werden, außer dem 
Controller, der LED (Versorgungsspannung) und dem Max232 Chip. Der Rest 
ist dann ein quick 6 dirty Aufbau auf einem Steckbrett und in der Reggel 
mit separater Stromversorgung.
Gruß oldmax

von Martin (Gast)


Lesenswert?

Harald Fuckar schrieb:
> Wenn man
> Fotos hier posten kann/darf und Du Lust und Zeit hast, kannst Du mir
> dann ein (Handy-) Foto von so einem Adapter posten.

Lade heute Abend paar Bilder von meinen umgebauten Pollin Board

von Thomas D. (thomasderbastler)


Lesenswert?

Harald Fuckar schrieb:
> Bin ein bißchen ratlos, wie so ein Adapter denn ausschaut. Wenn man
> Fotos hier posten kann/darf und Du Lust und Zeit hast, kannst Du mir
> dann ein (Handy-) Foto von so einem Adapter posten.

Mache mal ein paar bilder heute Abend.

von Thomas D. (thomasderbastler)


Angehängte Dateien:

Lesenswert?

Anbei meine Quick and Dirty Lösung..
Funzt gut..genau so wollte ich haben.

von Martin (Gast)


Angehängte Dateien:

Lesenswert?

Und hier meine Lösung, vor und Rückseite.

Harald Fuckar schrieb:
> In der Stückliste habe ich gesehen, dass jetzt die
> Entprellbauteilwerte für die Taster auf R=100kOhm und C=100nF sind.

Damit funktioniert ohne Umbau von Taster.

von Stefan F. (Gast)


Lesenswert?

Ich konnte den AVR nicht programmieren, weil der Kondensator am Reset 
Pin viel zu groß war (ich meine es waren 100µF). Den habe ich auf 1µF 
geändert, dann klappte es.

von Thomas D. (thomasderbastler)


Lesenswert?

Martin schrieb:
> Und hier meine Lösung, vor und Rückseite.

Gut gelöst..

von M. K. (sylaina)


Lesenswert?

Stefan us schrieb:
> Ich konnte den AVR nicht programmieren, weil der Kondensator am Reset
> Pin viel zu groß war (ich meine es waren 100µF). Den habe ich auf 1µF
> geändert, dann klappte es.

Selbst 1 µF ist noch viel zu groß. 100 nF, mehr sollten es nicht sein. 
Ich denke mal da hat jemand sich um drei Zehnerpotenzen vertan.

von Martin (Gast)


Lesenswert?

Thomas der Bastler schrieb:
> Martin schrieb:
>> Und hier meine Lösung, vor und Rückseite.
>
> Gut gelöst..

Deine sieht auch ganz fein.

von Harald F. (haraldwien)


Lesenswert?

Danke @Thomas der Bastler und @Martin für die Fotos, das hilft mir 
weiter!

Wenn ich das richtig sehe stecken die Nullkraft-Sockel bei der 
Thomas-Version noch in der urspr. Fassung und bei Martin sind sie direkt 
eingelötet, deshalb die Bauteile auf der Platinen-Rückseite.
Ich gebe gefühlsmässig der Martin-Version den Vorzug, weil da ist dann 
eine Steckverbindung weniger. Jetzt muss ich nur noch schauen, dass ich 
solche Sockel beschaffe.

Stefan us schrieb:
> Ich konnte den AVR nicht programmieren, weil der Kondensator am Reset
> Pin viel zu groß war (ich meine es waren 100µF). Den habe ich auf 1µF
> geändert, dann klappte es.
In meiner Beschreibung vom Pollin-Evaluationsboard gibt es im Schaltplan 
gar keinen Kondensator im Zusammenhang mit dem Reset-Button? Die zwei 
größten Kondensatoren 470uF/47uF (C5/C7) treiben sich beim "Netzteil" 
herum. Bin ratlos, was Stefanus meint.

Ein bißchen OffTopic:
Bisher beschaffte ich meine Bauteile immer Online. Vorzugsweise bei 
Reichelt, Conrad, Pollin (i.d.Reihenfolge). Mein Problem ist mein 
Standort (Österreich/Wien) wegen der Versandkosten.
Gestern hielt ich es nicht mehr aus und wollte Nullkraftsockel, 
Präzisionssockel, EEPROM24Cxx und ein IDE-Kabel ohne die lästige 
Online-Wartezeit kaufen und fuhr daher zum Conrad-Markt.
Na, da hab' ich aber geschaut:
- Fachberatung NULL (der hatte weniger Ahnung als ich).
- Nullkraft oder Textool-Sockel: gut, aber hamma nicht.
- Präzisionssockel: OK, alle außer DIP-20 waren da.
- EEPROM24Cxx: Hamma leida auch nicht.
- IDE-Kabel: Schaun's im Regal, bei der Computerabteilung.
- Steckerstifte die ins Steckbrett passen zum anlöten ans 40-adrige 
IDE-Kabel: Was es nicht alles geben soll? Was meint der?

Also kurz und gut: Ich werde auch in Hinkunft alles via OnlineShop 
besorgen. Da hab' ich noch immer alles in einem Schwung bekommen. Und 
die fachliche Beratung hol' ich mir bei Recherchen in guten Foren, wie 
eben diesen hier (Dank' euch). Nach diesen Direkt-Kauf-Versuch hat es 
gar keinen Sinn, den Schlüssel ins Zündschloss zu stecken und voll 
Hoffnung loszubrausen. Man kriegt eh nix - oder eben nicht das, was man 
urspr. wollte. Ich glaub' da seid ihr in DE besser dran. Oder?

Schöne Grüße aus Wien - Harald.

von Thomas D. (thomasderbastler)


Lesenswert?

Harald Fuckar schrieb:
> Wenn ich das richtig sehe stecken die Nullkraft-Sockel bei der
> Thomas-Version noch in der urspr. Fassung und bei Martin sind sie direkt
> eingelötet, deshalb die Bauteile auf der Platinen-Rückseite.
> Ich gebe gefühlsmässig der Martin-Version den Vorzug, weil da ist dann
> eine Steckverbindung weniger. Jetzt muss ich nur noch schauen, dass ich
> solche Sockel beschaffe

Hallo Harald, in der Tat finde ich die Martin Version auch besser. 
Damals bin nicht gleich auf die Idee gekommen.
Was Du noch probieren könntest auf die Lochrasterplatine sog. IC Sockel 
Stiftleiste anzubringen so könntest dierekt in die Platine einlöten.
Nullkraft Sockel ( acthe drauf bei Atmega8 und Co. brauchst die sog, 
schmale Ausführung ) findest bei Ebay.

Kondensator an der Reset Leitung gibt es nicht.

Ja in der tat die Versandkosten nach Österreich ist teilweise wirklich 
enorm, warum auch immer.

BTW: das Pollin board ist wirklich eine gute Sache, benutze ich seit 
Jahren ohne Probleme.

Kleiner Tipp: die untere RS232 Anschluss geht nicht wenn Du über ISP 
proggen willst, man muss die obere nehmen.

von Klaus I. (klauspi)


Lesenswert?

Harald Fuckar schrieb:
> Ich gebe gefühlsmässig der Martin-Version den Vorzug, weil da ist dann
> eine Steckverbindung weniger. Jetzt muss ich nur noch schauen, dass ich
> solche Sockel beschaffe.

Falls Du die Quarze auch gesockelt haben willst. Nimm einfach einen 3er 
Abschnitt einer Präzisions-Buchsenleiste und drück den mittleren Pin aus 
dem Plastik raus. Die teuren Quarzsockel von Conrad/Voelkner sind auch 
nichts anderes (nur optisch etwas "hübscher").

> Ich glaub' da seid ihr in DE besser dran. Oder?

Das sind eher regionale Ausnahmen, die Ladengeschäfte sind praktisch 
ausgestorben. Für Dich gibt es vielleicht noch eine Alternative zu 
Conrad:
http://www.mikrocontroller.net/articles/Lokale_Elektroniklieferanten#Wien

Und falls noch nicht geschehen, kannst Du ja auch folgende Liste nach 
dem Begriff "Österreich" durchsuchen:
http://www.mikrocontroller.net/articles/Elektronikversender

von Martin (Gast)


Lesenswert?

Klaus I. schrieb:
> Falls Du die Quarze auch gesockelt haben willst. Nimm einfach einen 3er
> Abschnitt einer Präzisions-Buchsenleiste und drück den mittleren Pin aus
> dem Plastik raus.

Genau wie ich gemacht habe ;)

Harald Fuckar schrieb:
> Jetzt muss ich nur noch schauen, dass ich
> solche Sockel beschaffe.

Bin nicht ganz Sicher aber ich glaube habe alle ZIF-Sockel da, schaue 
heute Abend melde mich bei dir, irgendwas können wir aussmachen. Nach 
Österreicht als Brief ist bestimmt nicht so teuer.

Gruß
Martin

von Rainer V. (rudi994)


Lesenswert?

Klaus I. schrieb:
> Die teuren Quarzsockel von Conrad/Voelkner sind auch
> nichts anderes (nur optisch etwas "hübscher").

Genau dasselbe ist es nicht, in Präz-Buchsen passen ja auch IC-Pins. Ich 
habe auch ersatzweise diese Buchsen genommen, funktioniert soweit. Evtl. 
sollte man noch Isolierscheiben nehmen oder sich etwas einfallen lassen, 
damit es mit manchen Quarzgehäusen keinen Kurzschluß gibt. Die einzeln 
für Privat kaum erhältlichen Quarzsockel von Fischer sind bei Voelkner 
noch preisgünstig, bei Mikrocontroller-Praxis kosten sie 1.60€/Stk.

von Harald F. (haraldwien)


Lesenswert?

Bei den Quarzen war ich, glaube ich, voreilig:
Ich habe mir bei Reichelt Standardquarze (Grundton) 4MHz, 9,216MHz, 
11,059MHz, 7,3728MHz, 16MHz und 20MHz beschafft. Hoffentlich kann ich 
mit denen etwas anfangen?

Derzeit lade ich mir "AMTEL Studio 6" runter.
Ich möchte es zum ersten Mal in meinem Computerleben mit ASSEMBLER 
probieren. Ich glaube, das ist am "Hardware-Nächsten" und man begreift 
leichter was da geschieht.
Sollte ich es nicht begreifen oder schaffen, kann ich ja noch immer auf 
das leichtere (hoffentlich) BASCOM umsteigen.
Was meint ihr?

von Rainer V. (rudi994)


Lesenswert?

Harald Fuckar schrieb:
> mit ASSEMBLER probieren. Ich glaube, das ist am "Hardware-Nächsten"
> und man begreift leichter was da geschieht.

Genau die richtige Einstellung. Weiter so!

> Sollte ich es nicht begreifen oder schaffen,

Gibt's nicht.

> auf das leichtere (hoffentlich) BASCOM umsteigen.

Abtrünniger! Das gibt Punktabzug.

von Andreas (Gast)


Lesenswert?

Hallo, finde ich gut, dass du einsteigen willst.
Hätte evtl. auch noch ein paar Textool-Sockel da, den 28.pol sicher 
nicht.

von Harald F. (haraldwien)


Lesenswert?

Habe jetzt die Stückliste kontrolliert:

Zuviel vorhanden:
2 x 470 uF ELKO
3 x 100k Widerstände

Nicht vorhanden:
2 x Z-Diode 5,1 V
2 x IC-Sockel DIP 8

Blöd, Wiederstände oder ELKO's hätt' ich gehabt. Z-Dioden hab' ich 
natürlich keine im Haus.
Habe soeben bei Pollin via eMail reklamiert. Bin gespannt wie die mit 
Reklamationen umgehen. Denn da zeigt sich meiner Meinung nach erst der 
wahre Servicegrad einer Firma.

Servus aus Wien: Harald

von Harald F. (haraldwien)


Lesenswert?

Tut sich das Evaluationsboard eigentlich kränken, wenn ich es mit 9 Volt 
Gleichspannung versorge?
Oder ist das zu gering?

von Thomas D. (thomasderbastler)


Lesenswert?

Da ist doch . soviel ich weiß aus dem Kopf ein 78ß5 drauf..oder ?

von Rohri Gallagher (Gast)


Lesenswert?

Harald Fuckar schrieb:
> Tut sich das Evaluationsboard eigentlich kränken, wenn ich es mit 9 Volt
> Gleichspannung versorge?
> Oder ist das zu gering?



Harald Fuckar schrieb:
> Nicht vorhanden:
> 2 x Z-Diode 5,1 V
> 2 x IC-Sockel DIP 8
>
> Blöd, Wiederstände oder ELKO's hätt' ich gehabt. Z-Dioden hab' ich
> natürlich keine im Haus.

http://www.pollin.de/shop/downloads/D810038B.PDF


Kannst Du mal in kurzen Worten darlegen, was Dich daran hindert, das
HANDBUCH zu lesen, welches Dir sämtliche fragebn beantworten könnte?

Da findet man zum Beispiel als Angabe der Betriebsspannung: ~9Volt
Dann könnte man sehen, daß die Z-Dioden nur dann gebraucht werden, wenn
man das interne Programmierinterface nutzen will.

von haraldwien (Gast)


Lesenswert?

Thomas der Bastler schrieb:
> Da ist doch . soviel ich weiß aus dem Kopf ein 78ß5 drauf..oder ?
Ja, darum meine ich, dass der mit 9 Volt zurechtkommen müßte.

von Harald F. (haraldwien)


Lesenswert?

Rohri Gallagher schrieb:
> Harald Fuckar schrieb:
> Tut sich das Evaluationsboard eigentlich kränken, wenn ich es mit 9 Volt
> Gleichspannung versorge?
> Oder ist das zu gering?
>
> Harald Fuckar schrieb:
> Nicht vorhanden:
> 2 x Z-Diode 5,1 V
> 2 x IC-Sockel DIP 8
> Blöd, Wiederstände oder ELKO's hätt' ich gehabt. Z-Dioden hab' ich
> natürlich keine im Haus.
>
> http://www.pollin.de/shop/downloads/D810038B.PDF
>
> Kannst Du mal in kurzen Worten darlegen, was Dich daran hindert, das
> HANDBUCH zu lesen, welches Dir sämtliche fragebn beantworten könnte?
>
> Da findet man zum Beispiel als Angabe der Betriebsspannung: ~9Volt
> Dann könnte man sehen, daß die Z-Dioden nur dann gebraucht werden, wenn
> man das interne Programmierinterface nutzen will.
Ad 9 Volt: Hab' ich übersehen - mea culpa ;-)
Ad Z-Diode: Das steht nicht im Text und für den Schaltplanteil fehlte 
mir das Wissen.
Ad Dein rauer Ton: Bitte nicht hauen ...

Liebe, nette und freundliche Grüße aus Wien
Harald

Edit (ist mir noch eingefallen @Röhri): Ratschlag, wenn Dir in Zukunft 
einer ein bißchen teppat vorkommt, so wie ich zum Beispiel, lass ihn - 
er ist es nicht wert und Du brauchst Dich nicht ärgern. Dann hat jeder 
Ruh und das Forum bleibt nett!

: Bearbeitet durch User
von Harald F. (haraldwien)


Lesenswert?

Der Ordnung halber: Pollin hat sich bereits gemeldet und die kostenlose 
Nachlieferung der fehlenden Bauteile avisiert. Vorbildlich.

von Rohri Gallagher (Gast)


Lesenswert?

Harald Fuckar schrieb:
> Ad Z-Diode: Das steht nicht im Text und für den Schaltplanteil fehlte
> mir das Wissen.


Aha, das konnte ich ja nicht ahnen, daß Dir für den Schaltplan das 
Wissen fehlt. Das macht aber überhaupt nichts, denn für den Aufbau 
eigener Schaltungen ist solches Wissen ja vollkommen entbehrlich.

> Ad Dein rauer Ton: Bitte nicht hauen ...

Rauher Ton, hm....
Den hasst Du noch nicht erlebt...

Harald Fuckar schrieb:
> Edit (ist mir noch eingefallen @Röhri): Ratschlag, wenn Dir in Zukunft
> einer ein bißchen teppat vorkommt, so wie ich zum Beispiel, lass ihn -
> er ist es nicht wert und Du brauchst Dich nicht ärgern. Dann hat jeder
> Ruh und das Forum bleibt nett!

Da ist natürlich was dran. Eben, warum sollte man sich die Mühe machen, 
Hinweise zu geben, die der Fragesteller ebensogut hätte selbst finden
können, wenn er ein wenig nachdenken könnte.
Aber egal: Ich werde Dich nicht wieder behelligen und wünsche Dir viel
Erfolg beim Stochern im Nebel.

Eben so freundliche und nette Grüße
Rohri

von Detlef K. (deka65)


Lesenswert?

Hallo,
Ich benutze auch das Pollin Eva-Board. Bin zufrieden damit.
Meine Schaltungen teste ich aber auf einem Breadboard.
Dazu habe ich ein IDE-Flachbandkabel (Pollin Best.Nr. 720296)
und einen Rasterplatinen-Adapter (Pollin Best:Nr. 810057) ,
um das Eva-Board mit dem Steckbrett zu verbinden.
Dadurch bin ich unabhängig bei der Pinbelegung (Taster, Led's)
die ja beim Eva-Board nur auf PortD liegen.
Man kann mit dem IDE Kabel und dem Adapter vom Steckbrett aus
auf alle Portpins des AVR zugreifen.

Ist ja nur ein Vorschlag.

Gruss
deka65

von Harald F. (haraldwien)


Lesenswert?

Danke @deka65!
Habe gleich bei Pollin bestellt. Hab' mir eh schon Gedanken gemacht wie 
ich möglichst elegant vom Evaluationsboard aufs Breadboard komm'.

von oldmax (Gast)


Angehängte Dateien:

Lesenswert?

Hi
Ich hab mal eine kleine Skizze angefertigt, wie die Verbindung zum 
Steckbrett realisierbar ist. Wenn du dir paasend zum Controller dann 
kleine Zettelchen anfertigst, einlaminierst und mit Klettband im Bereich 
der Buchsenleiste befestigst, brauchst du auch nicht immer in den 
"Schaltplan" schauen. Übrigends, wenn du nicht weißt, wie man einen 
solchen lesen kann, dann sie zu, das du jemanden findest, der dir das 
beibringt. Ohne das Wissen um Schaltsymbole wirst du ganz schnell die 
Lust verlieren. Nicht nur, das du Probleme bekommen wirst, schon eine 
einfache Diode richtig anzuschließen, du kannst dann auch keine 
Schaltskizze anfertigen. Das ist aber, auch wenn es hier manchmal nicht 
so scheint, das A und O, wennn du mit deinen Experimenten irgendwann 
auch Erfolg haben willst.
Es muss nicht immer ein kompliziertes Schaltplanprogramm sein, Paint 
läßt sich auch ganz gut für einfache Skizzen verwenden.
Gruß oldmax

von Harald F. (haraldwien)


Lesenswert?

Danke @oldmax für Deine guten Tipps.

oldmax schrieb:
> ... brauchst du auch nicht immer in den
> "Schaltplan" schauen. Übrigends, wenn du nicht weißt, wie man einen
> solchen lesen kann ...
Nein nein, so schlimm ist es nicht mit mir! Ich hab' den Schaltplan eben 
nur "überflogen". Das da zwei Z-Dioden sind und welchen Zweck die haben 
ist mir entgangen. Also welche Symbole es gibt (oder zumindest wo man 
nachschauen muss wenn man's nicht weiß), wo bei einer Diode vorn und 
hinten ist, das ein ELKO zwei Seiten hat, wie man einen Transistor 
positioniert, wie man ein IC zu betrachten hat, wie man die Pin's zählt, 
wie man ein Datasheet sucht und halbwegs richtig liest, wie das alles 
zusammenhängt, das weiß ich schon, manchmal gut, manchmal weniger gut - 
aber da les' ich meistens nach. GottSeiDank gibt's ja Foren und Google 
;-)
Also so ein totaler Depp bin auch wieder nicht, keine Angst. Aber 
manchmal komm ich halt ein bißchen "begriffsstützig" rüber.

Und ich mag's halt nicht, wenn einer im Forum "ruppig" daherkommt. 
Manche scheinen nix besseres zu tun zu haben, als unvollkommene Beiträge 
von unvollkommenen Neulingen zu suchen und denen ordentlich den Marsch 
zu blasen.
Na ja, ist auch ein Zeitvertreib.

Schönen Tag noch und Danke - Deine Infos waren sehr hilfreich und werden 
von mir sicher umgesetzt!

P.S: Schaltpläne mache ich mit TinyCad.
Guckst Du da: 
http://www.strippenstrolch-stammtisch.de/thread.php?board=6&thread=113#4

: Bearbeitet durch User
von wendelsberg (Gast)


Lesenswert?

Thomas der Bastler schrieb:
> Kleiner Tipp: die untere RS232 Anschluss geht nicht wenn Du über ISP
> proggen willst, man muss die obere nehmen.

Und beachten: Man braucht eine "richtige" RS232-Schnittstelle, da diese 
obere "Schnittstelle" ein extrem vereinfachter Bitbanging-Adapter ist. 
Bei avrdude "ponyser" genannt.

USB-Adapter funktionieren oft nicht und wenn, dann sehr langsam.

wendelsberg

von Thomas D. (thomasderbastler)


Lesenswert?

Harald Fuckar schrieb:
> Habe gleich bei Pollin bestellt. Hab' mir eh schon Gedanken gemacht wie
> ich möglichst elegant vom Evaluationsboard aufs Breadboard komm'.

Ich habe glaube sowas "übrig"...warte kurz mit der Bestellung.
Schaue ich heute Nachmittag nach und mache Dir ein Bild, was ich da 
habe.

von Harald F. (haraldwien)


Lesenswert?

Thomas der Bastler schrieb:
> Ich habe glaube sowas "übrig"...warte kurz mit der Bestellung.
> Schaue ich heute Nachmittag nach und mache Dir ein Bild, was ich da
> habe.
Danke Dir!
Mach Dir die Arbeit bitte nicht.
Hab' schon bestellt.

von Thomas D. (thomasderbastler)


Lesenswert?

Kein Problem !..dachte bevor es bei mir "vergammelt".......

von Harald F. (haraldwien)


Lesenswert?

Hab' jetzt AtmelStudio6 auf meinem PC fertig installiert.
Beim Evaluationsboard muss ich noch auf ein paar Teile warten, bevor ich 
es zusammenbauen kann.
Kann ich eigentlich mit dem AtmelStudio schon was sinnvolles 
(Simulation) machen, ohne dass ein AVR in echt dranhängt?

von Thomas (kosmos)


Lesenswert?

ja im Studio kannst du das ganze Programm schritt für Schritt 
durchgehen. Sieht was die Ausgänge machen und das Programm reagiert auch 
auf die Eingänge die du per Hand anklicken kannst...

Aus dem Studio raus programmieren geht meines Wissens aber nur mit Atmel 
Hardware oder kann das schon ein Fremdprogger?

von Klaus (Gast)


Lesenswert?

@ Harald Fuckar

Fürs Debuggen mit der Hardware empfehle ich den AVR-Dragon.

von Harald F. (haraldwien)


Lesenswert?

Thomas O. schrieb:
> Aus dem Studio raus programmieren geht meines Wissens aber nur mit Atmel
> Hardware oder kann das schon ein Fremdprogger

Ich hatte gehofft, dass das mit dem "DIAMEX ALL-AVR Programmer" auch 
geht. Dort steht nämlich in der Beschreibung "kann direkt mit AVR-Studio 
4 benutzt werden". Und daraus schöpfte ich meine Hoffnung, dass das 
vielleicht auch mit AtmelStudio6 gehen wird. Na ich werd's ja bald 
wissen ;-)

von Rainer V. (rudi994)


Lesenswert?

Thomas O. schrieb:
> Aus dem Studio raus programmieren geht meines Wissens aber nur mit Atmel
> Hardware oder kann das schon ein Fremdprogger?

Habe nur AVR Studio 4.19, Zugriff auf den STK500-kompatiblen Programmer 
mySmartUSB-MK2 über Menü Tools\Programm AVR\Connect wird abgebrochen, da 
das myAVR-Board/Programmer-MK2 nicht wie ein originales STK500 die vom 
Studio angeforderten Werte zurückliefern kann.

Im Menü Tools\AVR-Prog... funktioniert aber das Auslesen des ATmega8 auf 
dem myAVR-Board bzw. das Verifizieren mit einem Hex-File, der zuvor von 
einem anderen Programm durch Auslesen desselben ATmega8 erstellt wurde. 
Flashen des µC über dieses Menü konnte ich noch nicht testen, nehme aber 
an, daß es funktioniert, wenn man dafür den Hex-File o.a. hat.

In Studio 6 kann das anders sein, öfter war zu lesen, daß Atmel einiges 
geändert hat, sodaß es mit myAVR-Produkten nicht mehr läuft.

von Thomas (kosmos)


Lesenswert?

deswegen sind es die 30€ in einen original Progger von Atmel wert, da 
klick ich im Studio auf Auto und die Programmierung läuft so ab wie ich 
es eingestellt habe. z.B. erst löschen, proggen, verifizieren...

von Mathias O. (m-obi)


Lesenswert?

Also ich nutze auch schon seit Jahren das Atmel (nicht das von Amtel) 
Eval-Board von Pollin. In Verbindung mit einem USBasp als Programmer. 
Bin eigentlich recht zufrieden damit. Seit einigen Monaten programmiere 
ich in Qt Creator, vorher mit Code::Blocks. Aber jetzt ist es 
komfortabler und einfacher.

von Stefan F. (Gast)


Lesenswert?

> In meiner Beschreibung vom Pollin-Evaluationsboard gibt es
> im Schaltplan gar keinen Kondensator im Zusammenhang mit
> dem Reset-Button?
> Bin ratlos, was Stefanus meint.

Ich habe offensichtlich eine ältere Version von dem Board. Kein 
Kondensator am Reset Pin ist bei diesem Board sicher auch Ok.

von Harald F. (haraldwien)


Lesenswert?

Mathias O. schrieb:
> Also ich nutze auch schon seit Jahren das Atmel (nicht das von Amtel)
> Eval-Board von Pollin

Mein Gott! Jetzt wo Du das so nett unterschwellig ironisch schreibst, 
fällts mir erst auf, wie doof ich bin: AMTEL statt ATMEL.
Na ja, aber um was es geht, haben alle gewusst ;-)

von Harald F. (haraldwien)



Lesenswert?

Hallo!
Falls hier noch jemand reinschaut.
Ich möchte gerne beim "Bausatz Atmel-Evaluations-Board V2.0.1" von 
Pollin die RS232-Programmierschnittstelle (ISP über D-Sub9-Stecker) 
weglassen, weil ich ja mit dem "DIAMEX ALL AVR Programmer USB-ISP" auf 
den 10-poligen Pfostenstecker komme.
Dazu kann ich meiner Meinung nach lt. Schaltplan im Bereich "RS232-ISP" 
alles weglassen (J3, R1, R2, R5, R6, T1, D1, D2 und D3) AUSSER dem 
Widerstand R3.

Könnte bitte jemand der mit Elektronikwissen beschlagen ist, anhand der 
angehängten Beschreibung (Schaltplan auf Seite 6) prüfen, ob ich da eh 
nicht schief liege.

DANKE!

Harald

von John Wayne sein Garagennachbar (Gast)


Lesenswert?

Harald Fuckar schrieb:
> Dazu kann ich meiner Meinung nach lt. Schaltplan im Bereich "RS232-ISP"
> alles weglassen (J3, R1, R2, R5, R6, T1, D1, D2 und D3) AUSSER dem
> Widerstand R3.

So ist es.

von Harald F. (haraldwien)


Lesenswert?

Danke @...Nachbar
Schöne Grüße an John.
Harald

von John Wayne sein Garagennachbar (Gast)


Lesenswert?

Harald Fuckar schrieb:
> Danke @...Nachbar
> Schöne Grüße an John.

Ich richte sie ihm aus, wenn ich wieder durch Laramy komme...

von Harald F. (haraldwien)


Lesenswert?

Hat jemand vielleicht eine 40-polige IDE-Verlängerung 1:1 mit zwei 
WEIBCHEN (Buchsen) >= 15 cm <= 60 cm für mich?
Für die Verbindung vom Pollin-Board zu einem "Brotbrett".
Unversicherten Versand nach AT berücksichtigen.
Event. per eMail.
Danke
Harald

von Peter X. (peter_x)


Lesenswert?

Harald Fuckar schrieb:
> Hat jemand vielleicht eine 40-polige IDE-Verlängerung

Guck' ma auf dem Wertstoffhof in einen älteren PC. Die wurden dort zu 
Massen verbaut. PATA-Festplattenverbinder zum Mainboard.

von Mathias O. (m-obi)


Lesenswert?

Vergess nicht, wenn du schon beim Recycler bist auch ein Steckernetzteil 
mitzunehmen ;)

von John Wayne sein Garagennachbar (Gast)


Lesenswert?

Mathias O. schrieb:
> Vergess nicht, wenn du schon beim Recycler bist auch ein Steckernetzteil
> mitzunehmen ;)

...und von zu Hause auch gleich noch den
"DIAMEX ALL AVR Programmer USB-ISP"

Hier hat jemand GUTE Erfahrungen damit gemacht:
Beitrag "Re: Diamex USB ISP Programmer"

von Harald F. (haraldwien)


Angehängte Dateien:

Lesenswert?

So das Evaluationsboard ist jetzt endlich fertig.
Die drei Komponenten
* ATMEL-Evaluationsboard von Pollin
* DIAMEX ALL AVR Programmer USB-ISP
* ATMEL Studio
können miteinander und funktionieren auch gut und ohne Probleme.

Hab' auch schon meine ersten Schritte in Assembler gemacht.
Wie man in ua. Beispiel sieht, war ich brav und hab' keine 
"WaitSchleifen" gebastelt, sondern alles (TastenEntprellen, 
ServoPulsing) wie von den Lehrmeistern verlangt, über Timer-Interrupts 
abgewickelt. Da ich von der kfm. Programmierung (PowerBuilder) komme, 
haben mir die fehlenden Dezimal-Rechenoperationen schon sehr gefehlt. 
Ist wirklich eine ganz neue Erfahrung für mich so nah am "Takt" zu 
arbeiten.
Die Steuerung für einen Servomotor funktioniert ja schon ganz gut. ABER! 
Was mir jetzt Kopfzerbrechen macht, ist, wie lege ich die Steuerung von 
mehreren Servomotoren an, die ja gleichzeitig in verschiedene Richtungen 
drehen sollen? Hier im Forum gibt's ja ein Beispiel, das ist aber leider 
in C. Also muß ich mich damit auch auseinender setzen.

Ach ja, beim Basteln des Evaluationsboardes ist mir leider ein 
Missgeschick passiert. Ich war schon fertig, hab' vom IDE-Stecker zu den 
Sockeln die Leitungen "durchgeklingelt" und bin erst da draufgekommen, 
dass der 28er-Nullkraft-Sockel fehlerhaft ist. Und dann hab' ich ihn 
ausgelötet. Und dabei war ich wahrscheinlich zu heftig. Und dann hab' 
ich einen anderen eingelötet. Und dann waren ein paar Verbindungen nicht 
mehr da. Und dann hab' ich die Platine weggeschmissen. Und dann hab' ich 
mir bei Pollin eine neue bestellt. Und dann hab' ich die 
Nullkraft-Sockel auf dem neuen Evaluationsboard auf Buchsenleisten 
gesetzt. Und dann hat das aber geklappt. Zwichendurch hab' ich versucht, 
mir in den A.... zu beissen. Ist aber eh nicht gegangen, weil das ist 
bei mir noch nie gegangen ;-)

Dies ist mein zweites AVR-Assembler-Programm. Das Erste war 
Tasten+LED+Summer (wie am Evaluationsboard vorgesehen).
1
;
2
; ******************************************************************************
3
; Programm: ServoLernen.asm
4
; Datum...: 24.11.2014
5
; Autor...: Harald Fuckar
6
;
7
;                                   ATmega88
8
;                               -----------------
9
;                               | 1 PC6  AVCC 28|
10
;                               | 2 PD0   PC4 27|
11
;                               | 3 PD1   PC3 26|
12
;                        Taste1 | 4 PD2   PC2 25|
13
;                        Taste2 | 5 PD3   PC1 24|
14
;                        Taste3 | 6 PD4   PC0 23|
15
;                               | 7 VCC   GND 22|
16
;                               | 8 GND  AREF 21|
17
;                               | 9 PB6  AVCC 20|
18
;                               |10 PB7   PB5 19|
19
;                          LED1 |11 PD5   PB4 18|
20
;                          LED2 |12 PD6   PB3 17|
21
;                     ServoPuls |13 PD7   PB2 16|
22
;                          CLKO |14 PB0   PB1 15|
23
;                               -----------------
24
;
25
; INPUT'S:
26
; Taste1  = Servoarm in "untere" Position fahren
27
; Taste2  = Servoarm in Mittelstellung fahren
28
; Taste3  = Servoarm in "obere" Position fahren
29
;
30
; OUTPUT'S:
31
; LED1      = Warnung unteres Servo-Limit erreicht
32
; LED2      = Warnung oberes  Servo-Limit erreicht
33
; ServoPuls  = Servo-Steuerung
34
; CLKO    = ClockOutput (für Kontrolle und Tests)
35
;  
36
; ******************************************************************************
37
.include "m88def.inc"
38
39
;    Konstanten
40
41
    .equ XTAL    = 8000000
42
    .equ Tim2PScal  = 64
43
    .equ OCR2ALow  = XTAL / Tim2PScal / 1000   ; OCR2A-Wert für 1 Millisekunde
44
    .equ OCR2AHigh  = XTAL / Tim2PScal /  500   ; OCR2A-Wert für 2 Millisekunden
45
    .equ OCR2AMid  = (OCR2ALow + OCR2AHigh) / 2 ; OCR2A-Mittelwert 
46
47
    
48
;    Symbolische Namen für Register vergeben
49
50
    .def iwr0    = r1
51
    .def iwr1    = r2
52
    .def key_old  = r17
53
    .def key_state  = r18  ; Tasten-Zustand alt
54
    .def key_stalt  = r4  ; Tasten-Zustand neu
55
    .def key_press  = r5
56
    .def temp1    = r16
57
    .def Tim2IZ    = r19  ; Interrupt-Zähler Timer-2
58
    .def Tim2IZMax  = r20
59
60
    .equ key_pin  = PIND
61
; 
62
; ==============================================================================
63
;    
64
;    Hier fängt Code-Bereich des Flashspeichers an
65
.cseg
66
.org 0000
67
    rjmp Init    
68
69
;    Interrupt-Vektoren    
70
.org  INT0addr  reti          ; External Interrupt Request 0
71
.org  INT1addr  reti          ; External Interrupt Request 1    
72
.org  PCI0addr  reti          ; Pin Change Interrupt Request 0
73
.org  PCI1addr  reti          ; Pin Change Interrupt Request 0
74
.org  PCI2addr    reti          ; Pin Change Interrupt Request 1    
75
.org  WDTaddr    reti          ; Watchdog Time-out Interrupt
76
.org  OC2Aaddr  rjmp isr_Timer2CMA    ; Timer/Counter2 Compare Match A
77
.org  OC2Baddr  reti          ; Timer/Counter2 Compare Match B
78
.org  OVF2addr  reti          ; Timer/Counter2 Overflow
79
.org  ICP1addr  reti          ; Timer/Counter1 Capture Event
80
.org  OC1Aaddr  reti          ; Timer/Counter1 Compare Match A
81
.org  OC1Baddr  reti          ; Timer/Counter1 Compare Match B
82
.org  OVF1addr  reti          ; Timer/Counter1 Overflow
83
.org  OC0Aaddr  reti          ; TimerCounter0 Compare Match A
84
.org  OC0Baddr  reti          ; TimerCounter0 Compare Match B
85
.org  OVF0addr  rjmp isr_Timer0OFlow  ; Timer/Couner0 Overflow
86
.org  SPIaddr    reti          ; SPI Serial Transfer Complete
87
.org  URXCaddr  reti          ; USART Rx Complete
88
.org  UDREaddr  reti          ; USART, Data Register Empty
89
.org  UTXCaddr  reti          ; USART Tx Complete
90
.org  ADCCaddr  reti          ; ADC Conversion Complete
91
.org  ERDYaddr  reti          ; EEPROM Ready
92
.org  ACIaddr    reti          ; Analog Comparator
93
.org  TWIaddr    reti          ; Two-wire Serial Interface
94
.org  SPMRaddr  reti          ; Store Program Memory Read
95
    
96
.org INT_VECTORS_SIZE
97
;
98
;    ------------------------------------------------------------------------
99
;    InterruptServiceRoutine: Timer0-Overflow
100
isr_Timer0OFlow: 
101
    push    r0                 ; temporäre Register sichern
102
    in      r0, SREG
103
    push    r0
104
    push    iwr0
105
    push    iwr1
106
 
107
    in    temp1, key_pin    ; Bits umkehren
108
    com    temp1        ; gedrückte Tasten werden zu 1  
109
    cbr    temp1, 0b11100011  ; PINs, die nix mit den TastenPINs zu tun
110
                  ; haben auf LOW (nicht gesetzt) setzen
111
112
    mov     iwr0, key_old      ;00110011  10101010            00110011
113
    mov     key_old, temp1     ;11100011
114
    eor     iwr0, key_old      ;                              11000011
115
    com     key_old            ;00001111
116
    mov     iwr1, key_state    ;                    10101010
117
    or      key_state, iwr0    ;          11101011
118
    and     iwr0, key_old      ;                              00000011
119
    eor     key_state, iwr0    ;          11101000
120
    and     iwr1, iwr0         ;                    00000010
121
    or      key_press, iwr1    ; gedrückte Taste merken
122
  ;
123
    pop     iwr1               ; Register wiederherstellen
124
    pop     iwr0
125
    pop     r0
126
    out     SREG, r0
127
    pop     r0
128
    reti
129
;
130
;    ------------------------------------------------------------------------
131
;    InterruptServiceRoutine: Timer/Counter2 Compare Match A
132
isr_Timer2CMA:
133
    push    r0                 ; temporäre Register sichern
134
    in      r0, SREG
135
    push    r0
136
137
    inc    Tim2IZ
138
    cpi    Tim2IZ, 1
139
    breq  isr_Timer2CMA_Puls1  
140
    cpi    Tim2IZ, 2
141
    breq  isr_Timer2CMA_Puls0  
142
    cp    Tim2IZ, Tim2IZMax
143
    brne  isr_Timer2CMA_Exit
144
    ldi    Tim2IZ, 0  
145
146
isr_Timer2CMA_Exit:
147
    pop     r0
148
    out     SREG, r0
149
    pop     r0
150
    reti
151
isr_Timer2CMA_Puls1:
152
    sbi    PORTD, PD7  ; ServoPuls-Portpin auf HIGH setzen
153
    rjmp  isr_Timer2CMA_Exit
154
isr_Timer2CMA_Puls0:
155
    cbi    PORTD, PD7  ; ServoPuls-Portpin auf LOW  setzen
156
    rjmp  isr_Timer2CMA_Exit
157
;
158
;    ------------------------------------------------------------------------
159
;    Hier beginnt das Hauptprogramm mit Init
160
Init:
161
162
;    SRAM-Stack einrichten
163
    ldi    temp1, high(ramend)
164
    out    sph, temp1
165
    ldi    temp1, low(ramend)
166
    out    spl, temp1
167
168
;    PortB Konfigurieren
169
;       Output:  CLKO(PB0)
170
    ldi    temp1, 1<<DDB0
171
    out    DDRB, temp1
172
173
;    PortD Konfigurieren
174
;       Output:  LED1(PD5), LED2(PD6), ServoPuls(PD7)
175
;    Input:  Taste1(PD2), Taste2(PD3), Taste3(PD4) (interne PullUps)
176
177
    ldi    temp1, 1<<DDD7 | 1<<DDD6 | 1<<DDD5
178
    out    DDRD, temp1
179
    ldi    temp1, (1<<PD4)|(1<<PD3)|(1<<PD2)
180
    out    PORTD, temp1          
181
182
;    Timer-0 konfigurieren
183
    ldi    temp1, 1<<CS02 | 0<<CS01 | 1<<CS00  ;  101 = Timer0 mit Vorteiler 1024
184
    out    TCCR0B, temp1
185
    ldi    temp1, 1<<TOIE0            ; Timer Overflow Interrupt einrichten
186
    sts    TIMSK0, temp1
187
188
    clr    key_old                ; die Register für die Tastenauswertung im
189
    clr    key_state              ; Timer-0-Interrupt initialisieren
190
    clr    key_stalt
191
    clr    key_press
192
    
193
;    Timer-2 konfigurieren
194
    ldi    temp1, 1<<WGM21            ; Timer2 im CTC-Mode (Clear Timer on Compare)
195
    sts    TCCR2A, temp1
196
    ldi    temp1, 1<<CS22 | 0<<CS21 | 0<<CS20  ;  100 = Timer2 mit Vorteiler 64
197
    sts    TCCR2B, temp1
198
    ldi    temp1, OCR2AMid
199
    sts    OCR2A, temp1            ; Wert für Mittelstellung einstellen
200
    ldi    temp1, 1<<OCIE2A           
201
    sts    TIMSK2, temp1            ; match A interrupt enable  
202
203
    ldi    Tim2IZ, 0
204
    ldi    Tim2IZMax, 15
205
206
    sei                ; Interrupt freigeben
207
208
Main:
209
210
    clr      key_press              ; Tastendruck zurücksetzen
211
212
    cp    key_state, key_stalt  ; Tasten gleich geblieben?
213
    breq  main          ; Ja, also nix zu tun
214
215
    ; Hier steht fest, dass sich was geändert hat - aber welche Taste und wie?
216
    mov    temp1, key_stalt
217
    mov    key_stalt, key_state
218
    eor    temp1, key_state    ; welche Taste hat sich geändert
219
220
    sbrc  temp1, PD2        ; SkipIfBitInRegisterIsClear - wenn Taste1 nicht betroffen
221
    rcall  Taste1
222
223
    sbrc  temp1, PD3        ; SkipIfBitInRegisterIsClear - wenn Taste2 nicht betroffen
224
    rcall  Taste2
225
226
    sbrc  temp1, PD4        ; SkipIfBitInRegisterIsClear - wenn Taste3 nicht betroffen
227
    rcall  Taste3
228
229
    rjmp main
230
    
231
Taste1:
232
    sbrs  key_state, 2  ; SkipIfBitInRegisterIsSet - wenn Taste gedrückt SKIP
233
    ret            ; sofort retour wenn Taste losgelassen
234
    cbi    PORTD, PD5    ; LED1 aus
235
    cbi    PORTD, PD6    ; LED2 aus
236
    lds    temp1, OCR2A
237
    dec    temp1
238
    cpi    temp1, OCR2ALow
239
    brcc  Taste1_NoLim  ; unteres Limit nicht unterschritten
240
    sbi    PORTD, PD5    ; LED1 an
241
    ldi    temp1, OCR2ALow
242
Taste1_NoLim:
243
    cli
244
    sts    OCR2A, temp1
245
    rcall  Tim2IZMax_Kalk
246
    ldi    temp1, 0
247
    sts    TCNT2, temp1
248
    sei
249
    ret
250
Taste2:
251
    sbrs  key_state, 3  ; SkipIfBitInRegisterIsSet - wenn Taste gedrückt SKIP
252
    ret            ; sofort retour wenn Taste losgelassen
253
    cbi    PORTD, PD5    ; LED1 aus
254
    cbi    PORTD, PD6    ; LED2 aus
255
    ldi    temp1, OCR2AMid
256
    cli
257
    sts    OCR2A, temp1
258
    rcall  Tim2IZMax_Kalk
259
    ldi    temp1, 0
260
    sts    TCNT2, temp1
261
    sei
262
    ret
263
Taste3:
264
    sbrs  key_state, 4  ; SkipIfBitInRegisterIsSet - wenn Taste gedrückt SKIP
265
    ret            ; sofort retour wenn Taste losgelassen
266
    cbi    PORTD, PD5    ; LED1 aus
267
    cbi    PORTD, PD6    ; LED2 aus
268
    lds    temp1, OCR2A
269
    inc    temp1
270
    cpi    temp1, OCR2AHigh
271
    brcs  Taste3_NoLim  ; oberes Limit nicht überschritten
272
    sbi    PORTD, PD6    ; LED2 an
273
    ldi    temp1, OCR2AHigh
274
Taste3_NoLim:
275
    cli
276
    sts    OCR2A, temp1
277
    rcall  Tim2IZMax_Kalk
278
    ldi    temp1, 0
279
    sts    TCNT2, temp1
280
    sei
281
    ret
282
;
283
;    ------------------------------------------------------------------------
284
;    Kalkulation für Gesamt-Signalperiode
285
;    Aktueller Wert von OCR2A steht in temp1 
286
Tim2IZMax_Kalk:
287
;    
288
;    Auf den Stack sichern
289
    push    r0                 
290
    in      r0, SREG
291
    push    r0
292
293
    ldi    Tim2IZ, OCR2AHigh
294
    sub    Tim2IZ, temp1
295
    ldi    Tim2IZMax, 0
296
Tim2IZMax_KalkLoop:
297
    cpi    Tim2IZ, 12
298
    brbs  SREG_C, Tim2IZMax_Fini
299
    inc    Tim2IZMax
300
    subi  Tim2IZ, 12
301
    rjmp  Tim2IZMax_KalkLoop
302
Tim2IZMax_Fini:
303
    ldi    temp1, 10
304
    add    Tim2IZMax, temp1
305
    ldi    Tim2IZ, 0  
306
307
;    vom Stack zurücksichern
308
    pop     r0
309
    out     SREG, r0
310
    pop     r0
311
    ret

von Thomas (kosmos)


Lesenswert?

hi die Idee mit der Pinbelegung am Anfang des Codes finde ich genial ich 
bin da immer am hin und her schalten zw. AVR-Studio und dem Datenblatt 
des Chips.

bei deinem Interruptvektortabelle ist mir was aufgefallen.
Ich mache das bei so Beispiel (ATtiny26)
.CSEG
.ORG  0x00
rjmp RESET      ; Reset handler
reti; rjmp EXT_INT0    ; IRQ0 handler
reti; rjmp PIN_CHANGE  ; Pin change handler
rjmp TIM1_CMP1A      ; Timer1 compare match 1A
reti; rjmp TIM1_CMP1B  ; Timer1 compare match 1B
reti; rjmp TIM1_OVF    ; Timer1 overflow handler
reti; rjmp TIM0_OVF    ; Timer0 overflow handler
reti; rjmp USI_STRT    ; USI Start handler
reti; rjmp USI_OVF    ; USI Overflow handler
reti; rjmp EE_RDY    ; EEPROM Ready handler
reti; rjmp ANA_COMP    ; Analog Comparator handler
reti; rjmp ADC      ; ADC Conversion Handler

bei den verwendeten Interrupts lösche ich dann einfach das reti raus 
welches einfach den Rücksprung veranlasst. Man kann darauf auch 
Breakpoint legen um im Studio gleich zu sehen wo das ganze hinverzweigen 
will.

von picaxe (Gast)


Lesenswert?

http://www.zierath-software.de/board/index.php?page=Thread&threadID=415&s=e07e12ee7609525f5bee81ec325a0b32d94c4fd2

Ist so was normal!?
Hatte also doch eine Ahnung diesen Forum nicht zu trauen!

von auch 'n "Gast" lool (Gast)


Lesenswert?

Das ist absolut normal würde ich sagen.

Es wird dort ja nur erwähnt welche Folgen ein Systemwechsel haben kann.
So kann sich doch jeder selber ein Bild machen ob das Sinn ergibt.

von Harald F. (haraldwien)


Lesenswert?

Thomas O. schrieb:
> bei den verwendeten Interrupts lösche ich dann einfach das reti raus
> welches einfach den Rücksprung veranlasst. Man kann darauf auch
> Breakpoint legen um im Studio gleich zu sehen wo das ganze hinverzweigen
> will.

Ja, ich hab' mir das aus der "m88def.inc"-Datei reinkopiert. Die ist, 
gerade für mich als Anfänger, sehr nützlich, weil man da auch schön 
einen Überblick über die Label hat.

von Thomas (kosmos)


Lesenswert?

Wollte damit sagen das man das .ORG nicht jedes mal braucht sondern die 
Sprungbefehle ab 0x00 fortlaufend sind.

von Harald F. (haraldwien)


Lesenswert?

Danke, das war mir schon klar.
Aber wenn zum Beispiel aus irgend einem Grund eine Zeile dort verloren 
geht, funktioniert das Ding immer noch, wenn der ".org"-Eintrag da ist.
Und es kostet ja zusätzlich keinen Speicherplatz im Programm.
Schönen Tag noch!
Harald

von c-hater (Gast)


Lesenswert?

Harald Fuckar schrieb:

> Hab' auch schon meine ersten Schritte in Assembler gemacht.
> Wie man in ua. Beispiel sieht, war ich brav und hab' keine
> "WaitSchleifen" gebastelt, sondern alles (TastenEntprellen,
> ServoPulsing) wie von den Lehrmeistern verlangt, über Timer-Interrupts
> abgewickelt.

Das ist aber noch nicht das Optimum. Zumindest für den Betrieb der 
Servos solltest du keine Interrupts verwenden, das kann die 
Timerhardware ganz ohne Mitarbeit der MCU leisten. Dafür gibt es die 
PWM-Modi und die entsprechenden Hardwareausgänge. Jeder der drei Timer 
des Mega88 besitzt zwei PWM-Kanäle, insgesamt könntest du also sechs 
Servos damit ansteuern und die MCU muß dazu (abgesehen von der 
Initialisierung der Timer) nur dann etwas tun, wenn die Servoposition 
geändert werden soll. Das Halten der zuletzt gesetzten Positionen der 
Servos hingegen erledigt die Hardware dann ganz alleine.

Noch eine kurze Bemerkung zu deinem Programm: Die Berechnung der 
OCR-Werte gleich zu Anfang ist leicht fehlerhaft, da fehlt jeweils ein 
"-1". Siehe Datenblatt.

Trotzdem: Für ein zweites Asm-Programm ist das schon eine sehr saubere 
Leistung. Weiter so.

von Harald F. (haraldwien)


Lesenswert?

Danke @c-hater!
Werd' ich probieren.

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.