Geschätztes Forum, dieser passive 1wire Sniffer liest den 1wire Bus mit und zeigt u.a. die Temperaturen der Slaves an (z.B. DS18s22,DS1822,DS18B20). Die Hanhabung ist ganz einfach. Schaltung am OW BUS anschließen und warten, bis ein beliebiger Master die Temperaturen seiner Slaves abfragt. Automatisch werden die mitgelesenen ROM-IDs in einer Liste eingetragen. Nun kann man aus einer Liste (max 60 Slaves) seinen gewünschten Slave ausählen, im Hauptmenue wird dann die ROM-ID, das Scratchpad und die Temperatur angezeigt (s. Bild4). Prinzip: Nach einem Reset-Presence werden die einzelnen Datenbytes mitgeschrieben. ROM-SEARCH (0xF0) ignoriert das System. Wurden mindestens 19 Bytes empfangen: 1x ROM-Command 8x ROM-ID 1x Function-Command 9x Scratchpad dann erfolgt ein CRC-Check der ROM-ID und des Scratchpads. Die Temperaturen werde berechnet und angezeigt. Die Menueführung erfolgt über die 4 Tasten. Im Menue "Wartung" wird u.a. der Reset-Presence-Counter (ca. 400) angezeigt. Die Error-Meldungen können deaktiviert werden, es leuchtet dann nur die rote LED. Ein Quarz ist nicht zwingend erforderlich. Auch auf den Transistor kann verzichtet werden, er dient nur zum Hardware RESET des OLED-Displays. Die Anzeige "Historie ROM-Commands" könnte nützlich sein, so erkennt man, wie der Master mit den SLaves arbeitet. Bei Gelegenheit möchte ich noch andere Versionen vorstellen. Bernhard
Toll was du wieder für Einfälle hast ;-) Hoffentlich komme ich mal dazu es nachzubauen.
Danke :-) Eine "kleine" Version mit einem 2x16 Display ist auch schon in Arbeit...
Hast du dich schon mal an der "find alle" Routine versucht? Ich habe mir nicht die Zeit genommen, weil es mir nüscht genützt hätte zu wissen wer da alles am Bus hängt, ohne zu wissen WO er hängt. Hab die Dinger vorher alle einzein identifiziert und nummeriert, bevor ich sie verbaut hab.
Snipped, läuft auf einem ATtiny45 mit 1MHz Routinen werden per rcall aufgerufen, die ID ab 'Z' gespeichert Mehr oder minder aus den AppNotes abgeleitet
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
64 | |
65 | |
66 | |
67 | |
68 | |
69 | |
70 | |
71 | |
72 | |
73 | |
74 | |
75 | |
76 | |
77 | |
78 | |
79 | |
80 | |
81 | |
82 | |
83 | |
84 | |
85 | |
86 | |
87 | |
88 | |
89 | |
90 | |
91 | |
92 | |
93 | |
94 | |
95 | |
96 | |
97 | |
98 | |
99 | |
100 | |
101 | |
102 | |
103 | |
104 | |
>Hast du dich schon mal an der "find alle" Routine versucht? ROM-SEARCH (Rom Command=0xF0) ist eine typische Funktion eines Masters, dieser Slave greift nicht in den Datenbus ein, er ist passiv und "lauscht" nur. Beispiel eines Masers (Tester) Beitrag "1wire Slave Tester ATmega8 Assembler" @Patrick J. Danke für Dein Beispiel, werde es mal testen :-)
Bernhard S. schrieb: > Beitrag "1wire Slave Tester ATmega8 Assembler" Donnerlitchen, da ist mir was entgangen ;-)
...Update 03/2017 Das Menue "Historie ROM Function Command" könnte ev. interessant sein. Es wird immer ein Pärchen angezeigt, bestehend aus dem ROM-Command und dem Function-Command. Beispiel "CC44" ---> Skip ROM + CONVERT_T Es lässt sich sehr schön die Arbeitseise eines MASTERS abesen. Die "Minus-Taste" löscht den Historienspeicher. - SKIP ROM 0xCC - MATCH ROM 0x55 - SEARCH ROM 0xF0 - SEARCH ALARM 0xEC - Single ROM read 0x33 - Scratchpad read 0xBE - CONVERT_T 0x44 - RECALL EE 0xB8
... die LCD 2x16 4MHz Variante
Gast
#4941138
Fände es hilfreich, wenn wer auch selbst Master sein kann um einfach einen Bus selbst aktiv abzufragen. Würde ein toller 1Wire " Universaltester" werden. Ein nützliches Gerät zur Fehlersuche in größeren 1Wire Umgebungen, Hausautomatisierung etc... Was meinst Du? Danke
Hi Da muß aber zwingend darauf geachtet werden, daß der Sniffer und der eigentliche Master auf dem zu Testenden Bus sich nicht gegenseitig abschießen. MfG
Gast
#4944848
Hallo, ich habe leider nur einen kleinen arduino mit atmega328 und bootloader. Könntest Du netterweise einmal ein Hexfile für den 328 assemblieren? Vielen Dank im Voraus
Gast
#4944898
Ich meinte ein Hexfile für Deinen 1 Wire Tester: Beitrag "1wire Slave Tester ATmega8 Assembler" Es überfordert mich Deinen Source Code aus den ZIP Files zu assemblieren, wenngleich es mich interessieren würde. Das Sammelsurium an Dateien überblicke ich nicht. Danke nochmal
Hallo, Avrler schrieb: > Ich meinte ein Hexfile für Deinen 1 Wire Tester: > > Beitrag "1wire Slave Tester ATmega8 Assembler" > > Es überfordert mich Deinen Source Code aus den ZIP Files zu > assemblieren, wenngleich es mich interessieren würde. > > Das Sammelsurium an Dateien überblicke ich nicht. > > > Danke nochmal mit einem einfachen Übersetzen ist es leider nicht getan, die Sprungtabelle am Anfang des Programms und seine Größe unterscheidet sich u.a. Der Stack im SRAM liegt dann auch wo anders. Ein atmega8 ist kein atmega328p Siehe "AVR094: Replacing ATmega8 by ATmega88" http://www.atmel.com/images/doc2553.pdf
Gast
#4945105
Natürlich ist das Arbeit, automatisch wird sich das nicht selbst assemblieren. Darum habe ich Bernhard auch nur gefragt. Das scheint mir aber alles so gut strukturiert, das es wohl wenig Aufwand sein wird. Was meinst Du, Bernhard?
Beispiel eines Assembler ROM-Search-Algorithmus, inwiefern er sich von Patricks Version unterscheidet, kann ich nicht sagen. Vielleicht findet Ihr Unterschiede ? Beitrag "1wire Slave Tester ATmega8 Assembler"
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.











