Spannungscodierte Versionserkennung

Gast #684546
Lesenswert?

Guten Morgen zusammen!

Ich bin neu in der Elektronikentwicklung und habe in einem Lastenheft 
folgendes stehen:

Hardwareversionserkennung:
Die Version der Hardware ist spannungscodiert. Der Spannungswert für die 
Hardwareversion ergibt sich durch:
U = (2.5V/128)*Versionsnummer
Insgesamt sind auf der Leiterplatte die Hardwareversionsnummern 0 bis 
127 vorzusehen. Die zu verwendende Verionsnummer ist gesondert geregelt.

Nun meine Frage: Hat von Euch schon mal jemand so was ähnliches gemacht? 
Oder hat einer eine Idee, wie man das verwirklichen könnte? Eventuell 
mit Dip-Schaltern?

Ich danke Euch jetzt schon für Eure Antworten.

Gruss Patrick

P.S. Warum das so gewünscht wird, tut hier nichts zur Sache.
#684554
Lesenswert?

Patrick wrote:
>
> Oder hat einer eine Idee, wie man das verwirklichen könnte? Eventuell
> mit Dip-Schaltern?
>


Hallo Patrick,
wir haben hir auch solche "Codierungen" auf den Baugruppen.
Je nach Version werden festgelegte Wiederstände bestückt/nichtbestückt.
Das sind ganz normale SMD-Teile, so das es keine Schalter gibt...
Das ist allerdings eine "digitae" Variante...

nitram
Gast #684567
Lesenswert?

ich hab sowas schon mal gemacht mit einem Spannungsteiler und 
wechselbaren Widerständen. Allerdings mußt du dann die Toleranzen 
berücksichtigen und die erlaubten Spannungsbereiche ausrechnen und einem 
Wert zuweisen.
#684666
Lesenswert?

Patrick wrote:
> Würde es so grundsätzlich funktionieren, wie im Anhang gezeichnet?

So und schon gibts böses Blut mit der Materialbeschaffung, weil die 
extra für Dich neue Präzisionswiderstände abseits der E24-Reihe anlegen 
müssen.

Oder die drücken Dir einfach die hier in die Hand:

1k, 2k, 3.9k, 8.2k, 16k, 33k, 62k, 130k


Ein 74HC165 ist viel billiger als ein Haufen Präzisionswiderstände.


Peter
#684676
Lesenswert?

@ Peter Dannegger (peda)

>Ein 74HC165 ist viel billiger als ein Haufen Präzisionswiderstände.

Naja, aber der braucht drei Pins zur Ansteuerung, einen Spannungsteiler 
kann man über einen freien ADC-Kanal einlesen.
Ich frage mich, wer 128! Hardwareversionen kodieren will. 16 oder 32 
sind mit normalen Widerständen vielleicht noch machbar, darüber hinaus 
wirds unsicher bzw. man braucht sehr genaue Widerstände.

Ausweg. Einige Prozessoren werden digital mit Reset-Werten versorgt, 
indem man den Datenbus mittels Pull-up /Down definert treibt. Am Start 
liest der Prozessor die Daten ein und reagiert entsprechend. Im Betrieb 
stören die Pull-Up/Downs dann nicht weiter.

MFG
Falk
#684684
Lesenswert?

Patrick wrote:
> Ich glaub ein 8bit AD-Wandler ist genau das richtige.

Nein, der ist völlig ungenügend, Du hast keinerlei Erkennungssicherheit!

Es sei denn, Du willst ihn als Zufallsgenerator verwenden.

Außerdem ist Deine Schaltung stark nichtlinear, da dürfte selbst ein 
10Bit-ADC zu schlecht sein.


Peter
#684690
Lesenswert?

Falk Brunner wrote:
> @ Peter Dannegger (peda)
>
>>Ein 74HC165 ist viel billiger als ein Haufen Präzisionswiderstände.
>
> Naja, aber der braucht drei Pins zur Ansteuerung

Latch und Clock kann man bestimmt mit anderen Ausgangspins multiplexen 
(z.B. SPI), bleibt nur ein Eingangspin übrig.


Peter
Moderator Persönliche Seite #684741
Lesenswert?

Ich hätte eher einen 1-wire EEPROM (gibt's sogar als OTP) genommen.
Da haste gleich noch eine Seriennummer mit dabei.

Wie Falk schon schrieb, so'ne Methode mag für 16 oder 32 Werte gehen,
für 127 stolperst du einfach über allerlei Genauigkeitsprobleme
(die Widerstände selbst, die Auflösung des AD-Wandlers, selbst wenn
du von den 8 bits nur 7 benutzt).
Gast #684881
Lesenswert?

>Und was sollen die OPVs?

Siehe hier Seite 24/39:
www.ant.uni-bremen.de/teaching/slab/adda_ss2007_de.pdf

Der zweit OP ist nur, um das Vorzeichen zu wechseln.

>Woher die kühne Aussage?
Seien wir mal ehrlich. Ist eine Verionserkennung so wichtig, dass ich 
alle Genauigkeiten berücksichtigen muss? Ich glaube kaum.

>Bildformate
Wenn ich eine Software zu Umwandlung des Bildformates zur Hand hätte, 
hätte ich das natürlich für Dich gemacht.
Gast #684916
Lesenswert?

Warum kein normales Spindelpoti? Klar, das muss natürlich bei der
Herstellung abgelichen werden, dafür sind keine engtolerierten
Einzelwiderstände erforderlich.

Anderer Punkt: Bei allen bisher vorgeschlagenen Lösungen (auch bei
meiner) brauchst du auch noch eine Referenzspannungsquelle mit einer
Genauigkeit von deutlich besser als 1/128. Zusammen mit den Wider-
ständen, einem Opamp als Impendanzwandler und ein paar Kondensatoren
zur Störunterdrückung ist schon ein Großteil der Platine nur mit der
Versionsabfragemöglichkeit gefüllt.

Wie sieht es aus mit Temperaturdrift und Alterung? Mir erscheint eine
Genauigkeit von 1/128 für die gesamte Kette von Referenzspannungs-
quelle, Widerstände, Impedanzwandler und A/D-Umsetzer (der seinerseits
wider von einer Referenzspannungsquelle abhängt) ziemlich
abenteuerlich.

Könnte man nicht wenigstens zwei Ausgänge vorsehen, die jeweils
einen von 16 Spannungswerten annehmen? Die Genauigkeit von 1/16 ist
problemlos machbar, und es ist sogar Platz für 256 Versionsnummern.
#684917
Lesenswert?

@ Patrick (Gast)

>www.ant.uni-bremen.de/teaching/slab/adda_ss2007_de.pdf

Wenn du den Link VOLLSTÄNDIG mit http:// reinstellst, wird er 
automatisch als Link angezeigt.

>Der zweit OP ist nur, um das Vorzeichen zu wechseln.

Sind beide unnötig. Der R2R DAC spuckt auch so eine positive Spannung 
aus.

http://www.avr-asm-tutorial.net/avr_de/avr_dac.html

>>Woher die kühne Aussage?
>Seien wir mal ehrlich. Ist eine Verionserkennung so wichtig, dass ich
>alle Genauigkeiten berücksichtigen muss? Ich glaube kaum.

AHHHH!!! Hast du ein paar Smilies vergessen? Ohhhhhh Mann, die Studenten 
von heute . . ., naja sichert meinen Arbeitsplatz.

>>Bildformate
>Wenn ich eine Software zu Umwandlung des Bildformates zur Hand hätte,
>hätte ich das natürlich für Dich gemacht.

Legastheniker?

Zitat aus dem Wikiartikel

"Das weit verbreitete Schaltplan- und Layoutprogramm  EAGLE bietet 
direkt die Möglichkeit, Schaltpläne und Layouts als PNG-Bild zu 
exportieren (Menu File->Export->Image). Aber bitte nicht die Auflösung 
zu hoch einstellen! Die Voreinstellung von 150 dpi ist meist optimal!"

>Hier nochmal für Falk Brunner.

Es ist sinnlos solche kleinen Bilder doppelt zu senden. Es ging mir 
darum, dass du es beim nächsten Mal richtig machst.

MFG
Falk
#684919
Lesenswert?

@ yalu (Gast)

>Warum kein normales Spindelpoti? Klar, das muss natürlich bei der
>Herstellung abgelichen werden,

EBEN! Weisst du was das kostet in grossen Stückzahlen?

> dafür sind keine engtolerierten
>Einzelwiderstände erforderlich.

Die platziert der Automat allein.

>Anderer Punkt: Bei allen bisher vorgeschlagenen Lösungen (auch bei
>meiner) brauchst du auch noch eine Referenzspannungsquelle mit einer
>Genauigkeit von deutlich besser als 1/128.

Nöö, er muss nur die Referenz des ADC anzapfen, die kann dann sogar 
ungenau wie Sau sein. -> Ratiometrische Messung.

> Zusammen mit den Wider-
>ständen, einem Opamp als Impendanzwandler und ein paar Kondensatoren
>zur Störunterdrückung ist schon ein Großteil der Platine nur mit der
>Versionsabfragemöglichkeit gefüllt.

;-) HighTec.

MFG
Falk
Gast #684925
Lesenswert?

Die Referenzspannung wird von einem MP430 erzeugt. Die Bauteile sind 
alle SMD, brauchen also nicht all zu viel Platz. Wie gesagt, die 
Genauigkeit ist nicht kritisch. Davon hängt ja keine massgebende 
Funktion der ganzen Schaltung ab. Wenn 256 Versionsnummern gefragt 
wären, hätte ich einen Handelsüblichen 8-bit D/A-Wandler verwenden 
können. Da würden die ganzen Widerstände und OPs wegfallen. Aber in so 
einem Baustein ist auch nichts anderes drin wie in meiner Schaltung.
Gast #684935
Lesenswert?

@Falk
>die Studenten von heute
Wer bitte sagt, ich sei Student?

>Sind beide unnötig. Der R2R DAC spuckt auch so eine positive Spannung aus.
Aber ist der Wert der Spannung auch gleich der Formel
U=(2.5V/128)*Versionsnummer?
Das war gefordert (siehe erstes Posting)

>dass du es beim nächsten Mal richtig machst.
Ich werds versuchen ;-)
#684936
Lesenswert?

Selten so einen hohen Aufwand für eine derart einfache Aufgabe gesehen.


Wenns denn unbedingt analog sein muß, nimm doch nen ATtiny24, hängt an 
einen Port die 7 Jumper ran und ab damit auf die PWM, nen RC-Glied 
dahinter, fertisch.

Der ATtiny24 wird dann mit der gleichen Spannung betrieben, die der 
nachfolgende ADC als Referenz nimmt und schon sind auch sämtliche 
Genauigkeitsanforderungen vom Tisch.
Der ADC ist dann mindestens 10Bit, damit man die Schwellen immer genau 
zwischen 2 Spannungspegel setzen kann.

Hauptsache, zwischen ATtiny24 und ADC sind die Massepotentiale gut 
verbunden.

Alternativ kann man aber auch die PWM übertragen und per Timer das 
Tastverhältnis messen lassen. Dann sind Spannungsdifferenzen egal.


Peter
#684942
Lesenswert?

@ Patrick (Gast)

>alle SMD, brauchen also nicht all zu viel Platz. Wie gesagt, die
>Genauigkeit ist nicht kritisch.

So ein Blödsinn! Warum dann der Affentanz mit 128 Versionsnummern?
Dein PC kann ja ruhig alle 3 Stunden abstürzen, ist ja nicht so 
tragisch.

>Funktion der ganzen Schaltung ab. Wenn 256 Versionsnummern gefragt
>wären, hätte ich einen Handelsüblichen 8-bit D/A-Wandler verwenden

Ohje Ohje. Dir ist das Problem scheinbar nicht ganz klar.

1.) es muss eine Analogspannung mit 1/128 Genauigkeit erzeugt werden. 
Das kann auch ein 8 Bit DA-Wandler.

2.) Diese Spannung muss mit einem AD-Wandler wieder genau gemessen 
werden.

Nur ist es "etwas" illusorisch anzunehmen, dass ein 8 Bit AD-Wandler so 
ohne weiteres fehlerfrei ein Signal des 7 Bit DA-Wandlers erfassen kann.
Immerhin gibt es Quantisierungsrauschen (Quantisierung) , von 
weiteren Nichtlinearitäten BEIDER Wandler mal ganz zu schweigen.

>können. Da würden die ganzen Widerstände und OPs wegfallen. Aber in so
>einem Baustein ist auch nichts anderes drin wie in meiner Schaltung.

Wenn du meinst.

MFG
Falk
Gast #684946
Lesenswert?

>Wie gesagt, die Genauigkeit ist nicht kritisch. Davon hängt ja keine >massgebende 
Funktion der ganzen Schaltung ab.

Wenn du alle deine zukünftigen Lastenhefte so "interpretierst", dürften 
es nicht mehr viele werden. Aber vielleicht reicht dem Kunden ja 
tatsächlich eine Aussage wie: " Die Hardwareversion liegt mit 66% 
Wahrscheinlichkeit zwischen 64 und 127..."

Oliver
#684951
Lesenswert?

Patrick wrote:
> Ich bau mir einfach meinen eigenen 7-bit DA-Wandler nach angehängtem
> Schaltplan. Die Codierung kann ich dann über Jumper verändern. Die
> Genauigkeit kann ich vernachlässigen.

Witz komm raus, Du bist umzingelt.

Du willst also doch nur ne Zufallszahl und keine Versionsnummer.

Auch bei 7Bit-R2R müssen zumindest die höherwertigen Bits mit 
Widerständen besser 0,5% sein!


Peter
Gast #684953
Lesenswert?

>Das kann auch ein 8 Bit DA-Wandler.
Hier wird mir aber die Spannung so aufgeteilt: 
U=(2.5V/256)*Versionsnummer

>2.) Diese Spannung muss mit einem AD-Wandler wieder genau gemessen werden.
Ausgewertet wird sie mit dem MP430.

>Wenn du meinst.
Du selbst hast mir doch oben den Link geschickt. Zitat von der Seite:
"Kommerzielle Digital-Analog-Wandler haben solche R/2R-Netzwerke im IC 
integriert."
#684954
Lesenswert?

@ Patrick (Gast)

>>die Studenten von heute
>Wer bitte sagt, ich sei Student?

Was bist du dann?

>Aber ist der Wert der Spannung auch gleich der Formel
>U=(2.5V/128)*Versionsnummer?
>Das war gefordert (siehe erstes Posting)

Das benötigt max. 1 OPV als nichtinvertierenden Verstärker. Nimmt man 
einen Rail-2-Rail Typen braucht man keine negative Versorgungsspannung.

MFG
Falk
Gast #684961
Lesenswert?

> EBEN! Weisst du was das kostet in grossen Stückzahlen?

Patrick hat nichts davon geschrieben, wie groß die Stückzahlen sind.
Weil wir das nicht wissen, habe ich meinen Vorschlag ja auch als Frage
formuliert.

> Nöö, er muss nur die Referenz des ADC anzapfen, die kann dann sogar
> ungenau wie Sau sein. -> Ratiometrische Messung.

Ich hatte Patrick so verstanden (auch wenn er das zugegebenermaßen
nirgends geschrieben hat), dass das alles möglichst über eine einzige
Leitung (plus GND) funktionieren soll. Für den Fall, dass man zwei
Leitungen verwenden darf, habe ich ja eine andere Lösung gepostet, die
den achtfachen Störabstand aufweist.

>> Der zweit OP ist nur, um das Vorzeichen zu wechseln.
>
> Sind beide unnötig. Der R2R DAC spuckt auch so eine positive
> Spannung aus.

Der erste Opamp ist als Strom-Spannungs-Wandler geschaltet und ist bei
diesem Typ von DAC auf jeden Fall erforderlich, da die unteren
Kontaktschinen beide auf GND-Potenzial liegen müssen.
Gast #684963
Lesenswert?

Entweder hat der Autor von dem Lastenheft sich etwas verschätzt, oder er 
will dich testen. Ich würde mich auf jeden Fall mal mit dem in 
Verbindung setzen und sagen, dass das alles etwas umständlich ist.
#684970
Lesenswert?

Patrick wrote:
> @Peter
> Kein Kommentar.

Ich hoffe nur, daß Dein Chef keine Ahnung hat, was Du da für einen 
Unsinn verzapfst.

Wir haben auch auf Modulen Typerkennungen mit 8 Nullohmwiderständen an 
nem 8Bit-Port vorgesehen.
Allerdings streikt die Software, wenn auch nur einmal eine falscher 
Modultyp im falschen Slot erkannt werden würde. Und der Kunde würde 
entsprechen sauer reagieren.
Solche Spielchen, wie Du sie vorhast, können wir uns daher nicht 
leisten.


Vielleicht bist Du ja ein beserer Pokerspieler alse ein Entwickler, 
damit kann mancher auch sein Geld verdienen:

http://www.michaelkeiner.de/


Peter
#684971
Lesenswert?

@ yalu (Gast)

>Der erste Opamp ist als Strom-Spannungs-Wandler geschaltet und ist bei
>diesem Typ von DAC auf jeden Fall erforderlich, da die unteren
>Kontaktschinen beide auf GND-Potenzial liegen müssen.

Schon klar, aber die andere Schaltung des R2R DAC ist da wesentlich 
einfacher zu nutzen.

DA-Wandler

@ Gast123 (Gast)

>Entweder hat der Autor von dem Lastenheft sich etwas verschätzt, oder er
>will dich testen.

Oder es wurde, wie ein in good OLD Grmany mehr und mehr üblich ist, ein 
Lastenheft von einem Praktikanten/Absolventen/Theoretiker geschrieben, 
der wenig bis keine Ahnung von der Praxis hat. Entwicklen dürfn das dann 
"Billig-Ings" in Osteuropa oder Indien.

MFG
Falk
Gast #684977
Lesenswert?

>in good OLD Grmany
tja, kommt leider aus der Schweiz ;-)

>Allerdings streikt die Software
Deshalb suche ich eine Lösung ohne Software. Ich finde ein ATtiny ist 
schon etwas zu aufwendig, für so eine einfache Aufgabe
#684993
Lesenswert?

Bin zwar kein gelernter Hardwaredompteur, aber für mich als 
Softwareentwickler sind Versionsnummern täglich Brot.

Deswegen wundere mich, wie man auf die Schnapsidee kommen kann, die 
Versionsnummer über Jumper, oder - noch absurder - über Dipsitches 
einstellbar zu machen. Das Zeug kann sich ja schon beim Transport oder 
unvorsichtiger Handhabung verstellen...

Für Software ist die Versionsnummer ausschließlich an die Software 
selbst gebunden, bei Hardware mit µCs muß neben der Hardware-Version 
natürlich auch die Firmware-Version irgendwie mit in die 
Versionsunterscheidung mit eingehen.

Wenn kein µC vorhanden ist, würde ich extra für das Versionenszeug einen 
nehmen und einen Pin zur Ausgabe der Versionsnummer benutzen und der 
Servicetechniker hängt da sein Oszi dran und liest die 7 Bit der 
Versionsnummer ab und der Kittel ist geflickt.

Damit hat man die Auflösungsprobleme vom Hals und braucht nicht 
irgendwelches Kinderspielzeug auf die Platine zu packen, das einen im 
Zweifelsfall auf eine falsche Fährte setzt.

Zudem ist ein serielles, digitales Versionssignal ja letztlich auch eine 
Spannungscodierung, wenn man keine Ströme fließen läßt, oder?
#684998
Lesenswert?

Patrick wrote:

>>Allerdings streikt die Software
> Deshalb suche ich eine Lösung ohne Software.

Nein, die Software erfüllt hier eine Schutzfunktion.
Wenn nämlich ein 15000V-Modul in nem Slot steckt, wo nur ein 400V-Modul 
rein soll, dann krachts gewaltig.
Daher schaltet die Steuersoftware bei Fehlkonfiguration alle Module 
garnicht erst ein.


> Ich finde ein ATtiny ist
> schon etwas zu aufwendig, für so eine einfache Aufgabe

Zumindest bei Platzbedarf und Preis ist es am günstigsten und trotzdem 
am sichersten.

In C sind das etwa 5 Zeilen, die PWM zu starten und den Inputport in das 
PWM-Register zu laden.


Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren