-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 19

Thema: Ausgang mit 455khz togglen?

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.01.2008
    Ort
    Siegen, Germany, Germany
    Beiträge
    441

    Ausgang mit 455khz togglen?

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo zusammen,

    ich stehe vor einem kleinen Problem.
    Ich möchte an einem Ausgang eines AVRs (mega eine LED mit einer Frequenz von 455khz togglen.

    Für die Berechnungen habe ich das Tool rnAvr verwendet.
    Soweit so gut ich habe natürlich die doppelte Frequenz eingegeben, da ich ja sonst nur die Hälfte hätte beim togglen hätte, also 910000hz.

    Nun zeigt mir mein Messgerät aber nur eine Frequenz von 33kHz an.
    rnAvr hat mir folgende Timer Config ausgespuckt:

    Config Timer0 = Timer, Prescale = 1
    Timervorgabe 247

    Ich benutze die internen 8mhz des avr
    liebe Grüße
    Der Daniel
    -
    Meine Projektseite:
    http://projects.weber-itam.de

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Hallo Daniel,
    das sieht so aus, als würdest du eine Timer0_isr benutzen, in der dann wirklich getoggelt wird. Das wird nicht funktionieren, da für den Interrupt Aufruf und Rücksprung schätzungsweise 60 Takte benötigt werden. Selbst mit Nosave wirst du da nicht viel besser werden.
    Das einzige, was so schnell gehen würde, ist ein Timer im CTC Modus.
    Da bist du aber bei den erzeugten Frequenzen ziemlich eingeschränkt.
    Du kannst dann z.B. die halbe, viertel, sechstel, achtel, zehntel usw. der Taktfrequenz erzeugen, aber keine Zwischenwerte.

  3. #3
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.785
    Blog-Einträge
    8
    Hallo

    Das wird nicht funktionieren. Selbst wenn du die Led (wenn die überhaupt so schnell blinken kann) hardwaremäßig am OCx-Pin togglest wirst du nicht auf 455kHz kommen, weil der Timer nur ganze Takte timen kann. 8MHz/910kHz ergibt 8,791... Wenn du alle 8 Takte umschaltest ergibt das 500kHz, bei 9 Takten sind es aber nur noch 444,4kHz. Auch eine Do... Loop-Schleife die nur den Ausgang umschaltet und die restlichen Takte mit nops verbummelt (wenn nach dem Umschalten und dem Schleifenrücksprung überhaupt noch welche übrig sind) oder eine Assembler-Sequenz die das selbe macht, scheitern hier. Problem ist mit 8MHz-Kontrollertakt so nicht lösbar.

    Eine mögliche Lösung wäre vielleicht, den internen 8MHz-Takt durch die Trimmung so zu "verbiegen", dass er mit 8,190MHz läuft (910kHz*9). Das wären etwas mehr als 2% "Fehler", laut Datenblatt des Mega8 Seite 30 unter "Calibrated Internal RC Oscillator" sind ca. 1-3% Korrektur möglich (Wenn ich das auf die Schnelle richtig interpretiere. Ich habe damit noch nicht experimentiert). Das wäre aber zusätzlich noch von der Versorgungsspannung, der Temperatur und der Bauteilestreuung des Mega8 abhängig. Keine Ahnung, ob das machbar ist.

    btw. ergeben die von deinem Tool errechneten 247 bei einem Overflow-Interrupt genau 8 (255-247) Takte. Der Rundungsfehler läßt sich eben nicht austricksen;)

    Wie genau müssen die 455kHz sein und wozu braucht man sowas überhaupt?

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    Die 455kHz passen zu einem TSOP7000. Also wahrscheinlich ne Bake oder Fernsteuerung. Richtig? Dann sind unter 5% Fehler kein Problem, die Methode von Radbruch würde also gehen.

    Es wird etwas einfacher, wenn man nicht den CTC Mode verwendet, sondern einen der PWM-Modi, bei dem man Pulslänge und Periodendauer getrennt einstellen kann. Dann muss die Frequenz der Interrupts nur 455kHz sein. Das kann im Mega8 allerdings nur Timer1. Das hätte aber den Vorteil, dass man nicht auf 50% Tastverhältnis festgelegt ist. Man kann beim TSOP7000 bis auf 10% runtergehen, und somit Strom sparen oder die LEDs mit etwas höherem Strom betreiben.

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.07.2004
    Ort
    Südhessen
    Beiträge
    1.312
    Hallo.

    Wir standen letztes Jahr vor dem selben Problem.
    Und dazu gibts hier im Forum einen Thread. Lies mal da nach.
    Wir haben es z.B. so gemacht, dass wir mit einem NE555 die 455 kHz Trägerfrequenz erzeugt haben und dann über einen Transistor die Frequenz einfach an- und ausgeschaltet haben, um Daten zu modulieren.

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.01.2008
    Ort
    Siegen, Germany, Germany
    Beiträge
    441
    Hallo zusammen,

    danke für die zahlreichen Antworten. Richtig die Frequenz benötige ich für den TSOP7000. Ich denke ich werde komplett auf einen Controller verzichten und das mal mit dem NE555 versuchen, davon habe ich nämlich noch ein paar in der Bastelkiste hatte eh etwas bedenken, da ich es ein bisschen verschwenderisch fand, einen Controller den Takt erzeugen zu lassen.

    @thewulf
    Ist es denn ohne Probleme möglich, die Frequenz an der Basis eines Transistors anzulegen? Kann der mit 455khz schalten? Kannst du mir eine Empfehlung ausprechen? Ich schau mir dein Thread mal an

    Vielen Dank an alle für die Hilfe.
    liebe Grüße
    Der Daniel
    -
    Meine Projektseite:
    http://projects.weber-itam.de

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.11.2008
    Ort
    Kapfenberg
    Beiträge
    628
    Hallo!

    Für so schnelle Schaltzeiten ist eine Antisättigungsdiode sowie eine Räumdiode am Transistor empfehlenswert, damit der Transistor auch dementsprechend schnell öffnen und sperren kann.

    Grüße
    Thomas

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.01.2008
    Ort
    Siegen, Germany, Germany
    Beiträge
    441
    ok ich werde heute Abend mal nen Testaufbau machen...
    @thewulf
    Hast du noch die Widerstandsdaten bzw den Wert für den Kondensator für den ne555 im Kopf, damit der mit 455khz taktet?
    liebe Grüße
    Der Daniel
    -
    Meine Projektseite:
    http://projects.weber-itam.de

  9. #9
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.593
    Hallo Daniel,

    Zitat Zitat von daniel.weber
    ... Ist es denn ohne Probleme möglich, die Frequenz an der Basis eines Transistors anzulegen? Kann der mit 455khz schalten ...
    Sorry wenn ich mich einmische, ich schalte mehrere IRLEDs mit einem BC337 an einem 20 MHz m168. Zielfrequenz 36 kHz.

    ................

    Bei meinen Versuchen die Flankensteilheit beim Schalten zu verbessern, hatte ich die Ansteuerung mit einem 100 nF Kerko parallel zum R5 abgeändert (hier steht mehr dazu) - und bekomme eine Grenzfrequenz von besser als 10 MHz. Das ist im Link mit einem Oszilloskopbild vorgestellt.

    Fazit: ein BC337 (als Beispiel) kann eine LED mit der von Dir gewünschten Frequenz locker schalten. Das stimmt auch gut mit den Angaben im Datenblatt überein.
    Ciao sagt der JoeamBerg

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    Eine Möglichkeit wäre auch ein 10MHz-Quarz. Damit kommt man auf 0,1% Abweichung. Die Frequenz wäre damit auf jeden Fall genauer und stabiler als bei einem 555, der wahrscheinlich auch erst mal abgeglichen werden müsste...

    Außerdem muss dass Signal ja sowieso noch moduliert werden, der Controller könnte das auch noch übernehmen.

    EDIT: 12,288 MHz kommt sogar auf 0,024%. Wobei wahrscheinlich die internen 8MHz immer noch reichen würden, wenn man etwas an den Kalibrierung dreht...

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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