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.
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
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.
Patrick wrote: > Nun meine Frage: Hat von Euch schon mal jemand so was ähnliches gemacht? Ne, sowas macht keiner. 127 Stufen, da sind ja schon 1% Widerstände zu schlecht. Sowas macht man binär. Und wenn die Pins nicht reichen, nen 74HC165 dahinter und seriell auslesen. Peter
Würde es so grundsätzlich funktionieren, wie im Anhang gezeichnet? Die Schalter S1 bis S7 sind dann DIP-Switches.
Fällt das nicht unter "Prinzip DA-Wandler"? Es müsste also ein R2R-Netzwerk sein. http://de.wikipedia.org/wiki/R2R Per Jumper/Lötbrücke liesse sich dann die Versionsnummer "einprogrammieren".
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
@ 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
Ich glaub ein 8bit AD-Wandler ist genau das richtige. Aber die haben alle 256 Abstufungen. Weiss jemand, ob es auch 7bit AD-Wandler gibt?
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
Äh. Ich meinte natürlich 8-bit DA-Wandler. Was ist ein Digipot?
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
Das R/2R-Netzwerk ist genau das, was ich brauche. Da kann ich mir selber ein 7-bit DA-Wandler basteln.
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).
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.
@ Patrick (Gast) >Dateianhang: cod.jpg (39,6 KB, 7 Downloads) Bildformate >Genauigkeit kann ich vernachlässigen. ??? Woher die kühne Aussage? Und was sollen die OPVs? Zum di Schaltung des ersten OPVs überaus merkwürdig ist. MFG Falk
Falk Brunner wrote: >>Genauigkeit kann ich vernachlässigen. > Woher die kühne Aussage? Wahrscheinlich genügt es, wenn er die Hardwareversion ,,nur so ungefähr'' erkennt. ;-)
>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.
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.
@ 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
@ 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
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.
@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 ;-)
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
@ 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
>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
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
>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."
@ 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
>Was bist du dann? Lesen bildet: >Ich bin neu in der Elektronikentwicklung
> 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.
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.
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
@ 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
>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
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?
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
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.