Hi, Programm arbeitet nicht, habs geschrieben ( siehe Anhang) In Main, wird ein Ausgang auf HIGH gesetzt womit sicher ist das eine angeschlossene LED leuchtet. LED ist direkt an den PORT angeschlossen. Sie leuchtet aber nicht. Das heisst, dass das Programm nicht korrekt oder überhaupt nicht arbeitet. Liegt das an der Bootloader Option? Fuses: 11100001 CLK = 1MHZ HIGH Fuses: 11011001 Reset @ 0x0000 Boot size = 32 pages /1024 words S8518C ein Lockbits: 111111 no lock no restriction for SPM(was heisst das?) or LPM (und das?) Laut Datenblatt habe ich den Reset mittels Pull-Up 47k als Taster gegen Masse geschalten. Ich habe es mittels eines selbstgebauten Programmer in den ATmega8515 geladen. Und habe dazu die Software SP12 verwendet. SP12 -M1 -wpfC ***.hex Ich habe noch Taster angeschlossen, welche direkt zwischen PORT-Pin und Masse geschalten sind. Ist das korrekt sie so anzuschliesen? Vielen Dank für Hilfe daniel
1. Wie herum ist die LED angeschlossen? Wenn sie High-Side am Portpin dranhängt, muss der Portpin '0' programmiert werden, damit die LED leuchtet! 2. Taster werden i.a. vom Portpin gegen Masse angeschlossen. Voraussetzung für das Funktionieren ist allerdings, dass die Pull-Ups aktiviert sind.
Hi ja die Pull-Ups sind aktiviert. Die LED ist mit der Kathode(war die +?) gegen Port-Pin geschalten und mit der Anode gegen Masse. daniel
Hi, ich habe sie schon gedreht aber es passiert immer noch nichts :( Ich habe sie getestet daniel
Hi, ich habe einmal den Code von der Hex file aus dem Assembler und der Hex- File, die vom uC heruntergeladen wurde, verglichen. Bei der Hex-File ein bestimmter Teil ähnelt sich und beginnt ab der Adresse 0x00000 und fortlaufend bis irgendwann nur noch FF in den Programmspeicher steht. Die Hex-file vom uC hab ich mal als Anhang mit dabei. Ich weiss nicht wo der Fehler liegt, vielleicht ist meine Intialisierung falsch. Vielen Dank für die Hilfe daniel
> Die LED ist mit der Kathode(war die +?) gegen Port-Pin geschalten > und mit der Anode gegen Masse. Ich hoffe, Du hast nen Vorwiderstand drin...
Ich habe mich vorhin schon über Deinen Aufbau des ASM-Files gewundert, wollte aber nicht klugscheißen. Vielleicht nimmst Du alle .def-Zeilen mal ganz nach oben und legst dann erst die Vektortabelle an und direkt danach dann das Hauptprogramm. Laß doch auch mal den AVR-Studio-Assembler drüberschauen, gibt´s kostenlos im Netz bei www.atmel.com. Da siehst Du dann gleich, ob´s strukturelle oder syntaktische Fehler im Quelltext gibt.
Und vor allen Dingen: Nimm ein einfacheres Testprogram. Ein Programm das sonst nichts anderes tut als den Port zu initialisieren und dort was auszugeben (*) Nicht mehr. Damit kannst du dann mal abprüfen ob deine Tool-Chain (Assembler, Brennprogram) überhaupt richtig funktioniert. (*) du könntest mal 0xAA ausgeben. Das ist ein Muster bei dem jedes 2. Bit auf 1 steht. Wenn du deine Leds richtig rum angeschlossen hast, entweder nach Masse oder Vcc muss auf jeden Fall jede 2-te Led leuchten.
Hi Ja, ich denke das werde ich auch erst einmal so machen. Und es mit einem einfachen Programm testen. Wahrscheinlich sind strukturelle Fehler drin. Leiderns kann ich nicht so richtig debuggen, da ich nur einen Programmer habe und AVR - Studio diesen nicht unterstützt. Vielen dank für die Infos daniel
Hi, ich habe nun einmal so ein testprogram geschrieben. für ein paar einzelne LED's. Hab nun mal eine Schaltung gezeichnet und sie mit hinzugefügt. Ausserdem die Hex-File aus dem Flash des uC und die vom Compiler des AVR-Studios. Leiderns funktioniert es immer noch nicht :(. Ich weiss nicht wo ran es liegt. Es sieht gut aus mit dem Programmer. Ich denke er schreibt ordnugsgemäss ohne Fehler das Programm in den Flash. Kann es daran liegen dass ich keine LOCK-Bits setze? Oder dass ich überhaupt nichts an den Fuses-Bits und Lockbits verändere? Ich bin dankbar für jeden Hinweis daniel
Moment mal! Du hast einen fabrikneuen µC und gar keine Einstellungen an den Fusebits vorgenommen? Ich hoffe, Du weißt, dass die AVRs im Auslieferungszustand z.B. mit internem Oszillator bei 1 MHz Takt laufen, um nur ein Beispiel zu nennen... Abgesehen davon sehe ich tatsächlich, dass Du keine Vorwiderstände vor den LEDs hast! Wenn die keine integrierten Vorwiderstände haben, hast Du Dir wahrscheinlich bereits beim ersten Einschalten die Porttreiber zerschossen!
Hi, ja ich weiss, dass es nur 1 MHz ist. Aber die Port-treiber haben sowieso eine Strombegrenzung von 40 mA? daniel
Die Porttreiber haben keine Strombegrenzung!!!!! Die 40mA sind der maximale Strom, den sie können, ohne Schaden zu nehmen. Begrenzen musst Du ihn selber. Und da Du es anscheinend nicht getan hast, dürfte das das tragische Ende des viel zu kurzen Lebens des Porttreibers gewesen sein. Wenn Dir da mal nicht die WMF (World Microcontroller Foundation) aufs Dach steigt...
HI, vielen Dank, ach Sch**** da lag mein PWM-Signal :(. na dann werd ich mal den Strom begrenzen. daniel
Die Strombegrenzung in den Ports löst aber nur einmal aus und läßt sich nicht zurückstellen.
Nur eine Frage -ich kann avr assembler nicht- unterscheidet der zwischen Groß- und Kleinschreibung? Der Reset Vektor sagt rjmp init, die Sprungmarke heißt INIT.
Dein Programm erscheint mir immer noch zu kompliziert um die grundlegende Funktion des µC zu kontrollieren. Probier doch mal, ganz simpel: .include "m8515def.inc" ; ATmega8515 ldi wr,0x07 out DDRB,wr ldi wr,0x05 out PORTB,wr main: rjmp main Die LED würde ich mal abklemmen und einfach mal mit dem Voltmeter die Ausgänge kontrollieren. * die Programmierung kontrollieren (aus dem µC auslesen und vergleichen) * nach dem Flashen den Programmer von der Stiftleiste abzeiehen, nicht dass dir der den Reset auf Low zieht. * danach sollte der µC auf jeden Fall laufen (du hast doch noch nicht an des Fuses gespielt, oder?) und am PortB solltest du mit dem Voltmeter messen können PB0 5 Volt PB1 0 Volt PB2 5 Volt Das du dir den Porttreiber schon zerschossen hast, ist durchaus möglich. Allerdings haben bei mir ein paar Tinys diese Tortur auch überlebt.
@Karl Heinz Buchegger Danke für die Hilfe. Es gibt mir noch ein bisschen Hoffnung, dass die Treiber meine Dummheit überlebt haben. daniel
Hi @ Karl Heinz Buchegger Hab es so getestet wie beschrieben, jedoch konnte ich keine Spannung messen. So dacht ich mir naja vielleicht ist der Port-Treiber defekt und habe dann eine anderen Port genommen. Aber an diesem war auch nichts zu messen. Der uC bekommt eine Spannung von 5,11 V. Ich werde es mit noch dem Port A testen. Wenn er dann immer noch nicht geht muss ich wohl annehmen dass er kaputt ist :( Oder hat jemand eine Idee woran es liegen kann. Ich nehme an das der Programmer ordnungsgemäß schreibt. Ich kann auch aus dem uC die Hex file lesen und vergleichen. Der AT ist eine Little Endian Maschine? im Speicher von uC ist alles genau andersrum wie im AVR-Hex-File. Im Anhang habe ich die beiden datein. Kurztest das geschriebene Hex-File uC-Kurztest vom Flash des Mikrokontrollers nach dem Schreiben Kann mir jemand sagen ob die Files in Ordnung sind? die ASM File ist so: .def wr = r16 .include "m8515def.inc" ; ATmega8515 ldi wr,0x0F out DDRC,wr ldi wr,0x0F out PORTC,wr main: rjmp main Viele Dank daniel daniel
Ich behaupte einfach mal der uC befindet sich im dauerreset, das Problem hatte ich auch mal, beschreiben udn lesen kannste ihn dan imemr nur läuft das programm nie an...
Hast Du das Programmiergerät zum Testen des Programms abgeklemmt? Wenn nicht, dann versuch das mal... @Tim: Der AVR-Assembler ist nicht case-sensitiv. Im Unterschied zu C ist es da egal, ob Du INIT, init, InIt, INit oder inIT schreibst...
...Ach ja, und wenn es trotz abgeklemmtem Programmer nicht läuft, schau mal, ob Du anderswo auf der Reset-Leitung nen Masseschluss hast.
Beschreib nochmal, wie der Reset-Pin überhaupt beschaltet ist, die Beschreibung oben verwirrt mich.
Wenn das die Dateien im ZIP-Archiv sind, die kann ich mir hier leider nicht ansehen. Sowas sollte man als gif oder png schicken. Aber egal. Also dann hat er wohl Reset per Pull-up an VCC und der Schalter ist nur für External Reset nach GND? O.K. Wie siehts mit Brown-out und Watchdog-Reset aus? Evtl. mal deaktivieren? Bin im Moment im Unklaren, wie die ausgeliefert werden.
@Oliver: Die Reset-Beschaltung sieht in seinem Bild im Prinzip OK aus (47k gegen VCC und Taster gegen GND), bis auf den fehlenden Kondensator gegen GND, worauf ich ogen schon mal hingewiesen habe. Er spricht aber von einem selbstgebauten Programmer. Möglicherweise ist der nicht i.O. und zieht den RESET permanent auf GND, wenn er ihn angeklemmt lässt. Das wäre zumindest eine Erklärung, warum er zwar programmieren kann, jedoch sein µC anscheinend nicht läuft.
Hier ist nochmal seine Schaltung. Bis auf die Sache mit den Leds schauts eigentlich gar nicht so schlecht aus. Am 7805 muesste man noch arbeiten. An Vccin: wo kommt da die Spannung her? Steckernetzteil? Ev. da mal einen 1000 µF Elko nach Masse schalten (zur Siebung). Auch 2 100nF Kondesatoren ( von 1 nach 3, von 2 nach 3) sind kein Fehler. Allerdings hat bei mir noch kein 7805 ohne diese Kondi's versagt oder ist geschwungen. (was aber nichts heissen mag) Den 47n Kondi: soll das der Siebkondi sein, der möglichst nahe am µC angebracht wird? Bischen klein, 100 nF wären besser. Aus dem bisher gepostetn lese ich raus, dass er noch nicht an den Fuses war. d.h. der Quarz ist zwar nett, arbeitet aber noch nicht. Macht nichts: der interne Oszillator schwingt schon (sonst könnte er auch nicht flashen / lesen).
Vieleicht ist der Taster aber einer welche Standardmäßig geschlossen ist... und somit den µC im Reset gefangen hält. Am besten mal direkt am Resetpin die Spannung messen.
Ich würde auch mal einen kleinen Kondensator von Reset nach GND schalten, um tTOUT zu verlängern. Ansonsten hätte ich auch den starken Verdacht, daß irgendetwas (z.B. Programmer) die Reset-Leitung auf GND hält. Miss doch mal den Zustand des Reset-Pins, wenn der Programmer nicht aktiv ist.
Hi, Vielen,vielen dank für die Hilfe. Lösen konnte ich es jedoch immer noch nicht, werde morgen wieder weiter suchen. Ich verwende als Spannungsquelle eine Gleichstromtrafo 12DC 0.6A wie man in von der Modeleisenbahn kennt. Ich ziehe stets den Programmer ab und drücke dann den Reset-Pin. ich messe am uC und auf dme Reset liegt eine Spannung 4.82V. Ich werde das mit den Watchdog und dem BurnOut überprüfen. Aber BurnOut kommt nicht in frage da ich konstant 5.12V am Controller habe. Was vielleicht sogar ein bisschen viel ist. Zwischen Reset Pin und GND habe ich noch keinen Kondensator gelötet, aber das werde ich noch machen. ansonsten ist ja eben noch der Quarz angeschlossen VCC Reset, MISO,MOSI,SCK ansonsten mehr nicht. Er ist bestimmt im Dauer-Reset, nur ich weiss nicht warum. Wenn er im Dauer-Reset ist, habe ich vielleicht Glück und der PORT-Treiber ist doch nicht kaputt. daniel
Schalte mal Brown out aus... hatte da auch shcon ärger mit. hoffentlich hast du inzwischen vorwiederstände an den LEDs ;) Und miss mal alle Pins nach was da so anliegt. Ich hatte mal ne Kalte lötstelle, und durch aufstecken des programmers ließ er sich programmieren sobald aber etwas mehr power nötig war ging er in reset
Hi, mal zu den Tastern, beim Drücken schliessen sie wie gezeichnet.Ich habe es gemessen. Ja :) die LED erfreuen sich bereits mit Vorwiderständen. Zu kalten Lötstellen, ich messe direkt an den Pins die Spannung. daniel
Hi, es liess mir keine Ruhe. Und ich habe nochmal am Reset-zweig gemessen und festgestellt das der Taster einen wiederstand von 66.6 kOhm aufweisst. mit den 47k ergibt sich eine Spannung von errechnet 2.8V. Damit liegt der Pegel im undefinierten Bereich und der uC arbeitet nicht. Morgen werd ich den Schalter wechseln und dann noch einmal testen. daniel
Hi, der uC funtioniert immer noch nicht. Habe nun schon den BrownOut ausgeschalten und auch noch ein paar mehr Kondensatoren eingelötet.Trotz eines kleinen Testprogrammes und 5V am Reset, VCC und interner Osszilator. messe ich trotzdem nur an allen anderen Ausgangspins 0,13V. Testprogramm: .def wr = r16 .include "m8515def.inc" ; ATmega8515 .cseg ldi wr,0x0F out DDRC,wr ldi wr,0x0F out PORTB,wr ldi wr,0x0F out DDRB,wr ldi wr,0x0F out PORTC,wr main: rjmp main Ich weiss überhaupt nicht wo der Fehler liegt :(. Vielleicht ist ja auch der uC defekt. Aber er ist frisch noch nie programmiert und der Speicher noch blank. Er kam nicht einmal mit meiner Lötarbeit in verbindung, erst als alles fertig war, wurde er auf dem Sockel plaziert. Wenn noch jemand eine Idee hat woran es liegen könnte. Ich erfreue mich jeder Hoffnung :( daniel
@Oliver wie meinst du das mit der Strombegrenzung? Du hattest oben geschrieben die Strombegrenzung löst nur einmal aus. Im Datenblatt habe ich gelesen das die I/O durch Dioden gegen VCC und GND gesichert sind. Wenn mir der Port-treiber kaputt gegangen ist, dann dürfte das doch nicht bei allen Pins der Fall sein? Wird wohl der Controller defekt sein :( werd ich es mal mit dem Atmega 8 versuchen. daniel
Mit einmal Aulösen meint er wohl dass die Ports danach hin sind. Der Schutz mit den Dioden bezieht sich auf die Beschaltung als Eingang. Gruss, Armin
@ArminD heisst das, dass alle Ports defekt sind, oder nur die die falsch beschaltet wurden? daniel
Bei dem Drahtverhau ist es schwierig die grundlegenden Leitungen zu verfolgen. Dein 'Gleichstromtrafo': Wie gut ist seine Gleichspannung? Ich würde mal Sicherheitshalber einen Elko an den Spannungs- eingang löten: irgendwas ab 100µF aufwärts. 1000µF wären ideal. Ansonsten: + und - scheinen dort zu sein, wo sie hingehören. Nur den Weg vom Reset (Pin 9) zu + kann ich nicht vollständig verfolgen. Das Kabel verliert sich im Dickicht oben beim Widerstand. Ich sehe auch am Pin 3 vom 7805 keine 2.te Lötperle bzw. ein 2.tes Kabel das von dort wegginge. (Beim nächsten mal nimm lieber eine Streifenrasterplatine. Die Atmels haben meist eine 'schöne' Pinbelegung, die sich relativ gut dafür eignet)
boah... dafür das du protel (?) benutzt, musst du aber noch ein paar ganz kleine grundlagen in aufbau- und verbindungstechnik lernen. ;) das meiste wurde ja schon angesprochen - hier nochmal ein paar tips von meiner seite: - nimm nen kleinen 8pinner oder nen tiny26 zum testen - bau die schaltung sauberer auf, entweder streifenraster oder punktraster und silberdraht - schau dir im datenblatt des µC die minimalbeschaltung (reset etc.) an - 100nF direkt an der spannungsversorgung von IC´s - 100nF am ein- und ausgang von stabis (JA, ich hatte schon schwingende stabis) - lass den externen quarz weg, nimm die internen zu anfang - mach dich mit den grundlegenden fuses vertraut (takt, brown out, etc) - löte zu anfang nur EINE led an einen port, mit vorwiderstand (wenn du EINE an und aus schalten kannst (per software), dann baust du einen taster an. - auch taster lege ich immer über einen "angstwiderstand" gegen masse (falls du mal was falsch programmierst, raucht nicht gleich der port weg) - ich baue immmer eine led an die 5v, um zu sehen ob spannung da ist :) - sorge für eine vernünftige spannungsversorgung gruß skragan
ach ja, und die internen pull-ups für den tastereingang musst du auch programmieren oder hardwaretechnisch anflicken ;) gruß skragan
Hi Vielen dank für die Infos, dann werd ich nochmal die schaltung entflechten. Den externen Quarz habe ich bereits ab. Ich werde nur noch die ISP dranlassen. Bei Reset habe ich noch ein Kondensator von Pin gegen Masse von 47nF gelötet, das verlängert wie oben gesagt die Ttout-zeit und ausserdem liegt der Pegel somit fast bei VCC. Pull- UP widerstand von 220 Ohm. ansonsten ist noch eine LED an PD1 mit Vorwiderstand 220 Ohm. Zwischen GND und VCC direkt am uC ein Kondensator von 100nF beim L7805 am EIN und AUS jeweils gegen GND, 100nF Kondensatoren gegen GND BODEN habe ich auf 0 gestellt Ich werd es nochmal so versuchen Daniel
> ...Pull- UP widerstand von 220 Ohm...
Bisschen wenig, meinste nicht? Dann kannste Dir die 47 nF auch sparen
(Zeitkonstante 47 nF * 220 Ohm = ca. 10µs, das ist so gut wie nix)
Hi Sorry, dass sind keine 220 Ohm das sind 47kOhm, nur bei den LED sind es 220 Ohm. 2,2ms = 47k*47nF daniel
Hi, ich habe alles nochmal aufgebaut und mit der minimalen Belegung angeschlossen. Hatte aber keinen Erfolg. daniel
Hi, habe nun den Controller Atmega8 in die Platine eingelötet. Auch dieser lies sich mit dem kleinen Testprogramm beschreiben. Aber an den Ausgangspins war nicht der zu erwartende HIGH-Pegel zu messen. Ich werde wohl nun mich mal um ein Oszilloskop kümmern. Mich wundert das er sich beschreiben lässt aber dass Programm nie arbeitet. Wenn der Programmer nicht angeschlossen ist zieht der Controller einen Strom von rund 2mA und plus die LED (Anzeige der Betriebsspannung) sind dann 20mA Wenn der Programmer angeschlossen ist zieht der Controller rund 100mA und die LED wiederum rund 20 mA. Mich wundert, dass er sich wunderbar programmieren lässt aber die Programme nicht arbeiten. Testprogramm: .def wr = r16 .include "m8def.inc" ; ATmega8 .cseg ldi wr,0xFF out DDRD,wr ldi wr,0xFF out PORTD,wr main: rjmp main daniel
> habe nun den Controller Atmega8 in die Platine eingelötet. Auch > dieser lies sich mit dem kleinen Testprogramm beschreiben. Aber > an den Ausgangspins war nicht der zu erwartende HIGH-Pegel zu > messen Hmm. Irgendwas machst du grundlegend verkehrt. Ich hab aber beim besten Willen keine Idee mehr, was das sein könnte. Nackter, niegelnagelneuer Controller + stabile Versorgungsspannung + 10 kOhm vom Reset Pin nach Vcc + 100 nF am Prozessor zwischen Vcc und GND -> das Ding sollte wunderbar arbeiten. Wenn also die µC noch nicht hinüber sind, bleibt nur die Versorgungsspannung als mögliche Fehlerquelle. mal so ein Gedanke: Du hast nicht zufällig 3* 1.5V Batterien rumliegen die du mal probehalber benutzen kannst.
Hi, wenn die Programme nicht arbeiten, wird keiner von beiden kaputt sein. Sie sind ganz frisch aus der Verpackung. der Flash wurde bei einem zum ersten Mal beschrieben. Aussderdem lassen sie immer wieder mit sich arbeiten wenn man die Fuses schreiben will und wenn man die Programme aus dem Flash liest oder in den Flash schreibt. ich werde es mal mit 3 * 1,5 V Baterien versuchen. Ausserdem werde ich mir mal meine Spannungsversorgung mit dem Speicheroszilloskop anschauen, kann mir aber nicht vorstellen, dass es Spannungseinbrüche gibt. Die Software ist doch in Ordnung oder? Mir fällt nichts auf was flasch programmiert sein sollte. Vor allem weil sie so kurz ist :). Vielen Dank daniel
> Vor allem weil sie so kurz ist :).
Genau deshalb habe ich ja so extrem kurze Programme
vorgeschlagen. Die sind so trivial, da kann nichts
verkehrt sein.
Viel Glück.
Du tust mir echt leid, warum läuft das denn nicht bei Dir? Wir müssen systematisch vorgehen. Kann mal jemand ein getestes Programm samt hex-file posten, das Daniel programmieren kann. @Daniel: Welche µC-Chips hast Du zur Verfügung? Worüber ich mir Gedanken mache, ist Dein Hinweis, dass die ByteReihenfolge beim Auslesen anders war (Autor: daniel Datum: 04.08.2006 13:40). Vielleicht versuchst Du es mit einem anderen Brennprogramm. Bei mir hat AVRdude in der DOSbox an der Parallel-Schnittstelle (hast Du eine solche?) auf Anhieb funktioniert. Wovor ich immer wieder warne: Vorsicht bei Verbinden von Schaltungen mit unterschiedlichem Potential! Denke an die Koppelkapazität von (Stecker-)Netzteilen und an statische Aufladung! Gerade beim Programmierstecker, wenn der PC geerdet ist und die Schaltung über das Netzteil "in der Luft / am Netz hängt". Wenn beim Stecken zuerst eine Signalleitung verbindet, geschieht der Potentialausgleich über diese (sehr ungesund). Oder andersherum der Laptop nicht geerdet ist (zweipolige Netzleitung). Gerade hier ist es besonders gefährlich, da wirklich (Entstör-)Kondensatoren vom Netz auf die Ausgangsbuchse führen können! Am besten, alle Gnd (vor dem Zusammenstecken) verbinden. Gerade der RST-Pin ist sehr gefährdet, da er keine Schutzdioden enthält (habe ich mal gehört).
Hi, Ich hab zwei uC zur Verfügung, einen ATmega8515 und einen ATmega8. Ich programmiere es mit SP12 , über einen selbsgebauten Programmer und der Parallelschnittstelle. Ich stecke immmer zuerst GND an und dann die Restleitungen. Nur selten passiert mir dass, wenn ich es vergessen hab. Ich werde dann nochmal die beiden Files posten von Hex und von uC. noch ein Bild von meinem Programmer daniel
Hast Du das mit der Versorgung geprüft? Evtl. wirklich mal eine 4,5V-Batterie oder ähnliches verwenden. Manche Steckernetzteile haben nämlich überhaupt keinen Kondensator drin, dann macht Dein µC 100 mal in der Sekunde einen Reset. Gerade habe ich nochmal alles durchgelesen, hast Du ein Oszi zur Verfügung? Dann musst Du es doch schaffen, das Ding zum Laufen zu bringen. Hast Du jemanden, der sich ein wenig mit Technik auskennt, den Du fragen kannst? Vier Augen sehen mehr als zwei, und zwei Hirne ergänzen sich oft ganz gut!
Hi, ich habe nun einmal mit den Osszi die Eingangspannung überprüft. Sie ist eine Katastrophe. Siehe Osszibild oben. eine Differenz von 24V. So ist auch die Spannung am Controller nicht linear und genauso am Reset-Pin. Ich denke ich muss noch ein Kondensator gegen Masse schalten und eine Z-diode. Wie stark kann ich die Z-Diode belasten? daniel
Die Spannung am Reset-Pin. Kann durch diese fehlerhafte Spannung der Controller kaputt gehen? Mich wundert es auch das er sich dennoch programmieren lies. Der Reset wird ja automatisch auf LOW gehalten. Somit ist er kein Problem. Aber dass er sich trotz der Schwankungen in der Versorgungspannung programmieren lies. Vielleicht lieferte ja mein ParallelPort noch die nötige Restspannung. Ist der Controller vor Überspannung geschützt. Wie zum Beispiel eine Spannung von 6 V? daniel
Das sieht eher aus, als ob dein Netzteil keine Gleichspannung sondern eine Wechselspannung liefert. Quasi ein Trafo und sonst nichts. Von wegen: > Ich verwende als Spannungsquelle eine Gleichstromtrafo > 12DC 0.6A wie man in von der Modeleisenbahn kennt. Gleichrichter + 1000 µF vor den 7805 schalten und deine Probleme sind gegessen. (Fürs erste, auf Dauer wird dein 7805 mit dem angebotenen ~14Volt nicht glücklich werden, sprich er wird heiss). Und wieder mal bewahrheitet sich die alte Weisheit: meist sind es die einfachen Dinge.
Hi, es ist wirklich ein Eisenbahntrafo, aber er ist schon sehr alt. Ich wusste nicht dass seine Gleichspannung so aussieht. Naja ist nicht immer das drin was drauf steht. Damit es länger hält sollte man dem 7805 wohl gleich rund 6V geben damit er seine Arbeit leicht machen kann. Vielen Dank für die Hilfe daniel
Hi, ich werde mir ein kleines Netzteil bauen. Mit Sicherung,Trafo,Gleichrichter,Glättungskondensator,Z-Diodenstabilisierun g. Nun hab ich jedoch noch eine Frage. Ich habe nur 1000uF /16V mein Trafo bringt eine Wechselspannung von 12 V, das steht drauf und ich meine die 12 V sind Effektivwert. Das würde aber bedeuten das die Spitzenspannung rund 17 V betragen. Wie steht es da um den Kondensator kann man ihn dennoch einsetzen obwohl es schon über die 16V ist? Senken die Gleichrichterschaltung das Potential am nachgeschalteten Kondensator? Vielen Dank Daniel
16V ist zu wenig, wenn Du ihn trotzdem verwendest, wird es vermutlich auch gehen, aber die Frage ist: wielange. Wie Du an deinem ersten Oszillogramm ablesen kannst, ist die Spannung 24V, da die Spannungsangabe des Trafos bei Nennlast ist. Bei Leerlauf oder geringer Last ist die Spannung idR 5-20% höher als die Angabe. Also ist ein 25V-Elko das mindeste. Durch Störspitzen kann die Spannung am C deutlich darüber ansteigen. 6V am Eingang es 7805 sind zu wenig. 8-10V sind optimal. Sonst brauchst Du einen LowDrop-Spannungsregler, der ist mit weniger als 6V schon zufrieden. "Senken die Gleichrichterschaltung das Potential am nachgeschalteten Kondensator?" Ja, die Spannung sinkt um 1,2 - 2,0 V durch 2* DiodenDrop. Wenn Du Dir noch was Gutes tun willst: schalte parallel zur Primärwicklung einen RC-Snubber (100 Ohm in Serie mit 100nF 300VAC) oder einen 250VAC VDR (Überspannungsableiter, Surge Suppressor). Sonst entsteht beim Ausschalten ein störender HF-Puls. Ansonsten gibt es auch günstige Steckernetzteile, ausgeführt als AC, unfiltered DC (ohne C), filtered DC (mit C), stabilisiert mit Längsregler und Schaltnetzteil (Viel Handy-Ladegeräte).
Im Elektronik-Fachhandel gibts doch günstige Wandwarzen, teilweise mit Schieberegler für verschiedene Spannungen. Sollten für weniger als 10 Euro zu haben sein.
Hi, Vielen Dank. Na dann werde ich mal die uC ordentlich zum laufen bringen. Wird ja auch Zeit! Daniel
Hi, das Lämpchen leuchtet :) ok zurück zum Fach :), habe nun endlich einen 1000uF/25V bekommen und hab ihn nach meiner Verpolschutzdiode eingelötet. Dann mit dem Osszi nochmal die Spannungen(Eingang/Kondensator/Reset) geprüft. Welche sehr sauber gelättet aussehen. Es lag nur an der Eingangsspannung. Ich danke sehr für eure Hilfreichen Tipps und Hinweise. Nun werde ich mich erst mal der richtigen Aufgabe widmen wofür es eigentlich gedacht war. Vielen Dank daniel
Hi, noch zur vollständigkeit die drei Oszi-Bilder. (pro Bild,ca.1,3MB) http://www.dlehne.htwm.de/Proj-uC/Eingang.jpg http://www.dlehne.htwm.de/Proj-uC/VCC.jpg http://www.dlehne.htwm.de/Proj-uC/Reset.jpg Nun wird mir auch klar warum er sich programmieren und auslesen lies und alles mit dem Programm in Ordnung schien. Man sollte stets auf ein Dauer-Reset achten und auf eine lineare Gleichspannung. Ein Oszilloskop ist dafür unverzichtbar. Oder man hat einen 1000uC/30V Kondensator bereit ihn vor den 7805 zu schalten. Die Kapazität ist so stark das er 1 Sek nach Netztrennung immer noch den uC mit der nötigen Spannung versorgt. Ich werde mir überlegen ob ich die Schaltung weiter so betreibe, es liegen immerhin über 20V am LM7805. Daniel
Überschlagsmässig: Dein 7805 muss daher (20-5) = 15 Volt vernichten. Bei, sagen wir mal, 100 mA die deine Schaltung braucht sind das: 15 * 0,1 = 1,5 Watt die er irgendwie loswerden muss. Irgendwie bedeutet, wie so oft in der Technik, in Form von Wärme. Ein normaler 7805 ist für etwa 8 bis 9 Volt Eingangsspannung bei 1 Ampere ausgelegt, also etwa 3 Watt Verlustleistung (hab jetzt das Datenblatt nicht da). Das geht aber nur mit Kühlkörper! Deine 1,5 Watt sind da also noch im Bereich. Warm wird er trotzdem werden, vor allem wenn du deine Schaltung noch ausbaust und der Stromverbrauch noch ansteigt. Ein Kühlkörper ist da sicher kein Fehler. Wenn es dich also nicht stört, dass du mehr Energie in Form von Wärme (1,5 Watt Verlustleistung kontra 5 * 0,1 = 0,5 Watt Nutzleistung) umsetzt als du hinten in den µC hineinstopfst, kannst du das mit einem Kühlkörper durchaus regeln. Schön ist es nicht, aber gehen müsste es. Ein 7805 hat eine Temperatursicherung. Der schaltet ab, wenns ihm zu warm wird.
Hi, Ja du hast Recht, zur Zeit ist dass nur eine Probeschaltung. Funktioniert es oder nicht, deswegen ist es nicht so wichtig mit Verlusten. Aber ich habe auch noch einen L293DN, der braucht auch einen Kühlkörper. Im Datenblatt war es so angegeben, dass man entweder ein Lötpad mit einer bestimmten Fläche auf der Platine an den GND anbringt oder ein Kühlblech anbringt. Wo kann man solche Kühlbleche kaufen, sowohl für den LM7805 und den L293DN (DIP16). Vielen Dank, deine Hinweise sind sehr gut Daniel
so etwas kann man alles bei reichelt kaufen (www.reichelt.de). übrigens: nur um einen µC zu programmieren, braucht man eigentlich kein ossi - man sollte aber die eingangsvariablen kennen, d.h. was man "in die schaltung reintut", sollte man wissen - in diesem fall dein unzureichendes netzteil. wenn du dir ein kleines vernünftiges netzteil baust, brauchst du darauf eigentlich nicht mehr zu achten. ;o) gruß alex
> d.h. was man "in die schaltung reintut",
Nicht nur 'in die Schaltung'.
Man glaubt es nicht wie oft in Foren tagelang nach
Fehlern in Funktionen gesucht wird und zum Schluss
stellt sich raus, dass die Funktion gar nicht die Werte
bekommt die der Poster die ganze Zeit angibt. Er hat sie
einfach geschätzt und nie überprüft.
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.