Forum: Mikrocontroller und Digitale Elektronik DS18B20 an UART


von Nobby Nic (Gast)


Lesenswert?

Hi

möchte gerne einen DS18B20 über den UART vom AVR ansteuern. Verstehe 
aber nicht, warum in der App-Note von Atmel ein Open-Collector TX mit 2 
Transistoren aufgebaut wird, tut's da nicht auch eine einfache 
Schottky-Diode?

Gruß
Nobby

von spontan (Gast)


Lesenswert?

Zeig doch mal die AN!

von Nobby Nic (Gast)


Lesenswert?


von Max D. (max_d)


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.

von Mike (Gast)


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.

von Volker (Gast)


Lesenswert?

Nur 1 NPN-Transistor würde den Logik-Pegel invertieren.

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


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.

von Mike (Gast)


Lesenswert?

Uwe Bonnes schrieb:
> Wenn dagegen ... ein Interrupt laenger bedient werden will, dann kann es
> Probleme geben.

Dann sollte man mal über die Programmstruktur nachdenken. Das Wort 
"länger" sollte im Zusammenhang mit ISR nicht auftauchen.

von Nobby Nic (Gast)


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.

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

Mike schrieb:
> Dann sollte man mal über die Programmstruktur nachdenken. Das Wort
> "länger" sollte im Zusammenhang mit ISR nicht auftauchen.

Dann lass es mehrere verschiedene Interrupts hintereinander sein...

von Mike (Gast)


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.

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.