Hallo Leute, ich habe mal wieder eine Anfängerfrage aber ich zähle trotzdem auf eure Unterstützung :) Eine Software sollte unverändert auf einem neuen µC (Infineon C515C-8Bit Single Chip) mit einer externen operating Frequenz von 10 MHz an statt 12 MHz bei dem alten Gerät, laufen. Meine Frage ob diese Frequenzunterschiede kritisch für mein System sein könnten und warum??? Um dies festzustellen was sollte ich tun? Noch ein paar Infos: die Software sollte Motoren steuern (ein/aus) und die Geschwindichkeit nach Useraufforderungen variieren. Fahrstrecken sind mit Endschaltern begrenzt. Ich danke euch im voraus für eure Hilfe.
anis magic schrieb: > Meine Frage ob diese Frequenzunterschiede kritisch für mein System sein > könnten und warum??? Es könnten Transistoren (PWM) mit falschen Timings angesteuert werden.... > Meine Frage ob diese Frequenzunterschiede kritisch für mein System sein > könnten und warum??? Um dies festzustellen was sollte ich tun? Weil man dein System nicht kennt, kann man keine tiefgehenden und sinnvollen Hinweise geben.
>kritisch für mein System sein könnten und warum???
Eindeutig JA.
Zum einen werden ggf. externe Schnittstellen (RS232, RS422 etc.) nicht
mehr richtig arbeiten, da Baudrate evtl. von diesem Oszillator
abgeleitet (es sei denn 2. Oszillator für Baudrate vorhanden).
Zum zweiten --gravierender-- wird die Ansteuerfrequenz des Motors nicht
mehr stimmen, sowohl was ggf. PWM Duty betrifft (Größenordnung 20 kHz)
als auch Verfahr- bzw. Drehzahlen selbst.
Abgeleitete Zeiten (erreichen Endschalter) wird auch nimmer passen dann.
Insgesamt KEINE gute Idee.
Was soll den überhaupt der Sinn und Zweck der Änderung sein???
anis magic schrieb: > die Geschwindichkeit nach Useraufforderungen variieren Damit ist sicherlich eine Kommunikation mit einem Terminal oder PC möglich. Wenn diese als UART ausgeführt ist derartiges ohne Anpassung des Quellcodes nicht mehr möglich.
Servus, problematisch kann es werden, wenn von der Taktfreqeuenz abhängige Funktionen (Bsp. Timer) mit im Spiel sind. Eine Software entsteht in abhängigkeit von der Taktfrequenz da kann eine Abweichung zu anderen Frequenzen ganze Prozesse nachteilig beeinflussen.
Die Zeitbasis mit der die Beschleunigung und Geschwindigkeit deiner Motore bstimmt wird ist dann halt eine andere. Ist halt von 16,67% langsamer. Wenns nicht weiter stört. Schneller wär kritischer denk ich. Aber ohne Schaltplan und Firmware des µC müßte man schon tief in die Glaskugel schaun.
anis magic schrieb: > Meine Frage ob diese Frequenzunterschiede kritisch für mein System sein > könnten und warum??? In den allen meisten Fällen ist das kritisch, ja. Weil in fast allen Mikrocontroller-Systemen von der Taktfrequenz irgendwelche Timings abgeleitet werden, die für ein korrektes Zusammenspiel mit der externen Welt genau stimmen müssen. Ich würde das System mal dahingehend untersuchen: Die Signale von und zu deinem Mikrocontroller - spielt es eine Rolle, ob die genau genau dieses Timing aufweisen oder könnte man die auch schneller oder langsamer abspielen, ohne dass sich das System daran stört? UART/RS232: Nein SPI: Ja I2C: Ja PWM: Ja, in Grenzen ...
Ergänzend zu meinem Text 22.10.2012 15:36 füge ich noch an: Es kann sein, daß das System grundsätzlich nicht mehr läuft. Denn hochpriore, häufig aktive Interrupt-Routinen brauchen für ihre Abarbeitung jetzt mehr Zeit (weil gleichviele Takte der langsameren Frequenz). Daher ist es möglich, daß solche schnelle Interrupts "verlorengehen" bzw. "überlaufen", falls das bisherige System die bisherigen Ressourcen "fast voll" ausgenutzt hat. Denkbar ist dann sogar eine Watchdog-Auslösung oder sonstiger teilweiser oder vollständiger "Hänger". Was soll den überhaupt der Sinn und Zweck der Änderung sein??? Gruss
Erich schrieb: > > Was soll den überhaupt der Sinn und Zweck der Änderung sein??? > Der alte µC wird nicht mehr produziert und sollte mit einem der ihm an nächsten liegt ersetzt werden.
Uwe schrieb: > Die Zeitbasis mit der die Beschleunigung und Geschwindigkeit deiner > Motore bstimmt wird ist dann halt eine andere. Ist halt von 16,67% > langsamer. Wenns nicht weiter stört. Schneller wär kritischer denk ich. > Aber ohne Schaltplan und Firmware des µC müßte man schon tief in die > Glaskugel schaun. Wie hast du die 16,67% gerechnet???
>Wie hast du die 16,67% gerechnet???
Hmm, das hat Uwe gerechnet.
Aber ich denke: Mit der Prozentrechnung. Oder mit dem Dreisatz.
80C515 ist eine ROM Variante. Meinst du vielleicht 80C535? Oder wird der Prozessor in deiner Schaltung nur mit externem Programmspeicher betrieben? IIRC gab es nie 80C5?5, die nur mit 10MHz spezifiziert waren, 12MHz war immer die langsamste Version. Wie viele Exemplare brauchst du, welches Gehäuse? Vielleicht hat noch jemand etwas in der Bastelkiste.
anis magic schrieb: > Infineon C515C-8Bit > Single Chip Aah, der Mann mit dem 515. ;-) Ja, ich wechsele an meinen Boards mit 80C515A auch schon mal Quarze. Ich habe die Software so gestaltet, daß ich die Quarzfrequenz dort angebe, und der Preprozessor die richtigen Werte z.B. für Timer und UART ausrechnet. Es gehen aber immer nur relativ wenige Konstellationen auf einmal. Timerwerte widersprechen sich schon mal mit Baudraten, und umgekehrt. Dann noch CPU-Speed. Irgend einen Kompromiß macht man da immer. Ein einfaches Beispiel: Mein 80C517A (ein erweitertes Derivat zum 80C515A) hatte einen 12MHz-Quarz. Damit geht exakt ein Timerraster von 1ms. Der UART macht 9600BAUD mit 0,2% Toleranz, das geht eben auch noch. Für meine Testcode-Downloads über RS232 wurden mir die 9600BAUD zu lahm, das dauert bei 64k RAM schon mal über eine Minute. Also änderte ich den Quarz auf Baudratenquarz 7,3728MHz, um 38400BAUD zu bekommen. Damit geht aber nur noch ein exaktes Timerraster von 5ms, die 1ms nicht mehr. Wenn man damit klar kommt: OK.
Georg G. schrieb: > 80C515 ist eine ROM Variante. Meinst du vielleicht 80C535? Das war aber kein Problem. Mit dem Pin /EA (External Access) auf low war der 8051 (auch Derivate) ein 8031. Bzw. 80C515 ein 80C535. So benutze ich auch die maskenprogrammierten 8051 als ROM-lose 8031, also man kann als Bastler die Maskenversionen weiter verwenden. Das war schon gut so, daß man Maskenversionen nicht gleich in die Tonne stopfen mußte, sondern als ROM-lose Version weiter verwenden konnte.
Wilhelm Ferkes schrieb: > anis magic schrieb: > >> Infineon C515C-8Bit >> Single Chip > > Aah, der Mann mit dem 515. ;-) > > Ja, ich wechsele an meinen Boards mit 80C515A auch schon mal Quarze. > > Ich habe die Software so gestaltet, daß ich die Quarzfrequenz dort > angebe, und der Preprozessor die richtigen Werte z.B. für Timer und UART > ausrechnet. > > Es gehen aber immer nur relativ wenige Konstellationen auf einmal. > Timerwerte widersprechen sich schon mal mit Baudraten, und umgekehrt. > Dann noch CPU-Speed. Irgend einen Kompromiß macht man da immer. > > Ein einfaches Beispiel: > > Mein 80C517A (ein erweitertes Derivat zum 80C515A) hatte einen > 12MHz-Quarz. Damit geht exakt ein Timerraster von 1ms. Der UART macht > 9600BAUD mit 0,2% Toleranz, das geht eben auch noch. > > Für meine Testcode-Downloads über RS232 wurden mir die 9600BAUD zu lahm, > das dauert bei 64k RAM schon mal über eine Minute. Also änderte ich den > Quarz auf Baudratenquarz 7,3728MHz, um 38400BAUD zu bekommen. Damit geht > aber nur noch ein exaktes Timerraster von 5ms, die 1ms nicht mehr. > > Wenn man damit klar kommt: OK. Hallo Wilhelm, das ist toll was du da geschrieben hast :) könntest du mir noch erklären wie du die Werte manipulierst und worauf du dich beziehst bei den Änderungen. z.B. der Zusammenhang zwischen Baudrate und Baudratenfrequenz In meinem Fall möchte ich an der Software nichts ändern, Das Gerät sollte durch Tableaueingabe von Bediener gesteuert d.h. fahre rechts, fahre links, Stop, fahre mit Geschwindigkeit A oder B etc... Ich danke dir nochmal im voraus für deine Hilfe :)
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.