-         

Ergebnis 1 bis 8 von 8

Thema: Differenzspannungen am PIC ADC und USB Datenübertragung

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.02.2008
    Beiträge
    130

    Differenzspannungen am PIC ADC und USB Datenübertragung

    Anzeige

    "Analoge Signalaufbereitung für Differenzspannungen (OPs) zur Messung
    mit einem PIC-ADC und USB Datenübertragung."

    Hallo

    Im folgenden Projekt geht es mir darum eine Schaltung zu entwerfen und
    aufzubauen, um mit einem PIC18F2455 Differenzspannungen zu messen.
    Dabei soll die gesamte Schaltung über den USB-Bus mit Strom versorgt
    werden. Angestrebt ist die quasi simultane Messung von zwei
    Differenzspannungen mit einer Abtastrate von mindestens 10kHz pro
    Kanal.
    Zudem soll die Schaltung einigermaßen tolerant gegenüber Fehlern in der
    Benutzung sein, sprich nicht gleich beim ersten falschen Anschließen
    abrauchen.
    Die Signalverarbeitung für den ADC geschieht mit einer Reihe von
    OP-Verstärkerschaltungen.

    Der Analogteil ist dabei vom Eingang zum ADC in die folgende funktionale
    Einheiten aufgeteilt:

    Differenzverstärker -> Anti Antialiasing Tiefpassfilter ->
    Pegelverstärker -> Messbereichsverstärker -> PIC 10bit ADC

    Dazu gesellen sich noch der PIC (Digitalteil), die Spannungsversorgung
    und eine Referenz*spannungs*er*zeugung als Funktionsblöcke.

    Die Verstärker sind aus Platzgründen im Schaltplan nur einmal dargestellt.

    Im Anhang findet ihr den Schaltplan als PDF auf dem momentanen Stand.

    Meine Betrachtungen zu den einzelnen Blöcken und zur Auslegung werde
    ich in einzelnen Posts nach und nach zur Diskussion stellen.

    Ich möchte hier die Entwicklung dieser Schaltung dokumentieren und mit
    euch diskutieren. Für mich erhoffe ich, dass ich durch den einen oder
    anderen Tipp, vielleicht ein paar Stolpersteine um*gehen kann und so
    schneller zum Ziel komme. Dabei kann die Diskussion ruhig über das von
    mir realisierte hinausgehen. Wenn bestimmte Vorschläge nicht in meine
    Schaltung einfließen, ist das keine Wertung oder Ablehnung, könnte doch
    der nächste, der etwas ähnliches realisieren will, von den Ideen und
    Informationen profitieren.

    Grüße GeoBot
    Angehängte Dateien Angehängte Dateien

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.02.2008
    Beiträge
    130
    Hallo

    Ich habe, als ich angefangen habe diese Schaltung anzugehen, für mich
    ein paar Festlegungen getroffen. Diese sollen aber die Diskussion nicht
    einschränken.

    Die von mir verwendeten Teile sind entweder schon in meiner Bastelkiste
    oder lassen sich bei Reichelt bestellen. Aus der Kiste kommt vor allem für
    das Gehäuse und damit verbundenen ist ein für mich festes Platinenmaß.

    Ursprünglich wollte ich alles in Through Hole Technik aufbauen, um die
    Schaltungsteile auf dem Steckbrett testen zu können und anschließend
    die gleichen Bauteile in die Platine einzulöten. Aber so wie es jetzt aus-
    sieht passt die Schaltung dann nicht mehr in das vorgesehene Gehäuse.
    Es werden wohl auch SMD-Bauteile nötig sein.

    Als Controller werde ich einen PIC verwenden, da ich in meinem Umkreis
    Bekannte habe die auch mit diesen arbeiten. Zudem habe für ein früheres
    Projekt schon PICs programmiert und mit der Internetseite von sprut
    www.sprut.de gibt es eine meiner Meinung exzellente Unterstützung in
    deutscher Sprache, die ich auch nutze. Ich habe bereits vor ein paar
    Jahren ein Programmiergerät auf Basis des Brenner5 gebaut und mit der
    Software P18 problemlos erfolgreich eingesetzt. Damit möchte ich dann
    eine USB Boot Loader in den PIC brennen.

    Diese Schaltung realisiere ich da ich in der nächsten Zeit an mehreren
    Projekten arbeiten möchte, für die ich eine Spannungsmessung unter
    verschiedenen Randbedingungen benötige.
    Eines davon ist ein Protonen-Resonanz-Magnetometer
    http://perso.infonie.be/j.g.delannoy...Guidelines.htm
    bei dessen Aufbau und Abgleich die Nähe eines jeden 220V-Netzes (ca.5m)
    das Messsignal einfach komplett zudeckt. Deshalb geht es ab in den Wald
    und zur Messung lässt sich ein Laptop mit der Schaltung verwenden. Hoffe
    ich jedenfalls. Dies führt zu der Bedingung eines durch den USB-Bus
    gespeisten Gerätes.

    Grüße GeoBot

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.02.2008
    Beiträge
    130

    Differenzverstärker

    Hallo

    Hier nun meine Betrachtungen zur Auslegung des Differenzverstärkers.

    Da der Differenzverstärker die Schnittstelle für das Signal zur Umwelt
    darstellt, hat er neben seiner eigentlichen Funktion, die zu messende
    Differenzspannung in eine auf GND bezogene Spannung zu wandeln,
    noch die Funktion die restliche Schaltung vor Überlastungen durch
    äußere Einflüsse zu schützen.
    Das geschieht einmal durch die bidirektionalen Überspannungsschutzdioden
    D1, D2 vom Typ P6KE47CA die die maximale Eingangsspannung auf die
    Durchbruchspannung VBR von 44.7V bis 49.4V beschränken. Zudem bilden
    die Eingangswiderstände R1, R3 eine wirksame Strombegrenzung im
    Fehlerfall. Der vorgesehen Operationsverstärker TS914 von ST ist zudem
    intern gegen Latch-Up und 1kV ESD Entladungen abgesichert.

    Für den eigentlichen Messvorgang ist der Eingangswiderstand der
    Schaltung interessant. Um einen Bezug für die ermittelten Werte
    herzustellen betrachten wir ein Oszilloskop und finden dort die Werte
    1MOhm und 35pF für die Eingangsimpedanz. Der Eingangswiderstand
    für Gleichspannungen des Differenzverstärkers bildet aus den ent-
    sprechenden Ein*gangs*widerständen R1, R3 und den parallel dazu
    liegenden Widerständen der Spannungs*schutz*dioden D1, D2.
    Er beträgt mindestens
    Rein = R1 || RD1 = 42MOhm || 1MOhm = 977,52kOhm.
    Der Diodenstrom beträgt bei 0V Spannung 0A Strom und bei 42,2V sind
    es 1µA die Kennlinie scheint dem Diagramm nach in diesem Bereich linear
    zu sein . Daraus ergibt sich RD1 = 42,2V / 1µA = 42,2MOhm.
    In die Impedanz dürfte, neben den parasitären Kapazitäten der Bauteile,
    auch das Layout mit einen nicht unerheblichen Teil eingehen, so das
    Aussagen dazu erst nach Aufbau eines Prototyps zu machen sind.

    Die Verstärkung des Differenzverstärkers soll vDif=0,05=R2/R1 betragen.
    R1, R3 werden zu 1MOhm und R2, R4 zu 50kOhm gewählt. Bei Verwendung
    von Widerständen mit 0,1% Toleranz ist R5 zum Ab*gleich der Gleichlauf-
    eigenschaften mindestens mit einem Einstellbereich von ±0,4% aus*zu*legen.

    Dazu wird der Widerstandswert R2 durch eine Reihenschaltung von zwei
    Potentiometern R2_P1, R2_P2 und einem Festwiderstand R2_R realisiert.
    Die Tabelle 1 zeigt für einen 0,5% Einstellbereich die sich ergebenden
    Widerstandswerte und den minimal abstimmbaren Spannungsbereich.


    Tabelle1

    An den Eingängen INP+, INP- des Rail-to-Rail-OP dürfen Spannungen
    UINP+, UINP- im Bereich der Be*triebsspannung anliegen.
    Zur Berechnung dieser Verstärkerstufe wird von einer Betriebsspannung mit
    UOP1+ = 3V und UOP1- = -3V ausgegangen.
    Daraus ergibt sich eine maximal erlaubte Eingangsspannung
    ±UV1+/V1- = R1/(R1+R2)*±VOP1 =
    (50KOhm+1MOhm)/50kOhm * ±3V = 21 * ±3V = ±63V.
    Diese ist größer als die durch die Überspannungsschutzdioden definierte
    Durchbruchspannung VBR, so das UINP+, UINP- die Werte der Betriebs-
    spannung nicht erreichen können.

    Die maximal verarbeitbare Differenzspannung Ud = UV1+ - UV1- ist durch
    die maximale (minimale) Aus*gangs*spannung ±UOPout des OPs und die
    Verstärkung der der Schaltung vDif = R2/R1= 0,05 be*stimmt. Der Ausgang
    kann Spannungen von UOP1+ - 200mV = 2,8V und UPO1- +150mV = -2,85V
    bei einer Last von 10kOhm erreichen. ±UOPout wird für die weiteren
    Rechnungen mit ±2,8V festgelegt. Dann berechnet sich
    ±Ud zu ±Ud = 1/v * ±UOPout = 20 * 2,8V = ±56V.

    Grüße GeoBot

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.02.2008
    Beiträge
    130
    Hallo

    Wie komme ich an die Gehäuseinnenmaße?
    Wie oben schon mal erwähnt stammt vorgesehene Gehäuse aus meiner
    Bastelkiste. Ich hatte mir mal vier Stück davon günstigst bei Pollin gekauft.
    Leider gab es keinen Plan mit Maßen und auch eine Anfrage beim
    Hersteller erbrachte leider keine Infos. Mit meinem Messschieber komme
    ich auch nicht an die zur Befestigung der Platine vorgesehenen Gewinde.
    Also habe ich mir folgendes einfallen lassen.

    In das Gehäuse habe ich ein Blatt Millimeterpapier eingeklebt und auf
    einem Scanner mit der nötigen Schärfentiefe von einem Bekannten,
    meiner hatte die nicht, das Gehäuse gescannt.
    In einer Scannachse liefert der Scanner eine fast unverzerrte Abbildung.
    In der Bildmontage im Anhang die horizontale Achse. Mit GIMP lassen sich
    dann die Gehäuseinnenmaße und die Lage der Befestigungsgewinde
    genau genug ermitteln.
    Zur Kontrolle das Ganze 1:1 auf Karton gedruckt ausgeschnitten und im
    Gehäuse getestet.

    Grüße GeoBot
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken geh_use_montage_4bit_x0_5.jpg  

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.02.2008
    Beiträge
    130
    Hallo

    Abschätzung der benötigten ADC-Auflösung
    Um die 10 bit Auflösung des verwendeten ADC im PIC in irgend eine
    Beziehung setzen und einordnen zu können, lässt sich meiner Meinung
    nach gut folgender Vergleich anwenden.

    Eine Oszilloskop-Röhre hat eine Darstellungsfläche von 10cm x 8cm. Die
    Lage des Elektronen*strahls lässt sich auf ca. 0,2mm genau abschätzen.
    Daraus folgt, das sich über die 80 mm Spannungs*achse 400 ver*schieden
    Lagen unterscheiden lassen. Damit kann man sagen, dass eine Auf*lösung
    von 9Bit mit 512 Schritten ausreichen sollte um eine dem Oszilloskop
    entsprechende Auflösung zu er*reichen.

    Diese Betrachtung macht keine Aussage über die Genauigkeit einer Messung.

    Antialiasing-Filter
    Das Filter wird momentan nicht implementiert da die Randbedingungen
    fSample = 10kHz => fSample/2 = 5kHz und fg=4kHz zu einem momentan
    nicht vertretbaren Aufwand (Filterordnung>6) führen. Sollte sich zeigen,
    dass mit der fertigen Schaltung eine höhere Samplerate möglich ist, wird
    das Filter als Huckepack-Platine nachgerüstet falls Filterordnung <= 4. Eine
    Schnittstelle wird dazu im Layout vorgesehen.

    Grüße GeoBot

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.02.2008
    Beiträge
    130
    Hallo

    Pegelverstärker

    Die Aufgabe dieser Verstärkerstufe ist dafür zu Sorgen, dass der OP des
    Messbereichsverstärkers nur innerhalb seines begrenzten Span*nungsver-
    sorgungs*bereichs von 0 – 3,3 V angesteuert wird. Zu*dem ver*schiebt er den
    GND der Mess*span*nung auf die virtuelle Masse des Mess*bereichs*ver*-
    stärkers.
    Dieser eingeschränkte Bereich des Messbereichsverstärkers ergibt sich aus
    dem Eingangs*spannungs*bereich des PIC zwischen GND und seiner Ver-
    sorgungsspannung und dem unver*meidlichen Spannungsdropout des
    Referenz*span*nungs*reglers.
    Als maximale Eingangsspannungen können im Worst-Case in dieser Stufe
    +-5,25V auftreten, wenn die maximale VUSB Spannung anliegt und der OP
    der vorhergehenden Stufe und die Spannungs*in*vertierung der Versorgungs-
    spannung als ideal angenommen werden.
    Es muss also ein Eingangsspannungsbereich von 10,5V auf einen Ausgangs-
    spannungsbereich von 3,3V komprimiert werden. Das führt zu einem Ver-
    stärkungsfaktor vPeg = 3,3V/10,5V = -0,3142.
    Da wir beim Differenzverstärker eine Ausgangslast von mindestens 10kOhm
    angenommen haben, muss der Eingangswiderstand dieser Stufe >= 10kOhm
    sein. Deshalb wählen ich R5=12kOhm und be*rechne die restlichen Werte in
    Tabelle 2 nach dem in Skizze 1 gezeigten Schema.


    Skizze 1


    Tabelle 2

    Grüße GeoBot

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.02.2008
    Beiträge
    130
    Hallo

    Zur Referenzspannungserzeugung

    Der ADC des PIC benötigt für einen ordnungsgemäßen Betrieb eine untere
    und obere Referenz*spannung. Wobei die Untere der Zahl Null und die
    Obere der Zahl 2^10-1 entspricht.
    Diese kann wahlweise die Betriebsspannungen des PIC sein also GND und
    VBUS oder es werden die externen Spannungseingänge VREFH „Reference
    Voltage High“ und VREFL „Reference Voltage Low“ verwendet. Dabei sind
    einige Randbedingungen zu beachten. Die VREFH muss zwischen GND und
    VBUS und die untere Referenzspannung VREFL darf zwischen GND-0,3V
    und VBUS-0,3V liegen. Zudem muss VREFL kleiner als VREFH sein und die
    Spannungsdifferenz zwischen den Referenzen muss bei Betriebs-
    spannungen von 3V und darüber mindestens 3V be*tragen.

    Würde man als Referenzspannungsbereich die Betriebsspannung des
    Messbereichsverstärkers wählen hätte man auch bei Rail-to-Rail OPs mit
    verlorenen Bits zu rechnen.
    Bei 10 Bit Auflösung und 3,3V Referenzspannung entspricht einem Bit eine
    Spannung von ca. 3,223 mV. Die OPs vom Typ TS914 haben einen
    Ausgangspannungshub der bei einem Last*wider*stand von 10kOhm
    spätestens 200mA unter der positiven Versorgungsspannung und
    mindestens 150mA über GND endet. Das heißt man verliert mit
    350mV / 3,223V = 109 Werte ca. 10% des Mess*bereichs.

    Um dies zu vermeiden werden die Referenzspannungen aus zwei OPs
    IC3_C, IC3_D gewonnen, die auf dem gleichen Chip wie die Ops IC3_A,
    IC3_B des Messbereichsverstärkers implementiert sind. Der erste ist so
    be*schaltet, dass er URef+ = 3,3V - 200mV = 3,1V und der andere
    URef- = 0V + 150mV = 150mV liefert. Da zwischen ist ein Widerstands-
    netzwerk geschaltet, dass die virtuelle Masse ADCG = 1,475V für den
    Pegel*ver*stärker erzeugt.

    Ich hoffe das dies funktioniert. Meine Hoffnung stützt sich dabei darauf, daß
    die OPs zur Referenz*spannungs*erzeugung auf den gleichen Chip sitzen wie
    die OPs des Messbereichsverstärkers. Deshalb spekuliere ich darauf, dass
    die Fertigungstoleranzen zwischen den OPs sehr klein sind und alle OPs die
    gleiche Temperatur sehen.
    Zudem sollten alle 4 OPs die gleiche Versorgungsspannung sehen und so
    Schwankungen derselben über eine Art „Common Mode Rejection” das
    Verhältnis der Ausgangsspannungshübe der OPs konstant halten.

    Die Widerstände R20, R21 und der Widerstand R19 am Messbereichsver-
    stärker dienen dazu, bei Bedarf die Aus*gangs*be*lastung der OPs ab-
    stimmen zu können, um den Ausgangsspannungshub anzugleichen.

    Um die virtuelle Masse sehr exakt einstellen zu können, stellen zwei
    Spannungsteiler R15, R17 und R16, R18 jeweils eine Spannung
    UR+ = R15/(R15+R17)*URef und UR- = R16/(R16+R1 * URef,
    die ein paar 100mV über und unter der Spannung ADCG liegen, bereit.
    Werte sind in Tabelle 3 aufgeführt. Mit dem Potentiometer
    R19_P = 20kOhm zwischen diesen beiden Spannungen lässt sich ADCG
    sehr genau auf (1/2)*URef einstellen.


    Tabelle3

    Grüße GeoBot

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.02.2008
    Beiträge
    130
    Hallo

    Auf zum Messverstärker.

    Der Messbereichsverstärker dient dazu einen Ausschnitt aus dem vom
    Differenz.- und Pegel*ver*stärker aufbereiteten Differenzspannungsbereich
    auf den Referenzspannungsbereich des ADC ab*zu*bilden. Es soll möglich
    sein drei Bereiche ±400mV ±4V und ±40V mit jeweils 2^10 Worten zu
    digitalisieren.

    Um eine automatische Messbereichsumschaltung durch den PIC zu
    realisieren wird einer der die Ver*stärkung bestimmenden Widerstände R9
    so realisiert das er durch zuschaltbare Parallel*wider*stände R8, R10
    ver*ändert werden kann.

    Der Differenzspannungsbereich Ud = UV1+ - UV1- geteilt durch den
    Referenzspannungsbereich Uref = Uref+ - URef- ergibt die geforderte
    Gesamtverstärkung vGes = vDif * vPeg * vMes der drei Verstärker*stufen.

    Daraus berechnet sich dann die, in Tabelle 4 tabellarisierte, für einen
    Messbereich einzustellende Verstärkung für den Mess*be*reichs*verstärker
    vMes = vGes / (vDif * vPeg).


    Tabelle 4

    Bei einem Messbereich ±Ud = 0,4V mit einer Verstärkung vMes=234,7231
    reduziert sich die Band*breite fg des Messverstärkers auf
    fg = fGBP / vMes = 0,8MHz / 234,7231 = 3,408kHz.

    Es ist zu überlegen, die für die Auslegung des Antialiasing-Filters gemachte
    Annahme von fg = 4kHz zu ändern oder unter Beibehaltung der Bandbreite
    den den Messbereich so zu er*weitern, dass die Verstärkung vMes kleiner
    gleich 200 wird.

    Zur Dimensionierung des Widerstandsnetzwerks R7, R8, R9, R10 wird als
    Ausgangspunkt R7 zu 100kOhm festgelegt. Die Drain-Source Widerstände
    der n-MosFETs T3, T4 haben im aus*ge*schalteten Zustand UGS=0V einen
    geschätzten Wert von 6MOhm. (Zero Gate Voltage Drain Current=10µA bei
    einer Drain Source Spannung von 60V laut Datenblatt). Im eingeschalteten
    Zu*stand ist mit 0,5Ohm zu rechnen. In der weiteren Rechnung werden
    diese als vernachlässigbar an*ge*sehen.

    Als nächstes wird R| | = R7 / (vMes – 1), welcher mit dem Widerstand R7
    den verstärkungs*be*stimmenden Spannungsteiler des Messbereichsver-
    stärkers bildet, für die festgelegten Verstärkungs*faktoren vMes bestimmt.
    Um die Verstärkung zu erhöhen, wird mit den FETs jeweils ein weiterer
    Wider*stand R10 = (R||*R9) / (R||-R9) und
    R8 = 1 / ( (1/R||) - (1/R9) - (1/R10) ) parallel zu R9 geschaltet. (Tabelle 5)


    Tabelle 5

    Um Variationen in der Referenzspannung und den Verstärkungsfaktoren
    des Differenz und Pegel*ver*stärkers ausgleichen zu können ist R7 mit einem
    Festwiderstand R7_R und einem Potentiometer R7_P abgleichbar aus*ge-
    führt. Für einen Variationsbereich für R7 von ±10% ergeben sich die, in
    Tabelle 6 dargestellten, folgenden prozentualen Änderungen der
    Verstärkung.



    Tabelle 6

    Dies führt auf folgende Bauteilwerte für R7 in Tabelle7.


    Tabelle 7

    Die Widerstände R8, R9, R10 (Tabellen 8 bis 10) werden mit Potentio-
    metern versehen um die Bauteiltoleranzen aus*zu*gleichen. Ein Stellbereich
    von ±2% sollte ausreichen.


    Tabelle 8

    Tabelle 9

    Tabelle 10

    Grüße GeoBot

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •