DS2482-100 1-Wire unter Assember ansteuern.

Gast #3347263
Lesenswert?

Hallo,


ich hoffe Ihr könnt mir ein wenig unter die Arme greifen.

Ich habe ein kleines Projekt und möchte mit einem Single-Channel 1-Wire 
Master DS2482 mehrere Temperatursensoren auslesen.

Als Programmiersprache möchte ich Assembler verwenden.

Das Datenblatt studiere ich jetzt schon länger und auch im Forum
habe ich viel gefunden, nur hat es mir nicht soviel geholfen.

Deshalb folgende Frage:

Hat wer schon ein 1-Wire Projekt mit dem DS2482-100 und Assembler 
realisiert?
Was muss ich wann Senden/ Initialisieren und was wann Empfangen?

Das Datenblatt von Maxim ist mir nicht so ganz klar verständlich...



Vielen lieben Dank im voraus.

Karsten
Gast #3347722
Lesenswert?

Wenn ich C könnte, würde ich es ja machen und das Datenblatt verstehe
ich leider nicht.

Deshalb frage ich ja hier. Vielleicht hat ja wer so etwas mal in 
Assembler
programmiert...

Würde mir wirklich helfen.

Grüße

Karsten
Gast #3347728
Lesenswert?

Ein Muss ist es nicht, würde mich aber gerne in die Materie tiefer 
einarbeiten, mir fehlt aber leider ein Startpunkt, an dem ich ansetzen
kann.

Das Datenblatt will einfach nicht in meinen Schädel rein... Leider.

Grüße

Karsten
Gast #3347875
Lesenswert?

Karsten schrieb:
> Das Datenblatt will einfach nicht in meinen Schädel rein... Leider.

Nun Hast du 2 Datenblätter zu lesen, deinen Temperatur Sensor und deine 
Bridge. Die Bridge nimmt dir ja nur das Timig ab, die Register der 
Temperatur und dessen Umrechnung musst du weiterhin aus dem Datenblatt 
des Sensors entnehmen. Gerade in ASM, dürfte aber das Timing das 
geringste Problem sein.

Was genau Verstehst du schon am 1-Wire Bus und was nicht?

Grüsse
Gast #3348003
Lesenswert?

Ich versteh dein Problem. Du mußt das Ding ganz langsam und schrittweise 
vereinnahmen.

Haste n Oszi? Das ist bei solchen von-Null-auf-hundert-Versuchen 
obligat. Am besten wärn Speicherozi, dann kannn man besser sehen was 
schief läuft.
Mit nem Analogoszi gehts aber auch, den Vorgang halt immer wieder 
wiederholen und ein Portbit des uC zum externen triggern benutzen. Hab 
ich früher immer so gemacht.

Schau dir mal zB das Datenblatt des DS18B20 genau an (bis zum lesen 
der Seriennummer sind zB fast alle 1-Wire Ics gleich).

Los geht's!
1. Schick mal nen entsprechenden Reset-Impuls, dann muß das Ding mit nem 
einzelnen zurückkommenden Impuls "Hallo" sagen. Wenn der nicht kommt 
wäre schon mal an der HW was faul.

2. Dann wieder auf Ausgabe umschalten, das Timing genau nach Kochrezept 
einhalten und 0x33 wegschicken.

3. Dann wieder umschalten und die 6 Bytes die im Gänsemarsch rauskommen, 
einsammeln.

Fertich ist die Seriennummer!


Genauso nach diesem Schema funktionieren auch alle anderen Funktionen 
des Thermometers. Mit 0x44 kannste die Temperatur rauskitzeln. Dazu 
braucht er aber ein paar ms weil er erst den Strom von der Datenleitung 
saugen muß um den internen Kondensator zu füllen.
Und erst wenn du so weit bist daß du reproduzierbar(!) ein paar Bits in 
den Händen hälst und absolut nicht mehr weiterweißt wie man sie 
zusammensetzen muß dann meldeste dich wieder. An die Arbeit!
Gast #3348680
Lesenswert?

Ein-Draht-Seiltänzer schrieb:
> Ich versteh dein Problem. Du mußt das Ding ganz langsam und
> schrittweise
> vereinnahmen.
>

> Und erst wenn du so weit bist daß du reproduzierbar(!) ein paar Bits in
> den Händen hälst und absolut nicht mehr weiterweißt wie man sie
> zusammensetzen muß dann meldeste dich wieder. An die Arbeit!


Vielen Dank für die ermunternden Worte! Ich werde mich mal ran wagen und
so vorgehen wie Du meintest. Ich habe nur den Busmaster betrachtet und 
mir
wenig gedanken über den Sensor gemacht. Der Busmaster nimmt ja nur das 
Timing ab.

Erst mal vielen Dank an alle!

Grüße

Karsten

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