AMTEL Evaluationsboard 2.0.1 von Pollin

OP #3870613
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
Gast #3870615
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
#3870624
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 !
#3870648
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?
OP #3870723
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?
Gast #3870772
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
Gast #3870775
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
OP #3872085
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.
#3872087
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.
#3872090
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
Gast #3872115
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
#3872229
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.
OP #3872251
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?
#3872274
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.
OP #3872660
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
Gast #3872907
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.
OP #3872920
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!
Gast #3872944
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
#3872974
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
Gast #3873523
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
Angehängte Dateien:
OP #3873530
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
Gast #3873537
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
#3874876
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?
OP #3874955
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 ;-)
#3874956
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.
#3874971
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.
Gast #3876166
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.
OP #3882136
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
OP #3898655
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
Angehängte Dateien:
#3899104
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.
OP #3899545
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.
Gast #3899555
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren