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
Ich gehe mal davon aus, dass Du die übermittelten Informationen für ausreichend hältst;-)
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
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.
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?
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!)
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.
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
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
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
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.
Lesen und verstehen, dann Problem angehen: https://www.mikrocontroller.net/articles/Wellenwiderstand
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.
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.
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
@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
Wo ist die GND Verbindung vom Arduino zum Display?
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
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?
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
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
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 ?
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?
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 !
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)
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....
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.
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?
@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.
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
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.
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)...
@ 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
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...
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
Phil H. schrieb: > Danke, guter Hinweis. Werde das ändern. Wie sieht denn Dein Programm aktuell aus?
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.
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 | }
|
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.
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 ...
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.
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
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?
@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.
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 ...
@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.
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
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.
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.
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
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.
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!
@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).
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
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?
Wer bewertet denn eigentlich den ganzen Tag instantmäßig meine Beiträge negativ, kurz nachdem ich gepostet habe? Machts Spaß? :D @Falk: Siehe PN.
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 :-)
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.
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.
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
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.