Kann man einen AVR-Port auf 1 initialisieren?

Gast #3234416
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.
Gast #3234423
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
Gast #3234428
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.
Gast #3235399
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.
Gast #3235452
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...

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.