DS18B20 an UART

#3613488
Lesenswert?
• ▲
▼
Ein gesättigeter Transistor lässt noch ca. 200 mV "stehen" eine Si-Diode 
macht dagegen 600 mV und eine Schottky 300 mV. Ich könnte mir also 
vorstellen, dass das der Grund für den Transi ist.

Warum man dafür aber die UART bemüht ist etwas fraglich, es gibt sehr 
gute Software-only Implementationen, die funktionieren dann an jedem Pin 
und brauchen auch nur einen.
Gast #3613494
Lesenswert?
• ▲
▼
Max D. schrieb:
> Warum man dafür aber die UART bemüht ist etwas fraglich, es gibt sehr
> gute Software-only Implementationen, die funktionieren dann an jedem Pin
> und brauchen auch nur einen.

Es soll Controller geben, die neben dem Kreisen in der Idle-Loop auch 
noch ein paar andere Dinge erledigen sollen, die wichtiger sind, als die 
1-Wire Kommunikation. Da kann es hilfreich sein, wenn man die verfügbare 
Hardwareunterstützung auch nutzt.
(Firma: TU Darmstadt) #3613503
Lesenswert?
• ▲
▼
Max D. schrieb:
> Warum man dafür aber die UART bemüht ist etwas fraglich, es gibt sehr
> gute Software-only Implementationen, die funktionieren dann an jedem Pin
> und brauchen auch nur einen.

Der Uart macht die One-Wire Zeiten aber in Hardware. Wenn dagegen beim 
Bitbanging ein Interrupt laenger bedient werden will, dann kann es 
Probleme geben.

Beim STM32 geht auch UART OWI mit nur einem Pin, da man auf Single Wire 
half-duplex und UART-TX als Open Drain umschalten kann.
Gast #3613626
Lesenswert?
• ▲
▼
Max D. schrieb:
> Ein gesättigeter Transistor lässt noch ca. 200 mV "stehen" eine Si-Diode
> macht dagegen 600 mV und eine Schottky 300 mV. Ich könnte mir also
> vorstellen, dass das der Grund für den Transi ist.

Ok, dachte ich mir. Mit ner BAT42 funktioniert das Konstrukt.

> Warum man dafür aber die UART bemüht ist etwas fraglich, es gibt sehr
> gute Software-only Implementationen, die funktionieren dann an jedem Pin
> und brauchen auch nur einen.

Es gibt auch sehr gute Software UARTS, PWM, I2C, etc. Warum also die 
eingebaute Hardware nutzen? Der zusätzliche Pin macht den Kohl nicht 
fett. Aber während der UART ein 1-Wire Bit sendet/empfängt können die 
Interrupts der anderen Module ebenso bedient werden.
Gast #3613756
Lesenswert?
• ▲
▼
Uwe Bonnes schrieb:
> Dann lass es mehrere verschiedene Interrupts hintereinander sein...

Nein, dann ist es eine Frage der Interrupt-Priorität.

Ob eine einzelne ISR den Prozessor länger blockiert oder verschiedene 
ISR entsprechend dem Zeitpunkt ihres Auftreten und ihrer Priorität 
nacheinander abgearbeitet werden, macht für Echtzeitbetrieb einen 
riesen Unterschied.

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.