- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 22

Thema: Tiny13(A), PWM, $crystal: Komisches Verhalten

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    30.07.2012
    Beiträge
    19

    Tiny13(A), PWM, $crystal: Komisches Verhalten

    Hallo ihr Lieben,

    ich bin gerade auf ein merkwürdiges Verhalten gestossen, welches ich mir nicht erklären kann. Da hatte ich in der Vergangenheit noch nie drauf geachtet, weil ich noch nie versucht hatte, den PWM- Takt zu erhöhen ...

    Quelltext für den Test zum Nachvollziehen:
    Code:
    $crystal = 4000000
    Config Pinb.0 = Output
    
    Config Timer0 = Pwm , Compare A Pwm = Clear Down , Prescale = 1
    Start Timer0
    Dim Z As Byte : Dim T As Bit
    Z = 0 : T = 0
    
    Do
       If T = 0 Then
          Incr Z
          If Z = 127 Then T = 1
       Else
          Decr Z
          If Z = 0 Then T = 0
       End If
       Waitms 1
       Pwm0a = Z
    Loop
    Verwendete Werte für den Takt: 1MHz, 8MHz, 10MHz, 20MHz

    Unabhängig vom Takt erhalte ich am Ausgang immer etwa 2,2kHz. Ändere ich aber den Takt, ändert sich auch die Geschwindigkeit des Rauf- und Runterlaufens, und das nicht wie erwartet schneller werdend bei höherem Systemtakt, sondern mir unverständlich langsamer werdend! Der Systemtakt beeinflusst also nicht den PWM, wohl aber die schnöde Zählschleife, und das annährend unerwartet umgekehrt proportional?!?

    Also... Nutze ich einen Systemtakt von 1MHz, dann dauert ein Zyklus (Do ... Loop) etwa 1/5 Sekunde. Setze ich den Takt auf 20MHz, dann dauert ein Zyklus etwa 4 Sekunden, bei 10MHz etwa 1,5 Sekunden ...

    Hmmmm...
    Mache ich da irgend wie einen doofen Denkfehler? Hab ich'n Knoten im Hirn? Kapier ich nicht *grummel*


    Könnte mir mal bitte wer freundlicher Weise auf die Sprünge helfen?


    BTW: Gibt es eine Möglichkeit, den Ausgangstakt des PWM zu erhöhen, also auf z.B. umzu 10kHz? Ich benötige letztlich nur ein Hochlaufen von 0-50% Puls/Pause (und wieder zurück; Dimmen eines EL- Converters)

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Zitat Zitat von M_I_B Beitrag anzeigen
    Hmmmm...
    Mache ich da irgend wie einen doofen Denkfehler? Hab ich'n Knoten im Hirn? Kapier ich nicht *grummel*


    Hi, der Systemtakt des Tiny ist nicht von der $CRYSTAL Einstellung abhängig, sondern von den Fuseeinstellungen bzw eventuell vorandenem Quarz.

    Die $CRYSTAL Einstellung benutzt Bascom um den entsprechenden Maschinencode für zB WAITMS zu erstellen. Setzt Du die Einstellung hoch, macht Bascom mehr Schleifen daraus; höherer Takt - mehr Schleifen um auf die gleiche Wartezeit (zB 1ms) wie bei niedrigem Takt zu kommen. Der tatsächliche Takt hat sich aber nicht geändert, bedeutet, die vielen Schleifen brauchen länger und somit wird dein Zyklus länger.

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    2,2 KHz kommt auch gut hin: Der ATTiny13A läuft werksseitig mit 9,6 MHz und einem Takt-Vorteiler von 8, also auf 1,2 MHz. Teilt man das durch 512 (256 Takte raufzählen und 256 runter), kommt man auf präzise 2343 Hz.

    Wenn Du das Fusebit CKDIV8 löschst, fällt die Vorteilung durch 8 weg, und dann bist Du schon bei 18,7 kHz.
    Weißt Du, wie man Fusebits verstellt?

    Und wie ja schon gesagt wurde: Die $Crystal-Anweisung beeinflusst den Takt NICHT! Wenn die Frequenzangabe dort aber vom tatsächlichen Takt abweicht, sind die Pausen bei wait-Befehlen auch fehlerhaft!

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    30.07.2012
    Beiträge
    19
    ... au mann *VorDieStirnPatsch* ^^

    Na klar, ihr habt ja vollkommen wahr! Manchmal sieht man halt den Wald vor lauter Bäumen nicht...

    Ok, mal davon abgesehen, das so was natürlich doof ist, das Bascom nicht gleich den echten Takt über die Fuses setzt resp. umgekehrt aus den Fuses bezieht, ist die Einstellung in Bascom auch etwas eingeschränkt. Denn über den Progger kommt man nicht über 9,6MHz. Vermutlich muss man dort dann direkt das Register ändern; muss ich mal suchen, wie das denn geht ...

    Nachtrag:
    Das ist natürlich eine ziemliche Frickelei, wenn man versuchen muss, in etwa die Resonanzfrequenz des Wandlers zu treffen. Gibt es da nicht irgend ein Hilfsmittel / Trick 17, um mal z.B. gleitend die Taktfrequenzen durchzugehen?

    Quatsch mit Sosse Kann der ja gar nicht intern... Thema durch... Muss ich die Resonanzfrequens eben am Übertrager anpassen...
    Geändert von M_I_B (16.09.2012 um 17:39 Uhr)

  5. #5
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Über 9,6Mhz kannst du nicht kommen bzw. wenn du den Controller schneller betreibst kann es passieren das der Controller nicht richtig arbeitet.
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    30.07.2012
    Beiträge
    19
    ... das bezieht sich aber nur auf intern generierten Takt, oder? Denn lt. Datenblatt schafft der 13er 20MHz ...

Ähnliche Themen

  1. RP6-Wetterstation komisches Verhalten
    Von Virus im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 5
    Letzter Beitrag: 03.01.2010, 12:35
  2. komisches Verhalten einer Schaltung
    Von Arduino99 im Forum Elektronik
    Antworten: 14
    Letzter Beitrag: 24.12.2009, 16:13
  3. Antworten: 18
    Letzter Beitrag: 06.06.2007, 09:22
  4. Komisches AVR Verhalten...
    Von EDatabaseError im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 21.02.2007, 20:44
  5. Komisches verhalten meiner CC1
    Von d4rkwolf im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 01.03.2005, 21:58

Stichworte

Berechtigungen

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

Solar Speicher und Akkus Tests