Atmel, Ausgang beim Booten 1

#2881114
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.
#2881362
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.
Gast #3820350
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren