Forum: Mikrocontroller und Digitale Elektronik DS18B20 Reset Pulse nicht GND ?


von qwertz (Gast)


Lesenswert?

Hallo,

ich nutze einen ATmega168 und möchte mittels DS18B20+ Temperaturen 
erfassen.
Als Software nutze ich die von peter dannegger 
[Beitrag "DS1820, DS18B20 in C"].

Folgendes Problem liegt bei mir vor:
Ist der DS18B20+ eingebaut, kann der µC beim Reset Pulse von 480µs die 
Leitung nicht auf GND ziehen, sondern auf nur ca. 4,8 V. Löte ich das 
Teil aus, wird PD0 wie gewünscht auf GND gezogen.

Ist dieses Verhalten normal oder liegt ein Fehler vor?
Ist der DS18B20+ kaputt?

Folglich wird bei mir kein Sensor gefunden: "No Sensor found" .


Grüße

von (prx) A. K. (prx)


Lesenswert?

qwertz schrieb:
> Ist der DS18B20+ eingebaut, kann der µC beim Reset Pulse von 480µs die
> Leitung nicht auf GND ziehen, sondern auf nur ca. 4,8 V.

Der Pullup am 1-Wire sollte nicht bloss 100 Ohm betragen. Und der AVR 
sollte die Leitung nicht aktiv hochziehen, sondern das dem Pullup 
überlassen.

von qwertz (Gast)


Lesenswert?

Der Widerstand ist wie überall beschrieben 4,7k groß.
Der uC schaltet niemals auf High, sondern soll den Pin auf GND ziehen, 
was leider nicht klappt wenn der DS18B20 verbaut ist.

von (prx) A. K. (prx)


Lesenswert?

Moment... ich sehs erst jetzt: Der AVR kriegt den Pin nicht runter 
gezogen? Das ist selten, denn ein AVR zieht bei 5V an die 100mA durch 
den Pin durch, d.h. das ist ein blitzsauberer Kurzschluss. Teil verreckt 
oder verkehrt herum.

: Bearbeitet durch User
von qwertz (Gast)


Lesenswert?

Hm. Der Widerstand ist korrekt und ohne den Sensor klappt's. Da müsste 
also der Sensor den Kurzschluss verursachen und Vcc an DQ anliegen.

Komisch nur das der Controller trotzdem weiter arbeitet und nicht 
verreckt ist.

Was für einen Widerstand müsste ich am Sensor zwischen Vcc und DQ 
messen?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

qwertz schrieb:
> Komisch nur das der Controller trotzdem weiter arbeitet und nicht
> verreckt ist.
Ach, an einem einzigen Pin kannst du lange einen Kurzschluss anlegen. 
Der Bahnwiderstand des Ausgangstransistors (30..50 Ohm) verhindert 
Schlimmeres: der uC wird zwar warm, geht aber nicht kaputt. Ab zwei 
kurzgeschlossenen Pins wirds dann interessant...

von qwertz (Gast)


Lesenswert?

Also scheint der DS18B20+ defekt?

von Cyblord -. (cyblord)


Lesenswert?

qwertz schrieb:
> Also scheint der DS18B20+ defekt?

Hast du davon denn nur einen einzigen? Probier halt nen zweiten.

von Route_66 H. (route_66)


Lesenswert?

qwertz schrieb:
> Also scheint der DS18B20+ defekt?

Wahrscheinlich nur verpolt. Betrachte mal im Datasheet die Pinbelegung 
(Stichwort: BOTTOM VIEW)

von qwertz (Gast)


Lesenswert?

> Hast du davon denn nur einen einzigen? Probier halt nen zweiten.
leider ja - nur einen :(

> Wahrscheinlich nur verpolt.
Mehrmals kontrolliert. Alles richtig.

Wenn ich den Widerstand messe: alles gegen alles - unendlich

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

qwertz schrieb:
> Wenn ich den Widerstand messe: alles gegen alles - unendlich

 Pullup stehen lassen, Sensor rausziehen - kann der uC die Leitung
 auf 0 ziehen ?
 Wenn nein, Pullup wegschmeissen.

 Wenn ja, Sensor reinstecken, kann der uC die Leitung auf 0 ziehen ?
 Wenn nein, nicht lange rumrätseln, Sensor wegschmeissen, einen
 neuen besorgen.

von qwertz (Gast)


Lesenswert?

>  Wenn ja, Sensor reinstecken, kann der uC die Leitung auf 0 ziehen ?
>  Wenn nein, nicht lange rumrätseln, Sensor wegschmeissen, einen
>  neuen besorgen.

Das ist der Fall. Ich besorg einen neuen.

Danke für all die Hilfe!

von (prx) A. K. (prx)


Lesenswert?

Daumenregel bei relativ billigen Bauteilen im Bastelstadium: Immer ein 
Exemplar mehr besorgen als man benötigt.

von qwertz (Gast)


Lesenswert?

Wie ist das eigentlich im parasite power mode?

"Optional VDD. VDD must be grounded for operation in
parasite power mode."

D.h. ich müsste statt 5V an Vcc GND anlegen?

Im Quelltext von peter dannegger [Beitrag "DS1820, DS18B20 in C"] heißt 
es:
1
void start_meas( void )
2
{
3
  if( W1_IN & 1<< W1_PIN )
4
  {
5
    w1_command( CONVERT_T, NULL );
6
    W1_OUT |= 1<< W1_PIN;
7
    W1_DDR |= 1<< W1_PIN;      // parasite power on
8
  }
9
  else
10
  {
11
    //uputsnl( "Short Circuit !" );
12
  }
13
}

Allerdings wird in der Funktion w1_command() gleich zu Beginn w1_reset() 
ausgeführt:
1
bit w1_reset(void)
2
{
3
4
   bit err;
5
  
6
  W1_OUT &= ~(1<<W1_PIN);        // PD0 auf low
7
  W1_DDR |= 1<<W1_PIN;          // PD0 auf Ausgang
8
  
9
  DELAY( DELAY_US( 480 ));        // 480 µs warten
10
  cli();                // interrupts sperren
11
  W1_DDR &= ~(1<<W1_PIN);        // PD0 auf Eingang
12
  DELAY( DELAY_US( 66 ));        // 66 µs warten
13
  err = W1_IN & (1<<W1_PIN);      // no presence detect
14
  sei();                // interrupts freigeben
15
  DELAY( DELAY_US( 480 - 66 ));
16
  if( (W1_IN & (1<<W1_PIN)) == 0 )    // short circuit
17
    err = 1;
18
  return err;
19
}

Und in dieser Funktion wird ja sozusagen erkannt, dass kein Sensor, bzw 
ein defekter, angeschlossen ist.

von (prx) A. K. (prx)


Lesenswert?

qwertz schrieb:
> D.h. ich müsste statt 5V an Vcc GND anlegen?

Ja. Spart eine Leitung. Ausserdem darf man dann beim DS im TO-Gehäuse 
unten und oben verwechseln..

Und richtig: Beim Reset spielt das noch keine Rolle. Erst beim Start 
einer Messung.

von qwertz (Gast)


Lesenswert?

Möglicher Grund für den Defekt?
Hab nämlich an Vcc 5 V anliegen und wenn das Programm beim ersten mal 
bis "parasite power on" kam... ?!
Oder juckt das den IC nicht?

von (prx) A. K. (prx)


Lesenswert?

qwertz schrieb:
> Möglicher Grund für den Defekt?

Die Software frisst beide Anschlusstechniken, der Sensor ebenso.

von qwertz (Gast)


Lesenswert?

Woran erkennt man, dass die Software beide Anschlusstechniken frisst?

von (prx) A. K. (prx)


Lesenswert?

qwertz schrieb:
> Woran erkennt man, dass die Software beide Anschlusstechniken frisst?

Durchlesen. Auf die von Peter Danegger trifft es zu.

Ausserdem wird dir eine für den parasitären Modus geschriebene und 
funktionierende Software deinen mit 5V Anschluss versehenen Sensor nicht 
abschiessen. Umgekehrt auch nicht, nur funktioniert es dann nicht.

von qwertz (Gast)


Lesenswert?

Okay - vielen Dank für alles!

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.