Ich arbeite mit einem Anbieter in Übersee zusammen, um ein vorhandenes Produkt zu überarbeiten. Wir versuchen, die Kosten niedrig zu halten.
Derzeit besteht das Produkt aus:
- 4 große Tasten
- 4 zweistellige 7-Segment-LEDs. (Jede Schaltfläche hat eine zweistellige Zahl darunter)
- 1 LCD (8 Zeichen ... jede Zeichenanzeige besteht aus einem 3x8-Raster von LCD-Punkten)
- Ein Sprecher
- ein Mikrocontroller
- LCD-Treiber
Bei der Überarbeitung möchte der Anbieter ein Problem mit dem aktuellen Produkt beheben. Alle 4 zweistelligen LEDs flackern merklich.
Der Anbieter gibt uns einen Kostenvoranschlag, der die Verwendung eines neuen Mikrocontrollers, einige Neugestaltungen der Schaltkreise und das Wiederherstellen des gesamten Programms umfasst! (Wir wollen nur Audiodateien austauschen und das Flimmern beheben ... Ich glaube nicht, dass sich die allgemeine Logik für das Produkt überhaupt ändern muss.)
Ich bin mir nicht sicher, wie genau die vorherige Schaltung aufgebaut war, aber möglicherweise kann der Flickr daran liegen, dass die MCU beim Anzünden der LEDs nicht schnell genug für PWM ist.
Erfahrungsgemäß können im Allgemeinen auch andere Ursachen für flackernde 7-Segment-LEDs auftreten. Ich möchte das Problem nur verstehen, damit ich erkennen kann, ob der Anbieter zusätzliche Arbeit budgetiert, wenn diese nicht benötigt wird.
quelle
Antworten:
Flimmern ist das Ergebnis einer zu langsamen Aktualisierung. Sie müssen jedes Segment mit mindestens 100 Hz aktualisieren. Es gibt jedoch einige Tricks, die das scheinbare Flimmern reduzieren können, ohne die Aktualisierung zu beschleunigen. Der naive Ansatz besteht darin, die Ziffern der Reihe nach zu aktualisieren. Wenn Sie sie jedoch ein wenig abwechseln, scheint die ganze Zahl weniger zu flackern. Führen Sie beispielsweise die Ziffern 1, 3 und 5 aus, und kehren Sie dann zurück und führen Sie die Ziffern 2, 4 und 6 aus.
Ohne den Prozessor zu kennen und den Quellcode zu sehen, ist es unmöglich zu sagen, ob der Anbieter versucht, Sie mitzureißen, oder ob das Durcheinander wirklich neu geschrieben werden muss. Denken Sie daran, dass 99% der Firmware-Ingenieure schreckliche Firmware schreiben. Es könnte überall fest codierte Konstanten geben, die Annahmen über die Taktfrequenz, die LED-Bildwiederholfrequenz usw. treffen. Bei gut geschriebener Firmware sollte es einfach sein, die Bildwiederholfrequenz zu erhöhen, vorausgesetzt, der Prozessor verfügt bereits über die erforderlichen Zyklen. Mit schlecht geschriebener Firmware könnte es viel schwieriger sein, das Chaos loszuwerden und es richtig zu schreiben.
Wie kommt es, dass der ursprüngliche Designer das Flimmern nicht angesprochen hat? Vielleicht ist die Firmware so schlecht aufgebaut, dass eine einfache Erhöhung nicht möglich war? Wenn das Flackern so offensichtlich ist, warum wurde das Produkt dann jemals so erstellt, wie es ist? Das allein macht es wahrscheinlich, dass der ursprüngliche Designer ein Chaos angerichtet hat. Wenn er es leicht hätte reparieren können, hätte er es wahrscheinlich getan.
Das wirklich lustige ist, dass du es jetzt wieder machst. Sie gehen nach Übersee, weil Sie die Kosten niedrig halten wollen. Gutes Design kostet echtes Geld, aber schlechtes Design kostet viel mehr. Obwohl Sie davon gebissen wurden, haben Sie es anscheinend immer noch nicht gelernt. Mit gutem Design wären Sie in erster Linie nicht in dieser Position, und selbst wenn Sie es wären, sollte es leicht zu ändern sein. Es gibt keine Entschuldigung dafür, dass das Ändern von gespeichertem Audio keine einfache Operation ist.
Woher wissen Sie, ob es eine schlechte Idee ist oder nicht, den Mikrocontroller und die Schaltung zu wechseln, wenn Sie nicht wissen, was beides ist? Der Kauf von Technik streng nach dem Preis ist der teuerste Weg.
Als Antwort auf Kommentare hinzugefügt:
Ich erinnere mich nicht, wo ich von nicht sequentiellen Aktualisierungen von Ziffern gehört habe, aber ich habe es versucht und festgestellt, dass es hilft. Ich denke, es funktioniert aus dem gleichen Grund, aus dem Interlaced-TV bei der Feldrate anstelle der Bildrate zu flackern schien. Bei NTSC wurde das gesamte Bild mit 30 Hz neu gezeichnet, aber das scheinbare Flimmern betrug aufgrund der Interlacing-Aktualisierung 60 Hz. Sie werden nicht so 2: 1 erhalten, wenn Sie Ziffern verschachteln, aber es hilft.
Nein, 60 Hz sind nicht schnell genug, nicht einmal in der Nähe. Bei 60 Hz sehen die meisten Menschen bei einer Rechteckwelle kein Flimmern mehr. Jemand, der 50% der Zeit mit 60 Hz direkt auf eine LED starrt, sieht das Flackern möglicherweise nicht, aber das ist nicht die einzige Möglichkeit, wie Menschen es wahrnehmen. Wenn Sie nicht nur zwei Ziffern haben, leuchten die LEDs für einen kleineren Teil der Zeit heller, wodurch das Flimmern deutlicher wird. Das Zentrum Ihrer Netzhaut reagiert am langsamsten. Sie werden mehr Flimmern an der Peripherie Ihrer Sicht bemerken. Der wirklich unangenehme Teil ist jedoch, wenn Sie Ihre Augen bewegen. Flimmern ist bei 60 Hz leicht zu erkennen. Sie können das Flimmern aufgrund dieses Phänomens nicht unsichtbar machen, daher besteht das Problem darin, es weniger störend zu machen. 60 Hz sind für die meisten Menschen immer noch ziemlich nervig. Wie gesagt, du willst mindestens ein paar 100 Hz.
Gute Technik zu bekommen, ist ein ganzes Thema für sich. Es ist von Natur aus nichts Falsches daran, nach Übersee zu gehen. Kompetente Menschen leben an verschiedenen Orten. Das Problem besteht darin, zunächst zu erkennen, dass schlechtes Design viel mehr kostet als die Einstellung eines Top-Ingenieurs, der es überhaupt richtig macht. Zweitens muss man sich darüber im Klaren sein, dass das Finden und Überprüfen von Ingenieurtalenten einige Arbeit erfordert. Sie werden 1000 Dollar ausgeben, wahrscheinlich 10 1000 Dollar. Behandeln Sie es wie andere Kaufentscheidungen dieser Größenordnung. Fragen Sie nach, interviewen Sie, holen Sie sich Referenzen und verfolgen Sie sie tatsächlich.
Solange Sie es ernst meinen und der Job echt ist, haben Sie das Recht, ungefähr 2 Stunden Erstberatung zu erwarten, bevor eine Verpflichtung eingegangen wird. Denken Sie daran, dass dies in beide Richtungen geht. Ein Teil dieser Zeit ist für Sie, um den Ingenieur zu bewerten, aber natürlich bewertet der Ingenieur Sie auch. Sie versuchen zu entscheiden, ob dieser Job zu dem passt, was sie tun möchten, ob Sie den Kunden in den Hintern schmerzen usw. In beiden Fällen sollte genügend Zeit vorhanden sein, um sich mit den Anforderungen zu befassen und zu sprechen über erste Eindrücke darüber, welchen Weg der Ingenieur zur Lösung einschlagen wird. Dies sollte Ihnen viel darüber erzählen, wie sie denken, wie viel sie einfach implementieren, was Sie ihnen gesagt haben, anstatt einen Drilldown durchzuführen und zu versuchen, das eigentliche Problem zu lösen und sicherzustellen, dass es gelöst ist, alternative Lösungen vorzuschlagen usw.
Nichts davon besagt, dass der Ingenieur nicht beaufsichtigt werden kann, aber es erschwert die Logistik und eine gute Bewertung. Wenn Sie ein paar starke Empfehlungen von Menschen haben, denen Sie vertrauen, dann hilft das sehr. Wenn Sie nur der Meinung sind, dass Bob in Boston 130 US-Dollar pro Stunde will und 4 Wochen veranschlagt, während Naresh in Bangalore 35 US-Dollar pro Stunde will und dies in zwei Wochen kann, stehen Sie vor ernsthaften Problemen.
quelle
refresh each segment at a few 100 Hz minimum
Würden 60 Hz (Bildwiederholfrequenz von Spielen, LCDs usw.) nicht ausreichen?Ich bin mit einer Bildwiederholfrequenz von mindestens 100 Hz einverstanden. Das sollte im Code für jeden uC ziemlich einfach sein. Irgendwelche anderen Symptome einer niedrigen Uhr f? wie tiefe Tonhöhe im Lautsprecher?
Alle Mux-Anzeigen gehen von einem festen% Duty Cycle = On / Cycle Time aus, sodass der durchschnittliche Strom unabhängig von der Aktualisierungszeit konstant ist. Wie also die EIN-Zeit und die Zykluszeit verstanden werden müssen, wenn Änderungen vorgenommen werden.
Wenn Sie wissen, wie, ist es trivial. Wenn Sie dies nicht tun, ist es wirklich sehr, sehr teuer.
quelle
Ich verstehe, dass das Flimmern in allen Einheiten desselben Produktmodells zu sehen ist. Es ist also nicht so, dass etwas beschädigt wurde. Ich würde auch sagen, dass Sie nur die Aktualisierungsfrequenz erhöhen müssen und natürlich nicht das gesamte Programm ändern müssen.
Es kann sein, dass die MCU nicht schnell genug ist, um diese zweistelligen Zahlen mit einer höheren Rate zu aktualisieren, aber ich bezweifle es. Können Sie uns sagen, um welche MCU es sich handelt?
quelle