Hallo miteinander, ich möchte einen einstellbaren Stromspiegel aufbauen. Dieser Stromspiegel soll einen einstellbaren Strom liefern, wobei die Einstellung aus einem PIC heraus von statten gehen soll. Nun habe ich mir gedacht, dass ich in dem Zweig von der Basis zur Masse, zur Einstellung des Basisstroms und damit auch zum Einstellen des Stroms aus dem Stromspiegel ein digitales Potentiometer einbaue, welches ich über den PIC ansteuern kann. Problem hierbei ist, dass ich nur etwa 2 PINs noch frei habe. Die restlichen kann ich nicht freimachen und auch ein größerer PIC kann aus Kosten- und Platzgründen nicht eingesetzt werden. Nun suche ich also ein Digital-Poti was mit nur einem Draht mit mir kommunizieren kann und einen Widerstandswert von max. 10 kOhm besitzt und in etwa 32 Schritten einstellbar, aber bei einer Toleranz von max 5%. Meinetwegen kann der maximale Widerstnadswert auch größer sein, dann aber auch mehr Schritte zum Einstellen. Das einzige Poti was ich gefunden hatte war das DS2890P von MAXIM, aber das hat eine Toleranz von ±25%. Habt ihr evtl. noch andere Typen oder Erfahrungen in solchen Sachen? Ich hoffe ihr könnt mir da ein wenig helfen MfG Thomas
Hallo Thomas, ich würde den Strom nicht mit einem einstellbaren Widerstand ändern, sondern den Widerstand konstant lassen und die Spannung ändern. Mit einer PWM des Pics und einem RC-Glied kann man 0..5V erzeugen.
Leider ist das nicht möglich. Ich brauche die Stromquelle für max. 50-60 µs, das schaff ich mit dem PIC nicht als PWM. Zusätzlich muss die Abarbeitungszeit des Codes richtig niedrig halten, damit ich möglichst wenig Strom verbrauche. Die Stromquelle an sich schalte ich auch ab wenn ich sie nicht brauche und sie muss Ströme zwischen 300 und 800mA liefern in dieser kurzen Zeit.
> Problem hierbei ist, dass ich nur etwa 2 PINs noch frei habe. Eher 1,6 oder eher 2,4 :-o > Die restlichen kann ich nicht freimachen ... Evtl. kannst du irgendwelche Pins doppelt verwenden. Dann wäre auch ein up/down-Poti oder I²C-Poti sogar ein SPI-Poti drin.
>> Problem hierbei ist, dass ich nur etwa 2 PINs noch frei habe. > Eher 1,6 oder eher 2,4 :-o > ^^ :-P naja eher so 2,718281828459 >> Die restlichen kann ich nicht freimachen ... > Evtl. kannst du irgendwelche Pins doppelt verwenden. Dann wäre auch ein > up/down-Poti oder I²C-Poti sogar ein SPI-Poti drin. da ich mehrere undabhängige MOSFETs als Schalter für verschieden lange Zeiten damit aktiv halten und LEDs einzeln schalten muss ist es mir derzeit nicht möglich. Weil ich dann an anderen Stellen wieder zu viel Strom verbrauche wenn ich sie nicht getaktet sondern ständig aktiv halte
Soll das ein Stromspiegel oder eine variable Konstantstromquelle werden? Dein Text lässt eher letzteres vermuten. Eine Konstantstromquelle benötigt üblicherweise eine Referenzspannung, die in deinem Fall einstellbar sein muss. Das geht entweder mit einem gewöhnlichen DAC oder auch mit einem Digitalpotentiometer, das als Spannungsteiler geschaltet ist. Beachte, dass bei einem Spannungsteiler für die Genauigkeit nicht der Gesamtwiderstand, sondern die Linearität maßgeblich ist, und die ist beim DS2890 mehr als ausreichend. Der Gesamtwiderstand sollte lediglich klein genug sein, dass die eingestellte Spannung auf Grund der Belastung durch die nachfolgende Schaltung nicht zu sehr verfälscht wird. Was die 2 Pins betrifft: Die reichen für einmal I²C, einmal SPI oder zweimal 1-Wire. Damit bist du doch in der Wahl der Schnittstelle frei, oder verstehe ich da etwas falsch?
stimmt, variabel Konstantstromquelle triffts eher und so soll es auch gedacht sein. Genau um diese Referenzspannung einzustellen benötige ich das Digitalpotentiometer. Nun ist es aber so dass ich eine Software habe die nicht noch eine Regelung durchführen kann. Das Problem an der großen Widerstnadstoleranz ist, dass ich in der Software gewisse Werte einprogrammiere, die dann in gewissen definiteren Strömen der Konstantstromquelle resultieren sollen. Wenn ich nun ein Poti wie das DS2890 habe, was 25% Toleranz hat so hab ich im schlimmsten Fall das Szenario, dass ich eine Software mit Werten schreibe die die gewünschten Ströme erzeugt und das mit einem Poti mit +25% und wenn ich dann in größeren Stückzahlen Potis mit 2% Abweichung oder gar -25% habe müsste ich jedesmal die Software umprogrammieren, das soll aber nicht geschehen. Ich dachte immer bei I²C und SPI benötigt man Takt, Daten und Enable oder CS, was dann 3 PINs wären, oder irre ich mich da?
@Thomas Grafe: Damit es vielleicht etwas klarer wird, was ich oben gemeint habe: Wenn du ein mechanisches Poti als Spannungsteiler, bspw. zwischen 5V und GND, schaltest, und du stellst es auf die 50%-Position, bekommst du am Abgriff 2,5V. Diese Spannung ist unabhängig davon, ob das Poti einen Gesamtwiderstand von 10k, 7,5k (-25%) oder 12,5k (+25%) hat. Wichtig ist nur, dass die an den Bahnenden angelegte Spannung (also die 5V) ausreichend genau und die Linearität des Potis gut genug ist. Beim digital einstellbaren Poti ist das nicht anders. Allerdings ist zu beachten, dass es den DS2890 in zwei Gehäusevarianten gibt, nämlich dreipolig und sechspolig. Bei der sechspoligen Variante sind alle benötigten Anschlüsse, insbesondere RH, WIPER und RL herausgeführt. Schließt du RH an 5V und RL an GND, kannst du an WIPER die gewünschte Spannung abgreifen. Diese ist vom Fehler des Gesamtwiderstands zwischen RH und RL unabhängig. Bei der dreipoligen Variante sind WIPER und RL intern beide auf GND gelegt. Damit kann man sie nicht als Spannungsteiler, sondern nur als einfachen, variablen Widerstand schalten. Um eine variable Spannung zu erzeugen, müsstest du einen Spannungsteiler aus dem Poti und einem externen Festwiderstand aufbauen. Genau dann stellt sich das von dir beschriebene Problem, weil sich die große Toleranz des Potis auf das Verhältnis zum externen Widerstand und damit die Ausgangsspannung niederschlägt. Du wolltest aber ja ein DS2890P (mit dem Suffix 'P') nehmen, also die sechspolige Variante, damit hast du dieses Problem nicht. Besser geeignet für diesen Zweck wäre aber trotzdem ein DAC, da dieser im Vergleich zum Poti einen niedrigeren Ausgangswiderstand hat, so dass die Spannung weniger von der Belastung durch den Rest der Schaltung abhängt. > Ich dachte immer bei I²C und SPI benötigt man Takt, Daten und Enable > oder CS, was dann 3 PINs wären, oder irre ich mich da? Das ist schon richtig. Bei den meisten I²C- und SPI-Bauteilen kann man aber den Enable-Eingang statisch auf GND legen, so dass sie immer aktiv sind. Für die Kommunikation braucht man dann nur noch Takt und Daten, also 2 I/O-Pins am Controller.
Hallo yalu, auf die Idee mit dem DS2890P als Spannungsteiler aus sich selbst heraus habe ich nicht gehabt... Danke dafür, das klingt plausibel und machbar. Das muss ich dann demnächst mal ausprobieren. Das Ganze über einen DAC zu machen geht an sich auch, die Kommunikation wäre ja identisch wie bei den I²C oder SPI Komponenten... Danke für den Hinweis und deine Antwort!
> Stromspiegel > aber bei einer Toleranz von max 5%. Ein Stromspiegel hat doch sowieso eine grössere Toleranz als 5%, dein Ansatz ist also soweiso zum Scheitern verurteilt. Wie wäre es, du gibt per D/A-Wandler eine Spannung vor, und setzt diese per OpAmp in einen Strom um ? > da ich mehrere undabhängige MOSFETs als Schalter für verschieden lange > Zeiten damit aktiv halten und LEDs einzeln schalten muss ist es mir > derzeit nicht möglich. Klingt doch mal wieder wie Schwachsinn. Wie wäre es mit TLC5940 oder TLC5628 und 8 OpAmps ? Dann reichen auch die Anschlüssen wieder.
Das mit dem Enable statisch auf GND ist in Prinzip richtig. (Radio Eriwan) Schau bitte noch mal ins Datenblatt, manche Bausteine übernehmen die ankommenden Daten (über Takt und Data) in einen Buffer, der erst nachdem der Enable wieder inaktiv ist. Hatte da schon mal Probleme gehabt........ Also Datenblatt genau lesen. Gruß Seppl
MaWin schrieb: >> Stromspiegel >> aber bei einer Toleranz von max 5%. > > Ein Stromspiegel hat doch sowieso eine grössere Toleranz als 5%, dein > Ansatz ist also soweiso zum Scheitern verurteilt. > Nicht der Stromspiegel sondern das Poti sollte die 5% haben... das hab ich aber im ersten Post auch so geschrieben. und ob ich 300mA oder 315mA Strom bekomme ist mir auch egal. > Wie wäre es, du gibt per D/A-Wandler eine Spannung vor, und setzt diese > per OpAmp in einen Strom um ? > Du meinst per DAC also die Referenzspannung erzeugen? prinzipiell keine schlechte Idee, würde auch gehen. >> da ich mehrere undabhängige MOSFETs als Schalter für verschieden lange >> Zeiten damit aktiv halten und LEDs einzeln schalten muss ist es mir >> derzeit nicht möglich. > > Klingt doch mal wieder wie Schwachsinn. > > Wie wäre es mit TLC5940 oder TLC5628 und 8 OpAmps ? > > Dann reichen auch die Anschlüssen wieder. is kein Schwachsinn... da ich die LEDs mit Strömen zwischen 300 und 800mA für kurze Zeit (30µs) betreiben muss. Daher kommen keine LED-Treiber in Frage, das habe ich im Vorfeld schon überprüft. @Seppl: danke für den hinweis, ich werds mir ganz genau anschauen!
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.