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
Ist ein Keramik-Resonator, kein Oszillator.
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.
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
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.
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
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.
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
@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.
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
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
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
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
>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
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
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
@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
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
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.
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
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.
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
>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.
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.)
>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)
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
Moin Ich hab mir deinen Code noch nicht angesehen aber bei Port "B" Problemen auf nem Mega 8 klingelt bei mir irgendwas.
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?
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.
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
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.
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
RET: ja. Beschaltung Resonator: Lies noch mal den ganzen Thread durch, das steht da zweimal drin. Fuses: Tabellen 4 und 5.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.