mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Suche CodeVision-Programm für DS1820/DS18s20


Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

ich bekomms einfach nicht zum laufen. hab das programm aus der hilfe
versucht. geht nix.

ich würds gern mal mit anderen programmen vergleichen. also falls
jemand ein CodeVision-programm hat, mit dem man den DS1820 auslesen
kann, wäre ich ihm oder ihr wirklich sehr verbunden, wenn er oder sie
es mir mal zu verfügung stellen könnte.

danke

Autor: chris (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hoffe dir hilft das Programm!
Hab es selber erst heruntergeladen und noch nicht ausprobiert!

mfg Chris!!

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich würd gern ein hardwarefehler auschliesen.
also, ich hab die variante genommen, mit der extra versorgung des
DS1820.
an der datenleitung hängt der 4,7KOhm Pullupwiederstand.
versorgungspannung 5Volt
und masse.

wenn am ausgang des DS18S20 mit dem Multimeter gemesen konstant 3,3
Volt (hab die 5 Volt durch nen spannungsteiler auf 3,3 gebracht, da ich
ein ATmega103 verwende) anliegen, ist dann alles in ordnung?

und

bei meinem programm bekomm ich bis jetzt am ende -9999 als messwert.
hab ich hier im forum gelsen, dass das bedeutet, daß der DS1820 nicht
erkannt wird.
ist da ein softwarefehler auszuschliesen?

beim programm von chris, bleibt er stehen bei
0 DS1820Device detected.

-----------------------

und noch ne frage. ich hatte aus gewohnheit das portb beim erstenmal
ausversehn auf high und ausgang gesetzt. da wo die datenleitung des
DS1820 dranhing.
kann ich ihn durchgehauen haben?

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hab jetzt noch ein programm im forum hier gefunden, welches mir auch
-9999 zurückgibt. der poster (emil) meint, dass könne nur an der
hardware liegen.

also hab ich noch eine zusätzliche frage zu diesem programmabschnitt.

#asm
   .equ __w1_port=0x18
   .equ __w1_bit=2
#endasm

0x18 steht für PORTB -> richtiges PORT hab ich. in die mega103.h
nochmal geschaut -> stimmt.

die 2, steht fürs 2te PORTPIN.
das erste ist PIN.0
das zweite PIN.1 -> DS1820 rangehängt.

müsste doch stimmen, oder?

Autor: Dieter (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
so, hier hab ich noch mal ein bild mit meiner schaltung.

los jungs und mädels, hier muss es doch jemanden gebn, der shon mal ein
DS1820 benutzt hat.

zur zeit versuch ichs mit diesem simplen programm, was ich hier im
fproum gefunden habe, ich glaub von emil.

ich bekomm wie gesagt als wert -9999, also er erkennt keinen DS1820.
und wie auf dem bild zu sehn, hab ich ihn ans PORTPINB.0 gehangen.

------------

#include <mega103.h>

#asm
   .equ __w1_port=0x18
   .equ __w1_bit=1
#endasm

#include <stdio.h>
#include <ds1820.h>
#include <1wire.h>
#include <math.h>


char rom_codes[9];
//falls du mehrere sens. hast, wird es dann
//rom_codes[n,9], wo n deren anzahl ist;
void main(void)
{
UCR=0x08;
UBRR=0x19;

w1_init();
w1_search(0xf0,rom_codes);
while (1)
      {
      int temp;
      temp = ds1820_temperature_10(&rom_codes[0]);
      printf("%2i.%-u",temp/10,abs(temp%10));
      };
}

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
.equ __w1_bit=0 muss es natürlich sein

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn ihr keinen fehler entdeckt, könnt ihr auch schreiben ... sieht
alles richtig aus.

dann werd ich mir ein neuen sensor kaufen müssen.

wie gesagt, wenn ich mit dem multimeter messe liegt ne konstante
spannung am datenausgang an.

Autor: Weinga-Unity (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Dieter, dass kann ja nicht funktionieren. Schließ den DS18b20 auf
3,3V.

Grund:

Du hast da einen Spannungsteiler eingebaut, der vielleicht in die eine
Richtung gut funktioniert, in die andere Richtung aber nicht
nachvollziebar ist. Außerdem musst du für den Wandlungsvorgang DQ mit
einem Mosfet (intern im µP oder extern) gegen VCC schalten.

Kurz nochmal: wenn AVR auf 3,3V, dann DS18B20 auf auv 3,3V.   wen AVR
auf 5V, dann DS18B20 auf auf 5V.

Hab meinen mit einem MSP430 auf 3,3V laufen.

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also, ich soll dem DS18S20 einfach nur 3,3 Volt Versorgungspannung
geben.

OK, hab ich registriert.
da werd ich gleich mal den lötkolben anwerfen.

nur das mit dem mosfet hab ich nicht kapiert.
im datenblatt ist doch auch nur der pullupwiederstand in der
schaltung?
kanns sein, dass das intern vom AVR schon geregelt wird. ich mein der
code ist ja fast ausschliesslich durch den codewizard entstanden?

aber vielen dank erstmal, endlich eine antwort. :)

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, hab den spannungsteiler rausgenommen.

und irgendwie hab ich's geahnt, hier muss es ganz schön heiß sein, in
meim zimmer, ich schwitz schon ein bisschen.

und der DS18S20 bestätigt das mit 85 Grad ...

was kann nun noch flasch sein?

Autor: Weinga-Unity (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Dieter, du bist am richtigen Weg.

Gib jetzt, zwischen den Befehl 44H (Conversion Start) und dem nächsten
Reset, wo du dann das Scratchpad einließt eine Zeitschleife von ca
1-1.5 Sekunden (normal reichen 700ms aber sicher ist sicher). Während
dieser Zeit must du noch den PIN des AVRs, wo DQ anliegt als Ausgang
schalten und auf High stellen. Somit wird DQ als Stromversorgung für
den DS18B20 verwendet (der PullUP ist zu wenig und wird somit
überbrückt).

mfg Weichinger Klaus
http://www.Weinga-Unity.de.vu

Autor: Dieter (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
ich hab das problem entdeckt.
aber ich kanns nicht lösen.

um die 5V auf 3,3V zu bringen hab ich einen spannungsteiler.
also 5V rein -> Spannungsteiler -> 3,3 Volt, und dort die schaltung
dran, die im anhang ist.

das ganze funktioniert mit spannungsteiler nicht,
aber ohne (hab mal kurzzeitig 5Volt ins Port gejagt) da gings.
sobald ich am poti dreh, und ne geringere spannung einstellen möchte,
bricht diese zusammen.

was hab ich nun schon wieder falsch gemacht?

Autor: Dieter (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
habs nochmal gezeichnet, mit spannungsteiler.
also so siehts aus.

hab keine beschriftung dran, aber ich denk, die erschließt sich aus der
anderen schaltung.

Autor: Weinga-Unity (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man was machst du da?????
Nochmals: wenn der AVR auf 3,3V läuft, dann schließ den DS18B20 auch
auv 3,3V

Wenn du den AVR auf 5V laufen hast, dann schließ den BS18B20 auch auf
5V. Dann einfach die von DQ auf 5 bzw. 3.3V den 4k7 wiederstand.

Wenn du aber schon 85° ausgelesen hast, dann hats je eh schon gepasst
(siehe vorletzten Beitrag von mir).

mfg Weichinger Klaus

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nein nein, der AVR läuft auf 3,3Volt.
und der sensor muss auch mit 3,3V betrieben werden.
die 5Volt sind von der LCD-anzeige.

aus platzgründen wollt ich den sensor von dort aus versorgen.
hab aber jetzt den spannungsteiler rausgehaun, und 3,3V von nem extra
Pin genommen.
muss man halt manchmal kompromisse eingehn.

funktioniert nun alles einwandfrei.

danke klaus

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.