PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MAX6958 - 7-Segment-Anzeigen leuchten nicht



therealosram
12.11.2014, 21:34
Guten Abend zusammen,

ich wage mich jetzt mal an Sieben Segment Anzeigen heran.
Ansteuern möchte ich die mit einem ATMega88 und einem MAX6958.
An den SCL und SDA kommen die richtigen Werte heraus. (Angezeigt mit Oszi).
Aber der Anzeigentreiber gibt kein Signal aus.

Was mach ich falsch?

Als Adresse hab ich aus dem Datenblatt folgende Information:


Slave Address
The MAX6958/MAX6959 have a 7-bit-long slave
address (Figure 3). The eighth bit following the 7-bit
slave address is the R/W bit. Set the R/W bit low for a
write command and high for a read command.
The MAX6958/MAX6959 are available in one of two
possible slave addresses (see Table 2 and Ordering
Information). The first 6 bits (MSBs) of the MAX6958/
MAX6959 slave address are always 011100. Slave
address bit A0 is internally hardwired to either GND in
the MAX695_A_, or V+ in the MAX695_B_. A maximum
of two MAX6958/MAX6959 devices can share a bus.

Message Format for Writing
A write to the MAX6958/MAX6959 comprises the trans-
mission of the MAX6958/MAX6959s ’slave address with
the R/W bit set to zero, followed by at least 1 byte of
information. The first byte of information is the com-
mand byte, which determines the register that stores
the next byte written to the MAX6958/MAX6959. If a
STOP condition is detected after the command byte is
received, the MAX6958/MAX6959 take no further action
(Figure 6) beyond storing the command byte.


hier der Code:


$regfile = "m88def.dat"
$hwstack = 128
$framesize = 128
$swstack = 128

Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portd.0 , _
Db7 = Portd.1 , E = Portb.4 , Rs = Portb.5
Config Lcd = 16 * 2
Cursor Off

Config Sda = Portc.4
Config Scl = Portc.5

Const Ad = &B011100

Dim X As Byte

X = 0

Do

For X = 0 To 65

Upperline : Lcd " Os Ram "
Lowerline : Lcd " " ; X ; " "

I2cstart
I2cwbyte Ad
I2cwbyte X
I2cstop

Waitms 1000
Next X

Loop

End

Sauerbruch
13.11.2014, 07:43
So wie es aussieht, reagiert der MAX6958 auf ein Kommando mit 8 Bits. Die ersten 6 Bits sind in der Tat 011100.
Danach kommt aber noch ein siebtes Adress-Bit, das beim MAX6958A 0 ist, und beim Typ B 1. Das ist dafür gut, wenn man zwei ICs mit dem selben Bus bedienen und einzeln ansprechen möchte. Und schließlich kommt das Read-write-Bit, das dem IC sagt, ob es Daten empfangen oder senden soll. In Deinem Fall soll es Daten empfangen, also muss dieses letzte Bit 0 sein.

Versuch´s also mal mit Const Ad = 01110000 (MAX6958A) bzw. 01110010 (MAX6958B)!

Sauerbruch
13.11.2014, 10:14
...und im Datenblatt steht nochwas wichtiges:

Nach dem korrekten Adressieren muss als erstes ein Kommando-Byte gesendet werden, damit der MAX überhaupt weiß, was er tun soll. Denn man kann ihm eine Menge anderer Befehle geben als einfach nur das Anzeigen von irgendwelchen Ziffern.

Wie ich das verstanden habe, ist das Kommando für den "decode"-Modus die Bitfolge 00000001. Die sagt dem IC, dass das nächste gesendete Byte (= Datenbyte) auf der 7-Segment-Anzeige dargestellt werden soll. Da sich mit einem einzelnen Digit nur 16 Zeichen darstellen lassen (0-9 und A-F), werden auch nur die niedrigsten 4 Bits des Datenbytes ausgewertet. Soweit klingt das Datenblatt ganz schlüssig.

Du brauchst also mal mindestens drei Bytes: Adressbyte, Kommandobyte und Datenbyte, die komplette Sequenz müsste etwa so aussehen:


I2cstart
I2cwbyte Ad
I2cwbyte &b00000001
I2cwbyte X
I2cstop

Wenn X 16 ist, müsste die Anzeige wieder bei 0 anfangen hochzuzählen.

oberallgeier
13.11.2014, 10:25
... nur die niedrigsten 4 Bits des Datenbytes ausgewertet ... I2cwbyte X ... Wenn X 16 ... wieder bei 0 anfangen hochzuzählen.Irgendwie verstehe ich das anders: bei I2cwbyte X mit X = 15dez sieht (m)ein Byte so aus 0b00001111, bei x = 6dez genauso trivial 0b00000110. Mit X = 16 dann 0b00010000, damit stimmt die Aussage, die stimmt aber auch für X = 48dez => 0b00110000, kurz - wenn I2cwbyte ein unsigned integer ist - für alle Zahlen über 16, bei denen die letzten vier Bits 0 sind, allgemein bei allen Werten bei denen die letzten vier Bits 0 sind. Mag pingelig klingen.

Sauerbruch
13.11.2014, 11:06
@ Oberallgeier:

Vielleicht meinen wir ja das gleiche - ich habe mich auf diese Passage aus dem Datenblatt zum "Decode Mode Register" bezogen:

In hexadecimal code-decode mode, the decoder looks
only at the lower nibble of the data in the digit register
(D3–D0), disregarding bits D7–D4.

Leider habe ich gerade keinen MAX6958 da, sonst würde ich glatt mal ein wenig damit rumspielen :-)

therealosram
13.11.2014, 12:54
Vielen Dank für Eure Antworten.

Das war ein guter Tipp mit dem Kommandobyte. Das probiert ich heute Abend mal aus.
Ich hab an dem Treiber zwei Anzeigen dran, da ich Werte von 0 bis ca. 65 anzeigen lassen will. (Geschwindigkeitsanzeige für ne fahrende Bierkiste:))
Muss ich dann den Dezimalwert auch noch in Hex oder Bit umrechnen lassen oder muss ich jede Stelle der zweistelligen Dezimalzahl dann getrennt auf die
jeweiligen Digits ausgeben lassen?


The decode-mode register sets hexadecimal code
(0–9, A–F) or no-decode operation for each digit. Each
bit in the register corresponds to one digit.

Ich lese das so, dass ich wenn ich die hexadezimale Ausgabe haben möchte, dieses Register setzen muss.
Ich glaube, ich probier auch mal &b00000000 aus für "keine Änderung am Standard.
Heute Abend gibt's mehr.

Gruß Udo

Sauerbruch
13.11.2014, 16:10
Hi Udo,

schade dass ich so´n IC gerade nicht da habe - das Datenblatt klingt interessant und ich würde gerne einiges ausprobieren :-)
Inzwischen glaube ich folgendes zu verstehen:

1. Man muss mehrstellige Zahlen wohl tatsächlich in Hunderter, Zehner und Einer zerlegen und sie einzeln rüberschicken.

2. Das Decode Mode Register scheint festgzulegen, wieviele Stellen ("Digits") angezeigt werden sollen. Tab.7 im Datenblatt ist da sehr aufschlussreich. Wenn &b00000000 drinsteht (wie nach dem Power-On) findet gar keine Decodierung von binär nach (hexa)dezimal statt. Für eine zweistellige Zahl (also die Digits 1 und 2) müsste man also &b00000010 in dieses Register schreiben.

3. Die Ziffern, die in den Digits tatsächlich angezeigt werden sollen, müssen dann per I2c in die Register "Digit 1.... Digit 4" geschrieben werden. Hierbei ist die Funktion interessant, dass der MAX die Adresse des nächsten zu beschreibenden Registers automatisch um 1 erhöht, nachdem er ein Datenbyte empfangen hat. Man müsste wahrscheinlich also nur die Adresse des ersten Digits senden (&b00100000) und dann alle darzustellenden Ziffern einfach nacheinander weg.

4. Wenn dieser Thread noch länger geht, besorge ich mir irgendwo so´n Teil und probiere es selber aus :-)

therealosram
13.11.2014, 17:19
Hab noch einen liegen. Wenn der nicht so teuer wär, würd ich ihn dir glatt schicken ;)

therealosram
13.11.2014, 22:14
Das hat leider auch nicht funktioniert


Zehner = X / 10
Zehner = Zehner Mod 10
Einer = X Mod 10


I2cstart
I2cwbyte &B01110000
I2cwbyte &B00100000
I2cwbyte Zehner
I2cwbyte &B00100001
I2cwbyte Einer
I2cstop

Sauerbruch
15.11.2014, 11:39
Ich glaube das Problem ist, dass der MAX nicht wissen kann, dass &b00100000 und &b00100001 die Adressen der zu beschreibenden Register sind.
Im Datenblatt steht folgendes:

The address pointer in the MAX6958/MAX6959 autoincrements
after each data byte. If multiple data bytes
are transmitted before a STOP condition is detected,
these bytes are stored in subsequent MAX6958/
MAX6959 internal registers (Figure 8 ), unless the
address pointer has reached address 01111111. The
address pointer does not autoincrement once address
01111111 has been reached (Table 3).

Das heißt also, er schreibt den Wert "Zehner" noch korrekt in das Register &B00100000. Das nächste Byte (&b00100001) wird dann aber wieder als Datenbyte interpretiert und in das nächsthöhere Register geschrieben, und das Byte "Einer" in das wiederum nächsthöhere Register.

Andersrum gesagt würde ich es mal so versuchen, einfach nur das erste Digit-Register zu adressieren (also &b00100000), und dann beide Ziffern-Bytes nacheinander zu senden. Sie müssten dann von selbst in den beiden aufeinanderfolgenden Registern (00100000 und 0100001) landen.

Bleibt natürlich noch ein Problem: Das Decode-Mode-Register (0x01): Da steht beim Einschalten ´ne &b00000000 drin - also "no decode for digits 3-0".
Damit die Digits 0 und 1 angesteuert werden, muss da &b00000011 reingeschrieben werden. Dieses Register steht aber an einer ganz anderen Stelle als die anderen zu beschreibenden Register, so dass man das nicht unmittelbar hintereinander weg per automatischem Increment machen kann.

Ich würde also mal versuchen, zuerst das data decode register zu beschreiben, und dann in einem zweiten Teil die eigentlichen Ziffern in die Digit-Register:

I2cstart
I2cwbyte &b01110000
I2cwbyte &b00000001 (Adresse des Data Decode Registers)
I2cwbyte &b00000011 (=Digits 0 und 1)
I2cstop

I2cstart
I2cwbyte &b01110000
I2cwbyte &b00010000 (= 0x20, Adresse Digit 0)
I2cwbyte Einer
I2cwbyte Zehner (geht automatisch ins Register 0x21)
I2cstop

therealosram
15.11.2014, 17:31
Danke für die Mühen, geht auch nicht, grrr

Ich hab schon die Firma angeschrieben, die wollen mir nochmal einen Schaltplan und Code-Beispiele senden.
Auch die Displays hab ich schon x-Mal neu aufgebaut, weil ich dachte, ich hab da was falsch gemacht, aber aus den Ausgängen der LED kommt kein Mux raus.

Sauerbruch
16.11.2014, 20:23
Das gibt´s´doch nicht... hast Du schon mal mit dem Display Test Register rumgespielt? Das aktiviert alle Display-Segmente mit einer Helligkeit von 28/64, so dass man auf jeden fall was sehen müsste. Übrigens ist die Intensität nach dem Einschalten erstmal bei 4/64, was laut Datenblatt einem Strom von gerade mal 1,4 mA entspricht. Bei einem normalen LED-Display dürfte da nicht allzuviel zu sehen sein.

therealosram
16.11.2014, 21:56
Zehner = X / 10
Zehner = Zehner Mod 10
Einer = X Mod 10

I2cstart
I2cwbyte &b01110000
I2cwbyte &B00000001
I2cwbyte &B00000011
I2cwbyte &B00010000
I2cwbyte Einer
I2cwbyte Zehner
I2cstop

Also mit der Einstellung leuchtet überhaupt irgendwas an dem Display.
Leider ist es nur 0(0). Wobei die erste Null dauerhaft leuchtet, wenn "Zehner" 1,3 oder 5 ist.
Wenn dann "Einer" 0,1,2; 4,5,6 ;8,9 ist leuchtet die zweite Null dazu, aber nur wenn die erste schon an ist.

Ich raff das einfach nicht. Vielleicht hilft ja MAXIM (nicht die Zeitschrift) mit einer versprochenen Antwort weiter.

Sauerbruch
16.11.2014, 22:41
Aber so kann es auch nicht funktionieren! Das wird vielleicht etwas klarer, wenn Du Dir mal genau vergegenwärtigst was wirklich passiert:

Am ersten Byte (&b01110000) erkennt der Chip, dass er gemeint ist.
Das zweite Byte (&b00000001) sagt ihm, welches Register er als erstes beschreiben soll.
Das dritte Byte (&b00000011) geht somit ins Decode Mode Register (Adresse 0x01).

Soweit, so gut. Aber danach geht´s schief:

Der MAX kann doch nicht wissen, dass das nächste Byte jetzt wieder eine Adresse sein soll! Er versteht auch dieses Byte (&b00010000) als Datenbyte und schreibt es automatisch ins nächste Register (0x02). Das ist das Helligkeits-Register, und &b00100000 bewirkt dort 32 von 64 Helligkeitsstufen, also 50%.

Der Wert von "Einer" geht dann an die Adresse 0x03, und "Zehner" an 0x04. Letzteres ist das Configuration Register, in dem allerlei Einstellungen festgelegt werden, die ich mir jetzt im Einzelnen nicht durchgelesen habe. Es könnte aber erklären, weshalb die beiden Nullen so unterschiedlich angezeigt werden, je nachdem was der Inhalt dieses Registers ist.

Die eigentlichen Digit-Register 0x20 und 0x21 werden aber überhaupt nicht erreicht - und deshalb werden Dir auch immer nur Nullen angezeigt!

Wie gesagt - wenn Du den Chip einmal angesprochen und ihm das erste Adress-Byte gesendet hast, schreibt er alle weiteren Bytes ganz stur in die folgenden Register! Für einen Adress-Sprung müsstest Du m.E. die Übertragung beenden (I2cstop) und mit der gewünschten Adresse neu starten (I2cstart, I2cwbyte &b01110000, I2cwbyte neue_Adresse, I2cwbyte Datenbyte_1, I2cwbyte Datenbyte_2...., I2cstop).

Die relevanten Register liegen ja in zwei Blöcken beieinander: Das Decode Mode Register (0x01) und das Helligkeitsregister (0x02), und dann die Digit-Register (0x20 und 0x21). Das müsste also in zwei I2c-Sequenzen machbar sein!

therealosram
17.11.2014, 20:05
Hmm. Bin auf Dienstreise und am Mittwoch wieder zu Haus. Dann 'Spiel' ich noch ein wenig rum

therealosram
19.11.2014, 20:50
Ok, das mach Sinn.

Ich versteh aber die Schreibweise noch nicht.
Ist denn 0x20 das Gleiche wie 100000?

Und bei dem Code passiert auf dem Display gar nichts


I2cstart
I2cwbyte &B01110000
I2cwbyte &B00000001
I2cwbyte &B00000011
I2cstop


I2cstart
I2cwbyte &B01110000
I2cwbyte &B00010000
I2cwbyte Einer
I2cwbyte Zehner
I2cstop

christianb
19.11.2014, 22:53
Hallo,
Ich hab den max 6958 mal mit nem raspberry pi getestet. Bei mir funktioniert nur der decode mode noch nicht.
Schreibt ihr auch in das Configuration(0x04) Register 0x01? (Nach dem Startup ist der max6958 noch im Shutdown mode)
Dann einfach für die entsprechende Anzeige(0x20 - 0x23) die Segmente wie im Datenblatt auf Seite 10 Tab. 5 einschalten.

MfG
Christian

Sauerbruch
20.11.2014, 05:16
Ich versteh aber die Schreibweise noch nicht.
Ist denn 0x20 das Gleiche wie 100000?

So ist es.

Die Zahl 20 ist im Hexadezimalsystem das gleiche wie die Zahl 00100000 im Binärsystem - beides entspricht 32 im Dezimalsystem. Damit man erkennt, dass eine Zahl im Hexadezimalsystem ist, gibt es mehrere Vorsätze. Gebräuchlich (und im datenblatt des MAX verwendet) ist 0x...

Bascom macht es etwas anders: Zahlen ohne irgendwelche Vorsätze werden als Dezimalzahlen interpretiert (denn damit sind wir einfach gewohnt umzugehen).
Der Vorsatz &b signalisiert Bascom, dass eine Zahl im Binärformat kommt (also nur 0 und 1), und &h kündigt eine Hexadezimal-Zahl an (also 0-9 und A-F).

In Bascom würde man also sagen 32 = &h20 = &b00100000.

Mit der Rechner-App unter Windows und OS X kann man übrigens Zahlen ganz einfach zwischen diesen drei Systemen hin- und her konvertieren!

Im Übrigen ist der Hinweis von Christianb sehr interessant, dass das Configuration Register nach dem Einschalten im Shutdown-Modus ist. Ich muss gestehen, mich zu diesem Register noch nicht belesen zu haben. Das könnte ich heute aber schaffen, denn ein "falscher" Wert in diesem Register scheint einem ja auch einen ganz schönen Strich durch die Rechnung machen zu können :-)

Sauerbruch
20.11.2014, 09:21
So - jetzt habe ich mich auch über das Configuration Register belesen:

In diesem Byte kann man lediglich die Bits 5 und 0 setzen. Bit 5 = 1 löscht die Inhalte aller Digit-Register, das muss also 0 sein. Bit 0 muss dagegen auf 1 gesetzt werden, um vom Shutdown-Modus (= alles dunkel) in den Normal Mode zu wechseln.
Kurz und gut: Das Configuration Register (Adresse 0x04) sollte mit &b00000001 beschrieben werden.

Davor kommt aber noch das Register an Adresse 0x03, das Scan Limit Register. Ich verstehe zwar nicht ganz dessen Sinn, laut Datenblatt bedeutet &b00000011 in diesem Register "Display digits 0,1,2,3 and segments 0,1,2,3,4,5,6,7" - und das klingt gut.

Zusammengefasst müsste es so vielleicht wirklich gehen:

I2cstart
I2cwbyte &b01110000 (MAX adressieren)
I2cwbyte &b00000001 (Erste Registeradresse ist 0x01)
I2cwbyte &b00000011 (dieses Byte kommt in´s Decode Mode Register an 0x01)
I2cwbyte &b00100000 (dieses Byte kommt ins Helligkeitsregister an 0x02)
I2cwbyte &b00000011 (in´s Scan Limit Register an 0x03)
I2cwbyte &b00000001 (in´s Configuration Register an 0x04)
I2cstop

I2cstart
I2cwbyte &b01110000
I2cwbyte &b00100000 (es ginge auch &h20 !!)
I2cwbyte Einer
I2cwbyte Zehner
I2cstop

therealosram
20.11.2014, 21:58
JEAHHHHHHHHHHHH, it works right that way. THANX
Resümierend, warum habe ich das nicht gerafft?


Das Datenblatt ist sehr kompliziert geschrieben und man muss sich wirklich Zeit nehmen, um das zu verstehen.
Decode-Mode bedeutet, dass nicht nur die reinen Balken der Anzeigen angesprochen werden, sondern die Zahl auch dargestellt wird. Auch wenn es sich um eine Hexadezimale Ausgabe handelt, was bei Zahlen von 0 bis 9 nicht ins Gewicht fällt.
STOP bedeutet, dass das automatische Hochzählen gestoppt wird und der nächste Binärwert wieder als Adresse und nicht als Wert gelesen wird.


jetzt läufts. Danke nochmals.

Peter(TOO)
20.11.2014, 23:22
Hallo,

Das Datenblatt ist sehr kompliziert geschrieben und man muss sich wirklich Zeit nehmen, um das zu verstehen.


Das ist normal, bei etwas komplexeren Bausteinen.
Manche wichtigen Hinweise findet man oft nur in einem Nebensatz.

Es ist übrigens auch nicht einfach so ein Datenblatt zu schreiben.
Der Sprachstil ist zwar einfach, aber Synonyme sollte man tunlichst vermeiden, weil sie nur verwirren. Auch sollten unübliche Begriffe immer erst erklärt werden, wenn sie im Text neu auftauchen und nicht erst 7 Kapitel später..

Oft muss man das Ganze zuerst einmal durchlesen um die Übersicht über das Dokument zu erhalten und dann die für einem wichtigen Kapitel noch ein twites mal.
Wobei das Datenblatt zum MAX6958 mit 20 Seiten noch klein und übersichtlich ist.

Bei einem Mikrocontroller, und anderen ähnlich komplexen Bausteinen, muss man mit 1'000 bis 1'500 Seiten alleine für die Hardware rechnen. Dann kommen nochmals um die 1'000 Seiten für die Beschreibung der CPU der CPU hinzu. Die ganzen App-Notes sind oft auch noch hilfreich.
Hinzu kommt oft noch das Pflichtenheft und jede Menge Normen.
Da ist man bei einer neuen Entwicklung oft tage- bis wochenlang nur mit lesen beschäftigt.

Das gehört aber alles zum täglichen Brot eines Elektronikers!

MfG Peter(TOO)

Sauerbruch
21.11.2014, 07:38
Tja - Mikrocontroller machen zwar nur selten das was man von ihnen will, aber immer genau das, was man ihnen sagt :-)

An einem Video von der fahrenden Bierkiste wäre ich natürlich sehr interessiert :-) - viel Erfolg bei den nächsten Schritten!

therealosram
21.11.2014, 10:09
Sehr gerne, aber hier kann man leider keine Videos posten.

christianb
21.11.2014, 15:52
Funktioniert es bei euch eine '8' anzeigen zu lassen? Bei mir geht er dann immer in den Shutdown Mode.

therealosram
21.11.2014, 16:10
Poste doch mal den Adress-code

christianb
21.11.2014, 16:19
Einmal im decode mode:
sudo i2cset -y 1 0x38 0x20 0x08
und ohne:
sudo i2cset -y 1 0x38 0x20 0x7F

Einzeln funktionieren alle Segmente, aber sobald ich mehr als 6 Segmente einschalte geht er in den Shutdown Mode bzw. schaltet sich ab.

therealosram
21.11.2014, 16:29
Das ist Assembler? Da bin ich raus...

christianb
21.11.2014, 16:34
Ne ich mach das nur über nen Raspberry Pi damit ich nicht immer neu flashen muss :)
0x38(00111000) für den MAX6958
0x20(00100000) für Digit 1
0x7F(01111111) bzw. 0x08(1000) für die 8

Habt ihr eigendlich die 4 zusätzlichen LED's angeschlossen?

therealosram
22.11.2014, 11:33
Könnte das Dein Problem sein?
Ich lasse die Werte für jede Stelle als dezimalwert in den Chip



Seite 8
The address pointer in the MAX6958/MAX6959 autoincrements
after each data byte. If multiple data bytes
are transmitted before a STOP condition is detected,
these bytes are stored in subsequent MAX6958/
MAX6959 internal registers (Figure 8), unless the
address pointer has reached address 01111111. The
address pointer does not autoincrement once address
01111111 has been reached (Table 3).

christianb
24.11.2014, 13:45
hmm... glaube eher nicht, aber hier erstmal Danke für eure Hilfe.

Ich habe jetzt mal eine Email an Maxim geschrieben, sie meinten es liegt an meiner Spannungsversorgung, daraufhin habe ich diese durch ein 2A/5V Netzteil ausgetauscht(was eigentlich reichen sollte??). Leider funktioniert es immer noch nicht. Ich werde jetzt nochmal Maxim anschreiben.

MfG
Christian

Sauerbruch
24.11.2014, 16:33
Tritt dieses seltsame Verhalten auch dann auf, wenn Du die Helligkeit im Intensity-Register (0x02) auf kleinere Werte veränderst? Und hast Du schon mal versucht, die Versorgungsspannung mit einem ordentlich großen Elko zu puffern?

Edit - noch ´ne Idee: Probier doch mal was passiert, wenn Du das Test-Register (0x07) verwendest, um alle Segmente einzuschalten. Wenn sich das IC dann immer noch so komisch verhält, liegt´s wohl tatsächlich an der Stromaufnahme...

christianb
24.11.2014, 17:31
Es tritt selbst auf, wenn ich das Scan Limit auf Digit 0 (0x00), Intensity auf 1/64 (0x01) setze. Wenn ich 0x07 auf 0x01 setze blinkt die 2te 7-Segement Anzeige kurz auf, er geht dan aber sofort wieder in den Shutdown mode(bzw. es gibt ein Reset?) Das mit dem Elko ist eine gute Idee, das Probier ich mal aus.

Edit: Es funktioniert jetzt! Der 100nF Kondensator war durch die 'Bananenstecker' zu weit vom IC weg. Nochmal Danke für eure Hilfe :)

Peter(TOO)
24.11.2014, 20:41
Hallo,

Edit: Es funktioniert jetzt! Der 100nF Kondensator war durch die 'Bananenstecker' zu weit vom IC weg. Nochmal Danke für eure Hilfe :)
Deshalb hilft es sehr, ein Foto vom Aufbau zu haben.
Auch wenn das Schaltschema stimmt, macht es einen grossen Unterschied, wie lange die Leitungen zu den Blockkondensatoren sind und wo diese angeschlossen sind.

Denke immer daran, dass jeder Draht auch ein Widerstand und eine Drossel ist. Zudem wirkt ein Draht auch noch als Antenne.

Mit Steckbrettaufbauten und fliegenden Lötigeln habe ich vor bald 40 Jahren aufgehört.
Gerade bei Standard-TTL verbrachte man einfach zu viel Zeit damit, Geisterfehler zu suchen, welche irgendwie durch den fliegenden Aufbau entstanden.
Es brauchte etwa gleich viel Zeit, gleich eine Leiterplatte zu entwerfen und da dann die gemachten Fehler zu suchen. Nach den nötigen Änderungen an der Leiterplatte konnte man dann direkt in Serie gehen (am der ersten Leiterplatte gab es immer irgendwelche Änderungen, meist mechanischer Natur.).

OK, Einzelstücke, mache ich meist auch noch in Fädeltechnik.
Aber bei den Steckbrettern habe ich zu viel Zeit mit der Fehlersuche verbracht, weil z.B. ein Kontakt schlecht war oder weil sie Kapazitäten zwischen zwei Zeilen zu hoch sind, seither meide ich die Teile :-(

Auch bei NF machen die Dinger Probleme, bei einem Verstärker hast du immer jede Menge Brumm, nur durch den Aufbau :-(

MfG Peter(TOO)