PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Treiber zwischen Atmega16 und R/2R Netzwerk gesucht



L0rd
15.01.2007, 21:44
Hallo zusammen !

Wie der Titel schon sagt, ich habe nen Atmega16 und brauche nen Baustein das halt den Port nicht so belastet, der schnell ist und wirklich am Ausgang unter bisi Last 5V rausgibt. Einfach gesagt nen 8-fachen Spannungsfolger der am Ausgang 5V hat auch wenn am eingang bischen wenniger anliegt.

Ich denke so an 74HCXXXXX Familie, oder so.
Was könnt ihr empfehlen ?
Es hat doch schon sicherlich jemand so ähnliches aufgebaut.

Danke !

kalledom
15.01.2007, 22:41
Hallo,
da empfehle ich Dir den ULN2803A, der hat 8 mal NPN-Darlington mit Basis-Vorwiderstand und schaltet den GND oder den UDN2981A, der hat ??? und schaltet den Plus. Beide schaffen 500mA pro Ausgang, allerdings nicht alle auf einmal.

Ratber
15.01.2007, 23:02
@Lord

Wenn ich deine Überschrifft so sehe dann kommt es mir vor als ob du nen Leistungs DAC basteln willst.

Das ginge auch anders.

L0rd
16.01.2007, 07:30
Nein nein, 1mA reicht mir auch oder sogar wenniger. Hauptsache saubere 0 und 5V trennung.

Ich nutze Wiederstände im R/2R von 150k und 75k da brauche ich kein Strom, und nach R/2R schalte ich sowieso nen Spannungfolger noch.

Ich habe schon mal R/2R direkt an Port angeschlossen gehabt (ohne Treiber) der kommt dann mit der Spannung nur bis 4.2V wenn am Ausgang 0b11111111 steht. Das alles bei statischen Bedingungen, und wenn ich da noch ne Frequenz ausgebe dann kommt er nur auf 3,XX V Spitze. Deswegen müsste da am R/2R von vorne bischen "nachgeholfen" werden.

Ich habe hier in Forum schon mal gelesen das Atmega am Port 20mA bringt, wohl bei 1V :)

PICture
16.01.2007, 07:36
Hallo L0rd!

Am einfachsten wäre dem Spannungsfolger eine kleine Spannungsverstärkung zu schenken. :)

MfG

Ratber
16.01.2007, 07:40
@Lord

Achso,das meinst du.

Das hinterm R2R weniger als Vcc anstehen ist kein Wunder.
Zum einen fällt an den Schaltstufen etwas ab und zum anderen am R2R-Netz.

Du brauchst nur einen Operationsverstärker mit einer Verstärkung von 1.x.
Je nach Frequenz einen schnellen Typ.
Einige mA bringen fast alle Modelle da hast du ne recht große auswahl.

Allerdings kommt ein normaler OP auch nicht an seine Versorgungsspannugsgrenzen heran.

Ein Rail to Rail ist da schon besser aber auch nicht perfekt.
Reicht vieleicht nicht für dich (Mußt du entscheidenwas reicht und was nicht.)

Wenn nicht dann ist der Versorgungsspannungsbereich etwas zu erweitern.
Dann klapperts bestimmt


Edit:
Picture war schneller

L0rd
16.01.2007, 08:11
Ein treiber muss her :)

auch wenn ich mit OP verstärke, dann habe ich in statischen betrieb mehr als bei Frequenz. Also so:

statisch eingang 4.5V Verstärkt durch OP auf 5V
frequenz Eingang 3.5 Verstärkt auf ca 3,9 V

Ich brauche am Ende R/2R Netzwerks bei allen Bed. ne gleiche spannung, dann kann ich die auch mit OP Verstärken ( was ich ja sowieso mache).

PICture
16.01.2007, 08:24
Hallo L0rd!

Zuerst denke, bitte, ein bischen nach, warum es mit der Spannung so ist. :)

MfG

L0rd
16.01.2007, 08:33
Ich sehe genau was läuf weil ich es mit Oszilloskop messe ;)

PICture
16.01.2007, 08:49
Na ja, dann sind es die Streu- (Montage-) kapazitäten daran schuld, die leider unvermeindbar sind. Dann bleibt nur die R und 2R Resistoren zu verkleinern um den Tiefpass aus den Montagekapazitäten und R höher zu gestalten. :)

MfG

L0rd
16.01.2007, 08:54
Wieso zweifelt ihr die ganze Sache an, oder schlägt ständig alternativen vor ?
Ich weiss das ich an diesem Treiber nicht herum komme, weil ich nur +5V als VCC habe und da kommen fertige DACs nicht in Frage, PWM auch nicht. Ich baue ne Regelung auf und es sollte präzise und schnell die Werte erreichen und ein R/2R ist in Verbindung mit einem sagen wir mal 74HCT541N ein präzises und schnelles Ding.

Ich wollte nur wissen ob was vergleichbares gibt zu 74HCT541N nur in anderen Technologien oder so.

L0rd
16.01.2007, 09:00
Die Frequenz ist gar net so hoch (Audio Bereich), dass wir an den Effekt denken sollen. Eher an schwachen Port von Atmega ;)

Ratber
16.01.2007, 09:06
Na wenn es definitiv der Port ist dann klemm zwischen AVR und R2R nen 50 Ohm Octal Treiber und gut ist.

Bei den alten TTL'ern meine ich einen gesehen zu haben (Muß ich mal die ECA rausholen)

Ratber
16.01.2007, 09:19
Na wenn es definitiv der Port ist dann klemm zwischen AVR und R2R nen 50 Ohm Octal Treiber und gut ist.

Bei den alten TTL'ern meine ich einen gesehen zu haben (Muß ich mal die ECA rausholen)


Edit:

Naja,ich finde nur den 74128 4x Nor 50 Ohm.
Ob der noch erhältlich ist weiß ich allerdings nicht.

Was ist mit dem allseits beliebten 74HCT244 der ja oft als Leitungstreiber verwendung findet ?

L0rd
16.01.2007, 09:38
Danke !

Das Problem was ich hab ist, dass wenn ich 74HCT541N einfach einschalte ohne Atmega, dann springt er an Manchen Pins von selbst auf 5V, das schlimmste ist dass es auch am Eingang von 74HCT541N passiert. Nehme ich ne Stück leitung und schliese die alle mal nacheiander gegen die masse werde die 0V. Irgend ne Ladung oder so, denke ich. Und wenn ich Atmega anschliesse kommt fast auf allen Pins 5V raus obwohl ich nichts ausgebe. Den Port definiere ich als Ausgangs Port und er sollte auf LOW sein, ist er aber nicht. Ich denke Atmega wird warscheinlich durch HCT541 irretiert. 74HCT541 ist in ordnun hab schon mal auch mit austauschen versucht. Ich beschäftige mich mit dem Problem schon seit 4 Tagen, alles ausgemessen, alles kontroliert, nur woran es liegt weiss ich nicht. Ne Hexerei :(

Gut, jetzt werde ich die vorgeschlagenen ICs ausprobieren vielleicht geht das weg.

Ratber
16.01.2007, 09:43
Das Problem was ich hab ist, dass wenn ich 74HCT541N einfach einschalte ohne Atmega, dann springt er an Manchen Pins von selbst auf 5V, das schlimmste ist dass es auch am Eingang von 74HCT541N passiert. Nehme ich ne Stück leitung und schliese die alle mal nacheiander gegen die masse werde die 0V. Irgend ne Ladung oder so, denke ich.


????

Wie meinste denn das ?

Einfach den 541 mit offenen Eingängen betrieben ?
So ganz ohne Pullup/Pulldown ?

L0rd
16.01.2007, 09:59
Nein, ich habe ihn nur so getestet(hab Atmega aus dem Sockel rausgenommen), ich wohlte nur sehen wer von beiden spinnt.

Normal betreibe ich ihn am Port von Atmega16 und enable Eingänge setze ich auf Masse so das er immer durschaltet, also ich steuere ihn nicht. Das was rein kommt wird sofort ausgegeben.

kalledom
16.01.2007, 10:06
Hallo,
wenn ich bei mir einen 75HCxx oder 74HCTxx oder 40xx betreibe, ohne daß ALLE Eingänge an einem definierten Pegel oder +5V oder GND angeschlossen sind, dann machen bei mir die Ausgänge auch, was sie wollen; es sind dabei sogar schon CMOS-IC's kaputt gegangen.
Lies Dir evtl. mal die Regeln für den Umgang mit CMOS-Bausteinen hier (http://www.domnick-elektronik.de/elekttl.htm) durch (nach der Liste der 40-er Bausteine).
Die Pins des µC müssen als Ausgänge gesetzt werden und auch sofort einen definierten Zustand bekommen, sonst machen die Pins, was Du nicht willst :-)

Ratber
16.01.2007, 10:08
Ja,genaus so ises.

Als Workaround würde ich zwischen Controller und 541 Pulldown widerstände einsetzen.

Das schafft klare Verhältnisse.

L0rd
16.01.2007, 10:10
Das denke ich mir auch.

Welchen wert würdes du vorschlagen 1k ? 10k ?

kalledom
16.01.2007, 10:24
10k...22k; es handelt sich um sehr hochohmige CMOS-Eingänge.
100k ist meinem Gefühl nach zu hochohmig (ein Finger hat viel weniger), bei 1k fließt zu viel unnötiger Strom, bleibt die 'goldene Mitte' bei 10...22k.

Ratber
16.01.2007, 10:38
Yo,10K nehme ich auch meist.
1K nur in "schmutzigen" Umgebungen.

L0rd
16.01.2007, 12:34
Alles klar ! Danke !
Werde mir gleich nen Widerstands Netzwerk hollen und ausprobieren.

Pulldown ist doch so s.unten (um Missverständnisse auszuschließen :))




+ 5V +5V
O-----------------O-------------------O
|
|
Atmega | | 74HCT541N
| | R
| |
|
|
O-----------------O-------------------O
Masse

denn sonst mit Pullup baut man nur nen Kurzschluss hier.

Ratber
16.01.2007, 12:47
Nicht zwischen 5V und GND sondern zwischen jede Datenleitung und GND

Stell dir das wie die Feder am Trittstarter vom Motorrrad vor.

Die sorgt dafür das der Starter bei nichtbenutzung in eine Definierte Stellung geht.

Der Widerstand zieht den Eingang vom 541 nach Masse wenn der Controller nicht da ist oder der betreffende Pin als "Eingang" definiert ist (Wie zb. beim Einschalten)

Würdest du an dieser Verbindung zb. ein sicheres High benötigen dann würde der Widerstand von der Datenleitung nach Vcc (Also hier die +5V) gehen.


Jetzt verständlicher ?

L0rd
16.01.2007, 13:09
sorry, mit 5V war nicht Spannungsversorgung gemeint sondern HIGH Wert am Port und am 74HCT... gemeint, also Datenleitung.

Ich stelle mir Widerstände wie dünne Wasserröhre vor, und wenn das Wasser kurz da rein fliest, da wird das Rohr schnell voll (Pegel geht hoch) und das Wasser fliest über :)

Oder besser noch wie ein Verkehrsstau vor einer Baustelle ;)

kalledom
16.01.2007, 13:33
Da läuft nichts voll; schau Dir mal die Seite hier (http://www.domnick-elektronik.de/elekohm.htm) an !

L0rd
16.01.2007, 19:26
So, habe Brücke einfach an der unterseite an die pins gelötet, nen äußeren Pin der Brücke(der gekennzeichnet ist) habe ich an die masse gelötet.

Hab 2 Verschiedene Werte ausprobiert:

10k Brücke 5,03 V

6,8k Brücke 4,92 V

ohne Brücke 5,04 V

nun der Port springt trotzdem auf manchen Pins auf 0 auf anderen auf 5V auf einem war sogar 3,XX volt. Komisch :(

Ratber
16.01.2007, 20:22
Ja,leichte Schwankungen sind immer vorhanden.

Das ist ein Port und kein Ausgang von nem Messverstärker.

Das dein ort springt ist aber dennoch unüblich.
Irgendwo hats du da den Wurm drinn

kalledom
16.01.2007, 21:49
Hast Du an jedem der 8 EINGANGS-Pins des 74HCT541 einen Widerstand 10k zum GND angelötet ? Und den AVR rausgezogen ?
Dann muß an den Eingängen des 541 ca. 0V zu messen sein, es sei denn, der hat keinen GND oder er steckt falsch rum drin oder er ist kaputt.
Ob 0V oder 0,34 oder 0,5V bei logisch 0 / Low-Pegel bzw. 4,5V oder 5,03V oder 4,74V bei logisch 1 / High-Pegel ist vollkommen gleichgültig: ungefähr ist richtig (ja ja, es gibt eine Spezifikation dazu, aber hier geht es erst mal um's Grundsätzliche).
Das wäre als erstes zu überprüfen, für alle 8 Eingänge.
Dann kannst Du den AVR wieder reinstecken und noch mal messen, was dann an den 8 Eingängen des 541 für Spannungen zu messen sind.
Wenn Du das überprüft und hier mitgeteilt hast, kann ich mit Vermutungen weiter helfen.

Übrigens: die anderen beiden Eingänge auf GND legen und 8 PullUp-Widerstände anlöten, nicht nur mit einem ausprobieren und die restlichen Eingänge in der Luft hängen lassen !

L0rd
18.01.2007, 09:10
Ja ich habe diese beide Enable Eingänge auf Masse gelegt, das ist ja schon klar. Und ich habe ne 10k Brücke mit 8 widerständen als Pulldown geschaltet. d.h. Widerstand mit einem Ende auf Datenleitung (zwischen uC und 541) und anderem Ende auf Masse.

uC und 541 sind drin, ist alles ok.

Ich habe Fehler schon gefunden, ich wollte ne 10-bit Zahl auf nem 8-bit Port rauspressen und das ging nicht. Auf nem Testboard(STK500) geht das aber. Komisches Ding.

Teile jetzt 10bit durch 4(dezimal) und erhalte meine 8 bit.

War schon kurz vor dem Durchdrehen wegen dieser Sache.

Danke kalledom !!!
Danke Ratber !!!

Ratber
18.01.2007, 09:48
Ich habe Fehler schon gefunden, ich wollte ne 10-bit Zahl auf nem 8-bit Port rauspressen und das ging nicht. Auf nem Testboard(STK500) geht das aber. Komisches Ding.

Hehehe,ja das ist nen lustiges Spielchen.

Vermutlich werden beim STK500 die beiden LSB abgeschnitten so das es nicht weiter auffällt



Teile jetzt 10bit durch 4(dezimal) und erhalte meine 8 bit.

Wenn du etwas Zeit sparen willst dann mach Einen Shift um 2 Stellen,das geht schneller.
Oder meintest du das damit ?