DS18S20, ich kapiere es einfach nicht

OP #3006619
Lesenswert?

also ich habe es nach monaten endlich geschafft den DS18S20 auszulesen. 
super. aber nun geht es weiter. da mir die ganzen libs viel zu 
kompliziert sind habe ich mir teilweise, eine für mich verständliche lib 
geschrieben. um diese aber auch voll "onewire" fähig zu machen wollte 
ich den rom code auslesen um dann auch direkt einen sensor ansprechen zu 
können.

wenn ich nun den rom code auslese dann erhalte ich 9 bits. erstmal 
kapiere ich nicht so ganz was es damit auf sich hat aber weiter gehts. 
in dem rom array habe ich dann 9 elemente. ich finde nichts wo steht 
welches element davon nun der rom code ist oder ob es alle elemente 
zusammen sind. dann muss ja irgendwo auch der familycode befindlich sein 
aber ich kapiere da mal rein nichts von.

romcode[0] ist 16
romcode[1] ist 157
romcode[2] ist 172
romcode[3] ist 77
romcode[4] ist 2
romcode[5] ist 8
romcode[6] ist 0
romcode[7] ist 86

ich hoffe mir kann da jemand ein wenig was zu erklären. jegliche nicht 
passende aussagen bitte ich zu unterlassen.

ich erhoffe mir viele sachgemäße mir behilfliche aussagen.
Gast #3006673
Lesenswert?

steht im datenblatt auf seite 6. das erste byte ist der family code 
(10hex für 18s20), die nächsten 6 byte sind die serial number, das 
letzte byte ist eine checksumme aus den vorangegangenen 7 byte.
Gast #3006711
Lesenswert?

@Tobias

Tobias N. schrieb:
> wenn ich nun den Rom-code auslese dann erhalte ich 9 bits. erstmal
> kapiere ich nicht so ganz was es damit auf sich hat aber weiter gehts.
> in dem rom array habe ich dann 9 elemente. ich finde nichts wo steht
> welches element davon nun der rom code ist oder ob es alle elemente
> zusammen sind. dann muss ja irgendwo auch der familycode befindlich sein
> aber ich kapiere da mal rein nichts von.

Tja! da haste wohl wirklich nix kapiert! hohohoh!

Also um dich Aufzuklären,LOL, den ROM-Code brauchste ja nur um einen 
bestimmten, eben den jenigen über dem ROM-Code anzusprechen aber sonst 
nicht.
Da Guckste waah!
Du kannst, so Fern du einen einzelnen ansprichst auf den ROM-Code 
Verzichten.

Mach on_wire_reset was auch immer  Skip ROM Comand danach Starte 
Temperatur
Conversion mit 0x44  das du selbstverständlich in einem Array sicherst.
Dansch kannst ganz gemühtlich das Scratchpad auslesen.
Falls dir Scratchpad ein Bömisches Dorf sein sollte lies das Datenblatt.

Falls du mehr scherze auf lager hast lass es mich Wissen.
Gast #3006723
Lesenswert?

@Tobias
Ich habe beschlossen den Knüppel aus dem Sack zu holen und dir ein paar 
Dellen über dein kahle Glatze zu Bügeln.

Den ROM-Code brauuuchste nur wenn Du eiiinen bestiimmten Sensor 
ansprechen möchtest.

Solltest nur einen angeschlossen haben ist der ROM-Code völlig Wurscht!
OP #3006731
Lesenswert?

Der nix weiß schrieb:
> @Tobias
>
> Tobias N. schrieb:
>> wenn ich nun den Rom-code auslese dann erhalte ich 9 bits. erstmal
>> kapiere ich nicht so ganz was es damit auf sich hat aber weiter gehts.
>> in dem rom array habe ich dann 9 elemente. ich finde nichts wo steht
>> welches element davon nun der rom code ist oder ob es alle elemente
>> zusammen sind. dann muss ja irgendwo auch der familycode befindlich sein
>> aber ich kapiere da mal rein nichts von.
>
> Tja! da haste wohl wirklich nix kapiert! hohohoh!
>
> Also um dich Aufzuklären,LOL, den ROM-Code brauchste ja nur um einen
> bestimmten, eben den jenigen über dem ROM-Code anzusprechen aber sonst
> nicht.
> Da Guckste waah!
> Du kannst, so Fern du einen einzelnen ansprichst auf den ROM-Code
> Verzichten.
>
> Mach on_wire_reset was auch immer  Skip ROM Comand danach Starte
> Temperatur
> Conversion mit 0x44  das du selbstverständlich in einem Array sicherst.
> Dansch kannst ganz gemühtlich das Scratchpad auslesen.
> Falls dir Scratchpad ein Bömisches Dorf sein sollte lies das Datenblatt.
>
> Falls du mehr scherze auf lager hast lass es mich Wissen.

Das wusste ich ja schon. Ich habe auch schon erfolgreich einen einzelnen 
Temperatursensor ausgelesen.

Ich will ja den Rom-Code haben, nur ging es mir darum ob ich alles von 
den array-Elementen brauche oder nur bestimmte. Komisch kam es mir auch 
vor das ich als ersten Element in dem array eine 16 habe, anstatt, eine 
10 für den DS18S20. Aber wenn ich die 16 als Dezimalzahl betrachte und 
das in Hexadezimal umwandle komme ich auf die 10, also den Family Code 
des DS18S20.

Muss ich aber jetzt alle Elemente des arrays an den DS18S20 senden um 
nur ihn anzusprechen oder oder die Elemente 1 - 6, da ja Element 0 der 
Family Code und Element 7 der CRC Check ist, und Element 1 - 6 die 
Serial.

Muss ich ihm das im Hexadezimal oder Dezimal format senden?

Latinum schrieb im Beitrag #3006707:
> Tobias N. schrieb:
>> Ich behersche die Sprachen Deutsch, Polnisch und Latein. Alle drei sogar
>> Wort und Schriftkorrekt
>
> Mit wem sprichst Du lateinisch?

Ich bin examinierter Gesundheits- & Krankenpfleger, da reden man nunmal 
viel Latein.

juckt nicht schrieb im Beitrag #3006702:
> Tobias N. schrieb:
>> Was das Programmieren / Scripten angeht behersche ich:
>>
>> Perl, Python, Bash, VB, MySql, SQL, PHP, CSS, HTML, TCL und Ruby
>
> und auf welchem Controller wendest du diese an?

Mit keinem, bisher habe ich nie einen µC gebraucht. C ist also 
komplettes Neuland für mich, die anderen Sprachen waren viel in Deutsch 
dokumentiert.

Der nix weiß schrieb:
> @Tobias
> Ich habe beschlossen den Knüppel aus dem Sack zu holen und dir ein paar
> Dellen über dein kahle Glatze zu Bügeln.
>
> Den ROM-Code brauuuchste nur wenn Du eiiinen bestiimmten Sensor
> ansprechen möchtest.
>
> Solltest nur einen angeschlossen haben ist der ROM-Code völlig Wurscht!

Na darum gehts ja, ich will ja mehrere anschliessen und auslesen.
#3006805
Lesenswert?

Google kann dir ganze PDFs übersetzen. Habs grad mal ausprobiert.
Mach das mal beim DS180B20 Datenblatt. Das Ergebnis finde ich gut 
verständlich.

http://translate.google.de/#en/de/

Wobei man eigentlich gerade für die ROM Problematik keine 
Sprachschwierigkeiten vorschieben kann. Denn da ist eine Abbildung mit 
den 64 Bit ROM Code und darüber stehen genau die Bedeutungen der 
einzelnen Bitgruppen. Also das halte ich an dieser Stelle leider für 
eine Ausrede.

Wie bei den anderen "Projekten" auch fehlt es hier schlicht und einfach 
am nötigen Grundwissen um mit dem Datenblatt sinvoll zu arbeiten.


gruß cyblord
Gast #3006851
Lesenswert?

Tobias N. schrieb:
> Muss ich aber jetzt alle Elemente des arrays an den DS18S20 senden um
> nur ihn anzusprechen oder oder die Elemente 1 - 6, da ja Element 0 der
> Family Code und Element 7 der CRC Check ist, und Element 1 - 6 die
> Serial.

JA! die ganzen 64 Bytes!  Wie schon erwähnt wenn mehr als einen auslesen 
willst über MATCH-ROM.

Tobias N. schrieb:
> Muss ich ihm das im Hexadezimal oder Dezimal format senden?

Das ist ist ja mal wurscht wie du es sendest!
Das Byte Dezimal oder Hex wird eh Bitweise übertragen und µc sieht es 
sowiso in HEX.
Zu dem liest sich der ROM-Code in Hexadezimal besser auf dem Display als 
Dezimal.
Gast #3006884
Lesenswert?

Tobias N. schrieb:
> Muss ich aber jetzt alle Elemente des arrays an den DS18S20 senden um
> nur ihn anzusprechen oder oder die Elemente 1 - 6, da ja Element 0 der
> Family Code und Element 7 der CRC Check ist, und Element 1 - 6 die
> Serial.
>
> Muss ich ihm das im Hexadezimal oder Dezimal format senden?

du musst dem sensor garnichts senden. du hast jetzt die serial (byte 
1-6). die speicherst du im rom des mc oder direkt im programm. vor der 
messung fragst du den sensor nach der nummer und vergleichst diese. ist 
die nummer gleich wird gemessen oder sonst irgendwas gemacht. 
normalerweise wird eine routine eingebaut um die nummer zu lesen und 
abzuspeichern. bei einem neuen sensor musst du sonst jedesmal das 
programm ändern.

es schwirren in diesem forum gefühlte 1000 programmbeispiele zu diesem 
sensor rum, die z.t. auch sehr gut dokumentiert sind. schau dir einfach 
mal ein paar an.
Gast #3006997
Lesenswert?

kein_guter_nic_mehr_frei schrieb:
> du musst dem sensor garnichts senden. du hast jetzt die serial (byte
> 1-6). die speicherst du im rom des mc oder direkt im programm. vor der
> messung fragst du den sensor nach der nummer und vergleichst diese. ist
> die nummer gleich wird gemessen oder sonst irgendwas gemacht.
> normalerweise wird eine routine eingebaut um die nummer zu lesen und
> abzuspeichern. bei einem neuen sensor musst du sonst jedesmal das
> programm ändern.

Quatsch.

Du sendest zuerst "Match_Rom" und dann die ersten 8 Bytes des Sensors 
der ausgelesen werden soll.
Dann sendest du "Convert_T" und wartest eine knappe Sekunde.
Jetzt kannst du das Scratchpad auslesen. Die ersten beiden Bytes sind 
die Temperatur.
OP #3007384
Lesenswert?

Der weis auch nix schrieb:
> Du sendest zuerst "Match_Rom" und dann die ersten 8 Bytes des Sensors
> der ausgelesen werden soll.
> Dann sendest du "Convert_T" und wartest eine knappe Sekunde.

Ja, also das Temperatur auslesen mittels SkipRom klappt ja perfekt. Mir 
geht es halt genau daraum das ich den mittels seiner Adresse auslesen 
kann.

Also sende ich ihm den MatchRom und dann die Adresse, also FamilyCode 
Serial und CRC. Dann warte ich min. 750ms und lese dann die Temperatur 
wieder aus.

> Jetzt kannst du das Scratchpad auslesen. Die ersten beiden Bytes sind
> die Temperatur.

Wofür sind denn die anderen Bytes?

Danke und Gruß
Gast #3007418
Lesenswert?

Tobias N. schrieb:
> Wofür sind denn die anderen Bytes?

In die beiden User-Bytes kannst du z.B. deine eigene Nummer für den 
Sensor schreiben.
COUNT REMAIN und COUNT PER °C
Damit kannst du den 18s20 auf 12 Bit Aulösung erweitern.

Aber wie gesagt, steht das alles im Datenblatt.
#3007445
Lesenswert?

cyblord ---- schrieb:
> Google kann dir ganze PDFs übersetzen. Habs grad mal ausprobiert.
> Mach das mal beim DS180B20 Datenblatt. Das Ergebnis finde ich gut
> verständlich.
>
> http://translate.google.de/#en/de/
>
> Wobei man eigentlich gerade für die ROM Problematik keine
> Sprachschwierigkeiten vorschieben kann. Denn da ist eine Abbildung mit
> den 64 Bit ROM Code und darüber stehen genau die Bedeutungen der
> einzelnen Bitgruppen. Also das halte ich an dieser Stelle leider für
> eine Ausrede.
>
> Wie bei den anderen "Projekten" auch fehlt es hier schlicht und einfach
> am nötigen Grundwissen um mit dem Datenblatt sinvoll zu arbeiten.
>
>
> gruß cyblord

@cyblord
Der will uns doch nur verarschen. "Ich hab mir einen eigene Lib 
geschrieben!"
Wem will der noch was erzählen. Weiß nicht wo was und wie angesprochen 
wird, kennt offenbar nicht die Befehle (die paar!!!!) und hat sich eine 
"eigene Lib" geschrieben, "weil die anderen zu kompliziert" waren.
Ich hab mir die Lib nicht mal angesehen und der Sensor (genauer die 
Sensoren) liefen nach zwei Stunden.
Ich bin wirklich ein blutiger Anfänger und das Datenblatt ist so klar 
und eindeutig, da kann man nicht viel falsch machen.
Aber er, er schreibt seine eigenen Libs. Ja klaa!
Der verarscht hier alle im Quadrat.
#3007452
Lesenswert?

Tobias N. schrieb:
> Wofür sind denn die anderen Bytes?

Ach Tobias, die sind da nur so. Musst du nicht ernst nehmen und für 
deine eigene Lib brauchst du das nicht.

Lib von Tobias:

Hallo Sensor! Oder Hallo Sensoren! Seid ihr alle da? Schön!
Wie viel Grad ist es gerade? Halt, nicht alle auf einmal und jeder 
steigt bitteschön an seiner Haltestelle aus dem Bus aus.

Oh man, jetzt verstehe ich hier einige!
Hiermit ziehe ich mein Thread übers "Datenblatt" offiziell zurück.
#3007461
Lesenswert?

Tobias N. schrieb:

> Also sende ich ihm den MatchRom und dann die Adresse, also FamilyCode
> Serial und CRC.

Wem ihm?

Denk mal nach. Wie willst du IHM den was schicken, wenn da 25 Chips an 
den gleichen 2 Drähten hängen?

IHM ist genau das: Du rufst gewissermassen ins Blaue hinein unter Angabe 
der Adresse und der IC mit der richtigen Adresse fühlt sich angesprochen 
und antwortet. Alle anderen halten die Schnauze.


Und ja, der Family Code IST Teil der Adresse. Der Family Code ist 
einfach nur eine Vereinbarung, das das erste Byte der Adresse eine 
Aussage darüber erlaubt, welches IC da eigentlich am Bus hängt. Da 
können ja auch ganz andere Chips an den beiden Drähten hängen. Es 
spricht aber nichts dagegegen, dass der Beschleunigungssensor und der 
Temperatursensor in den letzten 5 Bytes sich nicht unterscheiden und nur 
der Family Code unterschiedlich ist. Eindeutig ist eindeutig. Und mehr 
muss eine Adresse nicht sein.
#3007476
Lesenswert?

Karl Heinz Buchegger schrieb:
> Tobias N. schrieb:
>
>> Also sende ich ihm den MatchRom und dann die Adresse, also FamilyCode
>> Serial und CRC.
>
> Wem ihm?
>
> Denk mal nach. Wie willst du IHM den was schicken, wenn da 25 Chips an
> den gleichen 2 Drähten hängen?
>
> IHM ist genau das: Du rufst gewissermassen ins Blaue hinein unter Angabe
> der Adresse und der IC mit der richtigen Adresse fühlt sich angesprochen
> und antwortet. Alle anderen halten die Schnauze.

@Karl Heinz:

Du bist mindestens einer der nettesten Kerle dieser Erde, wenn nicht der 
Netteste und meine Art zu reden, "Alle anderen halten die Schnauze!", 
kennst du wohl auch, aber dieser Typ ist doch so die Härte, da ist jedes 
Wort an ihm eine reine Verschwendung.
Gerade durch dich lerne ich immer wieder was auf so einfache Weise, aber 
Tobias N. könnte dir den ganzen Tag auf dem Schoß sitzen und er würde 
nichts kapieren. Der schreibt lieber Libs.
#3007486
Lesenswert?

Was mir auf den Zeiger geht, das ist diese "Ich studiere keine 
Datenblätter, weil ich kein Englisch kann" Attitüde. Damit macht man 
sich keine Freunde. Denn Datenblätter sind kein literarisches Englisch. 
Wenn Chinesen und Japaner mit dem Wörterbuch die verstehen, dann können 
Europäer das schon lange verstehen. Und dann gibts ja auch noch 
Diagramme und Bilder. Und man soll auch nicht unterschätzen, wieviel man 
sich aus dem Zusammenhang erschliessen kann, wenn man sich die Frage 
stellt: Wie würde es am meisten Sinn machen? Wie schaut die Verwendung 
aus, wie wird man das typisch verwenden, was also wird der dortige 
Entwickler machen um mir das zu ermöglichen was ich tun will.
Und wennn dann wirklich mal was unklar ist und sich partout nicht 
offenbart, dann kann man fragen.
#3007509
Lesenswert?

Am 13.01.2013 hat er dieses Thema begonnen und bis heute nicht das 
Datenblatt richtig (oder gar nicht) gelesen.
22 Seiten, nicht mehr. Selbst wenn man kein Englisch kann und rum 
probiert, sich Beispielcode anguckt und ausprobiert (!!!), dann kann man 
über das Rückwärtsverständnis die Sache kapieren.
Dieser Typ ist so borniert, da hilft nichts.
#3007525
Lesenswert?

Hier war doch auch wieder so ein Thread, der meinte seine Schaltung 
müsste unbedingt funktionieren, obwohl ihm hier die Fachleute auf eine 
tausendfach erprobte Schaltung bringen wollten. Er hatte es am Ende 
eingesehen (immerhin), aber mit dem Kopf durch die Wand wollen.

Wenn ich schreibe, ich hab da so ein Gerät im Kopf, man kann damit 
Brotscheiben von beiden Seiten rösten ...
Wenn ich dann die Antwort bekomme: Gibt es schon, nennt sich Toaster. 
Dann sage fein und frage, wo kann ich das kaufen?
So und nicht anders.
#3007543
Lesenswert?

Wenn ich dann diese gequirlte Kacke lese, "... mir waren die Libs zu 
kompliziert und ich habe mir (teilweise) eine eigene geschrieben". 
kopfschüttel
Vielleicht könnte ich das sogar schon,mir eine eigene Lib schreiben, 
weil das Datenblatt so gut ist. Doch wozu sollte ich, wenn das andere 
schon so hervorragend erledigt haben?!
Aber einer der "seit Monaten" mit dem Sensor dran ist, offensichtlich 
fix und fertige Beispiele nicht zum laufen kriegt und sich dann 
"teilweise" ...
was soll das überhaupt heißen, teilweise? Deswegen funktioniert das 
Auslesen auch nur "teilweise"? !!!
#3007562
Lesenswert?

Leistungs-Spochtler schrieb:
> Es muß aber auch mal wieder gut sein mit der Selbstbeweihräucherung....
>
> gez. Leistungs-Spochtler

Dann kannst du offensichtlich nicht lesen!

Ich bin ein noch ziemlich blutiger Anfänger und das schreibe ich hier 
immer wieder. Der Typ kommt hier, nun mit neuem Thread zur selben Sache, 
um die Ecke und schreibt ein Scheiß von, "ich hab mir die Lib 
geschrieben".

Aber ganz ehrlich, da fällt mir der Kit aus der Brille.

Kriegt den Sensor "seit Monaten" nicht ans laufen, wo es lauffähige 
Beispiele genug gibt?!

Nach einigen Wochen hatte ich den für ein Projekt probiert und es war 
kein Problem. Ich mache das jetzt seit fünf Monaten und fühle mich doof 
wie Brot, weil ich so wahnsinnig viel zu lernen habe, was die meisten 
hier alles können. Dann kommt so ein Typ um die Ecke, dem sie alles im 
letzten Thread tausend Mal vorgekaut haben, der bis heute nicht das 
Datenblatt richtig gelesen hat und sagt, "ich hab mir ne eigene Lib 
geschrieben".

Hallo! Da darf man sich schon mal aufregen (muss man nicht) und einen 
(oder auch mehrere Kommentare loslassen.
Gast #3008023
Lesenswert?

Und alle Krankenpflegr sprechen täglich Latein miteinander....

Der spinnt doch.

Und jetzt ist Feierabend, don't feed the troll....

HiHi, das kann er nicht verstehen weil er ja kein Englisch spricht;-)
Gast #3008111
Lesenswert?

Das war sein erster Beitrag (Datum: 11.04.2012 16:55), und das erste 
Wort "WIe" ist gleich vertippt.
Beitrag "WIe bestückung auf Platine?"

Seit Datum: 27.10.2012 09:34  liebäugelt er mit einem DS18S20:
Beitrag "Standheizung selbstbau, einige Fragen"

Jetzt gleich sein neues Selbstbauprojekt Datum: 27.10.2012 21:54:
Beitrag "Wie Display beschalten und Temperatur ausgeben?"
Es muss natürlich ein GLCD sein, ein normales ASCII wäre ja zu einfach.

Kaum zu glauben, er hat schon 284 Posts.

Tobias, ich bitte Dich eindringlich, Dein Auftreten hier im Forum 
deutlich zu verändern. Wir lassen uns nicht länger veräppeln.

@all: Bitte gebt nur noch Antworten auf qualifizierte und fundierte 
Fragen.
#3008208
Lesenswert?

Besserwisser schrieb:
> Das war sein erster Beitrag (Datum: 11.04.2012 16:55), und das erste
> Wort "WIe" ist gleich vertippt.
> Beitrag "WIe bestückung auf Platine?"
>
> Seit Datum: 27.10.2012 09:34  liebäugelt er mit einem DS18S20:
> Beitrag "Standheizung selbstbau, einige Fragen"
>
> Jetzt gleich sein neues Selbstbauprojekt Datum: 27.10.2012 21:54:
> Beitrag "Wie Display beschalten und Temperatur ausgeben?"
> Es muss natürlich ein GLCD sein, ein normales ASCII wäre ja zu einfach.
>
> Kaum zu glauben, er hat schon 284 Posts.
>
> Tobias, ich bitte Dich eindringlich, Dein Auftreten hier im Forum
> deutlich zu verändern. Wir lassen uns nicht länger veräppeln.
>
> @all: Bitte gebt nur noch Antworten auf qualifizierte und fundierte
> Fragen.

Aber dank deiner kompletten Auflistung wissen wir nun was er bauen will.
Hoffentlich lässt er kein Kind oder Tier im Auto und beherzigt das 
Standheizungsverbot in Parkhäusern.
Gast #3008281
Lesenswert?

Tobias N. schrieb:
>>> Ich behersche die Sprachen Deutsch, Polnisch und Latein. Alle drei sogar
>>> Wort und Schriftkorrekt

Deutsch schon mal nicht, kann man am ersten Post deutlich erkennen.

Karl Heinz Buchegger schrieb:
> Was mir auf den Zeiger geht, das ist diese "Ich studiere keine
> Datenblätter, weil ich kein Englisch kann" Attitüde. Damit macht man
> sich keine Freunde. Denn Datenblätter sind kein literarisches Englisch.

Das kann man so machen, aber dann sollte man sich ein anderes Hobby 
suchen. Die Botaniker z.B. verwenden meines Wissens Latein.

fonsana
Moderator (Firma: Titel) Persönliche Seite #3008340
Lesenswert?

fonsana schrieb:
> Die Botaniker z.B. verwenden meines Wissens Latein.
Ja, Mediziner seit geraumer Zeit nämlich nur noch englische Namen für 
neue Krankheiten...
Hinter "AIDS" steckt z.B. kein lateinischer Begriff.

Weil der ganze Thread bestenfalls in homöopathischen Spuren Elektronik 
enthält und eigentlich nur mit "Ich kann Latein aber kein Englisch und 
will es auch nicht lernen" zu tun hat, verschiebe ich den jetzt dahin wo 
er hingehört: nach Offtopic.

Zusammengefasst:
Wer Fallschirm springen will, muss ins Flugzeug steigen.
Wer Autofahren will, muss den Führerschein machen.
Wer Elektronik machen will, muss Datenblätter lesen können.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren