-
        

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 22

Thema: Fragen zu Power-Down Modus und Quarzverwendung (Uhrzeit?)

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.04.2008
    Ort
    Esslingen
    Alter
    29
    Beiträge
    235

    Fragen zu Power-Down Modus und Quarzverwendung (Uhrzeit?)

    Anzeige

    Hallo zusammen,

    Ich plane ein Projekt bei welchem ich zwei µCs (ATMEGA168P und ATMEGA328P) zusammen kommunizieren lasse. Der ATMEGA168P soll Messungen durchführen, die per RS232 an den ATMEGA328P übertragen werden sollen und der zeigt diese auf einem Display an. Der ATMEGA328P soll auch noch die Uhrzeit auf dem Display ausgeben. Jetzt ist das erste Problem: Ich wollte keinen Uhrenquarz verweden sondern einen 10Mhz Quarz pro µC. Theoretisch könnte man damit ja auch eine relativ genaue Uhrzeit anzeigen lasse (Je nach programmierungsaufwand) oder? Des weitern sollen die µCs auch im Sleep Modus betrieben werden. Die Versorgung soll dann über eine Knopfzelle erfolgen. Da die Knopfzelle die primäre (also häufigere) Versorgungsquelle wird sollte so wenig Strom wie möglich gezogen werden, solange die µCs im Sleep Modus sind. Die Uhr soll aber trotzdem weiterlaufen und ein INT soll die µCs wieder "aufwecken". Ich hatte mir überlegt den "Stand-by" zu nehmen, da dieser laut Datenblatt mir einem externen Quarz zu empfehlen ist

    Standby Mode
    When the SM2...0 bits are 110 and an external crystal/resonator clock is selected, the SLEEP instructions make the MCU enter Standby mode. This mode is identical to Power-down with the exception that the Oscillator is kept running. From Standby-mode. the device wakes up in six clock cycles.
    Ist mit Oscillator jetzt ein interner oder der externe gemeint? Denn mit 10Mhz komme ich bestimmt nicht auf eine Stromaufnahme von 4,2µA (laut Datenblatt). Das Wichtigste ist eig. dass die Uhr weiterläuft während der µC im Standby ist. Habe schon mal nach Knopfzellen geschaut und welche mit 650mAh gefunden. Wenn möglich sollten die schon so 2-3 Jahre halten. Könnt ihr mir da weiterhelfen ob ich das so überhaupt umsetzen kann oder ob das völlig unrealistisch ist? Habe leider noch nie mit den "Sleepmodi" gearbeitet.

    Mfg Mel
    Elektronische Bauteile funktionieren mit Rauch. Lässt man den Rauch raus, sind sie kaputt.

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Kandel
    Alter
    29
    Beiträge
    1.220
    Es sollte sich hierbei um den externen handeln, sagt zumindest mal auch Tabelle 9-1 (Seite 39)
    Und im übrigen ist es für mich absolut unverständlich, warum du einerseits sagst, du willst Stromsparen, andererseits aber einen Quarz mit 10 Mhz verbauen willst! Der Stromverbrauch steigt annähernd linear zur Quarzfrequenz, du brauchst also im Vergleich zu einem Uhrenquarz das rund 300-fache an Strom!

    Im übrigen wird das Display vermutlich den Löwenanteil des Stromverbrauchs ausmachen, zumindest wenn es kein passives (also ohne eigene Lichtquelle) Display ist.

    mfG
    Markus

    Edit: Seite entsprechend dem aktuellsten Datasheet korrigiert

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.554
    Zitat Zitat von markusj
    ... absolut unverständlich, warum du einerseits ... Stromsparen, andererseits aber einen Quarz mit 10 Mhz ...
    Ich glaube, das geht jetzt an eine Optimierungsrechnung. Wie lange brauche ich bei 38 kHz Prozessortakt für den Datentransfer und wie lange bei 10 MHz. Mal so - nach der Methode Milchmädchen - würde ich sagen: man braucht mit nem Uhrenquarz für den Datentransfer um den von Dir genannten Faktor länger - und entsprechend länger auch SOB *gggg* (Saft on board). Fazit wäre, dass es gehupft wie gesprungen ist. Aber das ist nun wirklich nur grob geschätzt.
    Ciao sagt der JoeamBerg

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.04.2008
    Ort
    Esslingen
    Alter
    29
    Beiträge
    235
    Also die 10Mhz nehme ich weil ich, wie schon vermutet, eine schnelle Datenübertragung brauche und der ATMEGA168P ne Menge Daten schnell erfassen, umrechnen und weiterleiten soll. Das Display und andere Verbraucher sind so geschaltet/verdrahtet dass sie nur Spannung bekommen wenn die Platine von extern, also nicht von der Batterie versorgt wird. Ich brauche halt eine Möglichkeit die Uhr mit wenig Stromverbrauch dauerhaft zu betreiben, aber auch ne Menge an Rechenleistung zu bewältigen.


    EDIT: Also habe grad ein bisschen nachgerechnet. Der ATMEGA168P muss hauptsächlich 2 Signale erfassen und übermitteln (die Signale treten immer gleichzeitig auf und sollen ca. alle 300ms übertragen werden)

    1. Signal: ___|___|___|___ (Impulssignal mit max. 100Hz)
    2. Signal: ___||___||___||___ (Impulssignal mit max. 350Hz)

    Kann man die µCs auch so verwenden dass sie im "Aktivmodus" die 10Mhz Quarze verwenden und im Sleep-Modus auf einen internen Takt umschalten? Ich hatte schon überlegt einen µC mit 10Mhz laufen zu lassen und den anderen mit einem Uhrenquarz aber der wird dann denke ich zu langsam für die Übertragung werden.
    Elektronische Bauteile funktionieren mit Rauch. Lässt man den Rauch raus, sind sie kaputt.

  5. #5
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    Und was machst du noch alles, weil du schreibst
    aber auch ne Menge an Rechenleistung zu bewältigen
    Die beiden Signale erfassen, auf einem Display anzeigen und eine Uhr mitlaufen lassen, lasten einen Kontroller aber nicht aus, geschweige denn zwei.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.554
    Zitat Zitat von MelMan
    ... 10Mhz nehme ich weil ... der ATMEGA168P ... Daten schnell ... weiterleiten soll ...
    Bei diesem Entwurfsziel vermisse ich aber bei Dir die Kontrollrechnung, welches Deine schnellste Baudrate ist >>mit tolerierbarem Fehler<< (Link zeigt ein Beispiel für 20 MHz) in Abhängigkeit vom Quarztakt. Vermutlich sind die 10 MHz nicht das Optimum, möglicherweise wird ein anderer, krummer Quarztakt eine erheblich schnellere Datenübertragung (weil kleinere Fehlerabweichung) ermöglichen. Das trifft genaugenommen nur zu, wenn Du eine "Standardschnittstelle" hast, z.B. am PC, mit einer eng tolerierten Standardbaudrate. Bei zwei Controllern, die mit dem gleichen Quarz ausgerüstet sind, ist der Fehler vernachlässigbar, weil beide vergleichbare Abweichungen haben. ABER - in der Testphase oder so - wenns dann mal wirklich standardmässig ist - könnte das Störungen geben.
    Ciao sagt der JoeamBerg

  7. #7
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Die Aufgabe sieht nicht so kompliziert aus. Den µC ganz mit 32 kHz laufen zu lassen wird vielleicht etwas knapp, könnte aber auch nochgehen. Bei 10 MHz braucht schon der Oszillator zu viel Strom für ein Knopfzelle. Die normale Lösung wäre den µC mit dem RC Takt laufen zu lassen, und nur die Zeit über den 32 kHz Takt. Dabei sollte ein µC ausreichen, sonst halt einen Meag324 oder ähnliches.

    Wenn man die UART nur zwischen 2 eignen µCs nutzen will, ist man nicht auf standardfrequenzen angewiesen. Man hat dann kein Problem mit z.B. 1000 Baud statt der sonst üblichen 1200 Baud.

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.04.2008
    Ort
    Esslingen
    Alter
    29
    Beiträge
    235
    Ok eine Kontrollrechnung habe ich nicht durchgeführt .
    Ich hab schon mal was ähnliches gemacht, auch mit identischen Messungen und habe damals einen ATMEGA32 genommen. Der kam aber nicht damit klar, die Messungen zu erfassen, umzurechnen und auf einem Display auszugeben. Da gabs immer Probleme das wenn grade Text auf dem Display ausgegeben wurde und ein INT kam, dass der µC quasi abgestürzt ist. Kann jetzt auch nicht ausschließen dass es an meiner Programmierung lag, so viel Erfahrung habe ich da noch nicht, aber ich hab mir gedacht 2 Prozessoren sind sicherer.
    Beim RC-Takt ist es doch so dass die Frequenz stark temperaturabhängig ist, was für eine Uhr nicht ideal wäre oder? Da die Platine Temperaturschwankungen von -10°C-40°C ausgesetzt ist könnte das doch problematisch werden.
    Elektronische Bauteile funktionieren mit Rauch. Lässt man den Rauch raus, sind sie kaputt.

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.07.2009
    Ort
    Wien
    Beiträge
    131
    vielleicht schilderst du mal genauer, was du eigentlich messen willst, wie das umgerechnet, bearbeitet und gespeichert werden soll und wie es ausgegeben werden soll.

    mißt du von den genannten beiden impulsen die frequenz, die breite, das tastverhältnis? werden dann am display nur die letzten meßwerte ausgegeben, irgendein durchschnitt oder eine history? soll, wenn das gerät ohne externe stromversorgung läuft, überhaupt gemessen werden oder nur die uhrzeit mitgeführt werden?

    wenn du ein LCD verbaust, würde ich auch drüber nachdenken, ob nicht auch noch platz und gewichtsbudget für AA- oder AAA-zellen vorhanden ist - die haben mehr kapazität als knopfzellen, sind billger und leichter zu beschaffen.

    ich hab zb einen temperatur- und feuchtesensor, der minütlich aufwacht, den sensor ausliest und die werte per funk überträgt; der läuft mit 2 AA-zellen ein knappes jahr...

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.04.2008
    Ort
    Esslingen
    Alter
    29
    Beiträge
    235
    Ok also mein Projekt soll ein Tacho (Motorrad) werden mit Geschwindigkeitsmessung, Drehzahlmessung, Öltemperaturmessung, Uhrzeit und eine Art Alarm.
    Wenn man fahren möchte wird die Zündung eingeschaltet, die Hardware kann über z.B. einen 7805 versorgt werden, Stromaufnahme ist eig. egal (solange nicht >1A, was aber eh nicht vorkommt). Bei der Fahrt soll folgendes gemessen werden:

    1. Geschwindigkeit
    Dies geschieht über einen Reedkontakt mit 2 Magneten an der Bremsscheibe. Der Reifenumfang beträgt ca. 1,8m. Bei einer Geschwindigkeit von 300km/h (nein in real nicht so schnell ) schaltet der Reed-kontakt somit ca. 90mal pro Sekunde. Beim alten Projekt (also der alte Tacho der jetzt im Moment eingebaut ist) habe ich dazu immer einen PIN nach high oder low abgefragt (in einer Timerroutine wo der Timer 10000x pro Sekunde überlief. Eine meiner Meinung nach sehr unschöne Variante aber mit einem INT hatte ich wie schon geschrieben immer Probleme).
    Jetzt würde ich erst mal versuchen jeden Schaltvorgang durch einen INT zu erfassen und mitzuzählen und dies dann später umzurechnen.

    2. Drehzahl
    Hierzu habe ich vor ein Stück Draht um das Zündkabel zu wickeln um mir bei jedem Zündvorgang eine Spannung zu induzieren die ich dann über einen Optokoppler an meinen AVR weitergeben will. Da weiß ich aber noch nicht genau wie ich das umsetze, deshalb weiß ich auch noch nicht genau wie das Signal aussieht, ich vermute aber ähnlich wie das zur Geschwindigkeitsmessung. Bei 20000rpm habe ich eine Frequenz von ca. 330 Hz. Die soll dann auch mitgezählt, in RPM umgerechnet und übertragen werden.

    3. Öltemperatur
    Dies geschieht über einen Sensor am Motorgehäuse. Die Messung erfolgt mit dem AD-Wandler. Das klappt soweit auch ganz gut.

    4. Uhrzeit
    Wenn möglich würde ich mir gerne die Uhrzeit anzeigen lassen da ich diese Klebedinger die es fürs Mopped gibt nicht besonderlich mag.

    5. Alarm
    Das Motorrad soll, sobald es bewegt wird und die Zündung ausgeschaltet ist, einen Alarm geben. Dazu dachte ich mir den durch den Reedkontakt hervorgerufenen Schaltvorgang beim Bewegen des Motorrads als INT zu verwenden um den µC aufzuwecken und eine Alarmroutine abzuarbeiten. Die zweite Möglichkeit zum Aufwecken ist natürlich die Zündung zu starten.


    Wenn die Zündung eingeschaltet ist soll auf dem Display(128x64) die Geschwindigkeit, die Uhr, Kilometerstand und die Öltemp. als Zahlenwerde ausgegeben werden.
    Zusätzlich soll die Drehzahl und die Öltemp in einem Diagramm dargestellt werden, was dann der andere µC übernehmen soll sobald ihm die Daten vom ersten µC zugesendet wurden.

    Ist die Zündung nicht aktiv soll das Display ausgeschaltet sein. Nur die Uhr soll weiterlaufen um beim nächsten Startvorgang wieder angezeigt werden zu können. Aufgeweckt werden sollen die µCs/der µC wie gesagt nur durch das Einschalter der Zündung oder durch das Bewegen des Motorrads, was einen Pegelwechsel zur Folge hat.

    So sry für die Massen an Text, könnte auch schon in den Thread "Geplante Projektvorstellungen" passen

    Ich hoffe ihr seid noch willig mir ein bisschen auf die Sprünge zu helfen.
    Ach ja das ganze soll möglichst klein gehalten werden. Die µCs sollen als TQFP-Bauform ausgeführt sein und die anderen Bauteile möglichsts als SMD. Das Platinenlayout etc. ist auch schon fertig (wird ne doppelseitig bestückte Platine)
    Elektronische Bauteile funktionieren mit Rauch. Lässt man den Rauch raus, sind sie kaputt.

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •