Forum: Mikrocontroller und Digitale Elektronik Kann man einen AVR-Port auf 1 initialisieren?


von batman (Gast)


Lesenswert?

Hallole,
geht das eigentlich mit nem AVR, daß er nach dem Reset einen 
Ausgangsport auf direkt HI schaltet, ohne ein vorausgehendes LO?

Ich meine, nach dem Reset wird der Port ja auf als hochohmiger Eingang 
geschaltet, vor dem DDR_B0=1 kann dem Port ja keinen Ausgangszustand 
zuweisen, so daß der zumindest für einen Takt Stromsenke (LO) ist? Das 
würde an einem angeschlossenen Gerät möglicherweise eine Fehlfunktion 
auslösen.

von Mike (Gast)


Lesenswert?

batman schrieb:
> vor dem DDR_B0=1 kann dem Port ja keinen Ausgangszustand
> zuweisen

Was hindert dich daran, erst das PORT-Register zu setzen und dann mit 
dem DD-Register auf Ausgang zu schalten?

von Spess53 (Gast)


Lesenswert?

Hi

>geht das eigentlich mit nem AVR, daß er nach dem Reset einen
>Ausgangsport auf direkt HI schaltet, ohne ein vorausgehendes LO?

Nach dem Reset ist der PIN Eingang. Also weder Hi noch Lo.

>Das würde an einem angeschlossenen Gerät möglicherweise eine Fehlfunktion
>auslösen.

Dann bringe den Pin mit einem externen Pull-Up-Widerstand auf einen 
definierten Pegel.

MfG Spess

von c-hater (Gast)


Lesenswert?

batman schrieb:

> geht das eigentlich mit nem AVR, daß er nach dem Reset einen
> Ausgangsport auf direkt HI schaltet, ohne ein vorausgehendes LO?

Natürlich.

ldi R16,$ff
out PORTX
out DDRRX

Allerdings ist der Port für einen Takt nicht niederohmig HI, sondern nur 
über Pullups. Bei praktisch allen Logikfamilien, die man anschließen 
könnte reicht aber auch das Pullup-HI bereits sicher aus, um von diesen 
als HI "gesehen" zu werden.

Allerdings könnte es u.U. Schwierigkeiten geben, wenn über einen FET am 
Pin  direkt größere Lasten gesteuert werden. Die Eingangskapazität des 
FET zusammen mit dem Pullup stellt eine RC-Zeitkonstante dar. Bei 
ungünstiger Kombination der Werte könnte der FET innerhalb des einen 
Taktes in einen "halbleitenden" Zustand geraten. Ist er auch noch 
leistungsmäßig so "auf Kante genäht", daß er im sauberen Schaltbetrieb 
gerade so ausreicht, könnte er dadurch zerstört werden.

Es ist zwar relativ unwahrscheinlich, daß sowas passiert, aber man 
sollte es wenigstens durchrechnen und ggf. einen anderen FET wählen, mit 
dem man auf der sicheren Seite ist.

von René B. (reneb)


Lesenswert?

Hallo,

sollte da tatsächlich z.B ein Hi-side p-FET dranhängen, dann geht es 
auch mit folgendem Konstrukt:
- npn gegen V+ und Gate
- den PullUp an V+ und Basis
- AVR-Pin an Basis.

von Mike (Gast)


Lesenswert?

c-hater schrieb:
> Die Eingangskapazität des
> FET zusammen mit dem Pullup stellt eine RC-Zeitkonstante dar. Bei
> ungünstiger Kombination der Werte könnte der FET innerhalb des einen
> Taktes in einen "halbleitenden" Zustand geraten.

Wäre das so schlimm?
Schließlich ist der FET vor dem Einschalten kalt, da ausgeschaltet und 
damit hat er selbst bei knapper Auslegung eine Reserve für die Energie, 
die während dieses einen Taktes umgesetzt wird. Natürlich sollte man das 
Setzen von PORT und DDR als atomare Operation kapseln.

von c-hater (Gast)


Lesenswert?

Mike schrieb:

> Wäre das so schlimm?

Wie schon gesagt: es ist ziemlich unwahrscheinlich, daß wirklich was 
abraucht, es ist aber eben auch definitiv nicht unmöglich.

Deswegen erneut meine Empfehlung: Einfach den worst case für die 
konkrete Schaltung selber durchrechnen. Oder vielmehr von Tools wie 
LTSpice durchrechnen zu lassen. Zum Glück braucht man sowas heutzutage 
ja nicht mehr mit Papier und Rechenschieber zu machen. Mein Gott, wenn 
mich jemand heute dazu zwingen würde, wäre ich auch erstmal ganz schön 
aufgeschmissen...

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.