Forum: Mikrocontroller und Digitale Elektronik Benötige etwas Hilfe bei meiner 1. Mikrokontrollerschaltung


von Alexander _. (bastlwastl)


Lesenswert?

Tag Leute

Wie eventuell ein paar von euch mitbekommen haben, beginne ich gerade
mit dem Microkontroller-Tutorial.

(Ich bin mit dem Zusammenlöten des Programieradapters fertig und muß
ihn nur mehr durchmessen ob ich alles richtig gemacht habe.)

Ich habe mir beim Elektronikladen um die Echke einen Quarzoszilator
besorgt.

Der schaut leider etwas anders aus als der im Tutorial beschriebene.

Der Quarzoszilator sieht eher aus wie ein Keramikkondensator mit 3 in
einer Linie liegenden Beinchen.

Kann mir bitte jemand sagen was VCC, GND und Out ist?

mfg Bastlwastl

von A.K. (Gast)


Lesenswert?

Ist ein Keramik-Resonator, kein Oszillator.

von Jordan (Gast)


Lesenswert?

Wenn du so etwas wie hier meinst:
http://www.sprut.de/electronic/pic/test/index.htm#84mini

dann einfach den mittleren Pin auf Masse und die anderen beiden
an die Oszillatoreingänge des µC.

von Alexander _. (bastlwastl)


Lesenswert?

Meinst du damit:

Einer der äußeren Pins auf XTAL1 und der andere der äußeren Pins auf
XTAL2?

Ist es ein Problem dass ich da wies aussieht ein anderes Bauteil
besorgt habe wie es im Tutorial gezeigt wird?

Ist diese Methode eventuell Fehleranfälliger?

mfg Bastlwastl

von A.K. (Gast)


Lesenswert?

Guckst Du hier, ist anderer Proz aber gleiche Aufgabe:
http://www.sprut.de/electronic/pic/osc/

Dran denken, die Fusebits entsprechend einzustellen. Der Resonator
braucht eine andere Einstellung als der Oszillator.

von Alexander _. (bastlwastl)


Lesenswert?

Danke für den Link.

Aber mit den Pins XTAL1 und XTAL2 bin ich richtig gelegen oder etwa
nicht?

Mal eine Blöde Frage.

Wie stellt man die Fusebits ein?

(Ich habe bis jetzt noch keinen Mikrokontroller programiert.)

mfg Bastlwastl

von A.K. (Gast)


Lesenswert?

Mit den Pins liegst Du richtig, plus mittleren Pin an GND. Die
normalerweise nötigen Kondensatoren sind in dem Resonator schon drin
(deshalb sind's ja 3 Pins).

Die Fusebits stellt man mit dem gleichen Programm ein, mit dem man dem
Controller sein Programm beibringt. Also Atmel Studio oder Ponyprog
oder wassweissich. Siehe sowohl dort also auch in der Doku des
Controllers. Dass im Tutorial nichts drüber drinsteht, wundert mich
auch. Ich selbst verwende den STK500 mit Studio, kann da also wenig
weiterhelfen. Ich habe nur mitbekommen, dass Anwender vom Ponyprog gern
mal jene Fusebits falsch herum interpretieren, mit denen man sich vom
Controller final aussperren kann.

von Alexander _. (bastlwastl)


Lesenswert?

Danke für deine Hilfe

Es kann sein dass im Tutorial was über die Fusebits drinnsteht.

Ich hab mir es noch nicht genau durchgelesen weil ich bis jetzt am
Auslöten der Bauteile bei Schrottgeräten und zusammenbauen zu dem
Programieradapter wahr.

(Als einzigen Bauteil hab ich mir den ATmega8 gekauft.)

Wenn dass mit den Fusebits wirklich so kitzelig ist, werd ich mich noch
mal melden bevor ich das Programm auf den Käfer übertrage.

mfg Bastlwastl

von Ratber (Gast)


Lesenswert?

@Alexander



>Aber mit den Pins XTAL1 und XTAL2 bin ich richtig gelegen oder etwa
>nicht?

Ja,is richtig.
Den Mittleren an Masse aber zur Not gehts auch ohne ihn.


>Wenn dass mit den Fusebits wirklich so kitzelig ist, werd ich mich
>noch mal melden bevor ich das Programm auf den Käfer übertrage.

Kompliziert ?
Nein !

Kitzelig ?
nur wenn man nicht weiß was man macht.

Les dir das zum Controller passende Datenblatt durch.
Such im Tutorial danach und Google einwenig.
Versuche nicht alle auf einmal zu verstehen.
Nacheinander gehts besser.
Es wist wirklich nicht schwer.

von Alexander _. (bastlwastl)


Lesenswert?

Tag

Dass Problem wahr jetzt, dass ich mich bis jetzt fast nur mit der
Hardware beschäftigt habe um das Tutorial durchgehen zu können.

Desswegen habe ich nach weniger als gar keine Ahnung von der Software.

Dass wird sich hoffentlich bald ändern.
Es kann doch nicht sehr viel schwehrer sein als das AWL-Programieren
einer SPS.

Falls ihr nicht wisst was AWL ist:
AWL ist eine dem Assembler sehr ähnliche Programiersprache für
"antike" SPSen.

Ach Übrigens.
Weis jemand wo ich ein Datenblatt mit den Elektrischen Eigenschaften
des ATmega8 finde?

Bis jetzt habe ich nur Datenblätter mit der internen Logik und den
Befählssätzen gefunden.

Es währe aber nicht schlecht zu wissen wie stark die Ein- und Ausgänge
belastet werden dürfen.

mfg Bastlwastl

von Michael F. (startrekmichi)


Lesenswert?

AVR-Datenblätter findet man am einfachsten, indem man auf www.atmel.com
geht und im "Suchen"-Feld den Controller eingibt z.b. ATmega8.
In diesen Datenblättern stehen auch die elektrischen Eigenschaften, ev
muss man aber ein bissle suchen. Wenn ich es richtig im Kopf hab, dann
können die meisten AVRs etwa 40mA pro Pin ausgeben, wobei sie bei Minus
stärker belastbar sind als bei Plus. Steht aber alles im Datenblatt

von Ratber (Gast)


Lesenswert?

Ja,Datenblätter immer beim Hersteller.


Bei der Belastung der Pinns immer vorsichtig sein.
Bei mehr als ner LED besser nen Treiber nehmen.



>Falls ihr nicht wisst was AWL ist:
>AWL ist eine dem Assembler sehr ähnliche Programiersprache für
>"antike" SPSen.

Yo aber nicht so Antik wie "Und E1 und nicht E2 = A1"  :D

von Alexander _. (bastlwastl)


Lesenswert?

Wiso, dass was du da geschrieben hast ist doch AWL, nur ausgeschrieben
und in einer Zeile.
Ich hab zwar schin fast ein halbes Jahr nichts mehr mit der SPS gemacht
aber das was du geschrieben hast würde in AWL mit dem B&R
Programiersystem ProSys ungefähr so ausschauen:

LD    E 21
UND N E 22
=     A 31

oder:

LD    E 21
UND N E 22
PRT   A 31
END

(Falls Eingang 21 gesetzt ist und Eingang 22 nicht, dann setze Ausgang
31. Das = ist vereinfacht gesehen soetwas wie ein Taster, PRT ist
soetwas wie ein Schalter, der wieder ausgeschalten werden muß und SET
bedeutet dass der betreffende Ausgang gesetzt wird, solange er nicht
mit z.B. = N A 31 ausgeschalten ist.)

Die Aus-/Eingänge haben immer mindestens 2 Stellen.

Die Einerstelle steht für die Stelle an der Steckkarte und die 10er
Stelle steht für die Position der Steckkarte von der CPU aus gezählt.
Wobei der 1, Steckplatz nach der CPU für Stezialeinschübe reserviert
ist.

So richtig lustig werden aber die Timer und die Fankenerkennung.
(Vor allem wenn sich jemand KOP-> Kontaktplan einbildet.)

mfg Bastlwastl

von Ratber (Gast)


Lesenswert?

>Wiso, dass was du da geschrieben hast ist doch AWL, nur ausgeschrieben
>und in einer Zeile.

Ja,schon möglich.

Was ich da noch so aussem Kopf weiß ist mittlerweile über 25 Jahre alt
und stammt zudem noch von einer AEG.
Is also nicht mehr frisch :D

von Alexander _. (bastlwastl)


Lesenswert?

Soviel ich weis ist die SPS mit der ich arbeite aus dem Jahr 95.
(Zumindestens besagt das ein Aufkleber auf dem EPROM.

Auf 25 Jahre Erfahrung im Programieren kann ich leider nicht
zurückgreifen, da ich da noch die Windeln anhatte und mein gßößtes
Interesse dem Fläschchen galt ;o)

Mein Wissen überr SPSen ist aber alles andere als gut, da ich mir alles
aus dem Internet und aus den Beispielprogrammen die ich mit der SPS
bekommen habe zusammengesucht habe.

Gute Nacht.

Ich muß jetzt den Hund auslehren gehen und trete dann den
Matratzenhorchdienst an.

mfg Bastlwastl

von hicks (Gast)


Lesenswert?

tschuldigung fürs OT, muss aber sein!

Prost Alexander,

"und mein gßößtes Interesse dem Fläschchen galt ;o)"
Ist das heute anders? Bei mir, und vielen ander nicht. Die Farbe, Form
etc. der Flasche hat sich geändert, der Inhalt hat mehr Umdrehungen,
aber sonst (OK, vieleicht ist es auch mal 'ne Dose, oder ein Fass)?
:-)

Vieleicht könnte das größte Interesse noch den beiden Nupsies gelten,
wo vor der Flaschenzeit die Quelle allen Stoffes war, aber danach kommt
doch wieder die Flsche, oder? :-)

Viel Spaß und Erfolg beim Basteln!

mfg hicks

von Ratber (Gast)


Lesenswert?

@Alexander

>Auf 25 Jahre Erfahrung im Programieren kann ich leider nicht
>zurückgreifen, da ich da noch die Windeln anhatte und mein gßößtes
>Interesse dem Fläschchen galt ;o)

Ja 25 Jahre "Erfahrung" kann ich da auch nicht bieten.
Vor 25 Jahren war da der Kursus und seitdem gabs nur Sporadische
kontakte.
Meist zwecks Fehlerfindung.

Erfahrung ist wenn man sich öfters damit auseinandersetzt.
Wenn es ernst wird bin ich bei ner S7 schnell aufgeschmissen und
versuche entweder mein Heil in den Unterlagen oder rufe gleich nen
jüngeren Kollegen der damit öfters Arbeitet. :D

von Alexander _. (bastlwastl)


Lesenswert?

Bei ner S7 müsste ich mich auch erst mal einige Stunden mit der
Bedienungsanleitung auseinandersetzen.

Ich hab zwar mal an einem S7 Gratiskus teilgenommen aber ansonsten habe
ich nichts mehr damit gatahn.

Am Verwirrensten finde ich, dass man schon vor dem Programieren genau
wissen sollte welche Hardware verwendet wird und auch die
Programieroberfläche ist etwas gewöhnungsbedürftig.

Außerdem habe ich schon bedienerfreundlicherere Benutzeroberflächen
gesehen als bei der S7.

@hicks

Da muß ich dir vollkommen recht geben.

Prost euch allen.

mfg Bastlwastl

von Alexander _. (bastlwastl)


Lesenswert?

Tag Leute

Ich hab jetzt den Programieradapter fertig durchgecheckt und hab keinen
Fehler finden können.

Also fange ich jetzt mit dem Tutorial an.

Jetzt stellt sich mir die Frage.

Wie stelle ich die Fuse Bits für einen Keramik-Resonator richtig ein?
Ich will den Mikrocontroller ja nicht schon beim 1. Versuch unbrauchbar
werden.

Das würde mir sehr helfen.

von Alexander _. (bastlwastl)


Lesenswert?

PS.: Tschuldigung, ich hab mich etwas ärger verschrieben als sonst.

Es sollte eigentlich:
"Ich will den Mikrokontroller ja nicht schon beim 1. Versuch
unbrauchbar machen."
heißen.

mfg Bastlwastl

von Ratber (Gast)


Lesenswert?

Für den Anfang würde ich mal sagen das du es erstmal mit einem
Funktionstest angehen läst.

Die meisten Controller laufen ab Fabrik eh erstmal mit dem Internenen
Takt (M8 mit 1 Mhz) also kannste erstmal den Resonator weglassen.


Also einfach ein einfaches Programm überspielen um zu sehen ob der
Programieradapter richtig funktioniert.
(Die Flashsoft zeigts ja nach dem Verify an oder schon vorher wennes
keine Komunikation gibt)
Eine Einfache LED die man Blinken läst wäre nicht übel.
Am Besten so langsam das man bei einer Taktsteigerung von 1 auf 4 oder
8 Mhz (Je nachdem was du geholt hast) noch ein Blinken erkennen kann.



Wenn feststeht das der Adapter Funktioniert kann man sich daran machen
den Controller per Fusebit von Internem auf Externen Takt umzustellen
und den Resonator einbauen.


Wie du die Fusebits einstellst hängt davon ab welche Soft du nutzt.


Und da ist auch schon die Frage:
Welche willst du nutzen ?



Danach Kontollieren ob er geht.
Wenn das Blinkprogramm genommen wird kann man schön sehen ob der
schnellere externe Takt auch wirklich anliegt oder ob er noch Intern
läuft bzw. garnicht mehr (LED dauernd an oder Aus).

Wenn du bis hier gekommen bist und er noch läuft dann haste das
schlimmste überstanden und kannst weitermachen.



Das alles ist natürlich nur nen Vorschlag.

von Alexander _. (bastlwastl)


Lesenswert?

Erst mal vielen Dank für deine Hilfe.

Genau sowas in der Art hatte ich vor.

Ich hab nur nicht gewusst, dass die Fuses schon voreingestellt sind.
Ich bin einfach noch nicht dazu gekommen die Datenblätter vollkommen
durchzuackern.

Ich werd mich dann melden wenn es geklappt hat.
(Wenn nicht, dann natürlich auch.)

Ich habe vor AVR-Studio zum Programieren und yaap zum Übertragen des
Programmes zu verwenden.
(Außer du gennst bessere Freeware-Programme.)

Kennst du eigentlich eine Möglichkeit die Programiergeschwindigkeit
herunterzudrehen?

Ich habe den Programieradapter nämlich auf eine Lochrasterplatine
gelötet und will vermeiden dass mir die Dräte durch kapazitive und
induktive Efeckte dazwischenfunken.

mfg Bastlwastl

von Ratber (Gast)


Lesenswert?

>Ich hab nur nicht gewusst, dass die Fuses schon voreingestellt sind.

Die Fuses sind ja nur Register die dem Controller sagen wie gewisse
Sachen zu handhaben sind.

Also Welcher Takt woher kommt oder wie die Spannungsüberwachung
auszusehen hat.(Brownout) usw.
Per Default steht erstmal alles auf Sicherheit und der Takt auf Intern
(Im Falle M8 also 1 Mhz.)


>Ich habe vor AVR-Studio zum Programieren und yaap zum Übertragen des
>Programmes zu verwenden.
>(Außer du gennst bessere Freeware-Programme.)

Nö,is ok.
Was man verwendet ist zum Teil auch Geschmacksache.
Der eine mag die Funktionalität des einen Programmes und ein andere
eben was Anderes.
Ich denke mal das du mit der Zeit auch die anderen mal Probieren wirst
und irgendwo hängen bleibst.



>Kennst du eigentlich eine Möglichkeit die Programiergeschwindigkeit
>herunterzudrehen?
>
>Ich habe den Programieradapter nämlich auf eine Lochrasterplatine
>gelötet und will vermeiden dass mir die Dräte durch kapazitive und
>induktive Efeckte dazwischenfunken.

Da mach dir mal keine Sorgen.
Normalerweise spielt das keine Rolle.

Ich vermute mal das du dir nen Paralleladapter mit 74HCT244 gebastelt
hast.Die sind recht Robust.

von Alexander _. (bastlwastl)


Angehängte Dateien:

Lesenswert?

Der Programieradapter läuft inzwischen.

Ja, ich hab den 74HCT244 verwendet.

Da ich aber alles auf Lochraster aufgebaut habe, habe ich etwas mehr
platz benötigt und alles anstatt in das LPT-Gehäuse in einen alten
Rasieraperat eingebaut.

Die3 ersten LED-Versuche haben auch schon geklappt.

Leider habe ich Probleme mit den Interupts.

Bei mir funktioniert weder das Interupt-Beispiel aus dem AVR-Tutorial
noch ein selbstprogramiertes Beispiel.

Ich hab versucht einzelne Befehle mittels RC5-Code zu senden.

Aber aus irgend einem Grund sind immer alle LED's am B-Port an.
Ich hab das Programm mal als Anhang dazugegeben in der Hoffnung dass
jemand den Fehler findet.
(Ich hab die für die Ausführung des Codes benötigten Zyklen aber noch
nicht berücksichtigt.)

von Ratber (Gast)


Angehängte Dateien:

Lesenswert?

>Da ich aber alles auf Lochraster aufgebaut habe, habe ich etwas mehr
>platz benötigt und alles anstatt in das LPT-Gehäuse in einen alten
>Rasieraperat eingebaut.

Yo,solange de dich nich damit Rasierst ist alles im Lack. :D

Auf Lochraster isses aber auch nicht Wild.

Meinen ersten hab ich ja noch.
Den hab ich in ner knappen Stunde zusammengestrickt.(Bild)

von Alexander _. (bastlwastl)


Lesenswert?

Und kanst du mir sagen warum bei mir alle B-Ports automatisch auf low
gehen wenn ich versuche mit den Tastenerkennungs-Interupts zu
arbeiten?
(Alle LEDs am B-Port brennen.

Ich habs mit dem Programm im AVR-Tutorial versucht und da hat es auch
nicht geklappt.

Das gleiche Problem habe ich auch bei meinem Programm dass ich beim
letzten Beitrag angehängt habe.

Kann bitte jemand schaun wo ich da einen Fehler gemacht habe?

Ich arbeite übrigens noch mit dem internen Taktgeber des ATmega8 und
habe auch nichts an den Fuses berstellt.

mfg Alexander

von Ratber (Gast)


Lesenswert?

Moin


Ich hab mir deinen Code noch nicht angesehen aber bei Port "B"
Problemen auf nem Mega 8 klingelt bei mir irgendwas.

von Alexander _. (bastlwastl)


Lesenswert?

Jetzt funktioniert das Interupt Beispiel des AVR-Tutorials auf einmal
obwohl ich nichts getahn habe.

Ist mir immer noch rätzelhaft.

Vieleicht wollte der Mega 8 erstmal etwas Ruhe.

Ich hab da noch eine Frage.

Warum steht in der Befehlssatzsammlung eines 8-Bit Mikrokontrollers
dass eine Funktion 3 Takte mit einem 16 Bit PC und 4 Takte mit einem 22
Bit PC benötigt.

Was ist da gemeint?

von A.K. (Gast)


Lesenswert?

Der PC wird auf dem Stack gesichert. Byteweise. Hat der Controller
maximal 128MB (64KW) ROM, ist der PC max 16-Bit breit, daher sind es 2
Bytes. Darüber sind es 3 Bytes.

von Alexander _. (bastlwastl)


Lesenswert?

Danke für deine Hilfe.

Kann es sein dass der Mikrokontroller gesponnen hat weil ich das
Programm überspielt habe ohne dass ich vorher das Alte gelöscht habe?

mfg Alex

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Wenn du vorher nicht Erase gemacht hast, dann kann das sehr gut sein. Am
besten immer nach dem Programmieren ein Verify machen, dann weißt du
sicher ob's geklappt hat.

von Alexander _. (bastlwastl)


Lesenswert?

Danke.

Ich hab da noch ein paar Fragen.

Habe ich dass richtig verstanden dass ein ATmega8 bei dem Befehl ret 3
Takte (3 Takte mit einem 16 Bit PC und 4 Takte mit einem 22
Bit PC) benötigt?

Da ich jetzt soweit bin und weis dass das Programiergerät funktioniert
möchte ich jetzt den Keramikresonator verwenden.

Leider hab ich im Datenblatt nichts über die richtige Beschaltung
gefunden.

Hat da keiner eine Ahnung wie ich die Fusebits bei einem
Keramikresonator setzen muß oder wo ich Informationen darüber finde?

mfg Alexander

von A.K. (Gast)


Lesenswert?

RET: ja.

Beschaltung Resonator: Lies noch mal den ganzen Thread durch, das steht
da zweimal drin.

Fuses: Tabellen 4 und 5.

von Alexander _. (bastlwastl)


Lesenswert?

Tschuldigung

Ich hab mich falsch ausgedrückt.

Ich meinte dass ich im Datenblatt nicht gesehen hab wie man die
Fusebits richtig setzt.

Danke für den Hinweis auf die Tabellen.
Die hab ich doch glatt übersehen.

Ich werwende einen 4Mhz Keramik Resonator mit integrierten
Kondesatoren.

Hab ich dass so richtig verstanden dass aufgrund der Tabelle 4
CKSEL1..3 unverändert aktiviert bleiben und nur CKOPT aktiviert wird?

Die Tabelle 5 verstehe ich nicht ganz.

Welche der Einstellungen muß ich da verwenden?
Ich vermute mal dass es eine der Einstellungen mit dem Zusatz (2) ist.
Aber welchen muß ich verwenden?

Die BODEN Fuse die im Tutorial gesetzt wurde ist nur dazu da um die
Spannungsüberwachung von 2,7V auf 4V anzuheben.
Oder sehe ich dass falsch?

Wozu wurde eigentlich im Tutorial die BODENLEVEL(0) Fuse gesetzt?

Ist es übrigens normal dass der Programieradapter(er ist Aufgebaut wie
es auf der im Tutorial verlinkten Seite beschrieben ist) kurzzeitig
150mA braucht?

mfg Alex

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.