Neueste Beiträge

#11
avatar_Peter
Elektronik allgemein / Aw: Operationsverstärker : seh...
Letzter Beitrag von Peter - 21.08.2023, 22:28:50 CEST
Das ergibt: \( \frac{5A}{1024} = 0,00488A \) oder 4,88mA
#12
O
Elektronik allgemein / Aw: Operationsverstärker : seh...
Letzter Beitrag von Ottmar - 21.08.2023, 20:57:12 CEST
Stimmt Peter! daumen_hoch
Klar doch 4096mV/1024 = 4mv-> 0,00488mA wegen der Masseinheit in A und weil's gerechnet ist (=5A/1024).
#13
avatar_Peter
Elektronik allgemein / Aw: Operationsverstärker : seh...
Letzter Beitrag von Peter - 21.08.2023, 20:38:58 CEST
Zitat von: Ottmar in 21.08.2023, 20:28:06 CESTLegst Du z.B. Vref des ADC auf 4,096V und Vout des OPA bei 5A Messtrom  mittels der Gegenkopplung (Verstärkung des OPA) auf=4,096V so hast du bei einem 10Bit-ADC eine Auflösung von 4096mv/1024 = 2mV /Digit.
Indem 5A /1024 = 0.00488mA (rechnerisch) entspricht, ist dies auch Deine Auflösung je Digit/2mV.
Ergo: ADRESH:L des ADC * 0,00488mA=Imess
Den Offset des OPA kann man entweder Vernachlässigen oder subtrahieren oder einfach das LSB (Bit0) auf 0 setzen.

Grüße Ottmar
Ich komme hier auf 4mV/Digit und
auf 4,8mA.

#14
O
Elektronik allgemein / Aw: Operationsverstärker : seh...
Letzter Beitrag von Ottmar - 21.08.2023, 20:28:06 CEST
Noch zum Thema OPA:
Auch bei einer Betrachung von  "Rail to Rail" eines OPA ist dessen Ausgangswiderstand zu berücksichtigen. Laut Datenblatt,  Figure 3a, werden bei Vcc=+5V diese 5V nur dann am Ausgang erreicht, wenn dieser keinen Ausgangsstrom liefern muß. Sobald ein Strom fließt bricht Vout um ca.  ca. 1,2V/5ma ein. Um auch bei größerer Stromlast annähernd Rail to Rail zu erreichen, müßte ein niederohmiger NMOS dem Ausgang nachgeordnet werden

Das "Rail to Rail" hat also nur für sehr geringe Ausgangsströme Gültigkeit, was in der Regel für den  Betrieb zusammen mit MCU's ausreichend ist. Bei einer LED kommt es ja nicht auf "Rail to Rail" an.

Eine Frage: Wie soll Vout des OPA von Deiner Schaltung weiterverarbeitet werden? Im ADC? Dann gibt es einfache Lösungen um den Offset am Eingang und damit die Auswirkungen am Ausgang auszugleichen: Abgleich mittels Software!

Doch noch zum ADC:

Verstärkungsfaktor/Anpassung an ADC: Es ist nicht so schwierig die Verstärkung eines OPA so anzupassen, dass z.B. 1 digit des ADC 10mA Auflösung entspricht.

Legst Du z.B. Vref des ADC auf 4,096V und Vout des OPA bei 5A Messtrom  mittels der Gegenkopplung (Verstärkung des OPA) auf=4,096V so hast du bei einem 10Bit-ADC eine Auflösung von 4096mv/1024 = 2mV /Digit.
Indem 5A /1024 = 0.00488mA (rechnerisch) entspricht, ist dies auch Deine Auflösung je Digit/2mV.
Ergo: ADRESH:L des ADC * 0,00488mA=Imess
Den Offset des OPA kann man entweder Vernachlässigen oder subtrahieren oder einfach das LSB (Bit0) auf 0 setzen.

Grüße Ottmar
#15
O
Projekte und Eigenbau / Aw: Robot-Car-Projekt
Letzter Beitrag von Ottmar - 21.08.2023, 12:53:23 CEST
Hallo picass,

es eilt ja nichts! Ich weiß ja nicht wieviele Sensoren Du für Dein Kellerprojekt verbauen möchtest. Zu 100% bin ich mir sicher, daß diese Aufgabe selbst von einem einfachen Midrange-PIC erledigt werden kann.  Da müssen eben nur die Kommunikationsmöglichkeiten zu den Sensoren/Pheripheriegeräten und damit die erforderliche Pinzahl passen.

Gute Zeit! - Ottmar
#16
O
Layoutsoftware und Platinen / Aw: Platinenlayout Miniaturisi...
Letzter Beitrag von Ottmar - 20.08.2023, 21:34:25 CEST
Hallo picass
Eine Platzersparniss wäre möglich, wenn die drei 7-Segmentanzeigen diirekt nebeneinander angereiht werden. Nur wenige Bauteille wären noch notwendigt, würde die Anzeige per Multiplexing angesteuert (vopn der weiteren Pheripheri mal abgesehen) z.B.:

1 x 18F14K22 für die Ansteuerung des BCD zu 7Seg. Decoders
1x HC4511 liefert die  Treiber für die 7-Segment
7 x Vorwiderstände zur Strombegrenzung der Segmente
3 x Treibertransistoren für die gemeinsame Anode/Kathod z.B. BC327 o.ä
3 x Basisvorwiderstände für die BCxx

Damals wurde die abgebildete Anzeige an mit einem 16F628 experimentiell betrieben und ist jetzt das Anzeigemodul in der Bastelkiste, wenn es mal schnell was anzuzeigen gilt.
Das Video zeigt wie mit zunehmender Multiplexfrequenz die Anzeige schlussendlich klar lesbar ist.
Das Bild zeigt den Aufbau des Moduls. Die Rückseite ist nicht sehenswert, da dort ein hässlicher Drahtverhau die Verbindungen herstellt.

Ottmar
#17
avatar_Peter
Layoutsoftware und Platinen / Aw: Platinenlayout Miniaturisi...
Letzter Beitrag von Peter - 20.08.2023, 19:13:55 CEST
Wenn technisch nichts dagegen spricht, kann man Leiterbahnen bis runter auf 0,2 mm (Millimeter) und
Abstand zueinander auch 0,2 mm machen.
SMD gehört nach unten. So verlierst du viel an Platz durch die Durchkontaktierung. Wieso wird dadurch der
Schaltplan unleserlich ? Oder das Layout ? Durch die ganzen Durchkontaktierung wird ein Layout unleserlicher,
als wenn man es auf eine Seite macht. Die Bauteile die oben sind, sind im Layout schwarz dargestellt und die SMD Bauteile
die auf der Unterseite liegen, grün dargestellt. So bei Target. Das ist eigentlich gut lesbar. 
Was sollen eigentlich die dicken Leiterbahnen rechts unten? Fliest da soviel Strom das die so dick sein müssen ?
Ansonsten Platzverschwendung. Die Anbindung zu den 7-Segmentanzeigen könnte man über SPI machen. Dann hast du
einen zusätzlichen Controller auf der Anzeigenplatine und auf der Hauptplatine kannst du direkt an den PIC gehen.
Spart so die ganze Stiftleiste. Dadurch spart man auch etwas Platz.
Das fällt mir auf die Schnelle ein beim groben darüber schauen.
#18
P
Layoutsoftware und Platinen / Platinenlayout Miniaturisierun...
Letzter Beitrag von picass - 20.08.2023, 18:25:24 CEST
Aus aktuellem Anlass, aber auch grundsätzlich beschäftigt mich das Thema der ,,Noch-weiter-Verkleinerung" von Platinen-Layouts. Aktuell ist es die bebildert vorgestellte Schaltung eines PICs, welcher über einen OP ein Messsignal einliest und den Wert auf einer dreistelligen LED-Anzeige ausgibt. Die Schaltung funktioniert prima, aber sie könnte durchaus kleiner sein, weil der Platz am angestrebten Einsatzort (Armaturenbrett Auto) arg knapp ist. Das Layout der beiden Platinen – PIC / Anzeige – hatte ich schon vielfach überarbeitet und fand unter Eagle das platzmäßig schon sehr ausgefuchst. Aber nach Erhalt und Bestückung der Platinen scheint da doch noch viel Luft zu sein. Dieser Widerspruch: unter Eagle alles gedrängt voll // in der Realität doch Platz treibt mich nun um und ich suche nach Möglichkeiten weiterer Miniaturisierung.

Da hatte ich bislang so diverse ,,Vorgaben" für Layout-Erstellung:
- SMD is klar, aber nicht noch kleinere IC-Gehäuse
- Widerstände, Kondensatoren, etc. im 1206-Gehäuse, nur in wenigen Ausnahmefällen kleiner, das wird mir sonst zu fummelig
- SMD Elkos: ja
aber gettz:
- ,,normale" Leiterbahnen nach Möglichkeit 0,6 mm, sonst auch 0,4 mm
- Versorgungs-Layer (plus / minus / GND) möglichst 1,27 mm
- keine Leitungen zwischen IC-Bein'chen hindurch
- bislang nur zweiseitiges Leiterbahn-Layout, also auf Ober- und Unterseite
- Bestückung beidseitig, aber das Großteil der Bauteile doch auf der Oberseite


Klar, gerade letzterer Punkt bietet Raum für ,,mehr", aber ich möchte nicht nur Schaltpläne, sondern auch Layouts noch fix ,,lesen" können, ohne für jedes Bauteil langwierig nach den Anschlüssen zu suchen. Und unter meiner mittel-alten Eagle-Version 6.60 mit Darstellung der Bauteile-Oberseite in rot und derjenigen der Unterseite in blaut wird es irgendwann unübersichtlich. Sollte alle Bauteile ,,gerecht" gleich auf beiden Seiten verteilt sein, wird das Layout unleserlich. Da fällt mir das Bearbeiten und dauernde Kontrollieren layout1.jpglayout2.jpglayout3.jpglayout4.jpglayout5.jpgschwer, rsp. es dauert zu lange.

Welche Möglichkeiten einer Optimierung hinsichtlich einer Verkleinerung würdet ihr mir empfehlen?
Grüße, picass
#19
P
Projekte und Eigenbau / Aw: Robot-Car-Projekt
Letzter Beitrag von picass - 20.08.2023, 18:18:44 CEST
Hallo Ottmar!

Danke auch dir für das eingestellte Beispiel einer Subtraktion. Das werde ich mir ausführlich zur Gemüte führen. Allerdings noch nicht jetzt, bin gerade nach dem Urlaub noch mit zu vielen nach zu holenden Angelegenheiten beschäftigt. Aber versprochen, weil mich das wirklich sehr interessiert.

Für mein Langzeitprojekt "Entlüftung eines feuchten Kellers", wo es um das Verarbeiten der Daten von je 2 Temp- und vor allem Hygrometer-Fühlern geht, war ich bislang der Ansicht, dass dies doch nicht mit Assembler zu schaffen ist, sondern ein Ausweichen auf so'n neumodisches Zeug wie einen 32-Bitter unter Basic unausweichlich ist. Dort wäre Rechnen ein Klacks. Mal sehen, was wird, an solchen Rechenübungen habe ich einfach Spass..... es braucht nur Zeit und Ruhe.
Grüße, picass
#20
O
Projekte und Eigenbau / Aw: Robot-Car-Projekt
Letzter Beitrag von Ottmar - 20.08.2023, 15:38:39 CEST
Hallo picass

Den von Dir angeführten Thread habe ich mal so überlesen Das war ja eine recht ausufernde Diskussion hinsichtlich der Subtraktion  mit negativem Ergebnis.

Mit Mathematik-Routinen habe ich mich bisher nicht tiefgründig beschäftigt.  Insbsonders ist mir das Gebiet vorzeichenbehafteter Integer- oder gar das von Gleitkommezahlen zu fremd, bzw. zu kompliziert.

Bisher habe ich mich damit begnügt den Zahlenbereich, z.B. Multiplikation, Division ganzzahlig zu berechnen. Mußte das Ergebnis dann doch ein Dezimalbruch sein, so habe ich an den Multiplikanten oder den Dividenden die erforderliche Anzahl Nullen angehängt um im Integerbereich zu bleiben. Danach wurden - je nach Erfordernis - dann niederwertige Stellen weggelassen oder  die Kommastellen in der Anzeige, einfach dorthin  "gemogelt", wo dieses bei einem Ergebnis als Fließkommazahl hätte stehen müssen. Ich weiß, das ist nicht sonderlich kreativ.

Zum von Dir geschilderte Problem des Rechenfehlers bei der Subtraktion mit negativer Dfferenz, kann ich nichts sagen. Bei den bisher  notwendigen Subtraktionen, bin ich immer im positiven Bereich geblieben (wirklich negativ wurde es für mich nur wenns ums Geld gin, Schulden und so... :)) ).
Im Codefenster die von mir am häufigsten verwendete Subtraktion16Bit

mfG bis zum nächsten Mal
Ottmar

Sub_16
; Ist STATUS,C nach der Subtraktion=0
; ist das Ergebnis negativ
; Ist das Ergebnis im Low-Byte negativ muss
; das H-Byte um 1 vermindert werden

;Subtrahend enthält nach der Subtraktion die Diffferenz
   movlw    0xFF    ;255      0xFF01 = d'65281'    ACb1:0
   movwf    ACb1        ;      -0xEF96 = d'61334'    BCb1:0
   movlw    0x01    ;  1    -----------------
   movwf    ACb0    ;       0x0F6B =  d'3947     ACb1:0
   ;
;Minuend:   
   movlw    0xEF  ;239
   movwf    BCb1  
   movlw    0x96  ;150
   movwf    BCb0
   ;
;Subtraktion
   bcf      Flags,NEG   ;Negativflag löschen 
   movf     BCb0,w      ;ACb0 = ACb0-BCb0
   SUBWF    ACb0, f
   btfsc    STATUS,C
   GOTO     Sub16a
   movlw    0x01        ;BORGEN VON ACb1!!!!!!!
   SUBWF    ACb1,f
   btfss    STATUS,C    ;C=0? Ergebnis negativ?
   bsf      Flags,NEG   ;Ja. Negativflag =1 setzen
Sub16a:
   movf     BCb1,w       ;ACb1:=ACb1-BCb1
   SUBWF    ACb1,f
   btfss    STATUS,C
   bsf      Flags,NEG   ;Flags,7=1 Unterlauf
   bcf      STATUS,C    ;C=0 Ergebnins negativ?
   btfsc    Flags,NEG   ;Ja, Flags,NEG=1? Fehler aufgetreten?
   bsf      STATUS,C    ;JA
   RETURN