Hallo zusammen, ich möchte mir gerne einen "intelligenten" Durchgangsprüfer basteln, um z.B LAN-Kabel oder komplexere Kabelbäume zeitschonend zu prüfen. Für meinen ersten Prototypen hatte ich mir einen eigenen 96bit Multiplexer aus &-Gattern gebastelt. Funktionierte eigentlich ganz gut - musste aber selber mit einer Prüfspitze an das andere Ende der Adern gehen und alles abtasten. Für das neue Projekt möchte ich aber jetzt einen GPIO expander (z.B MCP23S18), welchen ich über i2c steuere, verwenden. Im Endausbau soll die Schaltung dann O(100) Verbindungen testen können - brauche also etwa 200 GPIOs (oder mehr...). Funktionieren soll es dann so, dass ich einen Port per Write auf High setzte und dann die restlichen Ports auslese und mit einen Prüfliste vergleiche. Jetzt hätte ich eine sehr grundlegende Frage, die mir vielleicht ein initiales trail-and-error erspart: Kann ich Ports von einem einzelnen Baustein verbinden? Sprich, kann ich einen Port auf High setzen und am zweiten Port das Signal ablesen? Das tritt z.B auf wenn ich eine Brücke zwischen zwei Adern habe. Danke schon mal im voraus! LG, Max
Max schrieb: > Kann ich Ports von einem einzelnen Baustein verbinden? Du kannst beliebig viele mit beliebigen anderen verbinden, solange 1. nur 1 davon ein Ausgang ist oder 2. mehrere davon Ausgänge sind, aber den selben Pegel ausgeben.
Max schrieb: > GPIO expander (z.B MCP23S18), welchen ich über i2c steuere Wieviele solcher Port-Expander kannst du an 1 I2C betreiben? Wieviele unterschiedliche Adressen kannst du einstellen? Ich würde da einfach die "übliche" Schieberegisterlösung nehmen. Die ist durch simples Einfügen von zusätzlichen Schieberegistern beliebig skalierbar.
:
Bearbeitet durch Moderator
Max schrieb: > Kann ich Ports von einem einzelnen Baustein verbinden? Sprich, kann ich > einen Port auf High setzen und am zweiten Port das Signal ablesen? Das > tritt z.B auf wenn ich eine Brücke zwischen zwei Adern habe. Ja. Du brauchst aber auf der Empfangsseite an jedem Pin Pulldown- oder Pullup-Widerstände. Digitale Eingänge dürfen niemals offen sein, weil sie dann in einen undefinierten Zustand geraten können, in dem unzulässig hohe Querströme auftreten können, die möglicherweise den Pintreiber beschädigen können. Daher Pins, die offen sein können, immer mit einem Widerstand von 10...100k auf einen definierten Pegel ziehen. Aonsonsten schließe ich mich lkmiller an: die Lösung mit Schieberegistern (74HC595 für die Ausgänge, 74HC597 für die Eingänge) wäre billiger und sinnvoller. fchk
Max schrieb: > Für das neue Projekt möchte ich aber jetzt einen GPIO expander (z.B > MCP23S18), welchen ich über i2c steuere, verwenden. Lothar M. schrieb: > 2. mehrere davon Ausgänge sind, aber den selben Pegel ausgeben. Bei Ports mit Open-Drain Ausgang (MCP23S18) ist es völlig egal, ob die den selben Pegel ausgeben. Ein einziger Ausgang, der das Netz runter zieht, reicht für Low an den Eingängen (wired-OR in negativer Logik).
Vielen Dank schon mal für die Antwort(en)! Den Ansatz mit den Schieberegistern habe ich im Forum bereits des öfteren gefunden, bin mir aber nicht sicher ob sich mit dieser "üblichen" Lösung meine Idee realisieren lässt. Der Plan ist, dass ich mithilfe von Musterkabelbäumen meinem Durchgangsprüfer beibringe welche Verbindungen er zu testen hat. Dazu muss es mir a-priori mal möglich sein jede Verbindung bidirektional zu testen (danach kann ich mittels Software auf die notwendigen reduzieren). Übersehe ich da etwas wenn ich sage, dass das mit Schieberegistern nicht machbar ist? Dann zur Frage wieviele Expander ich betreiben kann. Grundsätzlich habe ich eine 3 bit Adresse. Somit müsste ich den Adressbereich des MCP23S18 eigentlich multiplexen um auf meine 200 Ports zu kommen. Deswegen habe ich jetzt nach Bauteilen mit mehr Ports wie z.B den PCA9698 (3bit Adr / 40bit I/O) gesucht. Zu meiner eigentlichen Frage: Als Anhang habe ich eine sehr rudimentäres Bild (bitte um Verzeihung...) wie ich mir die Beschaltung vorgestellt hätte. Wenn ich pin 4 auf High schalte sollte ich also auf pin 3 und 5 ein High bekommen. Auf den anderen Low. Aber wie Frank geschrieben hat, würden pin 1, 2 und 6 eigentlich undefiniert sein. Also müsste ich entweder pin 2 oder 6 auf Low setzen (dann den jeweils anderen auslesen) und pin 1 ignorieren damit jeder Pegel definiert ist. Oder wäre es besser alle Ports mittels pull-up auf Vcc zu hängen und beim Prüfen die Ports auf Low zu schalten? Danke, Max
Max schrieb: > es mir a-priori mal möglich sein jede Verbindung bidirektional zu testen > (danach kann ich mittels Software auf die notwendigen reduzieren). > Übersehe ich da etwas wenn ich sage, dass das mit Schieberegistern nicht > machbar ist? Wieso sollte das mit Schieberegistern nicht machbar sein? Erkläre das genauer. Warum meinst Du, dass Du mit Schieberegistern nicht beliebige Bitmuster erzeugen kannst, wie Du es mit IO-Expandern machen kannst? > Zu meiner eigentlichen Frage: > Als Anhang habe ich eine sehr rudimentäres Bild (bitte um Verzeihung...) > wie ich mir die Beschaltung vorgestellt hätte. Wenn ich pin 4 auf High > schalte sollte ich also auf pin 3 und 5 ein High bekommen. Auf den > anderen Low. > Aber wie Frank geschrieben hat, würden pin 1, 2 und 6 eigentlich > undefiniert sein. Nicht nur eigentlich. Serienwiderstände nützen Dir da nichts. > Also müsste ich entweder pin 2 oder 6 auf Low setzen (dann den jeweils > anderen auslesen) und pin 1 ignorieren damit jeder Pegel definiert ist. Wie willst Du Pin 1 ignorieren? Der würde Dir irgendwann kaputt gehen. Nochmals: Du darfst niemals zu irgendeinem Zeitpunkt undefinierte Pegel, womöglich noch in der Nähe von VCC/2 (was Du nicht weißt, weil ist ja undefiniert) haben. Das killt Dir irgendwann die Schaltung. Nicht sofort. Irgendwann. Solche Pins sind nämlich auch sehr empfänglich für elektrostatische Entladungen. > Oder wäre es besser alle Ports mittels pull-up auf Vcc zu hängen und > beim Prüfen die Ports auf Low zu schalten? Genau das ist der richtige Weg. Idealerweise mit Open Drain Ausgängen, dann hast Du auch keine Umschaltung der Datenrichtung mehr. Die HC595 haben keine OpenDrain Ausgänge, da müsstest Du z.B. auf TI TPIC6C596 oder Nexperia NPIC6C596A ausweichen (letztere gehen auch mit 3.3V Logikspannung erstere nur mit 5V). Für die Eingänge dann weiterhin 74HC597 oder HC165. fchk
> Wieso sollte das mit Schieberegistern nicht machbar sein? Erkläre das > genauer. Warum meinst Du, dass Du mit Schieberegistern nicht beliebige > Bitmuster erzeugen kannst, wie Du es mit IO-Expandern machen kannst? Bitte korrigiere mich wenn ich falsch liege, aber die Lösung mit Schieberegistern eignet sich nur wenn ich eine Art Bus teste. Sprich ich habe eine Eingangsseite und eine Ausgangsseite. Also für den Fall, dass ich einen einzigen Kabelbaum habe. (Ein- und Ausgänge fest definiert sind.) Das Problem das ich habe kommt ins Spiel, weil Ein- und Ausgänge bei unterschiedlichen Kabelbäumen mit unterschiedlichen Steckern Konfektioniert sein können. Die Stecker haben zwischen 1-37 Kontakte. Also als Beispiel: Kabelbaum 1 hat auf einer Seite zwei Stecker Typ A und auf der anderen Seite einen Stecker Typ B und einen Stecker Typ C (AA)->(BC). Kabelbaum 2 hat nun Stecker A und B auf einer und A und C auf der anderen (AB)->(AC) Natürlich kann ich jetzt jeweils einen Adapter pro Kabelbaum basteln - Ist aber sehr unpraktisch. Wenn ich aber einen Adapter für die Stecker AA habe und einen für BC bei denen ich über meine Software einen der A Stecker dann als Ausgang und den B Stecker als Eingang verwenden kann, kann ich alle beliebigen Kombinationen testen. Sollte das mit Schieberegistern auch machbar sein, wäre das natürlich super. Dann bräuchte ich aber bitte jemanden der meinen Knopf im Kopf lösen könnte :) Max
Max schrieb: > Bitte korrigiere mich wenn ich falsch liege, aber die Lösung mit > Schieberegistern eignet sich > nur wenn ich eine Art Bus teste. Sprich ich habe eine Eingangsseite und > eine Ausgangsseite. Also für den Fall, dass ich einen einzigen Kabelbaum > habe. (Ein- und Ausgänge fest definiert sind.) Mit dieser Konfiguration könntest Du niemals Kabelbrücken in einem Stecker testen. Nein, Du musst das schon so machen, dass JEDER Pin sowohl an einem OpenDrain Ausgang eines Ausgangs-Schieberegisters als auch an einem Eingang eines Eingangsschieberegisters angeschlossen ist. Damit kannst Du den Ausgangspin quasi zurückmessen, und Du siehst, was an allen anderen Pins passiert. D.h. Aussgangsmuster rausschieben (mit Shift Clock) Ausgangsmuster vom Ausgangs-Schieberegister in die Ausgaberegister raustakten (Register Clock), damit erscheinen sie an den Ausgangspins. Delay Eingangsmuster von den Eingangspins ins Eingabe-Schieberegister Laden Eingangsmuster hineintakten wobei jeder Pin zu jeder Zeit GLEICHZEITIG Eingangspin als auch Ausgangspin ist. fchk
Statt einem Schaltkreisgrab würde ich einfach mehrere MCs nehmen. Die kann man dann als Open-Drain mit Pullup konfigurieren. Ich hab so mal einen Tester für bis 40-polige Flachkabel gebaut, also 80 IO-Pins. Es waren 3 Stück AT89C51, die Kommunikation erfolgte über die UART, der letzte zeigte das Ergebnis an. 32 IOs abzüglich 2 für die UART ergibt so 30 nutzbare Pins je MC. Aufgebaut auf einer Rasterplatine mit DIP-40 MCs. Die Firmware war identisch, der erste erkannte seine Funktion als Master mit permanent low an RXD.
Frank K. schrieb > Nein, Du musst das schon so machen, dass JEDER Pin sowohl an einem > OpenDrain Ausgang eines Ausgangs-Schieberegisters als auch an einem > Eingang eines Eingangsschieberegisters angeschlossen ist. Damit kannst > Du den Ausgangspin quasi zurückmessen, und Du siehst, was an allen > anderen Pins passiert. > > D.h. > Aussgangsmuster rausschieben (mit Shift Clock) > Ausgangsmuster vom Ausgangs-Schieberegister in die Ausgaberegister > raustakten (Register Clock), damit erscheinen sie an den Ausgangspins. > Delay > Eingangsmuster von den Eingangspins ins Eingabe-Schieberegister Laden > Eingangsmuster hineintakten > > wobei jeder Pin zu jeder Zeit GLEICHZEITIG Eingangspin als auch > Ausgangspin ist. Jetzt macht es endlich Sinn. Danke für die Klarstellung! Das war eben auch meine Grundidee, als ich an die GPIO expander dachte - Die Ports müssen gleichzeitig als Ein- und Ausgang betrieben werden können. Ich habe aber nicht beachtet, dass die Ports Ein- und Ausgang GLEICHZEITIG sein müssen. Also für 200 Ports würde ich demnach 25 Eingangs (74HC597) + 25 Ausgangsregister (74HC595). Für die Ausgänge kaskadiere ich die Register (Serial-out von Register N auf serial-in von Register N+1) und schiebe einen Low Zustand durch wenn ich eine Verbindung testen will. Mit einer steigenden Flanke am Storage Clock liegt dann mein gewünschter Zustand an. Aber wie lese ich die Eingangsregister aus? Ich habe mein Bitmuster and den jeweiligen parallelen Eingängen anliegen und schiebe das Muster auf den seriel-out. Damit nicht alle 25 gleichzeitig auf serial out schieben müsste ich jedes Bauteil einzeln adressieren können. Wenn ich das Datenblatt richtig lese wäre das mehr oder weniger ein High am parallel load des jeweiligen 597 - Brauche also 25 "Adressleitungen"?! Oder gibt es da einen simplere Lösung dafür? Max
Max schrieb: > Aber wie lese ich die Eingangsregister aus? Ich habe mein Bitmuster and > den jeweiligen parallelen Eingängen anliegen und schiebe das Muster auf > den seriel-out. Damit nicht alle 25 gleichzeitig auf serial out schieben > müsste ich jedes Bauteil einzeln adressieren können. Die schieben zwar alle gleichzeitig, aber jeweils vom serial out in den serial in vom nächsten Baustein. Die werden genau wie die Ausgangsregister in Reihe geschaltet. > Oder gibt es da einen simplere Lösung dafür? Allerdings, und zwar deinen PCA9698, der ist doch wie gemacht für diese Aufgabe. Das wären fünf statt fünfzig ICs. Oder was spricht dagegen?
:
Bearbeitet durch User
Du kannst auch mit 4017 kaskadiert immer einen Ausgang schalten und auf allen Eingängen gleichzeitig messen. Wie "lauflicht" und an den Eingängen darf dann auch nur der Eingang sich ändern, wo der Draht drann geht. Ändert sich der Zustand am Eingang nicht, ist der Draht unterbrochen; ändern sich mehrere, hast Verbindung zu anderen Drähten. Du könntest auch (bei verteilten µCs) alle Portregister auf "H" schalten und nur ne Bitmaske 1<< auf den Datenrichtungsregistern(DDR) durchschieben und nen kurzen LOW-Impuls generieren. Somit hast du immer einen Ausgang und der Rest deiner Portpins sind alles Eingänge mit pull-up. Auch wenn du somit deinen Kabelbaum nur squentiell testest und nicht alle Drähte gleichzeitig, sollte das trotzdem (im Vergleich zur Rüstzeit) immernoch schnell genug sein. <Achtung: Opa erzählt ausm Krieg>
1 | Früher(tm) hatten wir auf der einen Seite des Kabelbaums einen LED-Treiber-Schaltkreis (2xA277) und auf der anderen Seite eine LED-Reihe. |
2 | Auf den A277 haben wir eine Sägezahnspannung gegeben und auf der anderen Seite ist dann eine LED nach der anderen angegangen. So, in KnightRider-manier. |
3 | Da hat man sofort und genau gesehen, wenn da was nicht stimmte. |
4 | Erst waren Meister und auch die Damen aus der Produktion skeptisch. nach zwei Tagen bereits waren alle hellauf begeistert. |
5 | Aber -> das ist lange her. |
</Achtung: Opa erzählt ausm Krieg> Gruß#schmitti
Bauform B. schrieb > Allerdings, und zwar deinen PCA9698, der ist doch wie gemacht für diese > Aufgabe. Das wären fünf statt fünfzig ICs. Oder was spricht dagegen? Das war auch mein Ursprünglicher Gedanke. Jedoch hat Frank sehr einleuchtend argumentiert, warum ich für meine Durchgangsprüfung (Brücken zwischen Verbindungen können vorkommen - kein Flachbandkabel) Ports brauche die gleichzeitig Ein- und Ausgang sind. Ich will ja später auch in der Lage sein nicht nur Verbindungen zu testen, sondern auch Musterkabelbäume zu lernen. Jedoch sind 50 ICs wirklich etwas viel... Ich könnte aber die 74HC595 für die Ausgänge verwenden und die PCA9698 als Eingänge. Das würde zumindest das ganze auf 30 reduzieren. Max
Max schrieb: > Jedoch sind 50 ICs wirklich etwas viel... > Ich könnte aber die 74HC595 für die Ausgänge verwenden und die PCA9698 > als Eingänge. Das würde zumindest das ganze auf 30 reduzieren. Und das Systemdesign komplexer machen. Du kannst die gesamte Logik in einen einzigen Chip hineinbekommen. Technisch ist das überhaupt kein Problem. Es gibt FPGAs mit 600 oder 1000 Pins, damit kannst Du sehr viel größere Kabelbäume testen. Dann brauchst Du nicht mal mehr einen Microcontroller. Du steckst einen "guten" Kabelbaum an, drückst auf eine "Lernen"-Taste, klemmst nacheinander die zu testenden an, drückst auf eine "Prüfen" Taste, und bekommst entweder ein rotes oder grünes Licht. Technisch einfach. Das Problem ist: 1. Kannst Du solch großere Gehäuse noch löten? Eher nicht. SO16 kannst Du löten. Ist zwar eine Heidenarbeit, aber es geht, und es ist einfach. 2. Je komplexer und größer die Bausteine, desto empfindlicher werden sie und desto schneller gehen sie auch kaputt. Ich habe Dir deswegen auch die NPIC6C596 genannt, weil die (a) Open Drain Ausgänge haben (das haben die HC595 nicht) und (b) etwas höhere Treiberleistungen von 250mA pro Pin. So schnell sollte da also nichts kaputt gehen. Das Risiko besteht aber immer, durch ESD oder was auch immer. Dann musst Du in der Lage sein, Dein Zeug zu reparieren. Kannst Du einen SO16 im 1.27mm Raster tauschen, ohne dass die Leiterplatte beschädigt wird? Wahrscheinlich. Pins mit gutem Seitenschneider abknipsen und Pads mit Entlötlitze säubern. Kannst Du Du einen SSOP48 im 0.635mm Raster per Hand tauschen, ohne auch nur ein Pad zu beschädigen? Es geht, aber Du brauchst das richtige Werkzeug. Heißluft ist fast Voraussetzung dafür. Das wäre Dein PCA9698. 3. Es bleibt ja nicht bei den ICs. Du solltest unbedingt an jeden Pin eine ESD-Schutzdiode gegen GND hängen. Sowas wie Semtech UCLAP3301H oder Nexperia PESD3V3U1UB, und dazu einen 22 Ohm Serienwiderstand. Klar. Das ist Arbeit. Ich würde das mit HC165 und NPIC6C596 machen, und dann modular. Pro Board 48 Pins. Da orderst Du einmal einen 10'er Pack Leiterplatten beim Chinesen und kannst dann nacheinander aufbauen und testen, je nach Bedarf. Wenn Dir da mal ein Pin hopps geht, kannst Du es leicht reparieren. Und die Chips sind in größeren Mengen auch billiger. Ein 74HC165 im SOIC16N kostet 33 Cent einzeln, im 25'er Paket sind es nur noch 24 Cent. Das gesamte 25'er Paket kostet nur 6€. Ein NPIC6C596ADJ im SOIC16N kostet einzeln 62 Cent, im 25'er Paket nur noch 50 Cent, d.h. 12.50€ für das ganze 25'er Paket. Bei 100 wirds noch weniger. fchk
Max schrieb: > Jedoch hat Frank sehr > einleuchtend argumentiert, warum ich für meine Durchgangsprüfung > (Brücken zwischen Verbindungen können vorkommen - kein Flachbandkabel) > Ports brauche die gleichzeitig Ein- und Ausgang sind. Genau das können die PCAs doch? Oder umgekehrt: das kann kein Baustein, je nachdem, was man unter gleichzeitig versteht. Jeder Pin kann einzeln als Eingang oder Ausgang konfiguriert werden und als Bonus kann man den Zustand eines Ausgangs-Pins lesen. Dabei liest man aber immer nur das, was man eben ausgegeben hat -- es sei denn, es gibt einen Kurzschluss nach VDD oder GND. Wobei beide nicht vom kaputten Kabel her kommen können (GND schon garnicht). Frank K. schrieb: > Ich würde das mit HC165 und NPIC6C596 machen, und dann modular. Pro > Board 48 Pins. Da orderst Du einmal einen 10'er Pack Leiterplatten beim > Chinesen und kannst dann nacheinander aufbauen und testen, je nach > Bedarf. Wenn Dir da mal ein Pin hopps geht, kannst Du es leicht > reparieren. Keine schlechte Idee, das sollte man auch mit dem PCA machen, da wären es 40 Pins pro Board.
Max schrieb: > Die Ports müssen gleichzeitig als Ein- und Ausgang betrieben werden > können. Ich habe aber nicht beachtet, dass die Ports Ein- und Ausgang > GLEICHZEITIG sein müssen. Nö, müssen sie nicht. Es darf nur nicht zu Datenkämpfen kommen bei Kurzschlüssen im Kabel, daher open-drain Ausgänge. Und Eingänge müssen Unterbrechungen erkennen, daher mit Pull-Up. Die beste Lösung ist daher eine entsprechende Anzahl MCs, z.B. 3 Stück ATmega640 für die 200 Anschlüsse. Die sind noch gut lötbar (0,8mm Raster). Man schiebt natürlich nicht 100-mal ein einzelnes Bit durch, sondern gibt nur soviele verschiedene Muster aus, daß ein Fehler eindeutig erkannt wird. Wenn die Tests schön schnell erfolgen, lassen sich auch Wackelkontakte gut lokalisieren.
:
Bearbeitet durch User
Bauform B. schrieb: > Frank K. schrieb: >> Ich würde das mit HC165 und NPIC6C596 machen, und dann modular. Pro >> Board 48 Pins. Da orderst Du einmal einen 10'er Pack Leiterplatten beim >> Chinesen und kannst dann nacheinander aufbauen und testen, je nach >> Bedarf. Wenn Dir da mal ein Pin hopps geht, kannst Du es leicht >> reparieren. > > Keine schlechte Idee, das sollte man auch mit dem PCA machen, da wären > es 40 Pins pro Board. Sollte man nicht. Rechnen wir mal den Worst-Case-Fall durch. Der Fragesteller will 200 Pins haben. Wir haben also 200 zurücklesbare Open-Drain-Ausgänge, und jeder Ausgang hat einen 10k Pullup. Wenn ein einzelner Ausgang auf Low gezogen wird, fließen I=U/R=3.3V/10000R=330uA. Das ist vernachlässigbar für den Treiberpin, aber auf der anderen Seite sollte es auch nicht weniger Strom sein, damit im offenen Zustand der Pin sicher auf High gezogen wird. So, jetzt nehmen den gemeinst möglichen Fall: Alle 200 Pins sind miteinander verbunden. Wir haben also 200 parallel geschaltete 10k-Pullups, die ein Treiberpin auf Low ziehen können muss. Ist also der 200-fache Strom, also 330uA*200=66mA. Der NPIC6C596 macht das problemlos - der kann bis zu 100mA pro Pin zeitlich unbegrenzt im Dauerbetrieb. Der PCA kann nur 17mA bei 3V Versorgunsgspannung. Reicht also nicht, das wird langfristig zu einer Zerstörung des Pintreibers führen. Gut, jetzt kann man sagen: "200 Pins parallel, das macht doch niemand!". Sicher, kann man. Aber wo zieht man die Grenze? Wenn man mal zurückrechnet, liegt sie bei 51 parallel geschalteten Pins, bevor man die Spezifikation überschreitet. Bei Verwendung von PCAs kann man also nicht mehr als 50 Pins bereitstellen, wenn man den gesamten Apparat idiotensicher machen will. Das ist aber ziemlich weit entfernt von den 200 Pins, die als Ziel angegeben wurden. Und ich als potentieller Kunde und Verwender erlaube mir jetzt einfach mal den Luxus, ein idiotensicheres Gerät zu fordern, das ich nicht mal eben so versehentlich kaputtbekomme. Klar, mit 230V und Vorschlaghammer bekommt man alles klein, aber ein einfaches, passives, nach Anleitung angeschlossenes Testkabel darf nach meinem Verständnis NIEMALS zu einem Defekt führen, egal wie es intern beschaltet ist. Der Fragesteller möge sich daran vielleicht mal ein Beispiel nehmen, wie man Geräte und Schaltungen auslegt und was man ganz einfach mal übersehen kann. fchk PS: Warum selber löten? Es gibt doch Dienstleister, die die Boards nach Übermittlung von Gerber und Pick&Place Daten durch ihre Automatenbestückung schicken. Dafür designt man natürlich ausschließlich SMD-Bausteine ein, weil die Bestückung von TH Komponenten VIEL mehr (Faktor 3 bis 5) kostet. Aber das ist ja auch kein ernsthaftes Problem mehr in dieser Zeit, wo der geneigte Lochrasterer ernsthafte Probleme hat, Bausteine in DIL noch zu bekommen. Auch 400 SMD-Widerstände (200* 10k Pullup und 200* 22R Serien) und 200 ESD-Schutzdioden im SOD523-Package (1.2mm*0.8mm) verlieren so ganz schnell ihre Schrecken.
Frank K. schrieb: > So, jetzt nehmen den gemeinst möglichen Fall: Alle 200 Pins sind > miteinander verbunden. Man kann sich aber auch die Hose mit der Kneifzange anziehen. Wenn Du solch große Angst hast, dann kannst Du das doch einfach in der Firmware abfangen. Niemand zwingt Dich, alle Pullups gleichzeitig anzuschalten und bei Überlast auch tagelang eingeschaltet zu lassen. Es sind übrigens nur 100 Adern, d.h. 100 Pullups nötig. Frank K. schrieb: > PS: Warum selber löten? Ich habe nicht den Eindruck, daß der TO gleich eine Massenproduktion vorhat. Für Musterbestückung zahlst Du ordentlich drauf, da sich dann in der Regel die Einrichtungskosten potenzieren. Eine Rasterplatine mit DIP kann sich da schnell rechnen. Die ATmega640 kann man auch auf fertige Adapterplatinen setzen: https://www.pollin.de/p/rapitus-samxs-adapterplatine-tqfp-100-810530?gclid=EAIaIQobChMIieODi5-m6AIVyPhRCh2vqQslEAkYASABEgIoavD_BwE 7 MCs im DIP-40 (ATmega162) ginge aber auch.
:
Bearbeitet durch User
Peter D. schrieb: > Man schiebt natürlich nicht 100-mal ein einzelnes Bit durch, sondern > gibt nur soviele verschiedene Muster aus um Kurzschlüsse oder Unterbrechengen festzustellen reicht pro Byte 8-Bit doch abwechselnd 0x55 und 0xAA alle 8-Bit geprüft Max schrieb: > Jedoch sind 50 ICs wirklich etwas viel... > Ich könnte aber die 74HC595 für die Ausgänge verwenden und die PCA9698 > als Eingänge. Das würde zumindest das ganze auf 30 reduzieren. da der PCA9698 40 Bit also 5 Byte macht und bis zu 8 adressiert werden können, hast du noch 3 Stück übrig! Reicht zwar nicht für alle Eingänge reduziert den IC Bedarf aber auf 3 freie PCA9698 und spart 12 Schieberegister, also nur noch 8x PCA9698 und 13x 74HC595 also nur 21 IC statt 30.
:
Bearbeitet durch User
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.