Forum: Mikrocontroller und Digitale Elektronik Mikrocontroller schneller laufen lassen


von Piter K. (kurczaq)


Lesenswert?

Hi

ich habe ein ganz doofes Problem: eine Platine mit einem NXP uC hat ein 
festes Programm (an das ich nicht heran komme) und ich müßte in der 
Steuerung der Platine (über LCD) einen bestimmten Wert höher setzen 
können, als die Software es erlaubt (festes cut off in der Firmware). 
Für die Funktion der Platine wäre es wohl unerheblich, wenn ich diesen 
Wert höher setzen würde (sie würde das mitmachen). Ich muss den Wert nur 
ca. 1% höher setzen können, als die geflashte Firmware es erlaubt.

Die Steuerplatine "steigt aus", sobald ein Messwert über der 
Maximalschwelle liegt.

Bei dem Wert handelt es sich um eine Frequenzmessung.

Jetzt ist mir folgende Idee gekommen: Das Ding hat einen 12 Mhz Quartz. 
Würde ich den durch z.b. 12.27 Mhz ersetzen, würde das Programm um ca. 
2% schneller ablaufen. Alle Frequenz-Messwerte, welche die Platine nun 
misst, müßten so um etwa 2% tiefer liegen.

Ich möchte mit anderen Worten durch Beschleunigung des Takts, die 
Platine falsch messen lassen und sie doch noch zur Mitarbeit bewegen 
oberhalb der fest einprogrammierten Schwelle.

Da es sich ja um nur 2% handelt, dürfte es elektrisch keine Probleme 
geben.

Hat jemand schon so etwas mal versucht?

Wird der Quarz anschwingen, wenn die Schaltung ursprünglich für 12 Mhz 
gedacht war und ich direkt einen 12.27 einsetze? Oder müßten auch die C 
ersetzt werden (Pierce Schaltung).

von user (Gast)


Lesenswert?

Normalerweise sollte sowas funktioniere, einfach mal ausprobieren.

von Sparbrötchen (Gast)


Lesenswert?

Erinnert mich an meinen Diesel der bei der Abgasmessung immer
nur 4699 rpm schaffte, statt der vorgesehenen 4700 rpm.

Da war dann immer eine händische Messung fällig!

von Julian B. (julinho)


Lesenswert?

Wie werden die Messwerte übermittelt, über UART?
Dann wären 2% vielleicht schon ein Problem.

von MWS (Gast)


Lesenswert?

12 MHz hört sich nach USB an.

Beitrag #5643104 wurde von einem Moderator gelöscht.
von HyperMario (Gast)


Lesenswert?

Piter K. schrieb:
> Jetzt ist mir folgende Idee gekommen: Das Ding hat einen 12 Mhz Quartz.
> Würde ich den durch z.b. 12.27 Mhz ersetzen, würde das Programm um ca.
> 2% schneller ablaufen. Alle Frequenz-Messwerte, welche die Platine nun
> misst, müßten so um etwa 2% tiefer liegen.

Könnte funzen, aber wenn z.B der Watchdog an einem 2 Taktgeber hängt was 
dann?

Kannst du nicht einfach den Eingangstakt runterteilen?

von my2ct (Gast)


Lesenswert?

Piter K. schrieb:
> ich habe ein ganz doofes Problem: eine Platine mit einem NXP uC hat ein
> festes Programm (an das ich nicht heran komme) ...

Heißt das, dass dir der Quellcode bzw. der Adapter zum Auslesen fehlt 
oder ist der µC mit einem Leseschutz versehen?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

HyperMario schrieb:
> Könnte funzen, aber wenn z.B der Watchdog an einem 2 Taktgeber hängt was
> dann?
Wenn der Watchdog wegen 2% Abweichung zubeißt, dann hat der 
Programmierer einen wirklich üblen Fehler reinprogrammiert.

von Lurchi (Gast)


Lesenswert?

Schnittstellen wie UART und ggf. USB dürften Probleme machen, wenn man 
am Takt dreht.

von Malte _. (malte) Benutzerseite


Lesenswert?

Probier es aus. Ein UART könnte weiter funktionieren, USB sicher nicht.
Alternativ: Eingangssignal selbst mit einem MCU messen, runter rechnen 
und ein entsprechend langsameres erzeugen und weiterleiten.

von Stefan F. (Gast)


Lesenswert?

Malte _. schrieb:
> Ein UART könnte weiter funktionieren

Sicher nicht. Außer wenn der Computer am anderen Ende der Leitung 
ebenfalls übertaktet wird.

von Wolfgang (Gast)


Lesenswert?

Stefanus F. schrieb:
> Sicher nicht. Außer wenn der Computer am anderen Ende der Leitung
> ebenfalls übertaktet wird.

Dann rechne mal nach, um welchen Bruchteil einer Bitzeit die Flanken des 
letzten Bits verschoben sind, wenn der Takt 2% abweicht und die Signale 
sauber sind. Warum sollte das schon schief gehen?

von Stefan F. (Gast)


Lesenswert?

Bei 12MHz Systemtakt läuft die Schnittstelle bereits sehr wahrscheinlich 
nicht mit exakt der richtigen Bitrate. Lege da nochmal 2% drauf und du 
provozierst Probleme.

Ich muss allerdings zugeben, dass ich 10% Übertaktung im Sinn hatte. Das 
war falsch.

von Piter K. (kurczaq)


Lesenswert?

Das Problem ist komplexer als ich es hier darstellen kann.

Die Platine ist eine Platine eines Wechselrichters, der bei 60.5 Hz (in 
den US) "aussteigt". Da wir eine schwebende Frequenz haben (Schwankungen 
zwischen 59.5 und 60.5Hz im 1-2 Sekundentakt), läuft der Wechselrichter 
nicht (overfrequency).

Normalerweise bestimmt das eine UL Norm, daß die Wechselrichter ab 60.5 
Hz abzuschalten haben. Der Hersteller stellt sich quer und schiebt die 
Norm vor (dabei dient die Norm dme Schutz des Netzes bei Overload = 
Overfrequency). Doch bei uns liegen Netzstörungen vor, so daß eine 
Schwebung im Stromnetz die Frequenz zwischen den beiden Werten 
"scheinbar" pendeln läßt.

Der Hersteller läßt keine Einstellung über 60.5 Hz zu (fest eingebrannt 
in die Firmware).

Da ist mir eben als "Hack" diese Idee gekommen: der uC etwas schneller 
laufen lassen, dann sind seine Frequenzmessungen etwas verschoben und 
der Wechselrichter tolleriert nicht nur 60.49 Hz sondern bis 61 Hz...
(die Frage ist ob er dann immer läuft und andere Funktionen erhalten 
bleiben).

von tim (Gast)


Lesenswert?

Piter K. schrieb:
> (die Frage ist ob er dann immer läuft und andere Funktionen erhalten
> bleiben).

Alle anderen zeitkritischen Routinen (sofern überhaupt vorhanden) wie 
die genannten Datenübertragungsprotokolle UART und USB geraten dann aus 
dem Takt.

Alles andere sollte weiter funktionieren (mit entsprechend definierten 
Abweichungen).


Etwas anderes wäre es, wenn du den uC ÜBERTAKTEST. Dann müsstest du 
wahrscheinlich einen externen Oszillator verwenden (den uC also 
"zwangsbetakten"), die Betriebsspannung wahrscheinlich etwas über der 
max. zulässigen Spezifikation betreiben und den uC dann am besten mit 
einem Kühlkörper versehen. Kann aber sein, dass dann einzelne Segmente 
nicht mehr zuverlässig arbeiten, obwohl der Controller ansich seine 
Arbeit tut.
Das aber nur als theoretische Betrachtung.

von Wolfgang (Gast)


Lesenswert?

tim schrieb:
> Das aber nur als theoretische Betrachtung.

Seeehr theoretisch.
Bei gerade mal 2% Taktsteigerung kann man den Ball erstmal ganz flach 
halten, da nicht mal klar ist, welche maximale Taktfrequenz überhaupt 
für der µC spezifiziert ist.

von Andre (Gast)


Lesenswert?

Schau mal was der intern so treibt. Wenn der mit anderen Modulen 
kommuniziert wirst du die auch frisieren müssen, damit das läuft. Könnte 
aber klappen.
Falls nicht, hast du wohl einen Haufen Elektroschrott und brauchst ne 
neue Unterhose wenn deren Netz auch so bissig ist wie unsers hier.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Piter K. schrieb:
> Der Hersteller läßt keine Einstellung über 60.5 Hz zu (fest eingebrannt
> in die Firmware).
Was passiert, wenn du ihm mit Geld drohst? Für eure kundenspezifische 
Firmware?

von Piter K. (kurczaq)


Lesenswert?

Es ist ein KACO... den Support kannst vergessen. Die haben es verkauft 
und leisten im Endeffekt keinen Support.

Fast alle anderen Hersteller lassen ein Passwort beantragen, wo man dann 
in Notfällen über die Spezifikation gehen kann (die lassen sich das eben 
unterschreiben um dann aus dem Schneider zu sein). Elektrisch ist ein 
erweiterter Betriebsbereich überhaupt kein Problem. Nicht bei +- 1%.
Es sitzt eben im Flash irgendwo fest gebrannt 60.5Hz => AUS und der Wert 
läßt sich nicht weiter nach oben setzen, da UL Norm....

Wenn ich bloß den Flash lesen und überschreiben könnte... habe mit dem 
uC aber keine Erfahrung. Es wird nicht mal ein Firmware Update angeboten 
(wo man es zumindest versuchen könnte die binary zu hacken...).

Da bliebe mir als dirty work around den uC etwas schneller laufen zu 
lassen, dann würden ja 60.5 Hz aussehen wie 60 Hz (vergehen mehr zyklen 
zwischen Messungen des Nulldurchgangs). ich nehme mal an daß es so 
funktioniert.
Möglich wäre es auch, daß die Spannungsmessung taktabhängig ist, dann 
hat man eventuell ein Problem (imho ein Sigma-Delta Wandler misst nicht 
falsch, wenn der Takt eiert, nur die Messung dauert länger).

Daß was abraucht glaube ich nicht... bei 1% Taktabweichung kann sich die 
Schaltung nicht in Rauch auflösen.

von Piter K. (kurczaq)


Lesenswert?

Hier ein Video, wie bei uns das Netz eiert:

https://ufile.io/u7td0

es ist eine Schwebung drauf durch überlagerung mehrerer Frequenzen. Es 
ist KEINE Unterlast des Netzes, die als Annahme in die UL Normen und die 
Firmware einfließen.

von Dieter W. (Gast)


Lesenswert?

Du siehst immer nur nach oben. Was ist denn bei 59,5 Hz, die ja dann als 
Fehler interpretiert werden können?

von Piter K. (kurczaq)


Lesenswert?

Eben nicht.... der UL-Norm Bereich für die Frequenz ist 57 Hz bis 60.5 
Hz, der Wechselrichter läßt sich an der unteren Grenze problemlos 
"tiefer legen" LOL

von Gugscht (Gast)


Lesenswert?

Nehmen wir mal an die Software misst zwischen vergangener Flanke und 
aktueller Flanke des Wechselrichterausgangs den Zeitunterschied (z.B. 
mittels Captureregister), dann müsste man doch den Systemtakt reduzieren 
und nicht anheben damit dein Ziel erreicht wird, oder liege ich da 
falsch?

von Piter K. (kurczaq)


Lesenswert?

Wenn die Anzahl der Takte zwischen Nulldurchgängen gemessen wird, dann 
musst Du den Takt hochsetzen => Zähler zählt mehr takte, uC denkt er ist 
auf 12 MHz kalibriert, somit ist die Frequenz tiefer.

von Mathias H. (mathias)


Lesenswert?

Hast Du mal ein paar Fotos vom Prozessor und drum rum?

von Christopher J. (christopher_j23)


Lesenswert?

Piter K. schrieb:
> Hier ein Video, wie bei uns das Netz eiert:
>
> https://ufile.io/u7td0

Oje, das ist ja schon ein ziemliches Gezappel. Wo ist das denn? 
Venezuela? Philippinen? Schlag dem Netzbetreiber doch mal vor 
UL-konformen Strom zu liefern ;)

Das mit dem erhöhen des Taktes sollte meiner Meinung nach gehen. Es 
werden zwar indirekt auch Reglerparameter beeinflusst aber bei 2% sollte 
das nicht viel ausmachen.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Ich weiß jetzt nicht um welche Leistungsklasse es geht, man könnte einen 
inverter dazwischen schalten:

AC-Netz -> 48V -> Wechselrichter

Damit wäre man in jedem Falls raus aus dem instabilen Netz.
Optional könnte man die 48V sogar mit Akkus auch noch stabilisieren, 
bzw. für kurze Unterbrechungen puffern, denn bei diesem Netz sind sicher 
1-2 Kurzzeit Ausfälle in der Woche drin.

Von dem µC die Taktfrequenz bei so einem komplexen Gerät wie einem FU 
hoch zu setzen halte ich nicht wirklich für machbar. Da geht (abgesehen 
von der Garantie) sicher irgend was anderes dann nicht mehr. Und dann 
kommen doch mal 61,5Hz 1x im Monat dann steigt der auch wieder aus.

Falls das kein Hobby-Projekt ist, sondern Du sitzt bei einem Kunde auf 
einer Baustelle und musst das zum Laufen bekommen, dann müssen Lösungen 
her die so gut sind dass man von diesem Problem nie wieder was hört.
Sollte es Hobby sein, dann, ja löte am µC Quarz rum und versuche dein 
Glück ;-)

: Bearbeitet durch User
von Piter K. (kurczaq)


Lesenswert?

Christopher J. schrieb:
> Piter K. schrieb:
>> Hier ein Video, wie bei uns das Netz eiert:
>>
>> https://ufile.io/u7td0
>
> Oje, das ist ja schon ein ziemliches Gezappel. Wo ist das denn?
> Venezuela? Philippinen? Schlag dem Netzbetreiber doch mal vor
> UL-konformen Strom zu liefern ;)
>
> Das mit dem erhöhen des Taktes sollte meiner Meinung nach gehen. Es
> werden zwar indirekt auch Reglerparameter beeinflusst aber bei 2% sollte
> das nicht viel ausmachen.

Am besten wäre ein firmware-hack... ist halt schwierig, wenn keine 
firmware zur Verfügung gestellt wird.

Man kann es auch durch eine Inselanlage lösen, ist dann eben sehr 
teuer...

von Dieter W. (Gast)


Lesenswert?

Markus M. schrieb:
> Von dem µC die Taktfrequenz bei so einem komplexen Gerät wie einem FU
> hoch zu setzen halte ich nicht wirklich für machbar.

Bei 1-2%? Das ist doch schnuppe.

von Piter K. (kurczaq)


Lesenswert?

machbar schon, ich frage mich nur, ob Spannungsmessungen (ADC?) auch vom 
Takt abhängen - ich meine nein, bei seriösen ADC.

Beitrag #5644476 wurde von einem Moderator gelöscht.
Beitrag #5644594 wurde von einem Moderator gelöscht.
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.