Ich würde gerne mittels eines Raspberry-Pi eine art mini-Hardware-in-the-Loop Teststation bauen. Ich frage mich, wie ich am besten einen Digital-Eingang realisiere, der mehrere Spannungslevel verarbeiten kann. Eine Idee - siehe Anhang - ist es mit der Eingangsspannung einfach ein MOSFET zu schalten. Da gibt's doch aber bestimmt bessere Alternativen, oder?
Dazu müßtest Du aber auch den unteren Level definieren. Und dann wird es auch schon komplizierter.
Andreas B. schrieb: > Dazu müßtest Du aber auch den unteren Level definieren. Und dann > wird es > auch schon komplizierter. Wie ich mir dachte: Irgendwas hab' ich übersehen :) Die Grenzen zwischen High und Low wären im Beispiel dann davon abhängig, was der uC bzw. Pi für H/L-Grenzen vorgibt. Nicht optimal, aber wenn ich davon ausgehe, dass ich am Eingang auch nur < 1 V und >= 3.3 V habe und nichts kontinuierliches, dann sollte es ja funktionieren. Aber wie gesagt, nicht optimal. Bessere Ideen? Schmitt Trigger vielleicht?
rasz schrieb: > Ich würde gerne mittels eines Raspberry-Pi eine art > mini-Hardware-in-the-Loop Teststation bauen. Ich frage mich, wie ich am > besten einen Digital-Eingang realisiere, der mehrere Spannungslevel > verarbeiten kann. Eine Idee - siehe Anhang - ist es mit der > Eingangsspannung einfach ein MOSFET zu schalten. Da gibt's doch aber > bestimmt bessere Alternativen, oder? Die gibt es fast immer. Ein einfacher Spannungsteiler, der ausreichend hochohmig gestaltet ist, reicht. Dazu eine Klemmdiode vom Eingang nach VCC, meinetwegen als Schottkydiode, fertig. Widerstand oben: 4k7 Widerstand unten: 68k Klemmdiode BAT48
auf was willst du dei eingehendes signal alles testen? -im erlaubten bereich low -im erlaubten bereich high -im verbotenem bereich ....
rasz schrieb: > Nicht optimal, aber wenn ich > davon ausgehe, dass ich am Eingang auch nur < 1 V und >= 3.3 V habe und > nichts kontinuierliches, dann sollte es ja funktionieren. Aber wie > gesagt, nicht optimal. Das ist nicht nur nichtoptimal, sondern kann arg danebengehen. Bei TTL Level (5V) sind z.B. <0.8V als low und >2.4V als hogh definiert. Und das zieht sich durch alle Logikfamilien: https://de.wikipedia.org/wiki/Logikpegel Du wirst also nicht umhin kommen, die Logik umschaltbar zu machen. Du könntest auch einen High Pegel abwarten und danach den Eingang entsprechend umschalten. Nur: Was ist ein High Pegel? Merkst Du was?
Falk B. schrieb: > Dazu eine Klemmdiode vom Eingang nach > VCC Spannungsteiler ergibt Sinn. Aber für was brauche ich die Diode? dummschwaetzer schrieb: > auf was willst du dei eingehendes signal alles testen? > -im erlaubten bereich low > -im erlaubten bereich high > -im verbotenem bereich > .... Vorerst genügt mir einfach zu prüfen, ob das Signal auf GND liegt oder einen Spannungspegel hat. Sprich: Schaltet meine Software auf dem zu testenden Gerät zur richtigen Zeit den richtigen Pegel? Andreas B. schrieb: > Das ist nicht nur nichtoptimal, sondern kann arg danebengehen. Bei TTL > Level (5V) sind z.B. <0.8V als low und >2.4V als hogh definiert. Da hast du natürlich recht, aber ich hab ja nie gesagt, dass ich auf TTL-Konformität prüfen will :P Um das Problem nochmals etwas genauer zu beschreiben: Das zu testende Gerät hat einige Ausgänge die per MOSFET geschaltet werden, und einige weitere, die direkt an einem ULN2003 hängen. Beides schaltet zwischen GND und 12V hin und her. Primär ist mein Ziel zu prüfen, ob meine Software diese Schaltvorgänge zu den richtigen Zeiten auslöst. Wollte ich Hardwaredefekte entdecken, müsste ich mich natürlich mit Pegeln und Pegelgrenzen auseinandersetzen. Darum geht's aber vorerst gar nicht :) Das hätte ich vielleicht im ersten Beitrag genauer ausführen sollen.
rasz schrieb: > Wollte ich Hardwaredefekte entdecken Genauer muss es natürlich heißen: Eine gewisse Klasse von HW-Fehlern. Natürlich erkenne ich mit meinen geplanten Tests HW-Fehler. Aber nicht solche, die mit bestimmten Pegelgrenzen zu tun haben.
rasz schrieb: > Spannungsteiler ergibt Sinn. Aber für was brauche ich die Diode? Zum Ableiten des Stroms, wenn der Eingang > 3,3V geht. Der Widerstand begrenzt den Strom, die Diode die Spannung. Siehe Pegelwandler.
Für soche Zwecke gibts z.B. den LM339: https://www.ti.com/product/LM339 Der hat 4 Vergleicher. Jeder Vergleicher hat einen +-Eingang und einen --Eingang. An + kommt Dein Eingangssignal, an - die Referenzspannung, d.h. die gewünschte Schaltschwelle. Die Referenzspannung kannst Du mit einem Trimmer erzeugen. Wenn + kleiner als - ist, wird der Ausgang auf GND gezogen, ansonsten ist er hochohmig und sollte per Pullup auf VCC vom Mikrocontroller dahinter gezogen werden. Versorgungsspannung von dem Chip muss 1-2V höher als die maximale Eingangsspannung sein, maximal 30V. Damit erschlägst Du mit relativ wenig Aufwand alle Eventualitäten. fchk
>Vorerst genügt mir einfach zu prüfen, ob das Signal auf GND liegt oder >einen Spannungspegel also 2 comperatoren je Digitaleingang 1 Coperator für LOW (0..0,8V) 1 Comperator für HIGH (0,7*VCC des Prüflings) deren Versorgung auf GND-3, DeinMaxIn+3 deren referenz irgendwie vom MC programmierbar z.B Widerstandsteiler aus mehr als 2 Widerständen,Sternpunkt ist Referenz, die anderen Enden an MC-Pin(outL oder outH oder tristate oder DAC Den Ausgang der Comperatoren auf Spannungsteiler, auf dein MC-Eingang dimensioniert. Die logiktabelle darft du dir selber basteln
Falk B. schrieb: > Zum Ableiten des Stroms, wenn der Eingang > 3,3V geht. Der Widerstand > begrenzt den Strom, die Diode die Spannung. Siehe Pegelwandler. Stehe ich gerade auf dem Schlauch? Angenommen mein Messeingang hat 12V, dann erzeuge ich über die Diode doch einen Stromfluss von dem Eingang auf meine 3.3 V Leitung. fchk schrieb: > Für soche Zwecke gibts z.B. den LM339: Auch eine interessante Möglichkeit. Danke für den Tipp! dummschwaetzer schrieb: > also 2 comperatoren je Digitaleingang Das ginge dann in Richtung der von fchk vorgeschlagenen Lösung. Wäre vielleicht auch nicht dumm, dass ich am Mini-HIL einen Eingang für Vcc-Prüfling habe und den Signaleingang. Ich denke mal drüber nach :)
Wenn sichergestellt ist, dass "LOW" höchstens ~0,7V hat, reicht es aus, einen Reihenwiderstand zu verwenden und zwei Dioden, eine nach +Vcc und eine nach -Vcc(GND), zu verwenden. Ist das nicht sicher, so musst Du für die Schwellenerkennung wirklich zwei Komparatoren einsetzen. Noch komplizierter wird es, wenn die Messspannung kleiner als Vcc ist. Hast Du es nicht besonders "Eilig", so könnte man das Ganze auch über einen A/D-Eingang erledigen. Allerdings musst DU dann entscheiden, ob es denn Low oder High anliegt.
fchk schrieb: > Versorgungsspannung von dem Chip muss 1-2V höher als die maximale > Eingangsspannung sein, maximal 30V. Wenn du auf die maximale Schaltgeschwindigkeit verzichten kannst, darfst du sogar bis 36V unabhängig von der Versorgungsspannung anlegen.
rasz schrieb: > Falk B. schrieb: >> Zum Ableiten des Stroms, wenn der Eingang > 3,3V geht. Der Widerstand >> begrenzt den Strom, die Diode die Spannung. Siehe Pegelwandler. > > Stehe ich gerade auf dem Schlauch? Kann schon sein. > Angenommen mein Messeingang hat 12V, > dann erzeuge ich über die Diode doch einen Stromfluss von dem Eingang > auf meine 3.3 V Leitung. Richtig. Aber es sind kaum 1mA. Die schlucken die Verbraucher auf der 3,3V Versorgung. > Das ginge dann in Richtung der von fchk vorgeschlagenen Lösung. > Wäre vielleicht auch nicht dumm, dass ich am Mini-HIL einen Eingang für > Vcc-Prüfling habe und den Signaleingang. Ich denke mal drüber nach :) Dann kannst du auch gleich einen Spannungsteiler und ADC nehmen, dann kannst du deine PEGEL exakt analog messen. Wenn deine Prüfung eher langsam (einige hundert Hz) ist, geht das.
Falls das Erkennen von Low Pegel ausreicht und die Höhe des Eingangssignals egal ist, tut es auch die simple Diode:
1 | IN RPi |
2 | o-----|<|----+--o |
3 | | |
4 | - Pullup nach Wunsch |
5 | | | |
6 | - |
7 | | 3,3V |
8 | +--o |
Sollte LowPegel nicht sicher erkannt werden, LBD (aka Schottkydiode) verwenden.
Falk B. schrieb: > Richtig. Aber es sind kaum 1mA. Die schlucken die Verbraucher auf der > 3,3V Versorgung. Ich stehe definitiv auf dem Schlauch. Siehe Anhang. So würdest du die da rein bauen? Falk B. schrieb: > Dann kannst du auch gleich einen Spannungsteiler und ADC nehmen, dann > kannst du deine PEGEL exakt analog messen. Wenn deine Prüfung eher > langsam (einige hundert Hz) ist, geht das. Hab ich auch schon drüber nachgedacht aber dachte, dass Digital-In's erst mal einfacher zu handhaben sind. Matthias S. schrieb: > tut es auch die simple Diode Noch eine Lösung. Danke :)
rasz schrieb: > Falk B. schrieb: >> Richtig. Aber es sind kaum 1mA. Die schlucken die Verbraucher auf der >> 3,3V Versorgung. > > Ich stehe definitiv auf dem Schlauch. Siehe Anhang. So würdest du die da > rein bauen? Ich sagte, ein einfacher Spannungsteiler reicht. Der Mittelpunkt von R1 und R2 geht direkt an den Raspberry PI, die Anode der Diode auch. Q1 und R3 entfallen. >> Dann kannst du auch gleich einen Spannungsteiler und ADC nehmen, dann >> kannst du deine PEGEL exakt analog messen. Wenn deine Prüfung eher >> langsam (einige hundert Hz) ist, geht das. > > Hab ich auch schon drüber nachgedacht aber dachte, dass Digital-In's > erst mal einfacher zu handhaben sind. Sind sie auch, wenn man keinen fertigen ADC + Software hat. Beim Arduino wäre das analogRead().
Falk B. schrieb: > Ich sagte, ein einfacher Spannungsteiler Ah, dachte ich es mir doch, dass wir irgendwo aneinander vorbei reden. So wie du es beschreibst ergibt es natürlich Sinn. Falk B. schrieb: > Arduino Der Raspberry Pi bietet einige Vorteile für mein Anwendungsfall: - Den Testablauf will ich in YAML schreiben und mit Python verarbeiten. - Alles was mit WiFi-Funktionalität zusammenhängt kann gut mit dem WiFi des Pi getestet werden - Per USB soll das Gerät programmiert werden können. - Per API sollen Tests angestoßen werden können. - Per Webinterface sollen Testergebnisse präsentiert werden. - CAN und I2C Nachrichtenüberwachung Alles das wird mit dem Arudino eher schwierig. Wofür ich wohl trotzdem ein dedizierten uC brauche ist eine genauere Zeitmessung von Signalen bzw. PWM-Messung.
rasz schrieb: > Siehe Anhang. Die Schaltung taugt garnichts. Mal eben ein Netzteil mit 6V an den Eingang, fliegt dank D2 der Raspberry auseinander. Vielleicht hat man auch Glück, dass die TVS-Diode mangels Strombegrenzung zuerst abraucht. Warum man einen Eingang unbedingt mit einem ESD-empfindlichen FET machen will, muss auch erklärt werden. In dem ganzen Palawer sehe ich nirgendwo eine klare Definition, wie die Eingangssignale aussehen / wo die Schaltschwellen liegen sollen.
Hättest du alles gelesen, hättest du verstanden, dass die zweite angehängte Schaltung dazu diente ein Missverständnis zwischen mir und Falk zu klären. Dass die nicht wirklich klappt war ja der Grund für meine Verwunderung. Aber danke für die sonst auch exzellent ausgeführte, konstruktive Kritik.
Beitrag #6477916 wurde von einem Moderator gelöscht.
rasz schrieb: > Eine Idee - siehe Anhang - ist es mit der > Eingangsspannung einfach ein MOSFET zu schalten. Die Schaltung ist nicht besonders schnell. Wenn Lastkapazität z.B. 15 pF ist, dann Trc = 150 ns. Das gilt für fallende Flanke. Das mag für langsame Signale noch passen, aber nicht für Taktsignal. Also je nachdem was übertragen wird. Die meisten Komparatoren sind noch schlechter. Z.B. LM339 und LM393 haben typisch 1,3 us Verzögerung. Es gibt aber auch schnelleren. Z.B. LM319 mit typisch 80 ns. Besser scheint Logik zu sein. Z.B. 74HC4050 kann Vin herstellerabhängig bis 16V (TI, NXP), bis 15V (ST), bis 18V (Toshiba) ertragen, unabhängig von Vcc. Dabei selbst bei 2V Vcc ist Verzögerung nur 25 ns typisch. Bei 3V3 sollte Verzögerung etwa halbieren. Nicht verwechseln mit CD4050: die können zwar (in Vers. B) bis 20V Vin ertragen, aber Verzögerung ist schon bei 5V Vcc 70 ns typisch, für 3V3 kann man mit 120 ns rechnen. Falls Vin 7V nicht übersteigt, kann Serie 74VHC gut passen. rasz schrieb: > Der Raspberry Pi bietet einige Vorteile für mein Anwendungsfall: > - Den Testablauf will ich in YAML schreiben und mit Python verarbeiten. Das ist egal. Auch wenn du alles auf Assembler schreibst, kann 74HC4050 gut arbeiten.
:
Bearbeitet durch User
Maxim B. schrieb: > Das ist egal. Auch wenn du alles auf Assembler schreibst, kann 74HC4050 > gut arbeiten. Na dann mal viel Spaß mit Assembler auf dem Raspberry PI!!! Thema verfehlt!
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.