Forum: Mikrocontroller und Digitale Elektronik Atmel, Ausgang beim Booten 1


von Quiddi Q. (quiddi)


Lesenswert?

Hallo zusammen,

ich habe an einem ATTiny2313 ein Relai hängen, natürlich hängt ein 
Transistor dazwischen. Wenn ich den Atmel einschalte kommen am Anfang 
geschätzte 200ms eine 1 aus dem Pin der mir den Transistor schaltet. Ich 
habe die Definition, dass er 0 ausgeben soll schon ganz an den Anfang 
nach der Definition für den Ausgang gegeben. Es reicht dennoch nicht und 
das Relai zieht kurzfristig im Einschaltvorgang an. Ich habe die 
Verzögerung zum Booten, oder wie sich das nennt, schon auf 0 gesetzt 
über die Fusebits. Gibt es Softwaremäßig eine Möglichkeit das Problem in 
den Griff zu bekommen? Oder muss ich meine Hardware umbauen, dass sie 
LOW-Active schaltet?

Danke für eure Hilfe.

von Handbuch (Gast)


Lesenswert?

Handbuch

von Hubert G. (hubertg)


Lesenswert?

Du könntest es Softwaremässig versaut haben, z.B. den Pin auf Eingang 
und dem PullUp aktiviert oder so ähnlich.
Oder du brauchst nur einen PullDown an der Basis des Transistor, 47k 
sollten genügen.

von hdd (Gast)


Lesenswert?

An welchen Pin hast du den Transistor gehängt?
Die Pins sollten eigentlich beim Reset alle als Eingang eingestellt 
sein. Zeig mal die Beschaltung des Pins mit Transistor/Relais.

von Floh (Gast)


Lesenswert?

Quiddi Quiddinson schrieb:
> Wenn ich den Atmel einschalte kommen am Anfang
> geschätzte 200ms eine 1 aus dem Pin der mir den Transistor schaltet.

Dann schaltest du irgendwo den Pin selber ein, oder deine Beschaltung 
stimmt nicht. Nach einem Reset sind alle I/O-Pins erstmal hochohmig und 
treiben gar nichts.

von Weingut P. (weinbauer)


Lesenswert?

wenn er nen FET schaltet kann das schon sein, der braucht nicht viel 
Strom zum schalten ... soweit mir bekannt sind die Pins im 
Einschaltmoment als Eingang mit aktiviertem Pullup, irgenwas von 50kR 
hab ich da noch im Hinterkopf ... pulldown sollte da aber Abhilfe 
verschaffen.

von Quiddi Q. (quiddi)


Lesenswert?

Hab das Problem gelöst.
Es lag am STK500. Ich hatte alles abgebaut und an den Expand1 nur eine 
LED an meinen Ausgang angebracht. Beim Einschalten des STK500 leuchtete 
auch sie kurz auf.

Als ich den Atmel auf eine Steckplatine packte und alles manuell 
verkabelte bestand das Problem nicht mehr.

Weiß einer was das STK500 beim Einschalten macht? Während dem Betätigen 
des Resetknopfes auf dem STK leuchtet die LED auch.

von Klaus W. (mfgkw)


Lesenswert?


von kiemerle (Gast)


Lesenswert?

Schody is like a melody in my head. Schody is like a melody in my head.

von c-hater (Gast)


Lesenswert?

Quiddi Quiddinson schrieb:

> ich habe an einem ATTiny2313 ein Relai hängen, natürlich hängt ein
> Transistor dazwischen. Wenn ich den Atmel einschalte kommen am Anfang
> geschätzte 200ms eine 1 aus dem Pin der mir den Transistor schaltet.

Dann mußt du, verdammt nochmal, die Stelle in deiner Software suchen, wo 
das passiert. Denn von sich aus tut kein AVR sowas, die initialisieren 
alle normalen(*) Pins auf HighZ, ein bipolarer Transistor kann dann 
unmöglich angesteuert werden, jedenfalls nicht, solange keine höheren 
Spannungen als Vcc mit im Spiel sind. Und das gilt, egal ob PNP oder 
NPN, denn ohne Strom ist bei denen allen nix los.

(*) Unnormale Pins sind:
Supply-Pins: VCC,AVCC,GND,AGND,AREF
Quarz-Pins: XTALx
RESET
JTAG-Pins

Ein 2313 hat weder JTAG noch das Analog-Geraffel AGND, AVCC und AREF. 
VCC oder GND würde nur ein Vollidiot als Steuerausgang zu benutzen 
versuchen.

Falls du also nicht gerade das Relais (bzw. den steuernden Transistor) 
an PA0..PA2 hast, kannst du ziemlich sicher davon ausgehen, daß das 
Problem ein Softwareproblem ist, sprich: ein BUG. Und falls doch, sind 
die Fuses falsch programmiert, also auch irgendwie Software...

Falls du allerdings mit "Transistor" einen FET meinst, dann gilt das 
natürlich nicht, denn die Dinger sind spannungsgesteuert und benötigen 
nahezu keinen Strom. Falls es ein FET ist, mußt du per PullUp oder 
Pulldown-Widerstand für definierten Pegel sorgen, solange der steuernde 
Ausgang HighZ hat.

> Ich
> habe die Definition, dass er 0 ausgeben soll schon ganz an den Anfang
> nach der Definition für den Ausgang gegeben.

Definitionen machen zur Laufzeit garnix, nur Code tut das. 
Dementsprechend spielt es bezüglich des Verhaltens zur Laufzeit absolut 
keine Rolle, an welcher Stelle des Quelltextes sie erfolgen.

von spess53 (Gast)


Lesenswert?

Hi

>Quiddi Quiddinson schrieb:

Das war 2012. Hat nur jemand im Rausch wieder ausgegraben.

MfG Spess

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.