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.
@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
@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: