Forum: Mikrocontroller und Digitale Elektronik DS18S20 Problem Neue Version M.Thomas?


von Sucher (Gast)


Lesenswert?

Hallo DS18S20 Experten,

Ich habe bisher auf der Basis von Martin Thomas DS18S20 Software auf der 
Version V 0.6.4, 11/2004  im Einsatz, die auch problemlos funktioniert.
==> http://gandalf.arubi.uni-kl.de/avr_projects/tempsensor/index.html

Ich habe nun gesehen, dass es viele neue Versionen gibt und wollte auf 
diese updaten. Ich habe da die Version V 0.9.2, 2/2011 runtergeladen und 
bringe diese nicht zum Laufen. Es werden beim SCAN keine Sensoren 
gefunden. Die Hardwareist die gleiche wie bei der alten Version. Wenn 
ich die alte Version lade geht das wiederum Problemlos.

Ich habe in der Konfiguration folgendes geändert:

F_CPU 16000000
Device atmega32

#define BAUD 9600    ...falls ich die Baudrate ändere geht die ser 
Schnittstelle d.h. die Umstellung wird erkannt

...
#define OW_ONE_BUS
#define OW_RECOVERY_TIME      300 /* usec */
#define OW_USE_INTERNAL_PULLUP     0

Falls ich den Datenpin des DQ auf GRND lege wird ein Kurzschluß erkannt, 
also muß der Datenpin richtig konfiguriert sein.

Was mir aufgefallen ist, dass die "eigenen Delay" Routinen jetzt 
weggefallen sind und von der Lib genomen werden. Ich habe WinAVR 
20100110.

Jetzt die Frage: Hat jemand diese Version am laufen und kann mir Tipps 
geben?

Vielen Dank
Achim

von Torsten S. (tse)


Lesenswert?

In einer bestimmten avr-libc-Version gab es einen Bug in delay.h; evtl 
hast Du diese?

von Sucher (Gast)


Lesenswert?

Hallo

wie oben geschrieben habe WinAVR-20100110 und da müßte das die LIB 1.6.7 
sein.
Ist das die "Fehler Lib"?

Wobei bei Thomas steht "please update to avrlibc 1.6.6 or newer, not 
tested with older versions"

MfG
Achim

von Sucher (Gast)


Lesenswert?

Hallo

so wie ich gerade sehe gibts da keine neuere Version....

MfG
Achim

von Martin T. (mthomas) (Moderator) Benutzerseite


Lesenswert?

Sucher schrieb:
>...
> Wobei bei Thomas steht "please update to avrlibc 1.6.6 or newer, not
> tested with older versions"
>...

(Martin)

Das "or newer" ist etwas irreführend - sorry. Die Versionsangabe in der 
Warnung bedeutet eigentlich nur, dass ich bei meinen Tests die genannte 
Version der avr-libc genutzt habe.

Was genau die Ursache für die Probleme sind, kann ich ad-hoc nicht 
sagen, es hat sich im Code einiges geändert, vor allem auf Grund von 
Vorschlägen/Patches anderer. Wie sieht der Aufbau aus (welche/wie viele 
Sensoren, Leitungslängen, Pull-Up)? Tests hier warnen seinerzeit 
erfolgreich (ein Bus, 3 Sensoren DS18B/S20, Buslänge ca. 1m, meist 
externer Pull-Up Widerstand). Die ganz neue Version 2/11 habe ich selbst 
noch nicht getestet, lediglich einen zugesandte Fehlerkorrektur 
eingebaut, sollte aber nichts mit dem eigentlichen OW-Transfer zu tun 
haben.

von Torsten S. (tse)


Lesenswert?

Achim

Ops, habe Deinen Post nicht sorgfältig gelesen.

Die Version 20100110 habe ich auch und verwende erfolgreich die DS18x 
mit Warteschleifen aus der libc.

Mit diesen Sensoren mache ich viel und wenn soetwas passiert wie Du 
geschildert hast kann eigentlich nur das timing nicht stimmen. Das war 
der Thread an den ich mich erinnere:

Beitrag "_delay_ms() läuft 4 Mal schneller als erwartet"

von Sucher (Gast)


Lesenswert?

Hallo

@Martin ich habe das mit Deiner Version auf einem Steckbrett (Sensoren) 
Anbindung 10cm externer Pullup. Ich kann da zum Testen1 bis n Sensoren 
draufstecken. Ich hab das immer verwendet um IDs auzulesen, bevor ich 
die in Schrumpfschlauch gepackt habe.
Hintergrund: Ich habe ein AVRNETIO mit 10 DS18S20 am laufen und wollte 
da die NEUE Martin Thomas Version integrieren.
Wie gesagt, wenn ich den Amega32 mit der Alten Version flash läuft das 
seit Jahren problemlos ---Vielen Dank für die Version ----
Ich schließe auch noch eine "falsche" Configuration noch nicht aus, 
obwohl ichs schon x-mal durchgeschaut habe.
Die F-CPU muß stimmen, sonst würde die serielle Schnittstelle ja nicht 
gehen. Ich habe 16 MHz

@Torsten hast du die oben angesprochene Version?

von Torsten S. (tse)


Lesenswert?

> @Torsten hast du die oben angesprochene Version?
avr-gcc: ja
Martins Code: nein

von Sucher (Gast)


Lesenswert?

OK

ne andere Version und auch die Version V 0.6.4, 11/2004 von Martin habe 
ich auch am Laufen...

Ich wollte halt mal die neue Version testen...

von Sucher (Gast)


Lesenswert?

Hallo

niemand der diese neue Version erfolgreich mit DS18S20 einsetzt? Werden 
die S-Typen überhaupt (noch) unterstützt. Im Code sind nur 
Wandlungszeiten für die B-Typen....

Muß eigentlich F_CPU im Code definiert werden, oder reicht das wenn man 
das in der Configuration vom AVR-Studio 4  macht?

Schade.. der neue Code sieht aufgeräumt aus geht aber bei mir leider 
(noch?) nicht.

MfG
Achim

von Sucher (Gast)


Lesenswert?

Hallo

zur Info, falls @Martin noch mitliest die letzeVersion, die bei mir 
problemlos läuft ist die Version "ds18x20_demo_20050310" danach ist doch 
das Projekt umgestellt auf AVR Studio Variante und auch die delay 
Routinen auf die Standardlibrary. Diese laufen bei mir mit den DS18S20 
mit  einem 16 MHZ  Atmega 32 nicht. Ich habe AVR-Studio 4.

Falls möglich, bitte ich um einen Tipp wo man da ansetzen soll, dass die 
neueste Routinen laufen. Die delays decken doch die Zeiten (Bereich?) 
nicht ab oder?

Bei der neuen Routinen wird auch F_CPU verwendet und nicht F_OSC. Die 
Einstellung müßte aber richtig sein, da der UART geht, nur werden keine 
Sensoren erkannt.

MfG
Achim

von Helfer (Gast)


Lesenswert?

>  Ich habe AVR-Studio 4.

Welche? Die ohne delay-Bug (WinAVR von Sourceforge), die mit delay-Bug 
(AVR Toolchain Installer) oder die mit Delay-Patcch (neue delay.h aus 
diesem Forum).

AVR-GCC-Tutorial im Abschnitt Warteschleifen die Anmerkung zu 
avr-libc 1.7.0 lesen.

von Sucher (Gast)


Lesenswert?

Hallo @Helfer,

vielen Dank für deine Antwort. Ich bin mir da nicht so sicher was er da 
nimmt (?). Nimmt AVR-Studio nicht den installierten Winavr bei mir 
WinAVR-20100110 und da ist laut LIB Manual 1.6.7 dabei
..oder bringt das AVR-Studio selbst ne LIB mit.

Kannst Du mir eventuell bitte helfen mein Versions-Chaos zu ordnen? Ich 
bin da nicht so fitt was die Versionen angeht.

Vielen Dank
Achim

Ps.: Wie sollte ich meine Versionen aktualisieren?

von Helfer (Gast)


Lesenswert?

Bei deiner Konfiguration (AVR Studio4 plus externes WinAVR) tritt das 
Problem nicht auf. Kannst alles so lassen wie es ist. Nicht auf AVR 
Studio4 plus AVR Toolchain Installer wechseln. Der Bug versteckt sich wo 
anders.

von Sucher (Gast)


Lesenswert?

Hallo

ich glaube ich habe da einiges falsch gemacht. Ich habe das in 
AVR-Studio gemacht und da nimmt er wohl den von AVR-Studio mit delay 
Fehler?

Wenn ich einen Makefile erstelle und dann  mit WinAVR übersetze kriege 
ich diesen Fehler (mehrfach)
...
/onewire.c:133: undefined reference to `_delay_us'
...

Ich weiß, ich nerve und habe ein Brett vorm Kopf! Deshalb nochmal die 
Bitte um Aufklärung....

Danke
Achim

von Sucher (Gast)


Lesenswert?

Hallo

ok. Jetzt funzt es vielen Dank für die Hilfe in meinem Versionschaos....

===> Ich habe das Patch delay.h im AVR-Studio reingemach und nu gehts.

Herzlichen Dank
Achim

von Sucher (Gast)


Lesenswert?

Hallo

abschließend noch vielen Dank an die Ersteller der DS18x20 Software. Die 
neue Version läuft bei mir jetzt perfekt mit 15 Sensoren. Es werden auch 
problematische (Test)Verkabelungsstrukturen erkannt, die mit der alten 
Version nicht gingen.

Vielen Dank
Achim

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
Noch kein Account? Hier anmelden.