Alternative zum DS2423 Counter

Begonnen von dougie, 09 Februar 2013, 16:30:08

Vorheriges Thema - Nächstes Thema

dougie

...nur zur Sicherheit: diese "Ersatzschaltung" kann NICHT parasitär betrieben werden, sondern braucht zwingend 5V Versorgungsspannung!


Zur Prüfung: der mit dem Punkt markierte Pin des Prozessors ist Pin 1, und dann wird gegen den Urzeigersinn gezählt.
Pin 4 ist Ground
Pin 8 ist Vcc (also +5V)
Pin 1 ist /Reset (sollte auch auf +5V liegen)

VG
Ralf

chrischan

Hallo Vorhand,
Ich will Dir nicht zu nah treten, aber die Lötstellen sehen alle nicht so toll aus. Einige könnten "kalt" sein, d.h. Dort ist kein richtiger Kontakt.
Normalerweise, bei richtigter Temperatur gelötet, bereitet das Flussmittel die Oberfläche an Bauteil und Lötauge vor, dann kann sich das Lötzinn mit Lötauge und mit Bauteildraht verbinden. Die Lötstellen sehen dann auch ehr konkav aus und nicht wie konvexe "tropfen" . Sorry, aber ich kann's nicht anders beschreiben.
An einigen Stellen sieht man auch kleine Tröpfchen Lot oder Fäden von den Lötstellen weggehen, wenn da auf der Leiterplatte mal der Lötstopplack weg ist, hat man schnell eine Verbindung, wo keine hingehört.
Ich würde an Deiner Stelle die Lötstellen nacharbeiten.

Nicht sauer sein, aber Du hast ja schon viel probiert und das sind die Sachen die mir auffallen.

Also, etwas Lötzinn entfernen ( Pumpe oder entlötlitze ) und dann, wahrscheinlich etwas wärmer, nachlöten.

Gruß Chrischan

gammaray

Danke r2d2 und dougie für die Tips, ich habe dementsprechend nochmal durchgepfiffen und die Spannungen am Prozessor-Sockel gemessen. Die Spannungen an den 8 Pins sind in nachfolgender Tabelle abgebildet, vielleicht ist irgendwas komisch oder kann dem User Vorhand auch zum Vergleich dienen:


(siehe Anhang / see attachement)


Ich jedenfalls erkenne da nichts Alarmierendes. Die Versorgungsspannung meines Labornetzteils (5V) kommt am Vcc des Tiny mit 4,76V an, weil an der Diode D1 eine entsprechende Spannung abfällt. Mein ankommender 1-wire-bus hat eine Spannung von 4,97V offen gemessen.

Zu dem Stichwort "parasitär": Die Versorgung der Platine erfolgt bei mir über ein Labornetzteil mit 5V zwischen GND und X4-2. Die zwei Drähte meines 1-wire-Busses habe ich an GND und an den Anschluß X1-3 ("1-Wire Data") angeschlossen. Betrieben wird der Bus über einen 1-Wire USB Adapter DS9490R der an einem Raspberry Pi mit owfs steckt. Ist das so nicht ok?

Gruß,
gammaray

r2d2

Hallo gammary,
sorry, aber laut Deiner Tabelle muß es funktionieren.
Ich kenne den 1Wire-Adapter DS9490R nicht genau. Ich betreibe meinen 1 Wire direkt am Raspberry, P1 (Pin 7 / GPIO 4). Allerdings funzt es bei mir nur, wenn ich den DS2423-Attiny mit 3,3 Volt betreibe. Da mein Geigerzähler aber mit 5 Volt arbeitet und eine kleine Lochrasterplatine mit dem DS2423-Attiny sich im gleichen Gehäuse befinden, habe ich eine einfache Pegelanpassung zwischen 3,3 und 5 Volt 1Wire vorgenommen (AN97055). Damit funktioniert es einwandfrei.
Ich gehe mal davon aus, dass beim DS9490R Adapter auf dem 1Wire Data ein Ruhepegel von ca.5Volt anliegen (also interner Pullup nach 5 Volt). Interessant finde ich aber, dass der Controller im fliegenden Aufbau auf einem Steckbord funktioniert.

Was passiert wenn statt dem Attiny ein ds1820 im Sockel steckt (die Beine natürlich passend verbiegen). Wenn der dann erkannt wird, dann würde es mich wundern.

Viel Erfolg bei der weiteren Fehlersuche.

Gruß
Klaus
FHEM auf Debian7 (virtueller Server), CUNO, 1 x Raspberry2B mit Zwave, 1 x Raspberry3 mit Jeelink

gammaray

Hey, es geht jetzt, der ATtiny-DS2423 erscheint nun am 1-wire-bus! Deine Erwähnung von anderen Betriebsspannungen und Kollege Zufall haben es gebracht! Danke! Ich habe die Versorgungsspannung der Platine auf gut Glück mal etwas abgesenkt und dann funktioniert's. Soweit ich es jetzt gerade noch eingrenzen konnte, muß ich die externe Spannung auf unter 4,7V absenken, damit der ATtiny anspringt. Bei beispielsweise 4,6V habe ich dann 4,3V an Vcc und Reset Pin 1.

Beide Zähler lassen sich nun auslesen und sind z.Zt. auf null:
   
owget /1D.A2D989000002/counters.A
0
owget /1D.A2D989000002/counters.B
0

Das ist jetzt schonmal die halbe Miete, yeah. Eine Erklärung dafür habe ich allerdings nicht, warum es bei mir mit exakt 5V nicht funktioniert. - Lustig übrigens, daß Du schon etwas mit einem Geigerzähler gemacht hast - genau das ist auch mein geplanter Anwendungsfall! :)

Gruß,
gammaray

r2d2

Glückwunsch - Endlich ein Erfolgserlebniss :-)
Ich gehe davon aus, dass der Low-Pegel bei 5Volt nicht stimmt und dann nicht erkannt wird. Schau Dir die Application Note AN97055 an, dort findet sich ein einfacher bidirektionaler Pegelwandler. Ich verwende einen BS170. Allerdings wird das den Bus nicht in Bezug auf die Buslänge verbessern. Da bei mir nur Leitungen kleiner 2 Meter zum Einsatz kommen, tritt kein Problem auf.

Gruß
Klaus
FHEM auf Debian7 (virtueller Server), CUNO, 1 x Raspberry2B mit Zwave, 1 x Raspberry3 mit Jeelink

gammaray

Zitat von: r2d2 schrieb am Mi, 07 August 2013 22:26Glückwunsch - Endlich ein Erfolgserlebniss :-)

Jau, danke, und vielleicht ist User Vorhand so ja auch zu helfen, sein Problem schien ja nahezu identisch.

ZitatIch gehe davon aus, dass der Low-Pegel bei 5Volt nicht stimmt und dann nicht erkannt wird. Schau Dir die Application Note AN97055 an, dort findet sich ein einfacher bidirektionaler Pegelwandler. Ich verwende einen BS170. Allerdings wird das den Bus nicht in Bezug auf die Buslänge verbessern. Da bei mir nur Leitungen kleiner 2 Meter zum Einsatz kommen, tritt kein Problem auf.

Guter Hinweis, wenn es nötig werden wird, schaue ich mir genau das näher an. Zunächst hoffe ich eigentlich, daß die Impulse vom Geigerzähler direkt auf einen der beiden Eingänge gegeben werden können, da es meines Wissens 5V TTL-Impulse sind.

P.S. Mein Work-around ist aktuell übrigens, daß ich eine weitere Diode BAT43 zwischen 5V-Versorgung und Platine (X4-2) geklemmt habe. Damit sinkt die Spannung an Vcc auf 4,35V und damit läuft der ATtiny25 bei mir verläßlich.

Vorhand

Hallo chrischan,

danke für deine Hinweise. Hab gesaugt, nachgelötet und "gelupt" - leider kein Erfolg.
Inzwischen ist die Platine unterwegs zu einer anderen Umgebung, in der auch evt. defekte Prozessoren gecheckt werden können.

Was mir gut gefallen hat, ist der Hinweis auf eine niedrigere Versorgungsspannung. Auf diese Idee wäre ich nicht gekommen, da 5V obligatorisch bei 1wire ist.
Muss jetzt warten bis die Platine zurück kommt.

Grüße
Viele Grüße
Raspi,Homatic,ESP,Fronius,KIA-PHEV,DHW300,Mi,Shelly

gammaray

Hallo Vorhand,

ZitatWas mir gut gefallen hat, ist der Hinweis auf eine niedrigere Versorgungsspannung. Auf diese Idee wäre ich nicht gekommen, da 5V obligatorisch bei 1wire ist.

wundert mich auch, allerdings kenne ich mich auch mit den Eigenheiten von Microcontrollern überhaupt nicht aus. Zumindest habe ich es jetzt nochmal etwas näher untersucht, es scheint ein Hysterese-Verhalten beim schrittweisen Verändern der Versorgungsspannung zu geben. Wenn ich von 5V in 0,1V-Schritten die Spannung an X4-2 herunterfahre, wird die ID des ATtiny irgendwann am 1-wire-Bus sichtbar (im Tabellenbild grün markiert). Bei noch weiterem Absenken meldet er sich irgendwann wieder am Bus ab (hier 4,1V). Klar.

Beim Hochfahren der Spannung liegen die Schwellwerte dann anders. Beginne ich bei willkürlichen 3,5V wird der ATtiny erst bei 4,7V wieder sichtbar, um dann beim weiteren Anstieg bei 5V wieder zu verschwinden:


(siehe Anhang / see attachement)


Viel wichtiger, als diese Schwellwerte bei der Spannungsänderung, ist aber, bei welcher Spannung die Schaltung "bootfest" ist. So, wie es aussieht, arbeitet der ATtiny bei mir nur in einem sehr schmalen Bereich irgendwo zwischen 4,7 - 4,9V externer Spannung nach dem Einschalten. Im Prinzip würde ich möglichst genau 4,8V empfehlen.

Da ich noch einen zweiten vorgeflashten ATtiny habe, habe ich es mit dem auch nochmal ausprobiert - er verhält sich in meiner Schaltung aber genauso, wie der andere.

Sehr unglücklich läuft die Sache bei mir gerade, wenn ich die Versorgungsspannung vom Geigerzähler abzwacke (wie geplant) und nicht, wie bisher, vom Labornetzteil. Die Spannung ist hier offenbar gerade so geringfügig anders, daß auch mein Trick mit der zweiten vorgeschalteten Schottky-Diode nicht hinhaut. Über die knapp 5V vom Geigerzähler kann ich meinen ATtiny leider noch nicht speisen. Ich bräuchte wohl eine Vorschalt-Diode, die eine Durchlaßspannung von genau 0,2V liefern müsste (also weniger als die knapp 0,3V einer BAT43). Momentan habe ich noch keine andere Idee, wie ich die Spannung am besten von 5V auf 4,8 herunter bekomme.

Ein Erfolgserlebnis aber doch noch zum Schluß. Die TTL-Impulse meines Geigerzählers lassen sich mit der ATtiny-Ersatzschaltung hervorragend zählen und am 1-wire auslesen, wenn ich die Versorgungspannung geeignet vom Labornetzteil nehme (4,8V, wie gesagt).

Gruß,
gammaray

dougie



...das wird hier jetzt etwas unübersichtlich.

Fakt: der Tiny läuft mit einer Spannung von nominal 5V.
0,2V rauf oder runter sollten ihn nicht interessieren.

Allerdings habe ich die Fuses so gesetzt, das er ab 4,3V einen Reset auslöst.
Grund ist, das ein sauberer Reset auch bei langsam ansteigender Versorgungsspannung ausgeführt werden soll.

Wenn es Probleme gibt, würde ich die bei der Spannungsversorgung suchen!

Je nachdem wie lang die Leitung ist und wie schwachbrüstig das Netzteil, kann es da leicht zu komischen Effekten kommen.

1-Wire ist leider nicht ganz Plug-N-Play, da muss man ggf. etwas tüfteln, bis es stabil läuft.

VG
Ralf

gammaray

Zitat von: dougie schrieb:Allerdings habe ich die Fuses so gesetzt, das er ab 4,3V einen Reset auslöst.
Grund ist, das ein sauberer Reset auch bei langsam ansteigender Versorgungsspannung ausgeführt werden soll.

Ja, sorry für die Ausbreitung, aber ich würde das Ding eben gerne mit einer 5V-Quelle ans Rennen kriegen. Deine Info zu einer "Fuse" und einem "Reset ab 4,3V" finde ich interessant und läßt mich natürlich aufhorchen. Mag nur Zufall oder Zahlenmystik sein, aber 4,3V passt irgendwie verdächtig gut zu den beobachteten Schwellwerten von 4,7V bei der externen Spannungsversorgung (Tabelle im letzten Beitrag); abzüglich der 0,3V Diodenspannung ist man am Vcc (Pin8) des Tiny dann nämlich sehr nah an dieser Reset-Spannung.

Leider verstehe ich nicht so recht "sauberer Reset auch bei langsam ansteigender Versorgungsspannung". Ich habe mir daher den Einschaltvorgang mal angesehen. Bereits *ohne* angeschlossene 5V habe ich an Vcc 2,5V, die irgendwie über den 1-Wire dorthin gelangen (denn wenn ich den 1W abklemme, ist dort 0V). Schalte ich mein Labornetzgerät ein (leistungsfähiges Peaktech 6080) steigt Vcc schnell auf 4,7V an (wg. 5V-0,3V).

Löst also dieser Anstieg von 2,5V auf 4,7V Vcc bei 4,3V einen "Reset" aus, wie du ihn erwähnt hast? Sorry, daß ich frage, aber mit dem Begriff "Fuse" kenne ich mich in diesem Bereich eben noch nicht aus.

Gruß,
gammaray

Chris65

Hallo Ralf,

Deine Aussage zu den Fuse-Bits ist wirklich interessant. Hattest Du einen speziellen Grund die Brown-Out-Detection so zu setzten? Standardmäßig ist diese soweit ich weis ausgeschaltet.

Ich Frage deshalb, da ich ab und zu Resets beobachte die dazu führen, dass der Zählerstand nicht korrekt gesichert wird.

Gruß

Christoph

dougie



Der Grund ist, das ich hier in einigen anderen Projekten das Problem (mit anderen Tinys) habe, das diese nicht starten, wenn z.B. die Betriebsspannung zu langsam steigt.
Normalerweise wird eine externe Reset-Schaltung verwendet, die den Reset Pin so lange auf low hält, bis alle Spannungen da sind.
Dieser Aufwand wäre im vorhandenen Fall unverhältnismässig. Daher lasse ich den Prozessor selber so lange einen Reset durchführen, bis die 5V da sind.
Mit der verwendeten Shottky-Diode fehlen auch nur 0,3V, so dass der µP mit 4,7V läuft.

Das war meine Überlegung.

VG
Ralf

gammaray

Auch auf die Gefahr hin, daß ich jetzt schon weiße Mäuse sehe - aber ist das richtig so, daß die stromlose Schaltung meinen 1-wire-bus auf 3,68V herunterzieht?? Wie schonmal an anderer Stelle erwähnt, messe ich zwischen den losen Enden meines ankommenden 1W-Busses 4,98V, aber wenn jene mit 1-Wire GND und 1Wire Data der Schaltung verbunden sind und diese stromlos ist, bricht mein 1W-Bus auf 3,68V ein.

Ich kann zwar auch in diesem Zustand noch weiterhin meinen dauerhaft betriebenen Temperatursensor DS18B20 ganz am Ende des Busses auslesen, aber sollte der Normalpegel nicht immer ca. 5V bleiben?

Gruß,
gammaray

P.S. Danke bisher schon für die Erläuterungen, dougie, auch wenn ich als µP-Einsteiger nicht alles nachvollziehen kann.

dougie

Zitat von: gammaray schrieb am So, 11 August 2013 11:49aber ist das richtig so, daß die stromlose Schaltung meinen 1-wire-bus auf 3,68V herunterzieht??

Die Frage ist schon etwas merkwürdig, das muss ich zugeben.

Die Schaltung ist nicht äquivalent zu einem 1-Wire Device und der parasitäre Mode gehört nicht zu den zugesicherten Eigenschaften!

Der µP emuliert ein 1W Device, aber dafür muss er laufen - sprich mit 5V versorgt werden. Erst dann verhält er sich den Vorstellungen entsprechend.


VG
Ralf