PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MCP23017: Adresspins A0 A1 A2 per Dip Switch und Pulldowns: wieviel kOhm?



HaWe
09.08.2016, 08:49
hallo,
ich möchte die i2c-Adressen von verschiedenen MCP23017 per Adresspins A0 A1 A2 einstellbar machen, per Dip Switch und Pulldowns.
Ich hatte dazu vor, die Pins sowohl über je einen Pulldown dauerhaft mit GND als auch gleichzeitig per Dip Switch gegen +5V schaltbar zu machen.
Leider habe ich nirgends Angaben über die Größe der benötigten Pulldowns finden können.
10 kOhm?
4.7 kOhm?
1 kOhm?
Weiß jemand was genaues?

Feuerring
09.08.2016, 13:57
Hallo WaWe,

ich habe den MCP23017 bereits seit mehreren Jahren im Einsatz (LINK (http://greinert.hopto.org/main/index.php?id=gdfgtfr8rf8sdr88w877d65c5zhhehh3)), weil die den Tri-State benötigte,
muss gestehen habe mir da nicht so viel Gedanken gemacht und einen Pull-Up von 4,7 kOhm verwendet ... läuft zuverlässig ...

Manf
10.08.2016, 17:35
Hierfür gibt es im RN Wissen die folgende Antwort:
http://rn-wissen.de/wiki/index.php/Pullup_Pulldown_Widerstand

Dimensionierung
Welchen Wert man einem Pullup- oder Pulldown-Widerstand gibt, kommt immer auf die Schaltung an (z.B. wie schnell die Schaltung sein soll oder welchen Strom sie verbrauchen darf). Diese Widerstände können sich im Bereich von 100 Ohm bis 100 kOhm bewegen. Widerstände, die auch Terminierungs- oder Dämpfungsfunktion haben, liegen eher im Bereich unter 1 kOhm. Wenn es nur darum geht, einen Prozessor-Pin, an dem sich keine lange Leitung befindet, auf einen definierten Pegel zu bringen, können es auch über 10 kOhm sein.
Bei Arbeiten im Bereich der Mikrocontroller haben sich Werte von 4,7 kOhm für Pullup- bzw. 10 kOhm für Pulldown-Widerstände in den meisten Fällen bewährt.

( Die weiteren Antworten die hierzu abgegeben wurden können bei Bedarf wiederhergestellt werden. )

PICture
10.08.2016, 18:44
Hallo!

Herzlichen Dank fürs Herstellen guter alter Ordnung in unserem Forum ! :Strahl =D> Mit RN Wissen kann sicher kein Troller streiten.

HaWe
11.08.2016, 08:27
vielen Dank für die Bereinigung von Troll- und Mobbingposts, ich hatte ja bereits mehrfach eine entsprechende Bereinigung erbeten. Leider wurden auch sachliche, freundliche und hilfreiche Posts undifferenziert mtgelöscht (s.u.).

@Manf: ja ich weiß, dass grundsätzlich ein weiter Bereich denkbar ist, genau deshalb frage ich ja in diesem speziellen Fall der Adresspins A0-A2 speziell beim MCP23017, die mehr oder weniger dauerhaft gesetzt bleiben, nach konkreten Widerstands-Werten . Diese sollten irgendwo in einer als zuverlässig anzusehenden Quelle nachzulesen sein, z.B. in einer Schaltungsskizze von bekannten Firmen, oder Blogs von Autoren etc. (Microchip, Adafruit, oder Blogs und praktische Projekte erfahrener und renommierter Einzelautoren, mit entspr. Skizzen, Fotos und/oder sonstigen Quellenangaben) und sich auch spezifisch und konkret auf die Adresspins A0-A2 beim MCP23017 beziehen, um sie mit Dip Switchs auf high oder low zu schalten .

Da ich sicher nicht der erste Mensch bin, der so etwas machen möchte, müssten fertige Schaltungen bzw. Widerstandswerte-Tabellen ja schon bereits von irgendwem veröffentlicht worden sein.

Bezüglich "Einzelautoren":
Hier wäre die Wiederherstellung von Feurrings Posts hilfreich, da sie ein eigenes Projekt referenzieren, das, wenn ich mich richtig erinnere, schon mehere Jahre mit 4,7k Pullups oder Pulldows an A0-A2 vom MCP23017 funktioniert (an Einzelheiten kann ich mich jetzt momentan nicht erinnern).

Vielen Dank!

Unregistriert
11.08.2016, 10:12
Ich bitte um die Verschiebung des threads in das Unterforum Elektronik, da ich in der Ausgangsfrage keinen Bezug zu Sensoren/Sensorik erkennen kann. Danke für Beachtung.

HaWe
11.08.2016, 11:08
anonyme unregistrierte Wünsche bitte ich nicht zu beachten. Im Übrigen ist der MCP23017 ein i2c-Multiplexer für Sensoren und Aktoren, sodass die Frage mMn hier durchaus richtig platziert ist.

Erneut bitte ich aber um Löschung von PICtures Post, den ich bereits als angreifend gemeldet habe.
Die Anschuldigung als "Troller" ist klar ein Seitenhieb und als Anfeindung gegen mich persönlich zu verstehen, da ich der einzige war. der bisher nicht referenzierte Posts als vage und nicht hilfreich bezeichnet hat.
Dieser Post gießt erneut Öl ins Feuer und ist dazu bestimmt, zu mobben und einen Flame War zu entfachen.
Der Post erfüllt damit die Kriterien für einen gehässigen und anfeindenden Mobbing- und Trollpost und führt zu denselben unsachlichen und persönlichen Mobbing-Angriffen und Schriftwechseln wie zuvor schon, was jetzt doch endlich durch die Bereinigung hat beseitigt werden sollen!!

Außerdem bitte ich ebenfalls erneut um die Wiederherstellung von Feuerrings Posts laut

" ( Die weiteren Antworten die hierzu abgegeben wurden können bei Bedarf wiederhergestellt werden. ) "

i_make_it
11.08.2016, 11:50
frage ich ja in diesem speziellen Fall der Adresspins A0-A2 speziell beim MCP23017, die mehr oder weniger dauerhaft gesetzt bleiben, nach konkreten Widerstands-Werten .

Diese sollten irgendwo in einer als zuverlässig anzusehenden Quelle nachzulesen sein, z.B. in einer Schaltungsskizze von bekannten Firmen, oder Blogs von Autoren etc. (Microchip, Adafruit, oder Blogs und praktische Projekte erfahrener und renommierter Einzelautoren, mit entspr. Skizzen, Fotos und/oder sonstigen Quellenangaben) und sich auch spezifisch und konkret auf die Adresspins A0-A2 beim MCP23017 beziehen, um sie mit Dip Switchs auf high oder low zu schalten .

Da ich sicher nicht der erste Mensch bin, der so etwas machen möchte, müssten fertige Schaltungen bzw. Widerstandswerte-Tabellen ja schon bereits von irgendwem veröffentlicht worden sein.


Unter Umständen gibt es dazu von Microship ganz bewusst keine Daten.
Was kann denn im Fehlerfall passieren wenn sich Hardwareadressen im laufendem Betrieb durch Softwarebeeinflussung ändern?
1 - eine doppelte Adressvergabe (zwei Portexpander haben die selbe Adresse)
2 - wechsel von Adressen auf nicht genutzte Adressen (die Ports werden weder ausgelesen noch geschrieben)
3 - Vertauschen von mehreren Adressen (die falschen Ports werden gelesen und geschrieben)

Alle 3 Fälle haben mehr oder weniger starke Auswirkung auf den Programmablauf und auf das was Aktoren daraufhin machen.

Da Microchip nich weis ob seine Chips in einem ungefählichen Spielzeug oder in einem Gerät mit tödlichem Potential verbaut werden, denke ich das da selbst eine Supportanfrage kein Antwort bringt außer vieleicht "Das ist nicht vorgesehen"

Auf jedenfall kommt in der Microchip Knowledgebase zum MCP23017 genau ein Artikel vor, bezüglich: "SDA line change when GPIO7 input change". http://www.microchip.com/support/hottopics.aspx
Damit scheidet der Hersteller als zuverlässige Quelle schon mal aus.
Adafruit kann per Definition schon einmal nur weniger zuverlässig als der Hersteller des Chips sein, da die auch nur mit den Informationen arbeiten können die Microchip veröffentlicht und dem was man durch ausprobieren selbst rausgefunden hat.

Blogs als zuverlässige Quelle einzustufen halte ich für recht gewagt (das kommt bei jedem Post auf eine Einzelfallprüfung an, außer es ist der Blog vom Papst, da der als Stadthalter Gottes auf Erden per Definition unfehlbar ist. Gilt natürlich nur für Katholiken, nach Marks und später Lenin ist im Vollrauch natülich alles richtig "...Opium des Volkes").
Das bei einem Blogger eine Konfiguration mit Bauteilen einer bestimmten Charge funktionieren heist nicht das dies garantiert allgemeingültig ist (Beispiel die Lichtempfindlichkeit beim Raspi die erst beim der Serienfertigung auftrat aber nicht mit der Bauteilcharge die bei den Prototypen verwendet wurden. : https://developer-blog.net/raspberry-pi-2-blitz-und-absturz/)
(man beachte das mein Link auch zu einem Blog führt ;) ).

Eventuell bist Du ja aus Gründen meiner eingangs aufgeführten 3 Fälle doch der erste Mensch der sowas wirklich umsetzen will. In dem Fall wärst Du dann der jenige der als erstes fertige Schaltungen und Wiederstandswerttabellen veröffentlichen kann.
Die Annahme das Du sicher nicht der erste bist und deshalb bereits Tabellen und Schaltungen veröffentlicht sein müssen, ist halt nur deine persöhnliche Annhame. zur prüfung der selben könntest Du auch mal Tante Google befragen.
Ich fand die anhand der Datenblattangaben durchgeführte Herleitung auf Basis der physikalichen Gesetze (Ohmsches Gesetz), zur Bestimmung von Grenzwerten recht nützlich.
Denn sollte es tatsächlich nirgendwo entsprechende zuverlässige Wiederstandstabellen geben, landet man genau da, um eigene empirische Tests zur bestimmung der Wiederstandswerte durchzuführen.
Für mich wäre das ein Post der wiederhergestellt werdne sollte, da er an einem konkreten Beispiel das wissentschaftlich korrekte Vorgehen beim einschränken der Dimensionierung von Bauteilen darlegt.

Zusammen mit Mamf's Zitat des rn-wissen Artikels ist das auch über den konkreten Fall hinaus ganz nützlich.
So zumindest mein persöhnliches Empfinden.

HaWe
11.08.2016, 12:04
@ i-make-it: sind jetzt zwar sehr viele Buchstaben, vielen Dank, hilft aber auch nicht weiter.
Gefragt war ja, wer was genaues weiß, und nicht, wer nichts genaues weiß, und geggogelt habe ich ja erklärtermaßen auch schon.


ich möchte die i2c-Adressen von verschiedenen MCP23017 per Adresspins A0 A1 A2 einstellbar machen, per Dip Switch und Pulldowns.
Ich hatte dazu vor, die Pins sowohl über je einen Pulldown dauerhaft mit GND als auch gleichzeitig per Dip Switch gegen +5V schaltbar zu machen.
Leider habe ich nirgends Angaben über die Größe der benötigten Pulldowns finden können.
10 kOhm?
4.7 kOhm?
1 kOhm?
Weiß jemand was genaues?
...
ich fragte nach konkreten Widerstands-Werten... in einer als zuverlässig anzusehenden Quelle nachzulesen ...und sich auch spezifisch und konkret auf die Adresspins A0-A2 beim MCP23017 beziehen, um sie mit Dip Switchs auf high oder low zu schalten .

Also warten wir vlt doch auf jemanden, der was genaues weiß, und auch sagen kann, wo das steht.
Und bitte möglichst NUR von jemand der was genaues weiß, und auch sagen kann, wo das steht, nur das bringt wirklich ein Plus an Informationsgehalt.

Manf
11.08.2016, 12:08
Ich habe gerade auch noch einmal nachgesehen was man zu dem Thema im Netz findet. Es deckt sich eigentlich ganz gut mit den Beschreibungen die wir bisher schon angesprochen haben. Wobei auch der Artikel aus RN Wissen den Wertebereich ganz gut abdeckt.
https://www.google.de/search?client=firefox-b&biw=1440&bih=735&tbm=isch&q=mcp23017+adressierung&sa=X&ved=0ahUKEwi82brJmLnOAhXJRhQKHZ43CxUQhyYIIA&dpr=1

Klassich Pullups mit 4,7k wie auch hier schon von Feuerring vorgeschlagen.
http://www.netzmafia.de/skripten/hardware/RasPi/Projekt-I2C-Expander/index.html

Pulldown mit 10k
https://www.mikrocontroller.net/topic/381703

Wechselschalter bzw Stecker, für niedrige Stromaufnahme
http://www.open-electronics.org/an-lcd-expansion-shield-for-your-raspberrypi/

Hier ist auch eine Version mit pulldown 100k wie von Ceos vorgeschlagen.
http://www.klembedded.com/

-----------
Ich habe den Post von i_make_it nicht berücksichtigt, der die Lösung viel ausführlicher beschreibt, ich habe hier nur ein paar Beispiele angegeben falls das helfen kann und eines davon als seriöse Quelle dienen kann.






(http://www.klembedded.com/)

HaWe
11.08.2016, 12:18
vielen Dank, beim 1. Link kann ich zwar nicht viel erkennen, aber die anderen 3 sind gut zu lesen und informativ.

Insb. die verwendeten 4k7 Pullups vom Link der Netzmafia waren so, wie ich es mir prinzipiell vorgestellt habe (wie gesagt: prinzipiell, allerdings mit Pullups statt Pulldowns) , das sind auch renommierte Autoren und außerdem direkt mit Bezug zum MCP23017 und zum Raspi, und es deckt sich auch mit Feuerrings Erfahrungen - perfekt, vielen Dank, so werde ich es machen !

Peter(TOO)
11.08.2016, 12:27
Hallo,

Da ich sicher nicht der erste Mensch bin, der so etwas machen möchte, müssten fertige Schaltungen bzw. Widerstandswerte-Tabellen ja schon bereits von irgendwem veröffentlicht worden sein.
Naja, es gibt Faustwerte. Da weiss man aber nie so ganz genau welche Vorgaben berücksichtigt wurden.

Wer es genau wissen will, muss halt rechnen.
Maximaler Leckstrom (über den Temperaturbereich) und entsprechend der, nötige Pegel.
Dann kann man den maximalen Widerstandswert berechnen.
Dabei muss man jetzt noch etwas Sicherheit einrechnen, das hängt jetzt aber auch wiederum von den Störspannungen/Strömen ab, welche wiederum vom Layout, Aufbau und der Umgebung abhängen.
Und bei Batteriebetrieb möchte man die Widerstände möglichst hochohmig haben.

Nun liegt aber der Betriebsspannungsbereich zwischen 1.8V und 5.5V.
Der maximale Pegel, welcher als 0 erkannt wird liegt bei 0.15 VDD

Als Leckstrom muss man mit +/-1µA rechnen.

Bei 5V ergibt die Rechnung
(0.15*5V)/1*10-6 = 750'000 = 750kOhm.
OK mit 750K ist dann keine Reserve.

Spannungsmässig wäre man mit etwa einem Faktor 10 auf der sicheren Seite. Also 47k bis 100k sind nicht schlecht. (habe ich bei diesen Bedingungen auch immer Serienmässig verwendet).

Nun Gibt es nicht nur Störspannungen, sondern auch Ströme!
Diese hängen jetzt aber vom Aufbau ab.
Es macht halt einen gewaltigen Unterschied ob da der DIP-Switch 1cm (Leiterbahnlänge) neben dem IC liegt oder ob da noch 10m Kabel dazwischen sind, welche möglichst noch in einem Kabelkanal zusammen mit den Kabeln eines 40kW-Motors mit Umrichter liegen.
Da ist dann ein noch ein Kondensator am Pin angesagt und ein Serien-Widerstand zum Kabel. Allerdings wird dann die Rechnung des Pull Down Widerstandes wieder etwas anders, weil man dann einen Spannungsteiler hat.

MfG Peter(TOO)

HaWe
11.08.2016, 12:37
vielen Dank für deine Erklärung, aber da ich selber keine Elektroniker-Ausbildung habe, verlasse ich mich in solchen Fällen nie auf persönliche Berechnungen und Rechnereien sondern verlasse mich einzig und allein auf bewährte Erfahrungs-Lösungen aus zuverlässiger Quelle, egal wie die jetzt zu ihren Ergebnissen kommen: denn auch wenn man die Rechnungen nicht selber verifizieren kann, steht dahinter doch immer noch auch die nötige praktische Erfahrung, d.h. die Schaltungen sind in der Praxis bewährt, egal welche Zweit- oder Drittlösungen theoretisch ebenfalls noch denkbar gewesen wären.
Das gilt nun bei der Netzmafia-Quelle sowohl für deren spezielle Lösung als auch noch für die zusätzliche Bestätigung durch Feuerrings Erfahrung (die leider immer noch nicht wiederhergestellt wurde!!!) , also ist diese 4k7 Pullup-Lösung sogar von 2 unabhängigen Seiten praktisch bestätigt und bewährt - was will man mehr.

Peter(TOO)
11.08.2016, 12:42
Hallo,

Insb. die verwendeten 4k7 Pullups vom Link der Netzmafia waren so, wie ich es mir prinzipiell vorgestellt habe, das sind auch renommierte Autoren und außerdem direkt mit Bezug zum MCP23017 und zum Raspi, und es deckt sich auch mit Feuerrings Erfahrungen - perfekt, vielen Dank, so werde ich es machen !
Die 4k7 stammen noch aus TTL-Zeiten und galten für Pull Up!
TTL-Eingänge waren asymmetrisch, als Pull Down musste man 100-470 Ohm verwenden.
Dafür durfte man TTL-Eingänge auch offen lassen, diese wurden dann immer als 1 erkannt.

CMOS ist symmetrisch und einfach hochohmig.
Aus diesem Grund darf man CMOS-Eingänge auch nie unbeschaltet lassen!

In deinem Fall jetzt irrelevant, aber ein Pull UP/Down stellt immer auch eine zusätzliche Belastung für den Signal-Treiber dar.
Dadurch kann man den Störspannungsabstand auch wieder verschlechtern, wenn der Widerstand zu klein wird.

MfG Peter(TOO)

HaWe
11.08.2016, 12:59
ps - und hier geht es ja um einen ganz speziellen Fall, mit sehr kurzen Leitungen und kaum einem Schaltvorgang auf Monate und Jahre hinaus, an einem sehr speziellen IC und für einen außergewöhnlichen Adressierungs-Zweck, nicht für einen allgemeinen Input oder Output Pin.
Die Schaltung ist doch auch eindeutig, Pullups auf 5V und schaltbar, optional direkt auf GND, ohne Pulldown, oder nicht?

Und sie ist bewährt und doppelt unabhängig und vor allem auch praktisch bestätigt.

Also, wie gesagt, Lösung ist jetzt da, genau solche Infos hatte ich gesucht, Problem gelöst, vielen Dank!

Feuerring
11.08.2016, 13:51
... Lösung als auch noch für die zusätzliche Bestätigung durch Feuerrings Erfahrung (die leider immer noch nicht wiederhergestellt wurde!!!)

habe mich schon gewundert, wo auf einmal meine Antwort geblieben ist ... habe weder getrollt noch war ich unsachlich :cry:

HaWe
12.08.2016, 07:34
ja, völlig unverständlich.
Erst duldet die Board-Moderation anfeindende und beleidigende Mobbing- und Trolling-Posts trotz mehrfacher Meldung und Anmahnung zur Löschung, dann wird in nicht nachvollziehbarer Weise alles und jedes völlig undifferenziert gelöscht, auch die sachdienlichen, freundlichen und hilfreichen Posts. Dann wird zwar darauf hingewiesen, dass Posts auf Wunsch wieder hergestellt würden, dann kommt man aber dem mehrfach geäußerten Wunsch wieder nicht nach und duldet stattdessen erneut beleidigende Mobing-Posts und löscht sie schon wieder nicht auf Verlangen. Das fördert keine positive Diskussion sondern leistet weiteren destruktiven Posts und einer miesen Stimmungsmache Vorschub.
Trotzdem noch mal an dich mein Dankeschön für deine Hilfe, gerade weil auch dieser Dank unverständlicherweise ebenfalls mit gelöscht wurde. Vielleicht könntest du doch nochmal deinen Post erneut, also ein 2. Mal einstellen, zumal er bereits mehrfach aus der Erinnerung von mir (und anderen ?) zitiert wurde.

Unregistriert
12.08.2016, 09:54
Im Übrigen ist der MCP23017 ein i2c-Multiplexer für Sensoren und Aktoren, sodass die Frage mMn hier durchaus richtig platziert ist.
Ich möchte gar nicht auf das mMn sehr wackelige Argument, mit dem du dMn vertrittst, eingehen. Jeder kann sich das Datenblatt anschauen und sich seine eigene Meinung aus dem Verlauf des threads bilden. Dort hat weder Art noch Typ eines, auch in der sachlichen Basisfrage nicht genannten und später nicht erwähnten Sensors/Aktors Einfluß auf die gesuchten Werte der Pullup/Pulldown Widerstände an den Deviceaddressanschlüssen des I/O Expanders.

Es würden sich keine Lebensfragen für mich stellen, wenn der Thread nicht ins Unterforum Elektronik verschoben würde und weiterhin im Sensoren/Sensorik-Unterforum zu sehen wäre. Mir reicht es zu wissen, wie das Thema einzuordnen ist.