PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ATtiny13 mit einem externen Netzteil betreiben



in7ert
20.04.2008, 12:32
Moin. Habe folgendes Problem beim Anschließen d. MC (ATtiny13) an eine externe Stromversorgung. Als Testschaltung habe ich einen weichen Blinker aufgebaut, s. das Bild:

Dabei passiert entweder gar nichts oder die LED flackert sehr schnell, wenn man den ATtiny mit Stromversorgung verbindet.

Als Abhilfe habe ich dann den eingezeichneten Kondensator (100n) gefunden. Wenn man ihn mit VCC und GND-Pins verbindet (!!bei angeschlossener Batterie/Netzteil!) , beginnt die LED richtig zu blinken.

Aber jetzt das eigentliche Problem: es geht nicht den Kondensator genauso reinzulöten und !!!erst danach die Stromversorgung einzuschalten!!!. Es passiert dabei gar nichts, die LED ist einfach aus.

Wobei genau das mölchte ich erreichen, dass beim Anschluß an eine Batterie/Netzteil die LED richtig zu leuchten beginnt.

Wo könnte bei meiner Schaltung denn das Problem sein? Braucht man vielleicht noch eine Diode. Weiss irgendwie nicht weiter.

http://www.nlock.de/dsc01412_1.jpg

izaseba
20.04.2008, 12:40
Löte noch einen 100 nF zwischen
9V und GND
5V und GND
Beide so nah wie möglich am Regler
etwa 10 k Widerstand zwischen Reset und 5V
optional 47 nF zwischen Reset und GND
Der Kondensator, den Du eingezeichnet hast auch so nah wie es nur geht am µC

Gruß Sebastian

in7ert
21.04.2008, 15:52
ich habe es nun genauso gemacht, wie du mir beschrieben hast aber dass problem ist immer noch dasselbe. guck dir mal das video an. erst funktioniert es, sobald dann aber die batterie kurz abegmacht wird und dann wieder rangesteckt wird, muss erst am tiny gewackelt werden damit die led wieder anfängt zu leuchten.

Hier noch mal das Schaltplan ergänzt:

http://www.nlock.de/blinks/dsc01415_1.jpg

Das Video:

http://www.nlock.de/blinks/mov00002.3gp

Besserwessi
21.04.2008, 17:44
Wenn zwischen Tiny13 und Spannungsregler etwas kabel ist (>3 cm) sollte für den Spannungsregler und Controller ein eigener Kondensator (C1). C2 sollte direkt am Regler sein, nicht unbedingt an den gemeinsamen Massepunkt.

in7ert
21.04.2008, 18:26
Zwischen Regler und tiny ist bei mir ganz wenig kabel (sogar weniger als 1 cm), soll ich also den C1-Kondensator deswegen besser wieder rauslöten?

Die C2->Masse bringe ich gleich ganz nah an den Regler an, mal sehen, ob es gleich klappt.

in7ert
21.04.2008, 18:42
ne klappt trotzdem noch nicht, also C1 besser rauslöten?

in7ert
21.04.2008, 18:56
P.S:

Habe hier:

https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=33740&postdays=0&postorder=asc&highlight=attiny13&start=22

ein ähnliches Thema gefunden, doch es hilft nichts. Zwar klappt das Programm dadurch zu starten, dass man GND und RES kurz verbindet und dann wieder die Verbindung löst, doch wie bringt man den Kondensator, von dem hier unten die Rede ist, in die Schaltung an:

"Darum wird bei jeder normalen schaltung neben dem pull-up-widerstand nach Vcc auch noch ein kleiner (glaub so 100nf) Kondensator gegen GND gelegt.Beim einschalten ergibt sich dann beim laden des Kondensators ein kurzer RESET-Befehl, und das Programm wird gestartet." AlKI

(hab gerade zwischen GND-RESET und GND-VCC probiert, geht wieder nicht)

Es sollte ja sofort starten, wenn ich die Batterie anschließe, was aber wie gesagt nicht macht.

izaseba
21.04.2008, 19:22
muss erst am tiny gewackelt werden damit die led wieder anfängt zu leuchten.

Hast Du vielleicht eine schlechte Verbindung irgendwo ?


ne klappt trotzdem noch nicht, also C1 besser rauslöten?

Nein nicht rauslöten, am Spannungsregler gehören 2 Abblockkondensatoren un am µC einer, alle so nah wie es nur geht an den Anschlüssen und nicht so Sternförmig wie Du es eingezeichnet hast.

Ich tipe aber eher an eine Kaltlötstelle.

Gruß Sebastian

avion23
21.04.2008, 20:52
Hallo in7ert,
endlich mal jemand der sein Problem genau beschreiben kann.

Vielleicht ist deine Batterie zu schwach? du kannst ja mal die Spannung an der Batterie & am µC meßen.

in7ert
22.04.2008, 19:33
Hallo nochmal :-)


Hast Du vielleicht eine schlechte Verbindung irgendwo ?

Ne, eigentlich ist da alles ok. Es wird nur die Batterie weggenommen und wieder angeschlossen. Die anderen Teile versuche ich möglichst nicht zu bewegen.


Ich tipe aber eher an eine Kaltlötstelle.

Das könnte sein, werde gleich alles noch mal nachlöten. Ist mir schon mal bei einer anderen Schaltung passiert. Poste im Anschluß, ob das Problem dadurch behoben wurde.


Vielleicht ist deine Batterie zu schwach? du kannst ja mal die Spannung an der Batterie & am µC meßen.

Nein, die Batterie ist ok.

Später werde ich es sowieso mit einem 13V - Netzteil alles betreiben. Hoffe, dass der Regler dadurch nicht zu sehr aufheizt.

P.S:

muss noch sagen, dass ich keinen 47n Kondensator zur Hand hatte und stattdessen zwei 100n Kondensatoren in Reihe angeschlossen habe. Muss aber so auch gehen oder ?

Bei ATmega's wird statt den 47n Kondensator ein 100n Kondensator angeschlossen -> habe bei tiny das auch mal probiert -> das Ergebnis wieder negativ, es will einfach nicht nach dem Anschluß an die Netzspannung starten, sondern erst mit einigen Tricks, die ich oben erwähnt habe (GND-RST überbrücken und wieder loslassen, am MC wackeln und 100n Kondensator zw. GND-VCC einmal berühren)

Den Schaltplan habe ich nochmal gezeichnet, so dass es ein bisschen übersichtlicher aussieht. Wurde auch alles so verlötet (außer 47n --> 2x 100n in Reihe) Das ist so nun richtig oder ?

http://www.nlock.de/blinks/d.jpg

in7ert
22.04.2008, 20:42
nein, geht leider trotzdem noch nicht so, wie es soll (Kaltlötstelle war es auch nicht)

radbruch
22.04.2008, 20:56
Ohne Spannungsregler nur mit 4 Akkus?

in7ert
22.04.2008, 22:13
Ohne Spannungsregler nur mit 4 Akkus?

Was meinst du damit? 4 Akkus? hm? 4V Akku ?

in7ert
22.04.2008, 22:16
>> Allgemein könnte ich es aber mal probieren an eine 5V-Spannung direkt ohne Spannungsregler anzuschließen, weiß aber nicht, ob du das meintest. Bin ziemlich skeptisch, was diese Idee angeht, da es sich nichts verändern würde, außer dass der Kondensator C1 im letzen von mir geposteten Bild entfallen würde.

Lordcyber
22.04.2008, 22:30
Ein Akku hat 1,2V Also zusammen 4,8V.
Die AVRs müssen nicht mit genau 5V betrieben werden siehe Datenblatt

in7ert
23.04.2008, 08:45
Ok, das probiere ich mal später.

(Übrigens, so weit ich weiß gibt es verschiedene Akkutypen, die nicht unbedingt 1,2 V haben müssen)

>>>Aber die zuletzt gepostete Schaltung ist so richtig oder?
>>>Man kann den 47n durch 2 x 100n Kondensatoren in Reihe ohne Weiteres ersetzen oder?

Vielen Dank an Alle.

Gruß
in7

Hubert.G
23.04.2008, 08:56
Du wirst doch irgend ein Steckernetzteil haben das eine Gleichspannung zwischen 7 und 20V bringt. Damit wird es sicher funktionieren. Oder du machst dir einen Resettaster, dann geht es mit großer Sicherheit auch, das hast du ja schon mit deinem GND - Reset überbrücken festgestellt. Es knickt wahrscheinlich nach dem Power-On die Spannung noch einmal ein und der Kontroller verrennt sich irgendwo.
Abhilfe könnte auch das aktivieren der Brown-Out-Detection schaffen.
Die Kondensatoren gehören alle so hin wie sie sind, es ist keiner zuviel.

avion23
23.04.2008, 10:33
Du kannst statt 47nF einen 100nF verwenden.
Zwei 100nFin Reihe sind schlechter als ein 100nF in diesem Fall.

Begründung: Der Kondensator soll schließlich als Energiespeicher dienen. Die Frequenz mit der die Energie entnommen wird ist sehr hoch (xxMHz), deswegen ist es wichtig, dass der Kondensator nicht nur die gesamte Energie liefern kann, die benötigt wird, sondern das auch ausreichend schnell. Sonst könnte man einen von der Bauform ausreichnd kleinen Elektrolyt-Kondensator verwenden. Bei der hohen Frequenz wirken aber schon die Anschlüsse des Kondensators als Induktivität, ein paar Zentimeter Leiterbahn sind tödlich.
Bei zwei hintereinader geschalteten Kondensatoren kommst du vielleicht auf den "richtigen" Wert der Kapazität, aber von dem Ziel einer niedrigen Induktivität bist du weit entfernt. Es ist leichter Kondensatoren mit niedrigen Kapazitäten Induktionsarm zu fertigen als solche mit großer. Und weil schlicht und einfach nicht mehr benötigt wird werden oft die 47nF oder 100nF als Hausnummer angegeben :)


Übrigens haben SMD-Bauelemente in dem Bereich große Vorteile. Die Anschlüsse sind sehr breit und die Zuleitungen im Inneren sehr kurz --> niedrige Induktivität. Zusätzlich kann man auch noch mit dem Skineffekt argumentieren, da ist in erster Linie die Oberfläche entscheidend.

Bart W.
23.04.2008, 10:52
Hi

Hatte mal ein ähnliches Problem und auch an der Spannungsversorgung herumgeschraubt / gesucht, bis ich merkte, das es am Programmcode gelegt hatte! Hatte nicht alle Variblen auf 0 gesetzt / initialisiert und hatte dadurch undefinierte Anfangszustande. Dadurch ging es mal und mal nicht. #-o
Vielleicht liegt der Fehler ja da, denn deine Schutzbeschaltung sollte alle Störungen kompensieren.

Bye Bart

in7ert
24.04.2008, 10:42
Ich glaube, dass die Aktivierung des Brown-Out hier helfen würde. Danke für den Tipp.

Leider klappte die Aktivierung des Fuses auf meinem alten Rechner mit serieller Schnittstelle nicht (vermutlich wegen Windows 98) - konnte keine Verbindung mit STK500 Plugin für AVR Studio 4 und auch nicht mit PonyProg2000 zu COM1 herstellen, obwohl die Schnittstelle gerade von keinem anderen Programm verwendet worden war und auf die ich ganz normal mit HyperTerminal zugreifen könnte. Deswegen mache ich heute/morgen das Gleiche nochmal auf einem anderen Rechner und sage dann, ob es geklappt hat.

Nochmal vielen Dank an Alle.

P.S: habe nun statt 47n den 100n Kondensator reingelötet

in7ert
04.05.2008, 18:13
Hallo @all

Habe nun versucht auf einem anderen PC dies mit Brown-Out zu machen. Hat leider nicht geklappt, liegt wohl an meinem Progger (wird nicht mal von avrdude unterstützt). Mit STK500 o.ä. Gerät würde es auf jeden Fall klappen, hab versucht den aufzutreiben, was allerdings ziemlich schwer ist, da es niemand den ich kenne hat. Vielleicht kommt jemand aus der Nähe von Bremen und hat einen Programmer mit dem man diese Fuses einstellen könnte. Wäre cool, falls mir jemand helfen würde.

KaiP
01.06.2008, 22:54
Hallo,

ich habe exakt das gleiche Problem. In der Test- und Programmierschaltung geht's perfekt. Sobald aber der Tiny extern betrieben wird, geht gar nichts mehr. Manchmal bei Erdung einiger Kontakte brennt dann nur die LED an PB3 und bleibt dann an, bis der Strom getrennt wird. Habe alles mögliche Probiert, mit und ohne Kondensatoren, etc. Keine Chance.

Um kalte Lötstellen auszuschliessen, habe ich die Schaltungen mehrfach aufgebaut. Immer das gleiche.

Als Spannungsquelle dient ein 7805, der exakt 4,97 Volt liefert. Das Netzteil versorgt mit mind. 300 mA. Habe auch schon ein stärkeres dran gehabt, machte kein Unterschied. Ebenso zum Test auch mal Batterien, aber leider immer negativ. Auch ohne Spannungsregler direkt an einem Akkupack mit 4,8 Volt (4x 1,2Volt) kein Ergebnis. Ebenso eine USB Stromversorgung vom Rechner.

Kaum war der Attiny13 wieder in der Franzis-Schaltung, klappte es wieder prima.

Im Moment sieht das ganze so aus:
http://www.pistorio.de/pics/tiny1.jpg

Programmiert wird das ganze über die Franzis-Schaltung seriell. Zum Setzen der Fuses habe ich mir einen Paralleladapter gebaut, der aber bisher nicht zum laufen zu bringen war, wie oben bei meinem Vorgänger bereits beschrieben.

Könnte es sein, dass ich sämtliche nicht benutzten Pins via PullUp an Masse legen muß ?

Die Schaltung soll übrigens folgendes machen:

Schalter von PB1 über PullUp an VCC, LED über R an PB3. Wird bei PB1 die Taste gedruckt, wird für 120 Sekunden die LED eingeschaltet. Wird währenddessen die Taste erneut gedrückt, wird die Schaltzeit um weitere 120 Sekunden verlängert.

Hier der Code:


$regfile = "attiny13.dat"
$crystal = 1200000

Config Pinb.1 = Input
Config Portb.3 = Output
Portb.3 = 0
Portb.1 = 1

Dim Zae As Byte
Zae = 0

Start:
Do
Portb.3 = 0
If Pinb.1 = 1 Then Goto Ledan
Loop

Ledan:

For Zae = 0 To 120
Portb.3 = 1
If Pinb.1 = 1 Then Goto Ledan
Wait 1
Next Zae

Goto Start

End


Wer weis Rat ?

Vielen Dank,

Kai

oberallgeier
02.06.2008, 07:17
Hallo KaiP,

Deine Schaltung sieht nicht so aus, als hättest Du die notwendigen üblichen Kondensatoren am 7805, schau mal die Schaltung z.B. hier (https://www.roboternetz.de/wissen/images/c/c6/Rncontrol1.4schaltplan.gif) an - da ist die Spannungsversorgung "links oben" extra herausgezeichnet, oder die Skizze von in7ert. (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=369200#369200) Ohne diese Kondensatoren gibt es bei den Schaltreglern wohl störende Schwingungen. Denk daran, dass Du den 7805 mit etwa 2 Volt mehr versorgen musst, als Du braucht - 7 V sind also das Minimum, der Rest der Spannung wird im Regler selber "verbraten". Wenn Du weniger verfügbar hast (z.B. 6 V - Netzteil) musst Du einen LDO nehmen (low drop out - also ein Regler mit sehr gereinger Verlustleistung), z.B. einen LD2950 (warum heißt der wohl LD...?).


... Kaum war der Attiny13 wieder in der Franzis-Schaltung, klappte es wieder prima... ... also wird wohl alles "im Prinzip" in Ordnung sein. Ich habe mein Lernpaket Microcontroller von Franzis durchgearbeitet und z.T. auch selbst Schaltungen mit einem 9V Block aufgebaut - dabei hatte ich IMMER die zwei Kondensatoren vor und hinter dem Spannungsregler und ich hatte NIE Probleme. Auch meinen selbst gebauten Servotester mit Poti und tiny13 fahre ich mit dieser Schaltung problemlos.

in7ert
02.06.2008, 08:24
Hat bei mir auch nicht geklappt mit dem Parallel-Port-Programmer (ISP) Brown-Out zu aktivieren (hast ihn bestimmt nach dieser Schaltung hier gebaut:
http://s-huehn.de/elektronik/avr-prog/avr-prog.htm Übrigens, habe mir dafür an einen 8pin externen IC-Sockel Drähte angelötet und die in den IC-Sockel auf der Platine gesteckt, einige Drähte führten auch zum LPT am Rechner. Dann habe den Microcontroller auf diesen externen Sockel angebracht und plötzlich funktionierte es. Es ging genau, wie ich es wollte, wenn die Spannung da war, startete das Programm. Nach dem Abbau ging das aber nun wieder nicht. (in späteren Versuchen konnte das, was ich grade beschrieben habe, auch nicht mehr hinkriegen) Wie gesagt, Brown-Out-Detection sollte eigentlich Abhilfe schaffen. Doch dafür braucht man einen norm. Programmer, werde wohl noch ein bisschen abwarten, bis ich vielleicht jm finde, der sowas hat oder mir Eins kaufe.

DT006 (Unterstützung für ATtiny13, Preis: 7.50):

http://www.adafruit.com/index.php?main_page=product_info&cPath=16&products_id=11

Besserwessi
02.06.2008, 20:00
Der primitive Serielle Programmierdogle sollte von ponyprog und avrdude unterstützt werden. Dann sollte man auch damit die Fuses verstellen können. Da man mit den Fuses auch einiges falsch machen kann ist es vielleicht gar nicht so schlecht das die Software aus dem Lernpaket die Fuses nicht ändern kann.

Der fehlende Entkoppelkondensator am Controller könnte ein Problem sein. Je nachdem wie viel externe Störungen da sind, kann auch der Kondensator/Widerstand am Reset wichtig sein. Auf die Werte kommt es dabei eher weniger an, auch 100 nF gehen an Reset.

peterfido
02.06.2008, 23:57
Wenn du die internen PullUps nutzt, dann muss der Taster den Pin auf Masse ziehen, sonst ändert sich der Eingang nie. Wie sieht die Beschaltung des Resets aus? Der 2. Kondensator am Spannungsregler fehlt. (1 am Eingang und 1 am Ausgang) Wenn Du den Taster während des Waits tastest, kann es sein, dass dieses nicht registriert wird.

@ in7ert. Stell doch mal dein Programm hier rein. Evtl könnte es helfen die Bootzeit des MC zu verlängern.