PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Planung Kabeltester Kontrolle Platinenlayout



JoeM1978
10.03.2014, 17:59
Es soll ein Kabeltester werden für
Kabel mit VGA und SubD-Stecker. Die Verdrahtung/Belegung ist dabei allerdings anderst als bei Standardkabel.
Bedingung ist ein "schnelles und sicheres" Testen der Belegung der Steckerpins.

Vorgestellt hab ich mir, das ich "Testmuster" im Programm Hinterlege, die dann per Menü (1-2Taster) ausgewählt werden.
Getestet Wird immer Gleich (1-1,1-2,1-3,1-4,... 2-2,2-3,2-4,... 3-3,3-4,3-5... usw)
Das Ergebniss dann mit dem Testmuster vergleichen und Entsprechend z.b. eine
Rote LED und zusätzlich die fehlerhaften Pins per Display anzeigen.

Hardwareseitig würde ich gerne den Atmega328p, einen MCP23017 und ein I2C-LCD (2x16) verwenden.
Der 26Pol Wannenstecker wird dann mit einem robusten Prüfpult verbunden, auf dem die zu testenden Kabel gesteckt werden.

Aufbauen werde ich es als Prototyp auf Lochraster... späther evtl auf gefräster/geätzter Platine.
Könnte da bitte mal jemand drüberschauen, ob sich nicht irgendwo ein Leichtsinnsfehler eingeschlichen hat?

Den Quarz habe ich mir überlegt wegzulassen. Funktioniert i2c problemlos ohne Quarz ?
Funktionieren MCP23017 und ein i2c-Display problemlos zusammen am Port ?
Ich hoffe es macht bei Strecken von etwa 15-20cm bis zum Display keine Probleme mit den Pullup-Widerständen am Bus.

Bitte nicht verwirren Lassen... der MCP sitzt "verkehrtherum".

27748

Vorab schonmal Danke für eure Tips/Kritik.
Grüsse,... Joe

BMS
10.03.2014, 18:18
Hallo,
aus einem Layout lässt sich nur schwer die Funktion überprüfen, dennoch möchte ich Folgendes anmerken:
- der MCP... braucht noch einen Abblockkondensator
- dem ATmega könnte man auf der "linken" Seite bei Pin 7,8 an deiner Stelle einen zweiten Kondensator spendieren.
- oben rechts bei der blauen Brücke könnte es einen Kurzschluss geben, leider lässt sich das auf dem Bild nicht genau erkennen.
- eine Verpolschutzdiode könnte nicht schaden, außer die Polarität der Betriebsspannung stimmt immer...
- R7 und R8 kannst du weiter nach oben schieben und zwei Brücken einsparen
- wie wird der ATmega geflasht? Ich persönlich mache einen ISP-Stecker aufs Board, gerade für Projekte in der Entwicklungs/Testphase, wo oft neu programmiert wird...
Grüße, Bernhard

PICture
10.03.2014, 18:39
Hallo!

Dann erlaube ich mir auch einiges anmerken:

- als Muster könnte man ein geprüftes Kabel nehmen. Das ermöglichst ein Programm für alle an paralell verbundene Buchsen (z.B. VGA und SubD) anschließbare Kabel.

- es ist mir noch unklar was mit dem zweitem Ende des Kabels wird. Ohne Anschluß kann man eben kein Durchgang testen.

JoeM1978
10.03.2014, 19:00
@PICture
Also das Kabel scheint an einem ende einen VGA-Stecker ... und am Anderen Ende einen Sub-D zu haben.
Kabelbelegung ist deshalb nicht "Standard, weil einige Adern bzw Pins kurzgeschlossen werden. (Mehrere Adern für die Selbe Funktion dadurch mehr Strombelastbarkeit)
Insgesamt werden allerdings nie mehr als 12 Adern verwendet. (bei 2x13 Testpins hab ich also immerhin minnimalen spielraum).

Von dem Wannenstecker der Platine gehts erstmal per Kabelverbindung zu einem "Robusten" Tischpult, wo dann die eigentlichen Testpins montiert sind.
Hört sich erstmal blöde an... allerdings muss man bei geräten für Industrie auch mit Verschleiss rechnen...
dann werden die Stecker bzw das Testpult getauscht... das Gerät bleibt stehen.


@BMS
Die Vorschläge bzw von dir entdeckten Fehler hab ich soweit umgesetzt.
nur ist mir nicht ganz klar Wo ich die Abblockkondensatoren reinfummeln soll.
... und ehrlichgesagt grübel ich noch warum der Atmega einen 2. Kondensator benötigt.

- - - Aktualisiert - - -

Nachtrag...
So habe ich die Kritiken bisher umgesetzt:
27750

D1,C1,C9 und C7 sind dazu gekommen und die
Widerstände sind nach oben gerutscht um die Brücken zu sparen.

BMS
10.03.2014, 19:40
Hallo,
C7 ist wichtig, da mit Pin 7 und 8 des ATmega der digitale Teil des Mikrocontrollers versorgt wird und der digitale Teil kurzzeitige Spitzenströme zieht, die zu Spannungseinbrüchen führen.
C1 dagegen ist an AVCC und GND angeschlossen und stabilisiert den analogen Teil des Mikrocontrollers - der analoge Teil hat idR. keine oder nur geringere Stromspitzen. C1 sollte trotzdem verwendet werden.
Generell sollte bei ICs mit mehreren VCC/GND-Anschlüssen auch mehrere Abblockkondensatoren verwendet werden.
Grüße, Bernhard

JoeM1978
10.03.2014, 19:54
AHA. :idea:

Also erschliesst sich mir nun auch, warum ein und der selbe Chip 2 seperate Pins für die Spannungsversorgung besitzt.
um den "digitalen Teil" vom Lastteil zu trennen.

Allerdings Frag ich mich nun, ... Wenn das Problem ohnehin bekannt ist...
warum die Kollegen von AVR dann nicht gleich Abblockkondensatoren irgendwie gleich mit einbauen. *lach
Ja... schon klar... es ist ein Microchip... und soll kein Kompaktrechner werden.

Ok... soweit zum Off-Topic.

Wie ist das denn nun mit dem Quarz und dem i2c-Bus.

-Soll ich mir den Quarz sparen ?
-Macht der Buss Probleme wenn mcp und ein Display aneinanderhängen und das Display 20cm-Leitung hat ?

BMS
10.03.2014, 20:56
Allerdings Frag ich mich nun, [...] warum die Kollegen von AVR (http://www.rn-wissen.de/index.php/AVR-Einstieg_leicht_gemacht) dann nicht gleich Abblockkondensatoren irgendwie gleich mit einbauen.
Zur Realisierung von 100nF auf dem Chip wird eine große Fläche benötigt - und Chipfläche kostet viel Geld...

Die Datenübertragung auf I2C kann mit beliebiger Frequenz realisiert werden, quarzgenau muss es nicht sein. Falls nachträglich eine UART/RS232 nachgerüstet wird, wäre ein Quarz erforderlich. Quarz und zugehörige Kondensatoren kosten zusammen vielleicht 30 Cent. Bei deiner Anwendung ist das relativ egal, entscheide selbst ;) Du kannst ja auch den Platz dafür vorsehen und später bleibt immer noch die Möglichkeit, das nachzurüsten ?

Zu I2C:
20cm Busleitung sind noch gut beherrschbar. Bei Problemen kann der Pullup-Widerstand verkleinert werden (max. 3mA dürfen fließen) und die Datenrate (SCL-Takt) reduziert werden.

Grüße, Bernhard

JoeM1978
10.03.2014, 21:15
supi...
und macht es einen Unterschied, ob ich die pullup auf die Platine setze...
oder sollte ich die besser an der langen Leitung des Display vorsehen ?

Sollte ja theoretisch egal sein ?

Nachtrag:

So... und noch der Vollständigkeit halber das Layout inclusive den Werten der Bauteile
Zudem hab ich die linke Seite wo die Spannungsversorgung sitzt noch etwas zusammengerückt um
nochmals platz zu sparen.

Einen ISP-Stecker hatte ich mir überlegt. Dann den Gedanken aber wieder verworfen, da es für nachträgliche
Änderungen am Programm kaum Bedarf gibt. Notfals werden die Atmega gesockelt und einfach getauscht.
27753

BMS
11.03.2014, 09:59
Wo die Pullups sitzen dürfte ziemlich egal sein. Mit 1kOhm fließen aber bei Low-Pegel schon unerlaubte 5mA, es dürfen bei 100kBit/s höchstens 3mA durch den Pullup fließen (I2C-Spezifikation). Die Pullupwiderstände müssen also mindestens 5V/3mA=1,7kOhm groß sein, nächster Wert in E12 wären 1,8kOhm.
Grüße, Bernhard

JoeM1978
11.03.2014, 14:11
Ja. Geb ich dir Recht. Die genauen Spezifikationen kenne ich nicht.
Ich hatte lediglich in Erinnerung, das im Datenblatt/elektr. Spezifikationen SDA und SCL mit 1kOhm belegt sind.
Hier aufm Steckbrett hatte ich am MCP immer 1,5k weil mir das schon vom "Bauchgefühl her" besser schien..

So... dann Muss ich mal noch auf infos vom "AG" warten.
Sollte nix grösseres geändert werden müssen, mach ich demnächst nen Prototyp und fang an das Programm zu machen.

Auf alle Fälle ... vielen Dank für eure Hilfe und Kritiken.

JoeM1978
12.03.2014, 21:32
Hab nun doch nochmal eine Frage.
Ich kann doch den Resetpin des MCP (gleich wie den Atmega) mit 10k gegen V+ ziehen und dann per Taster auf Gnd den Reset erzwingen ?
Ich würde dann für beide Resetpins den selben Taster verwenden.

Aus Platzgründen fahre ich mit V+ unter dem InteruptPin des MCp durch und entferne einfach das Beinchen.
Die Interupts werde ich (hoffentlich) nicht benötigen.
Also so in etwa.
27769


... und weils langsam voll/eng wird hier noch ein Ausschnitt des betreffenden Bereichs:
27770

witkatz
13.03.2014, 08:07
nur ist mir nicht ganz klar Wo ich die Abblockkondensatoren reinfummeln soll.
Du kannst einen SMD Kondensator auf der Lötseite zwischen zwei Pins im 2,54 Raster auflöten. Ich verwende bei meinen Lochrasterbasteleien diese Vielschicht-SMD-G0805/X7R-G0805-100N (http://www.reichelt.de/Vielschicht-SMD-G0805/X7R-G0805-100N/3//index.html?ACTION=3&GROUPID=3165&ARTICLE=31879&SHOW=1&START=0&OFFSET=16&)

JoeM1978
08.08.2014, 19:28
Ich möchte dieses Thema nochmals aufgreifen.
Die Hardware ist vom prinzip her noch identisch mit dem unterschied,
dass ich nun eine weitere platine mit zusätzlichen I2C-Porterweiterungen
aufgesetzt habe (ich muss 2Stk 25pol-SubD vollbelegt testen).

....und habe dazu eine rein rechnerische frage.

Ich teste per ein-/Ausgänge den Durchgang der Drähte und auch Brücken oder eventuelle Kurzschlüsse.
Nun die Frage dazu:
Wie nieder-/hochohmig muss ein Kurzschluss sein, das er überhaupt erkannt wird?

Crazy Harry
08.08.2014, 19:37
Da du den Pegel an den Leitung sehr hochohmig (Eingang uC) misst und somit fast kein Strom fliesst, kannst du Verbindungen im kOhm-Bereich leicht und sicher messen bzw. als Kurzschluss interpretieren.
Sowas war PC-gestützt vor vielen Jahren mal in einem Elektor-Sonderheft: C.A.T.S.

i_make_it
08.08.2014, 21:05
1234567890

redround
09.08.2014, 08:39
C1 dagegen ist an AVCC und GND angeschlossen und stabilisiert den analogen Teil des Mikrocontrollers - der analoge Teil hat idR. keine oder nur geringere Stromspitzen.

Nur der Vollständigkeit halber: das stimmt nicht zu 100%. AVCC versorgt auch einige Pins, wenn sie als Digitale I/O verwendet werden. Bei solchen Fragen hilft immer ein Blick ins Datenblatt:

AVCC is the supply voltage pin for the A/D Converter, PC3:0, and ADC7:6
nicht dass jemand auf die Idee kommt, AVCC könnte er weglassen nur weil er keine analoge Funktion braucht und sich dann wundert, warum er PC1 nicht als digitalen Pin nutzen kann :-)

- - - Aktualisiert - - -

@JoeM1978 (https://www.roboternetz.de/community/members/55379-JoeM1978) : ich hab mir übrigens abgewöhnt, etwas mit so vielen Ports noch selber aufzubauen. Ich nutze dafür lieber einen DigiX http://shop.cboden.de/Digistump/DigiX/DigiX.html Hat 99 nutzbare I/O Pins und durch seinen ARM Prozessor auch mehr als genug Rechen-Power. Wenn Du den Bootloader runter schmeißt, kannst Du ihn auch wie einen normalen AVR programmieren oder Du nutzt halt die Arduino-IDE.