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
Hat wirklich noch niemand einen Temperatursensor über den Busmaster DS2482-100 programmiert? Bin für jede Hilfe dankbar! Grüße Karsten
programmiere es doch einfach unter C, und dann schau dir das zugehörige Assembler-Listung (Compilat) an und überlege, was du dann noch verbessern könntest im reinen Assembler-Code
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
ich hab auch mal versucht, den DS2482-100 zum laufen zu bringen. Hat nur auch nicht geklappt...auf dem 1-Wire-Bus gabs keinen Mux. Bin dann direkt auf 1-Wire umgestiegen. Wäre es eine Möglichkeit, oder ist I2C ein Muss?
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
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
Karsten schrieb: > Wenn ich C könnte, würde ich es ja machen Komm, ein bichen C-Code compilieren kann doch nicht so schwer sein ... http://www.maximintegrated.com/app-notes/index.mvp/id/3684 Außerdem: In den Code samples und erläuternden Text ist alles beschrieben. Den Schritt in der Abstraktion solltest du doch wohl hin bekommen ...
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!
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.