Forum: Markt Suche jemanden mit Oszilloskop zum Optimieren von Signalleitungen


von Phil H. (rollingstone1989)


Lesenswert?

Hallo!

Ich habe eine Platine/ein Digitales Display, welches mit einem 
Arduino-Microcontroller über die 5V-Signalleitungen DATA und SCLK 
verbunden wurde. Leider ist die Signalübertragung noch etwas 
störanfällig, sodass manchmal falsche Zeichen übertragen werden. Das 
läge wohl an mangelnder Steilheit der Signalflanken.

Ich würde euch die Platine mit Arduino zusenden, damit ihr diese 
störungsfrei bekommt. Falls jemand im Umkreis Frankfurt/Main oder PLZ 
360 + 100km wohnt, könnte ich auch gerne bei euch mit den Teilen 
vorbeikommen.

Beste Grüße

Phil

von Sebastian S. (amateur)


Lesenswert?

Ich gehe mal davon aus, dass Du die übermittelten Informationen für 
ausreichend hältst;-)

von Phil H. (rollingstone1989)


Lesenswert?

Sebastian S. schrieb:
> Ich gehe mal davon aus, dass Du die übermittelten Informationen für
> ausreichend hältst;-)

Ich bin mir nicht sicher welche Informationen man noch braucht, um zu 
wissen, ob man die Aufgabe erledigen kann?

Dieses Display wird angesteuert:
http://pdf.datasheetcatalog.com/datasheets/400/27307_DS.pdf

von Hp M. (nachtmix)


Lesenswert?

Phil H. schrieb:
> Display, welches mit einem
> Arduino-Microcontroller über die 5V-Signalleitungen DATA und SCLK
> verbunden wurde. Leider ist die Signalübertragung noch etwas
> störanfällig,

Masse fehlt.

von Gerd E. (robberknight)


Lesenswert?

Phil H. schrieb:
> Ich würde euch die Platine mit Arduino zusenden, damit ihr diese
> störungsfrei bekommt.

Aha.

Ich würde Dir eine Rechnung für meine Stunden zusenden, damit Du sie 
bezahlst.

Oder wie stellst Du Dir das vor?

von Christian M. (Gast)


Lesenswert?

Hp M. schrieb:
> Masse fehlt

Ja und die Datenleitungen sind VIEL zu lang!

Chregu

von N. S. (sharpay)


Lesenswert?

Hallo Phil,

Gibt es im Raum Frankfurt keinen CCC oder eine Hackzene. Die würden dir 
gegen eine Spende helfen und du könntest durch deine Anwesenheit
bei der Fehlersuche was lernen.
 An Alle, Mkikrocontroller.net ist in erster Linie ein 
Mikrocontrollerforum
für Elektronik begeisterte und primär kein gewerbliches Forum (dachte 
ich!)

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

N. S. schrieb:
>  An Alle, Mkikrocontroller.net ist in erster Linie ein
> Mikrocontrollerforum
> für Elektronik begeisterte und primär kein gewerbliches Forum (dachte
> ich!)

Was nicht bedeutet, dass man sich ausnutzen lassen muss. Denn so klingt 
der Wunsch des TS leider. Vielleicht versteht der TS das nicht und 
glaubt wirklich, dass es mit mal kurz ein Oszilloskop dran halten getan 
ist.

Das soll dann wie Handauflegen funktionieren? Zur Fehlerbeseitigung 
nötige Hard- und/oder Softwareänderungen machen sich von alleine? Oder 
wird zur Fehlersuche und Beseitigung, entgegen der Behauptung des TS, 
mehr benötigt, wie vielleicht ein Logikanalysator, Sourcecode, Debugger, 
etc.?

Natürlich darf jeder selbst entscheiden ob er seine Zeit mit dem 
Arduino-Rotz anderer Leute verbringen möchte oder sich lieber um seine 
eigenen Projekte kümmert. Was ich aber gar nicht ab kann ist wenn Dritte 
wie Du auftauchen, die einem Anweisen wollen dass man sich das antun 
soll. Mach doch selber.

von Papa Q. (papa_q)


Lesenswert?

Als ich 18 war und mit Amateuerfunk begonnen hatte (1995) gab es einige 
OMs die Nachmittage damit verbrachten, mir zu helfen. Sie hatten 
Spektrumanalzer, um einen 23cm Sender und Empfänger einzustellen.

Tolle Einstellung damals. Bestimmt gibt es heute immer Leute von dem 
Schlag.

Vielleicht nicht gerade Hannes Jaeger oder Gerd E

von Thomas V. (Gast)


Lesenswert?

ja, so etwas wie hamspirit gibt's nicht mehr...

Ich würde mich bereiterklären die Messungen durchzuführen.
Kostenlos natürlich.... außer Porto

von Jörg R. (solar77)


Lesenswert?

Hallo Phil,

poste doch mal einige Bilder vom Aufbau der Schaltung und den 
Schaltplan. Vielleicht kann man erkennen wo dein Problem liegt.

: Bearbeitet durch User
von Gerd E. (robberknight)


Lesenswert?

Papa Q. schrieb:
> Tolle Einstellung damals. Bestimmt gibt es heute immer Leute von dem
> Schlag.
>
> Vielleicht nicht gerade Hannes Jaeger oder Gerd E

Ich glaube da hast Du mich falsch verstanden:

Ich helfe gerne bei solchen Problemen. Aber im Rahmen der Hilfe zu 
Selbsthilfe, am besten so daß auch noch andere etwas davon haben.

Der Post des TO klang aber für micht nicht so als ob er lernen möchte 
was er besser machen kann, sondern nach "ich schick das irgendjemandem 
und der darf dann sehen wie er meinen Mist ans Laufen kriegt".

Zu hamspirit gehört auch, daß der Hilfesuchende selbst Engagement zeigt 
das zu lernen.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Lesen und verstehen, dann Problem angehen:
https://www.mikrocontroller.net/articles/Wellenwiderstand

von Dennis R. (dennis_ec) Flattr this


Lesenswert?

Ich würde aus 35390 kommen

von Phil H. (rollingstone1989)


Lesenswert?

Danke erstmal an alle.
Weil ich ja ein sehr spontaner Mensch bin, bin ich dem Vorschlag von 
sharpay gleich mal nachgegangen und komme gerade aus einem CCC "chaos 
computer club". Hab auch gleich jemanden mit Oszilloskop, Logikprüfer 
usw. gefunden. Leider konnte er den Fehler auch nicht ausmerzen.
Wir haben auch andere Netzteile, extrem kurze Signalleitungen und 
sämtliche Spannungs/-Groundkombinationen ausprobiert. Seine Ausrüstung 
war leider auch besser als sein Know-how. Allgemein war der 
Altersdurchschnitt dort zwischen 17 und 27, sodass tendenziell eh keine 
alten Hasen mit wirklich Ahnung vorhanden waren.

Auf jeden Fall hab ich eingesehen dass man die Teile vor sich liegen 
haben muss, um effektiv was machen zu können. Da bringt dieser Forenkram 
mit Hin und Her nix mehr, weil man ständig aneinander vorbei redet.

Kostenlos soll das natürlich niemand machen. Vielleicht kommt ja jemand 
mit 30 Euro hin. Wenn derjenige ne Stunde braucht um das Problem zu 
beheben ist das doch nen akzeptabler Stundenlohn. Wenn ich es mir 
leisten könnte würde ich die Lumperei auch einfach zu nem Gewerbelichen 
bringen, dann wäre das Thema schon längst erledigt.

Mein Engagement ist sehr groß (Thread zum eigentlichen Thema, Achtung, 
.... zum Lesen zu viel: 
Beitrag "Digitales Display und Keyboard mit PC verbinden"), mein Wissen 
allerdings gering.

@Thomas & Dennis: Danke! Vorgemerkt.
@fritzler: Ich versteh davon gar nix. Wenn du bereit wärest das für mich 
zu machen kannst du dich ja nochmal zurückmelden.

von Phil H. (rollingstone1989)


Lesenswert?

Mw E. schrieb:
> Lesen und verstehen, dann Problem angehen:
> https://www.mikrocontroller.net/articles/Wellenwiderstand

Okay. Gelesen hab ich. Verstanden eventuell.

Das ist ja alles ganz toll und ich würde gerne die Serienterminierung 
durchführen, nur fehlen mir die Werte zur Berechnung.

- Wie groß ist meine minimale Anstiegszeit?
Für meinen verbauten Controller ATmega 
32U4(http://www.atmel.com/Images/Atmel-7766-8-bit-AVR-ATmega16U4-32U4_Datasheet.pdf) 
auf Seite 385 ist nur eine maximale Rising time definiert. (=0.5us)

- Wie hoch ist der Ausgangswiderstand meines Arduino an den Pins? Finde 
dazu leider keine Angaben. (auch nicht im Datenblatt zum Controller)

Meine DATA- und SCLK-Leitungen bestehen aus etwa 10cm herkömmlicher 
Schaltlitze/Kfz-Litze wie im Original und gegen dann direkt in die 
Displayplatine in die Leiterbahnen, welche dort nochmal etwa 30cm bis 
zum Displaycontroller weiterverlaufen.

von Jörg R. (solar77)


Lesenswert?

Hallo Phil,

ich wiederhole mich gerne:

Poste doch mal einige aussagekräftige Bilder vom Aufbau der Schaltung, 
den  Schaltplan und den Code. Vielleicht kann man erkennen wo dein 
Problem liegt.

Außer der Hilfe die man Dir hier bereits angeboten hat drehen wir uns 
sonst weiterhin im Kreis.

Dein Problem klingt, ohne mich jetzt weit aus dem Fenster lehnen zu 
wollen, recht trivial. Ohne detaillierte Informationen wirst Du hier 
aber keine Lösungsvorschläge erwarten können.

Jetzt sei mal so spontan und füttere uns mit Informationen :-)

###########

Und noch eine kurze Bemerkung zu einem Teil von einem Kommentar von Dir:

Phil H. schrieb:
> Allgemein war der Altersdurchschnitt dort zwischen 17 und 27, sodass
> tendenziell eh keine alten Hasen mit wirklich Ahnung vorhanden waren.

Das hat mit dem Alter nicht unbedingt etwas tun. Es gibt mit Sicherheit 
17 jährige die eine Menge Ahnung haben. Und ein 27 jähriger der sich 
schon länger mit dem Thema beschäftigt ist ein "alter" Hase.

: Bearbeitet durch User
von Phil H. (rollingstone1989)



Lesenswert?

@Jörg:

Beschrifteter Aufbau der Schaltung: (Bilder 1 bis 3)
(in der DATA- und SCLK-Leitung hängt aktuell wie gezeigt/beschrieben 
jeweils ein 100-Ohm-Widerstand, vom Ergebnis allerdings leicht 
schlechter als vorher)
(Das USB-Verbindungskabel vom Arduino ist bei meinen Versuchen 
selbstverständlich mit dem PC verbunden. Ist auf den Bildern nur nicht 
eingesteckt)

Schaltplan Platine: Digital_Display_Rowe_marked.pdf

Datenblatt Displaycontroller: 
CD100_digital_display_Rockwell_data_sheet.pdf

Code:
1
int por = 12;
2
int data = 10;
3
int sclk = 11;
4
5
6
void DisplayOut(byte outdata)
7
{
8
  byte mask = 0b10000000;
9
10
  delayMicroseconds(100);
11
  while (mask)
12
  {
13
    digitalWrite(sclk, HIGH);
14
    delayMicroseconds(0.5);
15
    if (mask & outdata)
16
    {
17
      digitalWrite(data, HIGH);
18
    }
19
    else  
20
    {
21
      digitalWrite(data, LOW);
22
    }
23
    delayMicroseconds(5); //200ns
24
    digitalWrite(sclk, LOW);
25
    delayMicroseconds(5); //100ns
26
    mask = mask >> 1;
27
  }
28
}
29
30
void setup()
31
{
32
  
33
  pinMode(por, OUTPUT);
34
  pinMode(data, OUTPUT);
35
  pinMode(sclk, OUTPUT);
36
37
  delayMicroseconds(1000);
38
  digitalWrite(por, LOW);
39
  delayMicroseconds(1000);
40
  digitalWrite(por, HIGH);
41
42
  digitalWrite(sclk, LOW);
43
44
  
45
  DisplayOut(0b10101111); //Buffer Pointer Control: Start bei AD1
46
  DisplayOut(0b11000000); //Digit Counter Control: Digits=16
47
  DisplayOut(0b11101111); //Duty Cycle Control: =15
48
  
49
50
51
    DisplayOut(byte('T'));
52
    DisplayOut(byte('E'));
53
    DisplayOut(byte('S'));
54
    DisplayOut(byte('T'));
55
    DisplayOut(byte('1'));
56
    DisplayOut(byte('2'));
57
    DisplayOut(byte('3'));
58
    DisplayOut(byte('4'));
59
    DisplayOut(byte('E'));
60
    DisplayOut(byte('I'));
61
    DisplayOut(byte('N'));
62
    DisplayOut(byte('S'));
63
    DisplayOut(byte('Z'));
64
    DisplayOut(byte('W'));
65
    DisplayOut(byte('E'));
66
    DisplayOut(byte('I'));
67
68
69
}
70
71
72
void loop()
73
{
74
75
}

: Bearbeitet durch User
von Dennis R. (dennis_ec) Flattr this


Lesenswert?

Wo ist die GND Verbindung vom Arduino zum Display?

von Jörg R. (solar77)


Lesenswert?

Hallo Phil,

die fehlende GND-Verbindung hat Dennis schon aufgeführt.

Welche Funktion haben die 2 Widerstände zwischen dem Arduino-Board und 
dem Display ? Pullup/Down kann nicht sein, die sind ja in Reihe zum 
Display.
Sollten auf dem Display-Bord Pulldown-Widerstände sein bilden sie mit 
deinen 2 Widerständen einen Spannungsteiler.

Welche Funktion haben die Antennen, die an dem großen Chip und an R2 ?

Die Platine sieht unter dem linken Stecker aus als hätte es dort 
geschmort.

Die rechte Lötstelle an C15 sieht nicht gut aus.

Rechts unten an dem großen Chip war wohl auch mal ein Chip. Da ist auch 
ein Loch in der Platine. Die Lötstellen der Drähte/Brücken sind schlecht 
gelötet.

und, und, und....

Der Aufbau bzw. die Verdrahtung der ganzen Schaltung ist katastrophal!

Ich würde erst einmal für eine vernünftige Stromversorgung und 
vernüftige Verbindungen zwischen den Boards sorgen. Die Antennen 
solltest du auch entfernen. Auf der Platine wurde so rumgebraten das es 
fraglich ist ob die Platine so funktioniert wie es sein soll. Ich bin da 
skeptisch.

Den Code müssen andere beurteilen, ich fange selber gerade erst an zu 
programmieren.

: Bearbeitet durch User
von Walter S. (avatar)


Lesenswert?

Phil H. schrieb:
> delayMicroseconds(0.5);
entspricht delayMicroseconds(0);

wenn du Funktionen des Arduino verwendest, schau immer nach wie sie 
verwendet werden müssen, z.B.
https://www.arduino.cc/en/Reference/DelayMicroseconds

und wie erwähnt verbinde unbedingt GND!!!!

Wenn der Arduino die Displayplatine versorgen soll:
reicht da der Strom?

von Phil H. (rollingstone1989)


Lesenswert?

Dennis R. schrieb:
> Wo ist die GND Verbindung vom Arduino zum Display?

Jörg R. schrieb:
> Hallo Phil,
>
> die fehlende GND-Verbindung hat Dennis schon aufgeführt.


Wo soll ich denn Ground vom Arduino anschließen?
Dass dieser Ground eben gerade NICHT angeschlossen werden soll, hatten 
wir im verlinkten Thread bereits ausgiebig geklärt. (nur ein gemeinsames 
Bezugspotenzial=Logic Common)
Falls die die das behaupteten Unrecht hatten, bitte KONKRETEN 
Gegenvorschlag. :)


> Welche Funktion haben die 2 Widerstände zwischen dem Arduino-Board und
> dem Display ? Pullup/Down kann nicht sein, die sind ja in Reihe zum
> Display.
> Sollten auf dem Display-Bord Pulldown-Widerstände sein bilden sie mit
> deinen 2 Widerständen einen Spannungsteiler.

Keine Funktion bzw. Versuch, Wellenwiderstand auszugleichen. Kann ich 
auch rausmachen, funktioniert dann genauso gut/schlecht.

> Welche Funktion haben die Antennen, die an dem großen Chip und an R2 ?

Schnellanschluss für Signale zum Testen. Da war überall mal was 
angeschlossen, nach Tipps vom Forum. Fehler also nicht erst seit diesen 
Antennen vorhanden.


> Die Platine sieht unter dem linken Stecker aus als hätte es dort
> geschmort.
>
> Die rechte Lötstelle an C15 sieht nicht gut aus.

Hierzu ist zu sagen dass die Platine vorher 1A funktionierte. Das war 
schon alles vorher so...


> Rechts unten an dem großen Chip war wohl auch mal ein Chip. Da ist auch
> ein Loch in der Platine. Die Lötstellen der Drähte/Brücken sind schlecht
> gelötet.

Den Chip hab ich ausgelötet, um die Drahtbrücken einzusetzen. Loch ist 
dort, wo eine nicht angeschlossene Leitung liegt...


> Der Aufbau bzw. die Verdrahtung der ganzen Schaltung ist katastrophal!
>
> Ich würde erst einmal für eine vernünftige Stromversorgung und
> vernüftige Verbindungen zwischen den Boards sorgen. Die Antennen
> solltest du auch entfernen. Auf der Platine wurde so rumgebraten das es
> fraglich ist ob die Platine so funktioniert wie es sein soll. Ich bin da
> skeptisch.

Was ist denn eine "vernünftige Stromversorgung"?

An alle: Denkt ihr wirklich, es könnte an den hässlichen Lötstellen 
liegen?

: Bearbeitet durch User
von Phil H. (rollingstone1989)


Lesenswert?

Walter S. schrieb:
> Phil H. schrieb:
>> delayMicroseconds(0.5);
> entspricht delayMicroseconds(0);
>
> wenn du Funktionen des Arduino verwendest, schau immer nach wie sie
> verwendet werden müssen, z.B.
> https://www.arduino.cc/en/Reference/DelayMicroseconds

Danke, guter Hinweis. Werde das ändern.


> Wenn der Arduino die Displayplatine versorgen soll:
> reicht da der Strom?

Arduino würde wenn dann nur den Controller U1 versorgen. Platine 
weiterhin von +8V des Netzteils. Da ist irgendwie eine Trennung drin ab 
dem Spannungswandler, siehe Bilder.

: Bearbeitet durch User
von Jörg R. (solar77)


Lesenswert?

Phil H. schrieb:
> Wo soll ich denn Ground vom Arduino anschließen?
> Dass dieser Ground eben gerade NICHT angeschlossen werden soll, hatten
> wir im verlinkten Thread bereits ausgiebig geklärt. (nur ein gemeinsames
> Bezugspotenzial=Logic Common)
> Falls die die das behaupteten Unrecht hatten, bitte KONKRETEN
> Gegenvorschlag. :)

Wo ist denn Dein Bezugspotential ? Von Deinem Arduino-Board sieht man 4 
Drähte die zum Display-Board führen. 5 Volt, POR, Data und SCLK.
Gegen welches Potential soll das Display-Board diese 3 Signale auswerten 
?


Phil H. schrieb:
> Arduino würde wenn dann nur den Controller U1 versorgen. Platine
> weiterhin von +8V des Netzteils. Da ist irgendwie eine Trennung drin ab
> dem Spannungswandler, siehe Bilder.

....irgendwie eine Trennung drin...???

Evtl. werden die 5 Volt von der USB-Versorgung mit den 5 Volt die das 
Display-Board versorgen zusammengeführt !

Vielleicht wäre ein Ansatz nur das Display zu versorgen und die 5 Volt 
für den Arduino auch vom Display-Board zu nehmen, natürlich auch GND. 
Der programmierte Arduino benötigt keine Verbindung zum PC und damit 
keinen Anschluss an seiner USB-Buchse.

Über welche Art von Stromversorgung verfügst Du ?

von Phil H. (rollingstone1989)


Lesenswert?

Jörg R. schrieb:
> Phil H. schrieb:
>> Wo soll ich denn Ground vom Arduino anschließen?
>> Dass dieser Ground eben gerade NICHT angeschlossen werden soll, hatten
>> wir im verlinkten Thread bereits ausgiebig geklärt. (nur ein gemeinsames
>> Bezugspotenzial=Logic Common)
>> Falls die die das behaupteten Unrecht hatten, bitte KONKRETEN
>> Gegenvorschlag. :)
>
> Wo ist denn Dein Bezugspotential ? Von Deinem Arduino-Board sieht man 4
> Drähte die zum Display-Board führen. 5 Volt, POR, Data und SCLK.
> Gegen welches Potential soll das Display-Board diese 3 Signale auswerten
> ?
>

Jepp, vom Arduino gehen diese 4 Drähte weg.

Das Bezugspotenzial ist aktuell das Logic Common, das vom Netzteil 
kommt.

>
> Phil H. schrieb:
>> Arduino würde wenn dann nur den Controller U1 versorgen. Platine
>> weiterhin von +8V des Netzteils. Da ist irgendwie eine Trennung drin ab
>> dem Spannungswandler, siehe Bilder.
>
> ....irgendwie eine Trennung drin...???
>
> Evtl. werden die 5 Volt von der USB-Versorgung mit den 5 Volt die das
> Display-Board versorgen zusammengeführt !

Ja, das ist so, wenn ich den Spannungswandler nicht kappe! Dann 
überlagern sich die 5V vom USB mit den 5V des Spannungswandlers. Ob das 
gut, schlecht oder egal ist? Weiß nicht.


> Vielleicht wäre ein Ansatz nur das Display zu versorgen und die 5 Volt
> für den Arduino auch vom Display-Board zu nehmen, natürlich auch GND.
> Der programmierte Arduino benötigt keine Verbindung zum PC und damit
> keinen Anschluss an seiner USB-Buchse.

Dieser Gedanke ist gar nicht schlecht. Habe das gerade mal ausprobiert!
Habe die 5V von der Platine abgegriffen und an den Arduino-Input 
angeschlossen, ebenso das Groundsignal "Logic Common" der Platine und an 
den Groundpin des Arduino. Ergebnis: Es funktioniert, allerdings mit dem 
gleichen Fehlerbild wie vorher.
Habe dann auch mal etwas weiter vorne (vor dem Spannungswandler) die 8V 
abgegriffen und an den Arduino gesteckt. Funktionierte genauso, 
allerdings mit einem seltsamen Zischen von der Platine ausgehend. Klang 
nicht so gesund.


> Über welche Art von Stromversorgung verfügst Du ?


Das Netzteil das original zum Display gehört. Oder was meinst du?

von Jörg R. (solar77)


Lesenswert?

Phil H. schrieb:
> Habe dann auch mal etwas weiter vorne (vor dem Spannungswandler) die 8V
> abgegriffen und an den Arduino gesteckt. Funktionierte genauso,
> allerdings mit einem seltsamen Zischen von der Platine ausgehend. Klang
> nicht so gesund.

Ne, ist auch nicht gesund für den Arduino ! Hoffentlich hast Du ihn nich 
gehimmelt. Ich schrieb ja auch "die 5 Volt...." !


Phil H. schrieb:
> Ja, das ist so, wenn ich den Spannungswandler nicht kappe! Dann
> überlagern sich die 5V vom USB mit den 5V des Spannungswandlers. Ob das
> gut, schlecht oder egal ist? Weiß nicht.

Schlecht !

von Phil H. (rollingstone1989)


Lesenswert?

Jörg R. schrieb:
> Phil H. schrieb:
>> Habe dann auch mal etwas weiter vorne (vor dem Spannungswandler) die 8V
>> abgegriffen und an den Arduino gesteckt. Funktionierte genauso,
>> allerdings mit einem seltsamen Zischen von der Platine ausgehend. Klang
>> nicht so gesund.
>
> Ne, ist auch nicht gesund für den Arduino ! Hoffentlich hast Du ihn nich
> gehimmelt. Ich schrieb ja auch "die 5 Volt...." !

Naja, die Arduinoseite schreibt dazu:

"The board can operate on an external supply of 6 to 20 volts. If 
supplied with less than 7V, however, the 5V pin may supply less than 
five volts and the board may become unstable. If using more than 12V, 
the voltage regulator may overheat and damage the board. The recommended 
range is 7 to 12 volts."


> Phil H. schrieb:
>> Ja, das ist so, wenn ich den Spannungswandler nicht kappe! Dann
>> überlagern sich die 5V vom USB mit den 5V des Spannungswandlers. Ob das
>> gut, schlecht oder egal ist? Weiß nicht.
>
> Schlecht !

Ok.

Summa summarum bin ich der Meinung, dass es entweder an dem 
Wellenwiderstandskram liegt oder am nicht vorhandenen Ground des 
Arduino. Nur wüsste ich nicht wo ich die Masse des Arduino anschließen 
soll. Wenn ich die Arduinomasse anschließe, müsste ich ja das Logic 
Common vom Netzteil entfernen, sonst hätte ich zwei verschiedene 
Massebezüge? Beides zusammen geht auch nicht, schon probiert. (was wohl 
auch vollkommen schwachsinnig war)

von Thomas V. (Gast)


Lesenswert?

Phil H. schrieb:
> Habe dann auch mal etwas weiter vorne (vor dem Spannungswandler) die 8V
> abgegriffen und an den Arduino gesteckt. Funktionierte genauso,
> allerdings mit einem seltsamen Zischen von der Platine ausgehend. Klang
> nicht so gesund.


Das ist doch jetzt nicht Dein Ernst, oder?
Ich habe das Gefühl dass Dir einige wichtige Grundlagen der 
Elektrotechnik fehlen.

Man (ich auch) hat Dir konkrete Hilfe angeboten, jetzt pfuscht Du immer 
weiter in der Schaltung rum bis sie komplett kaputt ist.
Muss man nicht verstehen....

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Thomas V. schrieb:
> Das ist doch jetzt nicht Dein Ernst, oder?
> Ich habe das Gefühl dass Dir einige wichtige Grundlagen der
> Elektrotechnik fehlen.
>
> Man (ich auch) hat Dir konkrete Hilfe angeboten, jetzt pfuscht Du immer
> weiter in der Schaltung rum bis sie komplett kaputt ist.
> Muss man nicht verstehen....

Dein Hamspirit hat aber nicht lange vorgehalten, ha ha ha.

von Phil H. (rollingstone1989)


Lesenswert?

Thomas V. schrieb:
> Phil H. schrieb:
>> Habe dann auch mal etwas weiter vorne (vor dem Spannungswandler) die 8V
>> abgegriffen und an den Arduino gesteckt. Funktionierte genauso,
>> allerdings mit einem seltsamen Zischen von der Platine ausgehend. Klang
>> nicht so gesund.
>
> Das ist doch jetzt nicht Dein Ernst, oder?
> Ich habe das Gefühl dass Dir einige wichtige Grundlagen der
> Elektrotechnik fehlen.

Ich versteh nicht so recht, was an den 8V so dramatisch gewesen sein 
soll?

Auf der Arduinoseite steht ja ganz klar:
"The board can operate on an external supply of 6 to 20 volts. If
supplied with less than 7V, however, the 5V pin may supply less than
five volts and the board may become unstable. If using more than 12V,
the voltage regulator may overheat and damage the board. The recommended
range is 7 to 12 volts."


> Man (ich auch) hat Dir konkrete Hilfe angeboten, jetzt pfuscht Du immer
> weiter in der Schaltung rum bis sie komplett kaputt ist.
> Muss man nicht verstehen....

So ist das eben, wenn man am Basteln ist und es eben doch hinbekommen 
will. Macht ja auch nen bisschen Spaß, so isses ja nicht. Man muss ja 
auch sagen dass ich schon weit gekommen bin, dafür dass ich keinerlei 
Ahnung von der Materie hatte/habe.


Hannes J. schrieb:
> Dein Hamspirit hat aber nicht lange vorgehalten, ha ha ha.

Weshalb? Hat er irgendwo erwähnt dass er es nicht mehr machen möchte?

von Falk B. (falk)


Lesenswert?

@Phil H. (rollingstone1989)

>Naja, die Arduinoseite schreibt dazu:

>the voltage regulator may overheat and damage the board. The recommended
>range is 7 to 12 volts."

Das reicht als Aussage.

>Summa summarum bin ich der Meinung, dass es entweder an dem
>Wellenwiderstandskram liegt

Nö, nicht bei den kurzen Kabeln, siehe Wellenwiderstand. Die 
minimale Anstiegszeit bei AVR/Arduino leuigt bei ca. 5ns.

> oder am nicht vorhandenen Ground des
>Arduino.

JAAA!!

> Nur wüsste ich nicht wo ich die Masse des Arduino anschließen
>soll.

An einem Massepin!

> Wenn ich die Arduinomasse anschließe, müsste ich ja das Logic
>Common vom Netzteil entfernen, sonst hätte ich zwei verschiedene
>Massebezüge?

Quark!!

> Beides zusammen geht auch nicht, schon probiert. (was wohl
>auch vollkommen schwachsinnig war)

???

In 99% aller Schaltungen müssen alle Massen aller Komponenten verbunden 
werden. Auch hier. Masse vom Arduino muss genauso kurz wie die 
Signalleitungen mit der Masse vom Display verbunden werden. An den 
gleichen Punkt kommt die Masse vom Netzteil!
Und überall dort, wo eher schnelle Signalleitungen von Gerät A zu Gerät 
B verlaufen, muss ebenso eine Masse verlaufen und nicht meilenweil 
woanders lang. Der Herr Maxwell läßt grüßen.

von Dennis R. (dennis_ec) Flattr this


Lesenswert?

Ich glaube du brauchst niemand mit einem Oszilloskop sondern eher jemand 
der dir mal das Bezugspotential erklärt.

Oben im Bild schreibst du das du an den PIN 1 des Display Controllers 
die +5V Gehängt hast vom Arduino.

Wenn man das Datenblatt des Displaycontrollers mal gelesen hätte:

Signal Name : VSS ; Pin No: 1 ;Function:Power and Signal Reference.

Das heißt VSS-> GND.

Du hast hier deine +5V Angelegt, ist das Netzteil nun Galvanisch 
getrennt versteht dein Display das High vom Arduino als 0V und das LOW 
als -5V .

Das kann schonmal nicht gehen.....

E:

Mess doch mal den Widerstand von Pin1 zum Logic Common.

: Bearbeitet durch User
von Phil H. (rollingstone1989)


Lesenswert?

Falk B. schrieb:
> @Phil H. (rollingstone1989)
>
>>Naja, die Arduinoseite schreibt dazu:
>
>>the voltage regulator may overheat and damage the board. The recommended
>>range is 7 to 12 volts."
>
> Das reicht als Aussage.

Das reicht als Aussage? Dort steht, wenn man mehr als 12V anschließt, 
können diese Schäden entstehen. Ich habe 8V (!!!!!!!!!!!!!!!!!!!!!!) 
angeschlossen, was im empfohlenen Spannungsbereich liegt! ("The 
recommended range is 7 to 12 volts.)

Entweder bin ich besoffen, oder du/ihr?


>> Nur wüsste ich nicht wo ich die Masse des Arduino anschließen
>>soll.
>
> An einem Massepin!

Habe ich schon probiert. Arduinomasse direkt an den Punkt, wo auch die 
Netzteilmasse angeschlossen ist. Display geht in dem Fall überhaupt 
nicht an.




Dennis R. schrieb:
> Ich glaube du brauchst niemand mit einem Oszilloskop sondern eher
> jemand
> der dir mal das Bezugspotential erklärt.
>
> Oben im Bild schreibst du das du an den PIN 1 des Display Controllers
> die +5V Gehängt hast vom Arduino.
>
> Wenn man das Datenblatt des Displaycontrollers mal gelesen hätte:
>
> Signal Name : VSS ; Pin No: 1 ;Function:Power and Signal Reference.
>
> Das heißt VSS-> GND.
>
> Du hast hier deine +5V Angelegt, ist das Netzteil nun Galvanisch
> getrennt versteht dein Display das High vom Arduino als 0V und das LOW
> als -5V .
>
> Das kann schonmal nicht gehen.....
>
> E:
>
> Mess doch mal den Widerstand von Pin1 zum Logic Common.

Dazu gilt zu sagen:
50% von diesem Forum können absolut keine Ahnung haben (welcher Teil das 
ist mag ich nicht zu beurteilen), weil sie auch schon an diesen 
Grundlagen scheitern. Wenn ich jetzt alle Meinungen aus meinem weiter 
oben verlinkten Thread und aus diesem Thread hier zusammenlege behaupten 
50% VSS=GND und die anderen 50% VSS=5V-Anschluss. 50% können die von dir 
angesprochene Zeichnung auf der letzten Seite des Datenblatts also auch 
nicht richtig lesen. Da geht ja das Problem schon los. Nur logisch, dass 
ich da verwirrt bin.

von René F. (Gast)


Lesenswert?

Phil H. schrieb:
> Dazu gilt zu sagen:
> 50% von diesem Forum können absolut keine Ahnung haben (welcher Teil das
> ist mag ich nicht zu beurteilen)

Immer schön den Ball flach halten, du möchtest etwas von diesen 
Forumsteilnehmern hier und scheinst anscheinend selbst nicht wirklich 
"Ahnung" von der Materie zu haben,
Übrigens die 7V bis 12V sind nur zulässig am Regler, wenn du diese 
überbrückst ist es klar das da was kaputt geht, nachdem der 
Mikrocontroller nur 5V verträgt (deswegen auch der Spannungsregler am 
Eingang)...

von Jörg R. (solar77)


Lesenswert?

@ Falk und Dennis
Gute Kommentare ?

@ Phil
Beschäftige Dich erst einmal mit einigen Grundlagen.
Lerne mit dem Lötkolben zu arbeiten und feile auch etwas an Deinem Ton.

Nimm ggf. die Hilfe in Anspruch die man Dir hier angeboten hat.

Ich bin raus !

: Bearbeitet durch User
von H. K. (spearfish)


Lesenswert?

Phil H. schrieb:
> Dazu gilt zu sagen:
> 50% von diesem Forum können absolut keine Ahnung haben (welcher Teil das
> ist mag ich nicht zu beurteilen), weil sie auch schon an diesen
> Grundlagen scheitern. Wenn ich jetzt alle Meinungen aus meinem weiter
> oben verlinkten Thread und aus diesem Thread hier zusammenlege behaupten
> 50% VSS=GND und die anderen 50% VSS=5V-Anschluss. 50% können die von dir
> angesprochene Zeichnung auf der letzten Seite des Datenblatts also auch
> nicht richtig lesen. Da geht ja das Problem schon los. Nur logisch, dass
> ich da verwirrt bin.

Vorsichtig, bevor du hier anderen Leuten etwas unterstellst. Denn du 
hast offensichtlich das Datenblatt nicht gelesen.

Vss kannst du sowohl bei 0V als auch bei 5V anschließen. Das ist ja der 
Clou an dem ganzen: Vss liefert das Bezugspotential für deine restlichen 
Signale! Steht aber auch so im Datenblatt... ließ dir doch mal in 
Abschnitt 5-4 die "DC Characteristics" deines Controllers durch. Auf 
deiner Platine ist das aber sowieso hinfällig, da Vss bereits auf +5V 
("erzeugt" von einem LM7805) hängt.

Wie du schon mehrmals darauf hingewiesen worden bist, fehlt die 
Ground-Verbindung zwischen Arduino und dem Board.  Ich habe nicht ganz 
mitbekommen, wie du deinen Arduino versorgst, aber warum versorgst du 
deinen Arduino nicht auch mit den +8V/GND vom Netzteil?

Dann schließt du das GND vom Netzteil sowohl an den GND Pin vom Arduino 
und an den Logic Common von der Displayplatine an. Damit hast du dann 
ein gemeinsames Bezugspotential. Der LM7805 auf der Displayplatine hängt 
ja auch auf diesem GND...

von Phil H. (rollingstone1989)


Lesenswert?

Heinz K. schrieb:
> Phil H. schrieb:
>> Dazu gilt zu sagen:
>> 50% von diesem Forum können absolut keine Ahnung haben (welcher Teil das
>> ist mag ich nicht zu beurteilen), weil sie auch schon an diesen
>> Grundlagen scheitern. Wenn ich jetzt alle Meinungen aus meinem weiter
>> oben verlinkten Thread und aus diesem Thread hier zusammenlege behaupten
>> 50% VSS=GND und die anderen 50% VSS=5V-Anschluss. 50% können die von dir
>> angesprochene Zeichnung auf der letzten Seite des Datenblatts also auch
>> nicht richtig lesen. Da geht ja das Problem schon los. Nur logisch, dass
>> ich da verwirrt bin.
>
> Vorsichtig, bevor du hier anderen Leuten etwas unterstellst. Denn du
> hast offensichtlich das Datenblatt nicht gelesen.
>
> Vss kannst du sowohl bei 0V als auch bei 5V anschließen. Das ist ja der
> Clou an dem ganzen: Vss liefert das Bezugspotential für deine restlichen
> Signale! Steht aber auch so im Datenblatt... ließ dir doch mal in
> Abschnitt 5-4 die "DC Characteristics" deines Controllers durch. Auf
> deiner Platine ist das aber sowieso hinfällig, da Vss bereits auf +5V
> ("erzeugt" von einem LM7805) hängt.
>
> Wie du schon mehrmals darauf hingewiesen worden bist, fehlt die
> Ground-Verbindung zwischen Arduino und dem Board.  Ich habe nicht ganz
> mitbekommen, wie du deinen Arduino versorgst, aber warum versorgst du
> deinen Arduino nicht auch mit den +8V/GND vom Netzteil?
>
> Dann schließt du das GND vom Netzteil sowohl an den GND Pin vom Arduino
> und an den Logic Common von der Displayplatine an. Damit hast du dann
> ein gemeinsames Bezugspotential. Der LM7805 auf der Displayplatine hängt
> ja auch auf diesem GND...


Hallo Heinz!

Danke für deinen Beitrag. Hab ich verstanden.

Genau so habe ich es gemacht, wie du im letzten Absatz beschrieben hast! 
GND vom Netzteil hängt am GND-Arduino-Pin sowie am "Logic Common" der 
Displayplatine.
Der Arduino bekommt seine Spannung von einem 5V-Pin der Displayplatine, 
d.h. auch vom Netzteil! (habe auch gemessen, die 5V kommen an!)

Ergebnis: Gleiches wie vorher. 1 bis 3 Fehlstellen pro Durchgang.

: Bearbeitet durch User
von Dieter F. (Gast)


Lesenswert?

Phil H. schrieb:
> Danke, guter Hinweis. Werde das ändern.

Wie sieht denn Dein Programm aktuell aus?

von H. K. (spearfish)


Lesenswert?

Phil H. schrieb:
> Genau so habe ich es gemacht, wie du im letzten Absatz beschrieben hast!
> GND vom Netzteil hängt am GND-Arduino-Pin sowie am "Logic Common" der
> Displayplatine.
> Der Arduino bekommt seine Spannung von einem 5V-Pin der Displayplatine,
> d.h. auch vom Netzteil! (habe auch gemessen, die 5V kommen an!)
>
> Ergebnis: Gleiches wie vorher. 1 bis 3 Fehlstellen pro Durchgang.

Der Arduino hat einen eigenen Spannungsregler. Lege die +8V vom Netzteil 
an diesen Spannungsregler (wenn das ein MC33269 ist verträgt der bis zu 
20V). GND bleibt gleich.

Ein µC hat eine stark schwankende Stromaufnahme. Wenn du jetzt die +5V, 
die eigentlich zum Displaycontroller gehen jetzt auch zum Arduino 
führst, könnten hier Störungen auftreten, die einer Beschreibung 
entsprechen (v.a. wenn du das Kabel direkt auf den Pin vom Controller 
montierst). Das wäre meine Vermutung, kann aber auch sein, dass ich 
falsch liege.

von Phil H. (rollingstone1989)


Lesenswert?

Dieter F. schrieb:
> Phil H. schrieb:
>> Danke, guter Hinweis. Werde das ändern.
>
> Wie sieht denn Dein Programm aktuell aus?

Hallo Dieter,

Programm sieht aktuell so aus:
1
int por = 12;
2
int data = 10;
3
int sclk = 11;
4
5
void DisplayOut(byte outdata)
6
{
7
  byte mask = 0b10000000;
8
9
  delayMicroseconds(100); //mind. 40us zwischen den Bytes laut DB
10
  while (mask)
11
  {
12
    digitalWrite(sclk, HIGH);
13
    delayMicroseconds(3);
14
    if (mask & outdata)
15
    {
16
      digitalWrite(data, HIGH);
17
    }
18
    else  
19
    {
20
      digitalWrite(data, LOW);
21
    }
22
    delayMicroseconds(5); //mind. 200ns=0.2us laut DB
23
    digitalWrite(sclk, LOW);
24
    delayMicroseconds(5); //mind. 100ns=0.1us laut DB
25
    mask = mask >> 1;
26
  }
27
}
28
29
void setup()
30
{
31
  pinMode(por, OUTPUT);
32
  pinMode(data, OUTPUT);
33
  pinMode(sclk, OUTPUT);
34
35
  delayMicroseconds(1000);
36
  digitalWrite(por, LOW);
37
  delayMicroseconds(1000);
38
  digitalWrite(por, HIGH);
39
40
  digitalWrite(sclk, LOW);
41
  
42
  DisplayOut(0b10101111); //Buffer Pointer Control: Start bei AD1
43
  DisplayOut(0b11000000); //Digit Counter Control: Digits=16
44
  DisplayOut(0b11101111); //Duty Cycle Control: =15
45
46
    DisplayOut(byte('T'));
47
    DisplayOut(byte('E'));
48
    DisplayOut(byte('S'));
49
    DisplayOut(byte('T'));
50
    DisplayOut(byte('1'));
51
    DisplayOut(byte('2'));
52
    DisplayOut(byte('3'));
53
    DisplayOut(byte('4'));
54
    DisplayOut(byte('E'));
55
    DisplayOut(byte('I'));
56
    DisplayOut(byte('N'));
57
    DisplayOut(byte('S'));
58
    DisplayOut(byte('Z'));
59
    DisplayOut(byte('W'));
60
    DisplayOut(byte('E'));
61
    DisplayOut(byte('I'));
62
63
}
64
65
void loop()
66
{
67
68
}

von Phil H. (rollingstone1989)


Lesenswert?

Heinz K. schrieb:
> Phil H. schrieb:
>> Genau so habe ich es gemacht, wie du im letzten Absatz beschrieben hast!
>> GND vom Netzteil hängt am GND-Arduino-Pin sowie am "Logic Common" der
>> Displayplatine.
>> Der Arduino bekommt seine Spannung von einem 5V-Pin der Displayplatine,
>> d.h. auch vom Netzteil! (habe auch gemessen, die 5V kommen an!)
>>
>> Ergebnis: Gleiches wie vorher. 1 bis 3 Fehlstellen pro Durchgang.
>
> Der Arduino hat einen eigenen Spannungsregler. Lege die +8V vom Netzteil
> an diesen Spannungsregler (wenn das ein MC33269 ist verträgt der bis zu
> 20V). GND bleibt gleich.
>
> Ein µC hat eine stark schwankende Stromaufnahme. Wenn du jetzt die +5V,
> die eigentlich zum Displaycontroller gehen jetzt auch zum Arduino
> führst, könnten hier Störungen auftreten, die einer Beschreibung
> entsprechen (v.a. wenn du das Kabel direkt auf den Pin vom Controller
> montierst). Das wäre meine Vermutung, kann aber auch sein, dass ich
> falsch liege.

Okay, habe ich gemacht. Die +8V vom Netzteil an den V-Input des 
Arduinoreglers gelegt (kommen nach Messung auch an) und GND gleich 
gelassen.

Ergebnis: Unverändert. 1 bis 3 Fehlstellen.

von Dieter F. (Gast)


Lesenswert?

Phil H. schrieb:
> Programm sieht aktuell so aus

Das ist jetzt zu viel - Du kommst über die max. 20 µs für SCLK high. 
Vorher waren es fast genau 20 µs - also an der Grenze. Der Wert (Data) 
wird bei fallender Flanke von SCLK übernommen. Das Data-Signal 
(low/high) muss mindestens 200 ns vor dem Flankenwechsel und bis mind. 
100 ns nach dem Flankenwechsel anliegen (aber das weisst Du ja).

Vielleicht besser:
1
  while (mask)
2
  {
3
    digitalWrite(sclk, HIGH);
4
    delayMicroseconds(1);             // muss nur vor Data high sein 
5
    if (mask & outdata)
6
    {
7
      digitalWrite(data, HIGH);
8
    }
9
    else  
10
    {
11
      digitalWrite(data, LOW);
12
    }
13
    delayMicroseconds(1);             // reicht locker
14
    digitalWrite(sclk, LOW);
15
    delayMicroseconds(5); //mind. 100ns=0.1us laut DB
16
    mask = mask >> 1;
17
  }


Ein digitalWrite braucht ca. 7 µs ...

von Falk B. (falk)


Lesenswert?

Nun ja, die Figure 4 im Datenblatt des Displays ist auch etwas 
verwirrdend.

Entweder hat man beim Zeichnen VDD und VSS verwechselt (sehr 
wahrscheinlich) oder die Schaltung arbeitet mit einer ziemlichen 
Trickschaltung (GND nach außen liegt auf +5V der Displayschaltung).

https://www.mikrocontroller.net/attachment/298093/Digital_Display_Rowe_marked.pdf

Huch! Was ist denn DAS? Der IC arbeitet mit NEGATIVER Betriebsspannung! 
Das kann ja so nix werden!!! Deswegen braucht man auch die 
Pegelwandler, der IC, der überbrückt wurde!! So geht das nicht. Also 
den IC wieder reinbauen oder die beiden Signal mit eine Pegelwandler 
ausstatten, wie er auch für das STROBE Signal benutzt wird. Aber 
Achtung, dieser Pegelwandler wirkt invertierend.

von Phil H. (rollingstone1989)


Lesenswert?

Dieter F. schrieb:
> Phil H. schrieb:
>> Programm sieht aktuell so aus
>
> Das ist jetzt zu viel - Du kommst über die max. 20 µs für SCLK high.
> Vorher waren es fast genau 20 µs - also an der Grenze. Der Wert (Data)
> wird bei fallender Flanke von SCLK übernommen. Das Data-Signal
> (low/high) muss mindestens 200 ns vor dem Flankenwechsel und bis mind.
> 100 ns nach dem Flankenwechsel anliegen (aber das weisst Du ja).
>
> Vielleicht besser:
>   while (mask)
>   {
>     digitalWrite(sclk, HIGH);
>     delayMicroseconds(1);             // muss nur vor Data high sein
>     if (mask & outdata)
>     {
>       digitalWrite(data, HIGH);
>     }
>     else
>     {
>       digitalWrite(data, LOW);
>     }
>     delayMicroseconds(1);             // reicht locker
>     digitalWrite(sclk, LOW);
>     delayMicroseconds(5); //mind. 100ns=0.1us laut DB
>     mask = mask >> 1;
>   }
>
> Ein digitalWrite braucht ca. 7 µs ...


Okay, Danke, ist eingearbeitet. Ändert leider nichts.



Falk B. schrieb:
> Nun ja, die Figure 4 im Datenblatt des Displays ist auch etwas
> verwirrdend.
>
> Entweder hat man beim Zeichnen VDD und VSS verwechselt (sehr
> wahrscheinlich) oder die Schaltung arbeitet mit einer ziemlichen
> Trickschaltung (GND nach außen liegt auf +5V der Displayschaltung).
>
> https://www.mikrocontroller.net/attachment/298093/...
>
> Huch! Was ist denn DAS? Der IC arbeitet mit NEGATIVER Betriebsspannung!
> Das kann ja so nix werden!!! Deswegen braucht man auch die
> Pegelwandler, der IC, der überbrückt wurde!! So geht das nicht. Also
> den IC wieder reinbauen oder die beiden Signal mit eine Pegelwandler
> ausstatten, wie er auch für das STROBE Signal benutzt wird. Aber
> Achtung, dieser Pegelwandler wirkt invertierend.

Danke!
So weit waren wir im Ursprungsthread am Anfang schon. Ich hatte für die 
beiden Signale (DATA und SCLK) diesen gezeigten Pegelwandler vom 
Strobesignal POR nachgebaut (bis auf den Kondensator C3!), mit dem 
gleichen Endergebnis wie hier. (1 bis 3 Störstellen)

Könnte es sein dass es nicht funktionierte, weil der C3 fehlte?

Edit: Welche der Bauteile in dem rot markierten Bereich auf Seite 2 
(https://www.mikrocontroller.net/attachment/298093/Digital_Display_Rowe_marked.pdf) 
sorgen denn für die alleinige Umwandlung in negative Spannung?

Denn was ich nicht gebrauchen kann ist, dass die Spannungswerte durch 
den Wandler verfälscht werden, d.h. am besten wäre es doch, wenn aus den 
+5V einfach -5V werden.

: Bearbeitet durch User
von Phil H. (rollingstone1989)


Lesenswert?

Würde mir ein solcher Max660 weiterhelfen? Wandelt ja angeblich 5V zu 
-5V um.

https://datasheets.maximintegrated.com/en/ds/MAX660.pdf

Was ist mit den 100mA? Ist zu viel, oder? Kann man das runterregulieren? 
Laut Datenblatt des Displaycontrollers sind als Maximalwert nicht mehr 
als 20mA drin?

von Falk B. (falk)


Lesenswert?

@Phil H. (rollingstone1989)

>So weit waren wir im Ursprungsthread am Anfang schon.

Den hab ich nur überflogen.

> Ich hatte für die
>beiden Signale (DATA und SCLK) diesen gezeigten Pegelwandler vom
>Strobesignal POR nachgebaut (bis auf den Kondensator C3!), mit dem
>gleichen Endergebnis wie hier. (1 bis 3 Störstellen)

>Könnte es sein dass es nicht funktionierte, weil der C3 fehlte?

Nein.

>Edit: Welche der Bauteile in dem rot markierten Bereich auf Seite 2
>(https://www.mikrocontroller.net/attachment/298093/...)
>sorgen denn für die alleinige Umwandlung in negative Spannung?

Alle zusammen.

Hast du auch mal gemessen, ob deine Pegelwandler sauber arbeiten? Das 
kann man zumindest qusitstisch mit einem Multimeter. Einfach die Signale 
am Arduino gaaanz langsam mit 1s umschalten lassen.

>Denn was ich nicht gebrauchen kann ist, dass die Spannungswerte durch
>den Wandler verfälscht werden, d.h. am besten wäre es doch, wenn aus den
>+5V einfach -5V werden.

Das macht der schon. Miss nach.

>Würde mir ein solcher Max660 weiterhelfen? Wandelt ja angeblich 5V zu
>-5V um.

Man braucht nicht den 1000sten Super-IC.

>https://datasheets.maximintegrated.com/en/ds/MAX660.pdf

Der ist unbrauchbar, denn der ist für die STROMVERSOGUNG gedacht, nicht 
zum Invertieren von SIGNALEN.

von Dieter F. (Gast)


Lesenswert?

Falk B. schrieb:
> Huch! Was ist denn DAS? Der IC arbeitet mit NEGATIVER Betriebsspannung!
> Das kann ja so nix werden!!!

Jetzt bitte mal für Unbedarfte :-)

Wieso funktioniert es (bis auf 2-3 Stellen) denn aktuell? O.K., ich bin 
kein Elektroniker und hatte eher auf Timing etc. geachtet - aber es 
interessiert mich schon ...

von Falk B. (falk)


Lesenswert?

@Dieter F. (jim_quakenbush)

>> Huch! Was ist denn DAS? Der IC arbeitet mit NEGATIVER Betriebsspannung!
>> Das kann ja so nix werden!!!

>Jetzt bitte mal für Unbedarfte :-)

>Wieso funktioniert es (bis auf 2-3 Stellen) denn aktuell?

Dazu müßte man wissen, wie es EXAKT verkabelt ist. Das ist mir aber 
alles zu wirr, so eine Ferndiagnose.

>O.K., ich bin
>kein Elektroniker und hatte eher auf Timing etc. geachtet - aber es
>interessiert mich schon ...

Man kann anstatt GND auch VCC als Referenz nehmen, wenn man das Diplay 
aus einer galvanisch getrennten Quelle versorgt. Dann klemmt man die +5V 
vom Arduino auf GND vom Display und damit "sieht" das Display negative 
Spannungspegel von -5 bis 0V, der Arduino kann dabei am PC angeklemmt 
bleiben.

von Paul B. (paul_baumann)


Lesenswert?

O.T.
Falk B. schrieb:
> Das
> kann man zumindest qusitstisch mit einem Multimeter.

qusitstisch? Ein schönes Wort zum Testen der Fähigkeit zur korrekten 
Aussprache.
:-)

MfG Paul

von Falk B. (falk)


Lesenswert?

quasistatisch, jaja, man sollte ab und an nochmal Korrektur lesen.

Die -5V für LOW sind knapp, der IC will max. 4,2V haben. Darum die 
Pegelwandler. Die selbstgestrickten sind nicht sonderlich schnell, darum 
sollte man das erstmal DEUTLICH langsamer takten.

von Dieter F. (Gast)


Lesenswert?

Falk B. schrieb:
> Dann klemmt man die +5V
> vom Arduino auf GND vom Display und damit "sieht" das Display negative
> Spannungspegel von -5 bis 0V, der Arduino kann dabei am PC angeklemmt
> bleiben.

Ah - vielen Dank. Das muss ich erstmal Verdauen und versuche es mal 
nachzuvollziehen ...

Der entfallene DS88C20 macht doch aus einer Eingangs-Differenzspannung 
(ich hoffe, das ist die korrekte Bezeichnung) eine Ausgangsspannung von 
max. 0,5 V für low und VCC (5V lt. Schaltpan) - 1,2V (minimal) = mind. 
3,8 V für high.

Kann man da nicht, wie der TO es gemacht hat, einfach low (ca. 0V) und 
high (ca. 5 V) vom Arduino auf die Ausgangs-Anschlüsse des/der 
entfallenen IC geben? O.K., wenn der Arduino ggf. nur 3,3V liefert wird 
das wohl nicht zuverlässig ausreichen.

von Falk B. (falk)


Lesenswert?

OK, nach einigen Irritationen lichtet sich der Nebel. Man braucht KEINE 
Handstände machen! Man kann das Ding mit normalen 5V CMOS-Pegeln 
ansteuern und auch GND normal verbinden!

Denn!

Die Stromversogrung erfolgt über +8V und Logic Common. Aus diesen 8V 
macht der 7805 die +5V für die Logikm, auch wenn die auf dem Board so 
direkt keiner braucht. Die sind auch an VDD angeschlossen. Auf Seite 1 
oben links sieht man einen Trafo, die linke Seite ist auch an +8V 
angeschlossen. Das ist ein einfacher, selbstschwingender Wechselrichter 
(bistabiler Multivibrator), der ca. 30-40V auf der Sekundärseite 
erzeugt. Die werden gleicherichtet und über 2 Z-Dioden + Vorwiderstand 
erzeugen die VSS, welches 15V unter VDD liegt, also auf -10V gegen GND. 
Nochmal ca. 15V ngeativer liegt die Hilfsspannung für die 
Pull-Down-Widerstände.

Damit sind wir wieder bei U2 auf Seite 2. Den kann man tatsächlich 
überbrücken, da der nur aus differentiellen Signalen unipolare machen 
sollte. Das braucht man hier mit Arduinoansteuerung aber nicht.

Der extra Pegelwandel für POR ist nötig, weil der Eingang andere 
Schaltschwellen hat und für LOW -5V sehen will, wenn VDD auf +5V liegt.

Um die Theorie zu prüfen, muss man die einzelnen Spannungen gegen Logic 
GND messen.

+5V = +5V = VDD
VSS = -10V
C15 Minuspol = ca. -30V

von Phil H. (rollingstone1989)


Lesenswert?

Danke an Euch, Danke Falk!

Falk B. schrieb:
> Hast du auch mal gemessen, ob deine Pegelwandler sauber arbeiten? Das
> kann man zumindest qusitstisch mit einem Multimeter. Einfach die Signale
> am Arduino gaaanz langsam mit 1s umschalten lassen.

Ja, habe das gerade gemacht:

Aus den Eingangsspannungen vom Arduino 0 für LOW und 5V für HIGH werden 
durch den Pegelwandler die Ausgangsspannungen 5V und -6,3V. Irgendwie 
passt das nicht.

Die Bauteile auf der Platine um den Spannungswandler 8V/5V herum wurden 
auch wieder so warm, habe das Netzteil dann ausgemacht.

Falk, hättest du "Lust", dir das mal in real anzugucken? Würde dir 50 
Euro dafür zahlen als kleine Anerkennung.

@Dieter: Der Arduino liefert auf seinen Ausgangspins zuverlässig 5V bei 
HIGH, das ist kein Problem.

von Falk B. (falk)


Lesenswert?

Ich hoffe mal, daß der OP einen 5V Arduino hat und keinen 3,3V Typ!

Die Funktion

void DisplayOut(byte outdata)

von hier ist OK.

Beitrag "Re: Suche jemanden mit Oszilloskop zum Optimieren von Signalleitungen"

Aber für gescheite Signale braucht man GND vom Arduino zum Display! Und 
der 5V Regler vom Display muss wieder arbeiten! Spannungen nachmessen!

von Falk B. (falk)


Lesenswert?

@Phil H. (rollingstone1989)

>Aus den Eingangsspannungen vom Arduino 0 für LOW und 5V für HIGH werden
>durch den Pegelwandler die Ausgangsspannungen 5V und -6,3V. Irgendwie
>passt das nicht.

Hmm.

5/0V sollten reichen.

>Falk, hättest du "Lust", dir das mal in real anzugucken? Würde dir 50
>Euro dafür zahlen als kleine Anerkennung.

Dann musst du das Ding incl. Arduino aber zu mir schicken, ich wohne 
nicht bei dir um die Ecke.

Wenn du das willst, schick mir eine PM. (Oben meinen Namen anclicken).

von Phil H. (rollingstone1989)


Lesenswert?

Falk B. schrieb:
> OK, nach einigen Irritationen lichtet sich der Nebel. Man braucht KEINE
> Handstände machen! Man kann das Ding mit normalen 5V CMOS-Pegeln
> ansteuern und auch GND normal verbinden!
>
> Denn!
>
> Die Stromversogrung erfolgt über +8V und Logic Common. Aus diesen 8V
> macht der 7805 die +5V für die Logikm, auch wenn die auf dem Board so
> direkt keiner braucht. Die sind auch an VDD angeschlossen. Auf Seite 1
> oben links sieht man einen Trafo, die linke Seite ist auch an +8V
> angeschlossen. Das ist ein einfacher, selbstschwingender Wechselrichter
> (bistabiler Multivibrator), der ca. 30-40V auf der Sekundärseite
> erzeugt. Die werden gleicherichtet und über 2 Z-Dioden + Vorwiderstand
> erzeugen die VSS, welches 15V unter VDD liegt, also auf -10V gegen GND.
> Nochmal ca. 15V ngeativer liegt die Hilfsspannung für die
> Pull-Down-Widerstände.
>
> Damit sind wir wieder bei U2 auf Seite 2. Den kann man tatsächlich
> überbrücken, da der nur aus differentiellen Signalen unipolare machen
> sollte. Das braucht man hier mit Arduinoansteuerung aber nicht.
>
> Der extra Pegelwandel für POR ist nötig, weil der Eingang andere
> Schaltschwellen hat und für LOW -5V sehen will, wenn VDD auf +5V liegt.
>
> Um die Theorie zu prüfen, muss man die einzelnen Spannungen gegen Logic
> GND messen.
>
> +5V = +5V = VDD
> VSS = -10V
> C15 Minuspol = ca. -30V


Okay, Du hast Ahnung. Respekt.

Messungen gegen Logic Common:

VSS = 5V
VDD = -10,5V
C15 Minuspol = -40V

von Dieter F. (Gast)


Lesenswert?

Phil H. schrieb:
> Pegelwandler die Ausgangsspannungen 5V und -6,3V

Wo hast Du denn einen Pegelwandler am Arduino? Auf den Bildern ist 
keiner zu sehen - oder?

von Phil H. (rollingstone1989)


Lesenswert?

Wer bewertet denn eigentlich den ganzen Tag instantmäßig meine Beiträge 
negativ, kurz nachdem ich gepostet habe? Machts Spaß? :D

@Falk: Siehe PN.

von Dieter F. (Gast)


Lesenswert?

Phil H. schrieb:
> Wer bewertet denn eigentlich den ganzen Tag instantmäßig meine Beiträge
> negativ, kurz nachdem ich gepostet habe? Machts Spaß? :D

Nicht drum kümmern - diese "Spacken" gibt es überall :-)

von Dieter F. (Gast)


Lesenswert?

Falk B. schrieb:
> Die Funktion
>
> void DisplayOut(byte outdata)
>
> von hier ist OK.
>
Beitrag "Re: Suche jemanden mit Oszilloskop zum Optimieren von Signalleitungen"

Dem muss ich widersprechen - das überschreitet die 20 µs max, die SCLK 
(high) haben darf.

von Dieter F. (Gast)


Lesenswert?

Es läuft zwar mittlerweile wohl auf der "personal"-Ebene ab, aber da ich 
sowieso wach bin ...

Ich würde die LCD-Platine mit 8V vom Netzteil (an Pin 9 des J2) und GND 
vom Netzteil mit Power Common (an Pin 6 des J2) verbinden. Den Arduino 
mit 5V vom USAB-Anschluss. GND des Arduino mit Logic common (an Pin 8 
des J2). Die beiden Leitungen für SCLK und DATA wie aktuell angeklemmt 
und vielleicht zusätzlich jeweils noch ein 10k Pulldown vor den 100 Ohm 
Widerständen auf Arduino-Seite (ob die 100 Ohm Widerständer erforderlich 
sin weiß nicht - aber das ist ja diskutiert worden).

Das Timing wie von mir korrigiert - dann sollte eigentlich alles 
funktionieren, falls auf der Platine nicht noch irgendwo ein Problem 
ist.

von Thomas V. (Gast)


Lesenswert?

Hannes J. schrieb:
> Thomas V. schrieb:
>> Das ist doch jetzt nicht Dein Ernst, oder?
>> Ich habe das Gefühl dass Dir einige wichtige Grundlagen der
>> Elektrotechnik fehlen.
>>
>> Man (ich auch) hat Dir konkrete Hilfe angeboten, jetzt pfuscht Du immer
>> weiter in der Schaltung rum bis sie komplett kaputt ist.
>> Muss man nicht verstehen....
>
> Dein Hamspirit hat aber nicht lange vorgehalten, ha ha ha.

Hannes, ich finde es von Dir unfair mir nachlassenden Hamspirit zu 
unterstellen. Mein Angebot an Phil steht nach wie vor mich der Sache 
anzunehmen.
Nur, Du wirst mir zustimmen dass es weinig Sinn macht wenn der Phil, 
mangels Grundlagen, das was er bisher aufgebaut hat kaputtbastelt.
Dann kann ich ihm auch nicht mehr helfen....

Gruß
Thomas, DL8EBD

von Phil H. (rollingstone1989)


Lesenswert?

Dieter F. schrieb:
> Es läuft zwar mittlerweile wohl auf der "personal"-Ebene ab, aber
> da ich
> sowieso wach bin ...
>
> Ich würde die LCD-Platine mit 8V vom Netzteil (an Pin 9 des J2) und GND
> vom Netzteil mit Power Common (an Pin 6 des J2) verbinden. Den Arduino
> mit 5V vom USAB-Anschluss. GND des Arduino mit Logic common (an Pin 8
> des J2). Die beiden Leitungen für SCLK und DATA wie aktuell angeklemmt
> und vielleicht zusätzlich jeweils noch ein 10k Pulldown vor den 100 Ohm
> Widerständen auf Arduino-Seite (ob die 100 Ohm Widerständer erforderlich
> sin weiß nicht - aber das ist ja diskutiert worden).
>
> Das Timing wie von mir korrigiert - dann sollte eigentlich alles
> funktionieren, falls auf der Platine nicht noch irgendwo ein Problem
> ist.

Danke, Dieter, für deinen Input!

Habe es so versucht wie du beschrieben hast. Das klang eigentlich nicht 
schlecht. Das "Power Common" (Pin 6 von J2) hatte ich bisher vollkommen 
außer Acht gelassen.

Ergebnis: Das Display ging so leider überhaupt nicht an. Liegt daran 
dass "Power Common" ausgehend von J2 Pin 6 zwar nicht ins Leere, jedoch 
nur zu Stecker J1 "Aux Power" führt. Sonst gibt es von diesem "Power 
Common" keine Verbindung zu anderen Platinenelementen. Das "Logic 
Common" von J2 Pin 8 liegt hingegen überall an.


Thomas V. schrieb:
> Hannes, ich finde es von Dir unfair mir nachlassenden Hamspirit zu
> unterstellen. Mein Angebot an Phil steht nach wie vor mich der Sache
> anzunehmen.
> Nur, Du wirst mir zustimmen dass es weinig Sinn macht wenn der Phil,
> mangels Grundlagen, das was er bisher aufgebaut hat kaputtbastelt.
> Dann kann ich ihm auch nicht mehr helfen....
>
> Gruß
> Thomas, DL8EBD

Einfach nicht auf den Kerl eingehen. Wen interessiert eigentlich was der 
schreibt? Aber immerhin pusht er damit den Thread, also besser als nix.

Thomas, dir auch noch mal Danke dass du dir das angucken würdest! Melde 
mich wenn es nochmal aktuell wird.
Falk wird sich jetzt erstmal der Sache annehmen. Bin sehr zuversichtlich 
dass er das schafft.

Phil

von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

Sooooo, das Paket mit dem VFD ist angekommen. Zuerst habe ich mal die 
wilde Verkabelung entfernt. Unisolierte Kupferdrähte sind eine GANZ 
schlechte Idee als lange Verbindung zwischen Boards! Auch deine 
Mini-Stecker ohne Isolation am Arduino sind nicht vertrauenerweckend. Im 
schlimmsten Fall geht bei einem Kurzschluß was kaputt, aber auch 
sporadische Kurzschlüsse und damit Fehlfunktionen sind nicht lustig. 
Dann habe ich die Reste der IC-Pins von U2 entfernt und die 2 Brücken 
gesetzt, später hab ich noch einen 10K Pull Down Widerstand an SCLK 
engelötet, damit das VFD nicht wilden Unsinn anzeigt, wenn der Arduino 
im Reset ist (dann sind die IOs hochohmig und es koppeln Störungen in 
die Signale ein) Eine der Leitungen, ich glaube DATA, war mit einer 
Bohrung unterbrochen, das habe ich repariert. Tja und dann kam die 
Überraschung. Ganz einfach nur den Arduino angeschlossen, das VFD mit 8V 
gespeist und eingeschaltet. Und es ließ sofort fehlerfrei!!!

Aus Spaß an der Freud hab ich das Programm mal etwas verbessert. Für die 
Steuerfunktionen gibt es einzelne Funktionen, damit man die 
Befehlskodierung nicht immer manuell machen muss. Ebenso eine Funktion 
zum Anzeigen von Zeichen und Strings, denn der interne Code ist nicht 
100% ASCII, auch wenn er sehr ähnlich ist. Außerdem habe ich die 
serielle Übertragung zum VFD beschleunigt, dazu muss man direkte 
Portzugriffe ohne Arduino-Funktionen machen. Die sind nämlich DEUTLICH 
langsamer, ein digitalWrite() dauert ca. 7us! Damit kann man das Timing 
des Datenblatts gar nicht einhalten, aber es läuft trotzdem. Die 
Originalversion braucht ca. 30us/Bit, die neue ca. 3us/Bit.

Im Anhang ein paar Bilder des alten und neuen Timings sowie der 
verbesserte Quelltext. Alle Datenblätter etc. gibts auch als ZIP-Archiv.

Ich pack das VFD wieder ein und schick es nächste Woche zurück.

von Phil H. (rollingstone1989)


Lesenswert?

Falk B. schrieb:
> Sooooo, das Paket mit dem VFD ist angekommen. Zuerst habe ich mal die
> wilde Verkabelung entfernt. Unisolierte Kupferdrähte sind eine GANZ
> schlechte Idee als lange Verbindung zwischen Boards! Auch deine
> Mini-Stecker ohne Isolation am Arduino sind nicht vertrauenerweckend. Im
> schlimmsten Fall geht bei einem Kurzschluß was kaputt, aber auch
> sporadische Kurzschlüsse und damit Fehlfunktionen sind nicht lustig.
> Dann habe ich die Reste der IC-Pins von U2 entfernt und die 2 Brücken
> gesetzt, später hab ich noch einen 10K Pull Down Widerstand an SCLK
> engelötet, damit das VFD nicht wilden Unsinn anzeigt, wenn der Arduino
> im Reset ist (dann sind die IOs hochohmig und es koppeln Störungen in
> die Signale ein) Eine der Leitungen, ich glaube DATA, war mit einer
> Bohrung unterbrochen, das habe ich repariert. Tja und dann kam die
> Überraschung. Ganz einfach nur den Arduino angeschlossen, das VFD mit 8V
> gespeist und eingeschaltet. Und es ließ sofort fehlerfrei!!!
>
> Aus Spaß an der Freud hab ich das Programm mal etwas verbessert. Für die
> Steuerfunktionen gibt es einzelne Funktionen, damit man die
> Befehlskodierung nicht immer manuell machen muss. Ebenso eine Funktion
> zum Anzeigen von Zeichen und Strings, denn der interne Code ist nicht
> 100% ASCII, auch wenn er sehr ähnlich ist. Außerdem habe ich die
> serielle Übertragung zum VFD beschleunigt, dazu muss man direkte
> Portzugriffe ohne Arduino-Funktionen machen. Die sind nämlich DEUTLICH
> langsamer, ein digitalWrite() dauert ca. 7us! Damit kann man das Timing
> des Datenblatts gar nicht einhalten, aber es läuft trotzdem. Die
> Originalversion braucht ca. 30us/Bit, die neue ca. 3us/Bit.
>
> Im Anhang ein paar Bilder des alten und neuen Timings sowie der
> verbesserte Quelltext. Alle Datenblätter etc. gibts auch als ZIP-Archiv.
>
> Ich pack das VFD wieder ein und schick es nächste Woche zurück.

Auch hier nochmal:
Tausend Dank!

Werde mir Deinen Input ausführlich zu Gemüte führn.

Phil

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
Noch kein Account? Hier anmelden.