Hi Mein FPGA soll mehrere digitale Eingänge verarbeiten. Die Pegel der Eingangssignale haben Werte zwischen 0..24 V. Jeder Eingang erhält einen Pullup-Widerstand mit 4K7 auf 3.3 V und einen Serienwiderstand mit 150 K. Nun stellt sich mir dir die Frage ob es überhaupt notwendig ist zwischen Eingangsbeschaltung und FPGA noch einen Leitungstreiber (Z.B. 74HC245 o.ä.) zu setzen. Sind es vielleicht die Schmitt-Trigger, die das Eingangssignal etwas peakfreier machen oder sind andere Probleme zu erwarten wenn man die Leitungstreiber weg lässt? Vielen Dank für Eure Anregungen Geri
Wie schnell verändern sich denn deine digitalen Eingangssignale? Bei 100 MHz bzw. weniger als 10ns Anstiegszeit könntest Du Probleme bekommen, da dein Vorwiderstand (150k) mit parasitären Kapazitäten einen netten Tiefpass bildet. Sind die Signale deutlich langsamer ist es wohl eher unkritisch. Ich verwende den SN65LVDS348 als Puffer, http://www.ssalewski.de/Digital_In_A.pdf
>Jeder Eingang erhält einen Pullup-Widerstand mit 4K7 auf 3.3 V und einen >Serienwiderstand mit 150K. Wobei mir eh nicht klar ist, wie das einen gültigen Logik-Pegel 0/3.3V geben soll -- aber ich habe auch nicht wirklich drüber nachgedacht.
Hallo Stefan Vielen Dank für deine Hilfe! Die Signale änderen sich vielleicht mit maximal 100 KHz. Die meisten noch deutlich langsamer (Endschalter, Taster). Ist in diesem Fall ein Puffer Luxus oder gibt es dann noch Gründe einen zu verwenden? Und wo liegen die Grenzen? Beste Grüsse Geri
>Hallo Stefan Mach doch mal ein Bildchen, dann wird es klarer. Und sonst: Der Eingang des FPGA mit der Leiterbahn wird ein paar pF haben, da musst Du Dir eben die Grenzfrequenz des Tiefpasses ausrechnen, der sich mit Deinen Vorwiderstands-Netwerk ergibt. Und weiter: Geht der Eingang nach aussen, so dass ihn ein statisch aufgeladener Mensch berühren kann? Das wären die beiden Punkte, über die ich zuerst nachdenken würde. Eventuell Schutzdioden in Sperrrichtung nach VCC und GND.
Fpga reagieren sehr empfindlich auf überspannungen. Selbst mit 5 Volt gibt das schon probleme, da Fpgas nur max 3,3 V haben sollten. Es gibt zwar meistens Überspannungsschutzdioden an den Ports, aber für einen dauerhaften Strom sind die nicht gedacht. >mehrere digitale Eingänge wieviele ? >Jeder Eingang erhält einen Pullup-Widerstand Warum das ? Erscheint mir nach deiner Beschreibung unlogisch. >Sind es vielleicht die Schmitt-Trigger, die das Eingangssignal etwas >peakfreier machen Was ist denn die Ursache für die Peaks ? >Die Signale änderen sich vielleicht mit maximal 100 KHz. Die meisten >noch deutlich langsamer Hört sich nicht so an, als ob du unbedingt einen Fpga brauchst. >(Endschalter, Taster). > 24 V Hört sich nach Industrieanlage an, da sind Treiber ein absolutes muss. > Erklär doch einfach mal was du machen willst.
Hallo zusammen Vielen Dank für eure Rückmeldung. Anbei ein Bild, wie die Schaltung ursprünglich aussah. Es handelt sich um eine Steuerung mit ca. 24 digitalen Eingängen. An den Eingängen werden digitale Sensoren, Schalter, Taster angeschlossen werden. Die Pullups haben den Zwecke, dass das Eingangssignal immer definiert ist und man keine weitere Hardware ausser einem Taster der Schalter benötiget um einen Eingang zu schalten. Die Ursache für die Peaks könnte das Prellen eines Kontaktes sein. Es kann vorkommen, dass ein Mensch die Eingangskontakte berührt. Der FPGA erledigt sonst noch andere Aufgaben wo ordentlich Power notwendig ist. Die Schaltung ist momentan nur für den Hobbygebrauch. Mich interessiert aber sehr wie die Profis die Eingänge beschalten damit sie instustrietauglich sind. Beste Grüsse und nochmals vielen Dank für Eure Tipps Geri
Nimm einen einfachen Spannungsteiler, dann liegen deine Schaltschwellen nicht so ungünstig bei 2V. Denn bei einem 24V-Eingang würde ich die Schaltschwellen eher auf etwa 8-10V erwarten. > Es handelt sich um eine Steuerung mit ca. 24 digitalen Eingängen. > An den Eingängen werden digitale Sensoren, Schalter, Taster > angeschlossen werden. In der Steuerungstechnik üblich ist ein Anschluss der Aktoren zwischen 24V und dem Eingang und damit ein Pegel von 0V bei nicht angeschlossenem oder inaktivem Aktor. Die Pullup-Geschichte macht da ganz das Falsche: Eingang offen (z.B. Taster offen) --> high Taster betätigt --> 24V --> high So ist das üblich:
1 | 24V o |
2 | | o 3V3 |
3 | | | |
4 | \ - |
5 | \ ^ D1 |
6 | | | |
7 | | Eingang ___ 22k | |
8 | '-------o---|___|----o------o-----o-----> FPGA |
9 | | | | |
10 | - - | |
11 | 6k8| | ^ === 100n |
12 | | | | D2 | |
13 | - | | |
14 | | | | |
15 | '------o-----' |
16 | | |
17 | --- |
Wenn du für D2 eine blaue LED in Durchlassrichtung verwendest, hast du gleich noch eine Rückmeldung, ob am Eingang 0 oder 1 anliegt. > Die Ursache für die Peaks könnte das Prellen eines Kontaktes sein. Das wirst du wohl im Design angemessen brücksichtigen müssen. Dafür gibt es Entprellfunktionen. > Es kann vorkommen, dass ein Mensch die Eingangskontakte berührt. Die obige Schaltung ist dafür ausreichend gewappnet (ein brauchbares Layout vorausgesetzt).
Deine Schaltung wird dich nicht glücklich machen. Der allererste Irrtum, dem man meisten aufsitzt ist, dass es in der Industrie keine 24 V Eingänge gibt und deshalb, soviel ich weiss, auch keine Pegel dazu. Sensoren haben PNP oder NPN Ausgänge, die einen Eingang entweder nach 24V oder nach GND ziehen, wobei ein kleiner Strom fließen sollte. Es braucht in jedem Fall also einen Pullup oder Pulldown. Bei deiner Schaltung kannst Du höchstens ine Spannung von < 0.8 V an den Eingang legen, damit das FPGA einen Low-Pegel sieht. Das ist im Interesse eines vernünftigen Störabstands viel zu wenig. Alles andere ergibt schon '1'. Du solltest die Schaltung zumindest so ändern, dass alles das < 3-5 V ist als 0 erkannt wird, und alles das z.B. > 15-20 V als '1'. Zwischenpegel sollten nicht vorkommen.
Hallo Lothar Vielen Dank für deine ausführliche Hilfe! Das sieht sehr gut aus weil mit leicht beschaffbaren Teilen machbar. Super Idee auch mit der Leuchtdiode! Michael Sauron meinte oben, er würde für eine Anwendung im industriellen Umfeld auf jenden Fall Leitungstreiber verwenden. Wie ich sehe würdest du darauf verzichten. "brauchbares Layout" würde für mich hier insbesondere heissen: - kurze, möglichst geradlinige Durchführung der Leiterbahnen - grosszügige Massefläche bzw. eigenen Masse-Layer Würdest du mir bitte ein Beispiel für verwendbare Dioden und Kondensatoren nennen bzwl. welche Dioden und Kondensatoren eignen sich für diese Schaltung eigentlich besonders? Ich habe mir gerade gedacht, dass bei einem kurzzeitigen Spannungsimpuls am Kondensator und in Sperr und Durchlassrichtung 230 V anliegen könnten. Wenn die Diode in Durchlassrichtung schnell genug ist, dann wird diese Spannung nie erreicht. Für die Auslegung wäre es aber doch interessant zu wissen wie hoch sie ist... Welche Spannung die Kondensatoren aushalten müssen ist für mich gerade wegen der Grösse der Bauteile interessant. Vielen Dank nochmals Geri
@Klaus Vielen Dank für Deine Infos. Habe deinen Beitrag zu spät gesehen. Das würden dann bedeuten, dass ich nach Schaltung von Lother bei einem Sensor mit pnp-Ausgang noch einen externen Pullup verpassen müsste - oder. Bei Schalter und Taster wäre es nicht notwendig
Geri schrieb: > Michael Sauron meinte oben, er würde für eine Anwendung im industriellen > Umfeld auf jenden Fall Leitungstreiber verwenden. Wie ich sehe würdest > du darauf verzichten. Ich würde für eine Anwendung im industriellen Bereich nur Optokoppler verwenden. Man kann das Layout so sauber haben wie man will, aber wenn man den GND nicht entkoppelt dann bedeutet es immer, dass man mit dem GND der PCB im Gerät herumfahren muß und sich jede Menge unkontrollierte Ströme einfangen wird. Außerdem haben Optokoppler den Vorteil, dass sie auf Strom reagieren und der Schaltpunkt bei manchen Typen relativ genau spezifiziert ist. Durch Umjumpern der Beschaltung und Anpassen des Vorwiderstand kann man dann 5V, 12V oder 24 V NPN oder PNP Eingänge daraus machen.
Optokoppler sind natürlich ideal, wenn Potentialtrennung nötig oder gewünscht ist. Aber der Platzbedarf ist u.U. auch nicht ohne... Geri schrieb: > Michael Sauron meinte oben, er würde für eine Anwendung im industriellen > Umfeld auf jenden Fall Leitungstreiber verwenden. Wie ich sehe würdest > du darauf verzichten. Ein IC zwischen dem 24V-Eingang und dem FPGA bietet keinen (ESD-)Schutz. Es kann sogar sein, dass das IC komplett durchlegiert und einen Störimpuls an 1 eingang auf alle 8 Ausgänge ausgibt. Besser ist es, jeden Eingang getrennt ans FPGA zu führen. > "brauchbares Layout" > würde für mich hier insbesondere heissen: > - kurze, möglichst geradlinige Durchführung der Leiterbahnen > - grosszügige Massefläche bzw. eigenen Masse-Layer heißt hier insbesondere, dass der 100n Kondensator, seine Zweitfunktion als ESD-Blocker ausführen kann (die offensichtliche Erstfunktion ist ein Tiefpass). Und deshalb muß der Kondensator so ins Layout eingefügt sein, dass ein Eingangsimpuls über das eine Anschlusspad weg muß. Das Andere Anschlusspad muß auf direktestem Weg an Masse liegen.
1 | # -> Kupfer |
2 | O -> Durchkontaktierung |
3 | X -> Pad |
4 | |
5 | Falsch: |
6 | ####################X FPGA |
7 | # |
8 | # |
9 | # |
10 | # |
11 | X |
12 | [C] |
13 | X |
14 | # |
15 | # |
16 | # |
17 | # |
18 | O auf Masse-Layer |
19 | |
20 | Richtig: |
21 | ########X###########X FPGA |
22 | [C] |
23 | X |
24 | O auf Masse-Layer |
@Klaus und Lothar Vielen Dank für die Hilfestellung!! @Klaus: Wie würde die Beschaltung dann bitte aussehen? Käme hier nur mehr ein Vorwiderstand, welcher so ausgelegt ist, dass ein Kurzschluss am Eingang den Optokoppler nicht zerstören würde und am Ausgang ein Pullup? @Lothar: Vielen Dank auch für die Schaltung. Ich denke, so lässt sich das auch sehr gut ruten. Die Ganze Schaltung sollte schliesslich auf eine Europlatine passen. Darauf ein FPGA mit 240 pins, USB-Anbindung und ein paar Stecker. Fürchte momentan eben auch das Platzproblem. Dazu kommen noch etwa 40 digitale Ausgänge:) Hier müsste ich dann die Optokopplergeschichte konsequent weiterführen. Je nachdem was beim Optokoppler noch dazu kommt werde ich mir mal anschauen wer mehr Platz benötigt. Würde eine BAT54-Doppeldiode von den Werten her eigentlich ausreichen? Beste Grüsse und vielen Dank nochmals für die fachlich sehr guten Tipps und Erklärungen Geri
> Würde eine BAT54-Doppeldiode von den Werten her eigentlich ausreichen? Eine BAT54S also? Ja, auch eine BAV99 ist ok, oder evtl. eine 4-fache BAV99S.
Ja, eine Bat54s hatte ich gemeint. Vielen Dank
@Lothar Weiter oben hast du gemeint, man könnte eine blaude Diode in Durchgangsrichtung verwenden. Wäre diese Diode bitte zusätzlich oder anstatt D2 gedacht?
Geri schrieb: > @Klaus: > Wie würde die Beschaltung dann bitte aussehen? Käme hier nur mehr ein > Vorwiderstand, welcher so ausgelegt ist, dass ein Kurzschluss am Eingang > den Optokoppler nicht zerstören würde und am Ausgang ein Pullup? Wieso Kurzschluss? Der Serienwiderstand ist so ausgelegt, dass bei 24V [12V, 5V] genau der Strom fließt, bei dem der Optokoppler schaltet und der im Datenblatt als empfohlener Strom angegeben wird. Du solltest Dir aber wirklich zuerst überlegen was Du wirklich brauchst. Optokoppler sind eine saubere, aber aufwändige Lösung. Wenn man sie aufgrund der Applikation braucht, dann sind sie zwingend, Platzprobleme hin oder her. Wenn deine Karte in ein professionelles Gerät kommt, und : - die Leitungen zu den Schaltern oder Sensoren länger als z.B. 0.5 m sind - oder Störquellen wie Motoren in der Nähe der Leitungen sind - oder .. dann sind sie meiner Meinung nach zwingend. Wenn das Ganze ein Bastelprojekt ist, dann ....
> Wäre diese Diode bitte zusätzlich oder anstatt D2 gedacht? Das war ein Teppfihler... :-/ Es wäre eine blaue LED (Uf<=3,5V) anstatt der D1 parallel zur D2 möglich:
1 | 24V o |
2 | | |
3 | | |
4 | \ |
5 | \ |
6 | | |
7 | | Eingang ___ 22k D2 LED blau |
8 | '-------o---|___|----o------o-----o------o-----> FPGA |
9 | | | | | |
10 | - - v => | |
11 | 6k8| | ^ - === 100n |
12 | | | | | | |
13 | - | | | |
14 | | | | | |
15 | '------o-----o------' |
16 | | |
17 | --- |
Diese LED begrenzt dann die positive Eingangsspannung auf ungefährliche Werte...
Ah ja, danke! So ist es auch sehr praktisch, weil man im Layout alternativ mit einer BAT54S oder Bat54 mit Leuchtdiode bestücken kann.
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.