AVR Attiny44A als 1Wire Slave konfiguierbar DS2423/DS18BS20/DS2408/DS2413/DS2450

Begonnen von ritchie, 11 April 2014, 17:34:27

Vorheriges Thema - Nächstes Thema

co010

Hallo,
Ich betreibe die SMD-Counter Platine von @locutus mit der alternativen Firmware von tm3.de ,da A und B als Counter mit sim.DS2423 und DS2413 zum Reseten der
Counter Kanäle über FHEM mit großem Erfolg auf den ATtiny84a.
Es werden in FHEM 2 Device am 1-wire Bus erkannt und angelegt.


Grüße

habeIchVergessen

ich habe den DS2423_DS2423-Sourcecode (tm3d.de; FHEM_PLATINE gesetzt ) unter linux kompiliert und auf 3 Devices am gleichen Bus laufen.

-- 2x große Platine mit je 4 Countern + 1x Temp
device: 1d.a20000000001.af -> DS2423
device: 1d.a20000000002.4d -> DS2423
device: 1d.a20000000011.32 -> DS2423
device: 1d.a20000000012.d0 -> DS2423
device: 28.ee4c6c251601.d7 -> DS18B20
uptime: 00:12.47

-- 1x mini Platine v1 neu angeschlossen
bus #1: scanning 28.ee4c6c251601.d7 -1d.a20000000002.4d -1d.a20000000022.6e +1d.a20000000012.d0 -1d.a20000000001.af -1d.a20000000021.8c +1d.a20000000011.32 -
device: 1d.a20000000001.af -> DS2423
device: 1d.a20000000002.4d -> DS2423
device: 1d.a20000000011.32 -> DS2423
device: 1d.a20000000012.d0 -> DS2423
device: 1d.a20000000021.8c -> DS2423
device: 1d.a20000000022.6e -> DS2423
device: 28.ee4c6c251601.d7 -> DS18B20
uptime: 00:12.49

-- auslesen
OK VALUES Esp1wire 1d.a20000000001.af 31.1=191,31.2=177,30=DS2423,
OK VALUES Esp1wire 1d.a20000000002.4d 31.1=57,31.2=50,30=DS2423,
OK VALUES Esp1wire 1d.a20000000011.32 31.1=176,31.2=87,30=DS2423,
OK VALUES Esp1wire 1d.a20000000012.d0 31.1=37,31.2=7,30=DS2423,
OK VALUES Esp1wire 1d.a20000000021.8c 31.1=4,31.2=98,30=DS2423,
OK VALUES Esp1wire 1d.a20000000022.6e 31.1=0,31.2=0,30=DS2423,

kompilieren unter Windows erzeugt ein nicht funktionierendes Binary (Compiler 4.9.2-atmel3.5.4-arduino2)!

wenn ich owslave.c aus diesem Thread kompiliere (beide Versionen Windows+Linux getestet), dann wird nicht einmal ein Device + 1x Temp. zuverlässig erkannt.


set MCU=attiny44a
set SRC=owslave_2_03.c

-- Variante 1 (Windows)
%avrgcc% -v -std=c99 -Wall -Os -mmcu=attiny44a -o owslave.elf owslave_2_03.c

-- Variante 2 (Linux+Windows)
%avrgcc% -v -funsigned-char -funsigned-bitfields -O1 -fpack-struct -fshort-enums -g2 -Wall -c -std=gnu99 -MD -MP -MF "owslave.d" -MT"owslave.d" -MT"owslave.o" -mmcu=%MCU% -o owslave.o %SRC%
%avrgcc% -v -o owslave.elf  owslave.o -Wl,-Map=owslave.map -Wl,--start-group -Wl,-lm  -Wl,--end-group -mmcu=%MCU% 

%objcopy% -O ihex -R .eeprom -R .fuse -R .lock -R .signature owslave.elf owslave.hex


ich wäre dankbar, wenn sich jemand finden würde, der eine hex-Datei für mich erstellt und diese hier postet. Eine Dokumentation des Ablaufes wär toll.

habeIchVergessen

#122
ich verwende den Sourcecode von tm3d.de für den DS2423_DS2423.
für die gr. Platinen mit 4 Eingängen (2 Counter) funktionieren die Counter, LEDs und der Taster. EEPROM schreiben nicht.
für die mini-Platine mit 2 Eingängen funktionieren die Counter und EEPROM schreiben. Den 2. DS2423 unterdrücke ich mit einer falsche Prüfsumme in owid2.
SMD werde ich testen, wenn die Teile da sind.
für die SMD-Platine funktionieren die Counter, LEDs, der Taster und EEPROM schreiben. 2. DS2423 wieder per Prüfsumme "deaktiviert".

Wie schon geschrieben funktionieren damit mehrere Devices am gleichen Bus (DS2482 Busmaster).

habeIchVergessen

habe mir ein USB-Stick mit DS2480B (1-Wire-USB-Adapter mit WLAN-Schnittstelle von locutus) zusammen gebaut und einen ähnlichen Aufbau wie weiter oben getestet.

Leider ändert sich am Ergebnis nicht viel:
- Software aus diesen Thread (v2.03) läuft bei mir nicht stabil mit anderen Devices (weitere DS2423-Emulation + 2x DS18B20)
- nach einem Reset vom USB-Controller werden die emulierten Geräte nicht zuverlässig erkannt
- nicht emulierte werden erst nach mehreren Versuchen erkannt

Jewe

Hallo,

ich versuche gerade den OW-Counter von Loctus wieder in Betrieb zu nehmen. Mit Hilfe der Anleitung auf tm3d.de .
Mit einem Arduino Nano habe ich die ISP-Schnittstelle verbunden.

Arduino Nano PIN - OW-Counter ISP-PIN
5V    - 2
GND   - 6
10    - 5
11    - 4
12    - 1
13    - 3

Zwischen 5V und DI10 hab ich einen 10Kohm Widerstand


Dann starte ich owTools -a ARDUINO5 und bekomme folgendes :


Open /dev/ttyS5
0 Devices found


Das ganze hatte schon einmal funktioniert, das musste ich nur magels Zeit wieder abbrechen. Ich möcht die ID der Counter ändern.
Damals hatte ich das als Ausgabe bekommen:

owTools -a ARDUINO7
Open /dev/ttyS7
_______________________________________________________________________
BD05000084DA401D Configcode from www.tm3d.de - ( DS2423  4k ram with counter )
DS2423   DS2423   DS2423   DS2423
Counter  Counter  Counter  Counter

3.000    1.000    0.000    0.000
_______________________________________________________________________
8A05000084DA411D Configcode from www.tm3d.de - ( DS2423  4k ram with counter )
DS2423        DS2423   DS2423   DS2423
Counter       Counter  Counter  Counter

16776963.000  0.000    0.000    0.000


Kann mir jemand bitte auf die Sprünge helfen?

Danke

Jewe

Oder kann ich die ID mit OWTools direkt über den 1-Wire-Master verändern ?

Sorry aber ich stehe wiklich auf dem Schlauch. Ich sollte meine Projekte nicht so lange liegen lassen.

Jens

habeIchVergessen

kannst ja die owid in der Firmware anpassen und gleich die gewünschte flashen.

R1F800

Hallo,

ich habe mir einen DSZ mit dem DS2423 (2Kanal) gekauft.
Ich lese immer, dass dieser via USB an dem PI angeschlossen wird.

Gibt es auch Alternativen ? Kann ich den 1W Ausgang (was ja nach DALLAS Standard kein wirklicher 1W ist) auch auf einen GPIO packen ? ggf. direkt an den RX Pin 15 ?


Was sagt dann das Modul OWCOUNT ? dieses benötigt den OWServer o.ä.